Ultralytics YOLO11を使った距離計算
距離計算とは?
2つのオブジェクト間のギャップを測定することは、指定された空間内での距離計算として知られている。Ultralytics YOLO11の場合、ユーザーがハイライトしたバウンディングボックスの距離を計算するために、バウンディングボックスのセントロイドが採用されている。
見るんだ: Ultralytics YOLO11を使った距離計算
ビジュアル
Ultralytics YOLO11を使った距離計算 |
---|
距離計算の利点
- ローカリゼーションの精度: コンピュータビジョンタスクにおける正確な空間位置決めを強化します。
- サイズ推定:より良い文脈理解のためにオブジェクトのサイズを推定できるようにします。
距離計算
- 任意の2つのバウンディングボックスをマウスの左クリックでクリックし、距離を計算する。
YOLO11を使った距離計算の例
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("Path/to/video/file.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
video_writer = cv2.VideoWriter("distance_calculation.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# Init distance-calculation obj
distance = solutions.DistanceCalculation(model="yolo11n.pt", show=True)
# 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
im0 = distance.calculate(im0)
video_writer.write(im0)
cap.release()
video_writer.release()
cv2.destroyAllWindows()
注
- マウス右クリックですべての描画点を削除
- マウスの左クリックで点を描画できる
距離は推定値
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.
議論 DistanceCalculation()
Name | Type | Default | 説明 |
---|---|---|---|
model | str | None | Ultralytics YOLO モデルファイルへのパス |
line_width | int | 2 | バウンディングボックスの線の太さ。 |
show | bool | False | ビデオストリームを表示するかどうかを制御するフラグ。 |
議論 model.track
議論 | タイプ | デフォルト | 説明 |
---|---|---|---|
source | str | None | 画像や動画のソースディレクトリを指定します。ファイルパスとURLをサポートします。 |
persist | bool | False | フレーム間のオブジェクトの永続的なトラッキングを可能にし、ビデオシーケンス間のIDを維持します。 |
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 | トラッキング結果の表示をコントロールし、トラッキングされたオブジェクトのビジュアル出力を提供します。 |
よくあるご質問
Ultralytics YOLO11を使用して物体間の距離を計算するには?
オブジェクト間の距離を計算するには Ultralytics YOLO11検出されたオブジェクトのバウンディングボックスのセントロイドを特定する必要があります。この処理には DistanceCalculation
class fromUltralytics' solutions
モジュールを使って、モデルのトラッキング出力を使って距離を計算する。実装は 距離計算の例.
Ultralytics YOLO11で距離計算をする利点は何ですか?
Ultralytics YOLO11を使った距離計算にはいくつかの利点がある:
- ローカリゼーションの精度:オブジェクトの正確な空間位置決めを提供します。
- サイズの推定:物理的なサイズを推定し、より良い文脈理解に貢献します。
- シーン理解:3Dシーンの理解を強化し、自律走行や監視などのアプリケーションにおける意思決定の改善を支援する。
Ultralytics YOLO11を使用して、リアルタイムのビデオストリームで距離計算を行うことはできますか?
Ultralytics YOLO11を使えば、リアルタイムのビデオストリームで距離計算を行うことができます。このプロセスでは オープンCVYOLO11実行中 オブジェクト検出を使用している。 DistanceCalculation
クラスを使用して、連続するフレームのオブジェクト間の距離を計算します。詳細な実装については ビデオ・ストリームの例.
Ultralytics YOLO11を使って距離計算中に描かれたポイントを削除するには?
Ultralytics YOLO11で距離計算中に描いたポイントを削除するには、マウスの右クリックを使用します。この操作により、描画した点がすべて消去されます。詳しくは、距離計算例の下にある注意書きを参照してください。
Ultralytics YOLO11でDistanceCalculationクラスを初期化する際の主な引数は?
を初期化するための主要な引数である。 DistanceCalculation
クラスは、Ultralytics YOLO11:
model
:モデルファイルのパス。show
:ビデオストリームを表示するかどうかを示すフラグ。line_width
:バウンディングボックスと画像上に描かれた線の太さ。
詳細なリストとデフォルト値については、DistanceCalculationの引数を参照してください。