複数カメラの映像に現れる物体を、共通の3D座標と同じIDで追跡する構成がDeepStream 9.1に加わった。移動物体の軌跡からカメラを校正し、その結果を視点間の対応付けに使う。
物体の軌跡からカメラの位置と向きを推定
NVIDIAの映像解析ソフトDeepStream 9.1には、自動校正ツールのAutoMagicCalib(AMC)と、複数視点の3D追跡機能Multi-View 3D Tracking(MV3DT)が導入された。AMCは既存の動画ファイルや映像ストリームで物体を追跡し、その軌跡を校正の入力にする。
軌跡から各カメラの焦点距離やレンズ歪みなどの内部パラメータと、位置や向きなどの外部パラメータを推定して校正ファイルを生成する。NVIDIAが示す構成では、従来の校正で使われるチェッカーボードなどのパターンを設置する代わりに、映像中を移動する物体を利用する。
校正結果を使って2Dの検出枠を3D座標へ移す
MV3DTは、AMCなどで校正されたカメラの投影行列を使い、映像内の検出結果を共通の3D座標へ移す。各カメラ映像では物体を個別に検出・追跡し、その2D検出枠を3×4投影行列で3D空間へ投影する。
この投影は、対象物が地面上にあるという仮定に基づく。カメラごとに得た位置を同じ座標系で扱うことで、別々の映像に現れた物体の対応付けへ進める。
カメラ間で追跡履歴を共有し、物体IDを統一
各視点の追跡結果は、短い追跡履歴であるtrackletとしてMQTT経由でカメラ間に共有される。MV3DTはその履歴を共通の3D座標で照らし合わせ、空間的に近い観測結果を対応付ける。
同じ物体と判定された観測結果には共通のIDを割り当てる。これにより、物体が別のカメラの映像に現れても、視点ごとに独立した追跡結果を一つの物体として扱える。
共通座標の軌跡を表示し、追跡データを配信
統一された位置とIDは、物体の移動を共通座標上に描く鳥瞰図の入力になる。複数カメラから得た追跡結果を、視点をまたぐ軌跡として確認できる。
後続の処理には、センサーID、物体ID、3D検出枠などを含むフレームごとのメタデータをKafka経由で渡す。メタデータにはprotobuf形式が使われる。