AI

映像からカメラを校正し、複数視点で物体を3D追跡するDeepStream 9.1

この記事のポイント

  1. 実現したこと

    映像解析ソフトDeepStream 9.1は、複数のカメラに映る同じ物体を共通の3D座標とIDで追跡する。

  2. 実現の仕組み

    カメラごとの映像から移動物体の軌跡を取り出し、焦点距離やカメラの位置・向きを推定する。

  3. 得られた結果

    追跡結果は、共通座標上の軌跡を示す鳥瞰図と、Kafka経由のフレーム別メタデータとして出力される。

  4. 従来との違い

    校正パターンを設置する従来の方法に対し、既存映像に映る移動物体の軌跡を校正に利用する構成が加わった。

3台のカメラの視野をまたぐ球の軌跡と、共通座標上の鳥瞰経路を示す図
AI生成画像

複数カメラの映像に現れる物体を、共通の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形式が使われる。