(58)【調査した分野】(Int.Cl.,DB名)
車両(10)に対して第1の方向を向くように取り付けられた第1の撮像部(2−2)により第1の時刻において生成された第1の画像から、少なくとも一つの第1の線分を抽出する線分抽出部(21)と、
前記第1の画像上の前記第1の線分を含むマッチング範囲に対応する、実空間上の第1の領域を、前記車両(10)と前記車両(10)の周囲の構造物の位置関係を規定する所定の条件に従って特定し、前記第1の領域を、前記車両(10)に対して前記第1の方向と異なる第2の方向を向くように取り付けられた第2の撮像部(2−1)により、前記第1の時刻と異なる第2の時刻において生成された第2の画像上に投影することで、前記マッチング範囲に対応する前記第2の画像上の範囲を特定する投影部(22)と、
前記第2の画像上の所定の探索範囲内で、前記マッチング範囲に対応する前記第2の画像上の範囲の相対的な位置を変えながら前記マッチング範囲と前記第2の画像間でブロックマッチングを行うことで、前記マッチング範囲と最も類似する領域を特定し、該最も類似する領域内の線分を前記第1の線分に対応する第2の線分とする対応付け部(23)と、
を有する位置合わせ装置。
前記所定の条件は、前記マッチング範囲に対応する前記第1の領域が前記車両(10)の直進方向と平行でかつ路面に垂直な面上、または路面上に有るとする条件である、請求項1に記載の位置合わせ装置。
前記所定の条件は、前記マッチング範囲に対応する前記第1の領域が、前記第1の時刻における前記車両(10)の位置と前記第2の時刻における前記車両(10)の位置間にける、前記車両(10)が走行する道路の何れかの位置での前記道路と平行でかつ路面に垂直な面上にあるとする条件である、請求項1に記載の位置合わせ装置。
前記投影部(22)は、前記車両(10)に搭載された前記車両(10)の移動量または速度を検知するセンサから取得したセンサ情報に基づいて求められた、前記第1の時刻と前記第2の時刻間の前記車両(10)の移動量に基づいて、前記第1の撮像部を基準とする座標系における前記第1の領域の座標を前記第2の撮像部を基準とする前記第1の領域の座標に変換し、当該変換された前記第1の領域の座標を前記第2の画像上へ投影することで、前記マッチング範囲に対応する前記第2の画像上の範囲を特定する、請求項1〜3の何れか一項に記載の位置合わせ装置。
前記投影部(22)は、前記第2の撮像部(2−1)により互いに異なる時刻で生成された複数の画像のうち、当該画像について求められた前記マッチング範囲に対応する範囲が当該画像内に含まれる場合、当該画像を前記第2の画像とする、請求項1〜4の何れか一項に記載の位置合わせ装置。
前記投影部(22)は、前記第2の撮像部(2−1)により互いに異なる時刻で生成された複数の画像のうち、当該画像が生成された時刻と前記第1の時刻間の前記車両(10)の移動量が所定範囲となる画像を前記第2の画像とする、請求項1〜4の何れか一項に記載の位置合わせ装置。
前記第1の線分と前記第2の線分に対応する線分を地図上に書き込むことで地図を作成する地図作成部(24)をさらに有する、請求項1〜7の何れか一項に記載の位置合わせ装置。
車両(10)に対して第1の方向を向くように取り付けられた第1の撮像部(2−2)により第1の時刻において生成された第1の画像から、少なくとも一つの第1の線分を抽出するステップと、
前記第1の画像上の前記第1の線分を含むマッチング範囲に対応する、実空間上の第1の領域を、前記車両(10)と前記車両(10)の周囲の構造物の位置関係を規定する所定の条件に従って特定し、前記第1の領域を、前記車両(10)に対して前記第1の方向と異なる第2の方向を向くように取り付けられた第2の撮像部(2−1)により、前記第1の時刻と異なる第2の時刻において生成された第2の画像上に投影することで、前記マッチング範囲に対応する前記第2の画像上の範囲を特定するステップと、
前記第2の画像上の所定の探索範囲内で、前記マッチング範囲に対応する前記第2の画像上の範囲の相対的な位置を変えながら前記マッチング範囲と前記第2の画像間でブロックマッチングを行うことで、前記マッチング範囲と最も類似する領域を特定し、該最も類似する領域内の線分を前記第1の線分に対応する第2の線分とするステップと、
を含む位置合わせ方法。
車両(10)に対して第1の方向を向くように取り付けられた第1の撮像部(2−2)により第1の時刻において生成された第1の画像から、少なくとも一つの第1の線分を抽出するステップと、
前記第1の画像上の前記第1の線分を含むマッチング範囲に対応する、実空間上の第1の領域を、前記車両(10)と前記車両(10)の周囲の構造物の位置関係を規定する所定の条件に従って特定し、前記第1の領域を、前記車両(10)に対して前記第1の方向と異なる第2の方向を向くように取り付けられた第2の撮像部(2−1)により、前記第1の時刻と異なる第2の時刻において生成された第2の画像上に投影することで、前記マッチング範囲に対応する前記第2の画像上の範囲を特定するステップと、
前記第2の画像上の所定の探索範囲内で、前記マッチング範囲に対応する前記第2の画像上の範囲の相対的な位置を変えながら前記マッチング範囲と前記第2の画像間でブロックマッチングを行うことで、前記マッチング範囲と最も類似する領域を特定し、該最も類似する領域内の線分を前記第1の線分に対応する第2の線分とするステップと、
をコンピュータに実行させるための位置合わせ用コンピュータプログラム。
【発明の概要】
【発明が解決しようとする課題】
【0007】
特許文献1に開示された技術では、二つの画像間での対応付けが行われるのは、路面上の点に限られている。しかしながら、用途によっては、路面以外の点に相当する特徴点同士を画像間で対応付けることが要求されることもある。
【0008】
また、非特許文献1〜3に開示された技術では、実空間の同じ位置を撮影した二つの画像のそれぞれについて、その位置を見る視点が異なっているために、画像上でもその位置の見え方が異なっている。そのため、特徴点あるいは線分の対応付けに関して、十分な精度が得られないおそれがあった。
【0009】
そこで、本発明は、車両に搭載された複数のカメラのそれぞれにより生成された画像間で、実空間上の同じ構造物の線に対応する画像上の線分同士の対応付けの精度を向上できる位置合わせ装置、位置合わせ方法及び位置合わせ用コンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【0010】
請求項1の記載によれば、本発明の一つの形態として、位置合わせ装置が提供される。係る位置合わせ装置は、車両(10)に対して第1の方向を向くように取り付けられた第1の撮像部(2−2)により第1の時刻において生成された第1の画像から、少なくとも一つの第1の線分を抽出する線分抽出部(21)と、第1の画像上の第1の線分を含むマッチング範囲に対応する、実空間上の第1の領域を、車両(10)と車両(10)の周囲の構造物の位置関係を規定する所定の条件に従って特定し、第1の領域を、車両(10)に対して第1の方向と異なる第2の方向を向くように取り付けられた第2の撮像部(2−1)により、第1の時刻と異なる第2の時刻において生成された第2の画像上に投影することで、マッチング範囲に対応する第2の画像上の範囲を特定する投影部(22)と、第2の画像上の所定の探索範囲内で、マッチング範囲に対応する第2の画像上の範囲の相対的な位置を変えながらマッチング範囲と第2の画像間でブロックマッチングを行うことで、マッチング範囲と最も類似する領域を特定し、その最も類似する領域内の線分を第1の線分に対応する第2の線分とする対応付け部(23)とを有する。
本発明に係る位置合わせ装置は、上記の構成を有することにより、車両に搭載された複数のカメラのそれぞれにより生成された画像間で、実空間上の同じ構造物の線に対応する画像上の線分同士の対応付けの精度を向上できる。
【0011】
また請求項2の記載によれば、所定の条件は、マッチング範囲に対応する第1の領域が車両(10)の直進方向と平行でかつ路面に垂直な面上、または路面上に有るとする条件であることが好ましい。
これにより、位置合わせ装置は、マッチング範囲に対応する第2の画像上の範囲を適切に決定できる。
【0012】
あるいは、請求項3の記載によれば、所定の条件は、マッチング範囲に対応する第1の領域が、第1の時刻における車両(10)の位置と第2の時刻における車両(10)の位置間にける、車両(10)が走行する道路の何れかの位置での道路と平行でかつ路面に垂直な面上にあるとする条件であることが好ましい。
これにより、位置合わせ装置は、第1の時刻と第2の時刻の間で車両が道路に沿って曲線状に移動していても、マッチング範囲に対応する第2の画像上の範囲を適切に決定できる。
【0013】
さらに、請求項4の記載によれば、投影部(22)は、車両(10)に搭載された車両(10)の移動量または速度を検知するセンサから取得したセンサ情報に基づいて求められた、第1の時刻と第2の時刻間の車両(10)の移動量に基づいて、第1の撮像部を基準とする座標系における第1の領域の座標を第2の撮像部を基準とする第1の領域の座標に変換し、変換された第1の領域の座標を第2の画像上へ投影することで、マッチング範囲に対応する第2の画像上の範囲を特定することが好ましい。
これにより、位置合わせ装置は、二つの画像の生成時刻間で車両が移動していても、マッチング範囲に対応する第2の画像上の範囲を適切に特定できる。
【0014】
さらに、請求項5の記載によれば、投影部(22)は、第2の撮像部(2−1)により互いに異なる時刻で生成された複数の画像のうち、その画像について求められたマッチング範囲に対応する範囲がその画像内に含まれる場合、その画像を第2の画像とすることが好ましい。
これにより、位置合わせ装置は、線分同士の対応付けを行う第2の画像を適切に決定できる。
【0015】
さらに、請求項6の記載によれば、投影部(22)は、第2の撮像部(2−1)により互いに異なる時刻で生成された複数の画像のうち、その画像が生成された時刻と第1の時刻間の車両(10)の移動量が所定範囲となる画像を第2の画像とすることが好ましい。
これにより、位置合わせ装置は、線分同士の対応付けを行う第2の画像を、簡単な演算で適切に決定できる。
【0016】
さらに、請求項7の記載によれば、位置合わせ装置は、第1の画像上で路面が写っている領域を検出する路面検出部をさらに有し、投影部(22)は、第1の線分が路面が写っている領域に含まれる場合、マッチング範囲に対応する第1の領域が路面上に有るとして特定することが好ましい。
これにより、位置合わせ装置は、マッチング範囲に対応する実空間上の領域をより適切に設定できる。
【0017】
さらに、請求項8の記載によれば、位置合わせ装置は、第1の線分と第2の線分に対応する線分を地図上に書き込むことで地図を作成する地図作成部(24)をさらに有することが好ましい。
これにより、位置合わせ装置は、SLAMを実現することができる。
【0018】
また請求項9の記載によれば、本発明の他の形態として、位置合わせ方法が提供される。係る位置合わせ方法は、車両(10)に対して第1の方向を向くように取り付けられた第1の撮像部(2−2)により第1の時刻において生成された第1の画像から、少なくとも一つの第1の線分を抽出するステップと、第1の画像上の第1の線分を含むマッチング範囲に対応する、実空間上の第1の領域を、車両(10)と車両(10)の周囲の構造物の位置関係を規定する所定の条件に従って特定し、第1の領域を、車両(10)に対して第1の方向と異なる第2の方向を向くように取り付けられた第2の撮像部(2−1)により、第1の時刻と異なる第2の時刻において生成された第2の画像上に投影することで、マッチング範囲に対応する第2の画像上の範囲を特定するステップと、第2の画像上の所定の探索範囲内で、マッチング範囲に対応する第2の画像上の範囲の相対的な位置を変えながらマッチング範囲と第2の画像間でブロックマッチングを行うことで、マッチング範囲と最も類似する領域を特定し、その最も類似する領域内の線分を第1の線分に対応する第2の線分とするステップと、を含む。
本発明に係る位置合わせ方法は、上記のステップを有することにより、車両に搭載された複数のカメラのそれぞれにより生成された画像間で、実空間上の同じ構造物の線に対応する画像上の線分同士の対応付けの精度を向上できる。
【0019】
また請求項10の記載によれば、本発明の他の形態として、位置合わせ用コンピュータプログラムが提供される。係る位置合わせ用コンピュータプログラムは、車両(10)に対して第1の方向を向くように取り付けられた第1の撮像部(2−2)により第1の時刻において生成された第1の画像から、少なくとも一つの第1の線分を抽出するステップと、第1の画像上の第1の線分を含むマッチング範囲に対応する、実空間上の第1の領域を、車両(10)と車両(10)の周囲の構造物の位置関係を規定する所定の条件に従って特定し、第1の領域を、車両(10)に対して第1の方向と異なる第2の方向を向くように取り付けられた第2の撮像部(2−1)により、第1の時刻と異なる第2の時刻において生成された第2の画像上に投影することで、マッチング範囲に対応する第2の画像上の範囲を特定するステップと、第2の画像上の所定の探索範囲内で、マッチング範囲に対応する第2の画像上の範囲の相対的な位置を変えながらマッチング範囲と第2の画像間でブロックマッチングを行うことで、マッチング範囲と最も類似する領域を特定し、その最も類似する領域内の線分を第1の線分に対応する第2の線分とするステップと、をコンピュータに実行させるための命令を含む。
本発明に係る位置合わせ用コンピュータプログラムは、上記の命令を有することにより、車両に搭載された複数のカメラのそれぞれにより生成された画像間で、実空間上の同じ構造物の線に対応する画像上の線分同士の対応付けの精度を向上できる。
【0020】
上記各部に付した括弧内の符号は、後述する実施形態に記載の具体的手段との対応関係を示す一例である。
【発明を実施するための形態】
【0022】
以下、図を参照しつつ、一つの実施形態による、位置合わせ装置について説明する。
この位置合わせ装置は、車両に搭載され、異なる方向に向けられた二つのカメラのそれぞれにより、互いに異なるタイミングで生成された二つの画像間で、実空間上の同一の構造物の線(構造物の形状による線だけでなく、構造物上に描画された図形または文字などによる線も含む)に対応する画像上の線分同士を対応付ける。その際、この位置合わせ装置は、一方のカメラにより生成された画像から抽出された線分の周囲に設定される、ブロックマッチング用の領域であるパッチに対応する実空間上の領域を、Manhattan-World仮説に基づいて設定し、その実空間上の領域を他方のカメラにより生成された画像上に投影して他方の画像上でのブロックマッチングの対象領域を特定することで、線分同士の対応付けの精度を向上するとともに、演算量の削減を図る。
【0023】
図1は、一つの実施形態による位置合わせ装置の概略構成図である。
図1に示すように、位置合わせ装置1は、車両10に搭載され、カメラ2−1及び2−2、慣性計測装置(IMU)3、車輪速センサ4、及び電子制御ユニット(ECU)5と、コントロールエリアネットワーク(以下、CANという)6を介して互いに接続されている。なお、
図1では、説明の都合のため、位置合わせ装置1など、車両10に搭載されている各構成要素及び車両10の形状、サイズ及び配置は、実際のものとは異なっている。
【0024】
カメラ2−1、2−2は、それぞれ、撮像部の一例である。本実施形態では、カメラ2−1、2−2は、それぞれ、CCDあるいはC-MOSなど、可視光に感度を有する光電変換素子のアレイで構成された2次元検出器と、その2次元検出器上に撮影対象となる領域の像を結像する結像光学系を有する。そしてカメラ2−1は、結像光学系の光軸が地面に対して略平行となり、かつ車両10の前方を向くように、例えば、車両10の車室内に取り付けられる。そしてカメラ2−1は、所定の撮影周期(例えば1/30秒)ごとに車両10の前方領域を撮影し、その前方領域が写った画像を生成する。一方、カメラ2−2は、結像光学系の光軸が地面に対して略平行となり、かつ車両10の後方を向くように、車両10の後端部に取り付けられる。そしてカメラ2−2は、所定の撮影周期ごとに車両10の後方領域を撮影し、その後方領域が写った画像を生成する。カメラ2−1、2−2により得られた画像は、カラー画像であってもよく、あるいは、グレー画像であってもよい。
【0025】
カメラ2−1、2−2は、それぞれ、画像を生成する度に、その生成した画像を位置合わせ装置1へ出力する。
【0026】
位置合わせ装置1は、記憶部11と、通信部12と、制御部13とを有する。
記憶部11は、例えば、電気的に書き換え可能な不揮発性メモリ及び揮発性メモリなどの半導体メモリを有する。そして記憶部11は、位置合わせ装置1を制御するための各種プログラム、及び、位置合わせ処理で利用される各種の情報、カメラ2−1またはカメラ2−2により生成された画像、及び制御部13による一時的な演算結果などを記憶する。
【0027】
通信部12は、カメラ2−1、2−2、IMU3、車輪速センサ4、及びECU5などとCAN6を通じて通信する通信インターフェース及びその制御回路を有する。そして通信部12は、カメラ2−1、2-2から画像を受け取り、その画像を制御部13へ渡す。また通信部12は、位置合わせ処理を実行する周期ごとに、IMU3から、車両10の速度及び移動量などを表すオドメトリ情報を取得したり、あるいは、車輪速センサ4から車輪速を取得して、制御部13へ渡す。
【0028】
制御部13は、1個もしくは複数個の図示してないプロセッサ及びその周辺回路を有する。そして制御部13は、位置合わせ装置1全体を制御する。
図2に、制御部13の機能ブロック図を示す。
図2に示すように、制御部13は、線分抽出部21と、投影部22と、対応付け部23と、地図作成部24とを有する。制御部13が有するこれらの各部は、例えば、制御部13が有するプロセッサ上で実行されるコンピュータプログラムによって実現される機能モジュールとして実装される。
【0029】
本実施形態では、制御部13は、ある時刻n(ここでは、フレーム間隔を単位とする時刻を表す。秒、分などを単位とする時刻については、実時刻と呼ぶ)において車両10の後方を撮影するカメラ2−2により生成された画像上の線分を、その時刻よりもkフレーム前の時刻(n-k)において車両10の前方を撮影するカメラ2−1により生成された画像上の線分と対応付ける。これは、車両10が前進している場合、車両10の後方を撮影するカメラ2−2により時刻nで撮影された範囲は、それより前の時刻(n-k)にて車両10の前方を撮影するカメラ2−1により撮影された範囲と重なる部分があると想定されるためである。
なお、以下では、説明の便宜上、カメラ2-1により生成された画像を前方画像と呼び、カメラ2−2により生成された画像を後方画像と呼ぶ。
【0030】
線分抽出部21は、カメラ2−2から制御部13が後方画像を受け取る度に、その後方画像から、カメラ2−2の撮影領域内にある、路面、道路標識、看板、あるいは建築物といった構造物の線に対応する線分を抽出する。そのために、線分抽出部21は、例えば、線分検出器を用いて後方画像上の線分を検出する。線分抽出部21は、線分検出器として、例えば、R.G. von Gioi他、"A fast line segment detector with a false detection control"、 IEEE Transactions on Pattern Analysis & Machine Intelligence、 (4)、2008年、pp.722-732に開示されたアルゴリズムを利用できる。あるいは、線分抽出部21は、画像から線分を検出できる他の線分検出器を利用してもよい。
線分抽出部21は、後方画像ごとに、その後方画像の取得時刻とその後方画像から抽出した線分を表す後方画像上のその線分の中点の座標と向き及び長さを表すベクトルを投影部22へ渡す。
【0031】
同様に、線分抽出部21は、カメラ2−1から制御部13が前方画像を受け取る度に、その前方画像から線分を抽出する。そして線分抽出部21は、抽出した線分の中点の座標と向き及び長さを表すベクトルを、前方画像の取得時刻とともに記憶部11に記憶する。
【0032】
投影部22は、後方画像上の線分ごとに、その線分を中心とするブロックマッチング用のパッチを設定し、実空間上でそのパッチに相当する領域を特定する。そして投影部22は、実空間上でのパッチの対応領域を、後方画像よりもkフレーム前に取得された前方画像上に投影する。
この投影処理には、画像上の座標と、実空間上での座標間の変換が必要となる。そこで先ず、その変換に利用される座標系について説明する。
【0033】
図3は、二つのカメラのそれぞれについてのカメラ座標系と車両座標系の関係を示す図である。カメラ2-1を基準とする実空間の座標系であるカメラ座標系(以下、便宜上、前方カメラ座標系と呼ぶ)C1は、カメラ2−1の像側焦点を原点とし、車両10の直進方向をz軸、路面と平行かつz軸と直交する方向をx軸、路面に垂直な方向をy軸とする座標系である。そしてz軸について、車両10の前方へ向かう方向を正とし、x軸の正方向は右手座標系により規定される。また、カメラ2-2を基準とする実空間の座標系であるカメラ座標系(以下、便宜上、後方カメラ座標系と呼ぶ)C2は、カメラ2−2の像側焦点を原点とし、車両10の直進方向をz軸、路面と平行かつz軸と直交する方向をx軸、路面に垂直な方向をy軸とする座標系である。そしてz軸について、車両10の後方へ向かう方向を正とし、x軸の正方向は右手座標系により規定される。
【0034】
また、車両10を基準とする実空間の座標系である車両座標系Vは、車両10の任意の点、例えば、前側の車輪間の中点、後ろ側の車輪間の中点、あるいは前側の車輪間の中点と後ろ側の車輪間の中点との中点を原点とし、車両10の直進方向をz軸、路面と平行かつz軸と直交する方向をx軸、路面に垂直な方向をy軸とする座標系である。そしてz軸について、車両10の前方へ向かう方向を正とし、x軸の正方向は右手座標系により規定される。また、これらの座標系において、xz平面における、z軸とのなす角はθで表される。
【0035】
図4(a)〜
図4(c)は、それぞれ、ブロックマッチングを行うマッチング範囲であるパッチの一例を示す図である。
図4(a)に示される例では、パッチ401は、着目する線分410と平行な方向に沿って線分410と同じ長さを持ち、かつ、線分410と直交する方向に所定の幅(例えば、10〜20ピクセル)を持つ矩形領域として設定される。また、
図4(b)に示される例では、パッチ402は、着目する線分410と直交する方向に所定の幅(例えば、10〜20ピクセル)を持ち、かつ、線分410と平行な方向に沿って、線分410よりも所定長(例えば、10〜20ピクセル)だけ長い矩形領域として設定される。さらに、
図4(c)に示される例では、パッチ403は、着目する線分410までの距離が所定値(例えば、10〜20ピクセル)以下となる領域として設定される。
【0036】
本実施形態では、ブロックマッチングを行うマッチング範囲であるパッチはu
pは、例えば、次式のように定義される。
【数1】
ここで、(u
m,2,v
m,2)は、後方画像上での着目する線分の中点の座標を表し、α、βは、それぞれ、後方画像上でのパッチu
p内の画素の線分の中点からの水平方向及び垂直方向の距離を表す。なお、αの取り得る値の範囲[α
0, α
1]、及び、βの取り得る値の範囲[β
0, β
1]は、それぞれ、垂直方向の位置及び水平方向の位置についての関数として表される。そしてその関数は、線分の向き、及び、
図4(a)〜
図4(c)に示される、パッチの形状に応じて決定される。
【0037】
また、投影部22は、後方画像上の線分に基づいて設定されるパッチu
pから、車両10と車両10の周囲の構造物の位置関係を規定する所定の条件に従って実空間上での対応領域を特定する。そして投影部22は、その対応領域について、後方カメラ座標系→時刻nにおける車両座標系→実空間の絶対座標である世界座標系→時刻(n-k)における車両座標系→前方カメラ座標系→前方画像上の順に投影する。
そこで先ず、パッチu
pに対応する実空間上での領域についてのカメラ座標系での座標の導出について説明する。
【0038】
後方画像あるいは前方画像上の座標(2次元座標)をカメラ座標系の座標(3次元座標)に変換する際、本実施形態では、ピンホールカメラモデルが適用される。この場合、後方画像上でのパッチu
p内の各画素の座標は、次式に従って正規化座標系上の座標U
nに変換される。
【数2】
ここで、(c
u,c
v)は後方画像の中心の座標、すなわち、カメラ2−2の光軸上の位置に相当する後方画像上の位置の座標を表す。またf
u、f
vは、それぞれ、後方画像上の画素の水平方向及び垂直方向のサイズを考慮した、水平方向及び垂直方向に相当するカメラ2−2の焦点距離を表す。そして(u
n、v
n)は、線分の中点(u
m,2,v
m,2)に対応する正規化座標であり、U
n=(u
n+α
n,v
n+β
n)は、正規化座標系でのパッチu
p内の各画素の座標である。そして(x,y,z)は、U
nに対応するカメラ座標系上の点の座標である。
【0039】
本実施形態では、車両10と車両10の周囲の構造物の位置関係を規定する所定の条件として、Manhattan-World仮説を導入する。そしてManhattan-World仮説に基づいて、各線分についてのパッチに対応する実空間上の領域を特定する。Manhattan-World仮説では、画像上の線分に対応する実空間上の構造物の線は、以下の3種類の何れかである。
(1)車両10の直進方向と平行な建物の側壁上の線
(2)車両10の直進方向と直交する建物の側壁上の線
(3)路面上の線
また、画像上の線分に対応する実空間上の構造物の線の周囲は平面になっていると仮定される。
【0040】
図5は、本実施形態による、Manhattan-World仮説に基づく、実空間上の構造物の線と車両の位置関係を示す図である。本実施形態では、カメラ2−1は車両10の前方を向いており、一方、カメラ2−2は、車両10の後方を向いているので、上記の(2)に相当する線については、両方のカメラから見えることはなく、一方の画像上の線分が他方の画像上の線分と対応付けられることはない。したがって、(1)に相当する、車両10の直進方向と平行な側壁上の線501に対応する線分、あるいは、(3)に相当する、路面上の線502に対応する線分が、前方画像と後方画像の間で対応付けられる。
【0041】
線501にように、画像上の線分に対応する実空間上の構造物の線が車両10の直進方向と平行な建物500の側壁にある場合、その線分のパッチに対応する実空間上の領域に含まれる各点について、カメラ座標系ではx=dとなる。なお、dは、車両10とその線分に対応する実空間上での線までの距離である。したがって、上記の(1)の条件が仮定される場合、パッチu
pに対応する実空間上の領域内の各点についてのカメラ座標系での座標P
pは次式で表される。
【数3】
【0042】
一方、点502にように、画像上の線分に対応する実空間上の構造物の線が路面上にある場合、その線分のパッチに対応する実空間上の領域に含まれる各点について、カメラ座標系ではy=hとなる。なお、hは路面からカメラ2−2までの高さであり、予め記憶部11に記憶される。したがって、上記の(3)の条件が仮定される場合、パッチu
pに対応する実空間上の領域内の各点についてのカメラ座標系での座標P
pは次式で表される。
【数4】
【0043】
投影部22は、(2)式と(3)式、または(2)式と(4)式にしたがって、後方画像上の各線分についてのパッチu
pに対応する実空間上の領域内の各点のカメラ座標系上の座標P
pを求める。なお、dについては、任意の所定区間、例えば、[1,20](m)の区間で、1m単位で変化させる。すなわち、各線分について、dの値ごとに(2)式と(3)式に基づいて求められる20個の領域の座標P
pと、(2)式と(4)式に基づいて求められる1個の領域の座標P
pが求められる。
【0044】
なお、投影部22は、バンドル調整によりdの区間を上記の所定区間よりも狭く設定してもよい。この場合には、投影部22は、例えば、画像上の線分に対応する、実空間上の構造物の線を、カメラ2−2により異なる時間での撮影により得られた二つの後方画像間で線分の対応付けを行うことで特定する。そして投影部22は、その二つの後方画像の生成時に対応する二つの車両の位置を利用した三角測量によって車両10からその線分上の点(例えば、中点)に対応する実空間上の点までの距離を測定し、その測定された距離を含むようにdの区間を設定すればよい。
【0045】
投影部22は、後方画像上の各線分のパッチについて、そのパッチに対応する実空間上の領域のそれぞれを前方画像上に投影するwarping関数は、次式で表される。
【数5】
ここで、u
n'は、座標P
pに対応する、前方画像上の領域の座標である。また関数π
vc1()は、車両座標系からカメラ2-1のカメラ座標系への変換関数であり、関数π
vc2()は、車両座標系からカメラ2-2のカメラ座標系への変換関数である。なお、これらの逆関数は、それぞれ、対応するカメラ座標系から車両座標系への変換関数となる。なお、車両座標系とカメラ座標系間の変換は、それぞれの座標系の原点の差に相当する並進行列T
vc1,T
vc2と、車両10の直進方向とカメラの光軸間の傾きに相当する回転行列R
vc1,R
vc2により表される。
【0046】
また、関数π
ci()は、カメラ座標系から画像上の座標への変換関数であり、(2)式のカメラ座標(x,y,z)から画像上の座標(u
n,v
n)への変換に相当する。
【0047】
また、関数π
nwv()は、時刻nにおける世界座標系から車両座標系への変換関数である。一方、その逆関数π
nwv-1()は、時刻nにおける車両座標系から世界座標系への変換関数である。
【0048】
以下に、関数π
nwv()の詳細について説明する。X
n=
t(x
n,z
n,θ
n)を、世界座標系での時刻nにおける車両10の位置及び向きを表す位置ベクトルとする。この場合、X
nは、時刻(n-k)における車両10の位置X
n-k=
t(x
n-k,z
n-k,θ
n-k)との間に、次式で表される関係が成立する。
【数6】
ここで、u
nは、オドメトリ情報であり、v
n,right、v
n,leftは、それぞれ、時刻nにおける車両10の右側後輪の車輪速、及び左側後輪の車輪速を表す。そしてω
n、v
nは、それぞれ、時刻nにおける車両10の角速度及び速度を表す。またd
aは、車両10の左右の後輪間の間隔である。さらに、Δtは、時刻(n-k)と時刻n間の実時刻の差であり、Δt=k×fで表される。なお、fは、カメラ2−1、2−2のフレーム周期(撮影間隔)である。またε
xは、移動量の誤差を確率分布で表す誤差モデルである。本実施形態では、誤差モデルε
xは、ガウス分布で表されるものとし、その共分散Σ
xは、x軸方向、z軸方向及びθに関して、以下のように定義される。
【数7】
ここで、σ
x、σ
z及びσ
θは、例えば、オドメトリ情報あるいは車輪速の誤差に基づいて設定され、例えば、σ
x=σ
z=0.1[m]であり、σ
θ=2π/360[rad]である。
【0049】
時刻nにおける、世界座標系から車両座標系への変換を表す回転行列R
t及び並進行列T
tは、時刻nにおける車両10の位置ベクトルX
nを用いて次式で表される。
【数8】
したがって、関数π
nwv()は、次式で表される。
【数9】
ここで、P
wは、世界座標系での着目点の座標を表し、P
vは、P
wに対応する点の車両座標系での座標を表す。なお、(5)式における、π
n-kwv()では、x
n=x
n-k、z
n=z
n-k、θ
n=θ
n-kとすればよい。
【0050】
また、後方画像上の線分を基準として、前方画像上の対応する線分をより正確に特定するためには、後方画像上での線分の向きに対応する、前方画像上での線分の向きが求められることが好ましい。また、実空間での線分は、その線分上の点(例えば、中点)の3次元の座標p(px,py,pz)とその線分の向きを表す3次元ベクトルr(rx,ry,rz)とで表される。したがって、世界座標系での線分の向きを表す3次元ベクトルrを、カメラ2−1を基準とするカメラ座標系のベクトルA
1へ変換する変換式、及び、カメラ2−2を基準とするカメラ座標系のベクトルA
2へ変換する変換式は、次式で表される。
【数10】
ここでR
ivwは、時刻iにおける、変換式π
iwvに含まれる回転行列Rの逆行列であり、(8)式及び(9)式に従って算出される。
【0051】
また、カメラ座標系のベクトルA
1を前方画像へ投影して前方画像上の対応ベクトルa
1を算出する式、及び、カメラ座標系のベクトルA
2を後方画像へ投影して後方画像上の対応ベクトルa
2を算出する式は、次式で表される。
【数11】
ここで、q
1(x
1,y
1,z
1)は、カメラ2−1を基準とするカメラ座標系での線分上の点pの座標を表し、q
2(x
2,y
2,z
2)は、カメラ2−2を基準とするカメラ座標系での線分上の点pの座標を表し、それぞれ、(5)〜(9)式に従って算出される。したがって、投影部22は、後方画像上の各線分について、その線分の向きを表すベクトルを、カメラ2−2に関する(10)式及び(11)式の逆変換に従って世界座標系でのベクトルに変換し、その後、カメラ2−1に関する(10)式及び(11)式に従って、世界座標系でのベクトルから、前方画像上での対応ベクトルを求めることができる。
【0052】
上記のように、パッチu
pに対応する、実空間上の領域を前方画像上へ投影することで、パッチu
p内の各画素に対応する前方画像上の位置、すなわち、パッチu
pを前方画像上に投影した領域が求められる。
投影部22は、後方画像上の各線分についてのパッチu
p内の各画素に対応する、kフレーム前の前方画像上での画素の座標及び線分の向きを表すベクトルを対応付け部23へ出力する。
【0053】
対応付け部23は、後方画像上の各線分についてのパッチu
pに対応する、kフレーム前の前方画像上での領域と、前方画像との間でブロックマッチングを行って互いに類似する領域を特定することで、後方画像上の各線分に前方画像上の線分を対応付ける。
【0054】
本実施形態では、対応付け部23は、後方画像上の各線分について、対応する前方画像上の線分の探索を行う探索範囲を誤差モデルに基づく誤差楕円として設定する。その際、誤差楕円は、次式により算出される共分散行列Σ
Fにより定められる。
【数12】
なお、wは、(5)式の右辺を表す。
【0055】
対応付け部23は、共分散行列Σ
Fの固有値λ
1、λ
2と、固有ベクトルv
1、v
2を算出する。ただし、大きい方の固有値をλ
1とする。このとき、誤差楕円の長径a及び短径bは、次式で表される。
【数13】
ここで、χ
2は、χ二乗分布であり、誤差楕円の信用区間を表す。また、前方画像上の水平方向に対して誤差楕円の長径がなす角θ
εは、次式で表される。
【数14】
【0056】
対応付け部23は、後方画像上の各線分について、kフレーム前の前方画像上の探索範囲である誤差楕円内にあり、かつ、前方画像上に投影したときのその線分となす角が所定角度(例えば、3°〜5°)以下となる、前方画像上の線分を、後方画像上の線分に対応付ける候補として検出する。なお、対応付け部23は、次式を満たす前方画像上の線分を、探索範囲に含まれると判定する。
【数15】
ここで、(u'
c,v'
c)は、後方画像上の着目する線分に対応する前方画像上での線分の中点の座標を表す。そして(u',v')は、前方画像上で検出された線分の中点の座標である。
【0057】
対応付け部23は、後方画像上の各線分について、kフレーム前の前方画像上の探索範囲内にある線分のそれぞれについて、ブロックマッチングを行って正規化相互相関値を算出する。その際、対応付け部23は、パッチが投影された前方画像上の領域の中心、すなわち、後方画像上の線分が前方画像上に投影された位置と、ブロックマッチングの対象となる前方画像上の線分間の位置の差を打ち消すように、前方画像上に投影されたパッチ内の各画素の位置を平行移動させることで、後方画像上のパッチ内の各画素に対応する前方画像上の画素を特定すればよい。そして対応付け部23は、後方画像上のパッチ内の各画素の輝度値と、対応する前方画像上の画素の輝度値に基づいて正規化相互相関値を算出できる。対応付け部23は、その正規化相互相関値が最大となる前方画像上の線分を、後方画像上の着目する線分に対応付ける。なお、対応付け部23は、正規化相互相関値の最大値が所定の閾値(例えば、0.6〜0.7)以上である場合に限り、その二つの線分を対応付けてもよい。
【0058】
なお、対応付け部23は、演算量を軽減するために、探索範囲を、後方画像上の線分の中点に対応する前方画像上の座標を中心とする、予め設定された所定の範囲に設定してもよい。この場合、所定の範囲は、例えば、水平方向について、パッチの水平方向サイズの2〜3倍とし、垂直方向について、パッチの垂直方向サイズの2〜3倍とすることができる。
【0059】
なお、変形例によれば、パッチの形状自体に、後方画像上での線分の向きの情報が含まれているので、対応付け部23は、kフレーム前の前方画像上の探索範囲にある前方画像上の線分の全てを、後方画像上の線分に対応付ける候補としてもよい。
【0060】
また、他の変形例によれば、対応付け部23は、後方画像上の各線分について、対応する探索範囲内の各画素をそれぞれパッチの中心に対応させるよう、パッチを平行移動させてそれぞれ正規化相互相関値を算出し、その正規化相互相関値が最大となる画素を、後方画像上の着目する線分に対応する前方画像上の線分の中点とし、着目する線分の向きに対応する前方画像上での向きを、その対応する線分の向きとしてもよい。この場合には、線分抽出部21は、前方画像から線分を抽出しなくてもよい。
【0061】
対応付け部23は、後方画像上の線分と対応付けられた前方画像上の線分のそれぞれの中点の座標及び向きを表すベクトルの組、及び、対応する後方画像の取得時刻と前方画像の取得時刻の組とを関連付けて、記憶部11に記憶する。
【0062】
地図作成部24は、後方画像上の線分と、対応する前方画像上の線分とに基づいて地図を作成する。地図作成部24は、例えば、バンドル調整(bundle adjustment)法にしたがって、互いに対応付けされた後方画像上の線分と前方画像上の線分の組ごとに、その組に対応する線分を地図に書き込むことで地図を作成する。なお、地図作成部24は、上記のManhattan-World仮説における(3)の条件に基づいて対応付けられた後方画像上の線分と前方画像上の線分の組のみを、地図作成に利用することが好ましい。これにより、路面以外の構造物の線が地図に書き込まれることが抑制される。
【0063】
図6に、制御部13により制御される、位置合わせ処理の動作フローチャートを示す。なお、制御部13は、後方画像ごとに、この動作フローチャートにしたがって位置合わせ処理を実行する。
【0064】
線分抽出部21は、後方画像及び前方画像のそれぞれから線分を抽出する(ステップS101)。そして線分抽出部21は、前方画像から抽出した各線分の中点の座標及び向きを表すベクトルを記憶部11に記憶する。また線分抽出部21は、後方画像から抽出した各線分の中点の座標及び向きを表すベクトルを投影部22へ渡す。
【0065】
投影部22は、後方画像から抽出した各線分について、その線分の中点を中心とするパッチを設定し、そのパッチに対応する実空間上の1以上の領域をManhattan-World仮説に従って設定する(ステップS102)。そして投影部22は、後方画像から抽出した各線分について、パッチに対応する実空間上の各領域を、後方画像の取得時よりもkフレーム前に取得された前方画像上へ投影する(ステップS103)。
【0066】
対応付け部23は、後方画像から抽出した各線分について、パッチに対応する実空間上の領域の中心の前方画像上の投影位置を中心として探索範囲を設定する(ステップS104)。そして対応付け部23は、探索範囲内にある前方画像上の線分の周囲の領域と、前方画像上でのパッチに対応する実空間上の領域の投影範囲との間でのブロックマッチングで最も一致する線分を、後方画像上の線分と対応付ける(ステップS105)。
【0067】
地図作成部24は、互いに対応付けられた後方画像上の線分と前方画像上の線分の組に対応する線分を地図に書き込むことで地図を作成する(ステップS106)。そして制御部13は、位置合わせ処理を終了する。
【0068】
図7(a)は、車両が走行した道路の一例を表す図であり、
図7(b)は、
図7(a)に示された道路に対応する、本実施形態による位置合わせ装置を利用して作成された地図の一例を表す図である。
図7(a)には、車両10が走行した道路700が示されている。一方、
図7(b)において、地
図710は、本実施形態による位置合わせ装置を利用して作成された地図であり、点線711は、車両10が道路700を通行した際の車両10の軌跡を表す。
【0069】
図7(a)及び
図7(b)に示されるように、道路700の形状及び道路700上に示された道路表示が、地
図710上でも良好に再現されていることが分かる。
【0070】
以上説明してきたように、位置合わせ装置は、異なるカメラにより、異なるタイミングで生成された二つの画像間で、実空間上の同一の構造物の線に対応する線分同士を対応付ける際、Manhattan-World仮説に基づいて、一方の画像上の線分の周囲のパッチに相当する実空間上の領域を特定することで、そのパッチを他方の画像へ投影する際の精度を向上する。これにより、この位置合わせ装置は、線分同士の対応付けの精度を向上できる。またこの位置合わせ装置は、パッチに相当する実空間上の領域の数を減らせるので、演算量を削減できる。
【0071】
以上、本発明の好適な実施形態について説明してきたが、本発明はこれらの実施形態に限定されるものではない。例えば、制御部13は、一つの後方画像上の線分との対応付けを行う前方画像を複数選択し、その複数の前方画像に対して投影部22及び対応付け部23の処理を行って、線分同士の対応付けを行ってもよい。その際、投影部22は、異なる時刻に生成された複数の前方画像のうち、後方画像上の着目する線分について設定されたパッチの投影範囲が含まれる前方画像のみを、その着目する線分についての対応付けを行う前方画像として選択してもよい。あるいは、投影部22は、異なる時刻に生成された複数の前方画像のうち、後方画像の取得時とその前方画像の取得時との間の車両10の移動量が、二つのカメラの撮影範囲が重なると想定される所定の移動距離範囲内に含まれる前方画像のみを、線分同士の対応付けを行う前方画像として選択してもよい。なお、車両10の移動量は、後方画像の取得時と前方画像の取得時間のオドメトリ情報または車輪速に基づいて算出される。さらに、制御部13は、オドメトリ情報などに基づいて、後方画像の取得時と、対応付けを行う前方画像の取得時との間で、車両10が直進していると判断される場合にのみ、後方画像上の線分と前方画像上の線分の対応付けを行ってもよい。
【0072】
他の変形例によれば、制御部13は、後方画像上で路面を検出する路面検出部をさらに有していてもよい。この場合、投影部22は、後方画像上で抽出された線分のうち、検出された路面の範囲内にある線分については、(2)式と(4)式にしたがって、パッチに対応する実空間上の領域を設定すればよい。一方、投影部22は、後方画像上で抽出された線分のうち、検出された路面の範囲外にある線分については、(2)式と(3)式にしたがって、パッチに対応する実空間上の領域を設定すればよい。
【0073】
なお、路面検出部は、後方画像から路面を検出するために、画像上で路面が写っている領域を検出する様々な手法を利用できる。例えば、路面検出部は、自車両の両側の白線などの車線を表す線を、例えば、テンプレートマッチングなどにより検出して、その両側の車線を表す線で挟まれた領域を路面とする手法を利用できる。あるいは、路面検出部は、撮影範囲が重なる二つのカメラ(この場合には、カメラ2−2の他に、車両10の後方を撮影する別のカメラが必要とされる)によりそれぞれ生成された画像、あるいは、一つのカメラで異なる時間に撮影された二つの画像を利用した3次元計測により、路面を検出する手法(例えば、奥富他、「ステレオ動画像を用いた視覚誘導のための平坦部の連続推定」、情報処理学会論文誌、Vol.43、No.4、pp.1061-1069、2002年を参照)を利用してもよい。この場合には、位置合わせ装置は、パッチに対応する実空間上の領域をさらに限定できるので、線分間の対応付けの精度をより向上できる。
【0074】
さらに他の変形例によれば、対応付け部23は、パッチと前方画像上の対応領域間のブロックマッチングについて、正規化相互相関値を算出する代わりに、対応画素間の輝度値の差の絶対値の総和などを評価値として算出してもよい。この場合には、対応付け部23は、評価値が最小となる前方画像上の線分を、後方画像上の線分と対応付けてもよい。
【0075】
さらにまた、他の変形例によれば、投影部22は、後方画像上の各線分について設定されるパッチに対応する実空間上の領域が、後方画像の生成時における車両10の位置と前方画像の生成時における車両10の位置との間にける、車両10が走行する道路の何れかの位置での道路と平行でかつ路面に垂直な面上にあるとしてもよい。
図8は、この変形例における、パッチに対応する実空間上の領域の例を示す図である。この場合、後方画像上の線分の座標により、その線分に対応する実空間上の構造物の線へ向かう方向とその後方画像生成時におけるカメラ2−2の光軸とのなす角が分かるので、その後方画像生成時における、車両10からその線分に対応する実空間上の構造物の線へ向かう方向が分かる。そこで投影部22は、例えば、記憶部11に記憶された、オドメトリ情報から求められる車両10の軌跡情報を参照して、後方画像生成時における車両10の位置からその線分に対応する実空間上の構造物の線の中点へ向かう方向の直線801から、車両10が走行してきた軌跡802へ下した垂線803の長さが、車両10と線分に対応する実空間上での構造物の線までの距離dの探索範囲(例えば、上記の実施形態と同様、1m〜20mとすることができる)に含まれる、線801上の位置を特定する。そして投影部22は、線分に対応する実空間上の構造物の線804は、その特定された位置から車両10の軌跡802に下した垂線803の足におけるその軌跡802の接線方向と平行でかつ路面に垂直な面805上にあると仮定する。なお、車両10は、道路と平行な方向に走行していると仮定できるので、その特定された位置から車両10の軌跡に下した垂線の足におけるその軌跡の接線方向は、道路と平行であるとみなせる。この場合、その線分について設定されるパッチに対応する実空間上の領域は、後方画像生成時の道路の延伸方向とその特定された位置での道路の延伸方向間の角度だけ、車両10の直進方向から傾き、かつ、路面に垂直な面内にあると仮定することで、そのパッチ内の各画素に対応する実空間上の領域内の各点の座標を求めればよい。
【0076】
さらにまた、他の変形例によれば、位置合わせ装置は、前方画像から抽出された各線分についてのパッチに相当する実空間上の領域をManhattan-World仮説に基づいて設定することで、上記と同様の処理を行って、後方画像上の線分との対応付けを行ってもよい。あるいは、線分同士の対応付けを行う画像を生成する二つのカメラは、車両の前方と後方を向いているものに限られず、互いに異なる方向を向き、かつ、車両の走行に伴って一方のカメラの撮影範囲に含まれていた領域が他方のカメラの撮影範囲に含まれるように取り付けられていればよい。
【0077】
例えば、一方のカメラが車両10の前方を向くように車両10に取り付けられ、他方のカメラが車両10の側方を向くように取り付けられているとする。この場合には、車両10の進行方向に対して直交し、かつ、路面に対して垂直な面も、その二つのカメラの撮影範囲に含まれることになる。そこで、このような場合には、上記の(2)で示された、車両10の直進方向と直交する建物の側壁上の線(例えば、
図5に示される線503)に対応する線分が、各カメラにより得られるそれぞれの画像において検出可能となる。
【0078】
そこで、投影部22は、(2)式と(3)式、または(2)式と(4)式にしたがって、一方のカメラにより得られる画像上の各線分についてのパッチu
pに対応する実空間上の領域内の各点のカメラ座標系上の座標P
pを求めるだけでなく、各線分が、上記の(2)に相当する線である場合のパッチu
pに対応する実空間上の領域内の各点のカメラ座標系上の座標P
pも求める。
【0079】
線分に対応する実空間上の構造物の線が車両10の直進方向と直交する建物の側壁にある場合、その線分のパッチに対応する実空間上の領域に含まれる各点について、カメラ座標系では、車両10の進行方向におけるカメラからの距離d'は等しいので、z=d'となる。したがって、上記の(1)の条件が仮定される場合、パッチu
pに対応する実空間上の領域内の各点についてのカメラ座標系での座標P
pは次式で表される。
【数16】
【0080】
そこで、投影部22は、(2)式と(14)式にしたがって、線分に対応する実空間上の構造物の線が車両10の直進方向と直交する建物の側壁にある場合における、一方のカメラにより得られる画像上の各線分についてのパッチu
pに対応する実空間上の領域内の各点のカメラ座標系上の座標P
pを求めればよい。なお、d'については、任意の所定区間、例えば、[1,20](m)の区間で、1m単位で変化させればよい。
【0081】
以上の実施形態または変形例によって異なる画像間で対応付けられた線分の組は、上述したような地図の作成だけでなく、例えば、車両10の自己位置推定にも利用可能である。この場合、その線分の組に対応する二つの画像が生成されたときのカメラの位置間の距離、すなわち、基線長が長くなるので、その線分の組に対応する実空間上の構造物の線を特定する際の精度が向上する。
以上のように、当業者は、本発明の範囲内で、実施される形態に合わせて様々な変更を行うことができる。