コンテンツへスキップ

Ultralytics YOLO11 🚀を使った速度推定

速度推定とは?

速度推定は、与えられたコンテキスト内での物体の移動速度を計算するプロセスであり、コンピュータビジョンのアプリケーションでよく使用される。使用方法 Ultralytics YOLO11を使用することで、距離や時間のデータと一緒にオブジェクトトラッキングを使用してオブジェクトの速度を計算することができます。速度推定の精度は、様々なアプリケーションの効率と信頼性に直接影響し、インテリジェントシステムやリアルタイム意思決定プロセスの進歩における重要な要素となっています。



見るんだ: による速度推定Ultralytics YOLO11

ブログをチェック

速度推定に関するより深い洞察については、当社のブログ記事Ultralytics YOLO11 for Speed Estimation in Computer Vision Projectsをご覧ください。

速度推定の利点

  • 効率的な交通管理:正確な速度推定は、交通の流れを管理し、安全性を高め、道路の混雑を緩和します。
  • 正確な自律走行ナビゲーション: 自動運転車のような自律システムでは、信頼性の高い速度推定が安全で正確な車両ナビゲーションを保証します。
  • 監視セキュリティの強化:監視分析における速度推定は、異常な行動や潜在的な脅威の特定に役立ち、セキュリティ対策の有効性を向上させます。

実世界での応用

交通 交通
道路上での速度推定Ultralytics YOLO11 橋の速度推定Ultralytics YOLO11
道路上での速度推定Ultralytics YOLO11 橋の速度推定Ultralytics YOLO11
スピードは推定値

速度は推定値であり、完全に正確であるとは限りません。また、推定値はカメラの仕様や関連要因によって異なる場合があります。

Ultralytics YOLO速度推定

# Run a speed example
yolo solutions speed show=True

# Pass a source video
yolo solutions speed source="path/to/video.mp4"

# Adjust meter per pixel value based on camera configuration
yolo solutions speed meter_per_pixel=0.05
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("speed_management.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Initialize speed estimation object
speedestimator = solutions.SpeedEstimator(
    show=True,  # display the output
    model="yolo11n.pt",  # path to the YOLO11 model file.
    fps=fps,  # adjust speed based on frame per second
    # max_speed=120,  # cap speed to a max value (km/h) to avoid outliers
    # max_hist=5,  # minimum frames object tracked before computing speed
    # meter_per_pixel=0.05,  # highly depends on the camera configuration
    # classes=[0, 2],  # estimate speed of specific classes.
    # line_width=2,  # adjust the line width for bounding boxes
)

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

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

    results = speedestimator(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

SpeedEstimator 議論

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

議論 タイプ デフォルト 説明
model str None Ultralytics YOLO モデルファイルへのパス。
fps float 30.0 速度計算に使用される1秒あたりのフレーム数。
max_hist int 5 速度/方向計算のために、オブジェクトごとに追跡する最大履歴ポイント。
meter_per_pixel float 0.05 ピクセルの距離を実世界の単位に変換するためのスケーリング係数。
max_speed int 120 ビジュアルオーバーレイの最高制限速度(アラートで使用)。

について SpeedEstimator ソリューションでは track パラメータがある:

議論 タイプ デフォルト 説明
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線幅は画像サイズに応じて自動的に調整されます。視覚的にわかりやすくカスタマイズできます。
show_conf bool True 各検出の信頼スコアがラベルと一緒に表示されます。各検出に対するモデルの確信度を示します。
show_labels bool True 視覚出力に各検出のラベルを表示。検出されたオブジェクトを即座に理解できます。

よくあるご質問

Ultralytics YOLO11 を使って物体の速度を推定するには?

Ultralytics YOLO11 を使って物体の速度を推定するには、物体検出と追跡技術を組み合わせる必要があります。まず、YOLO11 モデルを使って、各フレームでオブジェクトを検出する必要があります。次に、これらのオブジェクトをフレーム間で追跡し、時間的な動きを計算します。最後に、フレーム間のオブジェクトの移動距離とフレームレートを使って、オブジェクトの速度を推定します。

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.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
speedestimator = solutions.SpeedEstimator(
    model="yolo11n.pt",
    show=True,
)

while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        break
    results = speedestimator(im0)
    video_writer.write(results.plot_im)

cap.release()
video_writer.release()
cv2.destroyAllWindows()

詳しくは、公式ブログ記事をご覧ください。

Ultralytics YOLO11 を交通管理における速度推定に使用するメリットは?

Ultralytics YOLO11 を速度推定に使用することは、交通管理において大きな利点をもたらす:

  • 安全性の向上:車速を正確に推定して速度超過を検知し、交通安全を向上させます。
  • リアルタイム監視:YOLO11 のリアルタイム物体検知機能により、交通の流れや混雑を効果的に監視することができます。
  • 拡張性エッジデバイスからサーバーまで、様々なハードウェアセットアップにモデルを展開することで、大規模な実装に対する柔軟でスケーラブルなソリューションを実現します。

その他の用途については、速度推定の利点を参照。

YOLO11 は、次のような他のAIフレームワークと統合することができる。 TensorFlowまたは PyTorch?

はい、YOLO11 TensorFlow PyTorchような他のAIフレームワークと統合できます。Ultralytics 、YOLO11 モデルを以下のような様々なフォーマットにエクスポートするためのサポートを提供しています。 ONNX, TensorRTおよび CoreML他のMLフレームワークとのスムーズな相互運用性を保証します。

YOLO11 モデルをONNX フォーマットにエクスポートする:

yolo export --weights yolo11n.pt --include onnx

モデルのエクスポートについては、エクスポートに関するガイドをご覧ください。

Ultralytics YOLO11 を使った速度推定の精度は?

Ultralytics YOLO11 を用いた速度推定の精度は、物体追跡の品質、映像の解像度とフレームレート、環境変数など、いくつかの要因に依存する。速度推定器は信頼性の高い推定値を提供しますが、フレーム処理速度のばらつきやオブジェクトのオクルージョンのため、100%正確とは限りません。

:常に誤差を考慮し、可能であれば地上真実データで推定値を検証すること。

さらなる精度向上のヒントについては 議論 SpeedEstimator セクション.



📅作成:1年前 ✏️更新しました 26日前

コメント