(57)【要約】【課題】単一のカメラからの画像に基づき、環境の変化に対しても精度よく障害物を検出すること。【解決手段】障害物検出装置１００は、画像入力部１１０が画像データを画像記憶部１２０に順次記憶させ、動きベクトル算出部１３０が画像記憶部１２０に記憶された異なる時点の画像データを基にして動きベクトルを算出する。そして、走行空間モデル生成部１６０がカメラデータ入力部１４０および車両データ入力部１５０から各種データを取得して走行空間モデルを生成し、生成した走行空間モデルから仮想動きベクトルを算出し、モデル差分ベクトル算出部１７０が動きベクトルおよび仮想動きベクトルから差分ベクトルを算出し、障害物検出部１８０が差分ベクトルから障害物を検出する。【選択図】        図２
2008140155.tif 000002
【特許請求の範囲】
【請求項１】
カメラによって撮影された画像から車両の走行に影響を及ぼす障害物を検出する障害物検出方法であって、
前記カメラから異なる時点での画像を取得して記憶装置に記憶する画像記憶工程と、
前記記憶装置に記憶された異なる時点での画像に基づいて当該画像の各領域における動きベクトルを算出する動きベクトル算出工程と、
前記車両の走行状態から当該車両の走行する空間のモデルを生成し、生成したモデルに基づいて前記画像の各領域に対応する仮想的な動きベクトルを算出する仮想動きベクトル算出工程と、
前記動きベクトルおよび前記仮想的な動きベクトルに基づいて障害物を検出する障害物検出工程と、
を含んだことを特徴とする障害物検出方法。
【請求項２】
前記仮想動きベクトル算出工程は、前記車両の回転角に基づいて前記仮想的な動きベクトルを補正することを特徴とする請求項１に記載の障害物検出方法。
【請求項３】
前記仮想動きベクトル算出工程は、前記カメラの画像ピッチに基づいて前記画像上の座標を前記モデル上の座標に変換し、前記画像の各領域に対応する仮想的な動きベクトルを算出することを特徴とする請求項１または２に記載の障害物検出方法。
【請求項４】
前記障害物検出工程は、前記画像の各領域に対する前記動きベクトルと前記各領域に対応する前記仮想的な動きベクトルとの差分を検出し、当該差分に基づいて障害物を検出することを特徴とする請求項１、２または３に記載の障害物検出方法。
【請求項５】
カメラによって撮影された画像から車両の走行に影響を及ぼす障害物を検出する障害物検出プログラムであって、
前記カメラから異なる時点での画像を取得して記憶装置に記憶する画像記憶手順と、
前記記憶装置に記憶された異なる時点での画像に基づいて当該画像の各領域における動きベクトルを算出する動きベクトル算出手順と、
前記車両の走行状態から当該車両の走行する空間のモデルを生成し、生成したモデルに基づいて前記画像の各領域に対応する仮想的な動きベクトルを算出する仮想動きベクトル算出手順と、
前記動きベクトルおよび前記仮想的な動きベクトルに基づいて障害物を検出する障害物検出手順と、
をコンピュータに実行させることを特徴とする障害物検出プログラム。
【請求項６】
カメラによって撮影された画像から車両の走行に影響を及ぼす障害物を検出する障害物検出装置であって、
前記カメラから異なる時点での画像を取得し、取得した異なる時点での画像に基づいて当該画像の各領域における動きベクトルを算出する動きベクトル算出手段と、
前記車両の走行状態から当該車両の走行する空間のモデルを生成し、生成したモデルに基づいて前記画像の各領域に対応する仮想的な動きベクトルを算出する仮想動きベクトル算出手段と、
前記動きベクトルおよび前記仮想的な動きベクトルに基づいて障害物を検出する障害物検出手段と、
を備えたことを特徴とする障害物検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、カメラによって撮影された画像から車両の走行に影響を及ぼす障害物を検出する障害物検出方法、障害物検出プログラムおよび障害物検出装置に関し、特に、単一のカメラを用いた場合であっても環境の変化に対応し、精度よく障害物を検出可能な障害物検出方法、障害物検出プログラムおよび障害物検出装置に関するものである。
【背景技術】
【０００２】
近年、交通事故による負傷者の数は増加の傾向にあるため、かかる交通事故を防止すべく様々な技術が考案され実用化されている。このような技術の中には、車載カメラの映像から走路内に侵入してくる障害物（歩行者、走行車両など）を検出して運転者に通知することで、障害物に対する注意を促し、交通事故を防止するという技術がある。
【０００３】
障害物を検出する技術としては、複数のカメラによって撮影される画像の空間的視差を利用して障害物を検出するステレオカメラ技術が公開されている（例えば、特許文献１参照）。しかし、ステレオカメラ技術を用いて障害物を検出する場合には、複数のカメラを車両に設置する必要があるため、車体設計の自由度の低下あるいはコストが高くなる等の問題があった。
【０００４】
上述した問題を解決する技術としては、複数のカメラを用いることなく、単一のカメラを用いることよって、障害物を検出するという技術がある（例えば、特許文献２および特許文献３など）。この技術は、単一のカメラを用いて異なる時間における画像間の動きベクトルを算出し、各時間における画像間の動きベクトルの差から障害物を検出する技術である。
【０００５】
具体的に、特許文献２に公開されている技術は、各画像から抽出した路面領域内の特徴点が重なるような変換行列を作成して画像を重ね合わせ、うまく重ならない画像領域を障害物として検出している。
【０００６】
また、特許文献３に公開されている技術は、異なる時間における画像を領域分割して画素の動きベクトルを算出し、またその画像の類似度の変化量を算出する。その上で、動きベクトル量が少なく、かつ、類似度の変化量が大きい領域を障害物として検出している。
【０００７】
【特許文献１】特開２００１−４１７４１号公報
【特許文献２】特開２００３−４４９９６号公報
【特許文献３】特開２００５−１００２０４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述した従来の技術では、単一のカメラによって画像を撮影し、障害物を検出する場合に、車両の走行による路面テクスチャの変動や、天候による変動（反射、影、水溜り）などの環境変化が大きいため、精度よく障害物を検出することができないという問題があった。
【０００９】
この発明は、上述した従来技術による問題点を解消するためになされたものであり、単一のカメラからの画像に基づき、環境の変化に対しても精度よく障害物を検出することができる障害物検出方法、障害物検出プログラムおよび障害物検出装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するため、本発明は、カメラによって撮影された画像から車両の走行に影響を及ぼす障害物を検出する障害物検出方法であって、前記カメラから異なる時点での画像を取得して記憶装置に記憶する画像記憶工程と、前記記憶装置に記憶された異なる時点での画像に基づいて当該画像の各領域における動きベクトルを算出する動きベクトル算出工程と、前記車両の走行状態から当該車両の走行する空間のモデルを生成し、生成したモデルに基づいて前記画像の各領域に対応する仮想的な動きベクトルを算出する仮想動きベクトル算出工程と、前記動きベクトルおよび前記仮想的な動きベクトルに基づいて障害物を検出する障害物検出工程と、を含んだことを特徴とする。
【００１１】
また、本発明は、上記発明において、前記仮想動きベクトル算出工程は、前記車両の回転角に基づいて前記仮想的な動きベクトルを補正することを特徴とする。
【００１２】
また、本発明は、上記発明において、前記仮想動きベクトル算出工程は、前記カメラの画像ピッチに基づいて前記画像上の座標を前記モデル上の座標に変換し、前記画像の各領域に対応する仮想的な動きベクトルを算出することを特徴とする。
【００１３】
また、本発明は、上記発明において、前記障害物検出工程は、前記画像の各領域に対する前記動きベクトルと前記各領域に対応する前記仮想的な動きベクトルとの差分を検出し、当該差分に基づいて障害物を検出することを特徴とする。
【００１４】
また、本発明は、カメラによって撮影された画像から車両の走行に影響を及ぼす障害物を検出する障害物検出プログラムであって、前記カメラから異なる時点での画像を取得して記憶装置に記憶する画像記憶手順と、前記記憶装置に記憶された異なる時点での画像に基づいて当該画像の各領域における動きベクトルを算出する動きベクトル算出手順と、前記車両の走行状態から当該車両の走行する空間のモデルを生成し、生成したモデルに基づいて前記画像の各領域に対応する仮想的な動きベクトルを算出する仮想動きベクトル算出手順と、前記動きベクトルおよび前記仮想的な動きベクトルに基づいて障害物を検出する障害物検出手順と、をコンピュータに実行させることを特徴とする。
【００１５】
また、本発明は、カメラによって撮影された画像から車両の走行に影響を及ぼす障害物を検出する障害物検出装置であって、前記カメラから異なる時点での画像を取得し、取得した異なる時点での画像に基づいて当該画像の各領域における動きベクトルを算出する動きベクトル算出手段と、前記車両の走行状態から当該車両の走行する空間のモデルを生成し、生成したモデルに基づいて前記画像の各領域に対応する仮想的な動きベクトルを算出する仮想動きベクトル算出手段と、前記動きベクトルおよび前記仮想的な動きベクトルに基づいて障害物を検出する障害物検出手段と、を備えたことを特徴とする。
【発明の効果】
【００１６】
本発明によれば、カメラから異なる時点での画像を取得して記憶装置に記憶し、記憶装置に記憶された異なる時点での画像に基づいて各領域における動きベクトルを算出し、車両の走行状態からこの車両の走行する空間のモデルを生成し、生成したモデルに基づいて画像の各領域に対応する仮想的な動きベクトルを算出し、動きベクトルおよび仮想的な動きベクトルに基づいて障害物を検出するので、単一のカメラを用いた場合であっても環境の変化に対応し、精度よく障害物を検出することができる。
【００１７】
また、本発明によれば、車両の回転角に基づいて仮想的な動きベクトルを補正するので、より正確に障害物を検出することができる。
【００１８】
また、本発明によれば、カメラの画像ピッチに基づいて画像上の座標をモデル上の座標に変換し、画像の各領域に対応する仮想的な動きベクトルを算出するので、動きベクトルと仮想的な動きベクトルとを正確に比較することができ、障害物検出処理にかかる精度が向上する。
【００１９】
また、本発明によれば、画像の各領域に対する動きベクトルと各領域に対応する仮想的な動きベクトルとの差分を検出し、当該差分に基づいて障害物を検出するので、簡易的かつ正確に障害物を検出することができる。
【発明を実施するための最良の形態】
【００２０】
以下に添付図面を参照して、この発明に係る障害物検出方法、障害物検出プログラムおよび障害物検出装置の好適な実施の形態を詳細に説明する。
【実施例１】
【００２１】
まず、本実施例１にかかる障害物検出装置の概要および特徴について説明する。図１は、本実施例１にかかる障害物検出装置の概要および特徴を説明するための説明図である。同図に示すように、本実施例１にかかる障害物検出装置は、カメラから異なる時点での画像を取得し、取得した各画像に基づいて画像の各領域にかかる動きベクトル（図１の上段右側を参照）を算出すると共に、車両の走行状態から仮想的な動きベクトル（図１の上段左側を参照）を算出する。そして、障害物検出装置は、動きベクトルと仮想的な動きベクトルとを対応させて各領域ごとに比較し、動きベクトルと仮想的な動きベクトルとの差分から障害物（歩行者、走行車両、走路内に進入してくる障害物など）を検出する（図１の下段参照）。
【００２２】
このように、本実施例１にかかる障害物検出装置は、異なる時点の画像から算出した動きベクトルと、車両の走行状態から算出した仮想的な動きベクトルとを基にして障害物を検出するので、単一のカメラからの画像を利用した場合であっても、環境の変化に対し精度よく障害物を検出することができる。
【００２３】
つぎに、本実施例１にかかる障害物検出装置の構成について説明する。図２は、本実施例１にかかる障害物検出装置１００の構成を示す機能ブロック図である。同図に示すように、この障害物検出装置１００は、画像入力部１１０と、画像記憶部１２０と、動きベクトル算出部１３０と、カメラデータ入力部１４０と、車両データ入力部１５０と、走行空間モデル生成部１６０と、モデル差分ベクトル算出部１７０と、障害物検出部１８０と、出力部１９０とを備えて構成される。
【００２４】
画像入力部１１０は、車載カメラ（図示略）から一定のフレームレートで画像のデータ（以下、画像データ）を取得し、取得した画像データを順次画像記憶部１２０に記憶させる処理部である。画像記憶部１２０は、画像データを記憶する記憶部である。この画像記憶部１２０は、画像内の時間差分による動きベクトルを作成するために必要なだけの画像データを保存するためのバッファを備える。
【００２５】
動きベクトル算出部１３０は、画像記憶部１２０から異なる時点での画像データを取得し（例えば、画像記憶部１２０に最後に記憶された画像データとこの画像データよりも所定時間前に撮影された画像データとを取得し）、取得した画像データを基にして画像データの各領域における動きベクトルを算出する。この動きベクトルを算出する手法は、従来のどのような手法を用いても構わないが、例えば、特許文献３において開示されている手法などを用いて動きベクトルを算出することができる。動きベクトル算出部１３０は、算出した動きベクトルのデータをモデル差分ベクトル算出部１７０に出力する。
【００２６】
カメラデータ入力部１４０は、車両に設置されたカメラに関する各種データを取得する処理部である。カメラに関する各種データは、カメラから路面までの高さを示すカメラ垂直設置位置、車両の走行する空間を仮定した場合の空間の横幅を示す走行領域幅、カメラ垂直設置位置から空間（車両の走行する空間）の上面までの高さを示す走行領域高さ、カメラからカメラの焦点位置までの距離を示すカメラ焦点距離、カメラの画素ピッチを示すカメラ画素ピッチのデータを含んでいる。カメラに関する各種パラメータは、動的に変更が行われてもよいが、予めユーザが各種パラメータを設定しておいてもよい。カメラデータ入力部１４０は、カメラに関する各種データを走行空間モデル生成部１６０に出力する。
【００２７】
車両データ入力部１５０は、車両の走行状態に関する各種データを取得する処理部である。車両の走行状態に関する各種データは、車両の速度を示す車速データ、ステアリングおよび斜面による車両のヨー、ロール、ピッチを示す車両回転角のデータを含んでいる。車速データは車速パルスなどから得ることができ、車両回転角はステアリングセンサあるいはジャイロスコープなどから得ることができる。車両データ入力部１５０は、車両の走行状態に関する各種データを走行空間モデル生成部１６０に出力する。
【００２８】
走行空間モデル生成部１６０は、カメラに関する各種データおよび車両の走行状態に関する各種データを基にして、仮想的な動きベクトル（以下、仮想動きベクトル）を算出する処理部である。以下において、走行空間モデル生成部１６０の行う処理を順に説明する。
【００２９】
まず、走行空間モデル生成部１６０は、カメラに関する各種データおよび車両の走行状態に関する各種データを基にして、走行空間モデルを生成する。走行空間モデルとは、仮想的な車両の走行環境であり、車両が時間局所的にこれから走行するであろう空間をカメラの撮影範囲を含むようにして示したモデルである。これから走行するであろうとは、あくまでも車両の舵角（車両回転角）や車速（車速データ）によって予測されるものであり、路上の白線や車線幅に本質的に依存しないものである。したがって、環境の変化に強い走行空間モデルを生成することができる。
【００３０】
図３は、走行空間モデルの一例を示す図である。図３に示す例では、車載カメラを車両前方中央に配置し、撮影範囲を矩形とした場合の、前方直進時の走行空間モデルを示している。図３に示すｈは、カメラ垂直設置位置を示し、Ｌは、走行領域幅を示し、Ｈは、走行領域高さを示す。なお、本実施例１では、カメラ垂直設置位置ｈを負数として説明する。これは、カメラの設置された位置を原点とし、この原点から鉛直上向きを正とするためである。また、走行領域幅Ｌ、走行領域高さＨは、上述したように、車両の車幅および車高そのものではなく、多少のマージンをもって定義されているものとする。
【００３１】
図３の右側は、本実施例１にかかる車載カメラから見たと仮定した走行空間モデルを示している。同図に示すように、車載カメラから見た空間モデルは、上面部、下面部、側面部に分類することができる。
【００３２】
続いて、走行空間モデル生成部１６０は、走行空間モデルを利用して、動きベクトル算出部１３０によって算出される動きベクトルに対応する仮想動きベクトルを全て算出する。ここでは、説明の便宜上、動きベクトルに対応する画像上の座標を（ｘ，ｙ）として仮想動きベクトルの算出方法を説明する。その他に座標に関する仮想動きベクトルの算出方法は座標が変更されるだけなので説明を省略する。
【００３３】
走行空間モデル生成部１６０は、画像座標系の座標（ｘ，ｙ）を、カメラ設置位置を原点としたモデル空間座標系の座標（ｕ，ｖ）に変換する。図４は、画像座標系の座標（ｘ，ｙ）をモデル空間座標系の座標（ｕ，ｖ）に変換する処理を説明するための説明図である。なお、図４では、画像の中心に消失点があるとした場合の座標変換を示している。
【００３４】
画像座標系に示すＷｉｄｔｈは、画像の横幅に含まれる画素数（以下、画像横画素数と表記する）を示し、Ｈｅｉｇｈｔは、画像の縦幅に含まれる画素数（以下、画像縦画素数）を示している。画像座標系の座標（ｘ，ｙ）をモデル空間座標系の座標（ｕ，ｖ）に変換する具体的な式は、
【数１】
2008140155.tif 000003
【数２】
2008140155.tif 000004
によって表すことができる。なお、式（１）および式（２）に含まれるｃは、カメラの画素ピッチを示す。
【００３５】
続いて、走行空間モデル生成部１６０は、走行空間モデルのどの領域（上面部、下面部、側面部；図３参照）にモデル空間座標系の座標（ｕ，ｖ）が含まれるかを判定する（領域判定を行う）。図５は、走行空間モデル生成部１６０が行う領域判定を説明するための説明図である。
【００３６】
走行空間モデル生成部１６０は、モデル空間座標系の座標（ｕ，ｖ）、カメラ垂直設置位置ｈ、走行領域幅Ｌ、走行領域高さＨの関係に基づいて、座標（ｕ，ｖ）の位置する領域を判定する。具体的に、走行空間モデル生成部１６０は、座標（ｕ，ｖ）、カメラ垂直設置位置ｈ、走行領域幅Ｌ、走行領域高さＨの関係の関係が
【数３】
2008140155.tif 000005
を満たす場合に、座標（ｕ，ｖ）が下面部に位置すると判定する。
【００３７】
一方、走行空間モデル生成部１６０は、座標（ｕ，ｖ）、カメラ垂直設置位置ｈ、走行領域幅Ｌ、走行領域高さＨの関係の関係が
【数４】
2008140155.tif 000006
を満たす場合に、座標（ｕ，ｖ）が上面部に位置すると判定する。なお、走行空間モデル生成部１６０は、座標（ｕ，ｖ）、カメラ垂直設置位置ｈ、走行領域幅Ｌ、走行領域高さＨが式（１）および式（２）のいずれの式にも該当しない場合には、座標（ｕ，ｖ）が側面部に位置すると判定する。
【００３８】
走行空間モデル生成部１６０は、領域判定による判定結果に基づいて、それぞれの領域に位置する座標（ｕ，ｖ）の仮想動きベクトルを算出する。以下において、座標（ｕ，ｖ）が下面部に位置する場合の仮想動きベクトル、上面部に位置する場合の仮想動きベクトル、側面部に位置する場合の仮想動きベクトルの算出方法について順に説明する。
【００３９】
（座標（ｕ，ｖ）が下面部に位置する場合）
座標（ｕ，ｖ）が下面部に位置する場合の仮想動きベクトル（ｄｕ，ｄｖ）の算出方法について説明する。図６は、座標（ｕ，ｖ）が下面部に位置している場合の仮想動きベクトルの算出手法を補足するための図である。図６に示すＦはカメラの焦点位置を示し、ｆはカメラから焦点までの焦点距離を示し、ｚは焦点Ｆから物体（障害物の候補となる物体）の位置Ａまでの進行方向の距離（すなわち、焦点位置Ｆから位置Ｂまでの）を示す。
【００４０】
また、Ｖは車速を示し、ｄｚは微小時間（カメラが画像を撮影するサンプルレートに対応する時間）ｄｔに移動する物体の距離を示す（図６において車両は左から右に移動し、物体は右から左に動くものとする）。また、物体Ａがｄｔ時間後に移動する位置をＡ’とし、位置Ａ’と焦点位置Ｆと含んだ直線が鉛直方向の軸（ｖ軸）と交わる位置をＣとした定義した場合に、ｖと位置Ｃとの差をｄｖとする。
【００４１】
図６に示すように、三角形の相似の関係から、
【数５】
2008140155.tif 000007
となる関係式（５）を導くことができ、式（５）より、
【数６】
2008140155.tif 000008
【数７】
2008140155.tif 000009
を導くことができる。
【００４２】
そして、式（６）をｚで微分することによって、
【数８】
2008140155.tif 000010
を導くことができ、
式（８）から座標（ｕ，ｖ）のｖ軸成分の仮想動きベクトルｄｖを
【数９】
2008140155.tif 000011
によって表すことができる。
【００４３】
一方、座標（ｕ，ｖ）におけるｕおよびｖの関係式は、
【数１０】
2008140155.tif 000012
によって表すことができ、式（９）および式（１０）から座標（ｕ，ｖ）のｕ軸成分の仮想動きベクトルｄｕを
【数１１】
2008140155.tif 000013
によって表すことができる。
【００４４】
（座標（ｕ，ｖ）が上面部に位置する場合）
続いて、座標（ｕ，ｖ）が上面部に位置する場合の仮想動きベクトル（ｄｕ，ｄｖ）の算出方法について説明する。座標（ｕ，ｖ）が上面部に位置する場合には、上述した式（５）〜式（１１）に含まれるカメラ垂直設置位置ｈを走行領域高さＨに変えることによって求めることができる。具体的には、座標（ｕ，ｖ）が上面部に位置する場合の仮想動きベクトルを（ｄｕ，ｄｖ）を
【数１２】
2008140155.tif 000014
【数１３】
2008140155.tif 000015
によって表すことができる。
【００４５】
（座標（ｕ，ｖ）が側面部に位置する場合）
続いて、座標（ｕ，ｖ）が側面部に位置する場合の仮想動きベクトル（ｄｕ，ｄｖ）の算出方法について説明する。図７は、座標（ｕ，ｖ）が側面部に位置している場合の仮想動きベクトルの算出手法を補足するための図である。図７に示すＦはカメラの焦点位置を示し、ｆはカメラから焦点までの焦点距離を示し、ｚは焦点Ｆから物体（障害物の候補となる物体）Ｄの水平方向成分Ｅまでの距離を示す。
【００４６】
また、Ｖは車速を示し、ｄｚは微小時間（カメラが画像を撮影するサンプルレートに対応する時間）ｄｔに移動する物体の距離を示す（図７において車両は左から右に移動し、物体は右から左に動くものとする）。また、物体Ｄがｄｔ時間後に移動する位置をＤ’とし、位置Ｄ’と焦点位置Ｆと含んだ直線がｕ軸と交わる位置をＧとした定義した場合に、ｖと位置Ｇとの差をｄｖとすると、座標（ｕ，ｖ）が側面に位置する場合の仮想動きベクトル（ｄｕ，ｄｖ）は、図７に示す関係から
【数１４】
2008140155.tif 000016
【数１５】
2008140155.tif 000017
によって表すことができる。
【００４７】
図２の説明に戻ると、走行空間モデル生成部１６０は、各座標に対応する仮想動きベクトルを算出した後に、座標と仮想動きベクトルとを対応付けたデータをモデル差分ベクトル算出部１７０に出力する。図８は、走行空間モデル生成部１６０によって算出される仮想動きベクトルの一例を示す図である。走行空間モデル生成部１６０で結果として算出される仮想動きベクトルは、定義した走行空間の境界上に静止物体が存在した場合における画像内の動きを意味する。そのため、例えば、車速が上がると、画像間の動き量も大きくなり、仮想動きベクトルの値も大きくなる。また、図８に示すように、車両に近づくにつれて仮想動きベクトルの値が大きくなる。
【００４８】
モデル差分ベクトル算出部１７０は、動きベクトル算出部１３０から取得する動きベクトルと走行空間モデル生成部１６０から取得する仮想動きベクトルとを対応させて各領域ごとに比較し、各領域ごとに動きベクトルと仮想動きベクトルとの差分となる差分ベクトルを算出する処理部である。なお、動きベクトルに対応する領域に複数の座標が含まれ、単一の動きベクトルに複数の仮想動きベクトルが対応している場合には、仮想動きベクトルの平均値を用いて差分ベクトルを算出してもよいし、代表となる仮想動きベクトルを判定して差分ベクトルを算出してもよい。モデル差分ベクトル算出部１７０は、各領域ごとの差分ベクトルのデータを障害物検出部１８０に出力する。
【００４９】
障害物検出部１８０は、差分ベクトルのデータを取得し、取得した差分ベクトルのデータを基にして障害物を検出する処理部である。具体的に、障害物検出部１８０は、各領域の差分ベクトルを基にして検出候補となるベクトルと検出候補とならないベクトルとを判定し、検出候補となるベクトルのベクトル分布によって障害物を検出する。ベクトル分布から障害物を検出する方法は、従来の検出方法を用いればよい。
【００５０】
ここで、検出候補とならないベクトルおよび検出候補となるベクトルの判定方法について説明する。障害物検出部１８０は、動きベクトルと仮想動きベクトルとの差分ベクトルが閾値未満の場合には、かかる差分ベクトルを遠景もしくは微細なノイズと判定し、これを除外する。特に、差分ベクトルが０の場合は、走行空間境界上の静止物となる。
【００５１】
一方、障害物検出部１８０は、動きベクトルと仮想動きベクトルとの差分ベクトルが閾値以上の場合には、かかる差分ベクトルを検出候補となるベクトルとして判定する。障害物検出部１８０は、検出した障害物のデータを障害物通知データとして出力部１９０に出力する。
【００５２】
出力部１９０は、各種情報をモニタ（もしくはディスプレイ、タッチパネル）やスピーカなどに出力する処理部である。出力部１９０は、例えば、障害物検出部１８０から障害物通知データを取得した場合に、取得した障害物通知データをディスプレイに表示させる。図９は、ディスプレイに表示される障害物通知データの一例を示す図である。同図に示すように、障害物に対応する領域がマーキングされている。
【００５３】
つぎに、本実施例１にかかる障害物検出装置１００の処理手順について説明する。図１０は、本実施例１にかかる障害物検出装置１００の処理手順を示すフローチャートである。同図に示すように、画像入力部１１０が画像データを取得し（ステップＳ１０１）、画像データを画像記憶部１２０に記憶し（ステップＳ１０２）、動きベクトル算出部１３０が異なる時点での画像データを画像記憶部１２０から取得して各領域ごとに動きベクトルを算出する（ステップＳ１０３）。
【００５４】
そして、カメラデータ入力部１４０は、カメラに関する各種データを取得し（ステップＳ１０４）、車両データ入力部１５０が車両の走行状態に関する各種データを取得し（ステップＳ１０５）、走行空間モデル生成部１６０がカメラに関する各種データおよび車両の走行状態に関する各種データを基にして走行空間モデルを生成し（ステップＳ１０６）、動きベクトルの領域に対応する座標の仮想動きベクトルを算出する（ステップＳ１０７）。
【００５５】
続いて、モデル差分ベクトル算出部１７０は、動きベクトル算出部１３０から取得する動きベクトルと走行空間モデル生成部１６０から取得する仮想動きベクトルとを各領域ごとに比較し、各領域ごとに動きベクトルと仮想動きベクトルとの差分となる差分ベクトルを算出し（ステップＳ１０８）、障害物検出部１８０は各領域ごとの差分ベクトルを基にして、障害物を検出し（ステップＳ１０９）、障害物のデータを出力部１９０に出力する（ステップＳ１１０）。
【００５６】
このように、モデル差分ベクトル算出部１７０が動きベクトルと仮想動きベクトルから差分ベクトルを算出し、障害物検出部１８０が差分ベクトルに基づいて障害物を検出するので、環境の変化によらず精度よく障害物を検出することができる。
【００５７】
上述してきたように、本実施例１にかかる障害物検出装置１００は、画像入力部１１０が画像データを画像記憶部１２０に順次記憶させ、動きベクトル算出部１３０が画像記憶部１２０に記憶された異なる時点の画像データを基にして動きベクトルを算出する。そして、走行空間モデル生成部１６０がカメラデータ入力部１４０および車両データ入力部１５０から各種データを取得して走行空間モデルを生成し、生成した走行空間モデルから仮想動きベクトルを算出し、モデル差分ベクトル算出部１７０が動きベクトルおよび仮想動きベクトルから差分ベクトルを算出し、障害物検出部１８０が差分ベクトルから障害物を検出するので、単一のカメラを用いた場合であっても、環境変化の影響を受けることなく障害物を精度よく検出することができる。また、複数のカメラを利用する必要がないので、コストを削減することができると共に、車両設計の自由度を向上させることができる。
【００５８】
また、障害物検出部１８０が差分ベクトルの大きさに応じて、障害物を検出する場合に、差分ベクトルの値が閾値未満となる差分ベクトルを取り除くマスク処理を実行するので、不要な演算を省略することができ、障害物検出部１８０の障害物検出処理にかかる負担を軽減させることができる。
【実施例２】
【００５９】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例１以外にも、種々の異なる形態にて実施されてもよいものである。そこで、以下では実施例２として本発明に含まれる他の実施例を説明する。
【００６０】
（１）障害物の検出方法
障害物検出部１８０が障害物を検出する場合に、あるフレームにおいて障害物が境界外で動き、実際は境界上ではないにも関わらず、境界上の動きベクトルと一致して障害物候補から除外されてしまうような場合もありえるが、これは瞬間的な一致で、継続的に境界部分と一致するような動作をすることはなく、継続的な障害物検出を行えば、適切に障害物を検出することができる。より正確に障害物を検出するための対策として、画像記憶部１２０に記憶された最新の画像データではなく、過去のある異なる時点での画像フレームを読み出して障害物検出を行っても良い。また、障害物検出部１８０は、前フレームで検出した障害物に対して物体追跡処理などを併用することによって障害物検出の精度を向上させることができる。さらに、障害物検出部１８０は、同一の障害物の領域を検出する場合に、差分ベクトルだけではなく、水平・垂直エッジなどの特徴量を併用してもよい。
【００６１】
（２）車両との連携
上記の実施例１では、障害物検出装置１００は、障害物を検出した場合に、モニタに障害物の情報を表示する例を示したが、これに限定されるものではなく、車両と連携して各種処理を実行することができる。例えば、障害物検出装置１００が車両の前方で障害物を検出した場合には、車速を制御する制御部に減速命令を出力し、車両の安全を確保することができる。また、障害物検出装置１００が前方で障害物を検出している時点で、運転者が急ブレーキをかけた場合には、車両を制御する制御部と協働して、障害物を回避するようにハンドル制御を行っても良い。
【００６２】
（３）車両回転角を反映した仮想動きベクトルの算出
上記の実施例１では、車両がまっすぐに走行している場合の仮想動きベクトル算出方法について説明したが、車両回転角に応じて、仮想動きベクトルの値は補正される。ここでは一例として、ヨー車両回転角を反映させた仮想動きベクトルの算出方法について説明する。図１１は、仮想動きベクトルの補正方法を補足説明するための説明図である。
【００６３】
座標（ｕ，ｖ）は、モデル空間座標系における１座標だが、ヨー車両回転角においてはｖに依存せず、常に補正値は０である。すなわち、実施例１で求めた仮想動きベクトルのｖ成分ｄｖの値そのものとなる。一方、ｕは、焦点距離ｆとなる焦点Ｆと、座標軸との交点において、角θをなしている。
【００６４】
このとき、ヨー車両回転角がｄθであった場合、それは単位時間当たりの回転各θyと微小時間ｄｔによって表せるため、補正量ｄｕを算出することができる。以下に、補正量ｄｕを導く式を示す。
【数１６】
2008140155.tif 000018
より
【数１７】
2008140155.tif 000019
ここで
【数１８】
2008140155.tif 000020
であるため、補正量ｄｕは
【数１９】
2008140155.tif 000021
となる。補正後のｕ成分の仮想動きベクトルは、実施例１で求めた仮想ベクトルのｕ成分ｄｕに補正量ｄｕを加算したものとなる。なお、他の車両回転角（ロール車両回転角、ピッチ車両回転角）も同様に算出することができる。
【００６５】
図１２は、ヨー車両回転角度による仮想動きベクトルの違いを示す図である。上段は、車両が右回転している場合の仮想動きベクトルを示し、下段は、車両が左回転している場合の仮想動きベクトルを示している。
【００６６】
（４）システムの構成など
本実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部あるいは一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００６７】
また、図示した障害物検出装置１００の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行われる各処理機能は、その全部または任意の一部がＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００６８】
図１３は、図２に示した障害物検出装置１００を構成するコンピュータのハードウェア構成を示す図である。このコンピュータは、ユーザからのデータの入力を受け付ける入力装置３０、モニタ３１、ＲＡＭ（Random  Access  Memory）３２、ＲＯＭ（Read  Only  Memory）３３、各種プログラムを記録した記録媒体からプログラムを読み取る媒体読取装置３４、画像を撮影するカメラ３５、車両の走行状態を検出する走行状態検出装置（ステアリングセンサ、車速パルス、ジャイロスコープなどに対応）３６、ＣＰＵ（Central  Processing  Unit）３７、および、ＨＤＤ（Hard  Disk  Drive）３８をバス３９で接続して構成される。
【００６９】
そして、ＨＤＤ３８には、上述した障害物検出装置１００の機能と同様の機能を発揮する障害物検出プログラム３８ｂが記憶されている。そして、ＣＰＵ３７が、障害物検出プログラム３８ｂをＨＤＤ３８から読み出して実行することにより、上述した障害物検出装置１００の機能部の機能を実現する障害物検出プロセス３７ａが起動される。この障害物検出プロセス３７ａは、図２に示した画像入力部１１０、動きベクトル算出部１３０、カメラデータ入力部１４０、車両データ入力部１５０、走行空間モデル生成部１６０、モデル差分ベクトル算出部１７０、障害物検出部１８０、出力部１９０に対応する。
【００７０】
また、ＨＤＤ３８には、上述した障害物検出装置１００において説明した各機能部に利用される各種データ３８ａが記憶される。ＣＰＵ３７は、各種データ３８ａをＨＤＤ３８に記憶するとともに、各種データ３８ａをＨＤＤ３８から読み出してＲＡＭ３２に格納し、ＲＡＭ３２に格納された各種データ３２ａを利用して障害物検出処理を実行する。
【００７１】
ところで、障害物検出プログラム３８ｂは、必ずしも最初からＨＤＤ３８に記憶させておく必要はない。たとえば、コンピュータに挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」、または、コンピュータの内外に備えられるハードディスクドライブ（ＨＤＤ）などの「固定用の物理媒体」、さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータに接続される「他のコンピュータ（またはサーバ）」などに障害物検出プログラム３８ｂを記憶しておき、コンピュータがこれらから障害物検出プログラム３８ｂを読み出して実行するようにしてもよい。
【００７２】
（付記１）カメラによって撮影された画像から車両の走行に影響を及ぼす障害物を検出する障害物検出方法であって、
前記カメラから異なる時点での画像を取得して記憶装置に記憶する画像記憶工程と、
前記記憶装置に記憶された異なる時点での画像に基づいて当該画像の各領域における動きベクトルを算出する動きベクトル算出工程と、
前記車両の走行状態から当該車両の走行する空間のモデルを生成し、生成したモデルに基づいて前記画像の各領域に対応する仮想的な動きベクトルを算出する仮想動きベクトル算出工程と、
前記動きベクトルおよび前記仮想的な動きベクトルに基づいて障害物を検出する障害物検出工程と、
を含んだことを特徴とする障害物検出方法。
【００７３】
（付記２）前記仮想動きベクトル算出工程は、前記車両の回転角に基づいて前記仮想的な動きベクトルを補正することを特徴とする付記１に記載の障害物検出方法。
【００７４】
（付記３）前記仮想動きベクトル算出工程は、前記カメラの画像ピッチに基づいて前記画像上の座標を前記モデル上の座標に変換し、前記画像の各領域に対応する仮想的な動きベクトルを算出することを特徴とする付記１または２に記載の障害物検出方法。
【００７５】
（付記４）前記障害物検出工程は、前記画像の各領域に対する前記動きベクトルと前記各領域に対応する前記仮想的な動きベクトルとの差分を検出し、当該差分に基づいて障害物を検出することを特徴とする付記１、２または３に記載の障害物検出方法。
【００７６】
（付記５）カメラによって撮影された画像から車両の走行に影響を及ぼす障害物を検出する障害物検出プログラムであって、
前記カメラから異なる時点での画像を取得して記憶装置に記憶する画像記憶手順と、
前記記憶装置に記憶された異なる時点での画像に基づいて当該画像の各領域における動きベクトルを算出する動きベクトル算出手順と、
前記車両の走行状態から当該車両の走行する空間のモデルを生成し、生成したモデルに基づいて前記画像の各領域に対応する仮想的な動きベクトルを算出する仮想動きベクトル算出手順と、
前記動きベクトルおよび前記仮想的な動きベクトルに基づいて障害物を検出する障害物検出手順と、
をコンピュータに実行させることを特徴とする障害物検出プログラム。
【００７７】
（付記６）前記仮想動きベクトル算出手順は、前記車両の回転角に基づいて前記仮想的な動きベクトルを補正することを特徴とする付記５に記載の障害物検出プログラム。
【００７８】
（付記７）前記仮想動きベクトル算出手順は、前記カメラの画像ピッチに基づいて前記画像上の座標を前記モデル上の座標に変換し、前記画像の各領域に対応する仮想的な動きベクトルを算出することを特徴とする付記５または６に記載の障害物検出プログラム。
【００７９】
（付記８）前記障害物検出手順は、前記画像の各領域に対する前記動きベクトルと前記各領域に対応する前記仮想的な動きベクトルとの差分を検出し、当該差分に基づいて障害物を検出することを特徴とする付記５、６または７に記載の障害物検出プログラム。
【００８０】
（付記９）カメラによって撮影された画像から車両の走行に影響を及ぼす障害物を検出する障害物検出装置であって、
前記カメラから異なる時点での画像を取得し、取得した異なる時点での画像に基づいて当該画像の各領域における動きベクトルを算出する動きベクトル算出手段と、
前記車両の走行状態から当該車両の走行する空間のモデルを生成し、生成したモデルに基づいて前記画像の各領域に対応する仮想的な動きベクトルを算出する仮想動きベクトル算出手段と、
前記動きベクトルおよび前記仮想的な動きベクトルに基づいて障害物を検出する障害物検出手段と、
を備えたことを特徴とする障害物検出装置。
【００８１】
（付記１０）前記仮想動きベクトル算出手段は、前記車両の回転角に基づいて前記仮想的な動きベクトルを補正することを特徴とする付記９に記載の障害物検出装置。
【００８２】
（付記１１）前記仮想動きベクトル算出手段は、前記カメラの画像ピッチに基づいて前記画像上の座標を前記モデル上の座標に変換し、前記画像の各領域に対応する仮想的な動きベクトルを算出することを特徴とする付記９または１０に記載の障害物検出装置。
【００８３】
（付記１２）前記障害物検出手段は、前記画像の各領域に対する前記動きベクトルと前記各領域に対応する前記仮想的な動きベクトルとの差分を検出し、当該差分に基づいて障害物を検出することを特徴とする付記９、１０または１１に記載の障害物検出装置。
【産業上の利用可能性】
【００８４】
以上のように、本発明にかかる障害物検出方法、障害物検出プログラムおよび障害物検出装置は、車両の走行に影響を及ぼす障害物を検出する障害物検出システムなどに有用であり、特に、カメラ台数を制限し、車両設計の自由度を向上させると共に、環境変化に対応して正確に障害物を検出する必要がある場合に適している。
【図面の簡単な説明】
【００８５】
【図１】本実施例１にかかる障害物検出装置の概要および特徴を説明するための説明図である。
【図２】本実施例１にかかる障害物検出装置の構成を示す機能ブロック図である。
【図３】走行空間モデルの一例を示す図である。
【図４】画像座標系の座標（ｘ，ｙ）をモデル空間座標系の座標（ｕ，ｖ）に変換する処理を説明するための説明図である。
【図５】走行空間モデル生成部が行う領域判定を説明するための説明図である。
【図６】座標（ｕ，ｖ）が下面部に位置している場合の仮想動きベクトルの算出手法を補足するための図である。
【図７】座標（ｕ，ｖ）が側面部に位置している場合の仮想動きベクトルの算出手法を補足するための図である。
【図８】走行空間モデル生成部によって算出される仮想動きベクトルの一例を示す図である。
【図９】ディスプレイに表示される障害物通知データの一例を示す図である。
【図１０】本実施例１にかかる障害物検出装置の処理手順を示すフローチャートである。
【図１１】仮想動きベクトルの補正方法を補足説明するための説明図である。
【図１２】ヨー車両回転角度による仮想動きベクトルの違いを示す図である。
【図１３】図２に示した障害物検出装置を構成するコンピュータのハードウェア構成を示す図である。
【符号の説明】
【００８６】
３０    入力装置
３１    モニタ
３２    ＲＡＭ
３２ａ，３８ａ  各種データ
３３    ＲＯＭ
３４    媒体読取装置
３５    カメラ
３６    走行状態検出装置
３７    ＣＰＵ
３７ａ  障害物検出プロセス
３８    ＨＤＤ
３８ｂ  障害物検出プログラム
３９    バス
１００    障害物検出装置
１１０    画像入力部
１２０    画像記憶部
１３０    動きベクトル算出部
１４０    カメラデータ入力部
１５０    車両データ入力部
１６０    走行空間モデル生成部
１７０    モデル差分ベクトル算出部
１８０    障害物検出部
１９０    出力部
【図１】
2008140155.tif 000022
【図２】
2008140155.tif 000023
【図３】
2008140155.tif 000024
【図４】
2008140155.tif 000025
【図５】
2008140155.tif 000026
【図６】
2008140155.tif 000027
【図７】
2008140155.tif 000028
【図８】
2008140155.tif 000029
【図９】
2008140155.tif 000030
【図１０】
2008140155.tif 000031
【図１１】
2008140155.tif 000032
【図１２】
2008140155.tif 000033
【図１３】
2008140155.tif 000034