(57)【要約】      （修正有）【課題】複数のカメラの高さおよび角度のキャリブレーションを行う装置を提供する。【解決手段】カメラキャリブレーション装置１は、複数のカメラ２２にて撮影した画像中の路面領域にある特徴点のフレーム間におけるフローを抽出する路面フロー抽出部１３と、車両センサ信号から車両座標系におけるフレーム間の車両回転量および移動量を計算する車両移動量計算部１１と、車両回転量および移動量を、前時刻までに得られた車両座標系における各カメラのカメラ姿勢およびカメラ高位置を用いて、ホモグラフィー行列を計算するホモグラフィー行列計算部１２と、各カメラの画像において、ホモグラフィー行列によって変換される特徴点の位置が路面フロー抽出部で求めた特徴点のフローと整合するように、複数のカメラのカメラ姿勢およびカメラ高さと車両移動パラメータの最適解を求めるパラメータ更新部１４とを備える。【選択図】図１
2020107938.tif 000002
【特許請求の範囲】
【請求項１】
車両に搭載された複数のカメラｉ（１≦ｉ≦Ｍ）のキャリブレーションを行う装置であって、
前記複数のカメラｉにて撮影した画像中の路面領域にある特徴点のフレーム間におけるフローを抽出する路面フロー抽出部と、
車両センサ信号を受信する受信部と、
前記車両センサ信号から車両座標系における前記フレーム間の車両回転量Ｒｖおよび移動量Ｃｖを計算する車両移動量計算部と、
前記車両回転量Ｒｖおよび移動量Ｃｖを、前時刻までに得られた車両座標系における各カメラｉのカメラ姿勢Ｒciおよびカメラ位置Ｃciを用いて、前記各カメラｉの座標系における前記フレーム間のカメラ回転量Ｒｉおよび移動量Ｃｉに変換し、ホモグラフィー行列Ｈｉを計算するホモグラフィー行列計算部と、
前記各カメラｉの画像において、ホモグラフィー行列Ｈｉによって変換される特徴点の位置が前記路面フロー抽出部で求めた特徴点のフローと整合するように、複数のカメラｉ（１≦ｉ≦Ｍ）のカメラ姿勢Ｒciおよびカメラ高さｈciと車両移動パラメータの最適解を求めるパラメータ更新部と、
を備えるカメラキャリブレーション装置。
【請求項２】
キャリブレーション前の前記複数のカメラｉのカメラ姿勢Ｒciおよび位置Ｃciのデータを記憶した記憶部を備え、
前記パラメータ更新部は、前記記憶部から読み出したカメラ姿勢Ｒciおよび高さｈciを初期値として前記最適解を求め、求めた各カメラｉのカメラ姿勢Ｒciおよびカメラ高さｈciの最適解によって前記記憶部のデータを更新する請求項１に記載のカメラキャリブレーション装置。
【請求項３】
車両に搭載された複数のカメラｉ（１≦ｉ≦Ｍ）のキャリブレーションを行う装置であって、
前記複数のカメラｉにて撮影した画像中の路面領域にある特徴点のフレーム間におけるフローを抽出する路面フロー抽出部と、
車両センサ信号を受信する受信部と、
前記車両センサ信号から車両座標系における前記フレーム間の車両回転量Ｒｖおよび移動量Ｃｖを計算する車両移動量計算部と、
前記車両回転量Ｒｖおよび前記移動量Ｃｖから求まる前記各カメラｉにおける前記特徴点のフローと、前記路面フロー抽出部で求めた特徴点のフローとが整合するように、車両移動パラメータおよびカメラパラメータの最適解を求めるパラメータ更新部と、
を備えるカメラキャリブレーション装置。
【請求項４】
前記車両センサ信号に基づいて車両が直進していると判定された場合には、
前記パラメータ更新部は、前記車両センサ信号から求められる前記車両回転量Ｒｖおよび移動量Ｃｖが正解であるとして、前記カメラパラメータの最適解を求める請求項１乃至３のいずれかに記載のカメラキャリブレーション装置。
【請求項５】
前記パラメータ更新部は、前記カメラパラメータの最適解を求めた後に、当該カメラパラメータが正解であるとして、前記車両移動パラメータの最適解を求める請求項４に記載のカメラキャリブレーション装置。
【請求項６】
前記車両センサ信号に基づいて前記車両が走行した軌跡を求め、当該軌跡およびカメラ姿勢Ｒciおよび位置Ｃciに基づいて前記路面領域を特定し、その路面領域に基づいて路面フローを抽出する請求項１乃至５のいずれかに記載のカメラキャリブレーション装置。
【請求項７】
前記複数のカメラｉで撮影された画像に基づいて、いずれかのカメラのピッチ軸回りの所定の閾値以上の変動を検知するピッチ変動検知部を備え、
前記ピッチ変動検知部にて、所定の閾値以上の変動を検知したときに、当該変動の際に撮影された画像をキャリブレーションの処理から除外する請求項１乃至６のいずれかに記載のカメラキャリブレーション装置。
【請求項８】
前記受信部にて受信した車両センサ信号に基づいて車両が加速しているか否かを判定し、
前記パラメータ更新部は、車両が加速している際に撮影された画像をキャリブレーションの処理から除外する請求項１乃至６のいずれかに記載のカメラキャリブレーション装置。
【請求項９】
車両に搭載された複数のカメラｉ（１≦ｉ≦Ｍ）のキャリブレーションを行う方法であって、
前記複数のカメラｉにて撮影した画像中の路面領域にある特徴点のフレーム間におけるフローを抽出するステップと、
車両センサ信号を受信するステップと、
前記車両センサ信号から車両座標系における前記フレーム間の車両回転量Ｒｖおよび移動量Ｃｖを計算するステップと、
前記車両回転量Ｒｖおよび移動量Ｃｖを、前時刻までに得られた車両座標系における各カメラｉのカメラ姿勢Ｒciおよびカメラ位置Ｃciを用いて、前記各カメラｉの座標系における前記フレーム間のカメラ回転量Ｒｉおよび移動量Ｃｉに変換し、ホモグラフィー行列Ｈｉを計算するステップと、
前記各カメラｉの画像において、ホモグラフィー行列Ｈｉによって変換される特徴点の位置が前記特徴点のフローと整合するように、複数のカメラｉ（１≦ｉ≦Ｍ）のカメラ姿勢Ｒciおよびカメラ高さｈciと車両移動パラメータの最適解を求めるステップと、
を備えるカメラキャリブレーション方法。
【請求項１０】
車両に搭載された複数のカメラｉ（１≦ｉ≦Ｍ）のキャリブレーションを行うためのプログラムであって、コンピュータに、
前記複数のカメラｉにて撮影した画像中の路面領域にある特徴点のフレーム間におけるフローを抽出するステップと、
車両センサ信号を受信するステップと、
前記車両センサ信号から車両座標系における前記フレーム間の車両回転量Ｒｖおよび移動量Ｃｖを計算するステップと、
前記車両回転量Ｒｖおよび移動量Ｃｖを、前時刻までに得られた車両座標系における各カメラｉのカメラ姿勢Ｒciおよびカメラ位置Ｃciを用いて、前記各カメラｉの座標系における前記フレーム間のカメラ回転量Ｒｉおよび移動量Ｃｉに変換し、ホモグラフィー行列Ｈｉを計算するステップと、
前記各カメラｉの画像において、ホモグラフィー行列Ｈｉによって変換される特徴点の位置が前記特徴点のフローと整合するように、複数のカメラｉ（１≦ｉ≦Ｍ）のカメラ姿勢Ｒciおよびカメラ高さｈciと車両移動パラメータの最適解を求めるステップと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車に搭載されたカメラの路面に対する高さおよび角度のキャリブレーション方法に関する。
【０００２】
従来から、車両に搭載された複数台のカメラの映像を利用して、車両周辺を上から見たような画像（鳥瞰画像）を提供する技術がある（特許文献１）。複数台のカメラ画像から鳥瞰画像を合成するためには、各カメラと路面の関係（カメラの位置と角度）を知る必要がある。
【０００３】
カメラの路面に対する位置や角度の推定（本書では「キャリブレーション」という）方法としては、工場の敷地内に規定のキャリブレーション用のボードや白線などを配置しておき、カメラでそれらを撮影した後に、既知のボードや白線などの位置情報に基づいてキャリブレーションを行う方法があった（特許文献２）。しかし、これらは最初の一度しかキャリブレーションを行わないため、例えば実際の走行時に、乗員や荷物の重みなどによって車両が傾いていたりすると、正しい鳥瞰画像が得られないなどの問題がある。
【０００４】
こうした問題を解決するために、走行中にキャリブレーションを行う方法も提案されている（特許文献３）。特許文献３では、カメラに映る路面のフローを入力としてホモグラフィー行列を推定し、それを分解することでカメラ姿勢と高さを推定する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−１８３８７７
【特許文献２】特開２０１２−０１５５７６
【特許文献３】特開２０１４−１０１０７５
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献３に記載された方法は、４つ以上の路面上のフロー（対応づけられた特徴点）からホモグラフィー行列を計算し、それをまずフレーム間のカメラ回転行列Ｒｃと移動ベクトルＴｃに分解した後、カメラ姿勢（角度）とカメラ高さを計算する。特許文献３に記載された方法は、フレーム間のカメラ回転行列Ｒｃが単位行列（車両は直進している）であるという制約がある。
【０００７】
また、特許文献３に記載された方法では、最初に得られたフレーム間のカメラ回転行列Ｒｃと移動ベクトルＴｃを分解してカメラ姿勢（角度）とカメラ高さを求めるので、ＲｃとＴｃの推定誤差の影響を受けやすく精度の低下が懸念される。また、複数のカメラのキャリブレーションを行う場合には、各カメラ間でのキャリブレーション結果が整合しないこともあった。
【０００８】
本発明は、上記背景に鑑み、複数のカメラの高さおよび角度のキャリブレーションを行う装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明のカメラキャリブレーション装置は、車両に搭載された複数のカメラｉ（１≦ｉ≦Ｍ）のキャリブレーションを行う装置であって、前記複数のカメラｉにて撮影した画像中の路面領域にある特徴点のフレーム間におけるフローを抽出する路面フロー抽出部と、車両センサ信号を受信する受信部と、前記車両センサ信号から車両座標系における前記フレーム間の車両回転量Ｒｖおよび移動量Ｃｖを計算する車両移動量計算部と、前記車両回転量Ｒｖおよび移動量Ｃｖを、前時刻までに得られた車両座標系における各カメラｉのカメラ姿勢Ｒciおよびカメラ位置Ｃciを用いて、前記各カメラｉの座標系における前記フレーム間のカメラ回転量Ｒｉおよび移動量Ｃｉに変換し、ホモグラフィー行列Ｈｉを計算するホモグラフィー行列計算部と、前記各カメラｉの画像において、ホモグラフィー行列Ｈｉによって変換される特徴点の位置が前記路面フロー抽出部で求めた特徴点のフローと整合するように、各カメラｉのカメラ姿勢Ｒciおよびカメラ高さｈciと車両移動パラメータの最適解を求めるパラメータ更新部とを備える。
【００１０】
また、キャリブレーション前の前記複数のカメラｉのカメラ姿勢Ｒciおよび位置Ｃciのデータを記憶した記憶部を備え、前記パラメータ更新部は、前記記憶部から読み出したカメラ姿勢Ｒciおよび高さｈciを初期値として前記最適解を求め、求めた各カメラｉのカメラ姿勢Ｒciおよびカメラ高さｈciの最適解によって前記記憶部のデータを更新してもよい。ここで、カメラ位置Ｃciは、車両座標系におけるカメラのｘｙｚ座標であり、カメラ高さｈciは、車両座標系におけるカメラの高さである。つまり、カメラ位置Ｃciが分かればカメラ高さｈciが分かる。
【００１１】
この構成により、各カメラｉの画像において、ホモグラフィー行列Ｈｉで変換された特徴点の位置と、路面フロー抽出部で求めたフローとが整合するように、カメラパラメータだけでなく、車両移動パラメータの最適解を求めるので、車両センサの信号に誤差が含まれていたり、車両運動モデルが想定と異なる場合にも、適切にカメラパラメータのキャリブレーションを行うことができる。ここで、車両移動パラメータは、フレーム間の車両回転ピッチ角ｖｐ，ヨー角ｖｙ，ロール角ｖｒ，及びｘｙｚ移動量ｖＸ，ｖＹ，ｖＺである。車両移動パラメータのすべてを更新してもよいし、例えば、平面上の２次元運動を仮定して、フレーム間の車両回転ヨー角ｖｙ，水平方向の移動量ｖＸ，ｖＺのみを更新してもよい。
【００１２】
本発明のカメラキャリブレーション装置は、車両に搭載された複数のカメラｉ（１≦ｉ≦Ｍ）のキャリブレーションを行う装置であって、前記複数のカメラｉにて撮影した画像中の路面領域にある特徴点のフレーム間におけるフローを抽出する路面フロー抽出部と、車両センサ信号を受信する受信部と、前記車両センサ信号から車両座標系における前記フレーム間の車両回転量Ｒｖおよび移動量Ｃｖを計算する車両移動量計算部と、前記車両回転量Ｒｖおよび前記移動量Ｃｖから求まる前記各カメラｉにおける前記特徴点のフローと、前記路面フロー抽出部で求めた特徴点のフローとが整合するように、車両移動パラメータおよびカメラパラメータの最適解を求めるパラメータ更新部とを備える。この構成により、車両センサの信号に誤差が含まれていたり、車両運動モデルが想定と異なる場合にも、適切にカメラパラメータのキャリブレーションを行うことができる。
【００１３】
本発明のカメラキャリブレーション装置は、前記車両センサ信号に基づいて車両が直進していると判定された場合には、前記パラメータ更新部は、前記車両センサ信号から求められる前記車両回転量Ｒｖおよび移動量Ｃｖが正解であるとして、前記カメラパラメータの最適解を求めてもよい。車両が直進している場合には車両センサ信号の誤差が小さいと考えられるので、車両センサ信号から求められる車両回転量Ｒｖおよび移動量Ｃｖが正解であるとして、カメラパラメータの最適解を容易に求めることができる。
【００１４】
本発明のカメラキャリブレーション装置において、前記パラメータ更新部は、前記カメラパラメータの最適解を求めた後に、当該カメラパラメータが正解であるとして、前記車両移動パラメータの最適解を求めてもよい。この構成により、車両移動パラメータの補正を行うことができる。
【００１５】
本発明のカメラキャリブレーション装置は、前記車両センサ信号に基づいて前記車両が走行した軌跡を求め、当該軌跡およびカメラ姿勢Ｒciおよび位置Ｃciに基づいて前記路面領域を特定し、その路面領域に基づいて路面フローを抽出してもよい。自車が走行してきた領域は、すなわち車や人などの障害物、歩道の路側などの段差などが存在しない領域といえる。このように自車が走行してきた軌跡を利用して路面領域を特定する構成により、路面以外の不要な物体から抽出されるフローを回避し、路面に含まれる特徴点のみを正しく抽出し、そのフローを求めることができる。
【００１６】
本発明のカメラキャリブレーション装置は、前記複数のカメラｉで撮影された画像に基づいて、いずれかのカメラのピッチ軸回りの所定の閾値以上の変動を検知するピッチ変動検知部を備え、前記ピッチ変動検知部にて、所定の閾値以上の変動を検知したときに、当該変動の際に撮影された画像をキャリブレーションの処理から除外してもよい。この構成により、例えば、路面に凹凸がある場合や路面が平面でない場合に撮影された画像は、カメラキャリブレーションの処理から除外できるので、精度の向上が期待できる。
【００１７】
本発明のカメラキャリブレーション装置は、前記受信部にて受信した車両センサ信号に基づいて車両が加速しているか否かを判定し、前記パラメータ更新部は、車両が加速している際に撮影された画像をキャリブレーションの処理から除外してもよい。車両が加速または減速している（すなわちマイナスの加速をしている）ときには、ピッチ変動が発生しやすいが、本発明の構成により、例えば、ピッチ変動しやすいときに撮影されたカメラ画像をカメラキャリブレーションの処理から除外できるので、精度の向上が期待できる。
【００１８】
本発明のカメラキャリブレーション方法は、車両に搭載された複数のカメラｉ（１≦ｉ≦Ｍ）のキャリブレーションを行う方法であって、前記複数のカメラｉにて撮影した画像中の路面領域にある特徴点のフレーム間におけるフローを抽出するステップと、車両センサ信号を受信するステップと、前記車両センサ信号から車両座標系における前記フレーム間の車両回転量Ｒｖおよび移動量Ｃｖを計算するステップと、前記車両回転量Ｒｖおよび移動量Ｃｖを、前時刻までに得られた車両座標系における各カメラｉのカメラ姿勢Ｒciおよびカメラ位置Ｃciを用いて、前記各カメラｉの座標系における前記フレーム間のカメラ回転量Ｒｉおよび移動量Ｃｉに変換し、ホモグラフィー行列Ｈｉを計算するステップと、前記各カメラｉの画像において、ホモグラフィー行列Ｈｉによって変換される特徴点の位置が前記特徴点のフローと整合するように、複数のカメラｉ（１≦ｉ≦Ｍ）のカメラ姿勢Ｒciおよびカメラ高さｈciと車両移動パラメータの最適解を求めるステップとを備える。
【００１９】
本発明のプログラムは、車両に搭載された複数のカメラｉ（１≦ｉ≦Ｍ）のキャリブレーションを行うためのプログラムであって、コンピュータに、前記複数のカメラｉにて撮影した画像中の路面領域にある特徴点のフレーム間におけるフローを抽出するステップと、車両センサ信号を受信するステップと、前記車両センサ信号から車両座標系における前記フレーム間の車両回転量Ｒｖおよび移動量Ｃｖを計算するステップと、前記車両回転量Ｒｖおよび移動量Ｃｖを、前時刻までに得られた車両座標系における各カメラｉのカメラ姿勢Ｒciおよびカメラ位置Ｃciを用いて、前記各カメラｉの座標系における前記フレーム間のカメラ回転量Ｒｉおよび移動量Ｃｉに変換し、ホモグラフィー行列Ｈｉを計算するステップと、前記各カメラｉの画像において、ホモグラフィー行列Ｈｉによって変換される特徴点の位置が前記特徴点のフローと整合するように、複数のカメラｉ（１≦ｉ≦Ｍ）のカメラ姿勢Ｒciおよびカメラ高さｈciと車両移動パラメータの最適解を求めるステップとを実行させる。
【発明の効果】
【００２０】
本発明によれば、複数のカメラのカメラパラメータのキャリブレーションを適切に行うことができる。
【図面の簡単な説明】
【００２１】
【図１】第１の実施の形態のカメラキャリブレーション装置の構成を示す図である。
【図２】アッカーマンモデルによるカメラ移動量の計算例を示す図である。
【図３】車両座標系とカメラ座標系の違いを説明するための図である。
【図４】車両座標系とカメラ座標系の変換式の導出方法について説明するための図である。
【図５】ホモグラフィー行列Ｈｉの計算の仕方を示す図である。
【図６】パラメータ更新部によるパラメータ更新処理の原理を示す図である。
【図７】ヤコビアン行列の統合の仕方を示す模式図である。
【図８】第１の実施の形態のカメラキャリブレーション装置の動作を示すフローチャートである。
【図９】第２の実施の形態のカメラキャリブレーション装置の構成を示す図である。
【図１０】第２の実施の形態のカメラキャリブレーション装置の動作を示すフローチャートである。
【図１１】第３の実施の形態のカメラキャリブレーション装置の構成を示す図である。
【図１２】第４の実施の形態のカメラキャリブレーション装置の構成を示す図である。
【発明を実施するための形態】
【００２２】
以下、本発明の実施の形態のカメラキャリブレーション装置について説明する。
（第１の実施の形態）
図１は、第１の実施の形態のカメラキャリブレーション装置１の構成を示す図である。カメラキャリブレーション装置１は、車両に搭載された複数のカメラの姿勢および路面からの高さのキャリブレーションを行う。カメラキャリブレーション装置１は、キャリブレーション対象の複数のカメラ２２と接続されており、複数のカメラ２２にて撮影された画像を取得する。また、カメラキャリブレーション装置１は、車載エリアネットワーク（ＣＡＮ）２１に接続されており、ＣＡＮ２１から車両センサ信号を受信する。
【００２３】
カメラキャリブレーション装置１は、車両センサ信号を受信する受信部１０と、車両移動量計算部１１と、ホモグラフィー行列計算部１２と、路面フロー抽出部１３と、パラメータ更新部１４と、パラメータ記憶部１５とを有している。
【００２４】
受信部１０は、車両センサ信号として、タイヤ切れ角θｔ、後輪中心位置の移動量distのデータを受信する。車両移動量計算部１１は、アッカーマンモデルに基づいて、車両回転量と移動量を求める。
【００２５】
図２は、アッカーマンモデルによる車両回転量及び移動量の計算例を示す図である。本実施の形態では、説明の便宜上、車両移動量計算部１１は、時刻ｔから時刻ｔ−１の間における車両回転量Ｒｖと移動量Ｃｖを求めるものとする。ここで求められる車両回転量Ｒｖと移動量Ｃｖは、車両座標系において定義された値である。
【数１】
2020107938.tif 000003
【００２６】
図３は、車両座標系とカメラ座標系の違いを説明するための図である。車両座標系の原点Ｏは後輪中心位置の路面上にあり、車両後方向きにＺｖ軸、垂直下向きにＹｖ軸、Ｚｖ軸に向かって右向きにＸｖ軸が定義される。これに対してカメラ座標系は、原点はカメラ中心にあり、車両座標系のＺ軸がカメラの光軸向きがＺｃ軸と一致するように、車両座標系を回転したものである。
【００２７】
ホモグラフィー行列計算部１２は、各カメラ２２におけるホモグラフィー行列を計算する機能を有する。以下の説明では、図１に示した複数のカメラ２２をカメラｉ（１≦ｉ≦Ｍ）という。各カメラｉにおけるホモグラフィー行列Ｈｉ（３×３行列）は、次式で計算される。
【数２】
2020107938.tif 000004
ここで、Ｒｉはフレーム間のカメラ回転量（３×３行列）、Ｃｉはフレーム間のカメラ移動量（３×１ベクトル）、ｎｉは路面法線（３×１ベクトル）、ｈｉ（スカラ）は路面からのカメラ高さを表す。これらはいずれもカメラｉのカメラ座標系で定義された値である。つまり、ホモグラフィー行列Ｈｉは、カメラｉの台数だけ存在する。
【００２８】
車両センサ信号に基づいてアッカーマンモデルで求められる車両回転量Ｒｖ、車両移動量Ｃｖは車両座標系で定義された後輪中心位置の移動量であるため、これらのパラメータをそのまま使ってホモグラフィー行列Ｈｉを求めることはできない。そこで、本実施の形態のカメラキャリブレーション装置１では、次のように座標系の変換を行うことにより、車両座標系の車両回転量Ｒｖおよび移動量Ｃｖを各カメラ座標系における各カメラの回転量Ｒｉ、移動量Ｃｉに変換し、ホモグラフィー行列Ｈｉに適用できるように工夫をしている。これにより、車両センサ信号から求まった車両回転量Ｒｖおよび移動量Ｃｖをキャリブレーションに用いることができる。
【数３】
2020107938.tif 000005
【００２９】
上式において、Ｒciが求めるべきカメラ姿勢のパラメータ（ヨー角、ピッチ角、ロール角）からなる行列（３×３）であり、ｈciが求めるべき高さのパラメータである。ヨー角θｙ、ピッチ角θｐ、ロール角θｒとしたとき、例えばＲciは以下の式で表される。
【数４】
2020107938.tif 000006
【００３０】
図４は、上式（４）〜（７）の導出方法について説明するための図である。図４は、時刻ｔ−１と時刻ｔにおけるカメラ座標系Ｘciと車両座標系Ｘｖとを変換する際の変換行列を示す図である。例えば、時刻ｔ−１のカメラ座標系Ｘci(t-1)を時刻ｔのカメラ座標系Ｘci(t)に変換するには、時刻ｔ−１のカメラ座標系Ｘci(t-1)に変換行列Ｔiを乗じることを示している。
【００３１】
時刻ｔのカメラ座標系Ｘci(t)を時刻ｔ−１のカメラ座標系Ｘci(t-1)で表す際には、図４の右回りと左回りの両方で表現することができ、これを式で表すと、次式のようになる。
【数５】
2020107938.tif 000007
ここで、
【数６】
2020107938.tif 000008
であることから、
【数７】
2020107938.tif 000009
となり、上式（４）〜（７）が得られる。
【００３２】
図５は、ホモグラフィー行列Ｈｉの計算の仕方を示す図である。図５に示すように車両センサからＣＡＮ信号を受信すると、車両移動量計算部１１にて、車両座標系における車両回転量Ｒｖと、車両移動量Ｃｖを計算する。また、現在のカメラパラメータに基づいて、車両座標系をカメラｉのカメラ座標系に変換する回転行列Ｒciを計算し、この回転行列Ｒciと位置Ｃci（と高さｈci）を用いてホモグラフィー行列Ｈｉを計算する。
【００３３】
パラメータ記憶部１５には、各カメラｉの姿勢Ｒciおよび位置Ｃciのデータが記憶されている。記憶されているのは、キャリブレーション前のデータである。本実施の形態のカメラキャリブレーション装置１によるキャリブレーションがまだ行われていないときには、出荷時に計測されたカメラの姿勢および位置のデータが記憶されている。
【００３４】
路面フロー抽出部１３は、各カメラｉにて取得した画像中の路面領域にある特徴点のフローを抽出する。時刻ｔ−１から時刻ｔまでの間に、路面上にある特徴点がどのように移動したかを求める。路面領域にある特徴点は、例えば、アスファルトのテクスチャ（模様）や道路標示のコーナ点等である。
【００３５】
パラメータ更新部１４は、パラメータ記憶部１５に記憶されているカメラパラメータを更新すると共に、車両移動パラメータを更新する。パラメータ更新部１４は、各カメラｉの画像において、ホモグラフィー行列Ｈｉによって変換される特徴点の位置が、路面フロー抽出部１３で求めた特徴点のフローと整合するように、車両移動パラメータ（ピッチ角ｖｐ，ヨー角ｖｙ，ロール角ｖｒ，ＸＹＺ移動量ｖＸ，ｖＹ，ｖＺ）およびカメラパラメータ（姿勢ピッチ角θｐ，ヨー角θｙ，ロール角θｒ，高さｈ）の最適解を求める機能を有する。
【００３６】
図６は、パラメータ更新部１４によるパラメータ更新処理の原理を示す図である。図６における点ｕｉpast、点ｕｉnow及び点ｕｉpredは、カメラｉのカメラ画像上の点を示す。点ｕｉpastは時刻ｔ−１における特徴点の位置を示し、点ｕｉnowは時刻ｔにおける特徴点の位置を示している。特徴点が点ｕｉpastが点ｕｉnowに移動したことは、路面フロー抽出部１３による路面フローの抽出結果から分かる。
【００３７】
点ｕｉpredは、時刻ｔ−１における点ｕｉpastにホモグラフィー行列Ｈｉを適用して求めた特徴点の予測位置を示している。具体的には、次式によって点ｕｉpredを求める。
【数８】
2020107938.tif 000010
ここで、ｋ（  ）はＸＹＺ座標系を画像座標系に投影する処理を表し、ｋ−１（  ）はその逆の処理を表す。
【００３８】
上記のようにして、各カメラｉの座標系において、点ｕｉnow及び点ｕｉpredが計算される。すべてのカメラｉの座標系における点ｕｉnowと点ｕｉpredとの誤差が最小となるようなホモグラフィー行列Ｈｉは、正しい車両移動パラメータと、カメラ姿勢および高さのパラメータとを含んでいるといえる。ホモグラフィー行列Ｈｉに含まれる車両回転量Ｒｖおよび移動量Ｃｖは、全てのカメラｉに共通の変数なので、パラメータ更新部１４は、カメラｉ毎に独立にパラメータを最適化するのではなく、全カメラｉから得られた点ｕｉnowと点ｕｉpredとの最小化を同時に行う。以上が本実施の形態のカメラキャリブレーション装置１が行う最適化の原理である。
【００３９】
具体的には、パラメータ更新部１４は、各カメラｉのホモグラフィー行列Ｈｉの最適化に用いるヤコビアン行列を統合し、統合したヤコビアン行列を用いてパラメータの最適化を行う。ここで、パラメータ更新部１４が推定するパラメータは、最大でフレーム間の車両回転ピッチ角ｖｐ，ヨー角ｖｙ，ロール角ｖｒ，及びｘｙｚ移動量ｖＸ，ｖＹ，ｖＺの６個と、カメラｉごとに、姿勢ピッチθｐ，ヨー角θｙ，ロール角θｒ，及び高さｈの４個である。つまり、カメラがＭ台ある場合には、最大で４×Ｍ個である。合計で、最大で６＋（４×Ｍ）個のパラメータが推定対象となる。
【００４０】
図６において、各カメラ画像ｉにおいて、最小化すべきコストＥは次式で与えられる。
【数９】
2020107938.tif 000011
コストＥを車両移動パラメータｖｐ，ｖｙ，ｖｒ，ｖＸ，ｖＹ，ｖＺで偏微分したカメラｉのヤコビアン行列Ｊvi（ｉ＝１，・・・，Ｍ）、及び、コストＥをカメラｉのカメラパラメータθｐ，ヨー角θｙ，θｒ，ｈで偏微分したカメラｉのヤコビアン行列Ｊci（ｉ＝１，・・・，Ｍ）は、次のようになる。
【数１０】
2020107938.tif 000012
【００４１】
図７は、ヤコビアン行列の統合の仕方を示す模式図である。各カメラｉで計算したヤコビアン行列Ｊvi，Ｊciを１つの行列内に配置することにより、統合する。統合したヤコビアン行列Ｊは、車両パラメータのヤコビアン行列Ｊvi（ｉ＝１，・・・，Ｍ）を列方向に並べた行列と、Ｊci（ｉ＝１，・・・，Ｍ）を対角に並べた対角行列とを配置した構成となっている。この行列のサイズは、以下のとおりである。
【数１１】
2020107938.tif 000013
【００４２】
パラメータ更新部１４は、例えば公知のレーベンバーグ・マーカート法（levenberg-marquardt）によって、上述した６＋４×Ｍ個のパラメータの最適解を求める。
パラメータ更新は以下のように行う。
【数１２】
2020107938.tif 000014
パラメータ更新時の各要素の行列サイズは、次のとおりである。
【数１３】
2020107938.tif 000015
【００４３】
以上、本実施の形態のカメラキャリブレーション装置１の構成について説明したが、上記したカメラキャリブレーション装置１のハードウェアの例は、ＣＰＵ、ＲＡＭ、ＲＯＭ、ハードディスク、ディスプレイ、キーボード、マウス、通信インターフェース等を備えたＥＣＵである。上記した各機能を実現するモジュールを有するプログラムをＲＡＭまたはＲＯＭに格納しておき、ＣＰＵによって当該プログラムを実行することによって、上記したカメラキャリブレーション装置１が実現される。このようなプログラムも本発明の範囲に含まれる。
【００４４】
図８は、第１の実施の形態のカメラキャリブレーション装置１の動作を示すフローチャートである。カメラキャリブレーション装置１は、ＣＡＮ２１から車両センサ信号（タイヤ切れ角θｔ、後輪中心の移動量distのデータ）を受信し（Ｓ１０）、受信した車両センサ信号に基づいて、車両座標系における車両回転量Ｒｖと車両移動量Ｃｖを求める（Ｓ１１）。
【００４５】
次に、カメラキャリブレーション装置１は、Ｍ台のカメラからカメラｉを選択する（Ｓ１２）。カメラキャリブレーション装置１は、選択したカメラｉで撮影された画像に基づいて、路面領域にある特徴点のフレーム間におけるフローを抽出する（Ｓ１３）。続いて、カメラキャリブレーション装置１は、ホモグラフィー行列Ｈｉを計算する（Ｓ１４）。路面ホモグラフィー行列Ｈｉは、図５で示した方法によって行う。
【００４６】
続いて、カメラキャリブレーション装置１は、式（１３）で示した予測誤差および式（１４）（１５）で示したヤコビアン行列を計算する（Ｓ１５）。次に、カメラキャリブレーション装置１は、全カメラについてヤコビアン行列の計算が終了したか否かを判定する（Ｓ１６）。全カメラについてヤコビアン行列の計算が終了していない場合には（Ｓ１６でＮＯ）、計算処理を行っていないカメラｉを選択し（Ｓ１２）、上述した処理（Ｓ１３〜Ｓ１５）を行う。
【００４７】
全カメラについて予測誤差およびヤコビアン行列の計算が終了した場合には（Ｓ１６でＹＥＳ）、カメラキャリブレーション装置１は、各カメラｉについて計算したヤコビアン行列を統合する（Ｓ１７）。ヤコビアン行列の統合は、図７を用いて説明した方法で行う。カメラキャリブレーション装置１は、例えばレーベンバーグ・マーカートＢ法によって、車両移動パラメータと各カメラｉのカメラパラメータを更新し（Ｓ１８）、更新処理により得られた車両移動パラメータおよび各カメラｉのカメラパラメータをパラメータ記憶部１５に記憶する（Ｓ１９）。
【００４８】
ここで、パラメータ更新処理の終了条件は、例えば、更新回数が所定の繰り返し回数に達したことや、パラメータの更新量が所定の閾値以下になったことである。終了条件を満たしていないと判定された場合には、カメラキャリブレーション装置１は、更新されたパラメータを用いて、各カメラｉの新しいホモグラフィー行列Ｈｉを計算し、上記した処理を繰り返す。
【００４９】
本実施の形態のカメラキャリブレーション装置１によれば、走行中にカメラのキャリブレーションを行うことができ、乗員や荷物の重量によって車体が傾いている場合等にもカメラの姿勢、路面高さを適切な値に設定できる。これにより、例えば、カメラ画像に基づいて俯瞰画像を生成する場合等に、キャリブレーション後のカメラパラメータを用いて、適切な俯瞰画像を生成することができる。
【００５０】
また、車両移動パラメータと各カメラｉのカメラパラメータを同時に最適化することができるので、アッカーマンモデルで得られた車両回転量Ｒｖと車両移動量Ｃｖに誤差が含まれている場合でも、その誤差を低減でき、カメラ姿勢Ｒciと高さｈciの精度向上が期待できる。複数のカメラのカメラパラメータのキャリブレーションを適切に行うことができる。
【００５１】
（第２の実施の形態）
図９は、第２の実施の形態のカメラキャリブレーション装置２の構成を示す図である。第２の実施の形態のカメラキャリブレーション装置２は、カメラパラメータが確定済みのときには、カメラキャリブレーション装置２によるパラメータの最適化を利用して、車両移動パラメータを最適化（補正）する。第２の実施の形態のカメラキャリブレーション装置２の基本的な構成は、第１の実施の形態のカメラキャリブレーション装置１と同じであるが、第２の実施の形態のカメラキャリブレーション装置２では、受信部１０とパラメータ更新部１４とが接続されている。受信部１０は、受信したステアリング角度に基づいて車両が直進しているかどうかの情報をパラメータ更新部１４に入力する。
【００５２】
図１０は、第２の実施の形態のカメラキャリブレーション装置２による処理を示すフローチャートである。カメラキャリブレーション装置２は、カメラパラメータが確定しているか否かを判定する（Ｓ２０）。カメラパラメータが確定していない場合には（Ｓ２０でＮＯ）、カメラパラメータを確定する処理を行う。第２の実施の形態では、車両が直進しているときのカメラ画像を用いてカメラパラメータを計算する。車両が直進しているときには、車両自体の回転による特徴点の回転がないため、カメラパラメータを精度良く計算できるためである。
【００５３】
カメラキャリブレーション装置２のパラメータ更新部１４は、受信部１０から取得した情報に基づいて、車両が直進しているか否かを判定する（Ｓ２１）。車両が直進していると判定された場合には（Ｓ２１でＹＥＳ）、ＣＡＮ信号に基づいて計算された車両移動パラメータを固定し、カメラパラメータの更新を行う（Ｓ２２）。カメラパラメータの更新の方法は、車両移動パラメータの値を正解として固定している点を除き、上記した第１の実施の形態で説明した方法と同じである。車両が直進していないと判定された場合には（Ｓ２１でＮＯ）、カメラパラメータの更新を行わず、次のカメラ画像の入力を待つ。
【００５４】
カメラパラメータが確定しているか否かの判定（Ｓ２０）において、確定していると判定された場合には（Ｓ２０でＹＥＳ）、カメラキャリブレーション装置のパラメータ更新部１４は、カメラパラメータを固定して、車両移動パラメータを更新する（Ｓ２３）。これにより、例えば、車両が右左折、レーン変更、Ｕターン等を行う場合に、キャリブレーション済みのカメラの画像に基づいて車両移動パラメータを補正することができる。
【００５５】
車両移動パラメータを補正することにより、例えば、移動ステレオカメラ等のアプリケーションで利用することができ、精度の良い測距等を行うことが可能となる。
【００５６】
（第３の実施の形態）
図１１は、第３の実施の形態のカメラキャリブレーション装置３の構成を示す図である。第３の実施の形態のカメラキャリブレーション装置３は、第１の実施の形態のカメラキャリブレーション装置１の構成に加え、路面領域特定部１６を備えている。
【００５７】
路面領域特定部１６は、車両移動量計算部１１にて求められた車両回転量Ｒｖと車両移動量Ｃｖを用いて、車両が走行してきた軌跡を計算し、求めた軌跡情報と現在のカメラ姿勢Ｒciと位置Ｃciを用いて画像中における路面領域を特定する。Ｒciとｈciは最終的な値ではなく誤差を含んでいる可能性があるので、それを考慮した路面領域を設定する。路面領域特定部１６は、特定した路面領域のデータを路面フロー抽出部１３に渡す。路面フロー抽出部１３は、フレーム間の画像情報に加えて、路面領域特定部１６より取得した路面領域のデータを用いて、路面フローを抽出する。
【００５８】
このように車両センサ信号に基づいて特定した路面領域のデータを用いることにより、路面に含まれるフローを適切に抽出することができる。
【００５９】
（第４の実施の形態）
図１２は、第４の実施の形態のカメラキャリブレーション装置４の構成を示す図である。第４の実施の形態のカメラキャリブレーション装置４は、第１の実施の形態のカメラキャリブレーション装置１の構成に加え、ピッチ変動検知部１７を備えている。
【００６０】
ピッチ変動検知部１７は、車両あるいはカメラがピッチ軸（図３でいうＸv軸あるいはＸc軸）周りに所定の閾値以上の変動をしたことを検知する機能を有する。所定の閾値は、例えば、単位時間あたりの回転角度で規定される。本実施の形態において、ピッチ変動検知部１７は、パラメータ更新部１４に接続されており、パラメータ更新部１４にて求めたカメラパラメータから、ピッチ変動を検知する。
【００６１】
ピッチ変動検知部１７は、ピッチ変動の検知結果をパラメータ更新部１４に入力する。これにより、カメラキャリブレーション装置４は、ピッチ変動検知部１７にてピッチ変動が検知された場合には、その変動が起こったときにフレームの画像をキャリブレーションに利用しない。これにより、路面が平面でない、あるいは、路面に凹凸があるような平面でないシーンを除外してカメラのキャリブレーションを行うので、キャリブレーションの精度を向上させることができる。
【００６２】
なお、本実施の形態では、車両パラメータあるいはカメラパラメータの推定結果を利用してピッチ変動を検知する例を挙げて説明したが、ピッチ変動を検知する方法は、車両パラメータあるいはカメラパラメータの推定結果を利用するだけではなく、例えば、車両センサ信号やカメラ画像に基づいてピッチ変動を検知することとしてもよい。画像を用いる場合、例えば画像全体からフローを検出し、そのフローの収束点（ＦＯＥ）の上下移動があった場合にピッチ変動が検出できる。また、ピッチセンサやジャイロセンサを用いて、ピッチ変動を検知してもよい。
【００６３】
本実施の形態では、ピッチ変動を検出したときに、カメラキャリブレーションを行わない構成としたが、ピッチ変動のデータに代えて加速度のデータを用いてもよい。例えば、図９で示したカメラキャリブレーション装置のように、受信部１０とパラメータ更新部１４とを接続しておき、パラメータ更新部１４は受信部１０から加速度のデータを取得する。そして、パラメータ更新部１４は、加速度が所定の閾値以上の場合には、カメラキャリブレーションを行わないように構成してもよい。車両の始動時（加速時）や、停車前（減速時）は、車体のピッチ変動が発生しやすいため、ピッチ変動に代えて加速度を用いて、カメラキャリブレーションを実施しないタイミングを決定する。ピッチ変動の検出が不要となるので、簡易な構成とすることができる。
【産業上の利用可能性】
【００６４】
本発明は、車両に搭載されたカメラのキャリブレーションを行う装置として有用である。
【符号の説明】
【００６５】
１〜４  カメラキャリブレーション装置
１０  受信部
１１  カメラ移動量計算部
１２  ホモグラフィー行列計算部
１３  路面フロー抽出部
１４  パラメータ更新部
１５  パラメータ記憶部
１６  路面領域特定部
１７  ピッチ変動検知部
２１  ＣＡＮ
２２  カメラ
【図１】
2020107938.tif 000016
【図２】
2020107938.tif 000017
【図３】
2020107938.tif 000018
【図４】
2020107938.tif 000019
【図５】
2020107938.tif 000020
【図６】
2020107938.tif 000021
【図７】
2020107938.tif 000022
【図８】
2020107938.tif 000023
【図９】
2020107938.tif 000024
【図１０】
2020107938.tif 000025
【図１１】
2020107938.tif 000026
【図１２】
2020107938.tif 000027