(57)【要約】【課題】特定のマーカや専用の作業関係を必要とせずに、キャリブレーション処理を可能にする。【解決手段】移動体に設置された各カメラから画像を取得する画像取得部と、移動体の直進時における移動前後の画像間で、抽出された特徴点を対応付ける対応付け処理部と、対応付けられた特徴点に対するホモグラフィ行列を推定し、分解した処理結果、全カメラ共通の移動方向ベクトル、路面法線ベクトル、及び移動体の移動量を用いて、移動体に対して設置された各カメラの姿勢及び高さを推定する高さ姿勢推定部と、姿勢と高さを用いて、カメラ間の共通視野部分に対して射影変換を行う射影変換部と、一方のカメラに対する他方のカメラの相対位置を、射影変換された共通視野部分が重なるように平行移動を用いて推定する相対位置推定部と、を備える。【選択図】図２
2014101075.tif 000002
【特許請求の範囲】
【請求項１】
移動体に設置された各カメラから画像を取得する画像取得部と、
前記移動体の直進時における移動前後の画像間で、抽出された特徴点を対応付ける対応付け処理部と、
対応付けられた特徴点に対するホモグラフィ行列を推定し、分解した処理結果、全カメラ共通の移動方向ベクトル、路面法線ベクトル、及び前記移動体の移動量を用いて、前記移動体に対して設置された各カメラの姿勢及び高さを推定する高さ姿勢推定部と、
前記姿勢と前記高さを用いて、カメラ間の共通視野部分に対して射影変換を行う射影変換部と、
一方のカメラに対する他方のカメラの相対位置を、射影変換された共通視野部分が重なるように平行移動を用いて推定する相対位置推定部と、
を備える画像処理装置。
【請求項２】
前記高さ姿勢推定部は、
前記対応付けられた特徴点からホモグラフィ行列を推定し、分解した結果である２つの解に対して単位行列との差が小さい方を選択するホモグラフィ推定・分解部と、
選択された解に対し、前記移動方向ベクトル及び路面法線ベクトルを与えて回転行列を計算する姿勢推定部と、
選択された解及び前記移動量を用いて前記高さを推定する高さ推定部と、
を備える請求項１記載の画像処理装置。
【請求項３】
前記移動体が直進しているか否かを判定する判定部をさらに備え、
前記判定部により直進していると判定された場合に、前記対応付け処理部、前記高さ姿勢推定部、前記射影変換部、及び前記相対位置推定部の処理を行う請求項１又は２記載の画像処理装置。
【請求項４】
路面が撮像された画像から特徴点を抽出する特徴点抽出部をさらに備える請求項１乃至３いずれか一項に記載の画像処理装置。
【請求項５】
移動体に設置された各カメラから画像を取得し、
前記移動体の直進時における移動前後の画像間で、抽出された特徴点を対応付け、
対応付けられた特徴点に対するホモグラフィ行列を推定し、分解した処理結果、全カメラ共通の直進移動方向ベクトル、路面法線ベクトル、及び前記移動体の移動量を用いて、前記移動体に対して設置された各カメラの姿勢及び高さを推定し、
前記姿勢と前記高さを用いて、カメラ間の共通視野部分に対して射影変換を行い、
一方のカメラに対する他方のカメラの相対位置を、射影変換された共通視野部分が重なるように平行移動を用いて推定する
処理をコンピュータが実行する画像処理方法。
【請求項６】
移動体に設置された各カメラから画像を取得し、
前記移動体の直進時における移動前後の画像間で、抽出された特徴点を対応付け、
対応付けられた特徴点に対するホモグラフィ行列を推定し、分解した処理結果、全カメラ共通の直進移動方向ベクトル、路面法線ベクトル、及び前記移動体の移動量を用いて、前記移動体に対して設置された各カメラの姿勢及び高さを推定し、
前記姿勢と前記高さを用いて、カメラ間の共通視野部分に対して射影変換を行い、
一方のカメラに対する他方のカメラの相対位置を、射影変換された共通視野部分が重なるように平行移動を用いて推定する
処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像された画像を処理する画像処理装置、画像処理方法及びプログラムに関する。
【背景技術】
【０００２】
近年、車両のような移動体に複数のカメラを設置して、車両周辺を撮像した画像を運転手等へ提供する技術が実用化されている。例えば、全周囲立体モニタなどの技術がある。車載マルチカメラシステムでは、複数のカメラから得た各画像を合成することで車両周辺の画像を提供する。また、車載マルチカメラシステムでは、高品質な合成画像を得るために、設置した各カメラのキャリブレーションを行う。
【０００３】
ここで、キャリブレーションとは、カメラの車両に対する設置位置（自由度３、例：X,Y,Z）と姿勢（自由度３、例：tilt角、roll角、pan角）を推定することである。
【０００４】
キャリブレーションの方法としては、例えば、車両周辺の既知の位置にマーカーを設置し、その位置と、そのマーカのカメラ画像上での位置との関係を用いて、カメラ位置姿勢を推定する方法がある。しかし、マーカを車両周辺の既知の位置に設置するには、専用の作業環境（例えば自動車工場）が必要である。このため、ユーザが容易に、あるいは短時間でカメラのキャリブレーションを行うことは困難である。
【０００５】
そこで、マーカの厳密な設置が不要な、容易かつ短時間でキャリブレーションを行う技術がある。例えば、この技術では、複数のカメラの撮像範囲が重なり合う車両周囲の所定位置に配置された複数の冶具であって、マーカ間の処理が既知であるマーカを有する冶具を撮像した画像によりキャリブレーションを行う（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１−１０７９９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来技術では、特定のマーカが必要であるため、専用の作業環境にユーザが行かなければならず、例えば走行中等、任意のタイミングで自由にキャリブレーションを実行することは不可能であった。
【０００８】
そこで、開示の技術では、特定のマーカや専用の作業関係を必要とせずに、キャリブレーション処理を可能にすることを目的とする。
【課題を解決するための手段】
【０００９】
開示の一態様における画像処理装置は、移動体に設置された各カメラから画像を取得する画像取得部と、前記移動体の直進時における移動前後の画像間で、抽出された特徴点を対応付ける対応付け処理部と、対応付けられた特徴点に対するホモグラフィ行列を推定し、分解した処理結果、全カメラ共通の移動方向ベクトル、路面法線ベクトル、及び前記移動体の移動量を用いて、前記移動体に対して設置された各カメラの姿勢及び高さを推定する高さ姿勢推定部と、前記姿勢と前記高さを用いて、カメラ間の共通視野部分に対して射影変換を行う射影変換部と、一方のカメラに対する他方のカメラの相対位置を、射影変換された共通視野部分が重なるように平行移動を用いて推定する相対位置推定部と、を備える。
【発明の効果】
【００１０】
開示の技術によれば、特定のマーカや専用の作業関係を必要とせずに、キャリブレーション処理を可能にする。
【図面の簡単な説明】
【００１１】
【図１】実施例におけるマルチカメラシステムの構成の一例を示すブロック図。
【図２】実施例における画像処理装置の機能の一例を示すブロック図。
【図３】カメラの移動に伴う各パラメータを説明する図。
【図４】４点の特徴点を基にキャリブレーションを行う例を説明する図。
【図５】フロントカメラとレフトカメラと各パラメータとの関係を示す図。
【図６】各カメラの相対位置を求める処理を説明するための図。
【図７】車両座標系の原点を説明する図。
【図８】実施例における特徴点対応付け処理の一例を示すフローチャート。
【図９】実施例におけるホモグラフィ演算処理の一例を示すフローチャート。
【図１０】実施例におけるカメラの高さ、姿勢の推定処理の一例を示すフローチャート。
【図１１】実施例における各カメラ間の相対位置の算出処理の一例を示すフローチャート。
【発明を実施するための形態】
【００１２】
以下、添付された図面を参照しつつ、実施例について説明する。
【００１３】
［実施例］
まず、実施例における移動体に搭載されるマルチカメラシステム１の構成について説明する。マルチカメラシステム１は、例えば車載マルチカメラシステムに適用できる。
【００１４】
＜構成＞
図１は、実施例におけるマルチカメラシステム１の構成の一例を示すブロック図である。マルチカメラシステム１は、画像処理装置１０と、カメラ２０と、表示部３０とを備える。マルチカメラシステム１は、複数のカメラ（カメラ２０−１、カメラ２０−２、・・・）を有する。各カメラは、個別に区別する必要がない場合には、単にカメラ２０と表記される。
【００１５】
画像処理装置１０は、移動体に設置された複数のカメラから画像を取得し、これらの画像を合成し、俯瞰画像を生成したりする。なお、画像処理装置１０は、各カメラのキャリブレーションを任意のタイミングで行う。キャリブレーションの詳細は後述する。
【００１６】
また、画像処理装置１０は、制御部１０１と、主記憶部１０３と、補助記憶部１０５と、通信部１０７と、ドライブ装置１０９と、カメラＩ／Ｆ１１１とを有する。これらの各部は、データ通信可能なように相互にデータバスを介して接続されている。
【００１７】
制御部１０１は、コンピュータの中で、各装置の制御やデータの演算、加工を行うＣＰＵ（Central Processing Unit）である。また、制御部１０１は、主記憶部１０３や補助記憶部１０５に記憶されたプログラムを実行する演算装置であり、入力装置や記憶装置からデータを受け取り、演算、加工した上で、出力装置や記憶装置に出力する。プログラムは、例えばキャリブレーションプログラムである。
【００１８】
主記憶部１０３は、例えば、ＲＯＭ（Read Only Memory）やＲＡＭ（Random Access Memory）などである。主記憶部１０３は、制御部１０１が実行する基本ソフトウェアであるＯＳやアプリケーションソフトウェアなどのプログラムやデータを記憶又は一時保存する記憶装置である。
【００１９】
補助記憶部１０５は、例えばＨＤＤ（Hard Disk Drive）などであり、アプリケーションソフトウェアなどに関連するデータを記憶する記憶装置である。補助記憶部１０５は、例えばカメラ２０から取得した画像を記憶する。
【００２０】
通信部１０７は、有線又は無線で周辺機器とデータ通信を行う。通信部１０７は、例えばネットワークを介して、画像を取得し、補助記憶部１０５に記憶する。
【００２１】
ドライブ装置１０９は、記録媒体４０、例えばフレキシブルディスクやＣＤ（Compact Disc）から、後述する処理を実行させるキャリブレーションプログラムを読み出し、記憶装置にインストールしてもよい。
【００２２】
また、記録媒体４０に、キャリブレーションプログラムを格納し、この記録媒体４０に格納されたプログラムは、ドライブ装置１０９を介して画像処理装置１０にインストールされる。インストールされたキャリブレーションプログラムは、画像処理装置１０により実行可能となる。
【００２３】
カメラＩ／Ｆ１１１は、カメラ２０から画像を取得するインタフェースである。カメラI／Ｆ１１１は、取得した画像を補助記憶部１０５に保存したり、又は制御部１０１に出力したりする。
【００２４】
カメラ２０は、例えば車両に設置されたフロントカメラ、レフトカメラ、ライトカメラ、バックカメラであり、路面を撮像し、カメラＩ／Ｆ１１１を介して画像処理装置１０に入力される。
【００２５】
表示部３０は、画像処理装置１０により生成された出力画像を表示したりする。例えば表示部３０は、俯瞰画像などを表示する。
【００２６】
＜機能＞
図２は、実施例における画像処理装置１０の機能の一例を示すブロック図である。画像処理装置１０は、画像取得部２０１と、特徴点抽出部２０３と、対応付け処理部２０５と、判定部２０７と、高さ姿勢推定部２０９と、移動量取得部２１９と、射影変換部２２１と、相対位置推定部２２３と、カメラ位置推定部２２５と、位置姿勢記録部２２７とを有する。
【００２７】
高さ姿勢推定部２０９は、ホモグラフィ推定・分解部２１１と、基準決定部２１３と、高さ推定部２１５と、姿勢推定部２１７とを有する。
【００２８】
なお、画像取得部２０１、特徴点抽出部２０３、対応付け処理部２０５、ホモグラフィ推定・分解部２１１はカメラ２０の数だけ存在する。同じ名称の部は、同じ機能を有するため、１つだけを説明する。
【００２９】
画像取得部２０１及び位置姿勢記録部２２７以外の各部は、例えば制御部１０１によりキャリブレーションプログラムが実行されることで、主記憶部１０３上にロードされて実行可能となる機能である。
【００３０】
画像取得部２０１は、例えばカメラＩ／Ｆ１１１により実現されうる。位置姿勢記録部２２７は、例えば補助記憶部１０５などにより実現されうる。
【００３１】
画像取得部２０１は、移動体に設置された各カメラから画像を取得する。画像取得部２０１は、例えば、対応するカメラ２０が撮像した画像を取得する。対応関係としては、例えばカメラ２０−１が画像取得部２０１−１に対応し、カメラ２０−２が画像取得部２０１−２に対応する。カメラ２０は、例えば移動体が直進しているときに、少なくとも２回撮像を行う。
【００３２】
特徴点抽出部２０３は、各撮像時の各画像から、少なくとも４点の特徴点を抽出する。特徴点は画像上のどのような点でも良い。ただし、路面上にあることと、あるカメラの２回の撮像で得た２枚の画像で同じ特徴点が抽出されることが条件である。特徴点抽出部２０３は、例えば、マンホールの蓋の中心、白線の端部等を抽出しても良いし、また、ＳＩＦＴ特徴など従来技術を用いても良い。特徴点抽出部２０３は、抽出した特徴点を対応付け処理部２０５に出力する。
【００３３】
対応付け処理部２０５は、移動体の直進時における移動前後の画像間で、特徴点抽出部２０３により抽出された特徴点を対応付ける。対応付け処理部２０５は、例えば、複数のカメラ２０のうちの任意のカメラにおいて、２回の撮像で得たそれぞれの画像で同じ特徴点を対応付ける。
【００３４】
特徴点の条件により、同じ特徴点が検出されているため、２つの画像間で対応付けが可能である。例えばＳＩＦＴ特徴の対応付けは、従来技術を用いて実現できる。
【００３５】
また、特徴点検出と対応付け処理は、公知の物体追跡技術を用いても良い。まず、公知の白線追跡技術を用いて、各撮像時で白線が検出・追跡される。次に、特徴点抽出部２０３は、例えば白線の端点を特徴点として抽出する。また、対応付け処理部２０５は、追跡によって各時刻で同じ白線が得られているので、特徴点の対応付けも行うことができる。
【００３６】
判定部２０７は、移動体が直進しているか否かを判定する。例えば、判定部２０７は、移動体に搭載されたジャイロセンサにより直進判定を行ってもよい。また、判定部２０７は、フロントカメラで撮像された少なくとも２つの画像における１又は複数の特徴点の移動ベクトルが、進行方向に対して前進又は後進を示せば直進であると判定してもよい。判定部２０７は、直進であると判定された場合に、特徴点抽出部２０３以降の処理を実行するように指示すればよい。
【００３７】
これにより、走行中に自動で直進判定を行って、キャリブレーション処理を行うことができるようになる。
【００３８】
次に、高さ姿勢推定部２０９の処理について説明する。以下では高さ姿勢推定部２０９の説明のために、４台のカメラがそれぞれ車両の前方（Ｆカメラ）、後方（Ｂカメラ）、側面左（Ｌカメラ）、側面右（Ｒカメラ）に取り付けられた、車載マルチカメラシステムを例にあげる。また、以降では、移動体について車両を例にして説明する。
【００３９】
高さ姿勢推定部２０９は、対応付けられた特徴点に対するホモグラフィ行列を推定し、分解した処理結果、全カメラ共通の移動方向ベクトル、路面法線ベクトル、及び移動体の移動量を用いて、移動体に対して設置された各カメラの姿勢及び高さを推定する。
【００４０】
ここで、カメラ２０は、路面を撮像するために車両に対してやや下向きに取り付けられているものとする。また、各座標系を右手系にとり、車両座標系を、移動体中心を原点とし、移動体の進行方向をＹ軸正とし、鉛直上向きをＺ軸正とする。右手系であるため、移動体の右方向がＸ軸正である。
【００４１】
また、路面をＺ＝０のＸＹ平面とする。また、カメラ座標系を、光軸をＺ軸に取り、カメラはＺ軸負の方向を撮像し、カメラの上方向をＹ軸正とする。右手系のため、カメラの右方向がＸ軸正である。これらは説明のための例であり、実装はこれに限らない。
【００４２】
各カメラＣ（Ｃ＝｛Ｆ（フロント），Ｂ（バック），Ｌ（レフト），Ｒ（ライト）｝）の内部パラメータは既知とする。以下、カメラ２０は、カメラＣとしても表記される。内部パラメータとは焦点距離やレンズ歪みなどのことであり、設計値を用いても良いし、公知の内部パラメータ推定法を用いて予め推定しても良い。
【００４３】
カメラＣの、撮像時ｔ（ｔ＝１，２）でのｉ番目の路面上の特徴点の画像座標をＰＣｉ，ｔとする。ここで、ＰＣｉ，１とＰＣｉ，２が対応付けられている。内部パラメータが既知であるので、画像座標から、カメラＣから見た特徴点への方向ベクトルｖＣｉ，ｔが、公知の方法で得られる。また、方向ベクトルの像面ｚ＝１への投影をｕＣｉ，ｔとする。すなわち、ｖＣｉ，ｔを式（１）としたとき、方向ベクトルとその投影の関係は、式（２）で表される。
【００４４】
【数１】
2014101075.tif 000003
【００４５】
特徴点は、路面（同一平面）上に存在する。そのため、１回目の撮像時から２回目の撮像時へ変換するホモグラフィ行列Ｈｃが、式（３）により表される。
【００４６】
【数２】
2014101075.tif 000004
ここで、記号∝は、定数倍を除いて等しいことを示す。ホモグラフィ行列は、対応付けられた特徴点が４点以上有れば、公知の方法を用いて推定可能である。
【００４７】
また、ホモグラフィ行列は、式（４）で表されることも公知である。
【００４８】
【数３】
2014101075.tif 000005
ここで、ＲＣは、１回目の撮像時のカメラ座標系から見た、２回目の撮像時のカメラ姿勢を示す。ｔＣは、１回目の撮像時のカメラ座標系から見た、２回目の撮像時のカメラ位置（カメラの移動先）である。
【００４９】
また、ｎＣは、１回目の撮像時のカメラ座標系から見た、特徴点を取得した平面（路面）の法線ベクトルである。ｄＣは、特徴点を取得した平面からカメラまでの距離である。
【００５０】
上記各パラメータの関係を図３に示す。図３は、カメラの移動に伴う各パラメータを説明する図である。図３に示す例では、カメラの移動により特徴点への方向ベクトルがｖＣｉ，ｔが変わる。また、法線ベクトルｎＣと距離ｄＣとは、図３に示す通りである。また、カメラの移動に伴うカメラ姿勢がＲＣであり、カメラの移動先がｔＣである。
【００５１】
ここで、式（４）から、式（５）及び式（６）を用いて、式（７）のように変形すると、次のことが公知である。
【００５２】
【数４】
2014101075.tif 000006
すなわち、Ｈｃから（ｓＣ，ｎＣ）の組を得る分解方法が存在する。分解は、数学的には４通り存在する。しかし、カメラ光軸の取り方から２通りの分解結果が解の候補として得られる。いずれかが真の解であるが、曖昧性が残る。なお、Ｒｃは、式（７）から、（ｓＣ，ｎＣ）を用いて、式（８）により計算することができる。
【００５３】
【数５】
2014101075.tif 000007
【００５４】
図２に戻り、ホモグラフィ推定・分解部２１１は、まず、上記の公知の方法を用いて、特徴点検出と対応付け処理で得られた特徴点から、上記のホモグラフィ行列の推定と２通りの分解を計算し、２通りの（ｓＣ，ｎＣ，ＲＣ）の組を算出する。
【００５５】
ここで、実施例における２回の撮像は、２回目は１回目から車両進行方向に直進（前進、後進を含む）して撮像するものとした。これにより、２回の撮像でカメラの相対姿勢は変化しておらず、ゆえにＲＣの真値は単位行列である。よって、２通りの（ｓＣ，ｎＣ，ＲＣ）のうち、ＲＣが単位行列に近い方が真の解であると推定される。
【００５６】
したがって、ホモグラフィ推定・分解部２１１では、次に、各ＲＣと単位行列の誤差を計算し、誤差が小さい方を解として選択する。誤差は、例えばフロベニウスノルムで求めても良い。ホモグラフィ推定・分解部２１１は、選択した方の組を最終的な（ｓＣ，ｎＣ，ＲＣ）とする。
【００５７】
次に、ホモグラフィ推定・分解部２１１は、ｓＣとＲＣから式（９）によりＴＣを求め、（ｎＣ，ＴＣ）を出力する。
【００５８】
【数６】
2014101075.tif 000008
【００５９】
基準決定部２１３は、車両座標系での車両の直進移動方向の方向ベクトルと、車両座標系での路面法線ベクトルを決定する。実施例では、車両の進行方向をＹ軸とし、車両の前進とは進行方向への移動であるから、前進の移動方向はＹ軸の正方向であり、同様に路面はＸＹ平面であるから、路面法線はＺ軸の正方向と決定できる。
【００６０】
姿勢推定部２１７は、車両に対するカメラの設置姿勢を推定し、例えばホモグラフィ推定・分解部２１１により選択された解に対し、基準決定部２１３により決定された移動方向ベクトル及び路面法線ベクトルを与えて回転行列を計算する。この回転行列がカメラの姿勢に対応する。
【００６１】
まず、ｎＣは、カメラ座標系から見た路面の法線ベクトルである。路面の法線ベクトルは、前述した通り、車両座標系から見れば、例えばＺ軸の正方向である。また、ＴＣは、式（５）から、ｔＣと同じ方向であり、ｔＣは、２回の撮像でのカメラの移動先であるので、ＴＣは、カメラ座標系から見た移動方向である。
【００６２】
そして、基準決定部２１３で決定した通り、移動方向は、例えば車両の前進方向であり、前進方向を車両座標系から見るとＹ軸の正方向である。よって、姿勢推定部２１７は、全カメラに対して共通の、路面法線と移動方向を用いることで、車両に対して設置された各カメラの姿勢に相当する回転行列を計算することができる。
【００６３】
回転行列の計算式は、式（１０）である。
【００６４】
【数７】
2014101075.tif 000009
姿勢推定部２１７は、求めた回転行列を姿勢データとしても良いが、さらにｔｉｌｔ角、ｒｏｌｌ角、ｐａｎ角のオイラー角表現に変換しても良い。回転行列からオイラー角への変換は公知である。
【００６５】
高さ推定部２１５は、ホモグラフィ推定・分解部２１１により選択された解及び車両の移動量を用いてカメラの高さを推定する。高さ推定部２１５は、例えば選択された解から得られたＴＣと、移動量取得部２１９より得られる前進移動量とを用いて、カメラの高さＣａｒＺＣを推定する。カメラの高さとは、路面からカメラまでの距離であり、したがって式（５）中のｄＣである。
【００６６】
ここで、得られた前進移動量をＹＣａｒとすれば、一方で、前進移動はｔＣで表わされているため、式（１１）が成り立つ。
【００６７】
【数８】
2014101075.tif 000010
ゆえに、高さ推定部２１５は、ＣａｒＺＣを式（１２）により計算することができる。
【００６８】
【数９】
2014101075.tif 000011
【００６９】
前述したように、姿勢推定部２１７と、高さ推定部２１５とによって、各カメラの姿勢と高さが推定される。
【００７０】
移動量推定部２１９は、車両の移動量を推定し、高さ推定部２１５に出力する。車両の移動量は、例えば、車速カウンタを用いて取得されてもよい。
【００７１】
次に、カメラ間の相対位置関係が求められる。ここで、相対位置関係を求めるとは、例えば、Ｆカメラの位置を基準としたときのＬカメラの（Ｘ，Ｙ）平行移動を求めることである。
【００７２】
実施例では、カメラ間の相対位置関係を求める段階で、車両座標系に対するカメラの姿勢と高さが推定されているので、（Ｘ，Ｙ）平行移動のみで相対位置関係を求めれば良い。この処理は、以下に説明する射影変換部２２１と、相対位置推定部２２３とによって行われる。
【００７３】
射影変換部２２１は、高さ姿勢推定部２０９により求められた姿勢と高さを用いて、カメラ間の共通視野部分に対して射影変換を行う。相対位置推定部２２３は、一方のカメラに対する他方のカメラの相対位置を、射影変換された共通視野部分が重なるように平行移動を用いて推定する。
【００７４】
以下では説明のために、Ｆカメラの位置を基準としたときのＬカメラの（Ｘ，Ｙ）平行移動を求める場合を例に挙げる。なお、同様の処理でＦカメラ基準でのＲカメラの平行移動や、Ｌカメラ基準でのＢカメラの平行移動を求めることができる。また、Ｆカメラを基準としたＬカメラの平行移動と、Ｌカメラ基準でのＢカメラの平行移動とから、Ｆカメラを基準としたＢカメラの平行移動も求まる。ゆえに、Ｆカメラを基準とした各カメラの平行移動を求めることができる。
【００７５】
相対位置推定の処理は、２回の撮像の、いずれかの画像を用いて行う。あるいは、第３の撮像時の画像を用いても良い。求めるＬカメラのＦカメラに対する相対位置を（ＸＬ，ＹＬ）と置く。相対位置推定の処理は、端的にいえば、カメラ間の共通視野同士が重なるように平行移動（ＸＬ，ＹＬ）を求める処理である。以下に詳細を述べる。
【００７６】
まず、射影変換部２２１は、前述した特徴点抽出と対応付け処理を流用して、ＦカメラとＬカメラの共通視野上にある路面上の特徴点を少なくとも１点抽出する。つまり、射影変換部２２１は、特徴点抽出処理により、Ｆカメラの画像とＬカメラの画像から路面上の特徴点を抽出し、対応付け処理により、抽出した特徴点の中から、Ｆカメラの画像にも、Ｌカメラの画像にも撮像されている特徴点を１点以上対応付ける。
【００７７】
ここで、射影変換部２２１は、１点の特徴点が対応付けられたとし、その特徴点のＦカメラ、Ｌカメラから見た方向ベクトルをそれぞれｖＦＭ、ｖＬＭとする。
【００７８】
次に、射影変換部２２１は、各々のカメラの足元を基準にしたときの、特徴点の路面上の座標（ＸＣＭ，ＸＣＭ）を算出する。路面上の座標は、式（１３）により計算される。
【００７９】
【数１０】
2014101075.tif 000012
式（１３）の左辺のｋＣＭは、未知の量である。しかし、式（１３）は、三元の連立方程式であるので、計算することができる。Ｆ、Ｌカメラそれぞれでの計算結果を（ＸＦＭ，ＸＦＭ）、（ＸＬＭ，ＸＬＭ）とする。射影変換部２２１は、求めた計算結果を相対位置推定部２２３に出力する。
【００８０】
相対位置推定部２２３は、ＬカメラのＦカメラに対する相対位置を求める。相対位置を求める際に、射影変換部２２１の計算結果（ＸＦＭ，ＸＦＭ）、（ＸＬＭ，ＸＬＭ）は、対応付けられた特徴点から求めた値であるので、計算結果の座標値が同じ座標値となるものであることを利用する。
【００８１】
つまり、（ＸＦＭ，ＸＦＭ）、（ＸＬＭ，ＸＬＭ）の差分が、カメラ間の相対的な平行移動量である。このことは、式（１４）により表される。
【００８２】
【数１１】
2014101075.tif 000013
【００８３】
相対位置推定部２２３は、式（１４）を用いて、相対位置（ＸＬ，ＹＬ）を、式（１５）により求めることができる。
【００８４】
【数１２】
2014101075.tif 000014
【００８５】
相対位置推定部２２３は、特徴点が１点よりも多く対応付けられている場合は、式（１５）が対応点の数だけ得られるので、例えば、その平均値を相対位置（ＸＬ，ＹＬ）として良い。
【００８６】
また、画像処理装置１０は、特徴点抽出を行わずに画像全体を特徴としても良い。この場合、射影変換部２２１は、式（１３）により路面への射影画像を作成する。相対位置推定部２２３は、共通視野部分の重なり具合に対して、例えば、ＳＡＤ値を最適化基準として、相対位置（ＸＬ，ＹＬ）を推定する。
【００８７】
以上の処理により、Ｆカメラを基準としたＬカメラの相対位置（ＸＬ，ＹＬ）が推定される。また前述の通り、同様の処理でＦカメラを基準としたＢカメラの相対位置（ＸＢ，ＹＢ）、同じくＲカメラの相対位置（ＸＲ，ＹＲ）も求まる。ここで、（ＸＦ，ＹＦ）＝（０，０）とおく。
【００８８】
カメラ位置推定部２２５は、相対位置推定部２２３で求めた相対位置をもとに、車両座標系での位置（Ｘ，Ｙ）を求める。カメラ位置推定部２２５は、車両座標系の原点が車両中心にあることを用いて、次の様に行う。
【００８９】
まず、カメラ位置推定部２２５は、式（１６）と式（１７）とを用いて車両中心（Ｘ０，Ｙ０）を計算する。
【００９０】
【数１３】
2014101075.tif 000015
【００９１】
次に、カメラ位置推定部２２５は、車両中心が原点になるように、各カメラＣの車両座標系での（ＣａｒＸＣ，ＣａｒＹＣ）座標を式（１８）と式（１９）を用いて計算する。
【００９２】
【数１４】
2014101075.tif 000016
【００９３】
位置姿勢記録部２２７は、カメラ位置推定部２２５により計算された各カメラの車両座標系での位置（ＣａｒＸＣ，ＣａｒＹＣ）と、姿勢推定部２１７により計算された各カメラの姿勢ＣａｒＲＣを記録する。以上の処理により、キャリブレーションが完了する。
【００９４】
＜具体例＞
次に、図４〜７を用いて、車両が路面にある特徴点、例えば白線の端点を抽出してキャリブレーションを行う例について説明する。実施例では、路面にある特徴点を用いるので、特別なマーカを必要としない。
【００９５】
図４は、４点の特徴点を基にキャリブレーションを行う例を説明する図である。図４に示す点線枠は、各カメラＣでの撮影範囲を示す。図４に示す黒丸は、特徴点を表す。図４に示すように、各カメラＣの撮影範囲には４点の特徴点が存在する。また、図４に示すように、車両は、２回目の撮像時点では、１回目の撮像時点からＹ方向（進行方向）に前進している。実施例では、車両は直進する場合にキャリブレーションを行う。
【００９６】
また、特徴点のサイズ、形状は問わない。カメラを設置する座標も問わない。ただし、２回の撮像で得られる画像間で、特徴点が対応付けられることを条件とする。
【００９７】
図５は、フロントカメラとレフトカメラと各パラメータとの関係を示す図である。図５では、説明を簡単にするため、フロントカメラとレフトカメラとしか記載しないが、実際の車両にはライトカメラやバックカメラを設置してもよい。
【００９８】
特徴点の対応付けが終わると、ホモグラフィ推定・分解部２１１は、ホモグラフィ行列を求め、分解することにより、（ｎＣ，ＴＣ）を求める。求められた各カメラの（ｎＣ，ＴＣ）を用いて、カメラの姿勢に対応するＲＣＦ、ＲＣＬが求められる。
【００９９】
ここで、カメラが設置された高さＺＣは、予め測定しておいてもよい。または、車両の移動量が走行カウンタなどにより取得できるのであれば、高さ推定部２１５は、それぞれのカメラの高さＺＣＦ，ＺＣＬを、その移動量を用いて推定することができる。
【０１００】
図６は、各カメラの相対位置を求める処理を説明するための図である。図６に示す例は、フロントカメラに対して、レフトカメラの相対位置（ＸＬ，ＹＬ）を求める例である。相対位置（ＸＬ，ＹＬ）は、共通視野内に特徴点が１点あれば路面上へ再投影（射影変換）し、特徴点同士が重なるようにすることで、推定可能である。なお、各カメラで進行方向は共通であるため、実施例では、相対パン角は不要である。画像処理装置１０は、同様の処理を行うことで、フロントカメラから見た各カメラ（バック、レフト、ライト）の相対位置を全て求めることができる。
【０１０１】
図７は、車両座標系の原点を説明する図である。図７に示すように、カメラ位置推定部２２５は、フロントカメラとバックカメラの中点のＹ座標をＹ０とし、レフトカメラとライトカメラとの中点のＸ座標のＸ０とし、点（Ｘ０，Ｙ０）を車両座標系の原点とする。
【０１０２】
カメラ位置推定部２２５は、各カメラの相対位置に対し、（Ｘ０，Ｙ０）が車両座標系の原点となるように、各カメラの座標を平行移動する。以上の処理で求めた各カメラの位置と姿勢とをキャリブレーション結果として、位置姿勢記録部２２７が保存する。
【０１０３】
これにより、画像処理装置１０は、走行中に道路上の特徴点を抽出、追跡し、この特徴点を用いて走行中にキャリブレーションを行うことができる。また、画像処理装置１０は、道路上の白線を追跡し、白線の端点を特徴点としてもよい。
【０１０４】
＜動作＞
次に、実施例における画像処理装置１０の動作について説明する。まずは、特徴点の対応付け処理について説明する。
【０１０５】
《特徴点の対応付け処理》
図８は、実施例における特徴点対応付け処理の一例を示すフローチャートである。図８に示す例では、特徴点として白線の端点を用いる例を説明するが、この例に限られない。図８に示すステップＳ１０１で、特徴点抽出部２０３は、時刻ｔ１の画像から白線Ｌ１を検出する。
【０１０６】
ステップＳ１０２で、特徴点抽出部２０３は、時刻ｔ２の画像から時刻ｔ１で検出した白線を追跡し、これをＬ２とする。
【０１０７】
ステップＳ１０３で、特徴点抽出部２０３は、Ｌ１とＬ２との端点を、それぞれの撮像時の画像の特徴点として抽出する。
【０１０８】
ステップＳ１０４で、対応付け処理部２０５は、Ｌ１とＬ２の端点（特徴点）を対応付ける。
【０１０９】
《ホモグラフィ演算処理》
図９は、実施例におけるホモグラフィ演算処理の一例を示すフローチャートである。図９に示すステップＳ２０１で、ホモグラフィ推定・分解部２１１は、対応付けられた特徴点を取得する。
【０１１０】
ステップＳ２０２で、ホモグラフィ推定・分解部２１１は、ホモグラフィ行列ＨＣを推定する。
【０１１１】
ステップＳ２０３で、ホモグラフィ推定・分解部２１１は、推定したホモグラフィ行列ＨＣから２通りの分解（ＡｓＣ，ＡｎＣ）、（ＢｓＣ，ＢｎＣ）を計算する。
【０１１２】
ステップＳ２０４で、ホモグラフィ推定・分解部２１１は、２通りの解のそれぞれのＲＣを計算する（（ＡｓＣ，ＡｎＣ，ＡＲＣ）、（ＢｓＣ，ＢｎＣ，ＢＲＣ））。
【０１１３】
ステップＳ２０５で、ホモグラフィ推定・分解部２１１は、それぞれのＲＣと単位行列との差を計算する（ＡＥ＝ＡＲＣ−Ｉ，ＢＥ＝ＢＲＣ−Ｉ）。Ｉは、単位行列とする。
【０１１４】
ステップＳ２０６で、ホモグラフィ推定・分解部２１１は、例えばフロベニウスノルム（誤差）を計算する（Ａｅ＝‖ＡＥ‖Ｆ，Ｂｅ＝‖ＢＥ‖Ｆ）。
【０１１５】
ステップＳ２０７で、ホモグラフィ推定・分解部２１１は、誤差の小さい方を選択する。つまり、誤差の小さい方は、Ａｅ＜Ｂｅであれば、（ｓＣ，ｎＣ，ＲＣ）＝（ＡｓＣ，ＡｎＣ，ＡＲＣ）であり、Ａｅ≧Ｂｅであれば、（ｓＣ，ｎＣ，ＲＣ）＝（ＢｓＣ，ＢｎＣ，ＢＲＣ）である。
【０１１６】
ステップＳ２０８で、ホモグラフィ推定・分解部２１１は、求めたｎＣと、ＴＣ＝ＲＣ×ｓＣとを出力する。
【０１１７】
《高さ、姿勢推定処理》
図１０は、実施例におけるカメラの高さ、姿勢の推定処理の一例を示すフローチャートである。図１０に示す処理では、カメラの姿勢として、ｔｉｌｔ角、ｒｏｌｌ角、ｐａｎ角を計算するが、必ずしも必要な処理ではない。
【０１１８】
図１０に示すステップＳ３０１で、姿勢推定部２１７は、ホモグラフィ推定・分解部２１１により求められたｎＣと、ＴＣとを取得する。
【０１１９】
ステップＳ３０２で、姿勢推定部２１７は、ｎＣとＴＣとを用いて、式（１０）により回転行列を計算する。
【０１２０】
ステップＳ３０３で、姿勢推定部２１７は、回転行列からｔｉｌｔ角、ｒｏｌｌ角、ｐａｎ角を計算し、これらをカメラの姿勢として出力する。
【０１２１】
ステップＳ３０４で、高さ推定部２１５は、車両の移動量ＹＣａｒを移動量取得部２１９から取得する。
【０１２２】
ステップＳ３０５で、高さ推定部２１５は、式（１２）を用いてカメラが設置された高さＣａｒＺＣを計算する。
【０１２３】
ステップＳ３０６で、高さ推定部２１５は、求めたＣａｒＺＣを、カメラが設置された高さとして出力する。
【０１２４】
《相対位置推定処理》
図１１は、実施例における各カメラ間の相対位置の算出処理の一例を示すフローチャートである。図１１に示す処理では、フロントカメラを基準にしたレフトカメラの相対位置を求める処理である。その他のライトカメラやバックカメラも同様にしてフロントカメラからの相対位置を求めることができる。
【０１２５】
図１１に示すステップＳ４０１で、射影変換部２２１は、フロントカメラの画像から特徴点を抽出する。
【０１２６】
ステップＳ４０２で、射影変換部２２１は、レフトカメラの画像からの特徴点を抽出する。
【０１２７】
ステップＳ４０３で、射影変換部２２１は、フロントカメラとレフトカメラとの共通視野の特徴点を対応付けてｖＦＭ、ｖＬＭとする。
【０１２８】
ステップＳ４０４で、射影変換部２２１は、フロントカメラ、レフトカメラのそれぞれで、式（１３）による射影を解く。
【０１２９】
ステップＳ４０５で、相対位置推定部２２３は、式（１５）によりフロントカメラの位置を基準としてレフトカメラの相対位置（ＸＬ，ＹＬ）を計算し、出力する。
【０１３０】
以上、実施例によれば、特定のマーカや専用の作業関係を必要とせずに、キャリブレーション処理を可能にする。実施例によれば、走行中や、車両を少し前進（又は後退）させるだけでも、キャリブレーションを行うことができる。
【０１３１】
例えば、実施例における車載マルチカメラシステム向けのキャリブレーションでは、容易かつ短時間であることに加えて、マーカが不要でユーザが走行中にもキャリブレーションを行うことができる。
【０１３２】
また、マーカを不要とする場合や、マーカを使用する場合でも厳密な配置は、実施例では不要となる。実施例では、マーカの設置位置という基準がないため、車載マルチカメラシステムでは、カメラ間の相対的な配置関係を求める処理が必要である。
【０１３３】
例えば特許文献１の技術では、共通視野のマーカがカメラ間で重なるように、カメラ間の相対位置（平行移動）と相対向き（回転角度）を推定する。しかしながら、平行移動と回転の同時推定は困難である。
【０１３４】
これは、例えば、マーカを円にすると、円はどの方角から見ても円であるため、マーカがカメラ間で重なるような平行移動と回転角度の組み合わせは無数に存在するからである。
【０１３５】
そこで、実施例における車載マルチカメラシステムでは、カメラ間の相対配置関係を推定する場合に、相対位置（平行移動）のみ推定すればよい。さらに、実施例では、平行移動のみで推定すれば良いので、推定するパラメータが特許文献１の技術に比べて一つ少ない分、より高精度で高速に推定することが可能になる。
【０１３６】
［変形例］
なお、前述した実施例で説明したキャリブレーション処理を含む画像処理を実現するためのプログラムを記録媒体に記録することで、実施例で説明した処理をコンピュータに実施させることができる。
【０１３７】
例えば、このプログラムを記録媒体に記録し、このプログラムが記録された記録媒体を車載コンピュータなどに読み取らせて、前述した処理を実現させることも可能である。
【０１３８】
なお、記録媒体は、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク等の様に情報を光学的、電気的或いは磁気的に記録する記録媒体、ＲＯＭ、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。また、記録媒体は、搬送波などの一過性のものを含まない。
【０１３９】
以上、画像処理装置、画像処理方法及びプログラムについて詳述したが、特定の実施例に限定されるものではなく、特許請求の範囲に記載された範囲内において、種々の変形及び変更が可能である。また、前述した実施例の構成要素を全部又は複数を組み合わせることも可能である。
【０１４０】
なお、以上の実施例に関し、さらに以下の付記を開示する。
（付記１）
移動体に設置された各カメラから画像を取得する画像取得部と、
前記移動体の直進時における移動前後の画像間で、抽出された特徴点を対応付ける対応付け処理部と、
対応付けられた特徴点に対するホモグラフィ行列を推定し、分解した処理結果、全カメラ共通の移動方向ベクトル、路面法線ベクトル、及び前記移動体の移動量を用いて、前記移動体に対して設置された各カメラの姿勢及び高さを推定する高さ姿勢推定部と、
前記姿勢と前記高さを用いて、カメラ間の共通視野部分に対して射影変換を行う射影変換部と、
一方のカメラに対する他方のカメラの相対位置を、射影変換された共通視野部分が重なるように平行移動を用いて推定する相対位置推定部と、
を備える画像処理装置。
（付記２）
前記高さ姿勢推定部は、
前記対応付けられた特徴点からホモグラフィ行列を推定し、分解した結果である２つの解に対して単位行列との差が小さい方を選択するホモグラフィ推定・分解部と、
選択された解に対し、前記移動方向ベクトル及び路面法線ベクトルを与えて回転行列を計算する姿勢推定部と、
選択された解及び前記移動量を用いて前記高さを推定する高さ推定部と、
を備える付記１記載の画像処理装置。
（付記３）
前記移動体が直進しているか否かを判定する判定部をさらに備え、
前記判定部により直進していると判定された場合に、前記対応付け処理部、前記高さ姿勢推定部、前記射影変換部、及び前記相対位置推定部の処理を行う付記１又は２記載の画像処理装置。
（付記４）
路面が撮像された画像から特徴点を抽出する特徴点抽出部をさらに備える付記１乃至３いずれか一項に記載の画像処理装置。
（付記５）
移動体に設置された各カメラから画像を取得し、
前記移動体の直進時における移動前後の画像間で、抽出された特徴点を対応付け、
対応付けられた特徴点に対するホモグラフィ行列を推定し、分解した処理結果、全カメラ共通の直進移動方向ベクトル、路面法線ベクトル、及び前記移動体の移動量を用いて、前記移動体に対して設置された各カメラの姿勢及び高さを推定し、
前記姿勢と前記高さを用いて、カメラ間の共通視野部分に対して射影変換を行い、
一方のカメラに対する他方のカメラの相対位置を、射影変換された共通視野部分が重なるように平行移動を用いて推定する
処理をコンピュータが実行する画像処理方法。
（付記６）
移動体に設置された各カメラから画像を取得し、
前記移動体の直進時における移動前後の画像間で、抽出された特徴点を対応付け、
対応付けられた特徴点に対するホモグラフィ行列を推定し、分解した処理結果、全カメラ共通の直進移動方向ベクトル、路面法線ベクトル、及び前記移動体の移動量を用いて、前記移動体に対して設置された各カメラの姿勢及び高さを推定し、
前記姿勢と前記高さを用いて、カメラ間の共通視野部分に対して射影変換を行い、
一方のカメラに対する他方のカメラの相対位置を、射影変換された共通視野部分が重なるように平行移動を用いて推定する
処理をコンピュータに実行させるプログラム。
【符号の説明】
【０１４１】
１  マルチカメラシステム
１０  画像処理装置
２０  カメラ
３０  表示部
４０  記録媒体
１０１  制御部
１０３  主記憶部
１０５  補助記憶部
２０１  画像取得部
２０３  特徴点抽出部
２０５  対応付け処理部
２０７  判定部
２０９  高さ姿勢推定部
２１１  ホモグラフィ推定・分解部
２１３  基準決定部
２１５  高さ推定部
２１７  姿勢推定部
２１９  移動量取得部
２２１  射影変換部
２２３  相対位置推定部
２２５  カメラ位置推定部
２２７  位置姿勢記録部
【図１】
2014101075.tif 000017
【図２】
2014101075.tif 000018
【図３】
2014101075.tif 000019
【図４】
2014101075.tif 000020
【図５】
2014101075.tif 000021
【図６】
2014101075.tif 000022
【図７】
2014101075.tif 000023
【図８】
2014101075.tif 000024
【図９】
2014101075.tif 000025
【図１０】
2014101075.tif 000026
【図１１】
2014101075.tif 000027