Ultralytics YOLO11 🚀を使った速度推定
速度推定とは?
速度推定は、与えられたコンテキスト内での物体の移動速度を計算するプロセスであり、コンピュータビジョンアプリケーションでよく使用されます。Ultralytics YOLO11を使用することで、距離と時間のデータとともに、物体追跡を使用して物体の速度を計算することができます。速度推定の精度は、様々なアプリケーションの効率と信頼性に直接影響し、インテリジェントシステムやリアルタイム意思決定プロセスの進歩における重要な要素となっています。
見るんだ: Ultralytics YOLO11を使用した速度推定
ブログをチェック
速度推定に関するより深い洞察については、当社のブログ記事をご覧ください:Ultralytics コンピュータ・ビジョン・プロジェクトにおける速度推定のためのYOLO11
速度予測の利点は?
- 効率的な交通管理:正確な速度推定は、交通の流れを管理し、安全性を高め、道路の混雑を緩和します。
- 正確な自律走行ナビゲーション:自動運転車のような自律システムでは、信頼性の高い速度推定が安全で正確な車両ナビゲーションを実現します。
- 監視セキュリティの強化:監視分析における速度推定は、異常な行動や潜在的な脅威の特定に役立ち、セキュリティ対策の有効性を向上させます。
実世界での応用
交通 | 交通 |
---|---|
Ultralytics YOLO11を用いた道路上の速度推定 | Ultralytics YOLO11を用いた橋梁上の速度推定 |
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("speed_management.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# Define speed region points
speed_region = [(20, 400), (1080, 404), (1080, 360), (20, 360)]
speed = solutions.SpeedEstimator(
show=True, # Display the output
model="yolo11n-pose.pt", # Path to the YOLO11 model file.
region=speed_region, # Pass region points
# classes=[0, 2], # If you want to estimate speed of specific classes.
# line_width=2, # Adjust the line width for bounding boxes and text display
)
# Process video
while cap.isOpened():
success, im0 = cap.read()
if success:
out = speed.estimate_speed(im0)
video_writer.write(im0)
if cv2.waitKey(1) & 0xFF == ord("q"):
break
continue
print("Video frame is empty or video processing has been successfully completed.")
break
cap.release()
cv2.destroyAllWindows()
スピードは見積もり
速度は推定値であり、完全に正確であるとは限りません。また、推定速度はGPU の速度によって異なる場合があります。
議論 SpeedEstimator
名称 | タイプ | デフォルト | 説明 |
---|---|---|---|
model | str | None | Ultralytics YOLO モデルファイルへのパス |
region | list | [(20, 400), (1260, 400)] | カウント領域を定義する点のリスト。 |
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で物体の速度を推定するには、物体検出とトラッキング技術を組み合わせる必要がある。まず、YOLO11モデルを使用して、各フレームでオブジェクトを検出する必要があります。次に、これらのオブジェクトをフレーム間で追跡し、時間の経過に伴う動きを計算します。最後に、フレーム間のオブジェクトの移動距離とフレームレートを使って、オブジェクトの速度を推定します。
例
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video/file.mp4")
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("speed_estimation.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# Initialize SpeedEstimator
speed_obj = solutions.SpeedEstimator(
region=[(0, 360), (1280, 360)],
model="yolo11n.pt",
show=True,
)
while cap.isOpened():
success, im0 = cap.read()
if not success:
break
im0 = speed_obj.estimate_speed(im0)
video_writer.write(im0)
cap.release()
video_writer.release()
cv2.destroyAllWindows()
詳しくは、公式ブログ記事をご覧ください。
Ultralytics YOLO11を交通管理における速度推定に使用するメリットは?
Ultralytics YOLO11を速度推定に使用することは、交通管理に大きな利点をもたらす:
- 安全性の向上:車速を正確に推定して速度超過を検知し、交通安全を向上させます。
- リアルタイム・モニタリング:YOLO11のリアルタイム物体検知機能により、交通の流れや渋滞を効果的に監視できます。
- 拡張性:エッジデバイスからサーバーまで、様々なハードウェアセットアップにモデルを展開することで、大規模な実装に対する柔軟でスケーラブルなソリューションを実現します。
その他の用途については、速度推定の利点を参照。
YOLO11は、次のような他のAIフレームワークと統合できるだろうか? TensorFlowあるいは PyTorch?
はい、YOLO11は、TensorFlow やPyTorch のような他のAIフレームワークと統合することができます。Ultralytics は、ONNX 、TensorRT 、CoreML のような様々なフォーマットへのYOLO11モデルのエクスポートをサポートしており、他のMLフレームワークとのスムーズな相互運用性を保証しています。
YOLO11モデルをONNX フォーマットにエクスポートする:
モデルのエクスポートについては、エクスポートに関するガイドをご覧ください。
Ultralytics YOLO11を使った速度推定の精度は?
Ultralytics YOLO11を使用した速度推定の精度は、物体追跡の品質、映像の解像度とフレームレート、環境変数など、いくつかの要因に依存します。速度推定器は信頼性の高い推定値を提供しますが、フレーム処理速度のばらつきやオブジェクトのオクルージョンのため、100%正確とは限りません。
注:常に誤差を考慮し、可能であれば地上真実データで推定値を検証すること。
さらなる精度向上のヒントについては 議論 SpeedEstimator
セクション.
TensorFlow Object Detection API のような他のオブジェクト検出モデルではなく、Ultralytics YOLO11 を選ぶ理由は?
Ultralytics YOLO11は、TensorFlow Object Detection APIなど、他のオブジェクト検出モデルと比較していくつかの利点がある:
- リアルタイム性能:YOLO11はリアルタイム検出用に最適化されており、高いスピードと精度を提供します。
- 使いやすさ:ユーザーフレンドリーなインターフェースで設計されたYOLO11は、モデルのトレーニングと導入を簡素化します。
- 汎用性:物体検出、セグメンテーション、姿勢推定など複数のタスクをサポート。
- コミュニティとサポートYOLO11は活発なコミュニティと広範なドキュメントに支えられており、開発者は必要なリソースを確保できます。
YOLO11のメリットについては、モデル詳細ページをご覧ください。