(57)【要約】【課題】自車両が旋回した場合であっても、移動物の検出精度の向上を図ることができる。【解決手段】  車外環境認識装置１２０は、画像データを取得する画像データ取得部と、部分画像を切り出す画像切出部１６０と、フローベクトルを導出するフローベクトル導出部１６２と、移動状態を取得する移動状態取得部１６４と、広角レンズから相異なる２つの距離にある２つの静止物を仮定し、移動状態に基づいて２つの静止物のフローベクトルを推定し、１の補正フローベクトルを生成する補正フローベクトル生成部１６６と、導出されたフローベクトルから補正フローベクトルを減算するフローベクトル減算部１６８と、画像データの水平方向中央における判定基準線２０４に基づき、減算されたフローベクトルのうち移動物を示すフローベクトルをグループ化するグループ化部１７０とを備える。【選択図】図６
2014044521.tif 000002
【特許請求の範囲】
【請求項１】
広角レンズを通じて車外環境を撮像した画像データを取得する画像データ取得部と、
前記画像データに基づく画像から予め定められた位置および大きさの部分画像を切り出す画像切出部と、
前記部分画像の任意の部位におけるフローベクトルを導出するフローベクトル導出部と、
前記広角レンズの移動状態を取得する移動状態取得部と、
前記広角レンズから相異なる２つの距離にある２つの静止物を仮定し、前記移動状態に基づいて該２つの静止物のフローベクトルを推定し、１の補正フローベクトルを生成する補正フローベクトル生成部と、
導出されたフローベクトルから前記補正フローベクトルを減算するフローベクトル減算部と、
前記画像データの水平方向中央における判定基準線に基づき、減算された前記フローベクトルのうち移動物を示すフローベクトルをグループ化するグループ化部と、
を備えることを特徴とする車外環境認識装置。
【請求項２】
前記補正フローベクトル生成部は、前記推定した２つのフローベクトルのうち、相対的に、前記判定基準線に向かうスカラー量が大きい、または、前記判定基準線と反対方向に向かうスカラー量が小さいフローベクトルを補正フローベクトルとすることを特徴とする請求項１に記載の車外環境認識装置。
【請求項３】
前記補正フローベクトル生成部は、前記推定した２つのフローベクトルのうち、前記判定基準線の左側領域では、右向き最長または左向き最短のフローベクトルを補正フローベクトルとし、前記判定基準線の右側領域では、左向き最長または右向き最短のフローベクトルを補正フローベクトルとすることを特徴とする請求項２に記載の車外環境認識装置。
【請求項４】
前記移動状態取得部は、前記広角レンズの移動速度および角速度を取得し、
前記補正フローベクトル生成部は、前記移動速度および角速度に基づいてフローベクトルを推定することを特徴とする請求項１から３のいずれか１項に記載の車外環境認識装置。
【請求項５】
広角レンズを通じて車外環境を撮像した画像データを取得し、
前記画像データに基づく画像から予め定められた位置および大きさの部分画像を切り出し、
前記部分画像の任意の部位におけるフローベクトルを導出し、
前記広角レンズの移動状態を取得し、
前記広角レンズから相異なる２つの距離にある２つの静止物を仮定し、前記移動状態に基づいて該２つの静止物のフローベクトルを推定し、１の補正フローベクトルを生成し、
導出されたフローベクトルから前記補正フローベクトルを減算し、
前記画像データの水平方向中央における判定基準線に基づき、減算された前記フローベクトルのうち移動物を示すフローベクトルをグループ化することを特徴とする車外環境認識方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自車両外の環境を認識する車外環境認識装置および車外環境認識方法に関する。
【背景技術】
【０００２】
従来、自車両の前方に広角（広画角）カメラを搭載し、かかる広角カメラで撮像した自車両外の環境映像を、車室内のディスプレイに表示して運転者の目視確認を補助する技術が知られている。このような技術では、例えば、車両内の制御情報を通じて自車両が一時的に停止したことを検出し、モニタ装置の表示を広角カメラで撮像した環境映像に自動的に切り換える等の制御が行われている。
【０００３】
このような広角カメラを通じた環境映像から、自車両の前方に位置する車両や障害物といった物を検出するために、オプティカルフロー等の画像処理技術が検討されている。ここで、オプティカルフローは、画像上の２次元速度ベクトル場、すなわち画像上の移動物の移動に伴う速度場で表される。このような技術では、例えば、所定周期で撮像された時間方向に連続する２枚の画像間において、同一の部位として認識可能な点を特徴点として設定し、この特徴点の移動をベクトル（以下、フローベクトルという。）として算出する。そして撮像した画像内の全領域において、このフローベクトルを算出することで、例えば、自車両が停止した状態におけるフローベクトルの有無のみによって、画像内の移動物の位置および移動方向等の情報を検出することができる。
【０００４】
オプティカルフローでは上記のように自車両が停止している状態において移動物の接近を好適に検出することができるが、走行中において移動物を検出する技術も検討されている。例えば、走行中において、広角カメラで撮像した環境映像からフローベクトルを生成し、それぞれを複数の群に分類し、自車両の移動により生じる見かけのフローベクトルを差し引いて、画像中央に向かう方向のフローベクトル群を移動物として特定する技術が知られている（例えば、特許文献１）。
【０００５】
ただし、オプティカルフローでは、自車両が旋回すると、撮像範囲中の静止物にも中央に向かう方向のフローベクトルが生じてしまい、静止物を移動物と誤判定してしまうことがある。そこで、自車両が旋回する際には、旋回の内側に相当する領域における移動物の判定を行わないことで、誤判定を回避する技術が開示されている（例えば、特許文献２）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第３２３９５２１号
【特許文献２】特許第４１９３７４０号
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述したように、特許文献１の技術では、自車両が旋回したときに、静止物を移動物と誤判定してしまう場合がある。また、特許文献２の技術では、そのような領域を予め検出の対象外として排除することで誤判定は回避できるものの、その領域に移動物が存在していた場合には、その移動物を検知できず、衝突のリスクを高めるおそれがあった。
【０００８】
また、特許文献１の技術では、移動物を適切に判断すべく、自車両の移動により静止物に生じてしまうフローベクトルの大きさや向きを導出しているが、それらを導出するためには、自車両の移動速度および角速度のみならず、自車両から静止物までの距離も必要となる。このような静止物までの距離は、ステレオカメラを用い３点測位法に基づく演算を行ったり、レーザレーダを用いたりすることで導出できるが、そのような装置を設けるのにコストが増大し、また、計算が煩雑になって処理負荷が高まるといった問題がある。
【０００９】
本発明は、このような課題に鑑み、自車両と静止物との距離を演算する特別な装置を設けることなく、自車両が旋回した場合であっても、移動物の検出精度の向上を図ることが可能な、車外環境認識装置および車外環境認識方法を提供することを目的としている。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明の車外環境認識装置は、広角レンズを通じて車外環境を撮像した画像データを取得する画像データ取得部と、画像データに基づく画像から予め定められた位置および大きさの部分画像を切り出す画像切出部と、部分画像の任意の部位におけるフローベクトルを導出するフローベクトル導出部と、広角レンズの移動状態を取得する移動状態取得部と、広角レンズから相異なる２つの距離にある２つの静止物を仮定し、移動状態に基づいて２つの静止物のフローベクトルを推定し、１の補正フローベクトルを生成する補正フローベクトル生成部と、導出されたフローベクトルから補正フローベクトルを減算するフローベクトル減算部と、画像データの水平方向中央における判定基準線に基づき、減算されたフローベクトルのうち移動物を示すフローベクトルをグループ化するグループ化部と、を備えることを特徴とする。
【００１１】
補正フローベクトル生成部は、推定した２つのフローベクトルのうち、相対的に、判定基準線に向かうスカラー量が大きい、または、判定基準線と反対方向に向かうスカラー量が小さいフローベクトルを補正フローベクトルとしてもよい。
【００１２】
補正フローベクトル生成部は、推定した２つのフローベクトルのうち、判定基準線の左側領域では、右向き最長または左向き最短のフローベクトルを補正フローベクトルとし、判定基準線の右側領域では、左向き最長または右向き最短のフローベクトルを補正フローベクトルとしてもよい。
【００１３】
移動状態取得部は、広角レンズの移動速度および角速度を取得し、補正フローベクトル生成部は、移動速度および角速度に基づいてフローベクトルを推定してもよい。
【００１４】
上記課題を解決するために、本発明の車外環境認識方法は、広角レンズを通じて車外環境を撮像した画像データを取得し、画像データに基づく画像から予め定められた位置および大きさの部分画像を切り出し、部分画像の任意の部位におけるフローベクトルを導出し、広角レンズの移動状態を取得し、広角レンズから相異なる２つの距離にある２つの静止物を仮定し、移動状態に基づいて２つの静止物のフローベクトルを推定し、１の補正フローベクトルを生成し、導出されたフローベクトルから補正フローベクトルを減算し、画像データの水平方向中央における判定基準線に基づき、減算されたフローベクトルのうち移動物を示すフローベクトルをグループ化することを特徴とする。
【発明の効果】
【００１５】
本発明によれば、自車両と静止物との距離を演算する特別な装置を設けないことで、コストや処理負荷の増大を回避しつつ、自車両が旋回した場合であっても、移動物の検出精度の向上を図ることが可能となる。
【図面の簡単な説明】
【００１６】
【図１】環境認識システムの接続関係を示したブロック図である。
【図２】撮像装置で生成される画像を説明するための説明図である。
【図３】部分画像を説明するための説明図である。
【図４】フローベクトルによる移動物の判定処理を説明するための説明図である。
【図５】フローベクトルによる移動物の判定処理を説明するための説明図である。
【図６】車外環境認識装置の概略的な機能を示した機能ブロック図である。
【図７】フローベクトル導出部の処理を説明するための説明図である。
【図８】フローベクトル導出部の処理を説明するための説明図である。
【図９】自車両が直進する場合の移動速度の影響を説明するための説明図である。
【図１０】自車両が旋回する場合の角速度の影響を説明するための説明図である。
【図１１】フローベクトルの推移を示した説明図である。
【図１２】フローベクトルの推移を示した説明図である。
【図１３】補正フローベクトルの効果を示した説明図である。
【図１４】フローベクトルの推移を示した説明図である。
【図１５】フローベクトルの推移を示した説明図である。
【図１６】車外環境認識方法の全体的な処理の流れを示したフローチャートである。
【図１７】画像切出処理を説明するためのフローチャートである。
【図１８】フローベクトル導出処理を説明するためのフローチャートである。
【図１９】補正フローベクトル生成処理を説明するためのフローチャートである。
【図２０】フローベクトル減算処理を説明するためのフローチャートである。
【図２１】グループ化処理を説明するためのフローチャートである。
【発明を実施するための形態】
【００１７】
以下に添付図面を参照しながら、本発明の好適な実施形態について詳細に説明する。かかる実施形態に示す寸法、材料、その他具体的な数値などは、発明の理解を容易とするための例示にすぎず、特に断る場合を除き、本発明を限定するものではない。なお、本明細書及び図面において、実質的に同一の機能、構成を有する要素については、同一の符号を付することにより重複説明を省略し、また本発明に直接関係のない要素は図示を省略する。
【００１８】
（環境認識システム１００）
図１は、環境認識システム１００の接続関係を示したブロック図である。環境認識システム１００は、自車両１内に設けられた、撮像装置１１０と、車外環境認識装置１２０と、車両制御装置（ＥＣＵ：Engine Control Unit）１３０とを含んで構成される。
【００１９】
撮像装置１１０は、広角（広画角）レンズ、および、ＣＣＤ（Charge-Coupled Device）やＣＭＯＳ（Complementary Metal-Oxide Semiconductor）等の撮像素子を含んで構成され、自車両１の前方において、水平より少し下方に向けて設けられる。撮像装置１１０は、自車両１の前方に相当する環境を撮像し、３つの色相（Ｒ（赤）、Ｇ（緑）、Ｂ（青））からなるカラー画像やモノクロ画像を生成することができる。ここで、広角レンズは、標準レンズに比べ画角（視野角）が比較的広い（例えば、１２０度以上）、または、焦点距離が比較的短いレンズをいい、例えば、広角レンズとして魚眼レンズを用い、撮像装置１１０を中心とする半球状に広がる空間を撮像することができる。なお、本実施形態の撮像装置１１０の射影方式は、立体射影を用いているが、例えば、透視射影等、既存の様々な射影方法を採用することができる。ここでは、広角レンズとして魚眼レンズを用いる例を挙げて説明するが、円錐状（アキシコン）プリズム等、様々な広角レンズを用いることもできる。また、レンズの画角を１２０度以上としたのは、十字路またはＴ字路において、自車両１が停止線に停止した場合に、直交する道路の状況まで適切に把握するためである。
【００２０】
図２は、撮像装置１１０で生成される画像を説明するための説明図である。図２を参照して理解できるように、撮像装置１１０で生成された画像（以下、「環境画像」という。）２００は、円周魚眼レンズを通じて、画像の中心からの距離に対して角度が単調増加するように描かれている（立体射影方式）。したがって、自車両１の走行方向の画像の分解能を維持しつつ、広範囲の環境画像２００を一度に取得することができる。
【００２１】
また、撮像装置１１０は、環境画像２００をデータ化した画像データを、例えば１／１０秒毎（１０ｆｐｓ）に連続して生成する。以下の実施形態における各機能部は、このような画像データの更新を契機として各処理を遂行する。したがって、各機能部は、フレーム単位で処理を繰り返すこととなる。
【００２２】
車外環境認識装置１２０は、撮像装置１１０から、環境画像２００を示す画像データを取得し、所謂、パターンマッチングを用いて、オプティカルフローに基づくフローベクトルを導出する。フローベクトルは、画像のエッジ部分（隣り合う画素間で明暗の差分が大きい部分）で特定され易いので、フローベクトルが導出されたブロックは、環境画像２００においてもエッジとなっていることが多い。ただし、車外環境認識装置１２０では、環境画像２００中の必要な部分のみ切り出した部分画像を利用してフローベクトルを導出する。
【００２３】
図３は、部分画像２０２を説明するための説明図である。上述したように、図２に示した環境画像２００では、広画角の画像を一度に取得できるので、自車両１の前方のみならず、左右いずれかの方向（水平方向）から接近する移動物も特定することが可能となる。しかし、環境画像２００では、画像の中心からの距離と角度がおよそ比例するので、中心からの距離が離れるほど、画像が歪むこととなる。例えば、図２の環境画像２００における４つの角に近い領域では、実際には水平に延びている物が、環境画像２００では湾曲して表示され、その端部は垂直方向にも延びているように視認できる。ここで、「水平」は、撮像した環境画像２００の画面横方向を示し、実空間上の水平方向に相当する。また、「垂直」は、撮像した環境画像２００の画面縦方向を示し、実空間上の鉛直方向に相当する。
【００２４】
そこで、車外環境認識装置１２０は、図２に示した環境画像２００のうち、交通環境において特定すべき移動物が存在する、図２中破線で示した領域、すなわち、歪みの少ない環境画像２００の中央領域と、その水平方向左右の領域とを合わせた、図３に示す部分画像２０２を切り出す。そして、その部分画像２０２に対してオプティカルフローに基づくフローベクトルを導出する。
【００２５】
続いて、車外環境認識装置１２０は、近似するフローベクトル同士をグループ化して移動物を特定し、移動物の大きさおよびその速度（フローベクトルの大きさ）に基づいて、移動物の種別を判定する。ここで、移動物は、車両、自転車、歩行者といった独立して移動する物である。また、移動物に対応する静止物は、建物、道路、ガードレール、背景空間といった物を示す。また、車外環境認識装置１２０は、図１に示す、自車両１の移動速度を検出する速度センサ１２４、および、自車両１が旋回した際の鉛直軸を中心とした角速度を検出する角速度センサ１２６を通じて静止物のフローベクトルを推定する。
【００２６】
車外環境認識装置１２０は、例えば、水平方向に高速に移動している移動物を先行車両と認識する。また、車外環境認識装置１２０は、特定した移動物と衝突する可能性が高いか否かの判定を行うことができる。ここで、衝突の可能性が高いと判定した場合、車外環境認識装置１２０は、その旨、ディスプレイ１２２を通じて運転者に報知するとともに、車両制御装置１３０に対して、その旨を示す情報を出力する。かかる車外環境認識装置１２０の処理に関しては、後ほど詳述する。
【００２７】
車両制御装置１３０は、車外環境認識装置１２０で特定された移動物との衝突を回避する。具体的に、車両制御装置１３０は、操舵の角度を検出する舵角センサ１３２や、上述した速度センサ１２４等を通じて現在の自車両１の走行状態を取得し、アクチュエータ１３４を制御して先行車両との車間距離を安全な距離に保つ。ここで、アクチュエータ１３４は、ブレーキ、スロットルバルブ、舵角等を制御するために用いられる車両制御用のアクチュエータである。また、車両制御装置１３０は、移動物との衝突が想定される場合、アクチュエータ１３４を制御して自車両１を自動的に制動する。かかる車両制御装置１３０は、車外環境認識装置１２０と一体的に形成することもできる。
【００２８】
（フローベクトルによる移動物の判定処理）
図４および図５は、本実施形態のオプティカルフローのフローベクトルによる移動物の判定処理を説明するための説明図である。ここでは、従来の問題点と比較しつつ本実施形態の特徴を説明する。
【００２９】
仮に、図４（ａ）に示すように自車両１が旋回を伴うことなく直進しているときに、図３に示した部分画像２０２に対してフローベクトルを導出すると、フローベクトルは、図４（ｂ）のように複数の矢印で示される。かかる矢印の長さがフローベクトルの大きさ、矢印の向きがフローベクトルの向きを示す。また、フローベクトルは、本来、導出単位であるブロックと同数あるが、ここでは、理解を容易にするためフローベクトルの数を制限して表している。
【００３０】
フローベクトルは、画像中の特徴点の移動によって生成されるので、図４を参照して理解できるように、自車両１の移動に伴い、移動物２のみならず、静止物３にもフローベクトルが生じる。また、本実施形態では、広角レンズが用いられているので、部分画像２０２の中心と比較して側方にずれるに連れて、静止物３のフローベクトルの大きさが大きくなっているのが分かる。
【００３１】
このような静止物３のフローベクトルの水平方向の向きが左右で反転する部分画像２０２上の部位（境界）は、図４（ｂ）に示すように垂直に延びる破線で示した線分上に出現する。本実施形態では、かかる線分を、移動物２の判定基準に用いる判定基準線２０４とする。判定基準線２０４は、撮像装置１１０を自車両１の前方先端かつ車幅方向の中央に位置させ、撮像方向を進行方向と等しくなるように設置した場合に、図４（ｂ）に示すように部分画像２０２の水平方向に対して中央に位置することとなる。ただし、撮像装置１１０の位置や撮像方向が異なると、判定基準線２０４が、必ずしも部分画像２０２の水平方向に対して中央に位置するとは限らない。いずれにしても、自車両１が直進した場合に生じる静止物３のフローベクトルの水平方向の向きが左右で反転する境界線を判定基準線２０４とすればよい。
【００３２】
このとき、図４（ｂ）に示した部分画像２０２を、判定基準線２０４を基準に、左側領域と右側領域とに分けると、静止物３のフローベクトルが判定基準線２０４から遠ざかる方向に生じるのに対し、接近する移動物２のフローベクトルは判定基準線２０４に近づく方向に生じているのが分かる。
【００３３】
したがって、判定基準線２０４に従って水平方向に領域を二分し、左側領域において右方向を向いているフローベクトル、または、右側領域において左方向を向いているフローベクトルを検出し、それらを移動物２として特定することができる。
【００３４】
しかし、図５（ａ）に示すように、自車両１が旋回を伴いながら進行する場合、フローベクトルは、図５（ｂ）のように表される。ここでは、一点鎖線で示した領域２０６内の静止物３が判定基準線２０４の右側領域に存在するにも拘わらず、静止物３のフローベクトルが判定基準線２０４に近づく方向に生じている。これは、自車両１の直進時には、フローベクトルの水平方向の向きが左右で反転する位置が、前方の消失点（無限遠）と一致するが、自車両１の旋回時には、自車両１の移動速度および角速度ならびに静止物３との距離によって反転する位置が水平方向に変化することに起因する。
【００３５】
すると、一点鎖線で示した領域２０６内のフローベクトルは、それが移動物２のものであるか静止物３のものであるかに拘わらず、移動物２として誤判定されてしまう。この場合に、旋回の内側に相当する領域、すなわち、右側領域において移動物２の判定を行わないとすることも可能であるが、その領域に存在する移動物２を検知できなくなるので、衝突のリスクを高めるおそれがある。
【００３６】
そこで、移動物２を適切に判断するために、まず、静止物３のフローベクトルを正しく推定し、そのフローベクトルを補正フローベクトルとし、部分画像２０２上で検出されたフローベクトルから減算する。こうすることで静止物３に生じるフローベクトルを相殺（フローベクトルの長さ０）することができ、移動物２のフローベクトルのみを残すことが可能となる。
【００３７】
しかし、自車両１の移動により静止物３に生じるフローベクトルの大きさや向きを正確に推定するためには、自車両１の移動速度および角速度のみならず、自車両１から静止物３までの距離も必要となる。このような静止物３までの距離は、ステレオカメラを用い３点測位法に基づく演算を行ったり、レーザレーダを用いたりすることで導出できるが、そのような装置を設けるのにコストが増大し、また、計算が煩雑になって処理負荷が高まる。
【００３８】
そこで、本実施形態においては、静止物３までの距離を敢えて導出せず、静止物３までの距離の最大値と最小値を想定して、静止物３は、全て、最小値から最大値のいずれかの位置に存在するとする。そして、自車両１の移動速度および角速度から、自車両１の旋回によって静止物３に生じうるフローベクトルの変動範囲を推定し、補正フローベクトルを適切に選択して、部分画像２０２上で検出されたフローベクトルから減算する。こうすることで、少なくとも、静止物３のフローベクトルが判定基準線２０４に近づく方向に生じることがなくなり（誤検出を回避でき）、判定基準線２０４に近づく方向に生じたフローベクトルを全て移動物２として特定することが可能となる。本実施形態では、このように、自車両１が旋回した場合であっても、移動物２を適切に検出し、その検出精度の向上を図ることを目的とする。
【００３９】
以下に、このような処理を実現するための車外環境認識装置１２０を具体的に説明し、その後で、車外環境認識方法について詳述する。
【００４０】
（車外環境認識装置１２０）
図６は、車外環境認識装置１２０の概略的な機能を示した機能ブロック図である。図６に示すように、車外環境認識装置１２０は、Ｉ／Ｆ部１５０と、データ保持部１５２と、中央制御部１５４とを含んで構成される。
【００４１】
Ｉ／Ｆ部（画像データ取得部）１５０は、撮像装置１１０や車両制御装置１３０との双方向の情報交換を行うためのインターフェースであり、例えば、撮像装置１１０で生成された画像データを取得する。また、Ｉ／Ｆ部１５０は、速度センサ１２４や加速度センサ１２６から、移動速度および加速度を取得する。データ保持部１５２は、ＲＡＭ、フラッシュメモリ、ＨＤＤ等で構成され、以下に示す各機能部の処理に必要な様々な情報を保持する。また、本実施形態においては、フローベクトルの導出処理におけるパターンマッチングのため、画像データを、少なくとも次のフレームまで一時的に保持する。ここで、データ保持部１５２に記憶された前回のフレームにおける画像データを「前回画像データ」といい、今回のフレームにおける画像データを「今回画像データ」という。また、移動速度および角速度と補正フローベクトルとを対応付けた、後述する補正テーブルを予め保持することもできる。
【００４２】
中央制御部１５４は、中央処理装置（ＣＰＵ）、プログラム等が格納されたＲＯＭ、ワークエリアとしてのＲＡＭ等を含む半導体集積回路で構成され、システムバス１５６を通じて、Ｉ／Ｆ部１５０やデータ保持部１５２を制御する。また、本実施形態において、中央制御部１５４は、画像切出部１６０、フローベクトル導出部１６２、移動状態取得部１６４、補正フローベクトル生成部１６６、フローベクトル減算部１６８、グループ化部１７０、移動物判定部１７２、衝突判定部１７４、報知部１７６、画像保持部１７８としても機能する。
【００４３】
画像切出部１６０は、Ｉ／Ｆ部１５０が取得した今回画像データに基づく図２に示したような環境画像２００から、予め定められた位置および大きさの図３に示したような部分画像２０２を切り出す。
【００４４】
フローベクトル導出部１６２は、所謂、パターンマッチングを通じて、画像切出部１６０が切り出した部分画像２０２の任意の部位におけるフローベクトルを導出する。
【００４５】
図７および図８は、フローベクトル導出部１６２の処理を説明するための説明図である。フローベクトル導出部１６２は、データ保持部１５２に記憶された前回画像データに基づく図７（ａ）に示した部分画像２０２から任意に抽出したブロック（ここでは水平８画素×垂直８画素の配列で構成される）２１０ａに対応する（相関値の高い）ブロック２１０ｂを、今回画像データに基づく図７（ｂ）に示した部分画像２０２から検出する（パターンマッチング）。このとき前回画像データに対応するブロック２１０ａから今回画像データに対応するブロック２１０ｂまでの、図７（ｂ）中、矢印で示す移動軌跡がオプティカルフローにおけるフローベクトルとなる。
【００４６】
かかるパターンマッチングとしては、前回画像データおよび今回画像データ間において、任意の画像位置を示すブロック単位で輝度値を比較することが考えられる。例えば、輝度値の差分をとるＳＡＤ（Sum of Absolute Difference）、差分を２乗して用いるＳＳＤ（Sum of Squared intensity Difference）や、各画素の輝度値から平均値を引いた分散値の類似度をとるＮＣＣ（Normalized Cross Correlation）等の手法がある。車外環境認識装置１２０は、このようなブロック単位のフローベクトル導出処理を部分画像２０２（例えば、６４０画素×１２８画素）に映し出されている全てのブロックについて行う。
【００４７】
ブロック内の画素数は任意に設定することができるが、ここでは、ブロックを水平８画素×垂直８画素としている。
【００４８】
このようにして、フローベクトル導出部１６２は、前回画像データに対応する部分画像２０２の例えば車両に相当する移動物２に対して図８の如くフローベクトルを導出することができる。
【００４９】
移動状態取得部１６４は、広角レンズを有する撮像装置１１０の移動状態を取得する。なお、撮像装置１１０の移動状態を直接測定するとしてもよいが、本実施形態では、撮像装置１１０を固定し、撮像装置１１０とほぼ同一の移動軌跡で移動する自車両１の移動状態を撮像装置１１０の移動状態として用いることとする。また、移動状態は、自車両１の直進方向の移動速度と、旋回方向の角速度で表すことができるので、ここでは、移動状態として自車両１の移動速度および角速度を取得している。ただし、移動状態を特定する手段はかかる場合に限らず、移動速度および舵角等、様々なパラメータに基づいて特定することができる。
【００５０】
補正フローベクトル生成部１６６は、広角レンズから相異なる２つの距離にある２つの静止物３を仮定し、移動状態（ここでは、移動速度および角速度）に基づいて２つの静止物３のフローベクトルを推定する。
【００５１】
ここでは、まず、２つの距離にある２つの静止物３を仮定する理由を説明し、２つの静止物３のフローベクトルから補正フローベクトルを生成した場合の作用を詳述する。
【００５２】
（２つの距離にある２つの静止物３を仮定する理由）
静止物３のフローベクトルは、自車両１が直進する移動速度、および、旋回する角速度の影響を受ける。
【００５３】
図９は、自車両１が直進する場合の移動速度の影響を説明するための説明図であり、図１０は、自車両１が旋回する場合の角速度の影響を説明するための説明図である。
【００５４】
自車両１が移動速度Ａで直進している場合、自車両１から比較的遠い位置にある静止物３ａおよび自車両１から比較的近い位置にある静止物３ｂは、相対速度Ａで自車両１に近づいていることになり、その相対速度Ａの相対移動が部分画像２０２に投影されてフローベクトルとなる。図９に示すように、静止物３ａと静止物３ｂとは同一の相対速度Ａであるにも拘わらず、その距離が異なることからフローベクトルの長さが異なり、自車両１から比較的遠い位置にある静止物３ａのフローベクトルは、自車両１から比較的近い位置にある静止物３ｂのフローベクトルより短くなる。
【００５５】
また、フローベクトルの向きは、撮像装置１１０が自車両１の前方先端かつ車幅方向の中央に位置している場合、図９のように、部分画像２０２における判定基準線２０４より静止物３が左側にある場合は左向きになり、静止物３が判定基準線２０４より右側にある場合は右向きとなる。
【００５６】
一方、図１０に示すように、自車両１が角速度Ｂで旋回している場合、自車両１から比較的遠い位置にある静止物３ａおよび自車両１から比較的近い位置にある静止物３ｂは、相対角速度Ｂで自車両１と相対回転していることになり、その相対角速度Ｂの相対回転が部分画像２０２に投影されてフローベクトルとなる。したがって、静止物３ａと静止物３ｂとは、同一の相対角速度Ｂによる同一のフローベクトルが生じることとなる。
【００５７】
図９および図１０を参照すると、自車両１が直進する移動速度Ａの影響による静止物３のフローベクトルは、自車両１の移動速度Ａおよび静止物３との距離に基づいて導出することができ、また、自車両１が旋回する角速度Ｂの影響による静止物３のフローベクトルは、自車両１の角速度Ｂに基づいて導出することができる。しかし、上述したように、自車両１の移動速度Ａおよび角速度Ｂは、移動状態取得部１６４によって容易に取得することができるが、静止物３までの距離は容易に導出できない。
【００５８】
そこで、本実施形態では、静止物３までの距離の概念を以下のように取り扱う。すなわち、静止物３が、想定される最大距離と最小距離との間のいずれにあるかについては言及しない。したがって、静止物３が想定される最大距離と最小距離との間のいずれに存在するとしても、自車両１が移動することによる静止物３のフローベクトルへの影響、特に、判定基準線２０４に向かう静止物３のフローベクトルの出現を抑制する。したがって、移動速度が低い移動物２が検出されない可能性は残るものの、静止物３を移動物２として誤検出してしまうのを確実に回避することができる。
【００５９】
図１１、図１２、図１４および図１５は、フローベクトルの推移を示した説明図であり、図１３は、補正フローベクトルの効果を示した説明図である。補正フローベクトル生成部１６６は、まず、静止物３が想定される最も近距離にある場合と、想定される最も遠距離にある場合の２つの静止物３を仮定し、自車両１の移動状態（移動速度および角速度）に基づいて、２つの静止物３のフローベクトルを導出する。例えば、自車両１の移動速度が７ｋｍ／ｈであり、角速度が＋１５ｄｅｇ／ｓ（右旋回）であった場合に、補正フローベクトル生成部１６６が、上記移動条件に基づき、空間座標内で計算すると、遠距離の静止物３ａと近距離の静止物３ｂのフローベクトルは、図１１のような推移を示すこととなる。
【００６０】
図１１は、部分画像２０２のうち、地面と静止物３の境界に相当する垂直位置における部分画像２０２全体の水平方向の位置を横軸とし、各部位のフローベクトルを縦軸としている。ここで、フローベクトルの長さは縦軸の大きさで示され、フローベクトルの向きは、右方向が正、左方向が負で示される。また静止物３は、旋回前の自車両１の向きと直交し、車両前方における所定の距離にある平面状の壁として当該計算を行っている。ただし、静止物３の定義はかかる場合に限らず、自車両１の向きと平行な左右の壁面を加えてもよいし、撮像装置１１０から等距離にある円形の壁としてもよい。
【００６１】
図１１を参照して理解できるように、遠距離の静止物３ａは、自車両１が直進する移動速度の影響が少なく、ほぼ、自車両１が旋回する角速度の影響を受けるため、フローベクトルが負（左方向）の固定値になる。一方、近距離の静止物３ｂは、遠距離の静止物３ａ同様、自車両１が旋回する角速度の影響を受けて、フローベクトルが負にオフセットするものの、自車両１が直進する移動速度の影響を受けて、水平方向の比較的右側で正方向のフローベクトルが得られ、水平方向の比較的左側で負方向のフローベクトルが得られる。これは、上述したように、広角レンズが用いられているので、部分画像２０２の中心と比較して側方にずれるに連れて、静止物３のフローベクトルの大きさが大きくなることに起因する。
【００６２】
ただし、近距離の静止物３ｂのフローベクトルも、水平方向の左右端部において、遠距離の静止物３ａと同等のフローベクトルに収束している。これは、上述したように、静止物３として、旋回前の自車両１の向きと直交し、車両前方における所定の距離にある平面状の壁を想定しているため、部分画像２０２の両端では、撮像装置１１０の光軸方向とのなす角が大きくなって静止物３までの距離が遠くなり、遠距離の静止物３ａとフローベクトルが等しくなるからである。したがって、水平方向の左右両端では、近距離の静止物３ｂも自車両１が直進する移動速度の影響が小さくなり、ほぼ、自車両１が旋回する角速度の影響を受けることとなる。なお、静止物３として、平面状の壁ではなく、撮像装置１１０から等距離にある球面を想定した場合、遠距離の静止物３ａと近距離の静止物３ｂとが水平方向の左右両端において同一のフローベクトルには収束しない。
【００６３】
また、上記では、遠距離の静止物３ａのフローベクトルは負の固定値となると説明したが、実際のフローベクトルは、水平位置の端部において負の方向に凹状に推移している。これは、広角レンズによる立体射影を用いている特性上、部分画像２０２の端の方が中心部より、旋回に伴う静止物３の移動距離が長くなり、その結果、部分画像２０２の両端でフローベクトルが拡大されるからである。
【００６４】
ここで、図１１を全体的に観察すると、静止物３が比較的近距離に存在する場合、近距離の静止物３ｂのフローベクトルが生じ、静止物３のフローベクトルの水平方向の向きが左右で反転する部位（境界）が図１１中破線で示した位置に生じる。仮に、旋回における角速度が１５ｄｅｇ／ｓより大きかったとすると、かかる反転部位は、水平方向の右方向にシフトする。逆に、角速度が１５ｄｅｇ／ｓより小さいと、水平方向の左方向にシフトし、中央の判定基準線２０４に近づくこととなる。
【００６５】
このような部分画像２０２に存在しうる静止物３は、全て、想定される最も近距離から最も遠距離の間に存在するので、ここでは、近距離の静止物３ｂと遠距離の静止物３ａのみを考慮することで、その間にある全ての静止物３を考慮したことになる。
【００６６】
（２つの静止物のフローベクトルから補正フローベクトルを生成した場合の作用）
続いて、静止物３と移動物２との関係を述べる。図１１の右側領域のみに着目した図１２（ａ）を参照すると、ここでは、静止物３の実際の距離に言及していないので、静止物３は、図１２（ａ）においてハッチングで示した領域内のいずれかに存在することとなる。ハッチングで示した領域に存在する静止物３は、判定基準線２０４の右側領域において一部を除き左方向のフローベクトルとなり、その静止物３は移動物２として判定されてしまう。このような誤検出を回避すべく、右側領域全てを予め検出の対象外として排除してしまうと、例えば、実際に存在する移動物２ａを検出できなくなる。
【００６７】
そこで、誤検出される可能性のある静止物３のフローベクトルの最大量、すなわち、相対的に、判定基準線２０４に向かうスカラー量が大きいフローベクトルを補正フローベクトルとし、図１２（ｂ）のように、その分だけフローベクトル全体を右方向にオフセットする。こうすることで、少なくとも、静止物３のフローベクトルが判定基準線２０４に近づく方向に生じることがなくなる。
【００６８】
また、静止物３のフローベクトルの最大量以上の大きさを持つ移動物２ａは、補正フローベクトルのオフセットだけでは、フローベクトルの方向が変化しないため（左方向が維持されるので）、図１２（ｂ）の如く、左方向のフローベクトルとして把握され、移動物２ａとして特定される。
【００６９】
例えば、図１３の例では、補正フローベクトルのオフセット前の図１３（ａ）において一点鎖線で示したように、判定基準線２０４の右側領域において、静止物３であるにも拘わらず左方向のフローベクトルとなる部分が存在するが、補正フローベクトルのオフセットを行った後の図１３（ｂ）では、それらも右方向のフローベクトルとなり、左方向のフローベクトルは、真に左方向に移動している移動体２ａのみとなる。こうして、少なくとも静止物３を移動物２と誤検出するのを回避し、左方向のフローベクトルを全て移動物２として抽出することができる。
【００７０】
また、図１１の左側領域のみに着目した図１４（ａ）を参照すると、遠距離の静止物３ａであるか近距離の静止物３ｂであるかに拘わらず、静止物３は、少なくとも図１４（ａ）においてハッチングで示した領域内に存在し、判定基準線２０４の左側領域において、ある程度の長さを有する左方向のフローベクトルとなってしまう。このような自車両１の移動は、静止物３のみならず、移動物２にも影響を与えてしまう。例えば、移動物２ｂが、本来、右方向のフローベクトルを有していたとしても、自車両１の移動によって左方向のフローベクトルに相殺され、移動物２ｂも左方向のフローベクトルとなって、移動物２として判定されなくなってしまう。
【００７１】
そこで、静止物３が影響を受けるフローベクトルの最小量、すなわち、相対的に、判定基準線２０４と反対方向に向かうスカラー量が小さいフローベクトル（ここでは遠距離の静止物３ａのフローベクトル）を補正フローベクトルとし、図１４（ｂ）のように、その分だけフローベクトル全体を右方向にオフセットする。
【００７２】
ここで、仮に、近距離の静止物３ｂのフローベクトルを採用すると、近距離と遠距離との間にある静止物３を近距離の静止物３ｂのフローベクトル分オフセットしてしまうことになり、近距離と遠距離との間にある静止物３が右方向のフローベクトルとなって、移動物２として誤検出されてしまうこととなる。したがって、上記のように遠距離の静止物３ａのフローベクトルを採用する。
【００７３】
こうすることで、左側領域全てに追加されている左方向のフローベクトルのオフセットを排除することができ、自車両１の移動の影響を最小限に抑えることが可能となる。
【００７４】
こうして、自車両１の移動の影響を受けてフローベクトルが反転していた移動物２ｂも、最低限のオフセットを受けて、右方向のフローベクトルとなり、図１４（ｂ）の如く、右方向のフローベクトルとして把握され、移動物２ｂとして特定される。
【００７５】
例えば、図１３の例では、補正フローベクトルのオフセット前の図１３（ａ）においては、判定基準線２０４の左側領域において、移動物２ｂのフローベクトルが左方向となり、それを移動物２ｂとして特定することができないが、補正フローベクトルのオフセットを行った後の図１３（ｂ）では、移動物２ｂのフローベクトルが右方向となり、真に右方向に移動している移動体２ｂとして特定することができる。
【００７６】
このように、補正フローベクトル生成部１６６は、近距離と遠距離の２つの距離のフローベクトルを推定し、推定した２つのフローベクトルのうち、相対的に、判定基準線２０４に向かうスカラー量が大きい、または、判定基準線２０４と反対方向に向かうスカラー量が小さいフローベクトル、すなわち、判定基準線２０４の左側領域では、右向き最長または左向き最短のフローベクトルを、判定基準線２０４の右側領域では、左向き最長または右向き最短のフローベクトルを補正フローベクトルとする。
【００７７】
このようにして導き出された補正フローベクトルは、左側領域と右側領域を連続させると、図１５（ａ）に実線で示したように表すことができる。ここで、静止物３のフローベクトルは、ハッチングで示した範囲内に収まる。かかる補正フローベクトルで、部分画像２０２全体のフローベクトルをオフセットすると、図１５（ｂ）のようになる。このとき、右側領域では、全ての静止物３のフローベクトルを右向きのフローベクトルとすることができ、静止物３を移動物２として誤検出するのを回避でき、また、ある程度の移動速度を有する移動物２を検出することが可能となる。また、左側領域では、全ての静止物３のフローベクトルが右向きとならない範囲、すなわち、静止物３が移動物２と誤検出されない範囲でオフセットされ、自車両１の移動により埋もれてしまった移動物２のフローベクトルを適切に検出することが可能となる。
【００７８】
ただし、補正フローベクトルは、自車両１の移動速度および角速度から一義的に導出されるものなので、毎回計算しなくとも、移動速度および角速度に応じて、補正テーブルから抽出することができる。この場合、移動速度と角速度とに基づいて補正フローベクトルを予め計算しておき、移動速度および角速度と補正フローベクトルとを対応付けた補正テーブルを生成し、データ保持部１５２に保持させる。かかる補正テーブルでは、移動速度１ｋｍ間隔（範囲１〜１５ｋｍ／ｈ）、角速度１ｄｅｇ間隔（範囲−３０〜３０ｄｅｇ／ｓ）の分解能で補正フローベクトルを準備する。かかる分解能より高い分解能で補正フローベクトルを導出する場合、複数の補正フローベクトルを用いて線形補間を行うこともできる。また、補正フローベクトルを減算することで、静止物３が移動物２として誤検出されないように補正フローベクトルを選択することも可能である。そして、補正フローベクトル生成部１６６は、移動状態取得部１６４が取得した移動速度と角速度に応じて、データ保持部１５２の補正テーブルを参照し、補正フローベクトルを抽出する。
【００７９】
フローベクトル減算部１６８は、フローベクトル導出部１６２が導出したフローベクトルから、補正フローベクトル生成部１６６が生成した補正フローベクトルを減算する。こうして、補正フローベクトル分のオフセットが行われ、静止物３を移動物２と誤検出せず、かつ、移動物２の検出精度が高められる。
【００８０】
グループ化部１７０は、フローベクトル導出部１６２が導出した判定基準線２０４により領域を左側領域と右側領域に分割し、フローベクトル減算部１６８が減算したフローベクトルから、左側領域において右方向に向くフローベクトル、または、右側領域において左方向に向くフローベクトルを抽出する。そして、抽出したフローベクトルのうち、隣接するブロック同士のフローベクトルを順次比較し、フローベクトルの方向およびその大きさが近似する（例えば、方向が±４５度以内かつ大きさの差分が１６画素以内である）ブロックをグループ化する。そして、グループ化したブロック群を移動物２として特定する。例えば、図８に示したフローベクトルは、右側領域において左方向に向いており、互いに近似しているので、対象となるブロックをグループ化し、移動物２として特定することができる。
【００８１】
移動物判定部１７２は、グループ化部１７０がグループ化したブロック群の接地位置、大きさ、および、そのブロック群の速度に応じて、そのブロック群を構成する移動物２の位置、進行方向および速度を判定する。例えば、図８に示したフローベクトルが近似するブロック群を自車両１と直交する方向に移動する物体であると判定する。
【００８２】
衝突判定部１７４は、自車両１の進行方向および速度と、特定した移動物２の位置、進行方向および速度とに応じて、自車両１と当該移動物２が衝突する可能性が高いか否か判定する。かかる衝突判定については、既存の様々な技術を適用することが可能なので、ここではその詳細な説明を省略する。
【００８３】
報知部１７６は、衝突判定部１７４が衝突の可能性が高いと判定した場合、ブザー（音声出力手段）や警告灯（ディスプレイ１２２）を通じて、その旨、運転者に報知する。また、Ｉ／Ｆ部１５０を通じて、車両制御装置１３０に、その旨を示す情報を出力する。
【００８４】
画像保持部１７８は、データ保持部１５２の前回画像データに今回画像データを上書きする。こうして次のフレームでは、かかる今回画像データを前回画像データとして用いることができる。
【００８５】
（車外環境認識方法）
以下、車外環境認識装置１２０の具体的な処理を図１６〜図２１のフローチャートに基づいて説明する。図１６は、撮像装置１１０から広角レンズを通じて撮像された画像データが送信されたときの割込処理に関する全体的な流れを示し、図１７〜図２１は、その中の個別のサブルーチンを示している。また、ここでは、処理の対象部位として、画像内の画素またはブロックを挙げている。
【００８６】
当該車外環境認識方法による割込が発生すると、Ｉ／Ｆ部１５０は、撮像装置１１０から送信された今回画像データを取得する（Ｓ３００）。そして、画像切出部１６０は、取得した今回画像データに基づく環境画像２００（例えば、水平６４０画素×垂直４８０画素）から予め定められた位置および大きさの部分画像２０２（例えば、水平６４０画素×垂直１２８画素：水平８０ブロック×垂直１６ブロック）を切り出し（Ｓ３０２）、フローベクトル導出部１６２は、部分画像２０２における複数のフローベクトルを導出する（Ｓ３０４）。
【００８７】
続いて、移動状態取得部１６４は、その時点の自車両１の移動速度および角速度を取得し（Ｓ３０６）、補正フローベクトル生成部１６６は、移動速度および角速度に基づいて、広角レンズから相異なる２つの距離（想定される最も近距離および最も遠距離）にある２つの静止物３のフローベクトルを推定し、１の補正フローベクトルを生成する（Ｓ３０８）。フローベクトル減算部１６８は、導出されたフローベクトルから補正フローベクトルを減算する（Ｓ３１０）。グループ化部１７０は、判定基準線２０４に基づいて移動物２を示すフローベクトルをグループ化する（Ｓ３１２）。そして、移動物判定部１７２は、グループ化部１７０がグループ化したブロック群の大きさ、および、そのブロック群の速度に応じて、そのブロック群を構成する移動物２の位置、進行方向および速度を判定する（Ｓ３１４）。
【００８８】
衝突判定部１７４は、自車両１の進行方向および速度と、特定した移動物２の位置、進行方向および速度とに応じて、自車両１と移動物２が衝突する可能性が高いか否か判定する（Ｓ３１６）。その結果、移動物２と衝突する可能性が高いと判定すると（Ｓ３１６におけるＹＥＳ）、報知部１７６は、衝突の可能性が高い旨、運転者に報知するとともに、車両制御装置１３０に、その旨を示す情報を出力する（Ｓ３１８）。また、移動物２と衝突する可能性が高いと判定されなかった場合（Ｓ３１６におけるＮＯ）、ステップＳ３２０に移行する。
【００８９】
最後に、画像保持部１７８は、今回画像データを次回のフレームで前回画像データとして用いるため、データ保持部１５２の前回画像データに今回画像データを上書きする（Ｓ３２０）。以下、上記の画像切出処理Ｓ３０２、フローベクトル導出処理Ｓ３０４、補正フローベクトル生成処理Ｓ３０８、フローベクトル減算処理Ｓ３１０、グループ化処理Ｓ３１２について具体的に説明する。
【００９０】
（画像切出処理Ｓ３０２）
図１７を参照すると、画像切出部１６０は、画素を特定するための垂直変数ｊを初期化（「０」を代入）する（Ｓ４００）。続いて、画像切出部１６０は、垂直変数ｊに「１」を加算するとともに水平変数ｉを初期化（「０」を代入）する（Ｓ４０２）。次に、画像切出部１６０は、水平変数ｉに「１」を加算する（Ｓ４０４）。
【００９１】
画像切出部１６０は、環境画像２００から垂直方向に予め定められたオフセット量（例えば、１００画素）シフトした画素（ｉ，ｊ＋１００）の輝度値を抽出し、その値を部分画像２０２の画素（ｉ，ｊ）の輝度値とする（Ｓ４０６）。
【００９２】
続いて、画像切出部１６０は、水平変数ｉが部分画像２０２における水平画素の最大値である６４０以上であるか否か判定し（Ｓ４０８）、水平変数ｉが最大値未満であれば（Ｓ４０８におけるＮＯ）、ステップＳ４０４からの処理を繰り返す。また、水平変数ｉが最大値以上であれば（Ｓ４０８にけるＹＥＳ）、画像切出部１６０は、垂直変数ｊが部分画像２０２における垂直画素の最大値である１２８以上であるか否か判定する（Ｓ４１０）。そして、垂直変数ｊが最大値未満であれば（Ｓ４１０におけるＮＯ）、ステップＳ４０２からの処理を繰り返す。また、垂直変数ｊが最大値以上であれば（Ｓ４１０におけるＹＥＳ）、当該画像切出処理Ｓ３０２を終了する。こうして、図３に示したように、環境画像２００の垂直方向にオフセットした位置から部分画像２０２を切り出すことができる。
【００９３】
（フローベクトル導出処理Ｓ３０４）
図１８を参照すると、フローベクトル導出部１６２は、ブロックを特定するための垂直変数ｊを初期化（「０」を代入）する（Ｓ４５０）。続いて、フローベクトル導出部１６２は、垂直変数ｊに「１」を加算すると共に水平変数ｉを初期化（「０」を代入）する（Ｓ４５２）。次に、フローベクトル導出部１６２は、水平変数ｉに「１」を加算する（Ｓ４５４）。ここでは、ブロックを水平８画素×垂直８画素で構成する。
【００９４】
フローベクトル導出部１６２は、前回画像データに対応した部分画像２０２のブロック（ｉ，ｊ）と、今回画像データに対応した部分画像２０２のブロックとの相関値を導出する（Ｓ４５６）。具体的に、フローベクトル導出部１６２は、前回画像データに対応した部分画像２０２のブロック（ｉ，ｊ）を抽出し、かかる前回画像データのブロック（ｉ，ｊ）の位置に相当する、今回画像データに対応した部分画像２０２の位置から１フレームの間に移動物２が移動可能な最大範囲を設定する。そして、フローベクトル導出部１６２は、かかる最大範囲内で、前回画像データのブロックを１画素ずつ画面右方向にずらしながら両ブロックの相関値を求め、さらに、そのような処理を１画素ずつ画面下方向にずらしながら繰り返す。ただし、相関値を求めるときに比較する領域は、ブロックと一致していてもよいし、ブロックと一致しない、例えばブロックを包含したり、あるいはブロックの一部を含むような形でもよい。かかる処理は、今回画像データの部分画像２０２における最大範囲内の全てのブロックで相関値が導出されるまで繰り返される（Ｓ４５８のＮＯ）。最大範囲内の全てのブロックで相関値が導出されると（Ｓ４５８におけるＹＥＳ）、フローベクトル導出部１６２は、前回画像データのブロック（ｉ，ｊ）との相関値が最も大きい今回画像データのブロック（ｉ，ｊ）を抽出し、両ブロックの位置関係からフローベクトル（ブロック間の大きさと方向）を導出する（Ｓ４６０）。
【００９５】
続いて、フローベクトル導出部１６２は、水平変数ｉが部分画像２０２の水平ブロックの最大値である８０以上であるか否か判定し（Ｓ４６２）、水平変数ｉが最大値未満であれば（Ｓ４６２におけるＮＯ）、ステップＳ４５４からの処理を繰り返す。また、水平変数ｉが最大値以上であれば（Ｓ４６２におけるＹＥＳ）、フローベクトル導出部１６２は、垂直変数ｊが部分画像２０２の垂直ブロックの最大値である１６以上であるか否か判定する（Ｓ４６４）。そして、垂直変数ｊが最大値未満であれば（Ｓ４６４におけるＮＯ）、ステップＳ４５２からの処理を繰り返す。また、垂直変数ｊが最大値以上であれば（Ｓ４６４におけるＹＥＳ）、当該フローベクトル導出処理Ｓ３０４を終了する。こうして、図８に示したように、部分画像２０２にフローベクトルの情報を追加することができる。
【００９６】
（補正フローベクトル生成処理Ｓ３０８）
図１９を参照すると、補正フローベクトル生成部１６６は、まず、旋回前の自車両１の向きと直交し、車両前方における所定の遠距離（例えば４００００ｍ）にある平面状の壁を仮定し、その壁面と地面とが接している部位（当該ブロックが壁であり、垂直方向１つ下のブロックが地面であるブロック）のフローベクトルを導出する（Ｓ５００）。かかる遠距離のフローベクトルは、垂直方向に依存しない水平方向８０ブロックのベクトル列ｆａｒ（８０）で表すことができる。次に、補正フローベクトル生成部１６６は、旋回前の自車両１の向きと直交し、車両前方における所定の近距離（例えば１ｍ）にある平面状の壁を仮定し、その壁面と地面とが接している部位のフローベクトルを導出する（Ｓ５０２）。かかる近距離のフローベクトルは、垂直方向に依存しない水平方向８０ブロックのベクトル列ｎｅａｒ（８０）で表すことができる。
【００９７】
補正フローベクトル生成部１６６は、ブロックを特定するための垂直変数ｊを初期化（「０」を代入）する（Ｓ５０４）。続いて、補正フローベクトル生成部１６６は、垂直変数ｊに「１」を加算すると共に水平変数ｉを初期化（「０」を代入）する（Ｓ５０６）。次に、補正フローベクトル生成部１６６は、水平変数ｉに「１」を加算する（Ｓ５０８）。ここでも、ブロックを水平８画素×垂直８画素で構成する。
【００９８】
補正フローベクトル生成部１６６は、水平変数ｉが４０以下か否か、すなわち、判定基準線２０４の左側領域のブロックであるか否か判定する（Ｓ５１０）。水平変数ｉが４０以下であれば（Ｓ５１０におけるＹＥＳ）、遠距離のフローベクトルｆａｒ（ｉ）が近距離のフローベクトルｎｅａｒ（ｉ）より大きいか否か判定する（Ｓ５１２）。遠距離のフローベクトルｆａｒ（ｉ）が近距離のフローベクトルｎｅａｒ（ｉ）より大きい場合（Ｓ５１２におけるＹＥＳ）、補正フローベクトルｔｇｔ（ｉ，ｊ）に遠距離のフローベクトルｆａｒ（ｉ）を代入する（Ｓ５１４）。遠距離のフローベクトルｆａｒ（ｉ）が近距離のフローベクトルｎｅａｒ（ｉ）より小さい場合（Ｓ５１２におけるＮＯ）、補正フローベクトルｔｇｔ（ｉ，ｊ）に近距離のフローベクトルｎｅａｒ（ｉ）を代入する（Ｓ５１６）。ここでは、左側領域において右向き最長または左向き最短のフローベクトルを補正フローベクトルとしている。
【００９９】
また、水平変数ｉが４０より大きければ（Ｓ５１０におけるＮＯ）、遠距離のフローベクトルｆａｒ（ｉ）が近距離のフローベクトルｎｅａｒ（ｉ）より大きいか否か判定する（Ｓ５１８）。遠距離のフローベクトルｆａｒ（ｉ）が近距離のフローベクトルｎｅａｒ（ｉ）より大きい場合（Ｓ５１８におけるＹＥＳ）、補正フローベクトルｔｇｔ（ｉ，ｊ）に近距離のフローベクトルｎｅａｒ（ｉ）を代入する（Ｓ５２０）。遠距離のフローベクトルｆａｒ（ｉ）が近距離のフローベクトルｎｅａｒ（ｉ）より小さい場合（Ｓ５１８におけるＮＯ）、補正フローベクトルｔｇｔ（ｉ，ｊ）に遠距離のフローベクトルｆａｒ（ｉ）を代入する（Ｓ５２２）。ここでは、右側領域において左向き最長または右向き最短のフローベクトルを補正フローベクトルとしている。
【０１００】
続いて、補正フローベクトル生成部１６６は、水平変数ｉが部分画像２０２の水平ブロックの最大値である８０以上であるか否か判定し（Ｓ５２４）、水平変数ｉが最大値未満であれば（Ｓ５２４におけるＮＯ）、ステップＳ５０８からの処理を繰り返す。また、水平変数ｉが最大値以上であれば（Ｓ５２４におけるＹＥＳ）、補正フローベクトル生成部１６６は、垂直変数ｊが部分画像２０２の垂直ブロックの最大値である１６以上であるか否か判定する（Ｓ５２６）。そして、垂直変数ｊが最大値未満であれば（Ｓ５２６におけるＮＯ）、ステップＳ５０６からの処理を繰り返す。また、垂直変数ｊが最大値以上であれば（Ｓ５２６におけるＹＥＳ）、当該補正フローベクトル生成処理Ｓ３０８を終了する。当該補正フローベクトル生成処理Ｓ３０８では、部分画像２０２の垂直方向に同一の補正フローベクトルを設定している。こうして、図１５（ａ）に示したように、補正フローベクトルが生成される。
【０１０１】
（フローベクトル減算処理Ｓ３１０）
図２０を参照すると、フローベクトル減算部１６８は、ブロックを特定するための垂直変数ｊを初期化（「０」を代入）する（Ｓ５５０）。続いて、フローベクトル減算部１６８は、垂直変数ｊに「１」を加算すると共に水平変数ｉを初期化（「０」を代入）する（Ｓ５５２）。次に、フローベクトル減算部１６８は、水平変数ｉに「１」を加算する（Ｓ５５４）。ここでは、ブロックを水平８画素×垂直８画素で構成する。
【０１０２】
フローベクトル減算部１６８は、部分画像２０２のブロック（ｉ，ｊ）のフローベクトルから補正フローベクトルｔｇｔ（ｉ，ｊ）を減算して、ブロック（ｉ，ｊ）のフローベクトルを更新する（Ｓ５５６）。
【０１０３】
続いて、フローベクトル減算部１６８は、水平変数ｉが部分画像２０２の水平ブロックの最大値である８０以上であるか否か判定し（Ｓ５５８）、水平変数ｉが最大値未満であれば（Ｓ５５８におけるＮＯ）、ステップＳ５５４からの処理を繰り返す。また、水平変数ｉが最大値以上であれば（Ｓ５５８におけるＹＥＳ）、フローベクトル減算部１６８は、垂直変数ｊが部分画像２０２の垂直ブロックの最大値である１６以上であるか否か判定する（Ｓ５６０）。そして、垂直変数ｊが最大値未満であれば（Ｓ５６０におけるＮＯ）、ステップＳ５５２からの処理を繰り返す。また、垂直変数ｊが最大値以上であれば（Ｓ５６０におけるＹＥＳ）、当該フローベクトル減算処理Ｓ３１０を終了する。こうして、部分画像２０２のフローベクトルが補正フローベクトルｔｇｔ（ｉ，ｊ）分オフセットされる。
【０１０４】
（グループ化処理Ｓ３１２）
図２１を参照すると、グループ化部１７０は、ブロックを特定するための垂直変数ｊを初期化（「０」を代入）する（Ｓ６００）。続いて、グループ化部１７０は、垂直変数ｊに「１」を加算すると共に水平変数ｉを初期化（「０」を代入）する（Ｓ６０２）。次に、グループ化部１７０は、水平変数ｉに「１」を加算する（Ｓ６０４）。
【０１０５】
次に、グループ化部１７０は、比較対象となるブロックを特定するため垂直変数ｎを初期化（「０」を代入）する（Ｓ６０６）。続いて、グループ化部１７０は、垂直変数ｎに「１」を加算すると共に水平変数ｍを初期化（「０」を代入）する（Ｓ６０８）。次に、グループ化部１７０は、水平変数ｍに「１」を加算する（Ｓ６１０）。
【０１０６】
そして、グループ化部１７０は、判定基準線２０４に基づいて、前回画像データのブロック（ｉ，ｊ）とブロック（ｍ，ｎ）とがいずれも移動物２に対応するフローベクトルであるか否か判定する（Ｓ６１２）。具体的に、ブロック（ｉ，ｊ）が判定基準線２０４より左側領域に存在すれば、フローベクトルが右方向に向いているか否かを判定し、判定基準線２０４より右側領域に存在すれば、フローベクトルが左方向に向いているか否かを判定する。同様に、ブロック（ｍ，ｎ）が判定基準線２０４より左側領域に存在すれば、フローベクトルが右方向に向いているか否かを判定し、判定基準線２０４より右側領域に存在すれば、フローベクトルが左方向に向いているか否かを判定する。その結果、移動物２に対応するフローベクトルであれば（Ｓ６１２におけるＹＥＳ）、ステップＳ６１４に移行し、いずれかが移動物２に対応していなければ（Ｓ６１２におけるＮＯ）、ステップＳ６１８に処理を移行する。
【０１０７】
続いて、グループ化部１７０は、前回画像データのブロック（ｉ，ｊ）とブロック（ｍ，ｎ）とを比較し、フローベクトルの方向およびその大きさが近似するか否か判定する（Ｓ６１４）。その結果、フローベクトルが近似すると判定されると（Ｓ６１４におけるＹＥＳ）、グループ化部１７０は、そのブロック同士をグループ化してブロック群（移動物２）とする（Ｓ６１６）。このとき、いずれか一方または両方のブロックが既に他のブロックと共にブロック群として特定されている場合、そのブロックとブロック群となっている他のブロックも同一のブロック群として特定する。ただし、水平変数ｉ＝ｍかつ垂直変数ｊ＝ｎとなった場合、同一のブロックとなるので当該ステップＳ６１２〜Ｓ６１６の処理は実行しない。また、フローベクトルが近似していなければ（Ｓ６１４におけるＮＯ）、ステップＳ６１８の処理に移行する。
【０１０８】
続いて、グループ化部１７０は、水平変数ｍが部分画像２０２の水平ブロックの最大値である８０以上であるか否か判定し（Ｓ６１８）、水平変数ｍが最大値未満であれば（Ｓ６１８におけるＮＯ）、ステップＳ６１０からの処理を繰り返す。また、水平変数ｍが最大値以上であれば（Ｓ６１８にけるＹＥＳ）、グループ化部１７０は、垂直変数ｎが部分画像２０２の垂直ブロックの最大値である１６以上であるか否か判定する（Ｓ６２０）。そして、垂直変数ｎが最大値未満であれば（Ｓ６２０におけるＮＯ）、ステップＳ６０８からの処理を繰り返す。また、垂直変数ｎが最大値以上であれば（Ｓ６２０におけるＹＥＳ）、ステップＳ６２２の処理に移行する。
【０１０９】
続いて、グループ化部１７０は、水平変数ｉが部分画像２０２の水平ブロックの最大値である８０以上であるか否か判定し（Ｓ６２２）、水平変数ｉが最大値未満であれば（Ｓ６２２におけるＮＯ）、ステップＳ６０４からの処理を繰り返す。また、水平変数ｉが最大値以上であれば（Ｓ６２２におけるＹＥＳ）、グループ化部１７０は、垂直変数ｊが部分画像２０２の垂直ブロックの最大値である１６以上であるか否か判定する（Ｓ６２４）。そして、垂直変数ｊが最大値未満であれば（Ｓ６２４におけるＮＯ）、ステップＳ６０２からの処理を繰り返す。また、垂直変数ｊが最大値以上であれば（Ｓ６２４におけるＹＥＳ）、当該グループ化処理Ｓ３１２を終了する。こうして、フローベクトルが近似するブロック同士を移動物２として特定することができる。
【０１１０】
以上、説明したような、車外環境認識装置１２０や車外環境認識方法によれば、自車両１が旋回した場合であっても、静止物３を移動物２として誤検出することを回避し、移動物２の検出精度の向上を図ることが可能となる。
【０１１１】
また、従来、移動物２を適切に判断するため静止物３までの距離も得るべく、ステレオカメラやレーザレーダを用いなければならなかったが、本実施形態の車外環境認識装置１２０では、そのような高価な装置を用いることなく移動物２を検出できるので、コストの削減や処理負荷の軽減を図ることができる。
【０１１２】
また、コンピュータを、車外環境認識装置１２０として機能させるプログラムや当該プログラムを記録した、コンピュータで読み取り可能なフレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ、ＤＶＤ、ＢＤ等の記憶媒体も提供される。ここで、プログラムは、任意の言語や記述方法にて記述されたデータ処理手段をいう。
【０１１３】
以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明はかかる実施形態に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【０１１４】
例えば、上述した実施形態において、画像切出部１６０、フローベクトル導出部１６２、移動状態取得部１６４、補正フローベクトル生成部１６６、フローベクトル減算部１６８、グループ化部１７０、移動物判定部１７２、衝突判定部１７４、報知部１７６、画像保持部１７８は、中央制御部１５４によってソフトウェアで動作するように構成している。しかし、上記の機能部をハードウェアによって構成することも可能である。
【０１１５】
また、上述した実施形態においては、部分画像２０２の水平方向および垂直方向のいずれの方向のフローベクトルも対象としているが、自車両１に設置した撮像装置１１０を通じて接近する移動物２を検出する場合、水平方向のフローベクトルのみに限定して処理を行うことで、処理負荷を軽減することができる。
【０１１６】
なお、本明細書の車外環境認識方法の各工程は、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいはサブルーチンによる処理を含んでもよい。
【産業上の利用可能性】
【０１１７】
本発明は、自車両外の環境を認識する車外環境認識装置および車外環境認識方法に利用することができる。
【符号の説明】
【０１１８】
１     …自車両
２     …移動物
３     …静止物
３ａ   …遠距離の静止物
３ｂ   …近距離の静止物
１１０  …撮像装置
１２０  …車外環境認識装置
１５０  …Ｉ／Ｆ部（画像データ取得部）
１６０  …画像切出部
１６２  …フローベクトル導出部
１６４  …移動状態取得部
１６６  …補正フローベクトル生成部
１６８  …フローベクトル減算部
１７０  …グループ化部
２０２  …部分画像
２０４  …判定基準線
【図１】
2014044521.tif 000003
【図２】
2014044521.tif 000004
【図３】
2014044521.tif 000005
【図４】
2014044521.tif 000006
【図５】
2014044521.tif 000007
【図６】
2014044521.tif 000008
【図７】
2014044521.tif 000009
【図８】
2014044521.tif 000010
【図９】
2014044521.tif 000011
【図１０】
2014044521.tif 000012
【図１１】
2014044521.tif 000013
【図１２】
2014044521.tif 000014
【図１３】
2014044521.tif 000015
【図１４】
2014044521.tif 000016
【図１５】
2014044521.tif 000017
【図１６】
2014044521.tif 000018
【図１７】
2014044521.tif 000019
【図１８】
2014044521.tif 000020
【図１９】
2014044521.tif 000021
【図２０】
2014044521.tif 000022
【図２１】
2014044521.tif 000023