説明

自車移動推定方法および自車移動推定プログラム

【課題】画像内に大きな物体が存在しても正確に自車移動パラメータを推定することができる自車移動推定方法および自車移動推定プログラムを提供する。
【解決手段】本発明の一実施形態に係る自車移動推定方法は、車両に設けられたカメラが所定のフレーム周期で前記車両の周囲を撮像するステップと、前記カメラにより撮像された複数の画像間の動きベクトルを検出するステップと、検出された動きベクトルから自車の移動パラメータを求めるステップと、前記自車の移動パラメータを求める際に利用された前記複数の画像の撮像の後に前記カメラにより撮像された画像を用いて新たに動きベクトルを検出するステップと、前記新たに検出された動きベクトルのうち、前記自車の移動パラメータに対応する自車の移動ベクトルとの比較で所定の閾値以内であるものを背景ベクトルとして検出するステップと、この背景ベクトルを用いて新たに自車の移動パラメータを求めるステップと、を有する方法である。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、自車移動推定方法および自車移動推定プログラムに関する。
【背景技術】
【0002】
最近、自動車などの車両の運転を支援するための技術として、たとえば、車載カメラにより撮像された画像にもとづいて車両と対象物との衝突可能性を判定する技術がある。この種の技術において、車載カメラにより撮像された画像から対象物を抽出するためには、自車の並進成分および回転成分(以下、自車移動パラメータという)の情報が必要となる。
【0003】
自車移動パラメータを推定する方法としては、たとえば車載カメラにより撮像された画像から動きベクトルを検出し、この検出した動きベクトルから推定する方法が知られている。この方法では、車載カメラにより撮像された画像内の被写体は静止物が支配的であり、画像から検出される動きベクトルは静止物の動きベクトルであるという前提のもと、検出した動きベクトルから自車移動パラメータを推定するようになっている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特願2008−203992号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、車載カメラにより撮像された画像内において大きな物体が横切ると、検出される動きベクトルは自車の移動方向とは無関係の方向をもつものが多くなってしまい、自車移動パラメータを推定することが難しくなってしまう。また、車載カメラにより撮像された画像内において車両の近くに大きな物体が存在すると、この物体の位置の検出誤差が自車移動パラメータの精度に大きく影響し、自車移動パラメータを推定することが難しくなってしまう。
【課題を解決するための手段】
【0006】
本発明の一実施形態に係る自車移動推定方法は、上述した課題を解決するために、車両に設けられたカメラが所定のフレーム周期で前記車両の周囲を撮像するステップと、前記カメラにより撮像された複数の画像間の動きベクトルを検出するステップと、検出された動きベクトルから自車の移動パラメータを求めるステップと、前記自車の移動パラメータを求める際に利用された前記複数の画像の撮像の後に前記カメラにより撮像された画像を用いて新たに動きベクトルを検出するステップと、前記新たに検出された動きベクトルのうち、前記自車の移動パラメータに対応する自車の移動ベクトルとの比較で所定の閾値以内であるものを背景ベクトルとして検出するステップと、この背景ベクトルを用いて新たに自車の移動パラメータを求めるステップと、を有する方法である。
【図面の簡単な説明】
【0007】
【図1】本発明の一実施形態に係る自車移動推定方法を実施するための自車移動推定装置の一例を示すブロック図。
【図2】図1に示す主制御部のCPUにより初期の自車移動パラメータを求める際の手順を示すフローチャート。
【図3】座標系と回転方向の関係の一例を示す説明図。
【図4】空間上の特徴点の位置zと路面との関係の一例を示す説明図。
【図5】図1に示す主制御部のCPUにより画像内に大きな物体が存在しても正確に自車移動パラメータを推定する際の手順を示すフローチャート。
【図6】図5のS15で背景ベクトル検出部により実行される背景ベクトル判定処理の手順の一例を示すサブルーチンフローチャート。
【図7】(a)は、魚眼カメラの左1/4視野および右1/4視野をyz平面に平行に配置された左画面および右画面にそれぞれ射影する例を示す説明図、(b)は、魚眼カメラの左1/4視野および右1/4視野をy軸に並行かつyz平面に対して所定の傾きを持つよう配置された左画面および右画面にそれぞれ投影する例を示す説明図、(c)は、魚眼カメラの左1/4視野および右1/4視野をそれぞれxz平面に平行に配置された左画面および右画面にそれぞれ射影する例を示す説明図。
【図8】図7(a)に示す場合における動きベクトルの算出方法を説明するための図。
【発明を実施するための形態】
【0008】
本発明に係る自車移動推定方法および自車移動推定プログラムの実施の形態について、添付図面を参照して説明する。
【0009】
図1は、本発明の一実施形態に係る自車移動推定方法を実施するための自車移動推定装置10の一例を示すブロック図である。
【0010】
自車移動推定装置10は、カメラ11、主制御部12、記憶部13、灯火装置16、クラクション17、スピーカ18および表示装置19を有する。
【0011】
カメラ11は、CCD(Charge Coupled Device)イメージセンサやCMOS(Complementary Metal Oxide Semiconductor)イメージセンサにより構成され、自家用自動車等の車両の周囲の映像を取り込んで画像データを生成して主制御部12に与える。
【0012】
たとえば後方を監視する場合、カメラ11は車両後部のナンバープレート付近に路面と平行な線からやや下向きに配設される。カメラ11には、より広範な車両外画像が取得可能なように広角レンズや魚眼レンズが取り付けられてもよい。また、車両の側方を監視する場合、カメラ11はサイドミラー付近に配設される。また、複数のカメラ11を用いることにより広範な車外周囲画像を取り込むようにしてもよい。
【0013】
主制御部12は、たとえばCPU、RAM、ROMを備えたマイクロコントローラにより構成される。主制御部12のCPUは、ROMなどの記憶媒体に記憶された自車移動推定プログラムおよびこのプログラムの実行のために必要なデータをRAMへロードし、このプログラムに従って画像内に大きな物体が存在しても正確に自車移動パラメータを推定する処理を実行する。主制御部12のRAMは、CPUが実行するプログラムおよびデータを一時的に格納するワークエリアを提供する。主制御部12のROMなどの記憶媒体は、自車移動推定プログラムや、これらのプログラムを実行するために必要な各種データを記憶する。
【0014】
なお、ROMをはじめとする記憶媒体は、磁気的もしくは光学的記録媒体または半導体メモリなどの、CPUにより読み取り可能な記録媒体を含んだ構成を有し、これら記憶媒体内のプログラムおよびデータの一部または全部は図示しないネットワーク接続部を介して電子ネットワークを介してダウンロードされるように構成してもよい。
【0015】
なお、この場合、ネットワーク接続部は、ネットワークの形態に応じた種々の情報通信用プロトコルを実装し、この各種プロトコルに従って主制御部12と他の車両のECUなどの電気機器とを電子ネットワークを介して接続する。この接続には、電子ネットワークを介した電気的な接続などを適用することができる。ここで電子ネットワークとは、電気通信技術を利用した情報通信網全般を意味し、無線/有線LAN(Local Area Network)やインターネット網のほか、電話通信回線網、光ファイバ通信ネットワーク、ケーブル通信ネットワークおよび衛星通信ネットワークなどを含む。
【0016】
記憶部13は、主制御部12によるデータの読み書きが可能な不揮発性のメモリであり、あらかじめ、過去フレームまでの自車移動パラメータ、角度閾値ThA、差閾値ThSおよび比閾値ThRを記憶している。また、新たに得られた背景ベクトルもここに記憶される。これらの情報は、電子ネットワークを介してまたは光ディスクなどの可搬型記憶媒体を介して更新されてもよい。
【0017】
灯火装置16は、一般的なヘッドライトにより構成され、主制御部12により制御されて点滅(いわゆるパッシング)を行うことにより、たとえば自車両の外部に対して警告を行う。
【0018】
クラクション17は、主制御部12により制御されて自車両の外部に対して警告音を出力する。
【0019】
スピーカ18は、自車両の車内に設けられ、主制御部12により制御されて自車両の運転者に対してビープ音や危険が迫っていることを知らせるための情報などの各種情報に対応した音声を出力する。
【0020】
表示装置19は、運転者が視認可能な位置に設けられ、車載用の一般的なディスプレイやカーナビゲーションシステム、HUD(ヘッドアップディスプレイ)などの表示出力装置を用いることができ、主制御部12の制御に従って、カメラ11の撮像画像や危険が迫っていることを知らせるための情報などの各種情報を表示する。
【0021】
続いて、主制御部12のCPUによる機能実現部の構成について説明する。
【0022】
図1に示すように、主制御部12のCPUは、自車移動推定プログラムによって、少なくとも平面画像生成部21、動きベクトル検出部22、背景ベクトル検出部23、自車移動算出部24および物体ベクトル処理部25として機能する。この各部21−25は、RAMの所要のワークエリアを、データの一時的な格納場所として利用する。なお、これらの機能実現部は、CPUを用いることなく回路などのハードウエアロジックによって構成してもよい。
【0023】
平面画像生成部21は、カメラ11により撮像された画像にもとづいて平面画像を生成する。たとえばカメラ11に魚眼レンズが取り付けられている場合は、平面画像生成部21は、カメラ11により撮像された魚眼画像を通常の2次元画像に正規化するとともに、この正規化画像にもとづいて、あらかじめ定められた視点の平面画像を生成する。
【0024】
動きベクトル検出部22は、ブロックマッチング法や勾配法などを用いて、平面画像生成部21により生成された複数の平面画像から画素ごとに動きベクトルを算出する。
【0025】
背景ベクトル検出部23は、自車移動算出部24により算出された自車の移動パラメータ(自車の並進成分Rおよび回転成分T)にもとづいて自車の移動ベクトルを算出する。そして、この自車の移動ベクトルと、自車の移動パラメータの算出に用いられたフレームよりも後に撮影されたフレーム画像から動きベクトル検出部22により検出された動きベクトルと、を比較し、所定の閾値以内にある動きベクトルを背景ベクトルとして検出する。
【0026】
背景ベクトル検出部23は、この所定の閾値として、記憶部13に記憶された角度閾値ThA、差閾値ThSおよび比閾値ThRを用いることができる。
【0027】
自車移動算出部24は、まず、動きベクトルにもとづいて、初期の自車移動パラメータを算出する。もしくは初期状態は停車していると判断して、自車移動パラメータを0または小さいパラメータにしておく。次に、背景ベクトル検出部23によってこの初期の自車移動パラメータにもとづいて背景ベクトルが検出されると、この検出された背景ベクトルにもとづいて、新たに自車移動パラメータを算出する。そして、この新たに算出したパラメータを、背景ベクトル検出部23に与える。
【0028】
物体ベクトル処理部25は、背景ベクトル検出部23により背景ベクトルとして検出されなかった動きベクトルを物体ベクトルとしてあつかい、この物体ベクトルから得られた物体の接近状況に応じて灯火装置16、クラクション17、スピーカ18および表示装置19の少なくとも1つを介して運転者に対して警告を行う。
【0029】
次に、本実施形態に係る自車移動推定装置10の動作の一例について説明する。
【0030】
図2は、図1に示す主制御部12のCPUにより初期の自車移動パラメータを求める際の手順を示すフローチャートである。図2において、Sに数字を付した符号は、フローチャートの各ステップを示す。
【0031】
まず、ステップS1において、カメラ11は、少なくとも路面を含む車両周囲の画像を取り込んで画像信号を生成して平面画像生成部21に与える
【0032】
次に、ステップS2において、平面画像生成部21は、カメラ11により撮像された画像にもとづいて平面画像を生成する。
【0033】
次に、ステップS3において、動きベクトル検出部22は、平面画像生成部21により生成された複数の平面画像から画素ごとに動きベクトルを算出する。
【0034】
次に、ステップS4において、自車移動算出部24は、ステップS2で算出された動きベクトルにもとづいて、初期の自車移動パラメータを算出する。
【0035】
以上の手順により、初期の自車移動パラメータを求めることができる。
【0036】
ここで、背景ベクトル検出部23による自車移動パラメータにもとづく自動移動ベクトルの算出方法について説明する。
【0037】
図3は、座標系と回転方向の関係の一例を示す説明図である。以下の説明では、図3に示すように、進行方向をz軸、路面法線方向をy軸、進行方向および路面法線方向に互いに直交する方向をx軸とする座標系を用いる場合の例について示す。このとき、水平線を真横に見えるようにし進行方向をz軸からずらしても良い。また、動きベクトルのx、y、z成分をそれぞれu、v、wとあらわすものとする。また、図3においては、x軸、y軸、z軸周りの回転をそれぞれRx、Ry、Rzとして示した。
【0038】
カメラ11により撮像された画像は、平面画像生成部21により、理想的にはz=fで表されるカメラ投影面31に展開されることになる。ここで、fはカメラ11の焦点距離であるものとする。
【0039】
自車移動での画面の回転方向および並進方向をそれぞれR(Rx、Ry、Rz)およびT(Tx、Ty、Tz)とする。このとき、自車移動の回転方向と並進方向は(−Rx、−Ry、−Rz)および(−Tx, −Ty, −Tz)となる。
【0040】
公知の式により、自車移動ベクトル(x、y、cu、cv)=(x座標位置、y座標位置、x方向ベクトル、y方向ベクトル)は、自車移動パラメータから次のように求めることができる。
wu = -(x・y / f)・Rx + ((f・f + x・x) / f)・Ry - y・Rz
wv = -((f・f + y・y) / f)・Rx + (x・y / f )・Ry + x・Rz
tu = (f・Tx - x・Tz) / z
tv = (f・Ty - y・Tz) / z
cu = tu + wu
cv = tv + wv
【0041】
ここで、tu,tvは並進成分、wu,wvは回転成分をそれぞれ表す。このときzは地面外ではある値(Zmax)で制限(たとえば全ての特徴点がZmaxにあるものと仮定)し、地面はその値より小さくする。収束点FOE(FOEx、FOEy)とするとき、計算を簡単にするために水平線の傾きは無し、FOEx=0とし、FOEyはある程度地面方向の解像度を上げるためにずらすのを許容して計算する。そのために、平面画像生成部21は、水平線が真横となるよう、かつ収束点がx=0の位置になるように平面画像を生成することが好ましい。
【0042】
図4は、空間上の特徴点の位置zと路面との関係の一例を示す説明図である。
【0043】
背景が遠すぎる場合、並進移動をしても動きベクトルはとても小さい。しかし、それ以外の場合は、特徴点の動きベクトルはある程度の大きさを持つ。図4に示すように、カメラから路面までの距離をDgndとすると、例えばDgndまでの距離の10倍以上を背景とみなす場合には、Dgnd=Zmax/10とする。
【0044】
画像から検出した動きベクトルのz座標は、次のように計算できる。
z = (Dgnd・f / cos(θgnd)) / (y - FOEy) (zはZmaxで制限)
θgnd = atan(FOEy / f)
【0045】
図5は、図1に示す主制御部12のCPUにより画像内に大きな物体が存在しても正確に自車移動パラメータを推定する際の手順を示すフローチャートである。図5において、Sに数字を付した符号は、フローチャートの各ステップを示す。
【0046】
ステップS11において、背景ベクトル検出部23は、自車移動パラメータにもとづいて自車移動ベクトルを算出する。この自車移動パラメータとしては、たとえば図2のステップS4で算出される初期の自車移動パラメータを用いることができる。
【0047】
次に、ステップS12において、カメラ11は、少なくとも路面を含む車両周囲の画像を取り込んで画像信号を生成して平面画像生成部21に与える。このとき取り込まれる画像は、初期の移動パラメータの算出に用いられた画像よりも後に撮影されたものとなる。換言すれば、この後のステップで利用される自車の移動パラメータは、このステップS12で取り込まれるフレームよりも過去のフレームにもとづいて算出されたものである。
【0048】
次に、ステップS13において、平面画像生成部21は、ステップS12でカメラ11により撮像された画像にもとづいて平面画像を生成する。
【0049】
次に、ステップS14において、動きベクトル検出部22は、平面画像生成部21により生成された複数の平面画像から画素ごとに動きベクトルを算出する。
【0050】
次に、ステップS15において、背景ベクトル検出部23は、過去のフレームにもとづいて自車移動算出部24により算出された自車移動パラメータから自車の移動ベクトルを算出する。そして、背景ベクトル検出部23は、この自車の移動ベクトルと、自車の移動パラメータの算出に用いられたフレームよりも後に撮影されたフレーム画像から動きベクトル検出部22により検出された動きベクトルと、を比較し、所定の閾値以内にある動きベクトルを背景ベクトルとして検出する。
【0051】
より具体的には、ステップS11で算出された自車移動ベクトル(cu、cv)=(x方向ベクトル、y方向ベクトル)と、ステップS14で画像から検出される動きベクトル(pu、pv)=(x方向ベクトル、y方向ベクトル)とを比較し、この動きベクトルが所定の閾値以内にあるか否か、すなわち背景ベクトルとして検出するか否かを判定する。
【0052】
なお、回転成分をキャンセルした状態でのベクトルである(pu−wu、pv−wv)と(tu、tv)とを比較しても良い。
【0053】
ステップS15において背景ベクトルであると判定された動きベクトルは、背景ベクトル検出部23により記憶部13に格納される(ステップS16)。
【0054】
一方、ステップS15において背景ベクトルではないと判定された動きベクトルは、物体ベクトルとして物体ベクトル処理部25に与えられる。物体ベクトル処理部25は、この物体ベクトルから物体を検出する処理を行い(ステップS17)、得られた物体の接近状況に応じて灯火装置16、クラクション17、スピーカ18および表示装置19の少なくとも1つを介して運転者に対して警告を行う(ステップS18)。なお、背景ベクトルと物体ベクトルの閾値付近は、どちらにもせず捨てても良い。
【0055】
次に、ステップS19において、背景ベクトル検出部23は、動きベクトルを全て検出したか否かを判定する。未検出の動きベクトルがある場合はステップS14に戻り、全て検出している場合はステップS20に進む。
【0056】
そして、ステップS20において、自車移動算出部24は、記憶部13に記憶された背景ベクトルを用いて、自車移動パラメータを算出する。この背景ベクトルを用いた自車移動パラメータの算出方法の詳細については後述する。
【0057】
以上の手順により、画像内に大きな物体が存在しても正確に自車移動パラメータを推定することができる。
【0058】
本実施形態に係る自車移動推定装置10は、ある程度遠い位置にある特徴点、あるいは地面の特徴点の背景ベクトルのみを用いて自車移動パラメータを算出する。このため、たとえば画面上に大きな物体がある場合や、画面内を大きな物体が横切る場合でも、これらの物体の動きベクトルは背景ベクトルとしては検出されず、正確に自車移動パラメータを算出することができる。また、背景ベクトルのみを計算に用いるため、非常に計算が軽いとともに、画像以外の入力情報を必要としない。
【0059】
続いて、画像から検出された動きベクトルを背景ベクトルとして検出するか否かの判定方法について、より詳細に説明する。
【0060】
図6は、図5のS15で背景ベクトル検出部23により実行される背景ベクトル判定処理の手順の一例を示すサブルーチンフローチャートである。
【0061】
背景ベクトル検出部23は、画像から検出された動きベクトルと自車移動ベクトルとの比較により、近い動きベクトルであれば次のフレームで使用する自車移動パラメータを計算するための背景ベクトルとする。判断する順番としては、たとえば、角度で比較し、差で比較し、比で比較する。なお、処理の開始時は通常止まったところから始まるが、そうでない場合がある。そのため少しの時間の間は、背景ベクトルとなりやすいように条件を変更してもよいし、物体を検出しないようにしても良い。
【0062】
ステップS31において、背景ベクトル検出部23は、画像から検出された動きベクトルと自車移動ベクトルの角度差が、記憶部13にあらかじめ記憶された角度閾値ThA以下であるか否かを判定する。
【0063】
角度の比較の方法は、検出された動きベクトルのままでの角度比較と、回転成分をキャンセルしたベクトルでの角度比較を行う。つまり、下記の2通りのベクトル角度比較を行う。
(pu、pv)と(tu + wu、tv + wv)
(pu - wu、pv - wv)と(tu、tv)
【0064】
FOE付近では、自車移動パラメータの誤差によってベクトルの向きがずれるため、どちらの角度比較でも角度がずれているときに背景ベクトルとはせず物体のベクトルと判定する(ステップS31のNO)。この結果、背景ベクトルとしてふさわしくない動きベクトルを検出してしまうことを防ぐことができる。また、動きベクトルの検出精度が高い場合には、どちらかの角度がずれているときのみ物体ベクトルとして検出してもよい。
【0065】
なお、動きベクトルが小さいと、ノイズの影響が大きくなり動きベクトルの向きがばらばらになってしまう。一方、ある程度大きければ、向きに関してはノイズの影響を受けにくくなる。したがって、角度の比較は、動きベクトルの大きさが所定の大きさ以上の場合のみ行うようにするとよい。
【0066】
角度閾値ThAより大きな角度差がある場合は、ステップS32に進み、物体ベクトルと判定して図5のステップS17に進む。一方、角度差が角度閾値ThA以下である場合は、ステップS33に進む。
【0067】
次に、ステップS33において、背景ベクトル検出部23は、画像から検出された動きベクトルと自車移動ベクトルの大きさの差が、記憶部13にあらかじめ記憶された差閾値ThS以下であるか否かを判定する。
【0068】
大きさの比較においても、回転成分をキャンセルした状態で比較しても良い。また、大きさの差の比較においては、計算を簡略化するために、u(x方向のベクトル)かv(y方向のベクトル)の自車移動ベクトルの大きいほうのみで計算しても良い。
【0069】
大きさの差が閾値ThS以下である場合は、ステップS34に進みこの動きベクトルを背景ベクトルと判定して図5のステップS16に進む。一方、大きさの差が差閾値ThSより大きい場合は、ステップS35に進み比の判定を行う。
【0070】
なお、背景ベクトルの誤検出を防ぐよう、差閾値ThSは次のように重み付けするとよい。
【0071】
まず、自車移動パラメータが大きい場合、振動などにより自車移動パラメータの変化量が大きくなる。このため、自車移動パラメータが大きい場合には、差閾値を大きくする。このとき最大値制限をしてもよい。
s1 = ThS・|R|・|T| / (|Rs|・|Ts|)
(s1がThSより小さい場合はs1 = ThS)
|R|:自車移動パラメータの回転成分の大きさ
|T|:自車移動パラメータの並進成分の大きさ
|Rs|:大きいとする自車移動パラメータの回転成分の大きさ
|Ts|:大きいとする自車移動パラメータの並進成分の大きさ
【0072】
また、画面の中心より外側になるにしたがい、検出した動きベクトルまでの距離が遠くなる。このため、ノイズの影響がその分増幅されやすくなり、動きベクトルの検出精度が悪くなることになる。したがって、距離が遠いほど差閾値を大きくする。
s2 = s1・(√(f・f + x・x + y・y)) / f
【0073】
さらに、画面の下になるに従い路面となり、自車に近づく。このため、zの値が小さくなり、自車移動ベクトルの影響が大きくなる。したがって、自車移動パラメータがずれていた場合の影響度が大きくなる。そこで、zが近いほど差閾値を大きくする。
s3 = s2・Zmax / z
【0074】
また、この乗算分をさらに乗じて、より誤差があっても背景ベクトルとなりやすくしてもよい。
【0075】
角度の比較で物体ベクトルとならず、かつ大きさの差の比較で背景ベクトルとならなかった動きベクトルについて、ステップS35において、背景ベクトル検出部23は、画像から検出された動きベクトルと自車移動ベクトルの比が、記憶部13にあらかじめ記憶された比閾値ThR以下であるか否かを判定する。比の1からの差が比閾値ThR以下である場合は、ステップS34に進みこの動きベクトルを背景ベクトルと判定して図5のステップS16に進む。一方、比の1からの差が比閾値ThRより大きい場合はステップS32に進み、物体ベクトルと判定して図5のステップS17に進む。
【0076】
なお、比の比較においても、回転成分をキャンセルした状態で比較しても良い。たとえば比が1に近ければ背景とみなし、そうでなければ背景とはしない。また、計算を簡略化するために、u(x方向のベクトル)かv(y方向のベクトル)の自車移動ベクトルの大きいほうのみで計算しても良い。
【0077】
次に、カメラ11が左右の領域を撮影可能に構成される場合について説明する。
【0078】
魚眼レンズを用いる場合など、カメラ11が左右の領域を撮影可能である場合、正面だけではなく、左右にも画像を用意しておいてもよい。このとき、自車移動パラメータを左右の方向に展開できるように、画像を真横に設置するか、斜めなどでの画像で取得したベクトルを真横の平面に射影変換させる。
【0079】
例えば左画像の場合、回転パラメータRl(Rlx、Rly、Rlz)は正面の回転パラメータを使用して次のように書ける。
Rlx = Rz
Rly = Ry
Rlz = -Rx
【0080】
同様に、左画像の並進パラメータTl(Tlx、Tly、Tlz)は正面の並進パラメータを使用して次のように書ける。
Tlx = Tz
Tly = Ty
Tlz = -Tx
【0081】
となる。右画像の場合、回転パラメータをRr(Rrx、Rry、Rrz)、並進パラメータをTr(Trx、Try、Trz)とすると、正面のパラメータより下記のようになる。
Rrx = -Rz
Rry = Ry
Rrz = Rx
Trx = -Tz
Try = Ty
Trz = Tx
【0082】
求めたい左側のzは、正面画像のFOEyの位置より、画面の右側を+xとすると、次のように表せる。
z = (Dgnd・f / cos(θgnd)) / (y - FOEy・x / f) (zはZmaxで制限)
θgnd = atan(FOEy / f)
【0083】
同様に画面の右側を+xとすると、右側のzは次のように表せる。
z = (Dgnd・f / cos(θgnd)) / (y + FOEy・x / f) (zはZmaxで制限)
θgnd = atan(FOEy / f)
【0084】
以上のパラメータを使用して、正面の画像と同様の処理を行い、背景ベクトルを検出することができる。また、左右画像から検出した背景ベクトルは、自車移動パラメータの計算に用いてもよい。また、回転成分の計算は並進成分の計算と見分けがつきやすい正面のみとしても良い。それぞれの方向によって得られた自車移動パラメータは、最後に正面の方向のパラメータとして一つにする。その場合、平均でもいいし、ベクトル数で重み付けしても良い。
【0085】
続いて、図5のステップS20で自車移動算出部24により実行される、背景ベクトルを用いた自車移動パラメータの算出方法の詳細について説明する。
【0086】
まず、自車移動パラメータの回転成分Rを計算する。得られた背景ベクトルを(x1、y1、u1、v1)・・・(xn、yn、un、vn)=(x座標位置、y座標位置、x方向ベクトル、y 方向ベクトル)とした場合、下記の計算式の最小2乗解を求めればよい。ただし、nは1以上の整数を表す。
【0087】
【数1】

