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