(57)【要約】【課題】カメラにより取得された画像にもとづいて走行中に路面に対するカメラの取り付け角度の情報を取得し、この情報にもとづいて画像を回転補正することができる車載カメラ用自動キャリブレーション装置を提供する。【解決手段】本発明の一実施形態に係る車載カメラ自動キャリブレーション装置１０は、少なくとも路面点抽出部２７、Ｚ軸回転量算出部２８および座標回転補正部２１を備える。路面点抽出部２７は、複数の画像のうちの所定の画像内の路面上の３点以上の複数点を抽出し、複数点から２点の組み合わせを複数抽出する。Ｚ軸回転量算出部２８は、路面点抽出部２７により抽出された複数の２点の組み合わせと、各点に対応する動きベクトルと、にもとづいて、光軸をＺ軸とするカメラ座標系において路面とＸ軸とを平行にするためのＺ軸周りの回転量を求める。座標回転補正部２１は、Ｚ軸回転量算出部により求められたＺ軸周りの回転量にもとづいてカメラ１１の撮像画像をＺ軸周りに回転補正する。【選択図】  図１
2013238497.tif 000002
【特許請求の範囲】
【請求項１】
車両に設けられ前記車両の周辺を撮像するカメラと、
前記カメラにより撮像された複数の画像間の動きベクトルを求める動きベクトル算出部と、
前記複数の画像のうちの所定の画像内の路面上の３点以上の複数点を抽出し、前記複数点から２点の組み合わせを複数抽出する路面点抽出部と、
前記路面点抽出部により抽出された複数の２点の組み合わせと、各点に対応する動きベクトルと、にもとづいて、光軸をＺ軸とするカメラ座標系において前記路面とＸ軸とを平行にするためのＺ軸周りの回転量を求めるＺ軸回転量算出部と、
前記Ｚ軸回転量算出部により求められた前記Ｚ軸周りの回転量にもとづいて前記カメラの撮像画像をＺ軸周りに回転補正する座標回転補正部と、
を備えた車載カメラ自動キャリブレーション装置。
【請求項２】
前記Ｚ軸回転量算出部は、
前記所定の画像上の前記路面上の２点の座標と、この２点に対応する動きベクトルと、前記路面とＸ軸とがなす角と、を関係付ける式を用いて、前記複数の２点の組み合わせと前記各組み合わせの２点に対応する動きベクトルとにもとづいて、前記路面とＸ軸とを平行にするためのＺ軸周りの回転量を求める、
請求項１記載の車載カメラ自動キャリブレーション装置。
【請求項３】
複数の前記動きベクトルから得られる消失点座標を目標消失点座標に変換するための、Ｘ軸周りの回転量およびＹ軸周りの回転量を求めるＸＹ軸回転量算出部、
をさらに備え、
前記座標回転補正部はさらに、
前記ＸＹ軸回転量算出部により求められた前記Ｘ軸周りの回転量および前記Ｙ軸周りの回転量にもとづいて前記カメラの撮像画像をＸ軸周りおよびＹ軸周りにそれぞれ回転補正する、
請求項１または２記載の車載カメラ自動キャリブレーション装置。
【請求項４】
前記Ｚ軸回転量算出部は、
前記所定の画像ごとに求めた所定数の前記Ｚ軸周りの回転量を平均してＺ軸周りの平均回転量を求め、
前記座標回転補正部は、
前記Ｚ軸回転量算出部により求められた前記Ｚ軸周りの平均回転量にもとづいて前記カメラの撮像画像をＺ軸周りに回転補正する、
請求項１ないし３のいずれか１項に記載の車載カメラ自動キャリブレーション装置。
【請求項５】
前記目標消失点座標は、
前記所定の画像の原点からＹ軸方向に所定の距離だけ離れた座標であり、
前記Ｚ軸回転量算出部は、
前記所定の画像上の前記路面上の２点の座標と、この２点に対応する動きベクトルと、前記路面とＸ軸とがなす角と、前記目標消失点座標と、を関係付ける式を用いて、前記複数の２点の組み合わせと前記各組み合わせの２点に対応する動きベクトルと前記目標消失点座標とにもとづいて、前記路面とＸ軸とを平行にするためのＺ軸周りの回転量を求める、
請求項３または４に記載の車載カメラ自動キャリブレーション装置。
【請求項６】
前記路面点抽出部は、
前記所定の画像内の前記路面上の点であるとともに前記複数の動きベクトルから得られる消失点座標からの距離が第１の閾値以上である点を複数点抽出する、
請求項３ないし５のいずれか１項に記載の車載カメラ自動キャリブレーション装置。
【請求項７】
前記路面点抽出部は、
前記複数点から選択した２点の組み合わせのうち、２点間の距離が第２の閾値以上である組み合わせを複数抽出する、
請求項１ないし６のいずれか１項に記載の車載カメラ自動キャリブレーション装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、車載カメラ自動キャリブレーション装置に関する。
【背景技術】
【０００２】
最近、車両の周囲状況を撮像するための車載カメラを搭載した自動車などの車両が増えてきている。車載カメラにより撮像された画像は、駐車時のハンドル操作の支援や車両と対象物との衝突可能性の判定などに利用することができるため、大変便利である。
【０００３】
車載カメラの撮像画像を利用する場合、車載カメラの路面に対する取り付け角度を正確に校正することが重要である。この種の車載カメラの校正方法としては、路面の所定位置にあらかじめ配置した既知の対象物（キャリブレーションターゲット）を用いる方法などがある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−１０７３４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところが、あらかじめ路面に設置したキャリブレーションターゲットを用いて車載カメラの路面に対する取り付け角度を校正する場合、校正時の車両の状況は、実際の車両走行時の車両の状況と必ずしも一致するとは限らない。たとえば、車載カメラの路面に対する取り付け角度は、乗車人数や積載量の変動に応じて変化してしまう。このため、キャリブレーションターゲットを用いた校正は、車両走行時の取り付け角度に対する校正としては不十分である。また、車載カメラの路面に対する取り付け角度は、キャリブレーションターゲットを用いた校正後の経年変化などによっても変化してしまう。
【課題を解決するための手段】
【０００６】
本発明の一実施形態に係る車載カメラ自動キャリブレーション装置は、上述した課題を解決するために、カメラ、動きベクトル算出部、路面点抽出部、Ｚ軸回転量算出部および座標回転補正部を備える。カメラは、車両に設けられ車両の周辺を撮像する。動きベクトル算出部は、カメラにより撮像された複数の画像間の動きベクトルを求める。路面点抽出部は、複数の画像のうちの所定の画像内の路面上の３点以上の複数点を抽出し、複数点から２点の組み合わせを複数抽出する。Ｚ軸回転量算出部は、路面点抽出部により抽出された複数の２点の組み合わせと、各点に対応する動きベクトルと、にもとづいて、光軸をＺ軸とするカメラ座標系において路面とＸ軸とを平行にするためのＺ軸周りの回転量を求める。座標回転補正部は、Ｚ軸回転量算出部により求められたＺ軸周りの回転量にもとづいてカメラの撮像画像をＺ軸周りに回転補正する。
【図面の簡単な説明】
【０００７】
【図１】本発明の第１実施形態に係る車載カメラ自動キャリブレーション装置の一例を示す全体構成図。
【図２】第１実施形態に係るカメラ座標系とカメラ投影面上の画面座標系との関係を示す説明図。
【図３】（ａ）は現在の消失点ＦＯＥ０を第１実施形態に係る目標消失点ＦＯＥ１に変換するためのＹ軸周りの回転量θｙについて説明するための図、（ｂ）は現在の消失点ＦＯＥ０を第１実施形態に係る目標消失点ＦＯＥ１に変換するためのＸ軸周りの回転量θｘについて説明するための図。
【図４】路面とＸ軸とを平行にするためのＺ軸周りの回転量θｚについて説明するための図。
【図５】図１に示す自動校正ＥＣＵにより、カメラにより取得された画像にもとづいて走行中に路面に対するカメラの取り付け角度の情報を取得し、この情報にもとづいて画像を回転補正する際の手順を示すフローチャート。
【図６】図５のステップＳ４で実行されるθｘθｙ算出処理の手順を示すサブルーチンフローチャート。
【図７】図５のステップＳ６で実行されるθｚ算出処理の第１実施形態に係る手順を示すサブルーチンフローチャート。
【図８】本発明の第２実施形態に係る車載カメラ自動キャリブレーション装置の一例を示す全体構成図。
【図９】第２実施形態に係るカメラ座標系とカメラ投影面上の画面座標系との関係を示す説明図。
【図１０】第１実施形態に係るカメラ座標系と第２実施形態に係るカメラ座標系との関係を示す説明図。
【図１１】図５のステップＳ６で実行されるθｚ算出処理の第２実施形態に係る手順を示すサブルーチンフローチャート。
【発明を実施するための形態】
【０００８】
本発明に係る車載カメラ自動キャリブレーション装置の実施の形態について、添付図面を参照して説明する。
【０００９】
（第１の実施形態）
図１は、本発明の第１実施形態に係る車載カメラ自動キャリブレーション装置１０の一例を示す全体構成図である。
【００１０】
車載カメラ自動キャリブレーション装置１０は、カメラ１１、車載カメラ自動校正ＥＣＵ（Electronic Control Unit）１２および記憶部１３を有する。
【００１１】
カメラ１１は、ＣＣＤ（Charge Coupled Device）イメージセンサやＣＭＯＳ（Complementary Metal Oxide Semiconductor）イメージセンサにより構成され、自家用自動車等の車両周囲の画像を取り込んで画像信号を生成して車載カメラ自動校正ＥＣＵ（以下、自動校正ＥＣＵという）１２に与える。
【００１２】
たとえば後方を監視する場合、カメラ１１は車両後部のナンバープレート付近やリアウインドウの上部などに設けられる。このとき、カメラ１１は、光軸が路面と平行となるように、または光軸を路面と平行な線からやや下向きとなるように設けられるとよい。また、カメラ１１には、より広範な車両外画像が取得可能なように広角レンズや魚眼レンズが取り付けられてもよい。また、車両の側方を監視する場合、カメラ１１はサイドミラー付近に配設される。もちろん、複数のカメラ１１を用いることにより広範な車外周囲画像を取り込むようにしてもよい。
【００１３】
本実施形態においては、カメラ１１が、車両後部のナンバープレート付近やリアウインドウの上部などに、光軸が路面と平行となるように設けられる場合の例について説明する。
【００１４】
自動校正ＥＣＵ１２は、ＣＰＵ、ＲＡＭおよびＲＯＭなどの記憶媒体などにより構成される。自動校正ＥＣＵ１２のＣＰＵは、ＲＯＭなどの記憶媒体に記憶された自動校正プログラムおよびこのプログラムの実行のために必要なデータをＲＡＭへロードする。そして、ＣＰＵは、自動校正プログラムに従って、カメラ１１により取得された画像にもとづいて走行中に路面に対するカメラ１１の取り付け角度の情報を取得し、この情報にもとづいて画像を回転補正する。
【００１５】
自動校正ＥＣＵ１２のＲＡＭは、ＣＰＵが実行するプログラムおよびデータを一時的に格納するワークエリアを提供する。自動校正ＥＣＵ１２のＲＯＭなどの記憶媒体は、自動校正プログラムや、これらのプログラムを実行するために必要な各種データを記憶する。
【００１６】
なお、ＲＯＭをはじめとする記憶媒体は、磁気的もしくは光学的記録媒体または半導体メモリなどの、ＣＰＵにより読み取り可能な記録媒体を含んだ構成を有し、これら記憶媒体内のプログラムおよびデータの一部または全部は図示しないネットワーク接続部を介して電子ネットワークを介してダウンロードされるように構成してもよい。
【００１７】
なお、この場合、ネットワーク接続部は、ネットワークの形態に応じた種々の情報通信用プロトコルを実装し、この各種プロトコルに従って自動校正ＥＣＵ１２と他の車両のＥＣＵなどの電気機器とを電子ネットワークを介して接続する。この接続には、電子ネットワークを介した電気的な接続などを適用することができる。ここで電子ネットワークとは、電気通信技術を利用した情報通信網全般を意味し、無線／有線ＬＡＮ（Local Area Network）やインターネット網のほか、電話通信回線網、光ファイバ通信ネットワーク、ケーブル通信ネットワークおよび衛星通信ネットワークなどを含む。
【００１８】
記憶部１３は、自動校正ＥＣＵ１２によるデータの読み書きが可能な不揮発性のメモリであり、本実施形態に係る目標消失点の座標の情報である目標ＦＯＥ１（ｘ１、ｙ１）、ＦＯＥ距離閾値ｔｈ１、２点間距離閾値ｔｈ２およびルックアップテーブルなどを記憶する。これらの情報は、電子ネットワークを介してまたは光ディスクなどの可搬型記憶媒体を介して更新されてもよい。
【００１９】
本実施形態に係る目標ＦＯＥ１（ｘ１、ｙ１）は、原点（０、０）に設定される（目標ＦＯＥ１＝（０、０））。この目標ＦＯＥ１は、自動校正ＥＣＵ１２によりＸＹ軸周りの回転補正に用いられる。ＦＯＥ距離閾値ｔｈ１および２点間距離閾値ｔｈ２は、自動校正ＥＣＵ１２により路面点を抽出する際の閾値として用いられる。ルックアップテーブルは、自動校正ＥＣＵ１２により画像を回転補正する際に必要に応じて参照される。なお、自動校正ＥＣＵ１２が画像を回転補正する際に行列演算を行う場合には、ルックアップテーブルは利用されなくてもよく、記憶部１３に記憶されずともよい。
【００２０】
図１に示すように、自動校正ＥＣＵ１２のＣＰＵは、自動校正プログラムによって、少なくとも座標回転補正部２１、動きベクトル算出部２２、ＦＯＥ算出部２３、直進判定部２４、ＸＹ軸回転量算出部２５、路面判定部２６、路面点抽出部２７およびＺ軸回転量算出部２８として機能する。この各部２１〜２８は、ＲＡＭの所要のワークエリアを、データの一時的な格納場所として利用する。なお、これらの機能実現部は、ＣＰＵを用いることなく回路などのハードウエアロジックによって構成してもよい。
【００２１】
ここで、本実施形態で用いるカメラ座標系について簡単に説明する。
【００２２】
図２は、第１実施形態に係るカメラ座標系とカメラ投影面３１上の画面座標系との関係を示す説明図である。なお、本実施形態では、カメラ座標系を（Ｘ、Ｙ、Ｚ）、画面座標系を（ｘ、ｙ）（または（ｘ、ｙ、ｚ））と表記するものとする。また、カメラ座標系（Ｘ、Ｙ、Ｚ）は、カメラ１１の中心を原点とする直交座標系であるものとする。
【００２３】
本実施形態においては、カメラ座標系のＺ軸が路面と一致し、Ｘ軸が車両の左右方向と一致し、Ｙ軸が車両の上下方向と一致するよう定義される。また、画面座標系の原点（０、０）（または（０、０、ｆ））は、光軸とカメラ投影面３１との交点とする。ここで、路面は車両の前後方向（直進方向）および車両の左右方向に平行な面であるものとする。
【００２４】
本実施形態においては、カメラ１１が、光軸と路面（Ｚ軸）とが平行となるようにカメラ１１により撮像された画像を回転補正する。
【００２５】
カメラ投影面３１は、カメラ座標系においてＺ＝ｆの面である。ｆはカメラ１１の焦点距離である。カメラ１１は、このカメラ投影面３１に投影される車両周囲を撮像する。ここで、ある点Ｐのカメラ座標系の３次元座標がＰ（Ｘ、Ｙ、Ｚ）であるとき、この点Ｐのカメラ投影面３１に投影された点ｐの座標をｐ（ｘ、ｙ、ｆ）と表すものとする。
【００２６】
カメラ１１は、車両の移動にともない路面に平行に移動する。このため、カメラ座標系の原点および画面座標系の原点は、車両の移動にともない路面に平行に移動する。
【００２７】
一方、カメラ１１が直進運動する場合、カメラ投影面３１上における静止被写体の点（ｘ、ｙ）に対応する動きベクトル（ｕ、ｖ）の延長線交点から消失点（ＦＯＥ：Focus of Expansion）の座標を求めることができることが知られている。
【００２８】
カメラ１１の進行方向は、カメラ座標系の原点（０、０、０）とカメラ投影面３１上の消失点とを結ぶ線で表せる。したがって、本実施形態において、カメラ１１が理想的な取り付け角度で取り付けられているとき、すなわち光軸方向がＺ軸方向に一致しているとき、消失点の座標は原点（目標消失点ＦＯＥ１（０、０））に一致する。
【００２９】
ところが、カメラ１１の路面に対する取り付け角度が理想的な取り付け角度からずれてしまっている場合には、カメラ投影面３１上における静止被写体の点（ｘ、ｙ）に対応する動きベクトル（ｕ、ｖ）の延長線交点から求められる消失点の座標（以下、現在の消失点ＦＯＥ０（ｘ０、ｙ０）という）が、目標ＦＯＥ１からずれてしまう。カメラ１１の路面に対する取り付け角度が理想的な取り付け角度からずれてしまう原因としては、たとえば車両に乗車する人や積載物などによる車両の傾きや、経年変化などが挙げられる。
【００３０】
そこで、本実施形態に係る車載カメラ自動キャリブレーション装置１０は、カメラ１１により取得された画像にもとづいて走行中に路面に対するカメラ１１の取り付け角度の情報を取得し、この情報にもとづいて画像を回転補正する。
【００３１】
具体的には、座標回転補正部２１は、ＸＹ軸回転量算出部２５により求められたＸ軸周りの回転量θｘおよびＹ軸周りの回転量θｙにもとづいて、カメラ１１の撮像画像をＸ軸周りおよびＹ軸周りにそれぞれ回転補正する。また、座標回転補正部２１は、Ｚ軸回転量算出部２８により求められたＺ軸周りの回転量θｚにもとづいて、カメラ１１の撮像画像をＺ軸周りに回転補正する。
【００３２】
まず、Ｘ軸周りの回転量θｘおよびＹ軸周りの回転量θｙの取得方法について説明する。Ｘ軸周りの回転量θｘおよびＹ軸周りの回転量θｙは、現在の消失点ＦＯＥ０を目標消失点ＦＯＥ１に変換するための回転量として求めることができる。
【００３３】
動きベクトル算出部２２は、ブロックマッチング法や勾配法などを用いて、カメラ１１により撮像された複数の画像から画素ごとに動きベクトル（ｕ、ｖ）を算出する。以下の説明では、動きベクトル算出部２２が現在の画像と現在の画像の１フレーム前の画像との間の動きベクトル（ｕ、ｖ）を算出し、この動きベクトルにもとづいて現在の画像の消失点ＦＯＥ０の座標（ｘ０、ｙ０）を求める場合の例について示す。
【００３４】
カメラ１１が直進運動する（車両が前進または後進する）場合、カメラ投影面３１上における静止被写体の点（ｘ、ｙ）に対応する動きベクトル（ｕ、ｖ）と現在の消失点ＦＯＥ０（ｘ０、ｙ０）との間には次の関係がある。
u/v = (x-x0)/(y-y0)                                                 （１）
【００３５】
このため、２点以上の（ｘ、ｙ）で動きベクトル（ｕ、ｖ）が得られれば、現在の消失点ＦＯＥ０（ｘ０、ｙ０）が求められる。いま、画像点（ｘｉ、ｙｉ）（ｉ＝１、２、・・・、Ｎ、Ｎは自然数）に対応する動きベクトル（ｕｉ、ｖｉ）が観測されたとすると、次のＮ個の方程式が得られる。
x0vi‐y0ui = xivi-uiyi     ただしi=1,・・・,N                          （２）
【００３６】
そこで、ＦＯＥ算出部２３は、動きベクトル算出部２２から複数の動きベクトルを取得し、式（２）における未知数をｘ０、ｙ０として最小２乗の意味で最適解ｘ０、ｙ０を求めることにより、現在の消失点ＦＯＥ０（ｘ０、ｙ０）を求める。
【００３７】
ここで、直進判定部２４による直進判定方法の一例について説明する。
【００３８】
対象点Ｐ（Ｘ、Ｙ、Ｚ）のカメラ投影面３１上の対応点ｐ（ｘ、ｙ、ｆ）に対応する動きベクトル（ｕ、ｖ）は、次のように書けることが知られている。
u = xy(1/f)Rx−(x2+f2)(1/f)Ry+yRz−f(Tx/z)+x(Tz/z)                    （３）
v = (y2+f2)(1/f) Rx−xy(1/f)Ry−xRz−f(Ty/z)+y(Tz/z)                  （４）
【００３９】
ここで、ｚは対象点ＰのＺ座標値をあらわす。また、Ｒｘ、Ｒｙ、Ｒｚ、Ｔｘ、Ｔｙ、Ｔｚはカメラ移動パラメータであり、Ｒｘ、Ｒｙ、Ｒｚはカメラ１１（自車）の回転成分をあらわし、Ｔｘ、Ｔｙ、Ｔｚはカメラ１１（自車）と対象点Ｐとの相対並進成分をあらわす。
【００４０】
直進時は、Ｒｘ＝Ｒｙ＝Ｒｚ＝０となる。また、式（３）の式（４）に対する比は、点ｐ（ｘ、ｙ）からＦＯＥ（ｘ０、ｙ０）に向かう傾きと等しくなることが知られている。このため、次の式（５）が導かれる。
u/v = {-f(Tx/z)+x(Tz/z)}/{ -f(Ty/z)+y(Tz/z)} = (x-x0)/(y-y0)         （５）
【００４１】
いま、カメラ１１の原点はＺ軸と平行に移動するため、Ｔｘ＝Ｔｙ＝０となる。このとき、次の式（６）が導かれる。
u/v = x/y                                                           （６）
【００４２】
式（５）から明らかなように、直進時には、動きベクトルの傾きｕ／ｖは、対象点Ｐ（Ｘ、Ｙ、Ｚ）のカメラ投影面３１上の点ｐ（ｘ、ｙ）から現在のＦＯＥ０に向かう傾きに等しい。また、式（６）から明らかなように、カメラ１１が理想的な取り付け角度で取り付けられていれば、またはカメラ１１の撮像画像が座標回転補正部２１により現在の消失点ＦＯＥ０を目標消失点ＦＯＥ１に変換するよう回転補正されていれば、現在の消失点ＦＯＥ０は目標消失点ＦＯＥ１に一致している。この場合は、直進時には、動きベクトルの傾きｕ／ｖは、対象点Ｐ（Ｘ、Ｙ、Ｚ）のカメラ投影面３１上の点ｐ（ｘ、ｙ）から原点（目標ＦＯＥ１）に向かう傾きに等しい。
【００４３】
このため、直進判定部２４は、カメラ投影面３１上の点ｐ（ｘ、ｙ）から現在の消失点ＦＯＥ０に向かう傾きと、点ｐ（ｘ、ｙ）に対応する動きベクトル（ｕ、ｖ）の傾きと、を比較し、傾きの差が所定の差以内であれば自車が直進中であると判定する。
【００４４】
ＦＯＥ算出部２３は、直進判定部２４により自車が直進中であると判定された場合に、動きベクトル算出部２２から受けた動きベクトルを用いて現在の消失点ＦＯＥ０（ｘ０、ｙ０）を求めるとよい。
【００４５】
ＸＹ軸回転量算出部２５は、記憶部１３から目標ＦＯＥ１の座標（０、０）の情報を取得し、現在の消失点ＦＯＥ０を目標消失点ＦＯＥ１に変換するために必要なＸ軸周りの回転量θｘおよびＹ軸周りの回転量θｙを求める。
【００４６】
図３（ａ）は現在の消失点ＦＯＥ０を第１実施形態に係る目標消失点ＦＯＥ１に変換するためのＹ軸周りの回転量θｙについて説明するための図であり、（ｂ）は現在の消失点ＦＯＥ０を第１実施形態に係る目標消失点ＦＯＥ１に変換するためのＸ軸周りの回転量θｘについて説明するための図である。図３（ａ）は図２におけるＸＺ平面を、（ｂ）は図２におけるＹＺ平面を、それぞれ示した。
【００４７】
カメラ１１の進行方向（車両の進行方向）は、カメラ座標系の原点（０、０、０）とカメラ投影面３１上の現在の消失点ＦＯＥ０とを結ぶ線で表せる。この線とＺ軸との傾きは、Ｘ軸周りの回転量θｘとＹ軸周りの回転量θｙとを用いて表すことができる。図３（ａ）および（ｂ）から明らかなように、Ｘ軸周りの回転量θｘおよびＹ軸周りの回転量θｙは、現在のＦＯＥ０の座標（ｘ０、ｙ０）と次の関係にある。
tanθx = y0/f                                                    （７）
tanθy = x0/f                                                    （８）
【００４８】
そこで、ＸＹ軸回転量算出部２５は、現在の消失点ＦＯＥ０の座標（ｘ０、ｙ０）にもとづいて式（７）および式（８）からＸ軸周りの回転量θｘおよびＹ軸周りの回転量θｙを求め、座標回転補正部２１に与える。
【００４９】
そして、座標回転補正部２１は、ＸＹ軸回転量算出部２５により求められたＸ軸周りの回転量θｘおよびＹ軸周りの回転量θｙにもとづいて、θｘ＝θｙ＝０となるように、カメラ１１の撮像画像をＸ軸周りおよびＹ軸周りにそれぞれ回転補正する。この結果、現在の消失点ＦＯＥ０は目標消失点ＦＯＥ１（０、０）に一致し、カメラ１１の光軸はＺ軸に一致し、Ｚ軸は路面と平行となる。
【００５０】
続いて、Ｚ軸周りの回転量θｚの取得方法について説明する。Ｚ軸周りの回転量θｚは、路面とＸ軸とを平行にするためのＺ軸周りの回転量として求めることができる。
【００５１】
図４は、路面とＸ軸とを平行にするためのＺ軸周りの回転量θｚについて説明するための図である。以下の説明では、現在の消失点ＦＯＥ０が目標消失点ＦＯＥ１（０、０）に一致し、カメラ１１の光軸がＺ軸に一致し、Ｚ軸が路面と平行であるものとする。
【００５２】
ある点Ｐのカメラ座標系の３次元座標Ｐ（Ｘ、Ｙ、Ｚ）と、点Ｐのカメラ投影面３１に投影された点ｐの画面座標系の座標ｐ（ｘ、ｙ、ｆ）との関係は、Ｚ＝ｚとすると次のように書ける。
X = zx/f                                                            （９）
Y = zy/f                                                          （１０）
Z = z                                                             （１１）
【００５３】
いま、路面上の点Ｐｊ（Ｘｊ、Ｙｊ、Ｚｊ）について考える。図４に示すように、Ｚ＝Ｚｊ平面において路面とＸ軸とがＺ軸周りになす角をθｚとし、カメラ座標系の原点と路面とのＹ軸に沿った距離をＨとすると、路面上の点Ｐｊ（Ｘｊ、Ｙｊ、Ｚｊ）について次の式（１２）が成り立つ（図４参照）。
Yj = H-Xjtanθz                                                   （１２）
【００５４】
同様に、路面上の点Ｐｋ（Ｘｋ、Ｙｋ、Ｚｋ）についても次式（１３）が成り立つ。
Yk = H-Xktanθz                                                   （１３）
式（１２）、（１３）より次式（１４）が導ける。
H = Yj+Xjtanθz= Yk+Xktanθz
tanθz = −(Yk-Yj)/(Xk-Xj)                                        （１４）
【００５５】
式（１４）は、式（９）−（１１）を用いて次のように変形できる。
tanθz = −(ykzk-yjzj/(xkzk-xjzj)
= −(yk-yjzj/zk)/(xk-xjzj/zk)                              （１５）
【００５６】
ここで、式（３）および式（４）に対してＴｘ＝Ｔｙ＝０、Ｒｘ＝Ｒｙ＝Ｒｚ＝０を代入することにより、それぞれ次の式（１６）および式（１７）が得られる。
u = x(Tz/z)                                                       （１６）
v = y(Tz/z)                                                       （１７）
【００５７】
式（１６）および式（１７）をまとめて次式（１８）を得る。
Tz/z = (ux+vy)/(x2+y2)                                             （１８）
【００５８】
この式（１８）にもとづいて、路面上の点Ｐｊのカメラ投影面３１上の点ｐｊ（ｘｊ、ｙｊ）の動きベクトル（ｕｊ、ｖｊ）から、点Ｐｊの距離規格化並進成分（Ｔｚ／ｚ）ｊが求められる。なお、点Ｐｊの距離規格化並進成分Ｔｚ／ｚｊを（Ｔｚ／ｚ）ｊと表すものとする。同様に、路面上の点Ｐｋについての(Ｔｚ／ｚ)ｋも求めることができる。
【００５９】
一方、（Ｔｚ／ｚ）ｊおよび(Ｔｚ／ｚ)ｋは、同一のＴｚを用いていることから、次式（１９）の関係を満たす。
zj/zk = (Tz/z)k /(Tz/z)j                                           （１９）
【００６０】
この式（１９）を用いて、式（１５）は次のように変形できる。
tanθz = −{yk (Tz/z)j - yj (Tz/z)k}/{xk (Tz/z)j - xj (Tz/z)k}    （２０）
【００６１】
式（１８）を式（２０）に代入して変形することにより、次式（２１）を得る。
{xk(ujxj + vjyj) (xk2 + yk2) - xj(ukxk + vkyk)(xj2 + yj2)} tanθz
= −{yk(ujxj + vjyj)(xk2 + yk2) - yj (ukxk + vkyk)(xj2 + yj2)}      （２１）
【００６２】
いま、路面上の２点ＰｊとＰｋの組み合わせを示す指数をｍ＝ｍ（ｊ，ｋ）と表すものとする。たとえば路面上の点としてＮ個の点が得られた場合、これらの路面上の点から抽出される２点ＰｊとＰｋの組み合わせの数ＭはＭ＝２ＣＮ＝Ｎ（Ｎ−１）／２通りある。この場合、指数ｍはｍ＝１、２、・・・、Ｍと定義される。
【００６３】
ここで、式（２１）の左辺をａｍｔａｎθｚ、右辺をｂｍと置くと、式（２１）は次のように変形できる。
amtanθｚ = bm                                                     （２２）
am = {xk(uj xj + vj yj) (xk2 + yk2) - xj(uk xk + vk yk)(xj2 + yj2)} （２３）
bm = −{yk(uj xj +vj yj)(xk2 + yk2) - yj(uk xk + vk yk)(xj2 + yj2)} （２４）
【００６４】
式（２２）から、ｔａｎθｚの最小２乗解は次式（２５）で与えられる。
tanθz = (Σambm)/(Σam2 )  (ただしm = 1、2、・・・M)              （２５）
【００６５】
この式（２５）は、路面上の２点Ｐｊ、Ｐｋに対応するカメラ投影面３１上の点ｐｊ、ｐｋの座標ｐｊ（ｘｊ、ｙｊ）、ｐｋ（ｘｋ、ｙｋ）と、この２点ｐｊ、ｐｋに対応する動きベクトル（ｕｊ、ｖｊ）、（ｕｋ、ｖｋ）と、路面とＸ軸とがＺ軸周りになす角θｚと、を関係付ける式である。
【００６６】
したがって、式（２１）から明らかなように、路面上の２点Ｐｊ、Ｐｋの画面座標とこの２点に対応する動きベクトルとにもとづいて、ｔａｎθｚを求めることができる。また、同一の撮像画像内から路面上の３点以上の複数点を抽出し、２点の組み合わせを複数Ｍ個得る場合は、式（２５）を用いることで、より精度の高いｔａｎθｚを求めることができる。
【００６７】
このように、Ｚ軸周りの回転量θｚを求める際には、カメラ投影面３１上の路面上の点を用いる。
【００６８】
そこでまず、路面判定部２６は、カメラ１１の撮像画面内の路面領域を判定する。路面領域の判定方法としては、たとえば動きベクトルが消失点ＦＯＥ０に収束するとともに、アスファルト主体のコントラストを持つと判定される領域を路面領域と判定する方法などがある。路面領域内の点（路面上の点）は静止物体（路面）に係る点であるため、対応する動きベクトルは消失点ＦＯＥ０（現在の消失点ＦＯＥ０が目標消失点ＦＯＥ１に一致していればＦＯＥ１）に収束する。
【００６９】
なお、路面領域判定の対象とする撮像画像は、動きベクトル算出部２２により用いられた複数の画像のうちの所定の画像とする。たとえば動きベクトル算出部２２が現在の画像と過去の画像（たとえば現在の画像の１フレーム前の画像）との間の動きベクトルを算出する場合は、現在の画像を対象とするとよい。以下、路面領域判定の対象とする撮像画像が現在の画像である場合の例について説明する。
【００７０】
路面点抽出部２７は、現在の画像のうち、路面判定部２６により路面領域と判定された画像領域内の点から、３点以上の複数点を抽出する。
【００７１】
このとき、路面点抽出部２７は、式（２５）等の演算誤差を低減するために、所定の条件を満たす点のみを抽出するようにするとよい。
【００７２】
所定の条件としては、たとえば路面上の点Ｐｊに対応する画像領域内の点ｐｊのうち、ＦＯＥ０（ｘ０、ｙ０）から（現在の消失点ＦＯＥ０が目標消失点ＦＯＥ１に一致していればＦＯＥ１から）所定の距離（ＦＯＥ距離閾値）ｔｈ１以上離れている点であるという条件が考えられる。この条件は次の式（２６ａ）または（２６ｂ）で表せる。
ＦＯＥ距離閾値ｔｈ１≦√{(xj−x0)2 + (yj−y0)2 }                  （２６ａ）
ＦＯＥ距離閾値ｔｈ１≦｜x−x0｜+｜y−y0｜                        （２６ｂ）
【００７３】
消失点に近い領域に属する点に対応する動きベクトルは、絶対値が小さいため、検出誤差率が高くなりやすい。式（２６ａ）または（２６ｂ）で表される条件を満たす点ｐｊを抽出することにより、この誤差による弊害を未然に防ぐことができる。
【００７４】
また、所定の条件としては、他にも、抽出された２点ｐｊ、ｐｋの互いの距離が所定の２点間距離閾値ｔｈ２以上離れている組み合わせのみを式（２５）の演算に用いる組み合わせとする条件が考えられる。この条件はたとえば次の式（２７）で表せる。
２点間距離閾値ｔｈ２≦｜xk - xj｜                                （２７）
【００７５】
通常、（Ｔｚ/ｚ）ｊと（Ｔｚ/ｚ）ｋの差は微量であるため、誤差の観点からは｜ｘｋ−ｘｊ｜の大きな２点ｐｊ、ｐｋの組み合わせを用いることが望ましい。
【００７６】
そして、Ｚ軸回転量算出部２８は、式（２５）を用いて、路面点抽出部２７により抽出された複数の２点の組み合わせと、各組み合わせの２点に対応する動きベクトルと、にもとづいて、ｔａｎθｚの最小２乗解を求める。θｚは微小値であるため、ｔａｎθｚ≒θｚとして扱うことができる。したがって、Ｚ軸回転量算出部２８は、ｔａｎθｚの最小２乗解を、路面とＸ軸とを平行にするためのＺ軸周りの回転量θｚとして座標回転補正部２１に与える。
【００７７】
また、Ｚ軸回転量算出部２８は、カメラ１１の撮像画像ごとにＺ軸周りの回転量θｚを求めてＲＡＭの所要のワークエリアに格納しておき、この撮像画像ごとに求めた所定数のＺ軸周りの回転量θｚを平均してＺ軸周りの平均回転量θｚ＿ａｖｅを求めてもよい。この場合、Ｚ軸回転量算出部２８は、Ｚ軸周りの平均回転量θｚ＿ａｖｅを座標回転補正部２１に与える。θｚ＿ａｖｅを用いる場合、１枚のフレームにもとづくθｚが内包しうる自車の振動などによる誤差を低減することができるため、θｚよりも信頼性の高い補正を行うことができる。
【００７８】
そして、座標回転補正部２１は、Ｚ軸回転量算出部２８により求められたＺ軸周りの回転量θｚまたはＺ軸周りの平均回転量θｚ＿ａｖｅにもとづいて、θｚ＿ａｖｅ＝０となるように、カメラ１１の撮像画像をＺ軸周りに回転補正する。この結果、路面とＸ軸とは平行となる。
【００７９】
次に、本実施形態に係る車載カメラ自動キャリブレーション装置１０の動作の一例について説明する。
【００８０】
図５は、図１に示す自動校正ＥＣＵ１２により、カメラ１１により取得された画像にもとづいて走行中に路面に対するカメラ１１の取り付け角度の情報を取得し、この情報にもとづいて画像を回転補正する際の手順を示すフローチャートである。図５において、Ｓに数字を付した符号は、フローチャートの各ステップを示す。
【００８１】
まず、ステップＳ１において、動きベクトル算出部２２は、カメラ１１の撮像画像の画像データを取得する。ステップＳ８からステップＳ１に戻ってきた場合は、動きベクトル算出部２２は、座標回転補正部２１によりステップＳ５でＸ軸周りおよびＹ軸周りにそれぞれ回転補正されるとともにステップＳ７でＺ軸周りに回転補正されたカメラ１１の撮像画像の画像データを取得する。
【００８２】
次に、ステップＳ２において、動きベクトル算出部２２は、取得した画像データにもとづき、複数の画像間の動きベクトル（ｕ、ｖ）を画素ごとに求める。
【００８３】
次に、ステップＳ３において、直進判定部２４は、動きベクトルにもとづいて自車が直進中であるか否かを判定する。直進中である場合はステップＳ４に進む。一方、直進中でない場合はステップＳ１に戻る。
【００８４】
次に、ステップＳ４において、自動校正ＥＣＵ１２は、現在の消失点ＦＯＥ０を目標消失点ＦＯＥ１に変換するために必要なＸ軸周りの回転量θｘおよびＹ軸周りの回転量θｙを求める。
【００８５】
次に、ステップＳ５において、座標回転補正部２１は、ＸＹ軸回転量算出部２５により求められたＸ軸周りの回転量θｘおよびＹ軸周りの回転量θｙにもとづいて、θｘ＝θｙ＝０となるように、カメラ１１の撮像画像をＸ軸周りおよびＹ軸周りにそれぞれ回転補正する。この結果、現在の消失点ＦＯＥ０は目標消失点ＦＯＥ１（０、０）に一致し、カメラ１１の光軸はＺ軸に一致し、Ｚ軸は路面と平行となる。
【００８６】
次に、ステップＳ６において、自動校正ＥＣＵ１２は、路面上の複数点から得られる複数の２点の組み合わせと、各組み合わせの２点に対応する動きベクトルと、にもとづいて、路面とＸ軸とを平行にするためのＺ軸周りの回転量θｚ、または撮像画像ごとに求めた所定数のＺ軸周りの回転量θｚを平均したＺ軸周りの平均回転量θｚ＿ａｖｅを求める。
【００８７】
次に、ステップＳ７において、座標回転補正部２１は、Ｚ軸回転量算出部２８により求められたＺ軸周りの回転量θｚまたはＺ軸周りの平均回転量θｚ＿ａｖｅにもとづいて、θｚ（またはθｚ＿ａｖｅ）＝０となるようにカメラ１１の撮像画像をＺ軸周りに回転補正する。この結果、路面とＸ軸とは平行となる。
【００８８】
次に、ステップＳ８において、自動校正ＥＣＵ１２は、画像の回転補正を終了するか否かを判定する。たとえば自動校正ＥＣＵ１２は、車両が停止した場合やステップＳ１−Ｓ７を所定回数繰り返した場合などに終了すると判定するとよい。終了すると判定された場合は一連の手順は終了となる。一方、終了しない場合はステップＳ１に戻る。
【００８９】
以上の手順により、カメラ１１により取得された画像にもとづいて走行中に路面に対するカメラ１１の取り付け角度の情報を取得し、この情報にもとづいて画像を回転補正することができる。
【００９０】
続いて、現在の消失点ＦＯＥ０を目標消失点ＦＯＥ１に変換するために必要なＸ軸周りの回転量θｘおよびＹ軸周りの回転量θｙを求める際の手順を説明する。
【００９１】
図６は、図５のステップＳ４で実行されるθｘθｙ算出処理の手順を示すサブルーチンフローチャートである。
【００９２】
ステップＳ４１において、ＦＯＥ算出部２３は、動きベクトル算出部２２から２点以上の画像点の動きベクトルを取得する。
【００９３】
次に、ステップＳ４２において、ＦＯＥ算出部２３は、取得した２点以上の画像点の動きベクトルにもとづいて、式（２）を用いて現在の消失点ＦＯＥ０（ｘ０、ｙ０）を求める。
【００９４】
次に、ステップＳ４３において、ＸＹ軸回転量算出部２５は、記憶部１３から目標ＦＯＥ１の座標（０、０）の情報を取得する。そして、現在の消失点ＦＯＥ０（ｘ０、ｙ０）にもとづいて式（７）および式（８）からＸ軸周りの回転量θｘおよびＹ軸周りの回転量θｙを求め、座標回転補正部２１に与える。
【００９５】
以上の手順により、現在の消失点ＦＯＥ０を目標消失点ＦＯＥ１に変換するために必要なＸ軸周りの回転量θｘおよびＹ軸周りの回転量θｙを求めることができる。
【００９６】
続いて、路面上の複数点から得られる複数の２点の組み合わせと、各組み合わせの２点に対応する動きベクトルと、にもとづいて、撮像画像ごとに求めた所定数のＺ軸周りの回転量θｚを平均したＺ軸周りの平均回転量θｚ＿ａｖｅを求める際の手順を説明する。
【００９７】
図７は、図５のステップＳ６で実行されるθｚ算出処理の第１実施形態に係る手順を示すサブルーチンフローチャートである。図７には、撮像画像ごとに求めた所定数のＺ軸周りの回転量θｚを平均したＺ軸周りの平均回転量θｚ＿ａｖｅを求める場合の手順について示した。１枚の撮像画像に対応するＺ軸周りの回転量θｚを求める場合は、ステップＳ６９を省略するとよい。
【００９８】
ステップＳ６１において、路面判定部２６は、カメラ１１の撮像画面内の路面領域を判定する。
【００９９】
次に、ステップＳ６２において、路面点抽出部２７は、式（２６ａ）または（２６ｂ）を用いて、路面上の点に対応する画像領域内の点のうち、現在の消失点ＦＯＥ０（ｘ０、ｙ０）から（現在の消失点ＦＯＥ０が目標消失点ＦＯＥ１に一致していればＦＯＥ１から）ＦＯＥ距離閾値ｔｈ１以上離れている点を複数抽出する。
【０１００】
次に、ステップＳ６３において、路面点抽出部２７は、指数ｍを１にセットしＲＡＭの所要のワークエリアに格納する。この指数ｍは２点の組み合わせの数を示す指数である。
【０１０１】
次に、ステップＳ６４において、路面点抽出部２７は、式（２７）を用いて、ステップＳ６２で抽出された複数の路面点から得られる２点の組み合わせの１つについて、互いの距離が２点間距離閾値ｔｈ２以上離れているか否かを判定する。この組み合わせが２点間距離閾値ｔｈ２以上離れている場合はステップＳ６５に進む。一方、２点間距離閾値ｔｈ２より近い場合は、この組み合わせを破棄し、他の組み合わせについて再度この判定を行う。
【０１０２】
次に、ステップＳ６５において、路面点抽出部２７は、ステップＳ６４で２点間距離閾値ｔｈ２以上離れていると判定された２点の情報と、現在の指数ｍの値とを関連付けてＲＡＭの所要のワークエリアに格納する。
【０１０３】
次に、ステップＳ６６において、路面点抽出部２７は、指数ｍがあらかじめ設定された所定の数Ｍ以上か否かを判定する。指数ｍが所定の数Ｍ以上である場合は、ステップＳ６８に進む。一方、指数ｍが所定の数Ｍより少ない場合は、ステップＳ６７で指数ｍを１増加させて再び他の組み合わせについて２点間距離閾値ｔｈ２以上離れているか否かを判定すべくステップＳ６４に戻る。
【０１０４】
次に、ステップＳ６８において、Ｚ軸回転量算出部２８は、２点の路面点Ｐｊ，Ｐｋの組み合わせをＭ個用いて、式（２５）（ＦＯＥ１用のｔａｎθｚ算出式）にもとづいて、路面をＸ軸と平行にするための回転量θｚを算出してＲＡＭの所要のワークエリアに格納する。
【０１０５】
次に、ステップＳ６９において、Ｚ軸回転量算出部２８は、撮像画像ごとに求めた所定数のＺ軸周りの回転量θｚを平均してＺ軸周りの平均回転量θｚ＿ａｖｅを求め、座標回転補正部２１に与える。
【０１０６】
以上の手順により、路面上の複数点から得られる複数の２点の組み合わせと、各組み合わせの２点に対応する動きベクトルと、にもとづいて、撮像画像ごとに求めた所定数のＺ軸周りの回転量θｚを平均したＺ軸周りの平均回転量θｚ＿ａｖｅを求めることができる。
【０１０７】
なお、図７にはあらかじめ定めた数Ｍだけ２点の組を抽出する場合の例について示したが、抽出可能な２点の組を全て抽出し、抽出された数をＭとしてステップＳ６８で式（２５）を用いてもよい。
【０１０８】
本実施形態に係る車載カメラ自動キャリブレーション装置１０は、カメラ１１により取得された画像にもとづいて、走行中に、路面に対するカメラ１１の取り付け角度の情報（θｘ、θｙ、θｚ＿ａｖｅ（またはθｚ））を取得し、この情報にもとづいて画像を回転補正することができる。したがって、車載カメラ自動キャリブレーション装置１０によれば、自車の走行中にカメラ１１の取り付け角度を自動的に校正することができる。
【０１０９】
このため、たとえば、カメラ１１が車両の後方を監視するための撮像装置である場合には、この後方監視用のカメラ１１が利用されることが少ない前方直進時に上記回転補正を行っておくことにより、ユーザに対してストレスを感じさせることなく自動的にカメラ１１の校正を行うことができる。
【０１１０】
また、θｘ、θｙおよびθｚは、自車が路面走行中であって直進時に、すなわちキャリブレーションに適した画像が得られるときに、フレームごとに算出される。また、１枚のフレームにもとづいて算出されるθｚをフレーム間平均することによって、より信頼性の高いθｚ＿ａｖｅを算出することができる。
【０１１１】
また、本実施形態に係る車載カメラ自動キャリブレーション装置１０は、複数の路面点から２点を抽出する際に、単に路面点の抽出順などによって路面点数の半分の２点の組みを得るのではなく、複数の路面点から２点を抽出する組み合わせの数だけ２点の組を得ることができる。このため、得られた動きベクトルの数よりも多く、つまり動きベクトルの数の組み合わせの数だけ、式（２２）であらわされる関数のプロットを得ることができるため、式（２５）により得られるθｚをより正確な値とすることができる。また、θｚの算出に用いられる路面上の点を抽出する際に、ＦＯＥ距離閾値ｔｈ１や２点間距離閾値ｔｈ２を適用することにより、θｚを算出する際に生じる誤差を未然に低減することができる。
【０１１２】
（第２の実施形態）
次に、本発明に係る車載カメラ自動キャリブレーション装置の第２実施形態について説明する。
【０１１３】
図８は、本発明の第２実施形態に係る車載カメラ自動キャリブレーション装置１０Ａの一例を示す全体構成図である。
【０１１４】
この第２実施形態に示す車載カメラ自動キャリブレーション装置１０Ａは、カメラ１１の光軸が路面平行線からθ０だけ傾いた位置を校正目標位置とする点で第１実施形態に示す車載カメラ自動キャリブレーション装置１０と異なる。他の構成および作用については図１に示す車載カメラ自動キャリブレーション装置１０Ａと実質的に異ならないため、同じ構成には同一符号を付して説明を省略する。
【０１１５】
角度θ０としては、カメラ１１の撮像画像のうち上側０．１〜０．４割程度が空となる角度を採用するとよい。たとえば上側１／３程度が空となるようにする場合、地平線が上側１／３程度に位置し、そこから下に路面が写りこむことになる。
【０１１６】
記憶部１３Ａは、本実施形態に係る目標消失点の座標の情報である目標ＦＯＥ２（ｘ２、ｙ２）、ＦＯＥ距離閾値ｔｈ１、２点間距離閾値ｔｈ２およびルックアップテーブルなどを記憶する。これらの情報は、電子ネットワークを介してまたは光ディスクなどの可搬型記憶媒体を介して更新されてもよい。
【０１１７】
第２実施形態に係る目標ＦＯＥ２（ｘ２、ｙ２）は、カメラ１１の光軸が路面平行線からθ０だけ傾くよう、（０、ｙ２）に設定される（目標ＦＯＥ２＝（０、ｙ２））。この目標ＦＯＥ２は、自動校正ＥＣＵ１２ＡによりＸＹ軸周りの回転補正に用いられる。
【０１１８】
図９は、第２実施形態に係るカメラ座標系とカメラ投影面３１上の画面座標系との関係を示す説明図である。なお、第２実施形態に係るカメラ座標系を（Ｘ’、Ｙ’、Ｚ’）、画面座標系は（ｘ’、ｙ’（、ｚ’））と表記するものとする。また、（Ｘ、Ｙ、Ｚ）は第１実施形態に係るカメラ座標系と同一である。また、第１実施形態に係るカメラ座標系と特に区別する必要がない場合は、本実施形態に係るカメラ座標系を便宜上（Ｘ、Ｙ、Ｚ）と表記する。
【０１１９】
第２実施形態に係るカメラ座標系は、図９に示すように、第１実施形態に係るカメラ座標系と原点が共通でＸ軸周りにθ０だけ回転した座標系であり、カメラ座標系のＺ’軸およびＹ’軸が第１実施形態に係るカメラ座標系のＺ軸およびＹ軸に対してそれぞれθ０だけ傾くよう定義される。また、カメラ座標系のＸ’軸は、第１実施形態に係るカメラ座標系のＸ軸（車両の左右方向）と一致する。また、画面座標系の原点（０、０）（または（０、０、ｆ））は、カメラ座標系のＺ’軸とカメラ投影面３１との交点とする。
【０１２０】
第２実施形態においては、カメラ１１の光軸が路面平行線からθ０だけ傾くように、カメラ１１により撮像された画像を回転補正する。
【０１２１】
上述の通り、カメラ１１の進行方向は、カメラ座標系の原点（Ｘ’、Ｙ’、Ｚ’）＝（０、０、０）とカメラ投影面３１上の消失点とを結ぶ線で表せる。このため、本実施形態において、カメラ１１が理想的な取り付け角度で取り付けられているとき、すなわち光軸方向がＺ’軸方向に一致しているとき、消失点の座標は目標消失点ＦＯＥ２（０、ｙ２）に一致する。
【０１２２】
そこで、ＸＹ軸回転量算出部２５は、第１実施形態と同様に、現在の消失点ＦＯＥ０の座標（ｘ０、ｙ０）にもとづいて式（７）および式（８）からＸ’軸周りの回転量θｘ’（以下、便宜上Ｘ軸周りの回転量θｘという）およびＹ’軸周りの回転量θｙ’（以下、便宜上Ｙ軸周りの回転量θｙという）を求め、座標回転補正部２１Ａに与える。
【０１２３】
そして、本実施形態に係る自動校正ＥＣＵ１２Ａの座標回転補正部２１Ａは、ＸＹ軸回転量算出部２５により求められたＸ軸周りの回転量θｘおよびＹ軸周りの回転量θｙにもとづいて、θｘ＝θ０（＝ｔａｎ−１（ｙ２／ｆ））、θｙ＝０となるように、カメラ１１の撮像画像をＸ’軸周りおよびＹ’軸周りにそれぞれ回転補正する。この結果、現在の消失点ＦＯＥ０は目標消失点ＦＯＥ２（０、ｙ２）に一致し、カメラ１１の光軸（Ｚ’軸）は路面平行線に対して角度θ０だけ傾く。
【０１２４】
続いて、第２実施形態に係るＺ’軸周りの回転量θｚ’（以下、煩雑さを避けるため「’」を省略してＺ軸周りの回転量θｚという）の取得方法について説明する。Ｚ軸周りの回転量θｚは、路面とＸ’軸（＝Ｘ軸）とを平行にするためのＺ’軸周りの回転量として求めることができる。
【０１２５】
図１０は、第１実施形態に係るカメラ座標系と第２実施形態に係るカメラ座標系との関係を示す説明図である。図１０は、図９におけるＹＺ（Ｙ’Ｚ’）平面に相当する。
【０１２６】
まず、本実施形態に係るカメラ座標系（Ｘ’、Ｙ’、Ｚ’）を、第１実施形態に係るカメラ座標系（Ｘ、Ｙ、Ｚ）に変換する。
X =   X’                                                         （２８）
Y =   Y’cosθ0 ＋ Z’sinθ0                                      （２９）
Z = −Y’sinθ0 ＋ Z’cosθ0                                      （３０）
【０１２７】
本実施形態に係るカメラ座標系（Ｘ’、Ｙ’、Ｚ’）と画面座標系（ｘ’、ｙ’、ｚ’）の間には、式（９）−（１１）と同一の関係が成り立つ。このため、式（１４）は、式（２８）−（３０）を代入して式（９）−（１１）を用いることにより、次の式（３１）のように変形できる。
tanθz= −(Yk-Yj)/(Xk-Xj)
= −(Yk'cosθ0＋Zk'sinθ0−Yj'cosθ0−Zj'sinθ0)/(Xk'-Xj')
= −(yk'zk'cosθ0＋zk'fsinθ0−yj'zj'cosθ0−zj'fsinθ0)/(xk'zk'-xj'zj')
= −{(yk'cosθ0＋fsinθ0)zk'−(yj'cosθ0＋fsinθ0)zj'}/(xk'zk'-xj'zj')
= −{yk'cosθ0＋fsinθ0−(zj'/zk')(yj'cosθ0+fsinθ0)}
/{xk'−(zj'/zk')xj'}                                    （３１）
【０１２８】
式（３１）に式（１９）を代入し、ｔａｎθ０＝ｙ２／ｆを用いて（ただし、ｙ２は目標消失点ＦＯＥ２のｙ座標）、次式（３２）を得る。
tanθz= −[yk'cosθ0＋fsinθ0−{(Tz/z)k'/(Tz/z)j'}(yj'cosθ0＋fsinθ0)]
/[xk'−{(Tz/z)k'/(Tz/z)j'}xj']
= −[(Tz/z)j'(yk'cosθ0＋fsinθ0)−(Tz/z)k'(yj'cosθ0＋fsinθ0)]
/[(Tz/z)j'xk'−(Tz/z)k'xj']
= −{f/√(f2＋y22)}[(Tz/z)j'(yk'＋y2)−(Tz/z)k'(yj'＋y2)]
/{(Tz/z)j'xk’−(Tz/z)k'xj'}                            （３２）
【０１２９】
式（３２）に式（１８）を代入することにより次式（３３）を得る。なお、以下の説明では煩雑さを避けるため表記「’」を省略する。
{xk(ujxj＋vjyj)(xk2＋yk2)−xj(ukxk＋vkyk)(xj2＋yj2)}tanθz
=−{f/√(f2＋y22)}[(yk+y2)(ujxj＋vjyj)(xk2＋yk2)−(yj＋y2)(ukxk＋vkyk)(xj2＋yj2)]
（３３）
【０１３０】
この式（３３）は、式（２１）に相当する。路面上の２点ＰｊとＰｋの組み合わせを示す指数をｍ＝ｍ（ｊ，ｋ）と表すとき、式（２１）と同様に、式（３３）の左辺をａｍｔａｎθｚ、右辺をｂｍと置くと式（３３）は次のように変形できる。
amtanθｚ = bm                                                     （３４）
am = {xk(uj xj + vj yj) (xk2 + yk2) - xj(uk xk + vk yk)(xj2 + yj2)} （３５）
bm = −{f/√(f2＋y22)}[(yk+y2)(ujxj＋vjyj)(xk2＋yk2)
−(yj＋y2)(ukxk＋vkyk)(xj2＋yj2)]                    （３６）
【０１３１】
式（３４）から、ｔａｎθｚの最小２乗解は次式（３７）で与えられる。
tanθz = (Σambm)/(Σam2 )  (ただしm = 1、2、・・・M)            （３７）
【０１３２】
したがって、第１実施形態と同様に、Ｚ軸回転量算出部２８Ａは、フレーム内の複数Ｍ個の２点ｐｊ、ｐｋの組み合わせにもとづいて、式（３７）からｔａｎθｚを求めることができる。
【０１３３】
図１１は、図５のステップＳ６で実行されるθｚ算出処理の第２実施形態に係る手順を示すサブルーチンフローチャートである。図７と同等のステップには同一符号を付し、重複する説明を省略する。
【０１３４】
ステップＳ８１において、路面点抽出部２７Ａは、式（２６ａ）または（２６ｂ）を用いて、路面上の点に対応する画像領域内の点のうち、現在の消失点ＦＯＥ０（ｘ０、ｙ０）から（現在の消失点ＦＯＥ０が目標消失点ＦＯＥ２に一致していればＦＯＥ２から）ＦＯＥ距離閾値ｔｈ１以上離れている点を複数抽出する。
【０１３５】
ステップＳ８２において、Ｚ軸回転量算出部２８Ａは、２点の路面点Ｐｊ，Ｐｋの組み合わせをＭ個用いて、式（３４）（ＦＯＥ２用のｔａｎθｚ算出式）にもとづいて、路面をＸ軸と平行にするための回転量θｚを算出してＲＡＭの所要のワークエリアに格納する。そして、ステップＳ６９において、Ｚ軸回転量算出部２８Ａは、撮像画像ごとに求めた所定数のＺ軸周りの回転量θｚを平均してＺ軸周りの平均回転量θｚ＿ａｖｅを求め、座標回転補正部２１Ａに与える。
【０１３６】
第２実施形態に係る車載カメラ自動キャリブレーション装置１０Ａによっても、カメラ１１により取得された画像にもとづいて、走行中に、路面に対するカメラ１１の取り付け角度の情報（θｘ、θｙ、θｚ＿ａｖｅ（またはθｚ））を取得することができるため、自車の走行中にカメラ１１の取り付け角度を自動的に校正することができる。
【０１３７】
また、本実施形態に係る車載カメラ自動キャリブレーション装置１０Ａによれば、カメラ１１の光軸が路面平行線からθ０だけ傾いた位置を校正目標位置とすることができるため、カメラ１１の撮像画像中の地平線位置をθ０に応じた任意の位置に設定することができる。
【０１３８】
なお、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【０１３９】
また、本発明の実施形態では、フローチャートの各ステップは、記載された順序に沿って時系列的に行われる処理の例を示したが、必ずしも時系列的に処理されなくとも、並列的あるいは個別実行される処理をも含むものである。
【符号の説明】
【０１４０】
１０、１０Ａ  車載カメラ自動キャリブレーション装置
１１  カメラ
１２、１２Ａ  車載カメラ自動校正ＥＣＵ
１３、１３Ａ  記憶部
２１、２１Ａ  座標回転補正部
２２  動きベクトル算出部
２３  ＦＯＥ算出部
２４  直進判定部
２５  ＸＹ軸回転量算出部
２６  路面判定部
２７、２７Ａ  路面点抽出部
２８、２８Ａ  Ｚ軸回転量算出部
３１  カメラ投影面
ＦＯＥ０  現在の消失点
ＦＯＥ１  第１実施形態に係る目標消失点
ＦＯＥ２  第２実施形態に係る目標消失点
【図１】
2013238497.tif 000003
【図２】
2013238497.tif 000004
【図３】
2013238497.tif 000005
【図４】
2013238497.tif 000006
【図５】
2013238497.tif 000007
【図６】
2013238497.tif 000008
【図７】
2013238497.tif 000009
【図８】
2013238497.tif 000010
【図９】
2013238497.tif 000011
【図１０】
2013238497.tif 000012
【図１１】
2013238497.tif 000013