Ultralytics YOLO27: ウェイトリストに登録する
YOLOのライセンス
Ultralytics用語集に戻る

Real-time Inference

リアルタイム推論では、30 FPSの場合に1フレームあたり33 ms以内で処理するなど、次の入力が届く前に各予測を返します。レイテンシの予算と高速化の方法を解説します。

リアルタイム推論では、ライブ入力に対して学習済みモデルを実行し、次の入力が到着する前に各予測を返すため、情報が最新であるうちにシステムが動作できます。毎秒30フレーム(FPS)のカメラでは、画像の読み込みから最終結果の出力まで、1フレームあたり33.3ミリ秒が割り当てられます。60 FPSでは、許容時間は16.7 msに短縮されます。アプリケーションごとに期限は異なります。自動車の認識スタック、コンベヤーベルトの検査カメラ、ビデオ通話の背景フィルターは、いずれも異なる時間制約でリアルタイムに動作します。

レイテンシの予算#

計測対象となるのは、フレームの取得、リサイズと正規化による前処理、モデルの順伝播、ボックスのデコードや非最大抑制(NMS)などの後処理を含む、エンドツーエンドの推論レイテンシです。合計時間がフレーム間隔を超えると、未処理のフレームが蓄積し、出力がライブ映像からさらに遅れていきます。そのため、ライブパイプラインでは通常、古いフレームを破棄し、常に最新のフレームを処理します。リアルタイムコンピューティングでは、エアバッグ制御装置のように期限を逃すと障害になるハードリアルタイムシステムと、時折の遅延を許容するソフトリアルタイムシステムを区別します。ほとんどのコンピュータービジョンアプリケーションはソフトリアルタイムです。フレームが破棄されると一時的に出力品質が下がりますが、次のフレームで回復します。

このコードは、録画済み動画をストリーミングして小型検出器に入力し、1フレームあたりの平均処理時間を30 FPSの予算と比較します。

from ultralytics import YOLO

model = YOLO("yolo26n.pt")
video = "https://github.com/ultralytics/assets/releases/download/v0.0.0/decelera_portrait_min.mov"

# stream=True yields each frame's result as soon as it is ready
frame_times = []
for result in model(video, stream=True):
    # Preprocess, inference, and postprocess time for this frame, in milliseconds
    frame_times.append(sum(result.speed.values()))

mean_ms = sum(frame_times) / len(frame_times)
print(f"{mean_ms:.1f} ms per frame ({1000 / mean_ms:.0f} FPS); a 30 FPS camera allows 33.3 ms")

平均時間が33.3 ms未満であれば、そのモデルは実行したハードウェア上で30 FPSのカメラ処理に追いついています。

リアルタイム推論とバッチ推論#

  • リアルタイム(オンライン)推論: 入力が到着するたびに、通常は画像を1枚ずつ処理し、個々の予測すべてについてレイテンシを評価します。運転支援、ロボット制御、ライブ動画分析で必要とされます。
  • バッチ(オフライン)推論: 多数の入力を集めてまとめて処理し、1秒あたりの入力数で表すスループットとコストで評価します。写真アーカイブの夜間の再インデックス作成や、先月の映像の分析はバッチ処理です。バッチサイズを大きくするとGPUをより有効に使えますが、各入力の結果を得るまでの待ち時間は長くなります。

多数のカメラストリームを扱うサーバーは、リアルタイム処理とバッチ処理の中間的な方法を取ることがよくあります。複数のカメラからのフレームを小さなバッチにまとめてスループットを高めつつ、各ストリームのフレーム予算内に処理を収めます。

実際のアプリケーション#

  • 自動運転車: 時速100 kmでは、車は100 msごとに2.8メートル進むため、認識のレイテンシが停止距離に直接影響します。
  • 製造検査: コンベヤー上のカメラは各部品の欠陥を検出し、不良品が通過する前に排除機構を作動させる必要があります。
  • ロボティクス: 障害物検出と姿勢推定はロボットの制御ループ内で実行されるため、認識処理が遅くなると動作も遅くなります。
  • 動画エフェクトと拡張現実: ビデオ通話の背景ぼかしやARオーバーレイでは、各フレームでセグメンテーションやトラッキングを実行します。遅延があると、オーバーレイが動く人物に遅れて表示されます。

