(57)【要約】【課題】物体の検出精度の向上を図ると共に、検出した物体の識別を可能とする。【解決手段】デンス視差生成部１２が、ステレオカメラ部１からのステレオ画像から、画素毎に距離情報を備えたデンス視差画像を生成する。ヒストグラム生成部１５は、デンス視差画像上をｘ方向またはｙ方向に視差情報を投票することでヒストグラムを生成する。範囲決定部１６は、ヒストグラムから、各距離に存在する立体物の探索範囲を決定する。識別部１７は、決定された探索範囲のデンス視差画像を、決定された探索範囲の視差情報を閾値として用いて２値化する。そして、識別部１７は、立体物の形状、白領域の割合、および白領域の重心の位置等から立体物を識別する。【選択図】図２
2015172846.tif 000002
【特許請求の範囲】
【請求項１】
視点と被写体との間の距離を示す距離情報を画素毎に備えた距離画像から、前記被写体の探索範囲を決定する範囲決定部と、
前記距離画像上の前記探索範囲内における前記被写体の形状から、前記被写体の識別を行う識別部と
を有する画像処理装置。
【請求項２】
前記距離画像は、前記視点と前記被写体との間の距離を画素毎に算出した前記距離情報を備えること
を特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記距離画像のｘ方向の前記距離情報、またはｙ方向の前記距離情報を投票したヒストグラムを生成するヒストグラム生成部をさらに備え、
前記範囲決定部は、前記ヒストグラムを用いて、前記視点との間の各距離に存在する前記被写体の探索範囲を決定すること
を特徴とする請求項１または請求項２に記載の画像処理装置。
【請求項４】
前記識別部は、前記探索範囲内の前記被写体の距離情報を閾値として用いて、前記探索範囲に相当する距離画像を２値化することで、前記探索範囲内の被写体と背景とを分離し、分離した被写体の形状から前記被写体の識別を行うこと
を特徴とする請求項１から請求項３のうち、いずれか一項に記載の画像処理装置。
【請求項５】
前記識別部は、前記探索範囲内の前記被写体の距離情報を閾値として用いて、前記探索範囲に相当する距離画像を２値化することで、前記探索範囲内の被写体と背景とを分離し、分離した前記被写体のエッジを検出し、検出したエッジで示される前記被写体の形状から、前記被写体を識別すること
を特徴とする請求項１から請求項３のうち、いずれか一項に記載の画像処理装置。
【請求項６】
視点と被写体との間の距離を示す距離情報を備えた距離画像から、前記被写体の探索範囲を決定する範囲決定部と、
前記距離画像上の前記探索範囲内における前記被写体の形状から、前記被写体の識別を行う識別部と、
前記識別部による前記被写体の識別結果に応じて機器制御を行う機器制御部と
を有する機器制御システム。
【請求項７】
コンピュータを、
視点と被写体との間の距離を示す距離情報を備えた距離画像から、前記被写体の探索範囲を決定する範囲決定部と、
前記距離画像上の前記探索範囲内における前記被写体の形状から、前記被写体の識別を行う識別部として機能させること
を特徴とする画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、機器制御システム、および画像処理プログラムに関する。
【背景技術】
【０００２】
近年、車載カメラで撮影された画像を用いて物体認識を行い、この物体認識結果に基づいて運転支援を行う運転支援システムが知られている。具体的には、車載カメラで撮影された画像から前方の障害物を認識し、自車両に対して衝突の危険性があるときに、自動的にブレーキ制御を行うＡＥＢＳが知られている。ＡＥＢＳは、「Advanced  Emergency  Braking  System（自動緊急ブレーキシステム）」の略記である。また、運転者がアクセル操作を行わなくても、予め設定された一定の走行速度で自動走行し、車載カメラで撮影された画像から前方に他の車両を認識した際に、走行速度を調整して車間距離を維持しながら自動走行を継続するＡＣＣＳが知られている。ＡＣＣＳは、「Adaptive  Cruise  Control  System（アダプティブクルーズコントロールシステム）」の略記である。
【０００３】
このような運転支援システムの制御は、車載カメラで撮影された画像から、先行車両等の立体物を正確に検出する必要がある。特許文献１（特開２０００−２６６５３９号公報）には、車間距離計測の確実性を向上させた車間距離計測装置が開示されている。この車間距離計測装置は、二つの車載カメラによるステレオ画像から距離画像（視差画像）を生成して先行車両の位置を検出する。また、車間距離計測装置は、検出した先行車両位置に、先行車両までの距離をもとに、先行車両の上下端を含む大きさの縦長のウインドウを複数設定する。また、車間距離計測装置は、複数のウインドウ内において、ｙ座標毎の水平エッジのヒストグラムを求める。そして、車間距離計測装置は、エッジのヒストグラムから検出した先行車両上のエッジについて移動ベクトルを計測し、視差から求めた車間距離の変化と適合する方向および大きさの移動ベクトルを示すエッジだけを先行車両のエッジとして選択する。これにより、例えば歩道橋、白線、路面表示等の先行車両以外の強度の強い物体のエッジを誤検出することなく、確実に先行車両のエッジを検出できる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１に開示されている車間距離計測装置は、ステレオ画像から生成したエッジベースの視差画像（物体のエッジ部分の視差情報を有する画像）を用いている。このため、物体の検出精度が低い問題があった。また、エッジベースの視差画像を用いることで物体（立体物）を検出できても、例えば車両，歩行者，標識等の、検出した物体の「識別」を行うことは困難であった。
【０００５】
本発明は、上述の課題に鑑みてなされたものであり、物体の検出精度の向上を図ると共に、検出した物体の識別を可能とする画像処理装置、機器制御システム、および画像処理プログラムの提供を目的とする。
【課題を解決するための手段】
【０００６】
本発明は、上述した課題を解決するための手段として、視点と被写体との間の距離を示す距離情報を画素毎に備えた距離画像から、被写体の探索範囲を決定する範囲決定部と、距離画像上の探索範囲内における被写体の形状から、被写体の識別を行う識別部とを有する。
【発明の効果】
【０００７】
本発明によれば、物体の検出精度の向上を図ることができるうえ、検出した物体の識別を可能とすることができるという効果を奏する。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施の形態の立体物識別装置のハードウェア構成図である。
【図２】図２は、実施の形態の立体物識別装置の要部の機能ブロック図である。
【図３】図３は、デンスステレオマッチング処理を説明するための図である。
【図４】図４は、実施の形態の立体物識別装置のヒストグラム生成部により生成されるＶマップおよびＵマップを示す図である。
【図５】図５は、立体物と、Ｖマップ上のヒストグラムおよびＵマップ上のヒストグラムとの関係を説明するための図である。
【図６】図６は、実施の形態の立体物認識装置において、Ｖマップを走査して探索範囲を決定する流れを示すフローチャートである。
【図７】図７は、実施の形態の立体物認識装置において、Ｕマップを走査して探索範囲を決定する流れを示すフローチャートである。
【図８】図８は、実施の形態の立体物認識装置における立体物の識別処理の流れを示すフローチャートである。
【図９】図９は、実施の形態の立体物認識装置の立体物の識別時において、デンス視差画像を２値化して生成された２値化画像を示す図である。
【発明を実施するための形態】
【０００９】
以下、本発明に係る画像処理装置、機器制御システム、および画像処理プログラムを適用した実施の形態となる立体物識別装置を、添付図面を参照しながら詳細に説明する。なお、以下、一例として、実施の形態となる立体物識別装置は、車両に設けられており、立体物の識別結果が、ＡＥＢＳまたはＡＣＣＳ等の運転支援システムの制御に用いられることとして説明を行う。ＡＥＢＳは、「Advanced  Emergency  Braking  System（自動緊急ブレーキシステム）」の略記である。また、ＡＣＣＳは、「Adaptive  Cruise  Control  System（アダプティブクルーズコントロールシステム）」の略記である。
【００１０】
まず、図１に、実施の形態の立体物識別装置のハードウェア構成図を示す。この図１に示すように実施の形態の立体物識別装置は、ステレオカメラ部１、ＣＰＵ２、ＲＯＭ３、ＲＡＭ４、ＨＤＤ５、入出力Ｉ／Ｆ６、および通信Ｉ／Ｆ７を有している。ＣＰＵは、「Central  Processing  Unit」の略記である。ＲＯＭは、「Read  Only  Memory」の略記である。ＲＡＭは、「Random  Access  Memory」の略記である。ＨＤＤは、「Hard  Disk  Drive」の略記である。Ｉ／Ｆは、「interface（インターフェース）」の略記である。
【００１１】
ステレオカメラ部１〜通信Ｉ／Ｆ７は、それぞれバスライン８を介して相互に接続されている。ＨＤＤ５には、後述するデンス視差画像（ｄｅｎｓｅ視差画像）内の立体物（被写体）を認識して識別する画像処理プログラムが記憶されている。なお、画像処理プログラムは、ＲＯＭ３またはＲＡＭ４に記憶してもよい。ＣＰＵ２は、ＨＤＤ５に記憶されている画像処理プログラムに従って動作することで、立体物の識別処理を行う。
【００１２】
図２に、ＨＤＤ５に記憶されている画像処理プログラムに従って動作することで実現されるＣＰＵ２の機能ブロック図を示す。この図２に示すように、ＣＰＵ２は、補正部１１、デンス視差生成部１２、立体物認識ブロック１３として機能する。また、立体物認識ブロック１３としては、ＣＰＵ２は、ヒストグラム生成部１５、範囲決定部１６、および識別部１７として機能する。なお、補正部１１、デンス視差生成部１２、ヒストグラム生成部１５、範囲決定部１６、および識別部１７は、全部または一部をハードウェアで形成してもよい。
【００１３】
図２に示すように、ステレオカメラ部１は、右カメラ部１ａおよび左カメラ部１ｂを有する。各カメラ部１ａ，１ｂは、レンズ（図３の符号１９ａまたは符号１９ｂ）および画像センサ（図３の符号２０ａまたは符号２０ｂ）を備えている。画像センサとしては、例えばＣＣＤイメージセンサまたはＣＭＯＳイメージセンサを用いることができる。ＣＣＤは、「Charge  Coupled  Device)」の略記である。また、ＣＭＯＳは、「Complementary  Metal-Oxide  Semiconductor」の略記である。各カメラ部１ａ，１ｂは、例えば自車両の前方の被写体を撮像することで、それぞれ輝度画像（右輝度画像または左輝度画像）を生成し、補正部１１に供給する。
【００１４】
補正部１１は、レンズ（図３の符号１９ａまたは符号１９ｂ）の歪みの影響、および各カメラ部１ａ，１ｂの設置誤差の影響を各輝度画像から除去する補正等を行い、補正した各輝度画像をデンス視差生成部１２に供給する。デンス視差生成部１２においては、左右のカメラ部１ａ，１ｂ間で歪みの差がない画像を用いて、以下に説明するデンスステレオマッチング処理を行うことが好ましい。このため、補正部１１による上述の補正は、デンス視差生成部１２の前段で行う。
【００１５】
デンス視差生成部１２は、補正部１１で歪み補正された左右の輝度画像間の画素のズレを算出するデンスステレオマッチング処理を行う。図３を用いてデンスステレオマッチング処理を説明する。この図３は、左右のカメラ部１ａ，１ｂで立体物ＲＢを撮像している様子を示している。各カメラ部１ａ，１ｂは、レンズ１９ａまたはレンズ１９ｂと、画像センサ２０ａまたは画像センサ２０ｂとを備えている。各カメラ部１ａ，１ｂの焦点距離は「ｆ」となっている。また、右カメラ部１ａと左カメラ部１ｂとの間の距離（レンズ１９ａの中心とレンズ１９ｂの中心との間の距離）は、「Ｂ」となっている。また、ステレオカメラ部１と立体物ＲＢとの間の距離は、「Ｚ」となっている。また、ステレオカメラ部１と立体物ＲＢとの間の距離「Ｚ」は、視点と被写体との間の距離となっている。
【００１６】
また、各カメラ部１ａ，１ｂは物理的に異なる位置から同じ立体物ＲＢを撮像する。このため、右カメラ部１ａで撮像された撮像画像ＧＬと、左カメラ部１ｂで撮像された撮像画像ＧＲとを見比べて分かるように、各撮像画像ＧＬ，ＧＲ間で画素ズレが発生する。この各撮像画像ＧＬ，ＧＲ間の各画素のズレ量を視差ｄとしている。デンス視差生成部１２は、各カメラ部１ａ，１ｂ間の距離Ｂと、焦点距離ｆをパラメータとして、「Ｚ＝Ｂ×（ｆ／ｄ）」の演算を行うことで、視差ｄをステレオカメラ部１と立体物ＲＢとの間の距離Ｚに変換する。デンス視差生成部１２は、このような演算を画素毎に行い、各画素の座標情報に、算出した各画素の距離情報（視差情報ともいう）を付加して出力する。各画素の座標情報および視差情報は、ＲＡＭ４に書き込まれる。これにより、ＲＡＭ４には、座標情報および視差情報を備えた各画素情報が画像のフレーム毎に記憶される。
【００１７】
なお、ＲＡＭ４に書き込まれる１フレームの各画素情報としては、座標位置およびステレオカメラ部１から立体物の各画素に対応する位置までの距離が分かればよい。このため、例えば立体物に反射したレーダー波を受信するまでの時間で、立体物との間の距離を検出する、いわゆるレーダー測距を画素毎に行い、各画素の座標情報およびレーダー測距で得られた距離情報（＝視差情報）を、画素情報としてＲＡＭ４に書き込んでもよい。
【００１８】
次に、ヒストグラム生成部１５は、デンス視差生成部１２で得た距離画像上をｘ方向またはｙ方向に視差情報を投票して生成した２次元視差ヒストグラム（以下、単にヒストグラムという）を用いて、各距離に存在する立体物の探索範囲を決定する。具体的には、ヒストグラム生成部１５は、ＲＡＭ４に書き込まれた各フレームの画像毎に、ＵマップまたはＶマップと呼ばれるヒストグラムを生成する。図４に、ヒストグラムの一例を示す。図４の（ａ）の符号を付した図は、ＲＡＭ４に書き込まれた各画素の視差情報の並びの一例を示している。また、図４の（ｂ）の符号を付した図は、ヒストグラム生成部１５が生成するＶマップの一例を示している。また、図４の（ｃ）の符号を付した図は、ヒストグラム生成部１５が生成するＵマップの一例を示している。
【００１９】
ヒストグラム生成部１５は、Ｖマップを生成する場合、図４の（ａ）の符号を付した図に示す各視差情報をｘ方向（横方向＝行方向）に走査し、同じ視差情報の数を、縦軸をｙ方向の位置、横軸を各行の同じ視差情報の数としたヒストグラムにマッピングする。
【００２０】
具体的には、図４の（ａ）の符号を付した図の例の場合、第１行目の視差情報は、それぞれ「３，２，１，２，３・・・」となっている。なお、「３，２，１，２，３・・・」等の各視差情報の値は、数字が大きいほど、遠い距離であることを示している。例えば、「３」の視差情報の距離は、「２」の視差情報の距離よりも遠い距離であることを示している。ヒストグラム生成部１５は、図４の（ｂ）の符号を付した図に示すように、０の視差情報は０個、１の視差情報は１個、２の視差情報は２個、３の視差情報は２個、４の視差情報は０個・・・であることを示す「０，１，２，２，０・・・」の値を、Ｖマップの第１行目に書き込む。
【００２１】
同様に、図４の（ａ）の符号を付した図の例の場合、第２行目の視差情報は、それぞれ「２，０，１，３，１・・・」となっている。このため、ヒストグラム生成部１５は、図４の（ｂ）の符号を付した図に示すように、０の視差情報は１個、１の視差情報は２個、２の視差情報は１個、３の視差情報は１個、４の視差情報は０個・・・であることを示す「１，２，１，１，０・・・」の値を、Ｖマップの第２行目に書き込む。
【００２２】
ヒストグラム生成部１５は、このように、縦軸をｙ方向の位置、横軸を各行の同じ視差情報の数としたヒストグラム上に、各視差情報をｘ方向（横方向）に走査して得た同じ視差情報の数をマッピングしてＶマップを生成する。
【００２３】
一方、ヒストグラム生成部１５は、Ｕマップを生成する場合、図４の（ａ）の符号を付した図に示す各視差情報をｙ方向（縦方向＝列方向）に走査し、同じ視差情報の数を、横軸をｘ方向の位置、縦軸を各列の同じ視差情報の数としたヒストグラムにマッピングする。
【００２４】
具体的には、図４の（ａ）の符号を付した図の例の場合、第１列目の視差情報は、それぞれ「３，２，３，２・・・」となっている。このため、ヒストグラム生成部１５は、図４の（ｃ）の符号を付した図に示すように、０の視差情報は０個、１の視差情報は０個、２の視差情報は２個、３の視差情報は２個、４の視差情報は０個・・・であることを示す「０，０，２，２，０・・・」の値を、Ｕマップの第１列目に書き込む。
【００２５】
同様に、図４の（ａ）の符号を付した図の例の場合、第２列目の視差情報は、それぞれ「２，０，２，４・・・」となっている。このため、ヒストグラム生成部１５は、図４の（ｃ）の符号を付した図に示すように、０の視差情報は０個、１の視差情報は０個、２の視差情報は２個、３の視差情報は０個、４の視差情報は１個・・・であることを示す「０，０，２，０，１・・・」の値を、Ｕマップの第２列目に書き込む。
【００２６】
ヒストグラム生成部１５は、このように、横軸をｘ方向の位置、縦軸を各列の同じ視差情報の数としたヒストグラム上に、各視差情報をｙ方向（縦方向）に走査して得た同じ視差情報の数をマッピングしてＵマップを生成する。
【００２７】
次に、範囲決定部１６は、ＵマップおよびＶマップを用いて、立体物が存在する画像上の領域を特定する。具体的には、範囲決定部１６は、Ｖマップを用いて、各視差（各距離）における立体物の存在領域のｙ方向範囲を決定し、また、Ｕマップを用いて、各視差（各距離）における立体物の存在領域のｘ方向範囲を決定する。そして、範囲決定部１６は、決定したｙ方向範囲およびｘ方向範囲から、各視差における、立体物の画像上の領域を特定する。
【００２８】
図５に、輝度画像に対応するＶマップおよびＵマップの一例を示す。図５の（ａ）の符号を付した図が輝度画像の一例である。図５の（ｂ）の符号を付した図が、輝度画像に対応するＶマップの一例である。図５の（ｃ）の符号を付した図が、輝度画像に対応するＵマップの一例である。図５の（ａ）の符号を付した図に示す輝度画像の場合、路上を走行する１台の先行車両を撮像した撮像画像の輝度画像である。この輝度画像において、道路の画像は、画像手前の距離が近い部分の面積が大きく、画像奥の距離が遠くなるに連れて、面積が小さくなる画像である。このため、Ｖマップ上には、道路のヒストグラムとして、図５の（ｂ）の符号を付した図に示すように、距離が遠くなるに連れ、徐々にＹの値が小さくなる、右下がりの直線状のヒストグラムが現れる。
【００２９】
これに対して、上述の輝度画像において、車両の位置は、道路上の同じ位置である。すなわち、道路上の車両までの距離は、同じ距離となっている。このため、Ｖマップ上には、車両のヒストグラムとして、図５の（ｂ）の符号を付した図に示すように、道路のヒストグラムの所定の位置（この例の場合、ｄ０の距離の位置）から徐々にｙの値が増加する直線状のヒストグラムが現れる。この車両の直線の長さｙＢ〜ｙＴは、道路の路面からの車両の高さを示している。
【００３０】
一方、上述の輝度画像において、Ｕマップ上における道路上の車両のヒストグラムは、図５の（ｃ）の符号を付した図に示すように、道路上の車両の位置（この例の場合、ｄ０の距離の位置）から徐々にＸの値が増加する直線状のヒストグラムが現れる。この車両の直線の長さｘＬ〜ｘＲは、道路上の車両の幅を示している。
【００３１】
このように、Ｖマップ上には輝度画像上の立体物の高さを示すヒストグラムが現れる。また、Ｕマップ上には、輝度画像上の立体物の幅を示すヒストグラムが現れる。範囲決定部１６は、Ｖマップに現れた立体物の高さを示すヒストグラム、および、Ｕマップに現れた立体物の幅を示すヒストグラムで示される輝度画像上の領域を、立体物の存在領域として特定する。
【００３２】
図６のフローチャートに、範囲決定部１６が、Ｖマップを用いて、各視差（各距離）における立体物の存在領域のｙ方向範囲を決定する動作の流れを示す。図６のフローチャートにおいては、Ｖマップにおける視差画像上のｙ座標位置での視差値ｄの出現回数を「Ｖ（ｄ，ｙ）」と表記している。また、視差値ｄの範囲は、｛ｄ＝［１０，３００］｝となっている（１０〜３００の範囲）。また、ｙ方向画像サイズは、｛ｙ＝［０，９５９］｝となっている。すなわち、ｙ方向画像サイズは、９６０となっている。また、視差値ｄにおけるｙ方向の探索範囲（ｓｙ，ｅｙ）をＲｙ（ｄ）＝｛ｓｙ，ｅｙ｝として示している。Ｒｙ（ｄ）＝｛ｓｙ，ｅｙ｝の数式のうち、ｓｙは、Ｖマップ上における探索範囲の下端ｙ座標である。また、ｅｙは、Ｖマップ上における探索範囲の上端ｙ座標である。また、ｓｙおよびｅｙの初期値は、共に「０」である。範囲決定部１６は、例えば図４の（ｂ）の符号を付した図に示した出現回数の値を、視差方向（ｙ軸方向に対して直交する方向）に沿って走査することで、Ｖマップ上における立体物の存在領域を特定する。
【００３３】
範囲決定部１６は、視差値ｄが１０以上３００以下の範囲内、かつ、ｙ座標値が０行〜９５９行の範囲で、Ｖマップ上における立体物の存在領域を特定する。まず、範囲決定部１６は、Ｖマップの０行目のｙ座標を走査し、ステップＳ１において、走査したｙ座標の視差値ｄの出現回数が１０回以上か否か（「Ｖ（ｄ，ｙ）＞１０」の条件を満たすか否か）を判別する。一例ではあるが、視差値ｄの物体の平面部に位置する画素等が、この「Ｖ（ｄ，ｙ）＞１０」の条件を満たすこととなる。「Ｖ（ｄ，ｙ）＞１０」の条件を満たさない場合でも（ステップＳ１：Ｎｏ）、Ｖマップ上における探索範囲の下端ｙ座標である可能性もある。このため、範囲決定部１６は、ステップＳ８に処理を進め、「Ｖ（ｄ，ｙ）＞１０」の条件を満たさない視差値ｄが、Ｖマップ上における探索範囲の下端ｙ座標の条件（ｓｙ＝０）を満たすか否かを判別する。すなわち、このステップＳ８は、視差値ｄにおけるｙ方向の探索範囲下限値ｓｙの値が、初期値（０）であるか否かを確認している。例えば、初回処理時等に、Ｒｙ（ｄ）が初期値を持っている場合に、この条件を満たすこととなる。
【００３４】
ｓｙ＝０の条件を満たす場合（ステップＳ８：Ｙｅｓ）、範囲決定部１６はステップＳ４に処理を進め、走査するｙ座標を１つインクリメントし（ｙ＋１）、ステップＳ５に処理を進める。ステップＳ５では、範囲決定部１６が、走査するｙ座標を１つインクリメントすることで、ｙ座標の探索範囲外となったか否かを判別する（ｙ＜９６０を満たすか否かを判別する）。走査するｙ座標を１つインクリメントしても、ｙ座標の探索範囲内であると判別した場合（ステップＳ５：Ｙｅｓ）、範囲決定部１６は、ステップＳ１に処理を戻す。そして、この例の場合、範囲決定部１６は、ステップＳ１において、走査するＶマップのｙ座標を０行目から１行目に移行し、視差値ｄの出現回数が１０回以上か否か（「Ｖ（ｄ，ｙ）＞１０」の条件を満たすか否か）を判別する。これにより、ステップＳ８において、ｙ方向の探索範囲の下端値が初期値（ｓｙ＝０）であると判別される場合は（ステップＳ８：Ｙｅｓ）、ｙ座標の値が上限の９６０となるまでの間（ステップＳ５）、走査するｙ座標が１つずつインクリメントされて移行し（ステップＳ４）、各行のｙ座標毎に、視差値ｄが「Ｖ（ｄ，ｙ）＞１０」の条件を満たすか否かが判別される。
【００３５】
次に、走査するｙ座標を１つインクリメントすることで、ｙ座標の探索範囲外となった場合（ステップＳ５：Ｎｏ）、ステップＳ６に処理が進む。ステップＳ６では、範囲決定部１６が、視差値ｄを、次の値に移行させ（ｄ←ｄ＋１）、ステップＳ７に処理を進める。ステップＳ７では、範囲決定部１６が、視差値ｄの値を、次の値に移行させることで、視差値ｄが上限値の３００以下か否かを判別する（ｄ＜３００）。視差値ｄが、３００よりも大きな値となったものと判別した場合（ステップＳ７：Ｎｏ）、｛ｄ＝［１０，３００］｝の範囲の走査が完了したことを意味するため、範囲決定部１６は、図６のフローチャートの全処理を終了する。これに対して、視差値ｄが３００以下の値であると判別した場合（ステップＳ７：Ｙｅｓ）、範囲決定部１６は、ステップＳ１０に処理を進め、走査を行うｙ座標の行を０行目にリセットし（ｙ←０）、処理をステップＳ１に戻す。
【００３６】
次に、ステップＳ８において、「Ｖ（ｄ，ｙ）＞１０」の条件を満たさない、出現回数が１０回以下の視差値ｄの値が、探索範囲の下端値の初期値の条件（ｓｙ＝０）も満たさないと判別した場合（ステップＳ８：Ｎｏ）、範囲決定部１６は、ステップＳ６に処理を進める。範囲決定部１６は、ステップＳ６において、視差値ｄを、次の値に移行させ（ｄ←ｄ＋１）、ステップＳ７に処理を進める。ステップＳ７では、範囲決定部１６が、視差値ｄの値を、次の値に移行させることで、視差値ｄが上限値の３００以下か否かを判別する（ｄ＜３００）。視差値ｄが、３００よりも大きな値となったものと判別した場合（ステップＳ７：Ｎｏ）、｛ｄ＝［１０，３００］｝の範囲の走査が完了したことを意味するため、範囲決定部１６は、図６のフローチャートの全処理を終了する。これに対して、視差値ｄが３００以下の値であると判別した場合（ステップＳ７：Ｙｅｓ）、範囲決定部１６は、ステップＳ１０に処理を進め、走査を行うｙ座標の行を０行目にリセットし（ｙ←０）、処理をステップＳ１に戻す。
【００３７】
一方、ステップＳ１において、０行目のｙ座標における視差値ｄの出現回数が、「Ｖ（ｄ，ｙ）＞１０」の条件を満たすものと判別した場合、範囲決定部１６は、ステップＳ２に処理を進める。ステップＳ２では、範囲決定部１６が、「Ｖ（ｄ，ｙ）＞１０」の条件を満たす０行目のｙ座標における視差値ｄの出現回数が、立体物のｙ座標の探索範囲における下端ｙ座標の初期値の条件（ｓｙ＝０）も満たすか否かを判別する。「ｓｙ＝０」の条件を満たすものと判別した場合（ステップＳ２：Ｙｅｓ）、範囲決定部１６は、処理をステップＳ３に進める。また、「ｓｙ＝０」の条件を満たさないものと判別した場合（ステップＳ２：Ｎｏ）、範囲決定部１６は、処理をステップＳ９に進める。
【００３８】
０行目のｙ座標における視差値ｄの出現回数が、「Ｖ（ｄ，ｙ）＞１０」の条件を満たしたが、初期値である「ｓｙ＝０」の条件を満たさなかった場合、範囲決定部１６は、ステップＳ９において、現在のｙ座標を、立体物のｙ方向の探索範囲の上端ｙ座標（ｅｙ）に設定して、処理をステップＳ４に進める。これに対して、０行目のｙ座標における視差値ｄの出現回数が、「Ｖ（ｄ，ｙ）＞１０」および「ｓｙ＝０」の各条件を両方満たす場合、範囲決定部１６は、ステップＳ３において、現在のｙ座標値を、立体物のｙ方向の探索範囲における下端ｙ座標（ｓｙ）に設定して、処理をステップＳ４に進める。なお、下端ｙ座標（ｓｙ）の設定後に、視差値ｄの出現回数が、「Ｖ（ｄ，ｙ）＞１０」および「ｓｙ＝０」の各条件を両方満たすものと判別した場合、範囲決定部１６は、ステップＳ３において、現在のｙ座標値を、立体物のｙ方向の探索範囲における上端ｙ座標（ｅｙ）に設定して、処理をステップＳ４に進める。
【００３９】
ステップＳ４では、範囲決定部１６が、走査するｙ座標を１つインクリメントし（ｙ＋１）、ステップＳ５に処理を進める。ステップＳ５では、範囲決定部１６が、走査するｙ座標を１つインクリメントすることで、ｙ座標の探索範囲外となったか否かを判別する（ｙ＜９６０を満たすか否かを判別する）。走査するｙ座標を１つインクリメントしても、ｙ座標の探索範囲内であるものと判別した場合（ステップＳ５：Ｙｅｓ）、範囲決定部１６は、ステップＳ１に処理を戻す。そして、この例の場合、範囲決定部１６は、ステップＳ１において、Ｖマップの１行目のｙ座標を走査し、視差値ｄの出現回数が１０回以上か否か（「Ｖ（ｄ，ｙ）＞１０」の条件を満たすか否か）を判別する。これにより、ステップＳ５において、ｙ座標の探索範囲外となったものと判別されるまでの間（ｙ＜９６０を満たさないと判別されるまでの間）、ｙ座標が１つずつインクリメントされ（ステップＳ４）、ｙ座標の行毎に、「Ｖ（ｄ，ｙ）＞１０」の条件を満たすか否かが判別される。
【００４０】
図７のフローチャートに、範囲決定部１６が、Ｕマップを用いて、各視差（各距離）における立体物の存在領域のｘ方向範囲を決定する動作の流れを示す。図７のフローチャートにおいて、「Ｕ（ｘ，ｄ）」は、図５の（ｃ）の符号を付した図に示すＵマップ上の値を示している。また、視差値ｄの範囲は、｛ｄ＝［１０，３００］｝となっている（１０〜３００の範囲）。また、ｘ方向画像サイズは、｛ｘ＝［０，１２７９］｝となっている。すなわち、ｘ方向画像サイズは、１２８０となっている。また、立体物のｘ方向範囲は、Ｒｘ（ｄ，ｉ）＝｛ｓｘｉ，ｅｘｉ｝となっている。ｓｘｉは、Ｕマップ上における立体物の左端ｘ座標である。また、ｅｘｉは、Ｕマップ上における立体物の右端ｘ座標である。また、ｓｘおよびｅｘの初期値は、共に「０」である。また、ｉの初期値も「０」である。範囲決定部１６は、例えば図４の（ｃ）の符号を付した図に示した出現回数の値を、視差方向（ｘ軸方向に対して直交する方向）に沿って走査することで、Ｕマップ上における立体物の存在領域を特定する。
【００４１】
範囲決定部１６は、出現回数が１０回以上３００回以下の範囲内、かつ、ｘ座標値が０列〜１２７９列の範囲で、Ｕマップ上における立体物の存在領域を特定する。まず、範囲決定部１６は、上述のようにＶマップから特定した立体物の下端ｙ座標値と上端ｙ座標値との差が、３０画素よりも多い画素であるか否かを判別する（ｅｙ−ｓｙ＞３０）。下端および上端の各ｙ座標値の差が３０画素よりも大きな値であるものと判別した場合（ステップＳ１１：Ｙｅｓ）、範囲決定部１６は、処理をステップＳ１２に進める。これに対して、下端および上端の各ｙ座標値の差が３０画素よりも小さな値であるものと判別した場合（ステップＳ１１：Ｎｏ）、範囲決定部１６は、処理をステップＳ１７に進める。すなわち、一例ではあるが、実施の形態の立体物認識装置は、高さが３０画素よりも小さな物体は、検出対象から除外するようになっている。
【００４２】
ステップＳ１７では、範囲決定部１６は、視差値ｄを次の値に移行し（ｄ←ｄ＋１）、処理をステップＳ１８に進める。ステップＳ１８では、範囲決定部１６が、次の値に移行した視差値ｄが、上限である３００よりも小さな値であるか否かを判別する。
【００４３】
次の値に移行した視差値ｄが、上限の３００よりも大きな値となった場合（ステップＳ１８：Ｎｏ）、範囲決定部１６は、図７のフローチャートに示す処理を終了する。これに対して、次の値に移行しても、上限の３００よりも視差値ｄが小さな値であると判別した場合（ステップＳ１８：Ｙｅｓ）、範囲決定部１６は、ステップＳ２２に処理を進める。そして、ステップＳ２２において、範囲決定部１６は、走査を行うｘ座標の列を０列にリセットして、処理をステップＳ１１に戻す。
【００４４】
次に、ステップＳ１１において、下端ｙ座標値ｓｙと上端ｙ座標値ｅｙとの差が３０画素よりも大きな値であると判別（ステップＳ１１：Ｙｅｓ）すると、範囲決定部１６は、処理をステップＳ１２に進める。ステップＳ１２では、範囲決定部１６が、Ｕマップの０列目のｘ座標を走査し、視差値ｄの出現回数が１０回以上か否か（「Ｕ（ｘ，ｄ）＞１０」の条件を満たすか否か）を判別する。例えば、視差値ｄの物体の平面部に位置する画素等が、「Ｕ（ｘ，ｄ）＞１０」の条件を満たす。
【００４５】
「Ｕ（ｘ，ｄ）＞１０」の条件を満たさないと判別した場合でも（ステップＳ１２：Ｎｏ）、立体物のｘ方向範囲の左端ｘ座標の初期値（０）の条件を満たす可能性もある。このため、範囲決定部１６は、ステップＳ１９に処理を進め、「Ｕ（ｘ，ｄ）＞１０」の条件を満たさないものと判別した場合、立体物のｘ方向範囲の左端ｘ座標の初期値（ｓｘｉ＝０）の条件を満たすか否かを判別する。
【００４６】
ｓｘｉ＝０の条件を満たす場合（ステップＳ１９：Ｙｅｓ）、範囲決定部１６はステップＳ１５に処理を進め、走査するｘ座標を１つインクリメントし（ｘ＋１）、ステップＳ１６に処理を進める。ステップＳ１６では、範囲決定部１６が、走査するｘ座標を１つインクリメントすることで、ｘ座標の探索範囲外となったか否かを判別する（ｘ＜１２８０を満たすか否かを判別する）。走査するｘ座標を１つインクリメントしても、ｘ座標の探索範囲内であるものと判別した場合（ステップＳ１６：Ｙｅｓ）、範囲決定部１６は、ステップＳ１２に処理を戻す。
【００４７】
そして、この例の場合、範囲決定部１６は、ステップＳ１２において、走査するＵマップのｘ座標を０列目から１列目に移行し、視差値ｄの出現回数が１０回以上か否か（「Ｕ（ｘ，ｄ）＞１０」の条件を満たすか否か）を判別する。これにより、ステップＳ１９において、立体物のｘ方向範囲の左端ｘ座標の初期値の条件（ｓｘｉ＝０）を満たすと判別される場合は（ステップＳ１９：Ｙｅｓ）、ｘ座標の値が上限の１２８０よりも大きな値となるまでの間（ステップＳ１６）、ｘ座標が１つずつインクリメントされ（ステップＳ１５）、ｘ座標の列毎に、「Ｕ（ｘ，ｄ）＞１０」の条件を満たすか否かが判別される。
【００４８】
次に、ステップＳ１９において、視差値ｄの出現回数が「Ｕ（ｘ，ｄ）＞１０」の条件を満たさず、かつ、立体物のｘ方向範囲の左端ｘ座標の初期値（ｓｘｉ＝０）の条件も満たさないと判別した場合（ステップＳ１９：Ｎｏ）、範囲決定部１６は、ステップＳ２０に処理を進める。範囲決定部１６は、ステップＳ２０において、探索範囲の個数ｉの値を１つインクリメントし（ｉ＋１）、処理をステップＳ１５に進める。範囲決定部１６は、「Ｕ（ｘ，ｄ）＞１０」および「ｓｘｉ＝０」の条件をいずれも満たさないと判別した場合には、ｘの値が１２８０よりも小さな値である間（ステップＳ１６：Ｙｅｓ）、ステップＳ２０で探索範囲の個数ｉの値を１つずつインクリメントすると共に、ステップＳ１５でｘの値を１つずつインクリメントしながら探索範囲の走査を行う。
【００４９】
次に、ステップＳ１２において、Ｕマップの０列目のｘ座標を走査した結果、「Ｕ（ｘ，ｄ）＞１０」の条件を満たすものと判別すると（ステップＳ１２：Ｙｅｓ）、範囲決定部１６は、処理をステップＳ１３に進める。ステップＳ１３において、範囲決定部１６は、視差値ｄが、立体物のｘ方向範囲の左端ｘ座標の初期値の条件（ｓｘｉ＝０）を満たすか否かを判別する。
【００５０】
ｓｘｉ＝０の条件を満たす場合（ステップＳ１３：Ｙｅｓ）、範囲決定部１６はステップＳ１４に処理を進め、現在のｘ座標値を、立体物のｘ方向範囲の左端ｘ座標（ｓｘｉ）に設定し（ｓｘｉ←ｘ）、処理をステップＳ１５に進める。なお、左端ｘ座標（ｓｘｉ）の設定後に、視差値ｄの出現回数が、「Ｕ（ｘ，ｄ）＞１０」および「ｓｘｉ＝０」の各条件を両方満たすものと判別した場合、範囲決定部１６は、ステップＳ１４において、現在のｘ座標値を、立体物のｘ方向の探索範囲における右端ｘ座標（ｅｘｉ）に設定して、処理をステップＳ１５に進める。
【００５１】
これに対して、視差値ｄの出現回数が、「Ｕ（ｘ，ｄ）＞１０」の条件を満たすが、「ｓｘｉ＝０」の条件を満たさないものと判別した場合（ステップＳ１３：Ｎｏ）、範囲決定部１６は、ステップＳ２１において、現在のｘ座標値を、立体物のｘ方向の探索範囲における右端ｘ座標（ｅｘｉ）に設定して、処理をステップＳ１５に進める。
【００５２】
ステップＳ１５では、範囲決定部１６が、走査するｘ座標を１つインクリメントし（ｘ＋１）、ステップＳ１６に処理を進める。ステップＳ１６では、範囲決定部１６が、走査するｘ座標を１つインクリメントすることで、ｘ座標の探索範囲外となったか否かを判別する（ｘ＜１２８０を満たすか否かを判別する）。走査するｘ座標を１つインクリメントしても、ｘ座標の探索範囲内であるものと判別した場合（ステップＳ１６：Ｙｅｓ）、範囲決定部１６は、ステップＳ１２に処理を戻す。
【００５３】
そして、この例の場合、範囲決定部１６は、ステップＳ１２において、走査するＵマップのｘ座標の列を、０列目から１列目に移行し、視差値ｄの出現回数が１０以上であるか否か（「Ｕ（ｘ，ｄ）＞１０」の条件を満たすか否か）を判別する。これにより、ステップＳ１３において、立体物のｘ方向範囲の左端ｘ座標の初期値の条件（ｓｘｉ＝０）を満たすと判別される場合は（ステップＳ１３：Ｙｅｓ）、ｘ座標の値が上限の１２８０よりも大きな値となるまでの間（ステップＳ１６）、ｘ座標が１つずつインクリメントされ（ステップＳ１５）、ｘ座標の列毎に、「Ｕ（ｘ，ｄ）＞１０」の条件を満たすか否かが判別される。
【００５４】
次に、ｘ座標を１つずつインクリメントすることで、走査するｘ座標の値が上限の１２８０となった場合（ステップＳ１６：Ｎｏ）、範囲決定部１６は、処理をステップＳ１７に進め、視差値ｄを、次の値に移行させ（ｄ←ｄ＋１）、ステップＳ１８に処理を進める。ステップＳ１８では、範囲決定部１６が、視差値ｄの値を、次の値に移行させることで、視差値ｄが上限値の３００以下か否かを判別する（ｄ＜３００）。視差値ｄが上限値の３００よりも大きな値となったものと判別した場合（ステップＳ１８：Ｎｏ）、｛ｄ＝［１０，３００］｝の範囲の走査が完了したことを意味するため、範囲決定部１６は、図７のフローチャートの全処理を終了する。これに対して、視差値ｄが上限値の３００よりも小さな値であると判別した場合（ステップＳ１８：Ｙｅｓ）、範囲決定部１６は、ステップＳ２２に処理を進め、走査を行うｘ座標の列を０列目にリセットし（ｘ←０）、処理をステップＳ１１に戻す。
【００５５】
範囲決定部１６は、このようにｘ座標値および視差値ｄを１つずつインクリメントしながらＵマップを走査し、Ｕマップ上における、立体物の存在領域のｘ方向範囲を決定する。また、範囲決定部１６は、ｘ座標値および視差値ｄを１つずつインクリメントしながらＵマップを走査し、Ｕマップ上における、立体物の存在領域のｘ方向範囲を決定する。
【００５６】
これにより、路面上の立体物は、図５の（ｂ）の符号を付した図に示すＶマップ上において、図５の（ａ）の符号を付した図に示す道路に対応する右肩下がりの直線状のヒストグラムを検出することができる。そして、道路に対応する右肩下がりの直線状のヒストグラム上に、例えば図５の（ａ）の符号を付した図に示す自動車の車高に対応する下端ｙ座標ｓｙ〜上端ｙ座標ｅｙの長さの直線状のヒストグラムを検出することができる。また、図５の（ｃ）の符号を付した図に示すＵマップ上において、図５の（ａ）の符号を付した図に示す自動車の車幅に対応する左端ｘ座標ｓｘｉ〜右端ｘ座標ｅｘｉの長さの直線状のヒストグラムを検出することができる。
【００５７】
すなわち、まず、Ｖマップ上で十分なサイズの立体物が存在する視差値（図５の（ｂ）の符号を付した図の視差値ｄ０）の下端ｙ座標ｓｙ〜上端ｙ座標ｅｙを取得すると共に、Ｕマップ上で、立体物が存在する左端ｘ座標ｓｘｉ〜右端ｘ座標ｅｘｉを取得する。例えば、「Ｒｙ（ｄ０）＝｛ｓｙ＝４００，ｅｙ＝７００｝」、「Ｒｘ（ｄ０，ｉ＝０，１）＝｛ｓｘ０＝３００，ｓｘ０＝５００，ｓｘ１＝７００，ｅｘ１＝８００｝」の場合、視差情報ｄ０の距離に、（ｘ，ｙ，幅ｗ，高さｈ）＝（３００，４００，２００（＝ｅｘ０−ｓｘ０），３００（＝ｅｙ−ｓｙ））の位置と、（ｘ，ｙ，ｗ，ｈ）＝（７００，４００，１００（＝ｅｘ１−ｓｘ１），３００）の位置に立体物が存在すると考えられる。この領域が、以下に説明する識別部１７の探索範囲となる。以降、探索範囲は、「Ｒ（ｉ＝０，１）＝｛ｘ０＝３００，ｙ０＝４００，ｗ０＝２００，ｈ０＝３００，ｄ０＝７０（視差），ｘ１＝７００，ｙ１＝４００，ｗ１＝１００，ｈ１＝３００，ｄ１＝７０｝」のように表記する。
【００５８】
次に、識別部１７は、範囲決定部１６により、上述のように決定された範囲を探索することで、立体物の識別処理を行う。図８のフローチャートに、識別部１７による立体物の識別処理の流れを示す。この図８のフローチャートにおいて、Ｒ（ｉ）の記号は、識別部１７の探索範囲（ｉ＝１〜１０）を示している。まず、ステップＳ３１において、識別部１７は、図２に示すＲＡＭ４に記憶されているデンス視差画像の探索範囲Ｒ（ｉ）の領域において、立体物の視差情報ｄｉを閾値として２値化処理を行う。
【００５９】
この２値化処理を行うことで、図９の（ａ）〜（ｃ）の符号を付した図に示すように、立体物を白領域とし、背景を黒領域として分離できる。図９の（ａ）の符号を付した図は、２値化処理により、立体物としての自動車が白領域、背景が黒領域として分離された例である。図９の（ｂ）の符号を付した図は、２値化処理により、立体物としての標識が白領域、背景が黒領域として分離された例である。図９の（ｃ）の符号を付した図は、２値化処理により、立体物としての人間が白領域、背景が黒領域として分離された例である。
【００６０】
次に、識別部１７は、ステップＳ３２において、探索範囲Ｒ（ｉ）の立体物が縦長の長方形の場合、立体物は車両である可能性は低い。このため、識別部１７は、探索範囲が縦長の長方形かどうかで、車両か否かを判定する。具体的には、識別部１７は、ステップＳ３２において、探索範囲Ｒ（ｉ）の立体物が、「幅（ｗｉ）×２＜高さ（ｈｉ）」であるか否かを判別することで、探索範囲Ｒ（ｉ）の立体物が縦長の長方形であるか否かを判別する。探索範囲Ｒ（ｉ）の立体物が、「幅（ｗｉ）×２＜高さ（ｈｉ）」であるものと判別した場合（ステップＳ３２：Ｙｅｓ）、識別部１７は、処理をステップＳ３３に進める。また、探索範囲Ｒ（ｉ）の立体物が、「幅（ｗｉ）×２＜高さ（ｈｉ）」ではないものと判別した場合（ステップＳ３２：Ｎｏ）、識別部１７は、処理をステップＳ３６に進める。
【００６１】
ステップＳ３３に処理を進めたということは、立体物が縦長の長方形であることを意味する。このため、識別部１７は、ステップＳ３３において、画像上部の１／３の白領域の画素数が白領域の総画素数の７０％以上であるか否かを判別する（（白領域の画素数／白画素総数）＞０．７）。立体物が標識の場合、図９の（ａ）の符号を付した図に示すように、探索範囲の上部付近に白領域が多く含まれる形状となっている。このため、立体物が標識の場合、画像上部の１／３の白領域の画素数が白領域の総画素数の７０％以上となる。このため、識別部１７は、画像上部の１／３の白領域の画素数が白領域の総画素数の７０％以上と判別した場合（ステップＳ３３：Ｙｅｓ）、ステップＳ３４において、立体物は「標識」であるものと識別する。
【００６２】
これに対して、立体物が人間の場合、図９の（ｃ）の符号を付した図に示すように、縦長の長方形状ではあるが、探索範囲の上部付近に含まれる白領域の割合は少ない。このため、識別部１７は、画像上部の１／３の白領域の画素数が白領域の総画素数の７０％未満である場合（ステップＳ３３：Ｎｏ）、ステップＳ３９において、立体物は「人間」であるものと識別する。
【００６３】
一方、ステップＳ３２において、探索範囲Ｒ（ｉ）の立体物が、「幅（ｗｉ）×２＜高さ（ｈｉ）」ではないものと判別することで（ステップＳ３２：Ｎｏ）、処理をステップＳ３６に進めると、識別部１７は、白領域の重心を検出する。そして、識別部１７は、検出した白領域の重心は、探索範囲Ｒ（ｉ）の中心付近か否かを判別する。ステップＳ２２およびステップＳ３６において、共にＮｏの場合、立体物は、長方形ではなく、かつ、白領域の重心は、探索範囲Ｒ（ｉ）の中心付近ではないことを意味する。この場合（ステップＳ３６：Ｎｏ）、識別部１７は、ステップＳ３８に処理を進め、立体物は「判定不能」とする。
【００６４】
これに対して、立体物が車両の場合、図９の（ａ）の符号を付した図に示すように、白領域の重心は、探索範囲Ｒ（ｉ）の中心付近に位置する。このため、識別部１７は、ステップＳ３６において、白領域の重心が探索範囲Ｒ（ｉ）の中心付近に位置するものと判別した場合（ステップＳ３６：Ｙｅｓ）、ステップＳ３７に処理を進め、立体物は「車両」と識別する。
【００６５】
このような識別部１７の識別結果は、図１に示すＣＰＵ２に供給される。ＣＰＵ２は、例えばＡＥＢＳまたはＡＣＣＳ等を実行する機器制御部として機能し、識別部１７の識別結果に応じて、自動ブレーキ制御、速度制御、または走行制御等を行う。
【００６６】
最後に、立体物の識別処理を行うと、識別部１７は、ステップＳ３５に処理を進め、「ｉ＝１０」の条件を満たすか否かを判別する。「ｉ＝１０」の条件を満たす場合（ステップＳ３５：Ｙｅｓ）、識別部１７は、図８に示すフローチャートの全処理を終了する。また、「ｉ＝１０」の条件を満たさない場合（ステップＳ３５：Ｎｏ）、識別部１７は、ステップＳ４０に処理を進め、ｉの数値を１つインクリメントして、処理をステップＳ３１に進める。
【００６７】
すなわち、この例の場合、識別部１７は、ｉ＝１〜ｉ＝１０の、最大１０個の探索範囲Ｒ（ｉ）の立体物を順次識別するようになっている。このため、一つの探索範囲Ｒ（ｉ）の立体物の識別が終了すると、この例の上限である、１０個の探索範囲の識別処理が完了したか否かを判別する（ステップＳ３５）。そして、１０個の探索範囲の識別処理が完了したものと判別した場合（ステップＳ３５：Ｙｅｓ）、識別部１７は、図８に示すフローチャートの全処理を終了する。また、１０個の探索範囲の識別処理が完了していないものと判別した場合（ステップＳ３５：Ｎｏ）、識別部１７は、ステップＳ４０において、次の探索範囲Ｒ（ｉ）の立体物の識別を行うために、ｉの数値を１つインクリメントして、処理をステップＳ３１に戻し、上述の各処理を繰り返し実行する。
【００６８】
ここで、この例では、識別部１７は、探索範囲の２値化画像の白領域の割合または重心の位置等から立体物の識別を行った。しかし、識別部１７が、探索範囲の２値化画像から立体物のエッジ部分を検出し、エッジ部分を検出することで現れる立体物の形状から、立体物を識別してもよい。
【００６９】
一例として、識別部１７は、画像の局所領域から輝度勾配、輝度強度を示すＨＯＧ（Histograms  of  Oriented  Gradients）特徴量を用いて、物体の形状を認識する。この場合、識別部１７は、まず、物体のエッジ部分を検出する。次に、識別部１７は、各エッジ部分に対して、エッジの勾配方向（上下左右、斜め方呼応）を判断し、各勾配方向のエッジの出現回数をカウントする（エッジの勾配でヒストグラムを算出する）。次に、識別部１７は、ヒストグラムの結果から、車両、標識、人等を判断する。
【００７０】
例えば、ヒストグラムの結果から、斜め方向ではないエッジの出現回数が多いと判断できる場合、物体は四角形状と推測できるため、識別部１７は、物体は車両であると識別する。また、ヒストグラムの結果から、斜め方向のエッジの出現回数が多いと判断できる場合、物体は丸い形状と推測できるため、識別部１７は、物体は人であると識別する。また、ヒストグラムの結果から、斜め方向のエッジが存在し、また、右方向および左方向のエッジの出現回数が多いと判断できる場合、識別部１７は、物体は標識であると識別する。
【００７１】
以上の説明から明らかなように、実施の形態の立体物識別装置は、ステレオカメラ部１の撮像画像から、デンス視差生成部１２が、画素毎に視差情報を有するデンス視差画像を生成する。ヒストグラム生成部１５は、デンス視差画像上をｘ方向またはｙ方向に視差情報を投票することでヒストグラム（ＶマップおよびＵマップ）を生成する。範囲決定部１６は、ＶマップおよびＵマップ上に現れるヒストグラムから、各距離に存在する立体物の探索範囲を決定する。識別部１７は、決定された探索範囲のデンス視差画像を、決定された探索範囲の視差情報を閾値として用いて２値化する。そして、識別部１７は、立体物の形状、白領域の割合、および白領域の重心の位置等から立体物を識別する。
【００７２】
従来、エッジ部分の視差情報しか取得できず、視差画像上で面形状を識別することは困難であった。しかし、実施の形態の立体物識別装置は、画素毎に視差情報を有するデンス視差画像を用いることで、立体物の面全体の視差情報を取得して、デンス視差画像上で立体物の面形状を識別処理に利用できる。このため、前方立体物検出処理の精度を向上させることができる。また、検出した立体物の識別を可能とすることができる。
【００７３】
上述の実施の形態は、例として提示したものであり、本発明の範囲を限定することは意図していない。この新規な実施の形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことも可能である。例えば、上述の実施の形態の説明では、立体物の認識結果を、車両のブレーキ制御、走行制御および速度制御等に用いることとした。この他、本発明は、ベルトコンベア上を移動する製造物を監視するファクトリー・オートメーション・システム等に適用してもよい。すなわち、画像から立体物を認識し、認識結果を用いて制御対象を制御する機器であれば、本発明は、どのような機器に適用してもよい。また、実施の形態および各実施の形態の変形は、発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００７４】
１  ステレオカメラ部
２  ＣＰＵ
３  ＲＯＭ
４  ＲＡＭ
５  ＨＤＤ
６  入出力Ｉ／Ｆ
７  通信Ｉ／Ｆ
８  バスライン
１１  補正部
１２  デンス視差生成部
１３  立体物認識ブロック
１５  ヒストグラム生成部
１６  範囲決定部
１７  識別部
【先行技術文献】
【特許文献】
【００７５】
【特許文献１】特開２０００−２６６５３９号公報
【図１】
2015172846.tif 000003
【図２】
2015172846.tif 000004
【図３】
2015172846.tif 000005
【図４】
2015172846.tif 000006
【図５】
2015172846.tif 000007
【図６】
2015172846.tif 000008
【図７】
2015172846.tif 000009
【図８】
2015172846.tif 000010
【図９】
2015172846.tif 000011