コンピュータービジョンプロジェクトにおける速度推定向けUltralytics YOLOv8
コンピュータービジョンプロジェクトで、Ultralytics YOLOv8モデルを速度推定に活用する方法をご紹介します。簡単なコード例を使って、実際に試してみましょう。
Abirami Vina7 分で読めます
制限速度の道路標識は、おそらく誰もが目にしたことがあるでしょう。自動化された速度違反の通知を郵送やメールで受け取ったことがある方もいるかもしれません。人工知能(AI)を活用した交通管理システムは、コンピュータービジョンによって速度違反を自動的に検知できます。街灯や高速道路に設置されたカメラで撮影したリアルタイム映像を速度推定に利用し、交通安全の強化に役立てます。
速度推定は、高速道路の安全対策だけに限られません。スポーツ、自動運転車、その他さまざまな用途で活用できます。この記事では、コンピュータービジョンプロジェクトでUltralytics YOLOv8モデルを使って速度を推定する方法をご紹介します。また、実際に試せるように、コーディング例を順を追って説明します。
速度推定で交通管理をより容易に#
世界保健機関(WHO)によると、道路交通事故では年間約116万人が死亡しており、速度超過は主な要因の一つです。さらに、2,000万から5,000万人が死亡には至らない負傷を負い、その多くが障害につながっています。速度推定は事故の防止、人命の保護、道路の安全性と効率性の維持に役立つため、交通安全の重要性はどれだけ強調してもしすぎることはありません。
コンピュータービジョンによる速度推定では、動画フレーム内の物体を検出し、トラッキングして移動速度を計算します。Ultralytics YOLOv8などのモデルは、連続するフレーム間で車両などの物体を識別し、追跡できます。システムは、キャリブレーション済みカメラや基準点を使って物体の移動距離を測定し、実世界の距離を推定します。物体が2点間を移動するのにかかった時間を計測し、距離と時間の比率から速度を計算します。

図1. Ultralytics YOLOv8モデルを使った速度推定。
速度違反の検知以外にも、AIを統合した速度推定システムは交通データを収集し、交通状況を予測できます。こうした予測は、信号のタイミングやリソース配分の最適化など、交通管理のタスクに役立ちます。交通パターンや渋滞の原因に関する分析結果を、新たな道路を計画して渋滞を緩和するために活用できます。
さまざまな業界における速度推定の活用例#
速度推定の用途は道路の監視にとどまりません。アスリートのパフォーマンスの監視、自動運転車が周囲を移動する物体の速度を把握するための支援、不審な行動の検知などにも役立ちます。カメラを使って物体の速度を測定できる場所なら、どこでもコンピュータービジョンによる速度推定を活用できます。
速度推定の活用例をいくつか紹介します。
- Teslaの自動運転車は、衝突を回避するためにビジョンベースの速度推定を使用しています。
- スマートシティでは、歩行速度を監視し、都市の移動性と安全性を高めるため、歩行者の歩行分析に関する研究が進められています。こうしたシステムは、歩行者の存在をドライバーに知らせ、事故を防ぐことができます。
- 動物の行動監視システムでは、速度推定を使って動物の動きを追跡し、苦痛や病気の兆候を検知します。

