Ultralytics YOLO27:
Get Started

Ultralytics YOLO26を使用したVisionEyeによるオブジェクトマッピング#

VisionEyeによるオブジェクトマッピングとは?#

Ultralytics YOLO26 VisionEyeは、コンピューターがオブジェクトを識別して位置を特定し、人間の目のような観察の精度を再現する機能を提供します。この機能により、コンピューターは人間の目が特定の視点から細部を観察するように、特定のオブジェクトを認識して注視できます。

VisionEye object mapping with YOLO tracking

YOLO26でオブジェクトをマッピングする#

VisionEyeはフレーム内に単一の観察点を固定し、そこから追跡対象の各オブジェクトに向けて線を描画するため、ある視点から見たシーンを可視化できます。vision_pointに観察者のピクセル座標を設定し、Python APIまたはCLIを使って動画にソリューションを適用します。

Ultralytics YOLOを使用した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の引数を以下の表に示します。

引数種類デフォルト説明
modelstrNoneUltralytics YOLOモデルファイルへのパスです。
vision_pointtuple[int, int](20, 20)VisionEye Solutionを使用して、ビジョンがオブジェクトを追跡し、軌跡を描画する位置です。
line_widthint2Solutionが描画するボックス、キーポイント、カウント表示の線幅です。
verboseboolTrue各フレームの入力shape、クラス数、処理速度を記録するSolutionのログを有効にします。トラッキング呼び出し自体は常にログを出力しません。

また、VisionEyeソリューションでは、さまざまなtrack引数を使用できます。

引数種類デフォルト説明
trackerstr'tracktrack.yaml'使用するトラッキングアルゴリズムを指定します。組み込みのオプション:botsort.yaml、bytetrack.yaml、ocsort.yaml、deepocsort.yaml、fasttrack.yaml、tracktrack.yaml。
conffloat0.25検出の信頼度しきい値を設定します。値を低くすると、より多くの物体を追跡できますが、誤検出が含まれる可能性があります。
ioufloat0.7重複する検出をフィルタリングするためのIntersection over Union(IoU)しきい値を設定します。
classeslistNoneクラスインデックスで結果をフィルタリングします。たとえば、classes=[0, 2, 3]を指定すると、指定したクラスのみを追跡します。
devicestrNone推論に使用するデバイスを指定します(例:cpu、cuda:0、0)。モデル実行に使用するCPU、特定のGPU、その他の計算デバイスを選択できます。
imgszint or tuple640推論時の入力画像サイズです。正方形の場合は整数、または(height, width)のペアを指定します。形状はモデルのストライドに合わせて調整されます。
max_detint300トラッキング前にフレームごとに保持する検出の最大数です。混雑したシーンでソリューションが処理する物体数を制限します。
quantizeint or strNone推論精度: CPU以外で実行するPyTorchおよびTorchScriptモデルでは、16(FP16)または32/未設定(FP32)を使用します。その他の形式では、アーティファクトとランタイムによって選択される精度が使用されます。非推奨のhalf引数を置き換えます。

さらに、以下の可視化関連の引数もサポートされています。

引数種類デフォルト説明
showboolFalseTrueの場合、注釈付き画像または動画をウィンドウに表示します。開発やテスト中にすぐ視覚的なフィードバックを得るのに便利です。
show_confboolTrue各検出のラベルとともに信頼度スコアを表示します。各検出に対するモデルの確信度を確認できます。
show_labelsboolTrue可視化出力で各検出のラベルを表示します。検出されたオブジェクトをすぐに把握できます。

VisionEyeの仕組み#

VisionEyeは、フレーム内に固定の視点を設定し、その点から検出されたオブジェクトに向けて線を描画します。これにより、人間の視覚が単一の視点から複数のオブジェクトに注目する様子を再現します。このソリューションではオブジェクトトラッキングを使用してフレーム間でオブジェクトを一貫して識別し、観察者(視点)とシーン内のオブジェクトとの空間的な関係を視覚的に表現します。

VisionEyeクラスのprocessメソッドでは、次の主要な処理を実行します。

  1. 入力画像からトラック(バウンディングボックス、クラス、トラックID)を抽出します
  2. バウンディングボックスとラベルを描画するアノテーターを作成します
  3. 検出された各オブジェクトにボックスラベルを描画し、視点からの線を作成します
  4. トラッキング統計情報を含む注釈付き画像を返します

このアプローチは、監視システム、自律ナビゲーション、インタラクティブなインスタレーションなど、空間認識やオブジェクト間の関係の可視化が必要なアプリケーションで特に役立ちます。

VisionEyeの用途#

VisionEyeによるオブジェクトマッピングは、さまざまな業界で幅広く実用されています。

  • セキュリティと監視: 固定カメラの位置から、複数の注目対象をモニタリングします
  • 小売分析: 店舗のディスプレイとの関係に基づいて、顧客の移動パターンを追跡します
  • スポーツ分析: コーチの視点から、選手の位置や動きを分析します
  • 自動運転車: 車両が周囲のオブジェクトをどのように「見て」、優先順位を付けるかを可視化します
  • ヒューマン・コンピューター・インタラクション: 空間的な関係に応じて動作する、より直感的なインターフェースを作成します

VisionEyeを距離計算や速度推定など、他のUltralyticsソリューションと組み合わせることで、オブジェクトを追跡するだけでなく、その空間的な関係や動作も把握できる包括的なシステムを構築できます。

よくある質問#

  • 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"
    
    # 動画ライター
    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))
    
    # VisionEyeオブジェクトを初期化
    visioneye = solutions.VisionEye(
        show=True,  # 出力を表示する
        model="yolo26n.pt",  # Ultralyticsがサポートする任意のモデルを使用できます(例:yolo26s.pt)
        classes=[0, 2],  # 特定のクラス向けにVisionEyeビューを生成
    )
    
    # 動画を処理
    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)  # 出力にアクセスします
    
        video_writer.write(results.plot_im)  # 動画ファイルを書き込む
    
    cap.release()
    video_writer.release()
    cv2.destroyAllWindows()  # 開いているすべてのウィンドウを破棄
  • Ultralytics YOLO26は、速度、精度、統合のしやすさで高く評価されており、オブジェクトのマッピングとトラッキングに最適な選択肢です。主な利点は次のとおりです。

    1. 最先端のパフォーマンス: リアルタイムのオブジェクト検出で高い精度を実現します。
    2. 柔軟性: 検出、トラッキング、距離計算を単一のパイプラインでサポートします。
    3. コミュニティとサポート: トラブルシューティングや機能強化に役立つ充実したドキュメントと活発なGitHubコミュニティがあります。
    4. 使いやすさ: 直感的なAPIで複雑なタスクを簡素化し、迅速なデプロイと反復を可能にします。

    用途と利点の詳細については、Ultralytics YOLO26のドキュメントをご覧ください。

  • Ultralytics YOLO26は、CometやClearMLなどのさまざまな機械学習ツールとシームレスに統合でき、実験の追跡、コラボレーション、再現性を強化します。開始するには、YOLO26とCometの統合およびYOLO26とClearMLの統合に関する詳細なガイドをご覧ください。

    さらに詳しい情報や統合例については、Ultralytics統合ガイドをご確認ください。

コメント