(57)【特許請求の範囲】
【請求項１】
カメラから画像を取得し、
前記画像から、道路上に存在する構造物が道路と接する位置の特徴点を抽出し、
抽出された前記特徴点から前記カメラまでの実空間での距離を、前記画像内での前記特徴点の位置に基づいて求められる前記特徴点の前記カメラに対する実空間上での角度と、前記カメラの俯角及び路面からの距離を含む設置情報とを用いて算出し、
前記画像とは異なる他の画像から前記道路上に存在する構造物が道路と接する位置の特徴点を抽出し、
前記画像の特徴点と、前記他の画像の特徴点とが対応するかを判定し、
対応すると判定された前記他の画像の特徴点から前記カメラまでの実空間上での距離を、前記他の画像の特徴点の前記カメラに対する実空間上での角度及び前記設置情報を用いて算出し、
前記画像の特徴点の前記距離及び角度と、前記他の画像の特徴点の前記距離及び角度との差分から前記カメラを搭載する車両の移動量を算出し、
前記画像の特徴点と、該特徴点に対応する前記他の画像の特徴点に基づき、前記車両が直進しているか、旋回しているかを判定する処理をコンピュータに実行させ、
前記移動量を算出する場合、直進と判定されたときは直進時の移動量算出処理を実行させ、旋回と判定されたときは旋回時の移動量算出処理を実行させるための距離算出プログラム。
【請求項２】
前記直進又は旋回しているかの判定は、
前記画像の特徴点と、該特徴点に対応する前記他の画像の特徴点との横向きの移動ベクトルに基づいて判定される請求項１記載の距離算出プログラム。
【請求項３】
前記直進又は旋回しているかの判定は、
前記画像の特徴点と、該特徴点に対応する前記他の画像の特徴点との移動ベクトルの変化量に基づいて判定される請求項１記載の距離算出プログラム。
【請求項４】
第１カメラと第２カメラが前記車両に搭載される場合、
前記直進又は旋回しているかの判定は、
前記第１カメラで撮像した複数の画像に基づいて求めた前記第１カメラの移動量と、前記第２カメラで撮像した複数の画像に基づいて求めた前記第２カメラの移動量とに基づいて判定される請求項１記載の距離算出プログラム。
【請求項５】
カメラから画像を取得し、
前記画像から、道路上に存在する構造物が道路と接する位置の特徴点を抽出し、
抽出された前記特徴点から前記カメラまでの実空間上での距離を、前記画像内での前記特徴点の位置に基づいて求められる前記特徴点の前記カメラに対する実空間上での角度と、前記カメラの俯角及び路面からの距離を含む設置情報とを用いて算出し、
前記画像とは異なる他の画像から前記道路上に存在する構造物が道路と接する位置の特徴点を抽出し、
前記画像の特徴点と、前記他の画像の特徴点とが対応するかを判定し、
対応すると判定された前記他の画像の特徴点から前記カメラまでの実空間上での距離を、前記他の画像の特徴点の前記カメラに対する実空間上での角度及び前記設置情報を用いて算出し、
前記画像の特徴点の前記距離及び角度と、前記他の画像の特徴点の前記距離及び角度との差分から前記カメラを搭載する車両の移動量を算出し、
前記画像の特徴点と、該特徴点に対応する前記他の画像の特徴点に基づき、前記車両が直進しているか、旋回しているかを判定し、
前記移動量を算出する場合、直進と判定されたときは直進時の移動量算出処理を実行し、旋回と判定されたときは旋回時の移動量算出処理を実行する距離算出方法。
【請求項６】
カメラにより撮像された画像から、道路上に存在する構造物が道路と接する位置の特徴点を抽出する第１抽出部と、
抽出された前記特徴点から前記カメラまでの実空間上での距離を、前記画像内での前記特徴点の位置に基づいて求められる前記特徴点の前記カメラに対する実空間上での角度と、前記カメラの俯角及び路面からの距離を含む設置情報とを用いて算出する相対位置算出部と、
前記画像とは異なる他の画像から前記道路上に存在する構造物が道路と接する位置の特徴点を抽出する第２抽出部と、
前記画像の特徴点と、前記他の画像の特徴点とが対応するかを判定する対応判定部と、
対応すると判定された前記他の画像の特徴点から前記カメラまでの実空間上での距離を、前記他の画像の特徴点の前記カメラに対する実空間上での角度及び前記設置情報を用いて算出する距離算出部と、
前記画像の特徴点の前記距離及び角度と、前記他の画像の特徴点の前記距離及び角度との差分から前記カメラを搭載する車両の移動量を算出する移動量算出部と、
前記画像の特徴点と、該特徴点に対応する前記他の画像の特徴点に基づき、前記車両が直進しているか、旋回しているかを判定する旋回判定部と、
前記移動量を算出する場合、直進と判定されたときは直進時の移動量算出処理を実行し、旋回と判定されたときは旋回時の移動量算出処理を実行する処理実行部と、
を備える距離算出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カメラと画像内の対象物との距離を算出する距離算出プログラム、距離算出方法及び距離算出装置に関する。
【背景技術】
【０００２】
近年、車には様々なセンサが組み込まれている。例えば、車輪が毎秒何回回っているかを検知する車輪速センサ、ハンドルがどの程度切られているかを検知する舵角センサ、車両の回転速度を検知するヨーレートセンサなどがある。これらの情報はＣＡＮ（Controller Area Network）上に流れている。このＣＡＮ上の情報を取得して、自車の移動量を算出する技術がある。
【０００３】
しかし、ＣＡＮ上の情報を用いる場合、ＣＡＮのフォーマットは各社で異なる、車種によって情報が異なる、車種によってはセンサが設置されていない、などという課題がある。
【０００４】
そこで、ＣＡＮの情報に頼らず、車載カメラで撮像した画像から車両の移動量を算出する技術がある。例えば、車載カメラで撮像した画像内の既知の道路標識を検出し、検出した道路標識のサイズに基づいて車両速度を算出する技術がある。また、マーク形成手段から形成したマークの位置変化から車両速度を算出する技術がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−２０５６４２号公報
【特許文献２】特開平１０−１２３１６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、従来技術では、既知である道路標識が画像から得られない場合に、車両速度を算出することができない。よって、従来技術では、適用可能な場面が限られてしまい、汎用性に欠ける。また、他の従来技術では、路面にマークを形成するためのマーク形成手段を車両に備える必要があり、汎用性に欠ける。
【０００７】
そこで、汎用性を上げるため、画像内の対象物とカメラとの実空間での距離を算出することを考える。対象物とカメラとの実空間での距離を算出すれば、この距離の時間変化量に基づき車両の移動量を算出することができるからである。
【０００８】
しかしながら、画像内の対象物とカメラとの実空間での距離を算出する場合、撮像した画像から何を対象物とすればよいか、その対象物からの距離をどのように算出すればよいかなどの様々な問題点があった。
【０００９】
そこで、開示の技術は、画像内から距離算出に適切な対象物を特定し、この対象物からカメラまでの距離を適切に算出することができる距離算出プログラム、距離算出方法及び距離算出装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
開示の一態様における距離算出プログラムは、カメラから画像を取得し、前記画像から、道路上に存在する構造物が道路と接する位置の特徴点を抽出し、抽出された前記特徴点から前記カメラまでの実空間での距離を、前記画像内での前記特徴点の位置に基づいて求められる前記特徴点の前記カメラに対する実空間上での角度と、前記カメラの俯角及び路面からの距離を含む設置情報とを用いて算出し、
前記画像とは異なる他の画像から前記道路上に存在する構造物が道路と接する位置の特徴点を抽出し、
前記画像の特徴点と、前記他の画像の特徴点とが対応するかを判定し、
対応すると判定された前記他の画像の特徴点から前記カメラまでの実空間上での距離を、前記他の画像の特徴点の前記カメラに対する実空間上での角度及び前記設置情報を用いて算出し、
前記画像の特徴点の前記距離及び角度と、前記他の画像の特徴点の前記距離及び角度との差分から前記カメラを搭載する車両の移動量を算出し、
前記画像の特徴点と、該特徴点に対応する前記他の画像の特徴点に基づき、前記車両が直進しているか、旋回しているかを判定する処理をコンピュータに実行させ、
前記移動量を算出する場合、直進と判定されたときは直進時の移動量算出処理を実行させ、旋回と判定されたときは旋回時の移動量算出処理を実行させる。
【発明の効果】
【００１１】
開示の技術は、画像内から距離算出に適切な対象物を特定し、この対象物からカメラまでの距離を適切に算出することができる。
【図面の簡単な説明】
【００１２】
【図１】実施例１における距離算出装置の構成の一例を示すブロック図。
【図２】抽出領域の一例を示す図。
【図３】特徴点の例を示す図。
【図４】画像内の物体の位置の一例を示す図。
【図５】レンズの歪み特性の一例を示す図。
【図６】距離算出を説明するための図。
【図７】実施例１における距離算出処理の一例を示すフローチャート。
【図８】実施例２における距離算出装置の構成の一例を示すブロック図。
【図９】直進時の車両の軌跡を説明するための図。
【図１０】直進時の移動量算出処理を説明するための図。
【図１１】実施例２における移動量算出処理の一例を示すフローチャート。
【図１２】実施例３における距離算出装置の構成の一例を示すブロック図。
【図１３】直進時の背景のフローについて説明するための図。
【図１４】右旋回時の背景のフローについて説明するための図。
【図１５】横向きベクトルの頻度分布の例を示す図。
【図１６】旋回時の車両の軌跡を説明するための図。
【図１７】旋回時の移動量の算出を説明するための図。
【図１８】実施例３における移動量算出処理の一例を示すフローチャート。
【図１９】実施例４における距離算出装置の構成の一例を示すブロック図。
【図２０】実施例４における移動量算出処理の一例を示すフローチャート。
【図２１】実施例５における距離算出装置の構成の一例を示すブロック図。
【図２２】各カメラの移動量の例を示す図。
【図２３】各実施例における情報処理装置のハードウェア構成の一例を示すブロック図。
【発明を実施するための形態】
【００１３】
以下、添付図面を参照しながら各実施例について詳細に説明する。
【００１４】
［実施例１］
＜構成＞
図１は、実施例１における距離算出装置１０の構成の一例を示すブロック図である。図１に示す例では、距離算出装置１０は、カメラ部１０１、抽出部１０２、歪み特性保持部１０３、設置情報保持部１０４、相対位置算出部１０５、相対位置保持部１０６を備える。
【００１５】
カメラ部１０１は、例えばＮＴＳＣ（National Television System Committee）出力を備えたＣＣＤカメラであり、路面を含む画像を所定間隔（例えば、１秒間に３０回）で撮像する。撮像された画像は、抽出部１０２に出力される。カメラ部１０１は、車両に設置される。
【００１６】
抽出部１０２は、カメラ部１０１から画像を取得し、画像内の路面上にある特徴点を規定する抽出条件を満たす特徴点を抽出する。路面上の特徴点は、例えば、路面上にある対象物内の特徴点である。路面上の特徴点を抽出する理由は、図６を用いて後述する。
【００１７】
この対象物の例として、例えば、路面上にある道路標示（横断歩道、停止線、中央線、車道外側線、「止まれ」などの指示文字など）、マンホール、排水口のふた、駐車枠などがある。特徴点としては、道路標示の角やマンホール内の文字や模様の角などを特徴点とすればよい。
【００１８】
他にも、抽出部１０２は、構造物と路面との設置面から特徴点として抽出してもよい。例えば、抽出部１０２は、歩道の縁石、ガードレールのポール、電柱などの構造物と路面の設置面から特徴点として抽出してもよい。また、抽出部１０２は、車止めと路面との設置面、屋内駐車場の柱と路面との設置面などから特徴点を抽出してもよい。
【００１９】
抽出部１０２は、道路標示のうち、停止線などを検知する場合には、ハフ変換を用いて白線検知技術を用いればよい。また、抽出部１０２は、「止まれ」などの文字や、マンホール、排水口のふたなどは、形状及び色を含む辞書と照合するパターンマッチングにより検知可能である。
【００２０】
抽出部１０２は、歩道、ガードレール、電柱などもパターンマッチングで認識し、これらの構造物の縦方向のエッジが消失し、横方向のエッジが生じる境界点を特徴点と判断すればよい。これにより、抽出部１０２は、路面上にある特徴点を抽出することができる。
【００２１】
また、抽出部１０２は、予め画像内の座標ごとにその座標の映像が車両移動時にどのように動くかを定義しておき、当該座標に位置する特徴点の動きがその定義から大きく逸脱するものを排除し、残りの特徴点を路面上にある特徴点とみなしてもよい。
【００２２】
抽出部１０２は、例えば、車両停車時には全ての特徴点は移動量が０であるため、車両が停車していることが判断できる。抽出部１０２は、大部分の特徴点が止まっているのに一部分の特徴点に動きがある場合、当該特徴点は移動物体の特徴点とみなして除去することができる。
【００２３】
次に、車両が移動し始めたとき、車両はゆっくり移動する。そのときの特徴点の動き閾値を座標ごとに抽出部１０２に設定しておく。路面上にある対象物よりも立体物の方が距離が近いため、立体物の動きが大きい。動き始めの直後（例えば１００ｍｓ後など）の特徴点の動きから、想定した動き以上の大きさを示している場合は、抽出部１０２は、立体物の特徴点として除去する。時間が経過した場合は、車両の速度は不明なので、抽出部１０２は、抽出した特徴点を路面上の対象物の特徴点とみなして、距離算出に適用してもよい。
【００２４】
抽出部１０２は、前述したいずれかの抽出条件を用いて特徴点を抽出する。抽出部１０２は、複数の抽出条件を適用して特徴点を抽出してもよい。例えば、抽出部１０２は、まず、ハフ変換により停止線などを検知し、その停止線の角などを特徴点として抽出するが、ハフ変換で停止線が検知できないときに、パターンマッチングを行って、路面上の対象物を検知してから特徴点を抽出するようにしてもよい。
【００２５】
また、抽出部１０２は、画像を縮小してから抽出条件に合致する特徴点を抽出するようにしてもよい。これにより、ノイズを除去した後に特徴点を抽出することができる。
【００２６】
また、抽出部１０２は、特徴点を抽出する抽出領域を予め設定しておいてもよい。この抽出領域は、例えば、消失点及び水平線に基づき設定される。消失点は、無限遠点であり、路面の両側の線が交わる点である。水平線は、路面の両側の線のことである。消失点は、カメラのフォーカスポイントに基づき定まる点であり、水平線は、カメラのレンズの歪み特性に基づき定まる線である。また、抽出領域は、簡易的には、画像下部の所定の矩形領域などでもよい。
【００２７】
抽出領域は、例えば、消失点及び水平線から所定ピクセル下の線を上限とし、画像下部から所定ピクセル上の線を下限として設定すればよい。所定ピクセルは、例えば２０ピクセルである。消失点及び水平線から所定ピクセル下の線を上限を抽出領域の境界線とする理由は、坂道などのときに、水平線や消失点が上下してしまうためである。
【００２８】
図２は、抽出領域の一例を示す図である。図２に示す画像は、車両のフロントに設けたカメラにより撮像された画像の例である。図２に示すａ１１は、消失点を示し、ａ１２は、水平線を示す。ａ１４は、抽出領域を示し、ａ１３は、抽出領域内の特徴点の候補を示す。抽出部１０２は、抽出領域ａ１４内から特徴点を抽出する。例えば、白線の角や白線を示す線の交点などが特徴点となる。抽出部１０２は、抽出範囲を抽出領域に絞ることで、演算量を削減しつつ、路面上にある物体を見つけやすくなる。
【００２９】
図３は、特徴点の例を示す図である。図３（Ａ）は、路面上にある文字の角を特徴点とする例である。図３（Ａ）に示す画像では、路面上にある「止まれ」の文字の「止」の左下の角を特徴点とする。図３（Ｂ）は、路面上にある横断歩道の白線の角を特徴点とする例である。図３（Ｂ）に示す画像では、路面上にある一番左の白線の下の両角を特徴点とする。抽出部１０２は、抽出した特徴点を相対位置算出部１０５に出力する。
【００３０】
なお、抽出部１０２は、複数の特徴点を抽出する際、抽出領域に散在するように多量（例えば数百個）の特徴点を抽出するようにすればよい。これにより、特徴点の誤抽出のリスクを下げることができる。抽出部１０２は、例えば、抽出領域を複数の領域に分け、各領域内からそれぞれ特徴点を抽出するようにすれば、特徴点が散在するようになる。また、特徴点が多ければ、統計処理によりノイズを除去することができる。
【００３１】
図１に戻り、歪み特性保持部１０３は、カメラ部１０１のレンズの歪み特性を示す情報を保持する。ここで、カメラの特性について説明する。カメラでは、カメラの中心から同一線上にある物体は、カメラとの距離に関わらず、映像（画像）上は、同じ位置に撮像される。
【００３２】
図４は、画像内の物体の位置の一例を示す図である。図４（Ａ）は、カメラ２０１と物体２０３、２０４との位置関係を上から見た図である。図４（Ａ）に示すように、物体２０３、２０４は、カメラ２０１のレンズ２０２の中心から同一線上にある。図４（Ａ）に示す状態で撮像された画像は、図４（Ｂ）に示す。図４（Ｂ）に示す画像２１０では、物体２０３、２０４は、同じ位置にあるように撮像される。
【００３３】
図４で説明した関係を示すデータがカメラのレンズの歪み特性である。図５は、カメラのレンズの歪み特性の一例を示す図である。図５（Ａ）は、レンズ２０２中心からの物体２０３までの角度θを示す図である。
【００３４】
図５（Ｂ）は、画像中心ｂ１１から物体２０３までの画像上での距離δを示す図である。図５（Ｃ）は、角度θと距離δとの関係を示す図である。図５（Ｃ）に示す関係が、レンズの歪み特性を示す。図５（Ｃ）に示す例では、レンズの歪み特性をルックアップテーブルで保持する例である。距離δは、画像中心ｂ１１からの画素数で表してもよい。
【００３５】
また、レンズの歪み特性にはさらに縦横の歪み比率があり、この縦横歪み比率を用いることで、画像中心ｂ１１からの縦方向の距離とカメラの縦方向の角度とを対応づけることができる。これを合成することで、映像上の中心からの任意の座標（ｘ，ｙ）に位置する物体が、３次元の実空間上でどのような角度に存在するかを、後述する相対位置算出部１０６により算出することができる。
【００３６】
なお、レンズの歪み特性は、高機能なレンズで歪みがない場合には、画像中心ｂ１１からの画素数と角度θとの関係を示せばよい。レンズの歪み特性を表すデータは、ディストーションデータとも呼ばれる。
【００３７】
歪み特性保持部１０３は、例えば、図５（Ｃ）に示すようなルックアップテーブルを保持し、必要に応じて相対位置算出部１０５により読み出される。
【００３８】
図１に戻り、設置情報保持部１０４は、カメラの設置位置に関する情報を表す設置情報を保持する。設置情報は、路面からの高さ、俯角、パン角、ロール角などを含む。路面からの高さは、路面からカメラまでの距離を示し、俯角は、水平線とカメラの視線方向との角度を示し、パン角は、カメラの横方向の角度を示し、ロール角は、カメラ自身の回転角を示す。設置情報は、必要に応じて相対位置算出部１０６により読み出される。
【００３９】
相対位置算出部１０５は、抽出部１０２により抽出された特徴点の画像中心からの位置と、歪み特性と、設置情報とに基づいて、カメラから特徴点までの距離を算出する。例えば、相対位置算出部１０５は、特徴点の画像内での位置と歪み特性とを用いて角度θを求める。
【００４０】
相対位置算出部１０５は、求めた角度θと、設置情報に含まれる俯角、パン角、ロール角とを用いて、対象物又は対象物の特徴点からカメラの設置位置までの角度λを算出する。
【００４１】
相対位置算出部１０５は、例えば、求めた角度θや角度λと、設置情報のパラメータとを三角関数に当てはめることで、特徴点を含む対象物からカメラまでの距離とを算出することができる。
【００４２】
図６は、距離算出を説明するための図である。図６に示す例では、簡略化するため、ロール角、パン角はいずれも０とし、横から見た平面で長手方向の距離Ｚを算出する。図６に示す例では、カメラの設置情報を、路面からの高さｈ、俯角φとする。特徴点の位置と歪み特性とによって求められた対象物の特徴点Ａまでのレンズ中心からの角度は、θとする。対象物の特徴点Ａは、路面上の特徴点である。
【００４３】
相対位置算出部１０５は、図６に示すような路面からの高さｈ、俯角φ、角度θに基づき、カメラから対象物の特徴点Ａまでの距離Ｚを次の式（１）により算出する。
Ｚ＝ｈ×tan（90°−φ+θ）  ・・・式（１）
相対位置算出部１０５は、図６を例にして算出した距離と同様にして、上から見た平面で左右方向の距離を算出して合成することで、実空間（３次元）での対象物の特徴点からカメラまでの距離を算出できる。
【００４４】
対象物の特徴点Ａは、路面上にあるため、相対位置算出部１０５は、距離Ｚを式（１）で算出することができるが、対象物の特徴点Ｂの場合、距離ＺではなくＢ'Ｃ間の距離を算出してしまう。Ｃ点は、カメラから路面に対しての垂直な線と路面との交点を示す。よって、相対位置算出部１０５は、対象物の高さＡＢが未知であれば、対象物の特徴点Ｂから対象物までの距離Ｚを算出することができない。
【００４５】
したがって、本実施例（以下に説明する各実施例も含む）では、特徴点を抽出するための対象物を、路面からの高さ０近辺の物体と定義する。また、本実施例では、路面からの高さ０近辺の物体だけではなくて、物体と路面との設置面における特徴点を抽出してもよい。相対位置算出部１０５は、算出した特徴点の角度θ、角度λ、距離Ｚなどを実空間における相対位置として相対位置保持部１０６に出力する。
【００４６】
図１に戻り、相対位置保持部１０６は、対象物の実空間における相対位置を画像の撮像時刻に関連付けて保持する。相対位置を示す情報は、表示部に表示されたり、後述する実施例で説明する移動量算出のために用いられたりする。
【００４７】
＜動作＞
次に、実施例１における距離算出装置の動作について説明する。図７は、実施例１における距離算出処理の一例を示すフローチャートである。図７に示すステップＳ１０１で、抽出部１０２は、カメラ部１０１により撮像された画像を取得する。
【００４８】
ステップＳ１０２で、抽出部１０２は、取得した画像内の路面上の特徴点を抽出する。抽出部１０２は、例えば、路面内の抽出領域の中から抽出条件に合致する特徴点を１又は複数抽出する。
【００４９】
ステップＳ１０３で、相対位置算出部１０５は、抽出部１０２により抽出された１又は複数の特徴点の位置を示す座標を算出する。
【００５０】
ステップＳ１０４で、相対位置算出部１０５は、抽出された１又は複数の特徴点の座標、歪み特性、設置情報に基づいて、特徴点とカメラとの距離、方位（角度）を算出する。算出された距離、方位は、相対位置保持部１０６に記憶される。
【００５１】
以上、実施例１によれば、カメラにより撮像された画像内の路面上の対象物に着目することで、この対象物からカメラまでの適切な距離を算出することができる。よって、路面上にある物体あるいは路面上と物体との設置面があれば、この物体との距離を適切に算出することができるため、本実施例の適用場面が限られることがなく、汎用性が高い。
【００５２】
［実施例２］
次に、実施例２における距離算出装置２０について説明する。実施例２では、撮像時刻が異なる少なくとも２枚の画像を用いて、車両の移動量を算出する。距離算出装置２０は、車両の移動量を算出することから移動量算出装置でもある。
【００５３】
＜構成＞
図８は、実施例２における距離算出装置（移動量算出装置）２０の構成の一例を示すブロック図である。図８に示す距離算出装置２０は、カメラ部４０１、抽出部４０２、歪み特性保持部１０３、設置情報保持部１０４、追跡部４０３、相対位置算出部４０４、相対位置保持部４０５、移動量算出部４０６を備える。図８に示す構成で、図１に示す構成と同様のものは同じ符号を付し、その説明を省略する。
【００５４】
カメラ部４０１は、例えば車両のフロントに設置されたカメラであり、所定間隔で路面を撮像し、撮像した画像を抽出部４０２及び追跡部４０３に出力する。例えば時刻ｔ０で撮像した画像を第１画像とし、時刻ｔ１で撮像した画像を第２画像とする。
【００５５】
抽出部４０２は、実施例１と同様にして、カメラ部４０１から取得した画像から路面上にある特徴点を抽出する。抽出部４０２は、抽出した特徴点を追跡部４０３及び相対位置算出部４０４に出力する。
【００５６】
追跡部４０３は、時刻ｔ０の第１画像で抽出された特徴点と、時刻ｔ１の第２画像で抽出された特徴点とが対応するかを判定する。この判定処理は、対象物や特徴点の追跡を行うことで処理できる。
【００５７】
追跡部４０３は、例えば、第１画像の特徴点から対象物を認識し、その物体が時刻ｔ１の第２画像でどの位置に移動したかの追跡をし、特徴点の座標を求める。なお、追跡部４０３は、第１画像の特徴点に対応する第２画像の特徴点を相対位置算出部４０４に通知し、第２画像の特徴点の座標を求めるのは相対位置算出部４０４が行ってもよい。
【００５８】
追跡処理は、例えば、第１画像で認識した対象物をテンプレートとし、第２画像のどこに位置するかをテンプレートマッチングにより処理する。また、追跡処理は、ＫＬＴ（Kanade Lucas Tomasi）法、モラベックオペレータ、ハリスオペレータや、その他公知の特徴点マッチング処理などの処理を行って特徴点を追跡してもよい。追跡部４０３は、第２画像の特徴点のうち、第１画像の特徴点に対応する特徴点の座標を相対位置算出部４０４に出力する。
【００５９】
追跡部４０３は、特徴点を追跡する際の追跡領域は、特徴点を抽出する際の抽出領域よりも大きくしてもよい。これにより、次の時刻で前の画像の抽出領域外に特徴点が移動したとしても、この特徴点を追跡するができる。なお、この追跡領域は、第２画像から特徴点を抽出するための抽出領域を示す。
【００６０】
相対位置算出部４０４は、実施例１と同様にして、第１画像の特徴点の位置と、歪み特性と、設置情報とに基づき、特徴点からカメラまでの実空間での距離及び方位（角度）を算出する。
【００６１】
また、相対位置算出部４０４は、前述したように、第２画像の特徴点の位置と、歪み特性と、設置情報とに基づき、特徴点からカメラまでの実空間での距離及び方位（角度）を算出する。相対位置算出部４０４は、相対位置保持部４０５及び移動量算出部４０６に算出した距離、方位を出力する。
【００６２】
図９は、直進時の車両の軌跡を説明するための図である。図９に示す車両５０１は、直進しているとする。カメラは、車両５０１の正面中心に設置されているとする。画像５１０は、時刻ｔ０の撮像画像を示す。画像５１１は、時刻ｔ１の撮像画像を示す。抽出部４０２は、対象物５０２の路面上にある特徴点ｃ１１を抽出する。
【００６３】
相対位置算出部４０４は、画像５１０から、特徴点ｃ１１から画像中心までの距離δ０を算出し、この距離δ０と歪み特性と設置情報とに基づいて角度θ０を算出する。また、相対位置算出部４０４は、角度θ０（方位）と設置情報とに基づき、三角関数を用いて特徴点ｃ１１からカメラまでの距離を算出する。
【００６４】
相対位置算出部４０４は、画像５１１から、追跡部４０３により時刻ｔ０の特徴点ｃ１１に対応する時刻ｔ１の特徴点ｃ１１について、時刻ｔ０の特徴点ｃ１１と同様の処理を行い、距離、方位を算出する。
【００６５】
図８に戻り、相対位置保持部４０５は、相対位置算出部４０４から出力される距離、方位を時刻に関連付けて保持する。例えば、相対位置保持部４０５は、時刻ｔ０の距離、方位を記憶し、次に、時刻ｔ１の距離、方位を記憶する。
【００６６】
移動量算出部４０６は、異なる画像における特徴点の時間変化量に基づき、車両の移動量を算出する。移動量算出部４０６は、車両が直進している場合は、時刻ｔ０と時刻ｔ１での特徴点の距離の差を、時刻の差で除算すれば、車両の移動速度を算出することができる。
【００６７】
図１０は、直進時の移動量算出処理を説明するための図である。図１０に示す例では、時刻ｔ０での車両６０１から対象物６０２までの距離をＺ０、角度をθ０とし、時刻ｔ１での車両６０１から対象物６０２までの距離をＺ１、角度をθ１とする。時刻ｔ０、ｔ１におけるカメラの法線方向の対象物６０２までの距離Ｘ０、Ｘ１は次に式で求められる。
Ｘ０＝Ｚ０ｃｏｓθ０  ・・・式（２）
Ｘ１＝Ｚ１ｃｏｓθ１  ・・・式（３）
【００６８】
移動量算出部４０６は、時刻ｔ０からｔ１までの移動距離｜ΔＸ｜を算出する。
｜ΔＸ｜＝｜Ｚ１ｃｏｓθ１−Ｚ０ｃｏｓθ０｜  ・・・式（４）
移動量算出部４０６は、この移動距離を時刻差（ｔ１−ｔ０）で除算すれば、車両の移動速度ｖを算出することができる。また、移動量算出部４０６は、時刻差を微小（例えば１００ｍｓ）として連続して移動速度を算出し、速度の変動を求めることで加速度を算出することも可能である。
【００６９】
なお、移動量算出部４０６は、複数の特徴点における移動速度を算出した場合は、平均的な移動速度に対して、明らかな外れ値である移動速度を除去した後の移動速度の平均を求めればよい。
【００７０】
移動量算出部４０６は、算出した移動量を車両の表示部に表示すれば、運転者に車両の速度を知らせることができる。また、本実施例の場合、例えば、１０ｋｍ／ｈ以下などの低速度の場合でも、適切な速度を算出することができる。
【００７１】
＜動作＞
次に、実施例２における距離算出装置２０の動作について説明する。図１１は、実施例２における移動量算出処理の一例を示すフローチャートである。図１１に示すステップＳ２０１で、抽出部４０２は、カメラ部４０１により時刻ｔ０に撮像された第１画像を取得する。
【００７２】
ステップＳ２０２で、抽出部４０２は、取得した第１画像内の路面上の特徴点を抽出する。抽出部４０２は、例えば、画像内の抽出領域の中から抽出条件に合致する特徴点を１又は複数抽出する。
【００７３】
ステップＳ２０３で、相対位置算出部４０４は、抽出部４０２により抽出された１又は複数の特徴点の位置を示す座標を算出する。
【００７４】
ステップＳ２０４で、相対位置算出部４０４は、抽出された１又は複数の特徴点の座標、歪み特性、設置情報に基づいて、特徴点とカメラとの距離１、方位（角度）１を算出する。算出された距離１、方位１は、時刻ｔ０と関連付けられて相対位置保持部４０５に記憶される。
【００７５】
ステップＳ２０５で、抽出部４０２は、カメラ部４０１により時刻ｔ１に撮像された第２画像を取得する。
【００７６】
ステップＳ２０６で、追跡部４０３は、第１画像の特徴点と、第２画像の特徴点とが対応するかを判定する。例えば、追跡部４０３は、第１画像の特徴点の追跡処理を、第２画像に対して行う。追跡処理は、前述したように、テンプレートマッチング処理や特徴点マッチング処理などの何れかの処理を行えばよい。
【００７７】
ステップＳ２０７で、相対位置算出部４０４は、追跡部４０３により追跡された１又は複数の特徴点の位置を示す座標を算出する。
【００７８】
ステップＳ２０８で、相対位置算出部４０４は、追跡された１又は複数の特徴点の座標、歪み特性、設置情報に基づいて、特徴点とカメラとの距離２、方位（角度）２を算出する。算出された距離２、方位２は、時刻ｔ１と関連付けられて相対位置保持部４０５に記憶される。
【００７９】
ステップＳ２０９で、移動量算出部４０６は、距離１、方位１及び距離２、方位２から車両の直進時の移動量を算出する。算出の仕方は図１０を用いて前述した通りである。
【００８０】
以上、実施例２によれば、適切に算出された対象物までの距離、方位の時間変化量に基づいて、車両の直進時の移動量を算出することができる。実施例２によれば、移動量算出の適用場面を限定されることなく、また、低速時の移動量であっても適切に算出することができる。
【００８１】
［実施例３］
次に、実施例３における距離算出装置３０について説明する。実施例３では、車両が直進しているか、旋回しているかを判断し、それぞれに応じた移動量の算出を行う。距離算出装置３０は、移動量を算出する機能を有することから移動量算出装置でもある。
【００８２】
＜構成＞
図１２は、実施例３における距離算出装置（移動量算出装置）３０の構成の一例を示すブロック図である。図１２に示す例では、距離算出装置３０は、カメラ部４０１、抽出部４０２、追跡部４０３、歪み特性保持部１０３、設置情報保持部１０４、相対位置算出部４０４、相対位置保持部４０５、特徴点抽出部７０１、特徴点追跡部７０２、フロー判定部７０３、移動量算出部７０４を備える。図１２に示す構成で、図１、図８と同様のものは同じ符号を付し、その説明を省略する。
【００８３】
図１２に示す特徴点抽出部７０１は、カメラ部４０１により撮像された画像を取得する。このとき、取得する画像は、抽出部４０２、追跡部４０３に出力される画像と同じ画像でもよいし、この画像と撮影時刻が近い画像でもよい。
【００８４】
特徴点抽出部７０１は、例えば、画像内から周辺との差があり、区別しやすい点を特徴点として複数個抽出する。この場合、抽出される特徴点は、路面上の特徴点に限られない。特徴点抽出部７０１は、カメラ部４０１から画像を取得する度に特徴点を抽出し、抽出した特徴点を特徴点追跡部７０２に出力する。
【００８５】
特徴点追跡部７０２は、異なる時刻の画像内で同一の特徴点がどこに位置しているのかを追跡する。特徴点の抽出、追跡処理については、前述しようにＫＬＴやモラベックオペレータなどの何れかの処理を用いればよい。特徴点追跡部７０２は、追跡した特徴点の移動量（動きベクトル）をフロー判定部７０３に出力する。
【００８６】
フロー判定部７０３は、取得した動きベクトルの横向きの成分（横向きベクトル）の大きさに基づいて、車両が直進しているか旋回しているかを判定する。
【００８７】
図１３は、直進時の背景のフローについて説明するための図である。図１３に示すように、直進時に車両のフロントに設置されたカメラで撮影すると、画像の中心から左右に流れるように物体が撮影される。
【００８８】
図１４は、右旋回時の背景のフローについて説明するための図である。図１４に示すように、右旋回時に車両のフロントに設置されたカメラで撮影すると、左に流れるように物体が撮影される。図１３や図１４で説明したフローの関係を用いて、車両が直進しているか旋回しているかを判定する。
【００８９】
フロー判定部７０３は、例えば、横向きベクトルの頻度分布を作成し、直進又は旋回の判定を行う。図１５は、横向きベクトルの頻度分布の例を示す図である。図１５（Ａ）は、直進時の頻度分布の例を示す。図１５（Ａ）に示すように、頻度分布が双峰性を有していれば、フロー判定部７０３は、車両が直進していると判定できる。
【００９０】
図１５（Ｂ）は、右旋回時の頻度分布の例を示す。図１５（Ｂ）に示すように、頻度分布が単峰性を有していれば、フロー判定部７０３は、車両が旋回していると判定できる。フロー判定部７０３は、左向きの領域に単峰性があれば右旋回していると判定し、右向きの領域に単峰性があれば左旋回していると判定する。
【００９１】
図１２に戻り、移動量算出部７０４は、フロー判定部７０３の判定結果に基づいて、直進時の移動量を算出するか、旋回時の移動量を算出するかを決定する。移動量算出部７０４は、決定された移動量の算出方法で、移動量を算出する。移動量算出部７０４は、直進時の移動量を算出する場合は、実施例２で説明した算出方法により移動量を算出できる。
【００９２】
旋回時の移動量の算出方法について説明する。図１６は、旋回時の車両の軌跡を説明するための図である。図１６に示す例では、車両８０１は左旋回を行う。このとき、カメラは、車両８０１のフロントに設置されるとする。画像８１０は、時刻ｔ０に撮像された画像であり、画像８１１は、時刻ｔ１に撮像された画像である。
【００９３】
時刻ｔ０の画像８１０を用いて、相対位置算出部４０４は、画像中心から対象物８０２の特徴点ｄ１１までの距離δ０に基づき、上記実施例と同様にして角度θ０を算出する。時刻ｔ１の画像８１１を用いて、相対位置算出部４０４は、画像中心から対象物８０２の特徴点ｄ１１までの距離δ１に基づき、上記実施例と同様にして角度θ１を算出する。
【００９４】
移動量算出部７０４は、図１６に示す関係から、旋回時の旋回半径Ｍ、旋回角ωを算出する。旋回半径Ｍ、旋回角ωを算出する場合、少なくとも２つの対象物のそれぞれの特徴点が用いられる。
【００９５】
図１７は、旋回時の移動量の算出を説明するための図である。図１７（Ａ）では、時刻ｔ０での対象物８５０の特徴点Ｘ、対象物８５１の特徴点Ｙ、カメラの中心Ｏの位置関係を示す。図１７（Ａ）に示すように、特徴点Ｙの垂直方向の線と、特徴点Ｘの水平方向の線とが交わる点をＷとする。相対位置算出部４０４により、特徴点Ｘまでの距離Ｚ０、角度θ０、特徴点Ｙまでの距離Ｚ１、角度θ１が算出される。
【００９６】
ここで、移動量算出部７０４は、三角関数を用いて、辺ＸＷ、ＹＷを次の式により求める。
ＸＷ＝Ｚ１ｓｉｎθ１＋Ｚ０ｓｉｎθ０＝Ａ１  ・・・式（５）
ＹＷ＝Ｚ１ｃｏｓθ１−Ｚ０ｃｏｓθ０＝Ｂ１  ・・・式（６）
【００９７】
移動量算出部７０４は、対象物の特徴点Ｘ、Ｙ間の距離ＸＹを、次の式により算出する。
ＸＹ＝ｓｑｒｔ（Ａ１２＋Ｂ１２）＝Ｃ１  ・・・式（７）
【００９８】
移動量算出部７０４は、角ＯＸＹを分解したα0とα1を、それぞれ次の式により算出する。
α０＝９０−θ０  ・・・式（８）
α１＝ｃｏｓ−１（Ａ１／Ｃ１）  ・・・式（９）
また、移動量算出部７０４は、角ＸＹＯのα２を次の式により算出する。
α２＝ｔａｎ−１（Ａ１／Ｂ１）−θ１  ・・・式（１０）
【００９９】
これにより、移動量算出部７０４は、カメラの中心O、対象物８５０の特徴点Ｘ、対象物８５１の特徴点Ｙ間の位置関係を算出できる。
【０１００】
時刻ｔ０からｔ１の間に車両が旋回し、時刻ｔ１でカメラの中心位置がＯ'に移動したとする。図１７（Ｂ）では、時刻ｔ１での対象物８５０の特徴点Ｘ、対象物８５１の特徴点Ｙ、カメラの中心Ｏ'の位置関係を示す。
【０１０１】
相対位置算出部４０４は、特徴点Ｘまでの距離Ｚ００、角度θ００、特徴点Ｙまでの距離Ｚ１１、角度θ１１を算出する。移動量算出部７０４は、図１７（Ａ）と同様にして、角度α００、α２２を、θ００、θ１１、Ｚ００、Ｚ１１を用いて算出する。
【０１０２】
図１７（Ｃ）は、ＯとＯ'の位置関係を示す図である。移動量算出部７０４は、図１７（Ｃ）に示すＯとＯ'の垂直距離χと、角度ωとを求める。まず、角度ωは、三角形Ｏ'Ｑ０Ｙに着目する。
【０１０３】
移動量算出部７０４は、三角形Ｏ'Ｑ０Ｙのそれぞれの角度を次の式により算出する。
角度Ｏ'ＹＱ０＝α２−α２２  ・・・式（１１）
角度Ｏ'Ｑ０Ｙ＝９０＋θ１  ・・・式（１２）
角度ＹＯ'Ｑ０＝ω＋９０−θ１１  ・・・式（１３）
【０１０４】
三角形の全ての角の和は１８０°であることを利用し、移動量算出部７０４は、角度ωを次の式により算出する。
１８０＝α２−α２２＋９０＋θ１＋ω＋９０−θ１１  ・・・式（１４）
ω＝θ１１−θ１＋（α２２−α２）  ・・・式（１５）
【０１０５】
移動量算出部７０４は、次に垂直距離χを算出する。垂直距離χは、辺Ｑ１Ｑ２と等しい。ここで、三角形Ｏ'ＸＱ１に着目する。移動量算出部７０４は、角度ＸＯ'Ｑ１を次の式により算出する。
角度ＸＯ'Ｑ１＝９０−θ００−ω  ・・・式（１６）
【０１０６】
移動量算出部７０４は、辺ＸＱ１を次の式により算出する。
ＸＱ１＝Ｚ００ｓｉｎ（９０−θ００−ω）  ・・・式（１７）
【０１０７】
移動量算出部７０４は、三角形ＯＸＱ２に着目し、辺ＸＱ２の長さを次の式により算出する。
ＸＱ２＝Ｚ００ｓｉｎ（９０−θ０）  ・・・式（１８）
【０１０８】
移動量算出部７０４は、垂直距離χを次の式により算出する。
χ＝ＸＱ２−ＸＱ１＝Ｚ０ｓｉｎ（９０−θ０）−Ｚ００ｓｉｎ（９０−θ００−ω）
・・・式（１９）
【０１０９】
これにより、移動算出部７０４は、車両の移動ＯからＯ'における旋回角度ω、垂直距離χを取得することができる。
【０１１０】
図１７（Ｄ）は、回転半径Ｍと垂直距離χと旋回角度ωとの関係を示す。移動量算出部７０４は、旋回角度ω、垂直距離χが算出されたので、次の式により回転半径Ｍを算出する。
Ｍ＝χ／ｓｉｎω  ・・・式（２０）
【０１１１】
これにより、移動量算出部７０４は、旋回角度ω、回転半径Ｍを算出した。移動量算出部７０４は、旋回角度ωを２点間の時刻差ｔ１−ｔ０で除算ことによって、さらに角速度を算出することができる。また、移動量算出部７０４は、時刻差を微小（例えば１００ｍｓ）として連続して角速度を算出し、角速度の変動を求めることで角加速度を算出することも可能である。
【０１１２】
移動量算出部７０４は、前述したように、フロー判定の結果に応じて、直進時の移動量を算出するか、旋回時の移動量を算出するかを切り替える。
【０１１３】
＜動作＞
次に、実施例３における距離算出装置３０の動作について説明する。図１８は、実施例３における移動量算出処理の一例を示すフローチャートである。図１８に示すステップＳ３０１〜３０８は、図１１に示すステップＳ２０１〜２０８と同様の処理であるため、その説明を省略する。
【０１１４】
ステップＳ３０９で、フロー判定部７０３は、例えば、横向きベクトルの頻度分布に基づいて、直進しているか否かを判定する。この判定結果は、移動量算出部７０４に出力される。移動量算出部７０４は、判定結果が直進を示す場合（ステップＳ３０９−ＹＥＳ）、ステップＳ３１０の処理を行い、判定結果が旋回を示す場合（ステップＳ３０９−ＮＯ）、ステップＳ３１１の処理を行う。
【０１１５】
ステップＳ３１０で、移動量算出部７０４は、直進時の移動量を算出する。直進時の移動量の算出処理は、実施例２で説明した処理と同様である。
【０１１６】
ステップＳ３１１で、移動量算出部７０４は、旋回時の移動量を算出する。旋回時の移動量の算出処理は、実施例３で説明した処理と同様である。
【０１１７】
以上、実施例３によれば、車両が直進しているか、旋回しているかを判断し、それぞれに応じた移動量の算出を行うことができる。また、フロー判定部７０３は、抽出部４０２、追跡部４０３により抽出、追跡された特徴点の動きベクトルを用いてもよい。これにおり、処理負荷を軽減させることができる。
【０１１８】
［実施例４］
次に、実施例４における距離算出装置４０について説明する。実施例４では、直進時の移動とみなして算出した移動量の変位に基づいて直進しているか、旋回しているかを判定する。距離算出装置４０は、移動量を算出する機能を有することから移動量算出装置でもある。
【０１１９】
＜構成＞
図１９は、実施例４における距離算出装置（移動量算出装置）４０の構成の一例を示すブロック図である。図１９に示す例では、距離算出装置４０は、カメラ部４０１、抽出部４０２、追跡部４０３、歪み特性保持部１０３、設置情報保持部１０４、相対位置算出部４０４、相対位置保持部４０５を備える。また、距離算出装置４０は、直進移動量算出部９０１、直進移動量保持部９０２、旋回判定部９０３、移動量算出部９０４を備える。図１９に示す構成で、図１、図８と同様のものは同じ符号を付し、その説明を省略する。
【０１２０】
直進移動量算出部９０１は、実施例２における移動量算出部４０６と同様の処理を行う。直進移動量算出部９０１は、車両が直進しているとみなして、直進時の移動量を算出する。直進移動量算出部９０１は、算出した移動量を移動量算出部９０４及び直進移動量保持部９０２に出力する。
【０１２１】
直進移動量保持部９０２は、直進移動量算出部９０１により算出された移動量を保持する。
【０１２２】
旋回判定部９０３は、直進移動量保持部９０２に記憶された直近の複数の移動量を比較し、移動量の変位（特徴点の移動方向）に基づいて直進しているか旋回しているかを判定する。旋回判定部９０３は、例えば、時刻ｔ０からｔ１までの特徴点Ｐの動きベクトルｖ１の同一線上に、時刻ｔ１からｔ２までの特徴点Ｐの動きベクトルｖ２があれば直進していると判定する。
【０１２３】
なお、旋回判定部９０３は、動きベクトルｖ１とｖ２とが、必ずしも同一線上である必要はなく、所定距離内で略平行を示していれば、直進と判定してもよい。旋回判定部９０３は、動きベクトルｖ１の同一線上に動きベクトルｖ２がなければ旋回していると判定する。
【０１２４】
これにより、特徴点のフローを算出することなく、簡単な演算量で車両が直進しているか、旋回しているかを判定することができる。旋回判定部９０３は、判定結果を移動量算出部９０４に出力する。
【０１２５】
移動量算出部９０４は、判定結果が直進を示す場合、直進移動量算出部９０１から取得した移動量を出力し、判定結果が旋回を示す場合、実施例３で説明したように、旋回時の移動量を算出する。算出した移動量は、例えば、車両の表示部に表示される。
【０１２６】
＜動作＞
次に、実施例４における距離算出装置４０の動作について説明する。図２０は、実施例４における移動量算出処理の一例を示すフローチャートである。図２０に示すステップＳ４０１〜４０９は、図１１に示すステップＳ２０１〜２０９と同様の処理であるため、その説明を省略する。
【０１２７】
ステップＳ４１０で、旋回判定部９０３は、直進時の移動量の変位に基づき、旋回しているか否かを判定する。旋回判定部９０３は、判定結果を移動量算出部９０４に出力する。移動量算出部９０４は、判定結果が旋回を示す場合（ステップＳ４１０−ＹＥＳ）、ステップＳ４１１の処理を行い、判定結果が直進を示す場合（ステップＳ４１０−ＮＯ）、算出処理を終了する。
【０１２８】
ステップＳ４１１で、移動量算出部９０４は、旋回時の移動量を算出する。算出処理は、実施例３で説明した処理と同様である。
【０１２９】
以上、実施例４によれば、特徴点のフローを算出することなく、簡単な演算量で車両が直進しているか、旋回しているかを判定することができる。
【０１３０】
［実施例５］
次に、実施例５における距離算出装置５０について説明する。近年、車両には、前方にブラインドコーナモニタのカメラ、後方にバックガイドモニタのカメラなど、複数のカメラを設置する場合がある。そこで、実施例５では、車両の前後にカメラを設置し、各カメラで撮像した画像に基づいて、直進しているか、旋回しているかを判定する。距離算出装置５０は、移動量を算出する機能を有することから移動量算出装置でもある。
【０１３１】
＜構成＞
図２１は、実施例５における距離算出装置（移動量算出装置）５０の構成の一例を示すブロック図である。図２１に示す例では、距離算出装置５０は、カメラ部４０１−１、４０１−２、抽出部４０２、追跡部４０３、歪み特性保持部１０３、設置情報保持部１０４、相対位置算出部４０４、相対位置保持部４０５を備える。
【０１３２】
また、距離算出装置５０は、直進移動量算出部９０１、直進移動量保持部９０２、ベクトル交差判定部１００１、移動量算出部１００２を備える。図２１に示す構成で、図１、図８、図１９と同様のものは同じ符号を付す。
【０１３３】
カメラ部４０１−１は、例えば、車両のフロントに設置されたカメラであり、カメラ部４０１−２は、例えば、車両のバックに設置されたカメラである。なお、抽出部４０２、追跡部４０３、相対位置算出部４０４、相対位置保持部４０５、直進移動量算出部９０１は、カメラ毎にそれぞれ独立して処理を行う。直進移動量保持部９０２は、カメラ毎に直進移動量を保持する。
【０１３４】
ベクトル交差判定部１００１は、直進移動量保持部９０２に記憶されるカメラ部４０１−１の直進移動量に基づき、フロントカメラの移動量を求める。ベクトル交差判定部１００１は、直進移動量保持部９０２に記憶されるカメラ部４０１−２の直進移動量に基づき、リアカメラの移動量を求める。
【０１３５】
ベクトル交差判定部１００１は、各カメラの移動量の向きが平行であるか否かを判定する。例えば、ベクトル交差判定部１００１は、各カメラの移動量の向きの差が閾値未満である場合、直進していると判定し、各カメラの移動量の向きの差が閾値以上であれば、旋回していると判定する。
【０１３６】
図２２は、各カメラの移動量の例を示す図である。図２２（Ａ）は、直進時の車両１１０１のフロントカメラ１１０２、リアカメラ１１０３の移動量を示す。図２２（Ｂ）は、旋回時の車両１１０１のフロントカメラ１１０２、リアカメラ１１０３の移動量を示す。
【０１３７】
フロントカメラ１１０２で撮像した画像には、対象物１１０５が含まれる。フロントカメラ１１０２の移動量１は、対象物１１０５の特徴点に基づいて算出される。
【０１３８】
リアカメラ１１０３で撮像した画像には、対象物１１０６が含まれる。リアカメラ１１０３の移動量２は、対象物１１０６の特徴点に基づいて算出される。
【０１３９】
ベクトル交差判定部１００１は、図２２（Ａ）に示す例では、フロントカメラ１１０２の移動量１の向きと、リアカメラ１１０３の移動量２の向きが同じであると言えるため、直進していると判定する。
【０１４０】
ベクトル交差判定部１００１は、図２２（Ｂ）に示す例では、フロントカメラ１１０２の移動量１の向きと、リアカメラ１１０３の移動量２の向きが異なる（ベクトルが交差する）であると言えるため、旋回していると判定する。ベクトル交差判定部１００１は、判定結果を移動量算出部１００２に出力する。
【０１４１】
移動量算出部１００２は、判定結果が直進を示す場合、直進移動量算出部９０１から取得した移動量を出力し、判定結果が旋回を示す場合、実施例３で説明したように、旋回時の移動量を算出する。算出した移動量は、例えば、車両の表示部に表示される。
【０１４２】
＜動作＞
次に、実施例５における距離算出装置５０の動作について説明する。実施例５における移動量算出処理は、図２０に示す処理と同様である。実施例５では、ステップ４０１〜Ｓ４０９の処理を各カメラの画像毎に行い、ステップＳ４１０の旋回判定をベクトル交差判定部１００１が行えばよい。
【０１４３】
以上、実施例５によれば、例えば、車両の前後に設置した複数のカメラを用いて、各カメラで撮像した画像に基づいて、直進しているか、旋回しているかを判定することができる。なお、実施例５では、車両の前後に設置したカメラを用いて、各カメラで撮像した物体のフローの違いで直進しているか、旋回しているかを判定してもよい。
【０１４４】
車両が直進している時は、前方カメラで撮像した物体は、内側から外側へのフローになる（図１３参照）。一方、後方カメラで撮像した物体は、徐々に遠ざかっていくため、消失点に向かって縮小していくように見える。この場合、フローの向きは外側から内側となり、フロントカメラと正反対のフローの向きが支配的となる。
【０１４５】
車両が旋回している時は、前方カメラで撮像した物体、後方カメラで撮像した物体は共に同じフローの向きとなる。よって、距離算出装置５０は、前後カメラのフローの向きの違いにより、自車が直進か旋回かを推定し、この推定結果に基づいて、直進か旋回か、いずれかの移動量を算出する。実施例５では、複数の映像を使用するため、１カメラのみ用いる場合と比較して、より精度良く車両が直進しているのか、旋回しているのかを推定することができる。
【０１４６】
［実施例６］
図２３は、各実施例における情報処理装置６０のハードウェア構成の一例を示すブロック図である。図２３に示す情報処理装置６０は、ＣＰＵ１２０１、記憶装置１２０２、メモリ１２０３、読み取り装置１２０４、通信インタフェース１２０６、カメラ１２０７、表示装置１２０８を含む。情報処理装置６０は、車両に搭載される。
【０１４７】
ＣＰＵ１２０１は、各装置の制御やデータの演算、加工を行う。ＣＰＵ１２０１は、メモリ１２０３を利用して距離算出プログラムや移動量算出プログラムを実行する。
【０１４８】
記憶装置１２０２は、ＨＤＤ（Hard Disk Drive）などであり、アプリケーションソフトウェアなどに関連するデータを記憶する記憶装置である。記憶装置１２０２は、例えば距離算出プログラムや移動量算出プログラムを格納する。なお、記憶装置１２０２は、外部記録装置であってもよい。
【０１４９】
メモリ１２０３は、例えばＲＯＭ（Read Only Memory）やＲＡＭ（Random Access Memory）などである。メモリ１２０３は、例えばＣＰＵ１２０１が実行する基本ソフトウェアであるＯＳやアプリケーションソフトウェアなどのプログラムやデータを記憶又は一時保存する記憶装置である。
【０１５０】
読み取り装置１２０４は、ＣＰＵ１２０１の指示に従って可搬型記録媒体１２０５にアクセスする。可搬性記録媒体１２０５は、例えば、半導体デバイス（ＰＣカード等）、磁気的作用により情報が入出力される媒体、光学的作用により情報が入出力される媒体を含むものとする。
【０１５１】
通信インタフェース１２０６は、ＣＰＵ１２０１の指示に従って、ネットワークを介してデータを送受信する。カメラ１２０７は、車両に１又は複数設置され、路面を撮像する。表示装置１２０８は、車両内の表示部である。
【０１５２】
なお、各実施例における構成で、抽出部、追跡部、相対位置算出部、移動量算出部、特徴点抽出部、特徴点追跡部、フロー判定部、直進移動量算出部、ベクトル交差判定部は、例えばＣＰＵ１２０１である。カメラ部は、例えばカメラ１２０７である。歪み特性保持部１０３、設置情報保持部１０４は、例えば記憶装置１２０２である。相対位置保持部、直進移動量保持部は、例えばメモリ１２０３である。
【０１５３】
各実施例に係わる距離算出プログラム又は移動量算出プログラムは、例えば、下記の形態で提供される。
・記憶装置１２０２に予めインストールされている。
・可搬型記録媒体１２０５により提供される。
・プログラムサーバ１２１０からダウンロードする。
上記構成の情報処理装置６０で距離算出プログラム又は移動量算出プログラムを実行することにより、各実施例に係わる装置が実現される。
【０１５４】
［変形例］
前述した実施例では、車両が直進しているとみなして、旋回判定を行う例について説明したが、車両が旋回しているとみなして直進判定を行うようにしてもよい。この場合、車両に搭載される情報処理装置６０の情報処理能力によって、どちらとみなすかを決める。
【０１５５】
情報処理装置６０の情報処理能力が高ければ移動量算出の間隔が短い（例えば１００ｍｓ毎）ため、車両の移動は直進とみなして移動量を算出すればよい。この場合、前述したように、過去の移動量を比較して、方位が変動している場合は、旋回中とみなすことができる。
【０１５６】
情報処理装置６０の情報処理能力が高くなければ移動量算出の間隔が長い（例えば１秒）ため、車両の移動は旋回しているとみなして移動量を算出すればよい。この場合、旋回半径Ｍが閾値以上であれば、車両の移動は直進とみなしてよい。閾値は、例えば２０００ｍである。
【０１５７】
なお、前述した直進か、旋回かの判定結果は、接近物検知処理に用いられてもよい。接近物検知処理では、直進時には適切に検知することができるが、旋回時には適切に検知することができない。よって、運転手に対し、接近物検知処理が適切に作動しているか否かを知らせる必要がある。そこで、各実施例や変形例で旋回と判定された場合に、接近物検知処理をＯＦＦにする又は適切に作動しないことを運転手に明示することができる。
【０１５８】
また、前述した移動量算出の結果は、ナビゲーション画面の切替に用いられてもよい。例えば、所定速度未満の場合は、フロントカメラの映像を表示部に映し、所定速度以上になった場合は、ナビゲーション画面を表示部に映すようにしてもよい。所定速度は、例えば５ｋｍ／ｈである。
【０１５９】
以上、各実施例について詳述したが、特定の実施例に限定されるものではなく、特許請求の範囲に記載された範囲内において、上記変形例以外にも種々の変形及び変更が可能である。
【０１６０】
なお、以上の実施例に関し、さらに以下の付記を開示する。
（付記１）
カメラから画像を取得し、
前記画像から、路面上にある特徴点を規定する抽出条件を満たす特徴点を抽出し、
抽出された前記特徴点から前記カメラまでの実空間での距離を、前記画像内での前記特徴点の位置に基づいて求められる前記特徴点の前記カメラに対する実空間上での角度と、前記カメラの俯角及び路面からの距離を含む設置情報とを用いて算出する、
処理をコンピュータに実行させるための距離算出プログラム。
（付記２）
前記特徴点を抽出する場合、画像の消失点及び水平線に基づき設定された領域内で特徴点を抽出する付記１記載の距離算出プログラム。
（付記３）
前記距離を算出する場合、前記特徴点の位置と、前記カメラのレンズの歪み特性とから前記角度を求める付記１又は２記載の距離算出プログラム。
（付記４）
前記画像とは異なる他の画像から前記抽出条件を満たす特徴点を抽出し、
前記画像の特徴点と、前記他の画像の特徴点とが対応するかを判定し、
対応すると判定された前記他の画像の特徴点から前記カメラまでの実空間上での距離を、前記他の画像の特徴点の前記カメラに対する実空間上での角度及び前記設置情報を用いて算出し、
前記画像の特徴点の前記距離及び角度と、前記他の画像の特徴点の前記距離及び角度との差分から前記カメラを搭載する車両の移動量を算出する、
処理をコンピュータにさらに実行させるための付記１乃至３いずれか一項に記載の距離算出プログラム。
（付記５）
前記画像の特徴点を抽出する領域よりも、前記他の画像の特徴点を抽出する領域を大きくする付記４記載の距離算出プログラム。
（付記６）
前記画像の特徴点と、該特徴点に対応する前記他の画像の特徴点に基づき、前記車両が直進しているか、旋回しているかを判定し、
前記移動量を算出する場合、直進と判定されたときは直進時の移動量算出処理を実行させ、旋回と判定されたときは旋回時の移動量算出処理を実行させるための付記４又は５記載の距離算出プログラム。
（付記７）
前記直進又は旋回しているかの判定は、
前記画像の特徴点と、該特徴点に対応する前記他の画像の特徴点との横向きの移動ベクトルに基づいて判定される付記６記載の距離算出プログラム。
（付記８）
前記直進又は旋回しているかの判定は、
前記画像の特徴点と、該特徴点に対応する前記他の画像の特徴点との移動ベクトルの変化量に基づいて判定される付記６記載の距離算出プログラム。
（付記９）
第１カメラと第２カメラが前記車両に搭載される場合、
前記直進又は旋回しているかの判定は、
前記第１カメラで撮像した複数の画像に基づいて求めた前記第１カメラの移動量と、前記第２カメラで撮像した複数の画像に基づいて求めた前記第２カメラの移動量とに基づいて判定される付記６記載の距離算出プログラム。
（付記１０）
カメラから画像を取得し、
前記画像から、路面上にある特徴点を規定する抽出条件を満たす特徴点を抽出し、
抽出された前記特徴点から前記カメラまでの実空間上での距離を、前記画像内での前記特徴点の位置に基づいて求められる前記特徴点の前記カメラに対する実空間上での角度と、前記カメラの俯角及び路面からの距離を含む設置情報とを用いて算出する距離算出方法。
（付記１１）
カメラにより撮像された画像から、路面上にある特徴点を規定する抽出条件を満たす特徴点を抽出する抽出部と、
抽出された前記特徴点から前記カメラまでの実空間上での距離を、前記画像内での前記特徴点の位置に基づいて求められる前記特徴点の前記カメラに対する実空間上での角度と、前記カメラの俯角及び路面からの距離を含む設置情報とを用いて算出する相対位置算出部と、
を備える距離算出装置。
【符号の説明】
【０１６１】
１０１、４０１  カメラ部
１０２、４０２  抽出部
１０３  歪み特性保持部
１０４  設置情報保持部
１０５、４０４  相対位置算出部
１０６、４０５  相対位置保持部
４０３  追跡部
４０６、７０４、９０４、１００２  移動量算出部
７０１  特徴点抽出部
７０２  特徴点追跡部
７０３  フロー判定部
９０１  直進移動量算出部
９０２  直進移動量保持部
９０３  旋回判定部
１００１  ベクトル交差判定部
【図１】
0005830876.tif 000002
【図２】
0005830876.tif 000003
【図３】
0005830876.tif 000004
【図４】
0005830876.tif 000005
【図５】
0005830876.tif 000006
【図６】
0005830876.tif 000007
【図７】
0005830876.tif 000008
【図８】
0005830876.tif 000009
【図９】
0005830876.tif 000010
【図１０】
0005830876.tif 000011
【図１１】
0005830876.tif 000012
【図１２】
0005830876.tif 000013
【図１３】
0005830876.tif 000014
【図１４】
0005830876.tif 000015
【図１５】
0005830876.tif 000016
【図１６】
0005830876.tif 000017
【図１７】
0005830876.tif 000018
【図１８】
0005830876.tif 000019
【図１９】
0005830876.tif 000020
【図２０】
0005830876.tif 000021
【図２１】
0005830876.tif 000022
【図２２】
0005830876.tif 000023
【図２３】
0005830876.tif 000024