コンテンツへスキップ

による距離計算Ultralytics YOLO11

距離計算とは?

2つの物体の間隔を測定することは、指定された空間内での距離計算として知られている。の場合 Ultralytics YOLO11の場合、ユーザーによってハイライトされたバウンディングボックスの距離を計算するために、バウンディングボックスのセントロイドが採用される。



見るんだ: による距離計算Ultralytics YOLO11

ビジュアル

による距離計算Ultralytics YOLO11
Ultralytics YOLO11 距離計算

距離計算の利点

  • ローカリゼーションの精度 コンピュータビジョンタスクにおける正確な空間位置決めを強化します。
  • サイズ推定:より良い文脈理解のためにオブジェクトのサイズを推定できるようにします。
  • シーン理解: 自律走行車や監視システムなどのアプリケーションにおいて、より良い意思決定のための3Dシーン理解を向上させます。
  • 衝突回避:移動する物体間の距離を監視することにより、衝突の可能性を検知することができる。
  • 空間分析:監視環境内のオブジェクトの関係と相互作用の分析を容易にします。
距離計算
  • 任意の2つのバウンディングボックスをマウスの左クリックでクリックし、距離を計算する。
  • マウス右クリックですべての描画点を削除
  • マウスの左クリックで点を描画できる
距離は推定値
Distance will be an estimate and may not be fully accurate, as it is calculated using 2-dimensional data,
which lacks information about the object's depth.

Ultralytics YOLO距離計算

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("distance_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Initialize distance calculation object
distancecalculator = solutions.DistanceCalculation(
    model="yolo11n.pt",  # path to the YOLO11 model file.
    show=True,  # display the output
)

# Process video
while cap.isOpened():
    success, im0 = cap.read()

    if not success:
        print("Video frame is empty or processing is complete.")
        break

    results = distancecalculator(im0)

    print(results)  # access the output

    video_writer.write(results.plot_im)  # write the processed frame.

cap.release()
video_writer.release()
cv2.destroyAllWindows()  # destroy all opened windows

DistanceCalculation() 議論

以下はその表である。 DistanceCalculation という議論がある:

議論 タイプ デフォルト 説明
model str None Ultralytics YOLO モデルファイルへのパス。

また、さまざまなものを利用することもできる。 track の引数を使用する。 DistanceCalculation 解決策だ。

議論 タイプ デフォルト 説明
tracker str 'botsort.yaml' 使用するトラッキングアルゴリズムを指定する、 bytetrack.yaml または botsort.yaml.
conf float 0.3 検出の信頼しきい値を設定します。低い値ではより多くのオブジェクトを追跡できますが、誤検出を含む可能性があります。
iou float 0.5 重複検出をフィルタリングするためのIoU(Intersection over Union)しきい値を設定します。
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 None or int None バウンディングボックスの線幅を指定します。もし None線幅は画像サイズに応じて自動的に調整されます。視覚的にわかりやすくカスタマイズできます。

実施内容

について DistanceCalculation クラスは、ビデオフレーム全体でオブジェクトを追跡し、選択されたバウンディングボックスのセントロイド間のユークリッド距離を計算することによって動作します。2つのオブジェクトをクリックすると、ソリューションが表示されます:

  1. 選択されたバウンディングボックスのセントロイド(中心点)を抽出します。
  2. これらのセントロイド間のユークリッド距離をピクセル単位で計算する。
  3. オブジェクト間の距離を連結線でフレーム上に表示する

実装では mouse_event_for_distance メソッドを使ってマウス操作を処理し、ユーザーが必要に応じてオブジェクトを選択したり、選択を解除したりできるようにする。このメソッドは process メソッドは、フレームごとの処理、オブジェクトのトラッキング、距離の計算を行う。

アプリケーション

YOLO11 使った距離計算は、実用的な用途が多い:

  • リテール分析:顧客の商品への接近度を測定し、店舗レイアウトの効果を分析します。
  • 産業安全:作業員と機械の間の安全な距離を監視する
  • 交通管理:車間を分析し、追い越しを検知する
  • スポーツ分析:選手、ボール、フィールドの主要な位置間の距離を計算する
  • ヘルスケア待合室での適切な距離の確保と患者の動きの監視
  • ロボット工学ロボットが障害物や人から適切な距離を保てるようにする

よくあるご質問

Ultralytics YOLO11 を使ってオブジェクト間の距離を計算するには?

オブジェクト間の距離を計算するには Ultralytics YOLO11検出されたオブジェクトのバウンディングボックスのセントロイドを特定する必要があります。この処理には DistanceCalculation class fromUltralytics' solutions モジュールを使い、モデルのトラッキング出力を使って距離を計算する。

Ultralytics YOLO11 を使った距離計算の利点は?

Ultralytics YOLO11 を使った距離計算にはいくつかの利点がある:

  • ローカリゼーションの精度:オブジェクトの正確な空間位置決めを提供します。
  • サイズの推定:物理的なサイズを推定し、より良い文脈理解に貢献します。
  • シーン理解:3Dシーンの理解を強化し、自律走行や監視などのアプリケーションにおける意思決定の改善を支援する。
  • リアルタイム処理:オンザフライで計算を行うため、ライブビデオ分析に適しています。
  • 統合機能: 物体追跡や 速度推定など、他のYOLO11 ソリューションとシームレスに連携。

Ultralytics YOLO11 を使って、リアルタイムのビデオストリームで距離計算を行うことはできますか?

Ultralytics YOLO11 を使えば、リアルタイムのビデオストリームで距離計算を行うことができます。このプロセスでは オープンCVランニングYOLO11 オブジェクト検出を使用している。 DistanceCalculation クラスを使用して、連続するフレームのオブジェクト間の距離を計算します。詳細な実装については ビデオ・ストリームの例.

Ultralytics YOLO11 を使って距離計算中に描かれたポイントを削除するには?

Ultralytics YOLO11 で距離計算中に描いた点を削除するには、マウスの右クリックを使用します。この操作により、描画した点がすべて消去されます。詳細については、距離計算の例の下にあるノートのセクションを参照してください。

Ultralytics YOLO11 でDistanceCalculationクラスを初期化する際の主な引数は?

を初期化するための主要な引数である。 DistanceCalculation クラスをUltralytics YOLO11 に含む:

  • model:YOLO11 モデルファイルへのパス。
  • tracker:使用するトラッキングアルゴリズム(デフォルトは 'botsort.yaml')。
  • conf:検出の信頼閾値。
  • show:出力を表示するフラグ。

詳細なリストとデフォルト値については、DistanceCalculationの引数を参照してください。

📅作成:1年前 ✏️更新 5日前

コメント