YOLO11を試してみた
概要
YOLOv8を発表したUltralyticsが新しいYOLOシリーズのモデル YOLO11 を発表したので試してみました。
Ultralyticsのドキュメントもv8から11へ更新されています。
命名はこれまでと異なり「v」無しの YOLO11 です。
「v」付きの命名を避けたのは、既にYOLOv11という命名の悪戯リポジトリがあるためかもしれません
YOLOは物体検出モデルとして有名ですが、YOLO11はv8と同様にインスタンスセグメンテーションや姿勢推定など複数のタスクに対応しています。
GPU使用量は最大サイズのXでも1GB未満でした。
以下の画像はultralyticsが発表している精度と速度の比較表です。
精度は最近発表されたv9やv10とほぼ同等で、速度はv10並みのようです。
実施内容
Google Colab (Pro)のL4で実行しました。
インストール
ultralyticsライブラリのインストールは非常に簡単に行えます。
!pip install ultralytics
推論の実行
ultralyticsのインストールが完了すると、 yolo コマンドが使用可能になっており、オプションに実行したいタスクに合ったモデルと画像を指定することで各タスクの推論を実行できます。
!yolo predict model=yolo11n.pt source='https://ultralytics.com/images/bus.jpg'
model
実行したいタスクに合ったモデルの重みファイルを指定する。初回は重みファイルが自動で実行環境上にダウンロードされる。
source
入力データのパスを指定する。
Pythonコードを実装して推論する場合も、ultralyticsはしっかりクラス化されているのでシンプルなコードで推論できます。(学習もシンプルに書けます)
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n.pt")
# Perform object detection on an image
results = model("https://ultralytics.com/images/bus.jpg")
results[0].show()
今回はYOLO11nとYOLO11xに下の画像を与え、その結果をYOLOv8やYOLOv9と見比べます。(バスの画像では、微妙な差異はあるもののほぼ同様の結果でした)
タスクは物体検出、インスタンスセグメンテーション、姿勢推定を試しました。
入力画像
物体検出
インスタンスセグメンテーション
姿勢推定
姿勢推定については人が大きく映るバスの画像も載せておきます。
まとめ
YOLO11を試してみました。
個人的には最小のNサイズでも思っていた以上に検出できていると感じました。
YOLOでの姿勢推定は初めて試しましたが、インスタンスセグメンテーションや深度推定も組み合わせて遊べそうだなと感じました。
GPU使用量は最小モデルのNサイズが約400MB、最大モデルのXサイズが約800MBでした。
今回使用した画像の取得元
追記: 他の方の動画をご紹介
素晴らしい動画を見つけたのでご紹介です。
こちらのチャンネルの別動画も面白そうなのでぜひご覧ください。