Ultralytics YOLO27:

Ultralytics YOLO26 を使用した VisionEye ビューのオブジェクトマッピング#

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

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

VisionEye object mapping with YOLO tracking

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

VisionEyeはフレーム内に単一の観測点を固定し、そこから追跡対象の各オブジェクトに向けて光線を描画するため、1つの視点から見たシーンの様子を可視化できます。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_widthint2ソリューションが描画するボックス、キーポイント、カウントの線の太さです。
verboseboolTrue入力形状、クラス数、処理速度をフレームごとにログに記録する機能を有効にします。トラッキング処理自体は常にサイレントです。

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

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

さらに、以下に示すように、いくつかの可視化引数にも対応しています。

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

VisionEyeの仕組み#

VisionEyeは、フレーム内に固定された視点を設定し、その点から検出されたオブジェクトへ線を描画することで機能します。これは、単一の視点から人間の視覚が複数のオブジェクトに焦点を合わせる様子をシミュレートします。このソリューションはオブジェクト追跡を使用してフレーム間でオブジェクトの識別を一貫して維持し、観測者(視点)とシーン内のオブジェクト間の空間的関係を視覚的に表現します。

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

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

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

VisionEyeの用途#

VisionEyeのオブジェクトマッピングは、さまざまな業界で数多くの実用的な用途があります。

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

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

FAQ#

  • 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., yolo26s.pt
        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は、その速度、精度、統合の容易さで高く評価されており、オブジェクトのマッピングと追跡に最適な選択肢です。主な利点は次のとおりです。

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

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

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

    さらに詳しい調査や統合例については、Ultralytics統合ガイドをご覧ください。

コメント