【解決手段】自装置の移動量を導出する移動量導出装置であって、撮影装置から撮影画像を取得する画像取得手段と、前記取得した撮影画像のうち、異なる時点で撮影された複数の撮影画像を用いて、被写体の移動ベクトルを導出する移動ベクトル導出手段と、前記移動ベクトルに基づいて移動量を導出する移動量導出手段と、を備えている。
【発明を実施するための形態】
【0019】
以下、図面を参照しつつ本発明の実施の形態について説明する。
【0020】
<1.第1の実施の形態>
<1−1.システムの構成>
まず、本実施の形態の移動量導出システム10の構成について説明する。
図1は、移動量導出システム10の概略構成を示すブロック図である。移動量導出システム10は、カメラ1と、移動量導出装置2と、表示装置3とを備えている。この移動量導出システム10は、自動車などの車両に搭載されて当該車両の移動量を導出する機能を有している。また、移動量導出システム10は、導出した移動量を用いて、例えば駐車支援としてのガイド線を表示する等の機能を有していてもよい。以下では、移動量導出システム10が搭載される車両を「自車両」という。
【0021】
カメラ1は、自車両の周辺を撮影して撮影画像を得るものである。このカメラ1は、レンズと撮像素子とを備えており、電子的に撮影画像を取得する。カメラ1は、所定の周期(例えば、1/30秒周期)で繰り返し撮影画像を取得する。なお、カメラ1は、例えば、自車両の後部に設けられ、車両後方を撮影するバックカメラとして用いられる。ただし、これに限定されるものではなく、他の方向を撮影するカメラであっても適用可能であるし、複数のカメラを用いる構成とすることもできる。
【0022】
図2は、カメラ1をバックカメラとして用いた場合に、カメラ1が撮影する方向を示す図である。
図2に示すように、カメラ1は、自車両の後端の背面ドア92に設けられ、その光軸15は自車両の前後方向に沿って後方に向けられる。したがって、カメラ1は、自車両の後方を撮影して、自車両の後方の様子を示す撮影画像を取得する。また、このカメラ1のレンズには魚眼レンズが採用されており、カメラ1は、略135度の画角を有している。このため、カメラ1は、自車両の後方に広がる左右方向に略135度程度の領域を撮影することが可能である。
【0023】
移動量導出システム10は、このカメラ1で得られた撮影画像を用いて自車両の移動量を導出する。そして、移動量導出システム10は、導出した過去の移動量も用いて将来の移動経路を推定し、撮影画像上にガイド線として移動経路を重畳表示した画像を表示装置3にて表示する。これにより、ユーザは、自車両がこれから移動すると予想される経路を容易に把握することができる。
【0024】
図3は、移動量導出システム10が利用される場面の一例を示す図である。
図3においては、自車両を駐車場に駐車させようとしている場面を示している。
図3は、駐車場への駐車動作の途中の状態を示しており、この場合のカメラ1で撮影した自車両後方の撮影画像は例えば
図4のようになる。
【0025】
図1に戻り、移動量導出装置2は、カメラ1で取得した撮影画像に基づいて自車両の移動量を導出するものである。この移動量導出装置2は、画像取得部21、画像処理部22、画像出力部23、メモリ24、及び、制御部25を備えている。
【0026】
画像取得部21は、カメラ1からアナログ又はデジタルの撮影画像を所定の周期(例えば、1/30秒周期)で時間的に連続して取得する。そして、取得した撮影画像がアナログの場合には、画像取得部21は、そのアナログの撮影画像をデジタルの撮影画像に変換(A/D変換)する。画像取得部21が処理した撮影画像の1つが、映像信号の1つのフレームとなる。
【0027】
画像処理部22は、画像取得部21が取得した撮影画像に対して所定の処理を実行する。画像処理部22としては、例えば、そのような所定の処理が実行可能なASICやFPGAなどのハードウェア回路を用いることができる。画像処理部22は、俯瞰画像生成部22aと、移動ベクトル導出部22bと、移動量導出部22cとを備えている。
【0028】
俯瞰画像生成部22aは、画像取得部21が取得した撮影画像から俯瞰画像を生成する機能を有している。例えば、俯瞰画像生成部22aは、画像取得部21が取得した撮影画像の視点位置を自車両上方に変換し、再描画することで俯瞰画像を生成するようになっている。俯瞰画像生成部22aによって生成された俯瞰画像は、メモリ24に記憶される。
【0029】
移動ベクトル導出部22bは、俯瞰画像生成部22aにて生成した俯瞰画像を用いて自車両の移動ベクトルを導出する機能を有している。例えば、移動ベクトル導出部22bは、時間的に前後する撮影画像から生成された各俯瞰画像において、同じ被写体を表示している部分を抽出し、各表示位置の関係に基づいて移動ベクトルを導出する。
【0030】
移動量導出部22cは、移動ベクトル導出部22bが導出した移動ベクトルを用いて自車両の移動量を導出する機能を有している。移動ベクトル導出部22bが導出した移動ベクトルには、路面の移動ベクトルと立体物の移動ベクトルとが含まれている。路面の移動ベクトルとは、路面部分が移動した大きさや方向を示すベクトルである。自車両の移動量は、路面の移動ベクトルに対応しているので、移動量導出部22cは、導出された移動ベクトルの中から路面の移動ベクトルを抽出し、その路面の移動ベクトルに基づいて自車両の移動量を導出する。
【0031】
なお、これら俯瞰画像生成部22aによる俯瞰画像の生成処理と、移動ベクトル導出部22bによる移動ベクトルの導出処理と、移動量導出部22cによる移動量の導出処理の詳細については後述する。
【0032】
画像出力部23は、導出した移動量を用いて実行した各種処理の結果に関する情報を撮影画像に含ませた表示画像を生成し、NTSCなどの所定形式の映像信号に変換して表示装置3に出力する。例えば、移動量を用いて将来の移動経路を推定した場合には、推定した移動経路を示すガイド線を撮影画像に重畳した表示画像を生成して、表示装置3に出力する。これにより、撮影画像を含む表示画像が表示装置3において表示される。
【0033】
メモリ24は、俯瞰画像生成部22aにて生成された俯瞰画像を記憶する。本実施の形態では、移動ベクトル導出部22bが、撮影タイミングの異なる複数の俯瞰画像を用いて移動ベクトルを導出するようになっている。このため、メモリ24には、最新の俯瞰画像の他に、過去の俯瞰画像も記憶されている。つまり、メモリ24には、移動ベクトルの導出に必要な俯瞰画像が記憶されている。なお、メモリ24としては、揮発性の半導体メモリや不揮発性の半導体メモリを用いることができる。ただし、他の記憶媒体を用いてもよく、磁気ディスクを備えたハードディスクドライブで構成してもよい。
【0034】
制御部25は、例えば、CPU、RAM及びROMなどを備えたマイクロコンピュータであり、画像処理部22を含む移動量導出装置2の各部を制御する。制御部25の各種の機能は、ソフトウェアで実現される。すなわち、制御部25の機能は、ROMなどに記憶されたプログラムに従ったCPUの演算処理(プログラムの実行)によって実現される。
【0035】
表示装置3は、自車両の車室内におけるユーザ(主にドライバ)が視認可能な位置に配置され、各種の情報をユーザに報知する。表示装置3は、目的地までのルートを案内するナビゲーション機能や、ユーザの操作を受け付けるタッチパネル機能を備えていてもよい。
【0036】
<1−2.システムの処理>
次に、移動量導出システム10の処理について説明する。
図5は、移動量導出システム10の処理を示すフローチャートである。
【0037】
移動量導出システム10は、開始指示の入力があった場合や、自車両のギアがR(リバース)に入った場合などの所定の条件が成立すると、画像取得部21がカメラ1による撮影画像を取得して、画像処理部22に出力する。そして、画像処理部22が俯瞰画像生成処理を実行する(ステップS101)。
【0038】
具体的には、まず、俯瞰画像生成部22aが、画像取得部21から撮影画像のデータを取得する。撮影画像はカメラ1の光軸が視点方向となっているため、俯瞰画像生成部22aは、視点方向を変換して、撮影画像を上方から見た俯瞰画像を生成する。なお、カメラの撮影画像から俯瞰画像を生成する方法は、既存の方法を用いることができる。
【0039】
俯瞰画像生成部22aは、画像取得部21が取得した各撮影画像に対応する俯瞰画像を生成する。つまり、俯瞰画像生成部22aは、フレーム毎に撮影画像から俯瞰画像を生成する。そして、俯瞰画像生成部22aは、生成した俯瞰画像をメモリ24に記憶させる。
【0040】
ここで、図を用いて説明する。
図6及び
図7に示す画像は、時間的に異なるタイミングで撮影された画像であり、
図6(a)及び
図7(a)は、カメラ1による撮影画像を示し、
図6(b)及び
図7(b)は、これらの撮影画像から生成された俯瞰画像を示している。俯瞰画像生成部22aは、
図6(a)に示すような撮影画像を画像取得部21から取得すると、この撮影画像の視点を変換して
図6(b)に示すような俯瞰画像を生成する。また、俯瞰画像生成部22aは、
図7(a)に示すような撮影画像を取得すると、この撮影画像の視点を変換して
図7(b)に示すような俯瞰画像を生成する。このように、俯瞰画像生成部22aは、異なるフレームの撮影画像毎に俯瞰画像を生成する。
【0041】
図5に戻り、次に、画像処理部22は、移動ベクトル導出処理を実行する(ステップS102)。これは、移動ベクトル導出部22bが、俯瞰画像生成部22aにて生成された俯瞰画像を用いて移動ベクトルを導出する処理である。
【0042】
具体的には、移動ベクトル導出部22bは、俯瞰画像生成部22aが生成した現フレームの俯瞰画像を取得すると共に、メモリ24に記憶されている前フレームの俯瞰画像を取得する。そして、移動ベクトル導出部22bは、これら前後フレームの各俯瞰画像を比較して、各俯瞰画像から同一の被写体を表示している画素を抽出する。そして、移動ベクトル導出部22bは、前フレームで抽出した画素の位置(座標)と、後フレームで抽出した画素の位置(座標)とを結ぶことで移動ベクトルを導出する。つまり、同一の被写体が俯瞰画像上で移動した前後の点を結ぶベクトルが移動ベクトルとなる。
【0043】
同一の被写体を表示している画素を抽出する方法としては、例えば、テンプレートマッチング手法を用いることができる。テンプレートマッチング手法とは、画像の中から、予め指定したテンプレート画像と似ている位置を探す手法である。本実施の形態で用いる場合には、例えば、前フレームの俯瞰画像の一部分の画像をテンプレートとして、後フレームの俯瞰画像と比較するといった処理を画像全体に渡って実行すればよい。このようなテンプレートマッチング手法としては、例えば、SAD(Sum of Absolute Difference)やSSD(Sum of Squared Difference)等の手法を用いることができる。
【0044】
また、テンプレートマッチング手法以外にも特徴点方式を用いることもできる。特徴点方式とは、いわゆる、オプティカルフローを用いた方式である。つまり、互いに異なる時点に取得された複数の撮影画像から生成された各俯瞰画像のそれぞれから特徴点を抽出し、複数の俯瞰画像間での特徴点の動きを示すオプティカルフローを導出する。特徴点とは、際立って検出できる点であり、例えば、物体のコーナー(エッジの交点)などの点である。そして、特徴点方式では、直近の俯瞰画像から抽出した特徴点と、過去の俯瞰画像から抽出した特徴点とを対応づけ、この対応付けられた各特徴点の位置に基づいて移動ベクトルを導出する。
【0045】
ここで、移動ベクトルを導出する方法について図を用いて説明する。
図8は、特徴点方式を用いて移動ベクトルを導出する手法を説明する図である。
図8(a)及び(b)は、各々前フレームの俯瞰画像及び後フレームの俯瞰画像を示している。これらは、
図6及び
図7で示す撮影画像から生成した俯瞰画像と同じである。
【0046】
図8(a)及び(b)に示すように、前後フレームの各俯瞰画像中には、例としての特徴点(黒丸)が示されている。また、
図8(b)には、前フレームの位置から後フレームの位置までに特徴点が移動した経路も示されている。移動ベクトル導出部22bは、この特徴点が移動した方向及び向きを移動ベクトルとして導出する。
【0047】
図5に戻り、次に、画像処理部22は、移動量導出処理を実行する(ステップS103)。これは、移動量導出部22cが、移動ベクトル導出部22bにて導出された移動ベクトルを用いて自車両の実際の移動量を導出する処理である。
【0048】
カメラ1で車両周辺を撮影した画像には、路面を表示する部分と、自動車等の立体物を表示する部分との双方が含まれていることが多い。路面は、平面であり移動物ではないため、路面の移動ベクトルは、全て略同じ方向及び略同じ大きさの移動ベクトルになる。一方、立体物の移動ベクトルは、その立体物の移動方向や高さなどに応じて、方向及び大きさの異なる移動ベクトルとなる。
【0049】
このため、立体物の移動ベクトルは、自車両の移動量を正確に反映したものではなく、路面の移動ベクトルが自車両の移動量を正確に反映したものとなる。したがって、移動ベクトル導出部22bが導出した移動ベクトルには、種々の方向及び大きさの移動ベクトルが含まれていることになるが、自車両の移動量を正確に導出するためには、その中から路面の移動ベクトルを抽出する必要がある。
【0050】
一般的には、車両周辺を撮影した画像には、路面を表示する部分が最も多く含まれているため、通常は、路面に関する移動ベクトルが最も多い。そこで、本実施の形態では、全ての移動ベクトルについて大きさに関するヒストグラムを生成し、数が最も多い部分の移動ベクトルを、路面の移動ベクトルとして抽出する。そして、移動量導出部22cは、抽出した路面の移動ベクトルの大きさを自車両の移動量として導出する。
【0051】
ここで、具体的に図を用いて説明する。
図9は、全移動ベクトルについての大きさに関するヒストグラムを示す図である。
図9に示すヒストグラムは、移動ベクトルの大きさをL1〜L9の長さ範囲に分け、全移動ベクトルを各々の大きさに応じて分類分けし、その数を積算したものである。
図9に示すように、移動ベクトルの数が最も多い大きさはL5に含まれる移動ベクトルである。このため、移動量導出部22cは、路面の移動ベクトルが、このL5に含まれていると判定する。すなわち、移動量導出部22cは、路面の移動ベクトルを抽出することができる。
【0052】
そして、移動量導出部22cは、抽出した路面の移動ベクトルの大きさを自車両の移動量として導出する。つまり、
図9の場合には、L5が自車両の移動量として導出されることになる。
【0053】
図5に戻り、次に、移動量導出システム10は、導出した移動量を用いて所定の表示処理を行う(ステップS104)。移動量を用いた表示処理の例としては、例えば、将来の移動経路をガイド線で表示するものがある。この場合、制御部25が、移動量導出部22cにて導出された移動量に基づいて、将来の自車両の移動経路を推定する。この推定は、数フレーム分の俯瞰画像から導出された移動量から将来の移動経路を予測することにより行われる。
【0054】
次いで、画像出力部23が、推定された移動経路を表示するガイド線を撮影画像に重畳した表示画像を生成し、表示装置3に出力する。そして、表示装置3が、入力した表示画像を表示する。これにより、所定の表示処理が実行される。
【0055】
以上のように、本実施の形態では、カメラ1で撮影した画像を俯瞰画像に変換することで、路面の移動ベクトルを導出することが可能になるため、自車両の移動量を導出することができる。また、専用のセンサを設けることなく、他の用途で設置されているカメラを用いて移動量を導出することが可能となるため、小型化及び低価格化を実現することができる。
【0056】
<2.第2の実施の形態>
次に、第2の実施の形態について説明する。第1の実施の形態では、異なる時点で撮影された画像から生成した複数の俯瞰画像を用いて路面の移動ベクトルを導出する構成について説明したが、これに限定されるものではない。例えば、カメラの撮影画像から画像上での移動ベクトルを導出し、これを路面に投影することで路面の移動ベクトルを導出する構成としてもよい。そこで、第2の実施の形態では、この構成について説明する。
【0057】
第1の実施の形態では、路面の移動ベクトルを導出するために、フレーム毎に撮影画像から俯瞰画像を生成する必要があった。これに対して、第2の実施の形態では、撮影画像から俯瞰画像を生成することなく路面の移動ベクトルの導出が可能となるため、処理負荷を低減することが可能になる。
【0058】
また、撮影画像から俯瞰画像を生成すると、画質が劣化してしまうため、移動ベクトルの導出精度も低下してしまうことがあったものの、第2の実施の形態では、俯瞰画像への変換処理がないため、移動ベクトルを導出する際の精度低下も回避することが可能になる。以下、具体的に説明する。
【0059】
<2−1.システムの構成>
まず、本実施の形態の移動量導出システム11の構成について説明する。
図10は、移動量導出システム11の概略構成を示すブロック図である。移動量導出システム11は、カメラ1と、移動量導出装置2と、表示装置3とを備えている。この移動量導出システム11は、自動車などの車両に搭載されて当該車両の移動量を導出する機能を有している。また、移動量導出システム11は、導出した移動量を用いて、例えば駐車支援としてのガイド線を表示する等の機能を有していてもよい。以下では、移動量導出システム11が搭載される車両を「自車両」という。
【0060】
カメラ1は、自車両の周辺を撮影して撮影画像を得るものであり、第1の実施の形態のカメラ1と同様の構成を有している。また、移動量導出システム11は、このカメラ1で得られた撮影画像を用いて自車両の移動量を導出し、導出した移動量を利用する例なども第1の実施の形態と同様である。
【0061】
移動量導出装置2は、カメラ1で取得した撮影画像に基づいて自車両の移動量を導出するものである。この移動量導出装置2は、画像取得部21、画像出力部23、制御部25、画像処理部26、及び、メモリ27を備えている。
【0062】
画像取得部21、画像出力部23、及び、制御部25は、第1の実施の形態の各構成と同様の構成である。このため、本実施の形態では、その説明を省略し、画像処理部26及びメモリ27の構成について説明する。
【0063】
画像処理部26は、画像取得部21が取得した撮影画像に対して所定の処理を実行する。画像処理部26としては、例えば、そのような所定の処理が実行可能なASICやFPGAなどのハードウェア回路を用いることができる。画像処理部26は、移動ベクトル導出部26aと、路面投影部26bと、移動量導出部26cとを備えている。
【0064】
移動ベクトル導出部26aは、画像取得部21が取得した撮影画像を用いて移動ベクトルを導出する機能を有している。例えば、移動ベクトル導出部26aは、異なる時点で撮影した複数の撮影画像において、同じ被写体を表示している部分を抽出し、各表示位置に基づいて移動ベクトルを導出する。
【0065】
路面投影部26bは、移動ベクトル導出部26aにて導出された移動ベクトルを路面上(ワールド座標上)に投影し、路面上の移動ベクトルを導出する機能を有している。移動ベクトル導出部26aにて導出した移動ベクトルは、撮影画像上の移動量を示すものであるため、路面投影部26bがその移動ベクトルを路面上に投影して路面上の移動ベクトルを導出することで実際の移動量に変換する。なお、路面上の移動ベクトルとは、画像上の移動ベクトルを路面上に投影したことによって生じるベクトルを示すものであり、路面の移動ベクトル及び立体物の移動ベクトルの双方を含む概念である。
【0066】
移動量導出部26cは、路面投影部26bが導出した路面上の移動ベクトルを用いて自車両の移動量を導出する機能を有している。上述のように、路面投影部26bが導出した路面上の移動ベクトルには、路面の移動ベクトルと立体物の移動ベクトルとが含まれている。自車両の移動量は、路面の移動ベクトルに対応しているので、移動量導出部26cは、路面上の移動ベクトルの中から路面の移動ベクトルを抽出し、その路面の移動ベクトルに基づいて自車両の移動量を導出する。
【0067】
なお、これら移動ベクトル導出部26aによる移動ベクトルの導出処理と、路面投影部26bによる移動ベクトルの路面上への投影処理と、移動量導出部26cによる移動量の導出処理の詳細については後述する。
【0068】
メモリ27は、カメラ1で撮影された撮影画像を記憶する。本実施の形態では、移動ベクトル導出部26aが、異なる時点で撮影した複数の撮影画像を用いて移動ベクトルを導出するようになっている。このため、メモリ27には、最新の撮影画像の他に、過去の撮影画像も記憶されている。つまり、メモリ27には、移動ベクトルの導出に必要な撮影画像が記憶されている。なお、メモリ27としては、揮発性の半導体メモリや不揮発性の半導体メモリを用いることができる。ただし、他の記憶媒体を用いてもよく、磁気ディスクを備えたハードディスクドライブで構成してもよい。
【0069】
表示装置3は、自車両の車室内におけるユーザ(主にドライバ)が視認可能な位置に配置され、各種の情報をユーザに報知するものであり、第1の実施の形態の表示装置3と同様の構成を有している。
【0070】
<2−2.システムの処理>
次に、移動量導出システム11の処理について説明する。
図11は、移動量導出システム11の処理を示すフローチャートである。
【0071】
移動量導出システム11は、開始指示の入力があった場合や、自車両のギアがR(リバース)に入った場合などの所定の条件が成立すると、画像取得部21がカメラ1による撮影画像を取得して、画像処理部26に出力する。そして、画像処理部26が移動ベクトル導出処理を実行する(ステップS201)。これは、移動ベクトル導出部26aが、撮影画像を用いて移動ベクトルを導出する処理である。
【0072】
具体的には、移動ベクトル導出部26aは、画像取得部21が取得した現フレームの撮影画像を取得すると共に、メモリ24に記憶されている前フレームの撮影画像を取得する。そして、移動ベクトル導出部26aは、これら前後フレームの各撮影画像を比較して、各撮影画像から同一の被写体を表示している画素を抽出する。そして、移動ベクトル導出部26aは、前フレームで抽出した画素の位置(座標)と、後フレームで抽出した画素の位置(座標)とを結ぶことで移動ベクトルを導出する。つまり、同一の被写体が撮影画像上で移動した前後の点を結ぶベクトルが画像上の移動ベクトルとなる。
【0073】
同一の被写体を表示している画素を抽出する方法としては、例えば、テンプレートマッチング手法を用いることができる。これは第1の実施の形態と同様である。本実施の形態で用いる場合には、例えば、前フレームの撮影画像の一部分の画像をテンプレートとして、後フレームの撮影画像と比較するといった処理を画像全体に渡って実行すればよい。また、テンプレートマッチング手法以外にも特徴点方式を用いることができる。これも第1の実施の形態と同様である。
【0074】
ここで、本実施の形態において、移動ベクトルを導出する方法について図を用いて説明する。
図12は、特徴点方式を用いて移動ベクトルを導出する手法を説明する図である。
図12(a)及び(b)は、各々前フレームの撮影画像及び後フレームの撮影画像を示している。
【0075】
図12に示すように、異なる時点で撮影した画像中の特徴点同士を対応付けることにより、特徴点が移動する前の位置と、移動した後の位置とを導出することができる。
図13(b)では、この特徴点が移動した経路を表示している。つまり、移動ベクトル導出部26aは、この特徴点の移動経路の方向及び大きさを示すベクトルを画像上の移動ベクトルとして導出する。
【0076】
図11に戻り、次に、画像処理部26は、路面投影処理を実行する(ステップS202)。これは、路面投影部26bが、移動ベクトル導出部26aにて導出した移動ベクトルを路面上(ワールド座標上)に投影し、路面上の移動ベクトルを導出する処理である。
【0077】
上述のように、移動ベクトル導出部26aが導出した移動ベクトルは、画像上の移動ベクトルであり、そのままの移動ベクトルを自車両の移動量とすることはできない。このため、画像上の移動ベクトルを実際の路面上の移動ベクトルに変換する必要がある。すなわち、路面投影部26bは、画像上の各移動ベクトルに対応する実際の移動量を導出するために、画像上の移動ベクトルを路面上に投影することで路面上の移動ベクトルを導出している。
【0078】
ここで、移動ベクトルを路面上に投影する処理について図を用いて具体的に説明する。
図13は、撮影画像上の移動ベクトルを路面上の移動ベクトルに変換する処理の概念を説明する図である。
【0079】
図13に示すように、カメラ1の撮影画像I上の移動ベクトルB1は、路面Rに投影されることで路面R上の移動ベクトルB2に変換される。具体的には、カメラ1の視点から撮影画像I上の移動ベクトルB1の始点を結ぶ線を延長し、路面Rと交差する点が路面上の移動ベクトルB2の始点となる。同様に、カメラ1の視点から撮影画像上の移動ベクトルB1の終点を結ぶ線を延長し、路面Rと交差する点が路面上の移動ベクトルB2の終点となる。なお、
図13において、撮影画像Iは、画像上の移動ベクトルB1を路面上の移動ベクトルB2に変換する際に用いられる概念図であり、実空間上に存在する画像面を示すものではない。
【0080】
路面上の移動ベクトルB2の始点及び終点は、路面RをXY平面とし、カメラ1の位置を基点とした場合における、XY座標から導出することができる。このXY座標を導出する方法について具体的に図を用いて説明する。
図14は、路面上の移動ベクトルの座標を導出する方法を説明する図である。
【0081】
図14は、撮影画像I上の移動ベクトルB1を路面上Rに投影している様子をYZ平面で見た図である。つまり、X軸方向から見た図である。また、
図14中のfmmは、カメラ1の焦点距離を示し、Zwは、カメラ1の視点位置と路面RとのZ軸方向の距離(高さ)を示す。また、Yc及びZcは、各々カメラ1の視点位置と移動ベクトルB1の位置との距離を示し、各々Y軸方向の距離及びZ軸方向の距離を示している。これらの各値は、カメラ1の仕様(レンズモデルや焦点距離等)や、カメラ1の地面に対する取り付け位置・取り付け角度に基づいて定まる値である。
【0082】
そして、投影された路面上の移動ベクトルB2のY座標(Yw)は、
Yw=Zw/Zc×Yc
により導出することができる。また、同様にしてX座標(Xw)は、
Xw=Zw/Zc×Xc
により導出することができる。なお、Xcは、カメラ1の視点位置と移動ベクトルB1との距離のうちの、X軸方向の距離を示す。
【0083】
これにより、路面上に投影された移動ベクトルB2のXY座標が定まるので、移動ベクトルB2の始点及び終点の座標を導出することで、路面上の移動ベクトルB2を導出することができる。
【0084】
図11に戻り、次に、画像処理部26は、移動量導出処理を実行する(ステップS203)。これは、移動量導出部26cが、路面投影部26bにて導出された路面上の移動ベクトルを用いて自車両の実際の移動量を導出する処理である。
【0085】
カメラ1で車両周辺を撮影した画像には、路面を表示する部分と、自動車等の立体物を表示する部分とが含まれていることが多い。路面は、平面であり移動物ではないため、路面の移動ベクトルは、全て略同じ方向及び略同じ大きさの移動ベクトルになる。一方、立体物の移動ベクトルは、その立体物の移動方向や高さなどに応じて、方向及び大きさの異なる移動ベクトルとなる。このため、第1の実施の形態と同様に、自車両の移動量を正確に導出するためには、その中から路面の移動ベクトルを抽出する必要がある。
【0086】
また、導出された移動ベクトルの中では、路面に関する移動ベクトルが最も多く含まれているため、本実施の形態においても、第1の実施の形態と同様に、全ての移動ベクトルについて大きさに関するヒストグラムを生成し、数が最も多い部分の移動ベクトルを路面の移動ベクトルとして抽出する。そして、移動量導出部26cは、抽出した路面の移動ベクトルの大きさを自車両の移動量として導出する。ヒストグラムを用いて路面の移動ベクトルを導出する方法は、第1の実施の形態にて、
図9を用いて説明した方法と同様の方法を用いることができる。
【0087】
図11に戻り、次に、移動量導出システム11は、導出した移動量を用いて所定の表示処理を行う(ステップS204)。移動量を用いた表示処理の例としては、例えば、将来の移動経路を推定して、ガイド線で表示するものがある。この表示処理についても、第1の実施の形態と同様にして行うことができる。
【0088】
以上のように、本実施の形態では、カメラ1で撮影した画像上の移動ベクトルを導出し、それを路面上の移動ベクトルに変換することで、俯瞰画像を生成せずに撮影画像のみで自車両の移動量を導出することが可能になる。このため、本実施の形態では、小型化及び低価格化を実現することができるだけでなく、処理負荷を小さくすることができるとともに、高精度に移動ベクトルを導出することも可能になる。
【0089】
<3.変形例>
以上、本発明の実施の形態について説明してきたが、この発明は上記各実施の形態に限定されるものではなく様々な変形が可能である。以下では、このような変形例について説明する。上記各実施の形態及び以下で説明する形態を含む全ての形態は、適宜に組み合わせ可能である。
【0090】
上記各実施の形態では、路面の移動ベクトルを導出する際に、大きさに関するヒストグラムを用いていたが、これに限定されるものではない。例えば、方向に関するヒストグラムを用いて路面の移動ベクトルを導出してもよい。
【0091】
すなわち、車両周辺を撮影した画像には、路面の移動ベクトルが最も多く含まれているが、路面の移動ベクトルは全てが略同じ方向を向いている。したがって、方向に関するヒストグラムを用いることでも、路面の移動ベクトルを抽出することが可能である。
【0092】
具体的に
図15を用いて説明する。
図15は、全移動ベクトルについての方向に関するヒストグラムである。
図15は、移動ベクトルの方向をD1〜D9の角度範囲に分け、全移動ベクトルを各々の方向に応じて分類分けし、その数を積算したものである。
図15に示すように、移動ベクトルの数が最も多い方向は、D5に含まれる移動ベクトルである。したがって、このD5に含まれている移動ベクトルを路面の移動ベクトルとして抽出することができる。
【0093】
また、方向に関するヒストグラムと、大きさに関するヒストグラムとの双方を用いて路面の移動ベクトルを導出してもよい。具体的に
図16を用いて説明する。
図16(a)は、全移動ベクトルについての方向に関するヒストグラムを示す図であり、
図15と同様の図である。すなわち、まず、
図15の場合と同様にして、路面の移動ベクトルとしてD5に含まれている移動ベクトルを抽出する。これにより、方向が同じ移動ベクトルが抽出される。
【0094】
ただし、方向が同じ移動ベクトルの中には、路面の移動ベクトルと同じ方向の立体物の移動ベクトルが含まれている場合もあり得る。このため、D5に含まれる移動ベクトルに対して、大きさに関するヒストグラムを用いて路面の移動ベクトルを抽出する。
図16(b)は、移動ベクトルの大きさに関するヒストグラムであり、大きさをL1〜L9の長さ範囲に分け、D5に含まれる移動ベクトルを各々大きさに応じて分類分けし、その数を積算したものである。
図16(b)に示すように、移動ベクトルの数が最も多い大きさは、L5に含まれる移動ベクトルである。したがって、このL5に含まれている移動ベクトルを路面の移動ベクトルとして抽出することができる。
【0095】
このように、方向のヒストグラムと大きさのヒストグラムとの両方を用いることで、方向及び大きさの双方共に最多の移動ベクトルを抽出することができる。つまり、路面の移動ベクトルを高精度に抽出することが可能になる。
【0096】
また、上記各実施の形態では、プログラムに従ったCPUの演算処理によってソフトウェア的に各種の機能が実現されると説明したが、これら機能のうちの一部は電気的なハードウェア回路により実現されてもよい。また逆に、ハードウェア回路によって実現されるとした機能のうちの一部は、ソフトウェア的に実現されてもよい。