図2. 速度推定によって人の歩行速度を測定できます。
コンピュータービジョンによる速度推定のメリット#
精度の向上、費用対効果、柔軟性の高さから、ビジョンベースの速度推定システムが従来のセンサーベースの手法に取って代わりつつあります。LiDARなどの高価なセンサーに依存するシステムとは異なり、コンピュータービジョンは一般的なカメラを使って速度をリアルタイムで監視・分析します。速度推定向けのコンピュータービジョンソリューションは、既存の交通インフラに統合できます。また、車種の識別や交通パターンの分析など、複雑なタスクを実行するように構築でき、交通の流れと安全性の全体的な向上に役立ちます。
試してみましょう:Ultralytics YOLOv8による速度推定#
速度推定とその用途について理解できたところで、コードを使って、コンピュータービジョンプロジェクトに速度推定を統合する方法を詳しく見ていきましょう。Ultralytics YOLOv8モデルを使って移動中の車両を検出し、速度を推定します。
この例では、インターネットからダウンロードした道路上の車の動画を使用します。同じ動画でも、関連する別の動画でも構いません。Ultralytics YOLOv8モデルが各車両を検出して追跡し、速度推定器が動画のフレームレートとメートル毎ピクセルのスケールを使って、複数のフレームにわたる各追跡車両の移動距離を速度に換算します。
始める前に、このケースでの距離計算は近似値であり、ユークリッド距離で求めたピクセル距離に推定したメートル毎ピクセルの値を掛けて算出している点に注意してください。カメラキャリブレーションは考慮されていないため、速度推定が完全に正確とは限りません。
ステップ1: まず、Ultralyticsパッケージをインストールします。コマンドプロンプトまたはターミナルを開き、以下に示すコマンドを実行してください。
pip install ultralyticsインストール手順とベストプラクティスについては、Ultralyticsのインストールガイドをご覧ください。YOLOv8に必要なパッケージのインストール中に問題が発生した場合は、一般的な問題のガイドに解決方法と役立つヒントが記載されています。
ステップ2: 次に、必要なライブラリをインポートします。OpenCVライブラリは動画処理に使用します。
import cv2
from ultralytics import solutionsステップ3:このステップでは、OpenCVのVideoCaptureモジュールを使って入力動画ファイルを開きます。また、動画の幅、高さ、フレームレート(fps)も取得します。
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))ステップ4:ここでは、速度推定の最終結果を保存するために動画ライターを初期化します。出力動画ファイルは「speed_estimation.avi」として保存されます。
video_writer = cv2.VideoWriter("speed_estimation.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))ステップ5:次に、Ultralytics YOLOv8モデルと動画のフレームレートを使って速度推定オブジェクトを初期化します。meter_per_pixelの値はシーンの実世界スケールを設定するため、カメラの設定に合わせて調整してください。
speed_obj = solutions.SpeedEstimator(
model="yolov8n.pt",
fps=fps,
meter_per_pixel=0.05,
show=True,
)プロジェクトに最適なモデルを確認するには、サポート対象のモデル一覧をご覧ください。
ステップ6:スクリプトの中心部分では、動画をフレームごとに処理します。各フレームを読み込み、速度推定器が物体を検出・追跡して速度を推定し、注釈付きフレームを返します。そのフレームを出力動画に書き込みます。
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or video processing has been successfully completed.")
break
results = speed_obj(im0)
video_writer.write(results.plot_im)ステップ7:最後に、動画キャプチャとライターのオブジェクトを解放し、OpenCVのウィンドウをすべて閉じます。
cap.release()
video_writer.release()
cv2.destroyAllWindows()ステップ8:スクリプトを保存します。ターミナルまたはコマンドプロンプトから作業している場合は、次のコマンドでスクリプトを実行します。
python your_script_name.pyビジョンベースの速度推定における課題#
コンピュータービジョンを使った速度推定の実装には、どのような課題があるかを理解することも重要です。雨、霧、雪などの悪天候は道路の視認性を妨げ、システムに問題を引き起こす可能性があります。同様に、他の車両や物体によるオクルージョンによって、対象車両の速度を正確に追跡・推定することが難しくなる場合があります。影や太陽光の反射を生じさせる不適切な照明条件も、速度推定をさらに複雑にします。
もう1つの課題は、計算能力です。リアルタイムで速度を推定するには、高品質な交通監視カメラから大量の視覚データを処理する必要があります。これらすべてに対応し、遅延なく高速に動作させるには、高価なハードウェアが必要になる場合があります。
さらに、プライバシーの問題もあります。これらのシステムが収集するデータには、車種、モデル、ナンバープレート情報など、個人の車両情報が含まれる場合があり、本人の同意なしに収集される可能性があります。最新のHDカメラの中には、車内の乗員を撮影できるものもあります。このようなデータ収集は、細心の注意を払って対処すべき重大な倫理的・法的問題につながる可能性があります。
未来へ向けて加速する#
速度推定にUltralytics YOLOv8モデルを使うと、さまざまな用途に柔軟で効率的なソリューションを提供できます。厳しい条件下での精度やプライバシー問題への対応といった課題はありますが、そのメリットは大きいです。コンピュータービジョンを活用した速度推定は、従来の方法に比べて費用対効果が高く、適応性と精度にも優れています。交通、スポーツ、監視、自動運転車など、さまざまな分野で役立ちます。多くの利点と用途を踏まえると、将来のスマートシステムにおける重要な要素になる可能性があります。
AIに関心がありますか?コミュニティに参加しましょう!GitHubリポジトリでは、医療や農業など、さまざまな業界でAIを活用して革新的なソリューションを生み出す取り組みについて詳しくご覧いただけます。ぜひ一緒に協力し、革新を進め、学びましょう!
執筆者
コメント
質問したり、結果を共有したり、ほかの人をサポートしたりできます。