【0088】
次に上記の公知の回転成分計算により得られたRを使用し、並進成分Tの計算を行う。得られた背景ベクトルを(x1、y1、z1、u1、v1)・・・(xn、yn、zn、un、vn)=(x座標位置、y座標位置、z座標位置、x方向ベクトル、y方向ベクトル)とした場合、下記の計算式の最小2乗解を求めればよい。ただしnは1以上の整数を表す。
【0089】
【数2】

【0090】
次に、上記の公知の回転成分計算により得られたRを使用し、収束点FOE(FOEx、FOEy)の計算を行う。得られた背景ベクトルを(x1、y1、u1、v1)・・・(xn、yn、un、vn) = (x座標位置、y座標位置、x方向ベクトル、y 方向ベクトル)とした場合、下記の計算式の最小2乗解を求めればよい。ただしnは1以上の整数を表す。
【0091】
【数3】

【0092】
さらに、以下の条件を加えることにより、上記の公知の計算を単純化することができる。なお、以下の条件は、得られる背景ベクトルが少ない場合に使用してもよい。
FOEx = 0
FOEy = 一定(キャリブレーション必須)
Rx = 0
Ry = 可変(計算する対象)
Rz = (-FOEy / f)・Ry
Tx = 0
Ty = (FOEy / f)・Tz
Tz = 可変(計算する対象)
【0093】
FOEyに値を持たせるのは、ある程度地面方向にし、地面側の解像度を上げて、障害物を検出しやすくするためである。計算を単純化するために、FOEy = −f / 2やFOEy = −fとしてもよい。
【0094】
また、FOExが0ではない場合、下記のようにして計算しても良い。
Rx = (-FOEx / f)・Ry
Tx = (FOEx / f)・Tz
【0095】
上記の計算式で得られる結果は、ばらつきが大きい。そのため、自車が動いているほど自車パラメータの変化量が大きいと判断し、得られたベクトル(u、v)の大きさの平均に定数を乗じてベクトルの制限を入れてもよい。このとき画面の端ほど遠いためベクトルが大きくなることを考慮し、f/(√(f・f + x・x + y・y))をかけてもよい。また、地面はベクトルが大きくなることを考慮し、ベクトルの大きさにz/Zmaxをかけても良い。また、回転成分をキャンセルした(u−wu、v−wv)を使用してもよい。以上をすべて考慮した場合のベクトルの大きさの平均を求めると下記のようになる。
Ans = (1 / n)・Σ((√(X・X + Y・Y))・(f / F)・(z / Zmax))
X = u - wu
Y = v - wv
F = √(f・f + x・x + y・y)
wu = -(x・y / f)・Rx + ((f・f + x・x) / f)・Ry - y・Rz
wv = -((f・f + y・y) / f)・Rx + (x・y / f)・Ry + x・Rz
上記により得られた結果によっては、ほとんど動かない場合や動きすぎる場合がある。このため、最大最小制限を入れる。次に、それぞれの自車移動パラメータに固有の比例定数をかけて、それを制限とする。また、最初にキャリブレーションするなどして初期値がある程度信用できる場合は、初期値側(止まっている側)への変化量の制限を、2倍ゆるくするなどで緩和して、初期値側へ行きやすくしてもよい。
【0096】
次に、フレーム画像を複数領域に分割して背景ベクトルを検出する方法について説明する。
【0097】
図7(a)は、魚眼カメラの左1/4視野および右1/4視野をyz平面に平行に配置された左画面42および右画面43にそれぞれ射影する例を示す説明図であり、(b)は、魚眼カメラの左1/4視野および右1/4視野をy軸に並行かつyz平面に対して所定の傾きを持つよう配置された左画面42および右画面43にそれぞれ投影する例を示す説明図であり、(c)は、魚眼カメラの左1/4視野および右1/4視野をそれぞれxz平面に平行に配置された左画面42および右画面43にそれぞれ射影する例を示す説明図である。図7(a)〜(c)のいずれにおいても、魚眼カメラの正面左1/4視野および正面右1/4視野は正面41に投影されるものとする。
【0098】
また、図8は、図7(a)に示す場合における動きベクトルの算出方法を説明するための図である。
【0099】
図7に示すように、180度見渡せる魚眼カメラのようなカメラを用いる場合、図8に示すように画像を正面41、左画面42および右画面43に3分割し、各面において背景ベクトルを取得してもよい。このとき水平線あたりのみとしてもよい。また、路面でのベクトルを使用するのであれば(z / Zmax)で乗算し正規化しておく。また、違う画面方向や円筒状の画像や球状の画像を平面に引き伸ばした画像で得られたベクトルを射影変換などして正面と真横の面でのベクトルにしてもよい。このときFOEは正面画像の中心とし水平線は真横になるように画像またはベクトルを射影変換する。得られたベクトルを横方向のみとし、画面の横ほどベクトルが大きくなるので小さくし、地面ほどベクトルが大きくなるので小さくする。以上で得られたベクトルを45度ごとの4つの領域に分けて平均化する。
【0100】
たとえば図7(a)に示す場合、得られるベクトルをそれぞれ、正面左がUfl、正面右がUfr、左横がUsl、右横がUsrとし、得られる角度をそれぞれ正面左がθfl、正面右がθfr、左横がθsl、右横がθsrするとき、まず、画面の右を+xとすると、正面画像に対しては次式が成り立つ。
【0101】
Ufl = (1 / n)・Σ(u・(f / √(f・f + x・x))・(z / Zmax))
θfl = (1 / n)・Σacos(x / f) (= 90°〜135°)
Ufr = (1 / n)・Σ(u・(f / √(f・f + x・x))・(z / Zmax))
θfr = (1 / n)・Σacos(x / f) (= 45°〜90°)
【0102】
また、画面の右を+xとすると、左画面に対しては次式が成り立つ。
Usl = (1 / n)・Σ(u・(f / √(f・f + x・x))・(z / Zmax))
θsl = 180°- (1 / n)・Σasin(x / f) (= 135°〜180°)
【0103】
また、画面の右を+xとすると、右画面に対しては次式が成り立つ。
Usr = (1 / n)・Σ(u・(f / √(f・f + x・x))・(z / Zmax))
θsr = -(1 / n)・Σasin(x / f) (= 0°〜45°)
【0104】
なお、ここでは図7(a)で示す場合について、すなわち画像面を真正面と真横とする場合について計算しているが、図7(b)や(c)などの違う向きで画像取得しても、半円上でのベクトルの長さとする計算にすればよい。また、円柱状を平面に引き伸ばした画像でベクトルを取得した場合にはx方向が角度となるため、距離での正規化(f / √(f・f + x・x))はせず、角度もそのまま平均とすればよい。
【0105】
得られた結果は大雑把なベクトルであるため、y軸回転成分Ryとz方向成分Tzのみを計算する。4つのベクトルは円上のベクトルとなる。そのベクトルをRyとTzのみで構成されていると仮定しているので、回転成分をUroとすると下記の式が得られる。
f・Tz / Zmax = -(Ufl - Uro) / cos(θfl)
f・Tz / Zmax = -(Ufr - Uro) / cos(θfr)
f・Tz / Zmax = -(Usl - Uro) / cos(θsl)
f・Tz / Zmax = -(Usr - Uro) / cos(θsr)
Ry = Uro / f
【0106】
上記より2点を選べばRyとTzが連立方程式により導き出される。
【0107】
上記の計算精度が上がるように、並進成分が小さく見えるUflとUfrによりRyを導き、そのRyを使用して、並進成分の大きくなるUslとUsrにより導き出したTzを平均化してTzとしても良い。
【0108】
また、背景ベクトルに近い物体のベクトルを背景ベクトルとしてしまっている可能性を考慮し、4つのベクトルをすべて使用して計算しても良い。その場合、UflとUfrにより導出したRyと、UslとUsrにより導出したRyを平均化したものをRyとする。そして、それぞれの計算式にRyを代入しそれぞれのTzを導き出し、平均化したものをTzとする。または、最小2乗解を導き出してもよい。
【0109】
また、2点による解は6通りで導き出すことができるが、導き出した解の中間の値(たとえば真中2点の平均)をRyとTzとしてもよい。この場合、背景ベクトルに近い物体ベクトルを背景ベクトルとしてしまっている場合にも、ある程度無視することができるようになる。
【0110】
また、計算を単純化するために、ベクトル平均の位置を下記のように4分割した中間の位置とし、計算で使用する位置としてもよい。
θsr = 45°/ 2
θfr =θsr + 45°
θfl =θfr + 45°
θsl =θfl + 45°
【0111】
上記のように単純化した角度だとすると、ベクトルがRyとTzのみで構成されていると仮定しているため、左右対称の位置にあるベクトルを平均するとRy成分のみとなる。また、Ry成分をキャンセルすると左右対称の位置にあるベクトルは極性が逆で同じ大きさになる。
【0112】
Ryを計算するためには並進成分の影響を受けにくい正面2つのベクトルの平均((Ufl+Ufr)/2)を使用しても良い。また、物体のベクトルに結果がひきずられるのを防ぐために、4つのベクトルすべての平均((Ufl+Ufr+Usl+Usr)/4)を使用してもよい。また、たとえば正面でベクトルが得られなかった場合には、横の2つのベクトルの平均((Usl+Usr)/2)を用いても良い。得られた平均値Uroは回転成分のみであるとみなし、
Ry = Uro / f
【0113】
となる。次にTzを計算する。4箇所のベクトルの回転成分をキャンセルすると、
Ufl = Ufl - Uro
Ufr = Ufr - Uro
Usl = Usl - Uro
Usr = Usr - Uro
【0114】
が得られる。得られた結果は理想的には並進成分のみとなり、θ=22.5°とすると次のようになる。
Ufl ≒ -Ufr
Usl ≒ -Usr
Usl / cos(θ) ≒ Ufl / cos(90°-θ)
→Usl ≒ Ufl / tan(θ)
Usl / cos(θ) = f・Tz / Zmax
→Tz = Zmax・Usl / (f・cos(θ))
【0115】
よって並進成分は大きくなりやすいUslとUsrを使用し、
Tz = Zmax・((Usl-Usr)/2) / (f・cos(θ))
【0116】
としても良いし、4つのベクトルのすべてを使用し、
Tz = Zmax・((Usl-Usr+(Ufl-Ufr)/tan(θ))/4) / (f・cos(θ))
【0117】
としても良いし、Uslだけを使用して
Tz = Zmax・Usl / (f・cos(θ))
【0118】
としても良いし、Usrだけを使用して
Tz = -Zmax・Usr / (f・cos(θ))
【0119】
としても良い。また、ベクトルが2箇所からしか得られなかった場合には、回転成分をUroとすると、
Ufl - Uro ≒ -(Ufr - Uro)
Usl - Uro ≒ -(Usr - Uro)
Usl - Uro ≒ (Ufl - Uro) / tan(θ)
【0120】
より、Uroを連立方程式で計算して導き出し、RyとTzを計算しても良い。
【0121】
以上により得られたRyとTzの付近になるように、自車移動パラメータに制限を入れる。また、Rx、Rz、Tx、Tyも下記の式により導かれた値で、その付近になるように自車移動パラメータに制限を入れる。
Rx = (-FOEx / f)・Ry
Rz = (-FOEy / f)・Ry
Tx = (FOEx / f)・Tz
Ty = (FOEy / f)・Tz
【0122】
また、水平線を真横ではない状態から真横になるように変換しているのであれば、その分逆回転させる。
【0123】
なお、ここで得られたパラメータを制限としては使用せずに、そのまま自車移動パラメータとして使用してもよい。また、4分割したが、8分割などもっと細かくしても良いし、2分割や3分割に荒くしても良い。また、45度ごとの領域ではなく、30度などの別の角度としても良いし、領域ごとに角度を変えても良い。この場合、左右で同じ角度領域であることが望ましい。
【0124】
次に、車両の挙動上の制約による制限について説明する。
【0125】
車の挙動には制約があるため、この制約に応じた制限を加えてもよい。たとえば、滑りがない場合、回転するためにはタイヤが前後についているためある程度並進する必要があるという制限がある。これらの制限1−9を以下に例示する。また、パラメータが異常値の可能性もあるため、制限の変化量に制限を入れても良い。
【0126】
制限1は、FOEyのずれ分RyがあればRzがある、という制限である。
Rz = (-FOEy / f)・Ry
【0127】
同様に下記のように、変数の位置を変えたパラメータに関しても制限を入れてもよい。
Ry = Rz / (-FOEy / f)
FOEy = -f・Rz / Ry
【0128】
制限2は、FOEyのずれ分TzがあればTyがある、という制限である。
Ty = (FOEy / f)・Tz
【0129】
同様に、変数の位置を変えたパラメータに関しても制限を入れてもよい。
【0130】
制限3は、FOExのずれ分RyがあればRxがある、という制限である。
Rx = (-FOEx / f)・Ry
【0131】
同様に、変数の位置を変えたパラメータに関しても制限を入れてもよい。
【0132】
制限4は、FOExのずれ分TzがあればTxがある、という制限である。
Tx = (FOEx / f)・Tz
【0133】
同様に、変数の位置を変えたパラメータに関しても制限を入れてもよい。
【0134】
制限5は、RyがあればTzがある、という制限である。
画面方向へ前進中 Tz = -A・|Ry|
画面方向から後進中 Tz = A・|Ry|
【0135】
Aは最大に陀角を持たせたときの比例定数である。Tzの大きさがここでの値より小さい場合の制限とする。前進か後進かはCAN(Communication Area Network)による情報や、Tzの符号が変わらない方向とすればよい。
【0136】
制限6は、TxはTzが必要である、という制限である。
B = A・|Tz|
【0137】
Aをある程度小さい値にしておいて、(FOEx/f)・Tz±Bの間になるようにTxを制限する。
【0138】
制限7は、TyはTzが必要である、という制限である。
B = A・|Tz|
【0139】
Aをある程度小さい値にしておいて、(FOEy/f)・Tz±Bの間になるようにTyを制限する。
【0140】
制限8は、逆方向への進行は少し許容されるが大きい値とはならない、という制限である。例えば、自車が後進する場合にのみバックカメラの撮像画像を表示装置19に表示しない場合などでも、坂などでブレーキを踏まなかった場合では、画面への前進方向のみの極性のTzとならない場合がある。だが、大きい値とはならない。そのため逆の極性となった場合の大きさに制限を入れる。
画面方向へ前進中 Tz < A
画面方向から後進中 Tz > -A
Aは小さい正の値となる。
【0141】
制限9は、Ry、Tzがある閾値より小さい場合には、停車していると判定する、という制限である。
Rx = 0
Ry = 0
Rz = 0
Tz = A
Tx = (FOEx / f)・Tz
Ty = (FOEy / f)・Tz
【0142】
Aは小さい値にするが、Tzは画面方向へ前進中はマイナス、画面方向から後進中はプラスにする。前進か後進かはCANによる情報や、Tzの符号が変わらない方向とすればよい。また、ベクトルの角度比較をする場合を考慮し、パラメータを0とはせず小さい値を入れる。
【0143】
次に、路面ベクトルによる制限について説明する。
【0144】
前進している場合でも背景が遠すぎる場合には背景がほとんど動かない一方で、z座標のリミットを入れているためにパラメータが大きくずれてしまう。このため、路面に描かれた線などが物体と誤判定されたり、路面にある物体が路面の模様である背景ベクトルと誤判定されたりする場合がある。
【0145】
この誤判定を回避するために、まず、物体は路面と接地していて、接地位置ではベクトルが得られるという前提にする。そして画面の下から動きベクトルを検出し、水平線より下の指定した角度以下である程度の大きさがあり背景ベクトルとなったベクトル数が指定した数となったら、後述する計算で自車移動パラメータを補正する。背景ベクトルの誤検出を考慮し、自車移動パラメータの変化量に制限を入れる。変化量の制限内で補正しきれた場合には、補正後に検出される動きベクトルを背景ベクトルと判定する際の基準を厳しくして、物体として検出しやすくさせる。具体的には、たとえば差閾値ThSをS1−S3へ大きく重み付けする処理を実行しない、あるいはその影響度を小さくするとよい。
【0146】
また、左右の画像より得られたベクトルを使用して画像を補正してもよい。その場合ベクトルを射影変換させる。左右の画像を使用することにより、正面画像では見えない真横の画像を使用することができる。また、逆に下記の式を左右の画像での自車移動パラメータにして計算し、正面の画像での自車移動パラメータに変換してもよい。
【0147】
補正する処理の前提として、自車の挙動上補正するパラメータはRy、Tzのみとし、Rx、Rz、Tx、Tyは、
Rx = (-FOEx / f)・Ry
Rz = (-FOEy / f)・Ry
Tx = (FOEx / f)・Tz
Ty = (FOEy / f)・Tz
【0148】
で導き出すことにする。そのため導き出したいパラメータはΔRyとΔTzとなる。
【0149】
これらのパラメータΔRyおよびΔTzを連立方程式で解く場合、公知の式である、
wu = -(x・y / f)・Rx + ((f・f + x・x) / f)・Ry - y・Rz
wv = -((f・f + y・y) / f)・Rx + (x・y / f )・Ry + x・Rz
tu = (f・Tx - x・Tz) / z
tv = (f・Ty - y・Tz) / z
【0150】
より、
Axr = -FOEy / f
Axt = FOEy / f
ΔRx = Axr・ΔRy
ΔTx = Axt・ΔTz
Ayr = -FOEy / f
Ayt = FOEy / f
ΔRz = Ayr・ΔRy
ΔTy = Ayt・ΔTz
【0151】
を代入すると、
Δwu = (-(x・y / f) ・Axr + (f・f + x・x) / f - y・Ayr)・ΔRy
Δwv = (-((f・f + y・y) / f) ・Axr + x・y / f + x・Ayr)・ΔRy
Δtu = (f・Axt - x)・ΔTz / z
Δtv = (f・Ayt - y)・ΔTz / z
【0152】
正しい背景としているため、下記の条件が満たされる。
u - (wu + Δwu) = tu + Δtu
v - (wv + Δwv) = tv + Δtv
【0153】
以上の条件より、連立方程式でΔRyとΔTzが導かれる。指定数分のベクトルで同じ処理を行い、得られたΔRyとΔTzを平均化するなどする。得られたΔRyとΔTzによりΔRxとΔRzとΔTxとΔTyも作り出し、補正する。
【0154】
上記の連立方程式による計算は煩雑であり重い。そこで、より簡単な処理となるよう、縦成分は並進成分、横成分は回転成分とみなしてパラメータΔRyおよびΔTzを導いてもよい。すなわち、自車に近い地面の検出されるベクトルは、縦成分がほぼ並進成分(Ty,Tz)となるため、並進成分の変化量ΔRyを無視し、下記のような補正量になる。
v - wv = tv
→v - (-((f・f + y・y) / f) ・Axr + x・y / f + x・Ayr)・Ry= (f・Ayt - y)・(Tz + ΔTz) / z
→ΔTz = (v - (-((f・f + y・y) / f) ・Axr + x・y / f + x・Ayr)・Ry)・z / (f・Ayt - y) - Tz
【0155】
以上により得られたΔTzより横成分を計算してΔRyを導くと、
u - wu = tu
→u - (-(x・y / f) ・Axr + (f・f + x・x) / f - y・Ayr)・(Ry + ΔRy) = (f・Axt - x)・(Tz + ΔTz) / z
→ΔRy = (u - (f・Axt - x)・(Tz + ΔTz) / z) / (-(x・y / f) ・Axr + (f・f + x・x) / f - y・Ayr) - Ry
【0156】
となる。指定数分のベクトルで同じ処理を行い、得られたΔRyとΔTzを平均化するなどする。得られたΔRyとΔTzによりΔRxとΔRzとΔTxとΔTyも作り出し、補正する。
【0157】
なお、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【0158】
たとえば、別の場所に取り付けられた複数のカメラによって得られた複数の画像を用いて、並列に処理を行ってもよい。この場合、物体に周りを囲まれた場合であっても、どこかのカメラによって自車移動パラメータを特定することができる可能性が高くなる。
【0159】
また、本発明の実施形態では、フローチャートの各ステップは、記載された順序に沿って時系列的に行われる処理の例を示したが、必ずしも時系列的に処理されなくとも、並列的あるいは個別実行される処理をも含むものである。
【符号の説明】
【0160】
10 自車移動推定装置
11 カメラ
12 主制御部
13 記憶部
21 平面画像生成部
22 動きベクトル検出部
23 背景ベクトル検出部
24 自車移動算出部
25 物体ベクトル処理部