モデルを十分に高速化する方法#

  • 小型モデルまたは入力サイズの縮小: 小型のモデルバリエーションでは、画像あたりの演算回数が少なくなります。畳み込みの計算量はおおむねピクセル数に比例するため、入力の幅と高さを半分にすると計算量は約4分の1になりますが、小さな物体の精度はある程度低下します。
  • モデル量子化: 重みと活性化をFP32ではなくFP16またはINT8で保存すると、メモリアクセスが減り、高速な演算ユニットを利用できます。INT8では通常、精度の低下を抑えるためにキャリブレーション画像が必要です。
  • 推論エンジン: 特定のハードウェア群向けに構築されたランタイムは、レイヤーを融合し、デバイスに最適化されたカーネルを選択します。たとえば、NVIDIA GPU向けのTensorRTやAppleデバイス向けのCore MLがあります。
  • エッジAI: カメラや組み込みモジュール上でモデルを実行すると、クラウド呼び出しに伴うネットワーク往復をなくせます。低速な接続では、その往復時間がフレーム予算全体を超えることがあります。

ランタイムとハードウェアにより、レイテンシは桁違いに変化します。nano YOLO26モデルは、CPU上でONNXを使用すると640ピクセル画像1枚あたり38.9 msかかりますが、NVIDIA T4 GPU上でTensorRTを使用すると1.7 msです。Ultralyticsのエクスポートモードは、学習済みYOLO26モデルをTensorRT、OpenVINO、LiteRTなどの形式に変換します。また、quantize=16またはquantize=8引数を指定すると、対象デバイス向けのFP16またはINT8重みを生成します。

ソリューションを見る

スポーツにおけるコンピュータービジョン

スポーツにおけるコンピュータービジョン

Ultralytics YOLOが、選手やボールの追跡、パフォーマンス分析、コーチングへの知見、アスリートのリハビリを通じて、スポーツビジョンをどのように支えるかをご紹介します。
詳しく見る
航空画像向けコンピュータービジョン

航空画像向けコンピュータービジョン

Ultralytics YOLOを使用して、ドローンや航空画像をリアルタイムの知見に変換し、農業、水産養殖、自然保護、地理空間分析に活用できます。
詳しく見る
航空宇宙分野のコンピュータービジョン

航空宇宙分野のコンピュータービジョン

Ultralytics YOLOを活用して航空宇宙分野でコンピュータビジョンを導入し、航空機検査、滑走路上のFOD検出、空港の地上業務、複合材の欠陥検出に活用できます。
詳しく見る
セキュリティ分野のコンピュータービジョン

セキュリティ分野のコンピュータービジョン

Ultralytics YOLOモデルであらゆる施設を保護しましょう。ビジョンAIは、周辺監視、脅威検知、ナンバープレート認識、職場の安全管理を支援します。
詳しく見る
ロボティクス分野のコンピュータービジョン

ロボティクス分野のコンピュータービジョン

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律ナビゲーション、認識、物体追跡、リアルタイム制御を支援します。
詳しく見る
物流におけるコンピュータービジョン

物流におけるコンピュータービジョン

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物検査、仕分け、車両追跡、倉庫のリアルタイム安全監視を実現します。
詳しく見る
小売業におけるコンピュータービジョン

小売業におけるコンピュータービジョン

Ultralytics YOLOモデルで小売のあり方を変革しましょう。ビジョンAIにより、在庫追跡、棚の監視、行列管理、より高度な顧客インサイトを実現します。
詳しく見る
医療分野におけるコンピュータービジョン

医療分野におけるコンピュータービジョン

Ultralytics YOLOモデルで医療ソリューションを構築しましょう。医療分野のビジョンAIは、医用画像処理の高速化、より高度な診断、患者モニタリングを実現します。
詳しく見る
製造業におけるコンピュータービジョン

製造業におけるコンピュータービジョン

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPE準拠、組立ラインの自動化を推進します。
詳しく見る
自動車分野におけるコンピュータービジョン

自動車分野におけるコンピュータービジョン

Ultralytics YOLOモデルで自動車分野にコンピュータービジョンを導入しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。
詳しく見る
農業におけるコンピュータービジョン

農業におけるコンピュータービジョン

Ultralytics YOLOモデルでスマート農業にビジョンAIを導入しましょう。作物のモニタリング、家畜の追跡、精密農業を支援し、より高く効率的な収量を実現します。
詳しく見る

AIの未来を一緒に築きましょう!

機械学習の未来に向けた歩みを始めましょう