P3P問題を使用してドラレコ映像から車速を推定する

ドラレコ映像からの車速推定

 ドラレコ映像のみから自己車速を推定する方法は様々あるが、一般的には寸法が既知の路面標示が見切れる時間を計測することが多い。最近の自動運転関連のレポートを見ると、ステレオカメラやLiDARなどを駆使して自己車速だけでなく対向車車速などを推定しているようにある。特徴点検出など様々なハードルはあれど、画像上の特徴点間の実距離を計測できるため比較的手軽に車速を推定できる。
 ドラレコ映像のみから自己車速を推定するとき問題となるのが特徴点と特徴点間の実距離。前述した方法では、寸法が既知の特徴点が見切れるタイミングでしか車速推定できない。都合よく寸法が既知の特徴点がちょうどいい位置に映ることなんか稀なので実用性はいまいち。
 P3P問題を解くとちょうどいい位置(見切れる位置)に映らなくてもカメラ位置がわかるのでドラレコ映像の自己車速推定の適用範囲が広がる。というか、流行りのVSLAMとかSfMは、P3Pを拡張したPnP問題とかをゴリゴリ解いてるのでできるのは当たり前のことではある。研究でやってる人は何を当たり前のことを言ってるんだと思うはずではある。

実験条件

 使用したドラレコにはGPSセンサが付いていないため、自己車速の真値はUSB型のGPSセンサで取得した。GPS車速とドラレコ映像の同期は、GPSのタイムスタンプ表示をドラレコに映しこんで時差を計算して合わせた。
 計算に使用した画像は以下のような路面標示「横断歩道又は自転車横断帯あり」(以後ダイヤマーク)が映った8枚の画像である。これらの画像は事前にチェッカーボードを使用したカメラキャリブレーション方法でレンズの歪曲収差を取り除いている。

 前の記事で実装したコードの、画像位置に画像上のダイヤマークの頂点のピクセル位置、画像位置に対応する三次元空間位置にダイヤマークの実寸法を入力した。
jonajiro.hatenablog.com

実験結果

 以下に、ダイヤマークと推定されたカメラ位置を3次元上に表示した。なお、4次方程式の解はそれぞれ2候補ずつ計算されたが、ダイヤマークに対して車両がy軸負方向にあることを前提として解を1つに絞り込んだ。緑矢印が自己車両の進行方向。

 各フレーム間のカメラ移動距離をユークリッド距離で算出し、フレームレートを掛け算したものを以下の表に示す。

 1フレーム間で計算した速度はばらつきがあるが、7フレーム間の平均値は真値とのずれが1%未満であった。誤差要因は、画像上のダイヤマーク頂点の選択誤差、カメラキャリブレーションで取り除けなかった歪曲収差、フロントガラスで生じた歪み、動画フレームレート誤差などが考えられる。

応用

 対向車のナンバープレートの大きさを使用してカメラ位置を計算すれば、路面標示などの地面定着物を使用した自己位置推定と組み合わせて対向車車速の推定も可能と考えられる。でも実験がめんどくさそう。