Link to this sectionUltralytics YOLO26を使用したVisionEyeビューオブジェクトマッピング 🚀#
Link to this sectionVisionEyeオブジェクトマッピングとは何ですか?#
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]"Link to this sectionVisionEyeの引数#
VisionEyeの引数をまとめた表を以下に示します:
| 引数 | タイプ | デフォルト | 説明 |
|---|---|---|---|
model | str | None | Ultralytics YOLOモデルファイルへのパス。 |
vision_point | tuple[int, int] | (20, 20) | VisionEyeソリューションを使用して、ビジョンが物体を追跡しパスを描画する地点。 |
You can also utilize various track arguments within the VisionEye solution:
| 引数 | タイプ | デフォルト | 説明 |
|---|---|---|---|
tracker | str | 'botsort.yaml' | 使用するトラッキングアルゴリズムを指定します。組み込みのオプションは、botsort.yaml、bytetrack.yaml、ocsort.yaml、deepocsort.yaml、fasttrack.yaml、tracktrack.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 | 視覚的出力において各検出のラベルを表示します。検出されたオブジェクトを即座に理解するのに役立ちます。 |
Link to this sectionVisionEyeの仕組み#
VisionEyeは、フレーム内に固定された視点を設定し、その点から検出されたオブジェクトに向けて線を引くことで機能します。これは、人間の視覚が単一の視点から複数のオブジェクトに焦点を合わせる様子をシミュレートするものです。このソリューションはオブジェクトトラッキングを使用してフレーム間でのオブジェクトの一貫した識別を維持し、観測者(視点)とシーン内のオブジェクトとの空間的関係を視覚的に表現します。
VisionEyeクラスのprocessメソッドは、いくつかの主要な処理を実行します:
- 入力画像からトラック(バウンディングボックス、クラス、マスク)を抽出します
- バウンディングボックスとラベルを描画するためのアノテーターを作成します
- 検出された各オブジェクトに対してボックスラベルを描画し、視点から視線を作成します
- トラッキング統計情報を含むアノテーション済み画像を返します
このアプローチは、監視システム、自律ナビゲーション、インタラクティブなインスタレーションなど、空間認識やオブジェクト関係の可視化を必要とするアプリケーションに特に役立ちます。
Link to this sectionVisionEyeの用途#
VisionEyeオブジェクトマッピングには、様々な業界で数多くの実用的な用途があります:
- セキュリティと監視: 固定されたカメラ位置から複数の対象オブジェクトを監視します
- リテール分析: 店舗ディスプレイに関連する顧客の移動パターンを追跡します
- スポーツ分析: コーチの視点から選手の配置や動きを分析します
- 自律走行車: 車両が環境内のオブジェクトをどのように「見て」、優先順位を付けているかを可視化します
- ヒューマン・コンピュータ・インタラクション: 空間的関係に応答する、より直感的なインターフェースを作成します
VisionEyeと距離計算や速度推定といった他のUltralyticsソリューションを組み合わせることで、オブジェクトの追跡だけでなく、その空間的関係や挙動までを理解する包括的なシステムを構築できます。
Link to this section注意#
ご質問がある場合は、Ultralytics Issueセクションまたは以下に記載されているディスカッションセクションまでお気軽にお問い合わせください。
Link to this sectionよくある質問 (FAQ)#
Link to this sectionUltralytics 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 windowsLink to this sectionなぜオブジェクトマッピングとトラッキングにUltralytics YOLO26を使用すべきなのですか?#
Ultralytics YOLO26はその速度、精度、そして統合の容易さで知られており、オブジェクトマッピングとトラッキングにおける最良の選択肢となっています。主な利点は以下の通りです:
- 最先端のパフォーマンス: リアルタイムのオブジェクト検出において高い精度を提供します。
- 柔軟性: 検出、トラッキング、距離計算などの様々なタスクをサポートします。
- コミュニティとサポート: トラブルシューティングや機能強化のための広範なドキュメントと活発なGitHubコミュニティがあります。
- 使いやすさ: 直感的なAPIが複雑なタスクを簡素化し、迅速なデプロイと反復を可能にします。
用途や利点の詳細については、Ultralytics YOLO26のドキュメントをご覧ください。
Link to this sectionVisionEyeをCometやClearMLなどの機械学習ツールと統合するにはどうすればよいですか?#
Ultralytics YOLO26はCometやClearMLといった様々な機械学習ツールとシームレスに統合でき、実験のトラッキング、コラボレーション、再現性を向上させます。YOLOv5とCometの使用方法およびYOLO26とClearMLの統合に関する詳細ガイドに従って開始してください。
さらなる探求や統合例については、Ultralytics統合ガイドをご覧ください。