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