(57)【特許請求の範囲】
【請求項１】
車両に搭載されるカメラをキャリブレーションするキャリブレーション装置であって、
前記車両の外部の画像を取得する画像取得部と、
前記車両の姿勢変動前の画像と姿勢変動後の画像との間で対応する特徴点を用いて、前記カメラのロール角又はピッチ角の少なくとも一方のカメラパラメータをキャリブレーションするキャリブレーション部と、
を備え、
前記姿勢変動前の画像は、前記車両の停止時に撮影された画像であり、
前記姿勢変動後の画像は、前記車両の発進時に撮影された画像であり、
前記キャリブレーション部は、
前記車両への物体の積載に伴う特徴点変動範囲を設定し、前記車両の姿勢変動前の画像内に含まれる特徴点を基準にして前記特徴点変動範囲内で対応する特徴点を探索するようにして前記キャリブレーションを行うキャリブレーション装置。
【請求項２】
前記車両の姿勢変動を検知する車両姿勢検知部を備え、
前記車両姿勢検知部によって姿勢変動が検知された場合に、前記キャリブレーションを行う請求項１記載のキャリブレーション装置。
【請求項３】
前記キャリブレーション部は、
前記画像から特徴点候補を抽出する特徴点候補抽出部と、
前記特徴点候補抽出部で抽出された特徴点候補の選定をおこなう特徴選定部と、
前記特徴選定部で選定された候補点を前記車両の姿勢変動前の画像と姿勢変動後の画像との間で対応付ける特徴点対応付け部と、を備え、
前記特徴点対応付け部で対応付けられた特徴点を用いてキャリブレーションする請求項１記載のキャリブレーション装置。
【請求項４】
前記キャリブレーション部は、前記車両の周囲の移動体を検出する移動体検出部を備え、
前記車両の姿勢変動前の画像内に含まれる特徴点の中から前記移動体以外の特徴点を選定する請求項１記載のキャリブレーション装置。
【請求項５】
車両に搭載される複数のカメラをキャリブレーションするように構成され、
前記キャリブレーション部は、
前記車両の姿勢を推定する車両姿勢推定部と、
前記車両姿勢推定部で推定された前記車両の姿勢に基づいて、前記複数のカメラのカメラパラメータを計算するカメラパラメータ算出部と、
を備える請求項１記載のキャリブレーション装置。
【請求項６】
前記車両姿勢推定部は、目的関数を設定し、その目的関数を最小化する車両姿勢パラメータを求めることで車両姿勢を推定する請求項５記載のキャリブレーション装置。
【請求項７】
車両に搭載されるカメラをキャリブレーションするキャリブレーション方法であって、
前記車両の外部の画像を取得する第１のステップと、
前記車両の姿勢変動前の画像と変動後の画像との間で対応する特徴点を用いて、前記カメラのロール角又はピッチ角の少なくとも一方のカメラパラメータをキャリブレーションする第２のステップと、
を備え、
前記姿勢変動前の画像は、前記車両の停止時に撮影された画像であり、
前記姿勢変動後の画像は、前記車両の発進時に撮影された画像であり、
前記第２のステップでは、
前記車両への物体の積載に伴う特徴点変動範囲を設定し、前記車両の姿勢変動前の画像内に含まれる特徴点を基準にして前記特徴点変動範囲内で対応する特徴点を探索するようにして前記キャリブレーションを行うキャリブレーション方法。
【請求項８】
車両に搭載されるカメラのキャリブレーションをコンピュータに実施させるキャリブレーションプログラムであって、
前記車両の外部の画像を取得する画像取得部と、
前記車両の姿勢変動前の画像及び発進時の画像間で対応する特徴点を用いて、前記カメラのロール角又はピッチ角の少なくとも一方のカメラパラメータをキャリブレーションするキャリブレーション部と、
を備え、
前記姿勢変動前の画像は、前記車両の停止時に撮影された画像であり、
前記姿勢変動後の画像は、前記車両の発進時に撮影された画像であり、
前記キャリブレーション部は、
前記車両への物体の積載に伴う特徴点変動範囲を設定し、前記車両の姿勢変動前の画像内に含まれる特徴点を基準にして前記特徴点変動範囲内で対応する特徴点を探索するようにして前記キャリブレーションを行うキャリブレーションプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャリブレーション装置、キャリブレーション方法、及び、キャリブレーションプログラムに関する。
【背景技術】
【０００２】
近年、ドライバーの運転を支援する目的で、車載カメラの普及が進んでいる。例えば、車両周囲に取り付けられた複数カメラの各映像を視点変換し、その映像を合成して、車両周囲の俯瞰映像をドライバーに提示するシステムや、車両外部の物体の位置を計測した結果を用いて車両を制御するシステムなどである。
【０００３】
車載カメラの精度は、焦点距離やレンズ歪みなどの光学的特性や撮像素子サイズなどのカメラ固有のパラメータ（内部パラメータ）と、各カメラの取り付け位置や角度（ロール角、ピッチ角、ヨー角）に関するパラメータ（外部パラメータ）によって決まる。内部パラメータと外部パラメータとを合わせてカメラパラメータと呼ぶ。
【０００４】
カメラは所定の設計値に準じた位置や角度で車両に取り付けられるが、この際誤差が生じてしまい、カメラの精度が低下する。従って、カメラパラメータの設計値からの取り付け誤差を補正することが行われている。これをキャリブレーション、あるいは校正と呼ぶ。
【０００５】
キャリブレーションには高精度に誤差を補正することが要求されるため、カメラの据え付け状態を機械的に調整する方法はとらず、現在の据え付け状態を撮影画像から推定する。撮影画像から据え付け状態を推定する方法として、一般には、紙や板などに印字された校正用指標（パターンやキャリブレーションチャートなどとも呼ばれる）を決められた位置に精密に設置して撮影し、実際の撮影画像が設計値どおりに製造し設置されたカメラで撮影した場合の映像と一致するようにカメラパラメータを修正する方法が採られる。
【０００６】
ところで、このようなキャリブレーションは、これまではカメラの据え付け場所である例えば工場などで車両の出荷前に行うことが一般的であったが、最近は、特許文献１や特許文献２に開示されるように、走行中に例えば白線などの物体を校正用指標として用いることにより、工場出荷後であってもキャリブレーションを行うことが提案されている。走行中のキャリブレーションは、工場出荷後に事後的に発生し得るカメラパラメータの変化にも対応することができ得る点で優れている。
【０００７】
事後的にカメラパラメータが変化する原因の一つとしては、例えば乗車人数の違いや座る場所の違い、荷物の積み方の違いなど、車両に対する物体の積載状態が場合によって変化することが考えられ、このような積載状態が変化すると、車両の姿勢が変化して、地面に対するカメラの据え付け状態（すなわち、カメラパラメータ）が変化する。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】国際公開第ＷＯ２０１２／１４３０３６号
【特許文献２】国際公開第ＷＯ２０１２／１３９６６０号
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献１や特許文献２に開示されている走行中のキャリブレーションでは、積載状態が変化した後であっても車両がある程度の距離を走行するまではカメラキャリブレーションができないという問題がある。
【００１０】
また、走行中にキャリブレーションを行うのでは、例えば白線などの校正用指標が自車に対して常時相対移動するため、キャリブレーションの精度を必ずしも向上できないおそれがある。
【００１１】
そこで、本発明は、車両に対する物体の積載状態の変化に伴ってカメラパラメータが変化し得る場合に、早急にキャリブレーションを行うことができるキャリブレーション装置、キャリブレーション方法、及び、キャリブレーションプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明は、車両に搭載されるカメラをキャリブレーションするキャリブレーション装置に関するものであって、前記車両の外部の画像を取得する画像取得部と、前記車両の姿勢変動前の画像と姿勢変動後の画像との間で対応する特徴点を用いて、前記カメラのロール角又はピッチ角の少なくとも一方のカメラパラメータをキャリブレーションするキャリブレーション部と、を備え、前記姿勢変動前の画像は、前記車両の停止時に撮影された画像であり、前記姿勢変動後の画像は、前記車両の発進時に撮影された画像であり、前記キャリブレーション部が、前記車両への物体の積載に伴う特徴点変動範囲を設定し、前記車両の姿勢変動前の画像内に含まれる特徴点を基準にして前記特徴点変動範囲内で対応する特徴点を探索するようにして前記キャリブレーションを行うようにした。
【発明の効果】
【００１３】
本発明によれば、車両に対する物体の積載状態の変化に伴ってカメラパラメータが変化し得る場合に、早急にキャリブレーションを行うことができる。
【図面の簡単な説明】
【００１４】
【図１】システム構成のブロック図
【図２】工場出荷時のキャリブレーション手順のフローチャート
【図３】キャリブレーション前の俯瞰映像
【図４】キャリブレーション後の俯瞰映像
【図５】キャリブレーション部のブロック図
【図６】図１に示すキャリブレーションシステムにおけるプログラム全体のフローチャート
【図７】姿勢変動前後の映像
【図８】図１に示すキャリブレーションシステムにおける特徴選定処理のフローチャート
【図９】図１に示すキャリブレーションシステムにおけるキャリブレーション処理のフローチャート
【図１０】図１に示すキャリブレーションシステムにおけるキャリブレーション処理の車両姿勢推定処理のフローチャート
【発明を実施するための形態】
【００１５】
以下、本発明の実施形態に係るキャリブレーション装置、方法及びプログラムを、図面を参照して説明する。
【００１６】
図１は、本実施例に係るキャリブレーションシステム１００を示したものである。キャリブレーションシステム１００は、主に、カメラＡ、Ｂ、Ｃ、Ｄと、演算装置１０１と、ＲＡＭ１０２と、ＲＯＭ１０３と、表示装置１０４と、車速センサ１０５と、舵角センサ１０６と、ヨーレートセンサ１０７と、入力装置１０８と、通信装置１０９とを有する。
【００１７】
カメラＡ、Ｂ、Ｃ、Ｄは、車両に搭載され、それぞれ前後左右に設置される。例えば、前後のカメラは例えばナンバープレート付近に設置され、左右のカメラは例えばサイドミラーの下に設置される。図３、図４に示す例では、カメラＡが車両前側に取りつけられ、カメラＢが車両後側に取りつけられ、カメラＣが車両左側に取りつけられ、カメラＤが車両右側に取り付けられる。カメラＡ、Ｂ、Ｃ、Ｄは、光軸が地面に対して平行か、又は下方向に向くように取り付けられる。
【００１８】
カメラＡ、Ｂ、Ｃ、Ｄは、事前に決定された設計値に従って取り付けられるが、実際には取り付け誤差が発生するのが通常であり、その誤差は未知である。カメラＡ、Ｂ、Ｃ、Ｄには、車両の全周囲の映像を取得できるように、広角の魚眼カメラを用いる。魚眼カメラは広角の映像を取得することができ、その画像は既知の歪み関数に応じて歪んでいる。カメラＡ、Ｂ、Ｃ、Ｄで撮影された４つの映像は、演算装置１０１に送信される。
【００１９】
演算装置１０１では、カメラＡ、Ｂ、Ｃ、Ｄや車速センサ１０５と、舵角センサ１０６と、ヨーレートセンサ１０７と、入力装置１０８と、通信装置１０９など、種々の情報を受け取って、ＲＯＭ１０３に格納されたプログラムなどに基づき演算を行う。例えば、カメラＡ、Ｂ、Ｃ、Ｄから入力された映像を視点変換及び合成し、上方から地面を見下ろしたような俯瞰映像を生成する演算を行う。
【００２０】
具体的には、演算装置１０１は、カメラＡ、Ｂ、Ｃ、Ｄから入力された魚眼カメラについて、ＲＯＭ１０３などに事前に格納された既知の歪み関数を用いて、画像の歪みを除去した映像を生成し、歪みを除去した各映像を、ＲＯＭ１０３などに事前に格納された既知のカメラ取り付けに関する設計値などに基づいて、俯瞰視点から見た映像に視点変換及び合成する。これは公知のカメラの幾何変換式を使って、俯瞰視点映像の特定の画素とそれに対応するカメラＡ、Ｂ、Ｃ、Ｄの特定の画素を計算し、その画素の輝度値を俯瞰視点映像の画素に割り当てることによって実現できる。対応する画素が小数点を含み、該当する画素がない場合は、公知の輝度の補間処理によって、周辺画素の中間輝度を割り当てる処理が行われる。
【００２１】
また、車速センサ１０５と、舵角センサ１０６と、ヨーレートセンサ１０７通信装置１０９の出力結果を使って演算処理を実行したり、入力装置１０８の入力結果に従って、動作プログラムを切り替えたりする。
【００２２】
ＲＡＭ１０２には、演算装置１０１における演算処理過程で必要となる数値データ、演算途中の処理結果に対するプログラムの変数などが書き込まれる。また、演算処理過程で必要に応じて、書き込まれたデータが読み出され、演算処理に使用される。また、ＲＡＭ１０２には、カメラＡ、Ｂ、Ｃ、Ｄによって撮影された映像データなども格納される。
【００２３】
ＲＯＭ１０３には、例えば、キャリブレーションを実行するプログラムや、プログラムで必要となる情報の中で、書き換えをせずに利用される情報が事前に格納される。事前に格納される情報とは、例えば、カメラの設置位置・角度の設計値、カメラの焦点距離、画素サイズ、光軸中心、歪み関数などのカメラパラメータである。
【００２４】
表示装置１０４は、演算装置１０１の処理結果を受け取り、ディスプレイなどを用いて処理結果をユーザーに提示する。例えば、ドライバーにカメラＡ、Ｂ、Ｃ、Ｄの４つの映像を視点変換及び合成した俯瞰映像を表示する。また、表示装置１０４は、車両後方を撮影するカメラＢの映像だけを表示するなど、演算装置の出力に従って、表示内容を切り替えることもできる。
【００２５】
車速センサ１０５と、舵角センサ１０６と、ヨーレートセンサ１０７とは、それぞれ車速、舵角、ヨーレートを観測するセンサであり、演算装置１０１における演算処理において利用される。
【００２６】
入力装置１０８は、スイッチやボタンなど、ユーザーの操作を受け付ける装置である。キャリブレーション機能のオン又はオフや、キャリブレーション結果の初期化、キャリブレーション方法の変更などに利用する。
【００２７】
図２に、製品出荷時の一般的な車載カメラキャリブレーション手順を示し、利用時に発生し得る問題を述べる。まず、製品出荷時の車載カメラキャリブレーションは、例えば、カメラ取り付け作業Ｓ２０１、乗車状態再現作業Ｓ２０２、位置調整作業Ｓ２０３、キャリブレーションチャート撮影作業Ｓ２０４、キャリブレーション作業Ｓ２０５の順で実施される。
【００２８】
カメラ取り付け作業Ｓ２０１では、車体にカメラが取り付けられる。
【００２９】
乗車状態再現作業Ｓ２０２は、車両に搭乗者が乗っている状態を再現する。例えば、運転席にドライバーが実際に乗車したり、ドライバーの体重に相当する重量の物体を積載するなどして、実際に発生する乗車状態を再現する。乗車状態再現作業Ｓ２０２を実施する理由は、乗車状態によって車両の姿勢が変化し、それに伴って地面に対するカメラの角度などが変動するからである。カメラの角度や位置が、設計した取り付け状態と異なる場合、合成画像の境界にズレが生じたり、カメラによる位置計測に誤差が発生する為、この変動した角度を考慮したうえでキャリブレーションする必要がある。乗車状態再現によって、それに対応したカメラ取り付け状態を再現している。
【００３０】
位置調整作業Ｓ２０３は、車両とキャリブレーションチャートがあらかじめ定められた位置関係になるように調整する。一般的なキャリブレーションではキャリブレーションチャートとカメラの位置関係を規定の位置関係に定めたうえで実施する。
【００３１】
キャリブレーションチャート撮影作業Ｓ２０４は、車両に取り付けられたカメラで、キャリブレーションチャートを撮影する。
【００３２】
キャリブレーション作業Ｓ２０５では、撮影された画像を使ってキャリブレーションを実施する。この際、例えば、公知の技術によってキャリブレーションを実施する。すなわち、設計どおりにカメラが取り付けられており、かつ規定の位置にキャリブレーションチャートが設置されている場合に、キャリブレーションチャートが映るべき位置を計算し、実際撮影した画像中のキャリブレーションチャートがその映るべき位置に映るように、プログラム中の画像変換に使っているカメラパラメータを調整する。
【００３３】
キャリブレーション作業Ｓ２０５に関しては、例えば、キャリブレーションチャートと車両の位置関係が不定でもキャリブレーションできる公知の技術を利用してもよい。この場合は、位置調整作業Ｓ２０３の手続きが不要になる。ただし、このような手続きでキャリブレーションを実施する場合、乗車状態再現作業Ｓ２０２で実施しているように、あくまで特定の乗車状態を想定したキャリブレーションを実施していることになり、乗車状態がキャリブレーション時と異なれば、俯瞰映像の合成境界にズレが生じたり、カメラによる位置計測に誤差が生じる。したがって、特定の乗車状態でキャリブレーションするだけでは必ずしも十分ではなく、例えば乗車状態に応じて、その都度動的にキャリブレーションを実施することが好ましい。
【００３４】
このため、動的キャリブレーションＳ２０６において、乗車状態に応じてその都度キャリブレーションを実施する。このキャリブレーション処理を車両の走行中ではなく、停車状態でも実施可能とする。詳細は以下で図を用いながら説明する。
【００３５】
本実施例でのキャリブレーション処理の概要について説明する。基本的な考え方は、姿勢変動前後の映像を比較し、姿勢変動に伴って発生した映像の見え方の差異からカメラの位置と姿勢を推定するというものである。
【００３６】
カメラ姿勢が変動した場合、映像における物体までの距離によって、物体の映像中での移動量が変化する。例えば、距離が近い物体は映像中での変動量が大きく、距離が遠い物体は映像中での変動量が小さくなるような性質がある。撮影されたカメラ映像自体は２次元の情報しか含んでいないが、実際には３次元の情報が基となっているため、撮影時にこのような変化が表れる。この性質を利用して、姿勢変動前後での映像中の物体の変動量を観測し、その情報からカメラキャリブレーションを実施する。
【００３７】
したがって、本実施例では、まず、車両に取り付けられた各カメラＡ、Ｂ、Ｃ、Ｄにおいて、姿勢変動前のカメラ映像を取得し保存しておく。次に、姿勢変動が発生すると、各カメラＡ、Ｂ、Ｃ、Ｄにおいて映像を取得する。次に、映像中の物体の変動量を観測するために、各カメラＡ、Ｂ、Ｃ、Ｄの姿勢変動前後の映像間で各画素の対応関係を求める。この画素同士の対応関係を求める際に、実環境で運用する場合は対応関係に誤差が含まれたり、対応を取ることが困難なケースが存在するため、その問題への対処も含めた処理を行う。最後に、求められた対応関係から、姿勢変動後のカメラ位置、姿勢を含むカメラパラメータを推定する処理（すなわちカメラキャリブレーション処理）を実施する。以上が処理の大まかな概要である。処理詳細は後述する。
【００３８】
車両の姿勢変動は、車両姿勢変動検知部によって検知する。車両姿勢変動検知部は、具体的には、荷重センサや姿勢センサの出力情報に基づいて車両姿勢の変動を検知するものである。ただし、車両姿勢変動検知部は、これ以外にも、車のドアの開閉を検知するものであってもよい。これは、ドアの開閉が行われた場合には、通常、人の乗降や荷物の積み下ろしといった何らかの姿勢変化を伴う動作が伴うことから、ドアの開閉という動作に基づいて車両姿勢の変動があったことを推定により検知するものである。
【００３９】
図３、図４は、このキャリブレーション処理によって、俯瞰映像がどのように変化するか示すものである。図３に、図２のＳ２０１〜Ｓ２０５の手順で工場での出荷前キャリブレーションを実施した後に、出荷前キャリブレーション時とは異なる積載状態になった場合の俯瞰映像の例を示す。俯瞰映像には、白線枠が表示されている。本来この白線枠は、矩形形状を示すものであるが、想定された積載状態と異なるため、地面に対するカメラ角度や位置が変化しており、カメラＡ、Ｂ、Ｃ、Ｄの映像の合成境界において、白線にズレが生じている。
【００４０】
このような状況において、本実施例では、図４のように白線のズレがなくなるように、カメラキャリブレーションを実施し、俯瞰映像を補正することができる。なお、図に示される白線枠を利用してキャリブレーションを実施するという意味では必ずしもない。キャリブレーションによって、俯瞰映像が補正されるだけでなく、地面上の位置計測も正確に実施できるようになる。
【００４１】
以下、本実施例のキャリブレーション処理を説明する。まず、図５は、本実施例に係るキャリブレーションシステム１００におけるキャリブレーション部のブロック図であり、詳細は後述するが、特徴点候補抽出部４０４、特徴点選定部４０５、移動体検出部５０２、特徴点対応付け部４０６、車両姿勢推定部６０１、カメラパラメータ算出部６０２を有する。特徴点候補抽出部４０４は、カメラＡ、Ｂ、Ｃ、Ｄで撮影された姿勢変動前の映像から、例えば、対応付けを実施する候補となる点を特徴点として抽出する処理を行う。特徴点選択部４０５は、特徴点候補から特徴点対応に用いる候補点を選定する処理を行う。移動体検出部５０２において、映像中から移動体を検出する処理を行う。特徴点対応付け部４０６は、特徴点候補とその対応領域情報を用いて、特徴点の対応付けを実施する処理を行う。車両姿勢推定部６０１は、４カメラの特徴点が最も誤差なく対応づく車両姿勢パラメータを最適化手法によって求める処理を行う。カメラパラメータ算出部６０２は、得られた車両姿勢パラメータを用いて４つのカメラパラメータを算出する処理を行う。
【００４２】
次に、キャリブレーション処理の手順概要を示す。まず、車両停車時に画像を取得し、保存する。次に、車のドアの開閉や荷重センサや姿勢センサの出力情報の変化などをトリガとして、車両姿勢変化後の画像を取得する。続いて、実際に車両姿勢が変動し、キャリブレーションが必要か否かを判定する。キャリブレーションが必要な場合、続いて、車両姿勢変化前後の映像の特徴点の対応付けを実施する。最後に、対応付けられた特徴点を用いてカメラキャリブレーションを実施する。得られたカメラパラメータは、俯瞰映像を生成する際のパラメータに反映させたり、車両後退時に表示装置１０４に現在のハンドルの切れ角での車両の進路を表す予想進路線に反映させるなど、カメラパラメータを利用する各アプリケーションに反映させる。
【００４３】
このようにカメラパラメータが更新された場合、俯瞰映像の場合は映像境界のズレが解消し、予想進路線の場合は、進路表示が修正され、より車両の実際の進路に適合したものとなる。４カメラ含む複数カメラの場合についても実施可能である。複数カメラの場合は、各カメラパラメータを直接推定するのではなく、車両姿勢を介して複数カメラのパラメータを推定することで、精度と推定の安定性を高めることが可能となる。詳細については、以下に述べる。
【００４４】
図６に本実施例に係るキャリブレーション処理のフローチャートを示す。キャリブレーション処理はプログラムによって実現され、図１における演算処理装置１０１においてロードされ実施される。
【００４５】
本実施例に係るキャリブレーション処理は、センサ情報取得処理Ｓ４０１、距離情報取得処理Ｓ４０２、キャリブレーション実施判定処理Ｓ４０３、特徴点候補抽出処理Ｓ４０４、特徴選定処理Ｓ４０５、特徴点対応付け処理Ｓ４０６、キャリブレーション処理Ｓ４０７からなる。
【００４６】
センサ情報取得処理Ｓ４０１では、カメラＡ、Ｂ、Ｃ、Ｄの映像、及び車速センサ１０５と、舵角センサ１０６と、ヨーレートセンサ１０７などの各種センサ情報を取得し、ＲＡＭ１０２に保存する。カメラＡ、Ｂ、Ｃ、Ｄの映像に関しては、４つの映像が完全に同期して保存されるか、映像のズレ時間を取得できるかのいずれかの仕組みがあることが望ましい。映像に同期ズレがあるとそれがキャリブレーションの誤差として表れる。車速センサ１０５、舵角センサ１０６、ヨーレートセンサ１０７などの各種センサ情報は、映像と同期して取得されることが望ましい。
【００４７】
距離情報取得処理Ｓ４０２では、各カメラ映像に含まれる物体又は特徴点のカメラからの距離情報を取得する。本処理において取得した距離情報は、後段の特徴選定処理Ｓ４０５で活用する。距離情報はカメラ映像や、他の距離測定センサを用いて取得してもよい。カメラ映像を用いて距離情報を取得する場合、例えば、公知のモーションステレオ技術を利用する。他の距離測定センサを活用する場合は、カメラ映像における画素と他のセンサの観測情報の対応関係を得るために、センサ間キャリブレーションを実施する。
【００４８】
キャリブレーション実施判定処理Ｓ４０３では、姿勢変動の有無を検知し、キャリブレーション実施が必要か否かを判定する。例えば、カメラ映像のみで姿勢変動の有無を判定する場合は、俯瞰映像を構成する４映像の全てにおいて、映像境界領域付近の同一対象を撮影している共通撮影部分に関して、画像上でズレが発生しているかどうかを判定することで実現できる。ズレが発生しているか否かは、例えば共通撮影部分の画像照合処理を実施し、その照合度の評価値があらかじめ指定した閾値をこえているかどうかで判定することができる。なお、画像照合は例えば、対象領域内の平均値の差を除いたうえでの輝度の差分値の総和であるＺＳＡＤなどによって算出できる。あるいは、ジャイロセンサなど、車両の姿勢変化を直接推定するセンサを用いて、車両への積載状況が変化したことを検知することで、キャリブレーション実施が必要か否かを判定する方法を採用してもよい。
【００４９】
キャリブレーション実施が必要と判断された場合、図５に示す特徴点候補抽出部４０４において、特徴点候補抽出処理Ｓ４０４を実施する。変動がなくキャリブレーション不要の場合、センサ情報取得処理Ｓ４０１に戻る。
【００５０】
特徴点候補抽出処理Ｓ４０４では、カメラＡ、Ｂ、Ｃ、Ｄで撮影された姿勢変動前の映像から、例えば、対応付けを実施する候補となる点を特徴点候補として抽出する。図７に姿勢変動前後の映像の例を示す。カメラＡ、Ｂ、Ｃ、Ｄそれぞれにおいて、取得済みの姿勢変動前の映像と、キャリブレーション実施が必要と判断された後の姿勢変動後の映像の間で、同一点を撮影している画素の対応づけをこの後の処理において実施する。したがって、カメラＡ、Ｂ、Ｃ、Ｄの４カメラ映像それぞれにおいて、姿勢変動前の映像から対応付けを実施する特徴点候補を抽出する。姿勢変動後の映像から抽出し、姿勢変動前の映像と対応づけてもよい。
【００５１】
対応付けを実施する特徴点候補としては、例えば車両を停車するシーンでは、路面上の駐車枠の角、近くに停車してある車両の輪郭点、壁の頂点や模様のなかの１点など、画像上で対応位置が明確に判断できる複数方向のエッジを含むコーナー点が望ましい。このような理想的な特徴点候補は、例えば図７の○で記載された点である。ただし、白線の直線部分のエッジは、対応箇所が定まりにくいため、なるべく他のものの方が良い。このような候補点は例えば公知のハリスコーナー検出法などを使って画像認識により画像から抽出することができる。
【００５２】
特徴選定処理Ｓ４０５では、図５に示す特徴点選定部４０５において、特徴点候補から特徴点対応に用いる候補点を選定する。特徴選定処理Ｓ４０５は、図８に示すとおり、対応領域算出処理Ｓ５０１と、移動物体検出処理Ｓ５０２と、特徴選択処理Ｓ５０３の３つの処理から構成される。
【００５３】
対応領域算出処理Ｓ５０１は、姿勢変動前の画像に含まれる対応点候補が変位し得る領域を計算し、その領域外は探索しないようにする。これによって、キャリブレーションの演算負荷を低減することが可能となる。荷重積載による姿勢変動については、積載する荷物の搭載限界などから、変動範囲を事前にある程度予測することが可能である。その姿勢変動範囲で発生し得る対応する特徴点の範囲を算出し、その範囲外にある特徴点は対応付けする際の候補から除外する。
【００５４】
ここで、車両姿勢変動前後の画像で共通する特徴点を対応付けることができれば、その距離が不明であっても、この特徴点の画像上での変位に基づいて車両姿勢の変動角度を求めることができる。ただし、同じ姿勢変動でも、その特徴点までの距離によって、変動後の画像上の特徴点の変位は異なるため、対応点候補を見つけるべく探索する領域を設定する際には、その点の距離情報が分かっていることが好ましい。従って、距離情報取得処理Ｓ４０２で得られた距離情報を用いて、想定する車両姿勢変動範囲で発生し得る特徴点の範囲を計算する。ただし、距離情報には誤差が含まれているため、所定の誤差を含めて変動範囲を計算する。したがって、所定の誤差を含めた距離と、想定する車両姿勢変動範囲から、発生し得る特徴点の対応範囲を求める。対応範囲は、特徴点候補抽出処理Ｓ４０４で抽出された各特徴点について算出する。この対応範囲内でのみ対応付けを実施する。
【００５５】
移動体検出処理Ｓ５０２では、図５に示す移動体検出部５０２において、映像中から移動体を検出する。特徴点の対応付けを実施する際に、車両姿勢変動とは関係ない運動をしている移動物体を選定し、対応付けに含んでしまうと正しいカメラ姿勢の変動が得られない。そのため、本処理において移動体を検出し、特徴点の対応付けから除外する。図７（Ａ）では、破線の枠で囲まれた歩行者が除外すべき移動物体となる。移動体の検出は公知のオプティカルフロー検出などを用いて実施する。他の方法を活用して移動体を検出してもよい。
【００５６】
特徴選択処理Ｓ５０３では、対応領域算出処理Ｓ５０１で得られた対応点存在範囲と移動物体検出処理Ｓ５０２で得られた移動物体の情報から、実際に対応付けに用いる特徴点を選択する。ここでは、例えば、車両姿勢変動前の映像で特徴点を抽出し、姿勢変動後の映像と対応付けを実施する場合、車両姿勢変動前の映像については、特徴点が移動物体上で検出されている場合は特徴点候補から除外する。また、車両姿勢変動後の映像については、対応領域算出処理Ｓ５０１で得られた各特徴点候補の対応領域内でのみ対応付けのための探索を実施する。この探索には、ＳＡＤ、ＳＳＤ、ＬＫ法などが用いられる。以上の処理が、特徴選定処理Ｓ４０５による特徴点候補とその対応領域を求める処理となる。
【００５７】
特徴点対応付け処理Ｓ４０６では、図５に示す特徴点対応付け部４０６において、特徴点候補抽出処理Ｓ４０４で得られた特徴点候補とその対応領域情報を用いて、特徴点の対応付けを実施する。図７では、姿勢変動前の映像を示す図７（Ａ）と、姿勢変動前後の映像を示す図７（Ｂ）との間で対応付けが行われる特徴点同士を破線で示している。なお、対応付け可能な特徴点はこの他にも存在するが、図示の便宜上、一部の特徴点に対する対応付けのみを示している。
【００５８】
特徴点の対応付けは、カメラＡ、Ｂ、Ｃ、Ｄのそれぞれにおいて実施する。特徴点抽出を姿勢変動前のカメラＡ、Ｂ、Ｃ、Ｄの映像を用いて実施している場合、対応付けはそれぞれ姿勢変動後のカメラＡ、Ｂ、Ｃ、Ｄの映像に対して実施する。この際、特徴点周辺の画像が最も一致する箇所を求め、対応点とする。画像の一致度は画像から抽出した輝度に依存しない特徴量（例えばエッジや、エッジ方向）などを用いて、小領域（例えば縦横３画素ずつの９画素）内の全画素における特徴量差分の総和などとする。輝度に依存した特徴量の場合、姿勢変動前後で時間が空いている場合に変化している可能性があるため、避けたほうがよい。この際、注意点として、対応画像において一致する箇所は特徴選定処理Ｓ４０５によって得られた対応領域内でのみ求める。また、逆の対応関係（姿勢変動後の映像に対する姿勢変動前の映像の対応点）も同様に求めて、両者で結果が同じになる場合にのみ採用することなどにより、照合の精度を高めてもよい。
【００５９】
キャリブレーション処理Ｓ４０７では、特徴点対応付け処理Ｓ４０６によって得られた特徴点とそれに対応する点の対応関係を用いて、キャリブレーションを実施する。
【００６０】
キャリブレーション処理Ｓ４０７は、例えば、４つのカメラそれぞれに対して実施する。各カメラにおける特徴点対応を表わす幾何変換行列を介した方程式を立て、対応特徴点ごとに得られた方程式を連立させることにより、未知である幾何変換行列の各要素を求める。幾何変換行列を得ることができれば、幾何変換行列からカメラの位置や姿勢に関するパラメータを分解し、外部パラメータを得ることができる。外部パラメータとは、カメラ回転中心の三次元位置と、車両のロール角、ピッチ角、ヨー角である。
【００６１】
ここで、ロール角とは、前後を軸（Ｘ軸）とした場合の回転角度であり、ピッチ角とは、左右を軸（Ｙ軸））とした場合の回転角度であり、ヨー角とは、上下を軸（Ｚ軸）とした場合の回転角度である。
【００６２】
具体的には、この演算は、８点法という手法によって行われる。８点法は、２つの視点で撮影された画像から、その視点の相対姿勢を求める手法であり、特徴点が少なくとも８点以上対応付けられていれば、基礎行列を推定することで、直接カメラパラメータを推定することが可能である。８点法の詳細は、例えば「単眼広角カメラを用いた屋内三次元環境モデリングと姿勢推定  山崎公俊、他」（http://www.jsk.t.u-tokyo.ac.jp/~yamazaki/rp/ROBOMEC_08_yamazaki.pdf）において説明される手法である。
【００６３】
あるいは、キャリブレーション処理Ｓ４０７は、図９に示すような、車両姿勢推定処理Ｓ６０１とカメラパラメータ算出処理Ｓ６０２からなる構成としてもよい。この場合には、車両姿勢推定処理Ｓ６０１において上述した８点法による演算が行われる。
【００６４】
車両姿勢推定処理Ｓ６０１では、各カメラパラメータを求めるために、車両姿勢パラメータを求める。車両姿勢パラメータとは、車両回転中心の三次元位置と車両のロール角、ピッチ角、ヨー角である。各カメラパラメータを個別に求めるのではなく、車両姿勢を介してカメラパラメータを求める。これによって、推定するパラメータ数が１カメラ６パラメータの４カメラ分で２４パラメータから、車両姿勢分の６パラメータに減って、パラメータ推定処理が安定し精度が改善する。
【００６５】
また、特徴点がとれないカメラ映像があり、４つの映像が全て使えない場合でも、車両姿勢推定を介することで、全カメラのパラメータを推定できるようになるメリットがある。ただし、この場合には、カメラキャリブレーションは姿勢変動前に実施済みで、姿勢変動だけによる誤差が出ている状態となっていることが好ましい。姿勢変動前のカメラキャリブレーションが実施されていない場合には、車両姿勢を変動させても、全カメラの正しいキャリブレーション結果を得ることが困難だからである。
【００６６】
車両姿勢推定処理Ｓ６０１では、図５に示す車両姿勢推定部６０１において、４カメラの特徴点が最も誤差なく対応づく車両姿勢パラメータを最適化手法によって求める。車両姿勢推定処理Ｓ６０１では、図１０に示すとおり、車両姿勢パラメータ変動量算出処理Ｓ７０１、車両姿勢パラメータ更新処理Ｓ７０２と目的関数評価処理Ｓ７０３からなる。これらを反復することによって４カメラの特徴点が最も誤差なく対応づくカメラパラメータを最適化手法によって求める。ここでは、特徴点対応付けした際の誤差量を目的関数とし、目的関数が最も小さくなるよう車両姿勢パラメータの最適化を実施する。
【００６７】
車両姿勢パラメータ変動量算出処理Ｓ７０１では、車両姿勢パラメータの微小変動量を算出する。ここでは、目的関数の値が小さくなる車両姿勢パラメータの微小変動量を求める。目的関数の値が小さくなる変動量は、数値微分などを用いて求めることができる。
【００６８】
車両姿勢パラメータ更新処理Ｓ７０２では、車両姿勢パラメータ変動量算出処理Ｓ７０１で求めた微小変動量を用いて車両姿勢パラメータを更新する。
【００６９】
目的関数評価処理Ｓ７０３では、得られた車両姿勢パラメータの正しさを評価するために目的関数の値を求める。目的関数は、特徴点とそれに対応する対応候補点の座標誤差の２乗誤差の総和とする。全カメラにおける対応付けられた特徴点の２乗誤差の総和を用いる。ただし、対応付けられた特徴点に間違いが含まれている場合、良い結果が得られないので、公知のRANSAC法のような、一定数サンプリングした特徴点で評価を行い、サンプリング特徴点セットを何パターンか変えて、その中で最も良い結果を評価値として採用するような方法をとってもよい。その後、目的関数値が限界まで最小化されているかを判定する収束判定を実施する。収束判定は、目的関数の値の変遷から判断する。例えば、前回の目的関数の値と比較したときの差があらかじめ設定した小さな値以下となった場合に、収束したと判定する。
【００７０】
車両姿勢パラメータ変動量算出処理Ｓ７０１、車両姿勢パラメータ更新処理Ｓ７０２と目的関数評価処理Ｓ７０３を目的関数が収束するまで反復することで、全カメラの特徴点を同時に最も合致させる車両姿勢パラメータを得ることができる。
【００７１】
カメラパラメータ算出処理Ｓ６０２では、カメラパラメータ算出部６０２において、得られた車両姿勢パラメータを用いて４つのカメラパラメータを算出する。車両姿勢パラメータが得られていれば、座標変換によって、対応するカメラパラメータを容易に計算できる。
【００７２】
以上のように本実施形態に係るキャリブレーション装置によれば、車両に対する物体の積載状態が変化するなど、車両姿勢の変動に伴ってカメラパラメータが変化し得る場合に、早急にキャリブレーションを行うことができる。
【００７３】
例えば、車両が停車状態で、車両への積載状態などが変化した場合でもカメラキャリブレーションでき、積載状態が変わるたびに補正できる。例えば、車両を駐車する直前に乗員が降車し、積載状態が変化した場合でもキャリブレーションによって地面上の距離を正しく計測できるようになる。白線の位置を認識して自動で駐車する機能など乗車状態が変動した場合も実現できるようになる。また、駐車前に運転手以外の乗員を降ろして、運転手のみで駐車を実施する場合や、道路脇で人を乗せて、再発進する場合などでも、積載状態が変化した直後にキャリブレーションを行うことが可能となる。
【００７４】
なお、本発明は上記した実施形態に限定されるものではなく、様々な変形形態が含まれる。例えば、上記した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えることが可能であり、また、ある実施形態の構成に他の実施形態の構成を加えることも可能である。また、実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【００７５】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【００７６】
例えば、上記実施例では、ロール角、ピッチ角、ヨー角の全てのカメラパラメータを求める例を説明したが、これに限定されるものではなく、ロール角又はピッチ角の少なくとも一方のカメラパラメータをキャリブレーションできればよい。車両姿勢が変化する場合には、ロール角、ピッチ角、ヨー角の中でも、ロール角やピッチ角は車体の沈み込みなどにより変化しやすい。一方、ヨー角は、タイヤが接地していることで車体が上下を軸に回転することは通常起こりにくいため、ロール角やピッチ角に比べて変化が小さい。したがって、車載用のカメラにおいては、必ずしもヨー角を校正しないでも、カメラを概ね良好なキャリブレーション状態とすることができる。
【００７７】
その場合には、各カメラパラメータを個別に求める手法を用いてもよい。ここで、上記実施例で説明した８点法は、ロール角、ピッチ角、ヨー角の各カメラパラメータをいわば同時に求めるものであった。一方、各カメラパラメータを個別に求める場合には、例えば白線のような直線性を有する指標を用いることが考えられる。車両姿勢が変動すると直線性を有する指標の傾斜角度が画像上で変化するため、この傾斜角度が元の画像と同じくなるカメラパラメータを求めればよい。
【００７８】
具体的に説明すると、例えば図３に表わされるように、車両が前後方向に沈み込むように車両姿勢が変動すると、前方のカメラＡで撮影される一対の白線は、カメラから遠くなるほど広がり、後方のカメラＢでは、カメラから遠くなる部分ほど狭まる。したがって、この現象を用いることにより、ピッチ角を校正することができる。また、車両が左右方向に沈み込むように車両姿勢が変動すると、前方のカメラＡ及び後方のカメラＢで撮影される一対の白線は、左右で見え方が異なるし、左のカメラＣ及び右のカメラＤのそれぞれで撮影される白線も見え方が異なることになる。したがって、この現象を用いることにより、この現象を用いることにより、ロール角を校正することができる。このようにして、ロール角又はピッチ角、若しくは、ロール角及びピッチ角の両方のカメラパラメータをキャリブレーションすることができる。
【００７９】
また、上記実施例では、車両の姿勢変動前後の画像を用いてキャリブレーションする例について説明したが、車両の姿勢が変動したか否かに関わらず、車両の停止時の画像及び発進時の画像を用いるものであってもよい。この場合、車両の停止は、例えば、車速センサによって検知される車速が０ｋｍ／ｈとなったことや、シフト位置がパーキングとなったことや、カメラで撮影された画像に基づいて自車両が周囲の環境に対して移動していないことが検出されたことを用いて判断することができる。また、車両の発進は、例えば、車速センサによって検知される車速が０ｋｍ／ｈを超えたことや、シフト位置がパーキングから他のシフト位置に変更されたことや、カメラで撮影された画像に基づいて周囲の環境に対する自車両の移動が検出されたことや、エンジンのイグニッションスイッチがＯＮとなったことを用いて判断することができる。
【図１】
0006603094.tif 000002
【図２】
0006603094.tif 000003
【図３】
0006603094.tif 000004
【図４】
0006603094.tif 000005
【図５】
0006603094.tif 000006
【図６】
0006603094.tif 000007
【図７】
0006603094.tif 000008
【図８】
0006603094.tif 000009
【図９】
0006603094.tif 000010
【図１０】
0006603094.tif 000011