Ultralytics YOLO26を使用したVisionEyeビューオブジェクトマッピング 🚀
VisionEyeオブジェクトマッピングとは何ですか?
Ultralytics YOLO26のVisionEyeは、人間の目の精度をシミュレートして、コンピュータがオブジェクトを識別し特定する機能を提供します。この機能により、人間が特定の視点から細部を観察するのと同様に、コンピュータは特定のオブジェクトを識別し、それに焦点を当てることができます。
# Monitor objects position with visioneye
yolo solutions visioneye show=True
# Pass a source video
yolo solutions visioneye source="path/to/video.mp4"
# Monitor the specific classes
yolo solutions visioneye classes="[0, 5]"VisionEyeの引数
VisionEyeの引数をまとめたテーブルです:
| 引数 | タイプ | デフォルト | 説明 |
|---|---|---|---|
model | str | None | Ultralytics YOLO モデルファイルへのパス。 |
vision_point | tuple[int, int] | (20, 20) | VisionEye Solution を使用して、視覚情報がオブジェクトを追跡しパスを描画するための基準点。 |
You can also utilize various track arguments within the VisionEye solution:
| 引数 | タイプ | デフォルト | 説明 |
|---|---|---|---|
tracker | str | 'botsort.yaml' | 使用するトラッキングアルゴリズムを指定します(例:bytetrack.yamlやbotsort.yaml)。 |
conf | float | 0.1 | 検出の信頼度しきい値を設定します。低い値を指定するとより多くの物体をトラッキングできますが、偽陽性が含まれる可能性があります。 |
iou | float | 0.7 | 重なり合う検出結果をフィルタリングするためのIntersection over Union (IoU) しきい値を設定します。 |
classes | list | None | クラスインデックスで結果をフィルタリングします。例えば、classes=[0, 2, 3]と設定すると、指定されたクラスのみを追跡します。 |
verbose | bool | True | 追跡結果の表示を制御し、追跡された物体の視覚的出力を提供します。 |
device | str | None | 推論用のデバイス(例:cpu、cuda:0、0など)を指定します。ユーザーはCPU、特定のGPU、またはその他の計算デバイスを選択してモデルを実行できます。 |
さらに、以下のようにいくつかの可視化引数もサポートされています:
| 引数 | タイプ | デフォルト | 説明 |
|---|---|---|---|
show | bool | False | Trueの場合、注釈付き画像または動画をウィンドウに表示します。開発やテスト中に即座に視覚的フィードバックを得るのに役立ちます。 |
line_width | int or None | None | バウンディングボックスの線幅を指定します。Noneの場合、画像サイズに基づいて線幅が自動調整されます。明確化のための視覚的なカスタマイズが可能です。 |
show_conf | bool | True | ラベルとともに、各検出結果の信頼度スコアを表示します。各検出に対するモデルの確信度を把握できます。 |
show_labels | bool | True | 視覚的出力において、各検出結果にラベルを表示します。検出されたオブジェクトの即時理解を可能にします。 |
VisionEyeの仕組み
VisionEyeは、フレーム内に固定された視点を設定し、その点から検出されたオブジェクトに向けて線を引くことで機能します。これは、人間が単一の視点から複数のオブジェクトに焦点を合わせる仕組みをシミュレートしています。このソリューションはオブジェクトトラッキングを使用して、フレーム間でのオブジェクトの識別を維持し、観測者(視点)とシーン内のオブジェクト間の空間的な関係を視覚的に表現します。
VisionEyeクラスのprocessメソッドは、いくつかの主要な操作を実行します:
- 入力画像からトラック(バウンディングボックス、クラス、マスク)を抽出する
- バウンディングボックスとラベルを描画するためのアノテーターを作成する
- 検出された各オブジェクトに対して、ボックスラベルを描画し、視点からビジョンラインを作成する
- トラッキング統計情報を含むアノテーション済み画像を返す
このアプローチは、監視システム、自律走行ナビゲーション、インタラクティブなインスタレーションなど、空間認識やオブジェクト関係の可視化が必要なアプリケーションに特に有用です。
VisionEyeの用途
VisionEyeオブジェクトマッピングには、様々な業界で多くの実践的な用途があります:
- セキュリティと監視: 固定されたカメラ位置から、関心のある複数のオブジェクトを監視する
- 小売分析: 店舗の陳列に関連する顧客の移動パターンを追跡する
- スポーツ分析: コーチの視点から選手の配置や動きを分析する
- 自律走行車: 車両が環境内のオブジェクトをどのように「見て」、優先順位を付けているかを可視化する
- ヒューマン・コンピュータ・インタラクション: 空間的な関係に対応する、より直感的なインターフェースを作成する
VisionEyeを距離計算や速度推定といった他のUltralyticsソリューションと組み合わせることで、オブジェクトを追跡するだけでなく、その空間的な関係や挙動を理解する包括的なシステムを構築できます。
注意
ご質問がある場合は、Ultralytics Issue Sectionまたは以下に記載されているディスカッションセクションにお気軽にお問い合わせください。
FAQ
Ultralytics YOLO26でVisionEyeオブジェクトマッピングを使用するにはどうすればよいですか?
Ultralytics YOLO26でVisionEyeオブジェクトマッピングを開始するには、まずpipを使用してUltralytics YOLOパッケージをインストールする必要があります。その後、ドキュメントに記載されているサンプルコードを使用して、VisionEyeによるオブジェクト検出を設定できます。以下は、開始するための簡単な例です:
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
# Video writer
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
video_writer = cv2.VideoWriter("vision-eye-mapping.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# Init vision eye object
visioneye = solutions.VisionEye(
show=True, # display the output
model="yolo26n.pt", # use any model that Ultralytics supports, e.g., YOLOv10
classes=[0, 2], # generate visioneye view for specific classes
)
# Process video
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or video processing has been successfully completed.")
break
results = visioneye(im0)
print(results) # access the output
video_writer.write(results.plot_im) # write the video file
cap.release()
video_writer.release()
cv2.destroyAllWindows() # destroy all opened windowsなぜオブジェクトマッピングやトラッキングにUltralytics YOLO26を使用すべきなのですか?
Ultralytics YOLO26は、その速度、精度、そして統合の容易さで知られており、オブジェクトマッピングとトラッキングにおける最適な選択肢です。主な利点は以下の通りです:
- 最先端のパフォーマンス: リアルタイムのオブジェクト検出において高い精度を実現します。
- 柔軟性: 検出、トラッキング、距離計算など、様々なタスクをサポートしています。
- コミュニティとサポート: トラブルシューティングや機能強化のための充実したドキュメントと、活発なGitHubコミュニティがあります。
- 使いやすさ: 直感的なAPIが複雑なタスクを簡素化し、迅速なデプロイとイテレーションを可能にします。
用途や利点の詳細については、Ultralytics YOLO26ドキュメントをご覧ください。
VisionEyeをCometやClearMLのような他の機械学習ツールと統合するにはどうすればよいですか?
Ultralytics YOLO26は、CometやClearMLのような様々な機械学習ツールとシームレスに統合でき、実験のトラッキング、コラボレーション、再現性を向上させます。YOLOv5とCometの使用方法およびYOLO26とClearMLの統合に関する詳細ガイドに従って開始してください。
さらなる調査や統合例については、Ultralytics統合ガイドをご確認ください。