【特許請求の範囲】
【請求項1】
車両に設けられたカメラが所定のフレーム周期で前記車両の周囲を撮像するステップと、
前記カメラにより撮像された複数の画像間の動きベクトルを検出するステップと、
検出された動きベクトルから自車の移動パラメータを求めるステップと、
前記自車の移動パラメータを求める際に利用された前記複数の画像の撮像の後に前記カメラにより撮像された画像を用いて新たに動きベクトルを検出するステップと、
前記新たに検出された動きベクトルのうち、前記自車の移動パラメータに対応する自車の移動ベクトルとの比較で所定の閾値以内であるものを背景ベクトルとして検出するステップと、
この背景ベクトルを用いて新たに自車の移動パラメータを求めるステップと、
を有する自車移動推定方法。
【請求項2】
前記新たに動きベクトルを検出するステップは、
前記車両から進行方向に所定の距離以上離れた位置にある特徴点もしくは路面上にある特徴点の動きベクトルを検出するステップである、
請求項1記載の自車移動推定方法。
【請求項3】
前記車両の周囲を撮像するステップは、
前記車両に設けられた魚眼カメラが所定のフレーム周期で前記車両の正面画像、左画像および右画像を含む魚眼画像を撮像するステップであり、
前記検出された動きベクトルから自車の移動パラメータを求めるステップは、
前記魚眼画像に含まれる前記正面画像、左画像および右画像のそれぞれから前記自車の移動パラメータを求めるステップであり、
前記背景ベクトルとして検出するステップは、
前記正面画像、左画像および右画像のそれぞれから前記背景ベクトルを検出するステップであり、
前記新たに自車の移動パラメータを求めるステップは、
前記正面画像、左画像および右画像のそれぞれから検出された前記背景ベクトルから自車の移動パラメータを求め、この前記正面画像、左画像および前記右画像のそれぞれから求められた自車の移動パラメータにもとづいて新たに自車の移動パラメータを求めるステップである、
請求項1または2に記載の自車移動推定方法。
【請求項4】
前記新たに自車の移動パラメータを求めるステップは、
前記背景ベクトルのうち、全ての前記背景ベクトルの平均から所定の範囲内にある背景ベクトルを用いて新たに自車の移動パラメータを求めるステップである、
請求項1ないし3のいずれか1項に記載の自車移動推定方法。
【請求項5】
前記車両の周囲の画像を複数に分割し、分割領域ごとに前記背景ベクトルを検出するステップと、
前記分割領域ごとに検出された前記背景ベクトルにもとづいて前記並進成分の前記車両の進行方向成分および前記回転成分の路面法線方向軸周り成分を求める仮パラメータ算出ステップと、
前記並進成分の前記車両の進行方向成分および前記回転成分の路面法線方向軸周り成分の値が前記仮パラメータ算出ステップで求められた値からそれぞれ所定の値以内となるよう、前記新たに求められた自車の移動パラメータを制限するステップと、
をさらに有する、
請求項1ないし4のいずれか1項に記載の自車移動推定方法。
【請求項6】
前記車両の挙動上の制限を用いて前記新たに求められた自車の移動パラメータを制限するステップ、
をさらに有する、
請求項1ないし5のいずれか1項に記載の自車移動推定方法。
【請求項7】
前記車両の周囲の画像のうち下側の画像領域に含まれる前記車両近傍の画像から車両近傍路面の動きベクトルを取得するステップと、
前記車両近傍路面の動きベクトルを用いて前記新たに求められた自車の移動パラメータを補正するステップと、
をさらに有する、
請求項1ないし6のいずれか1項に記載の自車移動推定方法。
【請求項8】
前記車両近傍路面の動きベクトルを用いて前記新たに求められた自車の移動パラメータを補正するステップを実行した後に新たに検出された動きベクトルのうち、前記補正後の自車の移動パラメータに対応する自車の移動ベクトルとの比較で前記所定の閾値よりも小さい差以内であるものを背景ベクトルとして検出するステップ、
をさらに有する、
請求項7記載の自車移動推定方法。
【請求項9】
前記車両の複数個所に設けられた複数のカメラのそれぞれにより、互いに異なる前記車両の周囲画像が撮像されるステップ、
をさらに有し、
前記複数のカメラのそれぞれに撮像された画像にもとづいて得られる複数の自車の移動パラメータの1つを前記新たに求められた自車の移動パラメータとする、
請求項1ないし8のいずれか1項に記載の自車移動推定方法。
【請求項10】
コンピュータに、
車両に設けられたカメラが所定のフレーム周期で撮像した前記車両の周囲の画像を取得するステップと、
前記カメラにより撮像された複数の画像間の動きベクトルを検出するステップと、
検出された動きベクトルから自車の移動パラメータを求めるステップと、
前記自車の移動パラメータを求める際に利用された前記複数の画像の撮像後に前記カメラにより撮像された画像を用いて新たに動きベクトルを検出するステップと、
前記新たに検出された動きベクトルのうち、前記自車の移動パラメータに対応する自車の移動ベクトルとの比較で所定の閾値以内であるものを背景ベクトルとして検出するステップと、
この背景ベクトルを用いて新たに自車の移動パラメータを求めるステップと、
を実行させるための自車移動推定プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate