(57)【特許請求の範囲】
【請求項１】
複数の異なる視点から物体を撮影して取得したステレオ画像を処理し、前記物体を認識する情報処理装置であって、
マッチング処理により、前記ステレオ画像の視差値を算出する視差演算手段を備え、
前記視差演算手段は、所定の探索範囲において、
前記ステレオ画像の所定のシフト量毎に相関の評価値を算出する評価値算出手段と、
前記評価値が算出される毎に、複数の評価値から極値を検出する極値検出手段と、
所定の範囲内の値を有する前記極値の個数をカウントするカウント手段と、
前記極値検出手段によって前記範囲内の値よりも高い相関を表す極値が検出されたとき、前記所定の範囲を更新する更新手段と、
を有し、
前記カウント手段は、前記探索範囲内で最終的に更新された範囲内の極値の個数を出力する情報処理装置。
【請求項２】
請求項１に記載された情報処理装置において、
前記評価値は非類似度であり、前記極値は極小値である情報処理装置。
【請求項３】
請求項１に記載された情報処理装置において、
前記更新手段は、前記高い相関を表す極値が更新後の前記所定の範囲の中心になるように前記所定の範囲を更新する情報処理装置。
【請求項４】
請求項１に記載された情報処理装置において、
前記カウント手段が出力した極値の個数が所定値以上の場合、前記最終的に更新された範囲内の極値に対応する視差値を無効とする手段を有する情報処理装置。
【請求項５】
請求項１に記載された情報処理装置において、
前記最終的に更新された範囲よりも高い相関を表す評価値が存在するとき、当該評価値に対応する視差値を出力する手段を有する情報処理装置。
【請求項６】
請求項１乃至５のいずれかに記載された情報処理装置において、
前記カウント手段をリセットする手段を有する情報処理装置。
【請求項７】
複数の異なる視点から物体を撮影してステレオ画像を取得する撮像部と、前記ステレオ画像を処理し、前記物体を認識する情報処理部とを有する撮像装置であって、
前記情報処理部は、マッチング処理により、前記ステレオ画像の視差値を算出する視差演算手段を備え、
前記視差演算手段は、所定の探索範囲内において、
前記ステレオ画像の所定のシフト量毎に相関の評価値を算出する評価値算出手段と、
前記評価値が算出される毎に、複数の評価値から極値を検出する極値検出手段と、
所定の範囲内の値を有する前記極値の個数をカウントするカウント手段と、
前記極値検出手段によって前記範囲内の値よりも高い相関を表す極値が検出されたとき、前記所定の範囲を更新する更新手段と、
を有し、
前記カウント手段は、前記探索範囲内で最終的に更新された範囲内の極値の個数を出力する撮像装置。 
【請求項８】
移動体に搭載され、複数の異なる視点から物体を撮影してステレオ画像を取得する撮像部と、前記ステレオ画像を処理し、前記物体を認識する情報処理部と、前記情報処理部の認識結果に基づいて前記移動体を制御する移動体制御部とを有する移動体制御システムであって、
前記情報処理部として、請求項１乃至６のいずれかに記載された情報処理装置を用いる移動体制御システム。 
【請求項９】
複数の異なる視点から物体を撮影して取得したステレオ画像を処理し、前記物体を認識する情報処理方法であって、
マッチング処理により、前記ステレオ画像の視差値を算出する視差演算工程を備え、
前記視差演算工程は、所定の探索範囲内において、
前記ステレオ画像の所定のシフト量毎に相関の評価値を算出する評価値算出工程と、
前記評価値が算出される毎に、複数の評価値から極値を検出する極値検出工程と、
所定の範囲内の値を有する前記極値の数をカウントするカウント工程と、
前記極値検出工程で前記範囲内の値よりも高い相関を表す極値が検出されたとき、前記所定の範囲を更新する工程と、
前記探索範囲内で最終的に更新された範囲内の極値の個数を出力する出力工程と、
を有する情報処理方法。
【請求項１０】
コンピュータを請求項１乃至６のいずれかに記載された情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、撮像装置、移動体制御システム、情報処理方法、およびプログラムに関する。
【背景技術】
【０００２】
近年、ステレオカメラにより取得された画像を利用した車両の運転者支援システムが知られている。この運転者支援システムは、例えば、車内の前部に設置したステレオカメラによって車両の前方を撮影して取得した画像を処理して、歩行者、他車両、障害物等までの距離を測定し、それらに衝突する可能性があるとき、運転者に報知したり、車両のブレーキを作動させて減速させたり停止させたりすることができる。
【０００３】
ステレオカメラによる距離測定は、２つの異なる視点から同じ対象物体を撮影した時に、２つの撮影画像上での結像位置の差（視差）が物体までの距離によって変化することを利用する。
【０００４】
ある画素の視差を求めるには、２つの画像の一方を基準画像、他方を比較画像とし、基準画像のある画素に対応する画素が、比較画像のどの位置にあるかを探すためのマッチング処理を実行し、探索範囲のマッチング処理が全て終了した後に最もマッチングがとれている位置を最も確からしい視差値として決定する。
【０００５】
マッチング処理としては、基準画像と比較画像のある小領域の相関の評価値（マッチングの評価値）を計算し、最も高い相関を表す評価値が得られた際の画像間のシフト量（偏差）を視差として算出するブロックマッチングがよく用いられる。そして、相関の評価値としては、２つの小領域の各画素値の差の絶対値和ＳＡＤ（Sum of Absolute Difference）、差の二乗和ＳＳＤ（Sum of Squared Difference）、ＳＳＤの値から各ブロックの平均値を減算したＺＳＳＤ（Zero-mean-Sum of Squared Difference）などが用いられる。これらの評価値は相関が高い（マッチングの度合が高い）程、値が小さくなるので、非類似度と呼ぶことができる。
【０００６】
図１６は、マッチング処理結果の一例のグラフを示す図である。この図において、横軸は探索範囲、すなわち基準画像の画素位置に対する比較画像の画素位置のシフト量（偏差）であり、縦軸は相関の評価値である非類似度である。この図では、○で囲んだ７番目の探索画素で非類似度が最小となっているので、７が最も確からしい整数視差値となる。なお、横軸の負の数値はサブピクセル視差を求めるための探索範囲のものである。
【０００７】
しかし、ビル窓やタイル壁やフェンスなどのように、繰り返しパターンを持つ物体の画像で取得し、その物体の視差を算出する過程では、図１７に示すように、マッチングがとれている箇所が２箇所以上（ここでは６箇所）出現する場合があり、最も確からしい視差値を誤って出力することがある。
【０００８】
このような事実があると、例えば、本当は遠くの距離にある物体（繰り返しパターンを持つ）なのに、あたかも近くにあるような誤ったデータが出力されてしまう。すると、例えば自動的に車両にブレーキを踏ませるシステムでは、ブレーキを踏む必要がない場所で誤ってブレーキが踏まれてしまう「誤踏み」を引き起こしてしまう。
【０００９】
この問題に対処した装置として、特許文献１に記載された車載用物体検知装置がある。この装置では、ステレオカメラによる画像処理において、小領域毎のステレオ画像間の類似度をもとに、互いの画像の対応位置を求める際に、最大類似度に近い値を示す位置が、複数個所で現われるかどうかを確認し、複数個所で最大類似度に近い値が現われる場合は、その小領域で求めた距離は、繰返しパターンが原因の誤対応の可能性が高いと判断し、物体検知・計測の判断には用いない構成とした。これにより、横断歩道のストライプ模様等の繰返しパターンが原因となるステレオマッチングの誤対応によって生じる物体の誤検出を防ぐことができる。
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、特許文献１に記載された車載用物体検知装置では、探索範囲のマッチング処理が全て終了した後に物体の検知・計測に用いるか否かの判断を行うため、判断の結果が得られるまでの時間が長くなるという問題がある。
【００１１】
本発明は、このような問題を解決するためになされたものであり、その目的は、ステレオ画像が繰り返しパターンを含むときでも、画像間の視差を算出するマッチング処理の有効性の判断の結果が得られるまでの時間を短縮できるようにすることである。
【課題を解決するための手段】
【００１２】
本発明に係る情報処理装置は、複数の異なる視点から物体を撮影して取得したステレオ画像を処理し、前記物体を認識する情報処理装置であって、マッチング処理により、前記ステレオ画像の視差値を算出する視差演算手段を備え、前記視差演算手段は、所定の探索範囲において、前記ステレオ画像の所定のシフト量毎に相関の評価値を算出する評価値算出手段と、前記評価値が算出される毎に、複数の評価値から極値を検出する極値検出手段と、所定の範囲内の値を有する前記極値の個数をカウントするカウント手段と、前記極値検出手段によって前記範囲内の値よりも高い相関を表す極値が検出されたとき、前記所定の範囲を更新する更新手段と、を有し、前記カウント手段は、前記探索範囲内で最終的に更新された範囲内の極値の個数を出力する情報処理装置である。
【発明の効果】
【００１３】
本発明によれば、ステレオ画像が繰り返しパターンを含むときでも、画像間の視差を算出するマッチング処理の有効性の判断の結果が得られるまでの時間を短縮することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施形態に係る移動体制御システムの設置環境について説明するための図である。
【図２】本発明の実施形態に係る移動体制御システムの概略構成について説明するための図である。
【図３】本発明の実施形態に係るステレオカメラのハードウェア構成を示すブロック図である。
【図４】本発明の実施形態におけるステレオカメラの測距原理を説明するための図である。
【図５】本発明の実施形態に係る情報処理部の機能構成を示すブロック図である。
【図６】本発明の実施形態に係る視差演算部の要部の機能構成を示すブロック図である。
【図７】本発明の実施形態に係る視差演算部の処理を示すフローチャートである。
【図８】図７に示す視差演算部の処理の具体例を示す図である。
【図９】図７に示す処理における無効判断の結果が正しい場合について説明するための図である。
【図１０】図７に示す処理における無効判断の結果に誤りがある場合について説明するための図である。
【図１１】図７に示す処理における無効判断の誤りの発生を低減可能な閾値について説明するための図の一例である。
【図１２】図７に示す処理における無効判断の誤りの発生を低減可能な閾値について説明するための図の別の一例である。
【図１３】視差演算部が実行する最小値処理および例外処理について説明するための図である。
【図１４】本発明の実施形態に係る視差演算部の演算結果の第１の例を示す図である。
【図１５】本発明の実施形態に係る視差演算部の演算結果の第２の例を示す図である。
【図１６】マッチング処理結果の一例のグラフを示す図である。
【図１７】マッチング処理結果の別の一例のグラフを示す図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施形態について図面を参照して説明する。
〈移動体制御システムの概略構成〉
図１は、本発明の実施形態に係る移動体制御システムの設置環境について説明するための図であり、図２は、本発明の実施形態に係る移動体制御システムの概略構成について説明するための図である。
【００１６】
図１および図２に示すように、本発明の実施形態に係る移動体制御システムは、本発明に係る撮像装置としてのステレオカメラ２と、本発明に係る移動体制御部としての車両制御ユニット３からなる。
【００１７】
ステレオカメラ２は、図１に示すように移動体としての車両１の車室内の前端部（フロントガラスの上端付近など）に搭載されており、内蔵する第１の撮像部と第２の撮像部、それぞれ左目視界ＳＬ、右目視界ＳＲの範囲を撮影して、左撮影画像、右撮影画像からなるステレオ画像を取得する。そして、両画像の視差値を求めて視差画像を生成し、車両１の前方の物体までの距離を測定して物体を認識し、認識結果を車両制御ユニット３に送る。
【００１８】
車両制御ユニット３は、ステレオカメラ２からの認識結果に基づいて、車両１の運転者へ警告を報知したり、車両１のハンドルやブレーキを制御するなどの走行支援制御を行ったりする。
【００１９】
〈ステレオカメラのハードウェア構成〉
図３は、本発明の実施形態に係るステレオカメラ２のハードウェア構成を示すブロック図である。
【００２０】
ステレオカメラ２は、本発明に係る撮像部としての撮像部１０と、本発明に係る情報処理部および情報処理装置としての情報処理部２０とを有し、情報処理部２０は車両制御ユニット３と接続されている。
【００２１】
撮像部１０は、左目用となる第１の撮像部１１ａと、右目用となる第２の撮像部１１ｂからなる複数の撮像部が平行に組みつけられて構成されている。第１の撮像部１１ａ，第２の撮像部１１ｂは、それぞれレンズ１２ａ，１２ｂ、画像センサ１３ａ，１３ｂ、センサコントローラ１４ａ，１４ｂを備えている。
【００２２】
画像センサ１３ａ，１３ｂは、例えばＣＣＤ(Charge Coupled Device)イメージセンサまたはＣＭＯＳ(Complementary Metal-Oxide Semiconductor)イメージセンサからなる。センサコントローラ１４ａ，１４ｂは、画像センサ１３ａ，１３ｂの露光制御、画像読み出し制御、外部回路との通信、および画像データの送信制御等を行う。
【００２３】
情報処理部２０は、データバスライン２１、シリアルバスライン２２、ＣＰＵ(Central Processing Unit)２３、ＦＰＧＡ(Field-Programmable Gate Array)２４、ＲＯＭ(Read Only Memory)２５、ＲＡＭ(Random Access Memory)２６、シリアルＩ／Ｆ(インタフェース)２７、およびデータＩ／Ｆ２８を有している。
【００２４】
上述の撮像部１０は、データバスライン２１およびシリアルバスライン２２を介して情報処理部２０と接続されている。ＣＰＵ２３は、情報処理部２０全体の動作、画像処理、および画像認識処理を実行制御する。また、ＣＰＵ２３は、撮像部１０の各センサコントローラ１４ａ，１４ｂの制御も行う。
【００２５】
撮像部１１ａ，１１ｂの画像センサ１３ａ，１３ｂで撮像された撮像画像の輝度画像は、データバスライン２１を介して情報処理部２０のＲＡＭ２６に書き込まれる。ＣＰＵ２３またはＦＰＧＡ２４からのセンサ露光値の変更制御データ、画像読み出しパラメータの変更制御データ、および各種設定データ等は、シリアルバスライン２２を介して送受信される。
【００２６】
ＦＰＧＡ２４は、ＲＡＭ２６に保存された画像に対してリアルタイム性が要求される処理である、例えばガンマ補正、ゆがみ補正（左右画像の平行化）、ブロックマッチングによる視差演算を行って視差画像を生成し、ＲＡＭ２６に再度書き込む。
【００２７】
ＲＯＭ２５には、状況認識、予測、立体物認識等を実行するためのコンピュータプログラムである立体物認識プログラムが記憶されている。立体物認識プログラムは画像処理プログラムの一例である。
【００２８】
ＣＰＵ２３は、データＩ／Ｆ２８を介して、車両制御ユニット３からＣＡＮ情報（車速、加速度、舵角、ヨーレート等）をパラメータとして取得する。そして、ＣＰＵ２３は、ＲＯＭ２５に記憶されている立体物認識プログラムに従って、ＲＡＭ２６に記憶されている輝度画像および視差画像を用いて、状況認識等の各種処理を実行制御することで、例えば先行車両等の認識対象の認識を行う。ＣＡＮは、「Controller Area Network」の略記である。認識対象の認識データは、シリアルＩ／Ｆ２７を介して、例えば自動ブレーキシステム、または、自動速度制御システム等の車両制御ユニット３へ供給される。自動ブレーキシステムは、認識対象の認識データを用いて自車両のブレーキ制御を行う。また、自動速度制御システムは、認識対象の認識データを用いて自車両の速度制御を行う。
【００２９】
〈ステレオカメラの測距原理〉
図４は、ステレオカメラ２の測距原理を説明するための図である。
基線長Ｂ（第１の撮像部１１ａのレンズ１２ａの中心と第２の撮像部１１ｂのレンズ１２ｂの中心との間の距離）と、レンズ１２ａ，１２ｂの焦点距離ｆと、視差値ｄ（視点による物体の結像点の位置の差）と、物体までの距離Ｚの情報との間には、下記の式〔１〕の関係がある。
Ｚ＝（Ｂ×ｆ）÷ｄ  …式〔１〕
【００３０】
この視差値ｄは、第１の撮像部１１ａで取得された左撮影画像と、第２の撮像部１１ｂで取得された右撮影画像との各画素の対応位置の偏差を表している。視差値ｄは、基準となる基準画像のある画素に対応する画素が、探索範囲のうちの比較画像のどの位置にあるかを探すためのマッチング処理、一般的には注目画素の周辺画素を使ったブロックマッチングによって算出される。
【００３１】
すなわち、２つの撮像部１１ａ，１１ｂのうちの一方の撮像部（例えば第１の撮像部１１ａ）の輝度画像を基準画像とし、他方の撮像部（例えば第２の撮像部１１ｂ）の輝度画像を比較画像とし、基準画像と比較画像のある小領域（例えば７画素×７画素）の相関の評価値（マッチングの評価値）を計算し、最も高い相関を表す評価値が得られた際の画像間のシフト量（偏差）を視差値として算出するブロックマッチングを用いる。ここで、相関の評価値としては、ＳＡＤ、ＳＳＤ、ＺＳＳＤなどを用いる。前述したように、これらの評価値は相関が高い（マッチングの度合が高い）程、値が小さくなるので、非類似度と呼ぶことができる。
【００３２】
〈情報処理部の機能構成〉
図５は、情報処理部２０の機能構成を示すブロック図である。
図示のように、情報処理部２０は、撮影画像補正部３１と、視差演算部３２と、視差画像生成部３３と、認識処理部３４とを有する。
【００３３】
撮影画像補正部３１は、左撮影画像と右撮影画像に対して、ガンマ補正、ゆがみ補正（左右の撮影画像の平行化）などの補正を行う。視差演算部３２は、撮影画像補正部３１で補正された左右の撮影画像から視差値ｄを算出する。視差演算部３２の詳細については後述する。視差画像生成部３３は、視差演算部３２で算出された視差値ｄを用いて、視差画像を生成する。視差画像とは、基準画像上の各画素について算出された視差値ｄに応じた画素値をそれぞれの画素の画素値として表したものである。認識処理部３４は、視差画像生成部３３で生成された視差画像を用いて、車両１の前方の物体を認識し、認識結果としての認識データを生成する。
【００３４】
〈視差演算部の機能構成〉
図６は、視差演算部３２の要部の機能構成を示すブロック図である。
図示のように、視差演算部３２は、情報処理手段４０と、情報保持手段５０とを備えており、互いに通信可能に構成されている。
【００３５】
情報処理手段４０は、非類似度算出手段４１、傾き算出手段４２、極小値検出手段４３、閾値設定手段４４、フラグ制御手段４５、カウンタ制御手段４６、および有効性判断手段４７を備えている。また、情報保持手段５０は、非類似度レジスタ５１、傾きレジスタ５２、閾値レジスタ５３、フラグレジスタ５４、および極小値カウンタ５５を備えている。
【００３６】
非類似度算出手段４１は、基準画像と比較画像との間の相関の評価値（マッチングの評価値）としての非類似度をＺＳＳＤなどにより算出し、非類似度レジスタ５１に書き込む。傾き算出手段４２は、基準画像に対して比較画像をシフトしていったときの隣り合うシフト位置における非類似度の差分値から、非類似度の傾きを算出し、傾きレジスタ５２に書き込む。極小値検出手段４３は、傾き算出手段４２で算出された傾きの値が負から正に変化することに基づいて、相関の評価値の極値としての非類似度の極小値を検出する。
【００３７】
閾値設定手段４４は、フラグレジスタ５４に保持されている値が“０”のとき（フラグが落ちているとき）、極小値検出手段４３で検出された極小値に基づいて、その極小値の上、下に極小値の範囲の設定値として上閾値Ｕth、下閾値Ｌthを生成し、閾値レジスタ５３に書き込む。このとき、フラグ制御手段４５は、上閾値Ｕth、下閾値Ｌthが新たに更新されたことを示す値“１”をフラグレジスタ５４に書き込む。また、カウンタ制御手段４６は、極小値カウンタ５５の値をカウントアップする。極小値カウンタ５５の値は、閾値レジスタ５３で保持されている閾値の範囲内の非類似度の極小値の個数を表す。
【００３８】
カウンタ制御手段４６は、フラグレジスタ５４に保持されている値が“１”のとき（フラグが立っているとき）、極小値検出手段４３で検出された極小値が閾値レジスタ５３で保持されている閾値の範囲内であった場合、極小値カウンタ５５の値をカウントアップする。
【００３９】
また、カウンタ制御手段４６は、フラグレジスタ５４に保持されている値が“１”のとき、傾き算出手段４２で算出された傾きが負のまま、非類似度算出手段４１で算出された非類似度が閾値レジスタ５３で保持されている下閾値Ｌthを下回ったとき、極小値カウンタ５５の値をリセットする。このとき、フラグ制御手段４５は、フラグレジスタ５４に“０”を書き込み、フラグを落とす。
【００４０】
〈視差演算部の処理〉
図７は、図６に示す視差演算部３２の処理を示すフローチャートであり、図８は、図７に示す処理の具体例を示す図である。図８の横軸は探索範囲、すなわち基準画像の画素位置に対する比較画像の画素位置のシフト量（偏差）であり、縦軸はマッチングの評価値としての非類似度である。これらの図を参照して視差演算部３２の動作について説明する。
【００４１】
図７に示すフローは、基準画像の１画素毎に実行される。また、基準画像の各画素に対する比較画像の探索範囲は１〜６８画素である。このフローのスタート時には、非類似度レジスタ５１、傾きレジスタ５２、閾値レジスタ５３には、データが書き込まれていない。また、フラグレジスタ５４には“０”が設定されており、極小値カウンタ５５の初期値は“０”である。なお、このフローの説明ではフラグレジスタ５４に保持されている値（フラグ）をＣで表し、極小値カウンタ５５のカウント値をｃｎｔで表す。
【００４２】
非類似度算出手段４１により非類似度を表すマッチングデータ：data(t)が入力されると（ステップＳ１）、ｔの数値を判定する（ステップＳ２）。最初はｔ＝１であるから（ステップＳ２：ｔ＝１）、data(１)を非類似度レジスタ５１に書き込んで保持させ（ステップＳ６）、ｔが最後の値か否か、すなわち探索範囲の最後か否かを判定する（ステップＳ７）。ｔ＝１は、探索範囲の最後の値ではないので（ステップＳ７：NO）、ｔをインクリメントしてｔ＝２とし（ステップＳ１２）、ステップＳ１に移行する。
【００４３】
今回はステップＳ１→ステップＳ２→ステップＳ３の順に進み、傾き算出手段４２がdata(１)とdata(２)との間の傾きを計算する（ステップＳ３）。傾きは２つのデータの差分「data(２)−data(１)」により計算する。次にｔの数値を判定する（ステップＳ４）。今回はｔ＝２であるから（ステップＳ４：ｔ＝２）、傾きの符号を傾きレジスタ５２に書き込んで保持させる（ステップＳ５）。
【００４４】
次にdata(２)を非類似度レジスタ５１に書き込んで保持させ（ステップＳ６）、ｔが最後の値か否かを判定し（ステップＳ７）、判定の結果を基に（ステップＳ７：NO）、ｔを３にインクリメントして（ステップＳ１２）、ステップＳ１に移行する。
【００４５】
今回もステップＳ１→ステップＳ２→ステップＳ３までは前回（ｔ＝２のとき）と同じである。ただし、今回はｔ＝３であるから、ステップＳ４→ステップＳ１３へと進み、傾きが負から正に変化したか否かを判定する。この判定処理は極小値検出手段４３により実行される。
【００４６】
ここでは、「data(２)−data(１)」が負であり、かつ「data(３)−data(２)」が正の場合、傾きが負から正に変化したと判定される（ステップＳ１３：YES）。この場合、保持しているdata(t-1)、ここではdata(２)が極小値と判明する（ステップＳ１７）。
【００４７】
ステップＳ１７でdata(２)が極小値と判明した場合、新たに極小値が出てきたか否か、すなわちＣ＝０であるか否かを判定する（ステップＳ１８）。そして、Ｃ＝０であった場合（ステップＳ１８：YES）、閾値設定手段４４は閾値レジスタ５３で保持されている上閾値Ｕthと下閾値Ｌthを更新し、フラグ制御手段４５はＣ＝１とし、フラグを立てる（ステップＳ２０）。
【００４８】
図８におけるdata(１)からdata(３)までがここまでの処理に対応する。すなわち、ステップＳ１７でdata(２)が極小値と判明し、ステップＳ１９でその上下に上閾値Ｕth1と下閾値Ｌth1が更新（今回は最初の設定）されている。上閾値Ｕth、下閾値Ｌthは、それぞれ「data(２)＋所定値」、「data(２)−所定値」とする。このとき、「所定値＝２ｎ」とすることで回路構成を単純にすることが好適である。
【００４９】
ステップＳ２０の後、カウンタ制御手段４６は極小値カウンタ５５の値をカウントアップする（ステップＳ２１）。ここでは、カウント値が“１”となる。このカウント値は、ステップＳ２０で設定された閾値の範囲内（上閾値Ｕth1以下、下閾値Ｌth1以上）の極小値の個数を表している。
【００５０】
ステップＳ２１の後、ステップＳ５→ステップＳ６→ステップＳ７と進み、傾きの符号（ここでは正）およびマッチングデータ（ここではdata(３)）の保持を行い、ｔが最後か否かを判定し（ここでは最後ではないため、Ｓ７：NO）、ｔを４にインクリメントして（ステップＳ１２）、ステップＳ１に移行する。
【００５１】
ｔ＝４の今回（以後、探索範囲の最後のｔ＝６８まで同じ）もステップＳ１→ステップＳ２→ステップＳ３→ステップＳ４→ステップＳ１３の順に進み、極小値を検出するために、傾きが負から正に変化したか否かを判定する（ステップＳ１３）。傾きが負から正に変化した場合（ステップＳ１３：YES）については前回（ｔ＝３のとき）に説明したので、今回はそうでない場合（ステップＳ１３：NOの場合）について説明する。
【００５２】
この場合、傾きが負のままであるか否かを判定する（ステップＳ１４）。そして、負のままでないときは（ステップＳ１４：NO）、ステップＳ５→ステップＳ６→ステップＳ７へと進む。ステップＳ５→ステップＳ６→ステップＳ７およびその後のステップの内容はｔ＝３のときと同様である。
【００５３】
図８の場合、ｔ＝４のとき、ステップＳ１３：NO→ステップＳ１４：NO→ステップＳ５→ステップＳ６→ステップＳ７→ステップＳ１２へと進むので、傾きの符号（ここでは負）およびdata(４)の保持と、ｔ＝５へのインクリメントの後、ステップＳ１に移行する。
【００５４】
今回もステップＳ１→ステップＳ２→ステップＳ３→ステップＳ４→ステップＳ１３の順に進み、傾きが負から正に変化したか否かを判定する（ステップＳ１３）。ステップＳ１３：YESの場合、およびステップＳ１３：NO→ステップＳ１４：NOの場合については、それぞれｔ＝３、ｔ＝４のときに説明済みであるため、今回はステップＳ１３：NO→ステップＳ１４：YESの場合について説明する。
【００５５】
この場合は、以前に極小値が発生していて、かつdata(t)（ここではdata(５)）が下閾値を下回ったか否かを判定する（ステップＳ１５）。ステップＳ１５：NO、すなわち、以前に極小値が発生していないか、または発生していても、data(ｔ)が下閾値を下回っていないときは、ステップＳ５に進む。
【００５６】
一方、ステップＳ１５：YES、すなわち、以前に極小値が発生していて、かつdata(ｔ)が下閾値を下回ったときは、ステップＳ１６に進む。ステップＳ１６では、フラグ制御手段４５がＣ＝０としてフラグを落とし、カウンタ制御手段４６が極小値カウンタ５５を“０”にリセットする。
【００５７】
図８の場合、ｔ＝５のとき、傾きは負から負のままなので、ステップＳ１３：NO→ステップＳ１４：YES→ステップＳ１５：YES→ステップＳ１６へと進み、さらにステップＳ５→ステップＳ６→ステップＳ７→ステップＳ１２の順に進むことで、傾きの符号（ここでは負）およびマッチングデータ（ここではdata(５)）の保持を行い、ｔが最後か否かを判定し（ここでは最後ではないため、ステップＳ７：NO）、ｔを６にインクリメントして（ステップＳ１２）、ステップＳ１に移行する。
【００５８】
今回もステップＳ１→ステップＳ２→ステップＳ３→ステップＳ４→ステップＳ１３の順に進み、傾きが負から正に変化したか否かを判定する。図８の場合、ｔ＝６のときは、ｔ＝５のときと同様、傾きは負から負のままなので、ステップＳ１３以降に経由するステップもｔ＝５のときと同じである。
【００５９】
以後、ｔ＝７のときも、ｔ＝５とき、およびｔ＝６のときと同様、傾きは負から負のままなので、ステップＳ１３以降に経由するステップもｔ＝５のときと同じである。そして、ｔ＝８になると、ｔ＝３のときと同様、傾きが負から正に変化するため、ステップＳ１７→ステップＳ１８へと進む。ｔ＝５のとき、Ｃ＝０としたため、ステップＳ１８：YESと判定され、ステップＳ２０→ステップＳ２１→ステップＳ５の順に進む。
【００６０】
このとき、ステップＳ２０では、図８に示すように、上閾値Ｕth1、下閾値Ｌth1がそれぞれ上閾値Ｕth2、下閾値Ｌth2に更新される。ここで、上閾値Ｕth2、下閾値Ｌth2は、「data(７)＋所定値」、「data(７)−所定値」である。また、ステップＳ２１によりカントアップされたカウント値（＝１）は、ステップＳ２０で更新された更新後の閾値の範囲内（上閾値Ｕth2以下、下閾値Ｌth2以上）の極小値の個数を表している。
【００６１】
図８の場合、次のｔ＝９では、傾きが正から負に変化するから、ステップＳ１３：NO→Ｓ１４：NO→Ｓ５の順に進む。また、次のｔ＝１０では、傾きが負から正に変化するため、ステップＳ１７→Ｓ１８へと進む。ｔ＝８のとき、Ｃ＝１としたため、ステップＳ１８：YESと判定され、ステップＳ１９へ進む。
【００６２】
ステップＳ１９では、ステップＳ１７で判明した極小値であるdata(９)が下閾値（Ｌth2）と上閾値（Ｕth2）の範囲内であるか否かを判定する。そして、範囲内であった場合は（ステップＳ１９：YES）、カウントアップした後（ステップＳ２１）、ステップＳ５に
進み、範囲外であった場合は（ステップＳ１９：NO）、そのままステップＳ５に進む。
【００６３】
図８の場合、data(９)は下閾値（Ｌth2）と上閾値（Ｕth2）の範囲内であるから、カウントアップされ、極小値カウンタ５５の値は“２”となる。このカウント値の“２”は、最新の閾値（ここでは上閾値Ｕth2、下閾値Ｌth2）の範囲内の極小値が２個あることを意味する。
【００６４】
以下、探索範囲の最後のｔ（ここでは６８）になるまで、ステップＳ１→ステップＳ２→ステップＳ３→ステップＳ４→ステップＳ１３の順に進む処理を繰り返し、最後のｔになったら（ステップＳ７：YES）、カウンタ制御手段４６は極小値カウンタ５５のカウント値を出力する（ステップＳ８）。
【００６５】
次に、有効性判断手段４７が、カウント値が所定値（例えば２）以上か否かを判定し（ステップＳ９）、所定値以上の場合は（ステップＳ９：YES）、無効と判断し（ステップＳ１０）この基準画像の画素の視差値を認識処理部３４が使用しないようにするためのフラグを立てる（ステップＳ１１）。
【００６６】
このように、本発明の実施形態に係る視差演算部３２によれば、探索範囲の非類似度の算出が終了した後で、近い値を有する非類似度の個数や最も確からしい視差値を探すのではなく、非類似度の極小値の個数のカウントを視差探索と同時に行い、非類似度の極小値が所定の範囲外になったとき、その所定の範囲を更新し、更新された範囲内の非類似度の極小値の個数をカウントする。これにより、処理時間を増やすことなく、繰り返しパターンが現れた場合に物体認識処理に用いるか用いないか判断するまでの時間を短縮することができる。したがって、この視差演算部３２を有する本発明の実施形態に係る移動体制御システムによれば、「誤踏み」を低減することができる。
【００６７】
なお、図７に示すフローでは、ｔの小さい方から順に探索しているが、その反対に、大きい方から順に探索するように構成してもよい。また、図７に示すフローでは、最初に極小値が検出されたとき、その極小値に応じて上閾値および下閾値を設定しているが、フローの開始時に任意の上閾値および下閾値を初期設定するように構成してもよい。また、図７に示すフローでは、相関の評価値として、相関が高い程、値が小さくなる非類似度を用いたが、その反対に、相関が高い程、値が大きくなる類似度を用いるように構成してもよい。
【００６８】
〈上閾値および下閾値の詳細について〉
以上説明した図７および図８では、上閾値Ｕth1、下閾値Ｌth1を「data(２)＋所定値」、「data(２)−所定値」とし、上閾値Ｕth2、下閾値Ｌth2を「data(７)＋所定値」、「data(７)−所定値」、すなわち、上閾値Ｕth、下閾値Ｌthをそれぞれ「新たに出てきた極小値＋所定値」、「新たに出てきた極小値−所定値」の計算式を用いて算出し、設定している。以下、この計算式により算出される上閾値、下閾値をそれぞれ第１の上閾値、第１の下閾値と言う。
【００６９】
次に、図７に示す処理における無効判断（ステップＳ１０）の結果が正しい場合と、誤りがある場合について説明し、さらにその誤りの発生を低減可能な上閾値、下閾値である第２の上閾値、第２の下閾値について説明する。
【００７０】
《無効判断の結果が正しい場合》
図９は、図７に示す処理における無効判断の結果が正しい場合について説明するための図である。この図、および後述する図１０乃至図１５の横軸、縦軸は、図８と同様であり、それぞれ探索範囲、非類似度である。
【００７１】
この図は、探索範囲内の画像がテクスチャの多い繰り返しパターンの場合のマッチング処理結果を表している。テクスチャが多いため、非類似度（例えばＺＳＳＤ）の振幅が大きくなっている。この図の場合、極小値であるdata(ta)に対して、Ｕth（第１の上閾値）、Ｌth（第１の下閾値）がそれぞれ「data(ta)＋ｋ(所定値)」、「data(ta)−k(所定値)」に設定され、閾値の範囲内の３個の極小値がカウントされる。そして、この正しいカウント値に基づいて、誤りのない判断結果（無効）が得られる。
【００７２】
《無効判断の結果に誤りがある場合》
図１０は、図７に示す処理における無効判断の結果に誤りがある場合について説明するための図である。
【００７３】
この図は、探索範囲内の画像が繰り返しパターンではなく、テクスチャが少ない場合のマッチング処理結果を表している。テクスチャが少ないため、非類似度の振幅が小さくなっている。この図の場合、最小値＝data(tc)が１箇所だけであるため、正しい視差値tcが得られるにもかかわらず、最小値ではない極小値であるdata(tb)の上下に設定されたＵth（第１の上閾値）、Ｌth（第１の下閾値）の範囲内で５個の極小値がカウントされてしまう。そして、このカウント値に基づいて無効と判断されてしまう。
【００７４】
《第２の上閾値、第２の下閾値について》
図１１および図１２は、図７に示す処理における無効判断の誤りの発生を低減可能な第２の閾値について説明するための図の例である。ここで、図１１、図１２は、それぞれ探索範囲内の画像が図９、図１０と同じ場合のマッチング処理結果を表している。
【００７５】
第２の上閾値、第２の下閾値は、新たに出てきた極小値に応じた値に設定される。すなわち、例えば図１１の場合、極小値であるdata(ta)に対して、Ｕth（第２の上閾値）、Ｌth（第２の下閾値）がそれぞれ「data(ta)×Ｕｍ」、「data(ta)×Ｌｍ」に設定される。ここで、Ｕｍ、Ｌｍは比率を表す係数である。ＵｍとＬｍの値は、「Ｕｍ＞１＞Ｌｍ」であり、かつ更新後の上閾値が更新前の下閾値より小さくなる値であれば、どのような値にしてもよい。この図の場合、図９の場合と同様、閾値の範囲内の３個の極小値がカウントされる。
【００７６】
また、図１２の場合、最小の極小値であるdata(tc)に対して、Ｕth（第２の上閾値）、Ｌth（第２の下閾値）がそれぞれ「data(tc)×Ｕｍ」、「data(tc)×Ｌｍ」に設定される。この図の場合、図１０の場合とは異なり、極小値のカウント値は“１”となるため、正しい視差値tcが採用されることになる。
【００７７】
このように、上閾値、下閾値を新たに出てきた極小値に応じた値に設定することにより、探索範囲内の画像が繰り返しパターンではなく、テクスチャが少ない場合に、１箇所だけある最小の極小値だけをカウントする確率を高くすることができる。つまり、図７に示す繰り返しパターン検出アルゴリズムにおける第１の上閾値、第１の下閾値をそれぞれ第２の上閾値、第２の下閾値に変更することにより、正しい視差値が得られているにもかかわらず、無効と判断される事態の発生を低減することができる。
【００７８】
なお、図１１および図１２では、極小値に係数を掛けることで、極小値に応じた値の上閾値および下閾値を算出しているが、図９および図１０におけるｋを所定値に固定する代わりに、極小値に応じて変化させるように構成してもよい。
【００７９】
〈最小値処理および例外処理〉
図１３は、視差演算部３２が実行する最小値処理および例外処理について説明するための図である。
【００８０】
視差値算出の基本として、ＺＳＳＤなどの非類似度が最小値となる視差値を算出することが前提なので、図７に示す最小レベルの上下の閾値の範囲内の極小値の個数をカウントするアルゴリズムだけでなく、純粋な最小値とそれに対応する視差値も逐次処理して探しておくことが必要である。
【００８１】
また非類似度の最小値が、図１３Ａに示すように、探索範囲の最後にある場合や、図１３Ｂに示すように、探索範囲の最初にある場合に対処するため、純粋な最小値も逐次的に処理しておき、最終的に更新された下閾値Ｌthよりも最小値の方が小さい場合には、その最小値を与える視差を出力する。その場合には、６８個の非類似度のデータに対して、図７に示すアルゴリズムが終了した後、例外処理として、強制的に無効判定する。
【００８２】
すなわち、例えば図１３Ａの場合は、図７に示すアルゴリズムが終了すると、最小値であるdata(６８)に基づいて、ステップＳ１６で極小値カウンタ５５が０にリセットされるが、強制的に無効判定する。なお、サブピクセル視差を求める場合は、図１３Ａの横軸の探索範囲ｔが−２〜６５となり、右端のdata（６５）が最小値となる。
【００８３】
また、例えば図１３Ｂの場合、図７に示すアルゴリズムが終了すると、極小値カウンタ５５のカウント値は“３”となるが、Ｌthより小さいdata(１)が存在するため、最終的に強制的に無効判定する。なお、サブピクセル視差を求める場合は、図１３Ｂの横軸の探索範囲ｔが−２〜６５となり、左端のdata(−２)が最小値となる。
【００８４】
この最小値処理および例外処理をまとめると、下記(i)〜(iii)のようになる。
（i）探索範囲の端の非類似度が最小値となった場合、その最小値が検出された視差値（探索範囲ｔの値）が負の場合、極小値カウンタ５５のカウント値がいくつであっても強制的に無効とする。
（ii）探索範囲の端の非類似度が、最終的に決まった閾値の範囲内に含まれている場合には、極小値カウンタ５５をカウントアップする。例えば、左端だけが最終的に決まった閾値の範囲内に含まれている場合には、出力されたカウント値を１アップする。例えば、右端だけが最終的に決まった閾値の範囲内に含まれている場合には、出力されたカウント値を１アップする。例えば、左端と右端が両方とも最終的に決まった閾値の範囲内に含まれている場合には、出力されたカウント値を２アップする。
（iii）単調増加、単調減少の場合には、極小値が検出されず、カウント値は０になるが、強制的に無効とする。
【００８５】
〈視差演算部の演算結果〉
図１４は、本発明の実施形態に係る視差演算部３２の演算結果の第１の例を示す図であり、図１５は、その第２の例を示す図である。これらの図において、横軸は探索範囲であり、縦軸の非類似度は７画素×７画素のブロックを用いて算出したＺＳＳＤである。なお、探索範囲の負の部分は、サブピクセル視差を求めるためのものである。
【００８６】
図１４は、ビルの窓を撮像した画像の視差値を算出したものである。上閾値、下閾値は最終的に更新（ここでは探索範囲の８画素目の極小値に応じて設定）された値である。この閾値の範囲内の極小値の個数は４であり、有効性判断手段４７により無効と判断された。
【００８７】
図１５は、タイル壁を撮像した画像の視差値を算出したものである。上閾値、下閾値は最終的に更新（ここでは探索範囲の２３画素目の極小値に応じて設定）された値である。この閾値の範囲内の極小値の個数は２であり、有効性判断手段４７により無効と判断された。
【符号の説明】
【００８８】
１…車両、２…ステレオカメラ、３…車両制御ユニット、１０…撮像部、２０…情報処理部、３２…視差演算部、４０…情報処理手段、４１…非類似度算出手段、４２…傾き算出手段、４３…極小値検出手段、４４…閾値設定手段、４５…フラグ制御手段４６…カウンタ制御手段、４７…有効性判断手段、５０…情報保持手段、５１…非類似度レジスタ、５２…傾きレジスタ、５３…閾値レジスタ、５４…フラグレジスタ、５５…極小値カウンタ。
【先行技術文献】
【特許文献】
【００８９】
【特許文献１】特開２００１−３５１２００号公報
【図１】
0006565266.tif 000002
【図２】
0006565266.tif 000003
【図３】
0006565266.tif 000004
【図４】
0006565266.tif 000005
【図５】
0006565266.tif 000006
【図６】
0006565266.tif 000007
【図７】
0006565266.tif 000008
【図８】
0006565266.tif 000009
【図９】
0006565266.tif 000010
【図１０】
0006565266.tif 000011
【図１１】
0006565266.tif 000012
【図１２】
0006565266.tif 000013
【図１３】
0006565266.tif 000014
【図１４】
0006565266.tif 000015
【図１５】
0006565266.tif 000016
【図１６】
0006565266.tif 000017
【図１７】
0006565266.tif 000018