(57)【要約】【課題】ステレオ画像における物体の視差を算出する処理負荷を低減する。【解決手段】左カメラ１１０及び右カメラ１２０で撮像した左・右画像を左画像メモリ１３０及び右画像メモリ１４０に格納し、左画像ブロック設定部１５０及び右画像ブロック設定部１６０が、ここからブロックマッチングを行う最大サイズの画像データ（画像処理ブロック）を取り込む。また、左画像ブロックマスク部１７０及び右画像ブロックマスク部１８０が、画像処理ブロックをマスクして有効画像領域を規定し、マッチング処理部２１０が、左右の有効画像領域の類似性を評価する。このとき、左画像ブロックマスク部１７０及び右画像ブロックマスク部１８０が、ブロックマッチングの進行状況に応じてマスク量を徐々に減少、要するに、有効画像領域を徐々に拡大する。そして、視差算出部２３０が、有効画像領域の評価結果から視差を算出する。【選択図】図１
2014089498.tif 000002
【特許請求の範囲】
【請求項１】
ステレオ画像を撮像する一対のカメラと、
前記ステレオ画像からブロックマッチングにより物体の視差を算出する手段と、
前記物体の視差から物体までの距離を算出する手段と、
を有し、
前記物体の視差を算出する手段は、ブロックマッチングの進行状況に応じて、前記ブロックマッチングで使用するブロックのサイズを変更する、
ことを特徴とするステレオ画像処理装置。
【請求項２】
前記物体の視差を算出する手段は、前記ステレオ画像のブロックマッチングの結果を前記ブロックのサイズに応じて正規化し、正規化されたブロックマッチングの結果から対応する画像を特定して視差を算出する、
ことを特徴とする請求項１に記載のステレオ画像処理装置。
【請求項３】
前記物体の視差を算出する手段は、前記ステレオ画像を所定サイズのブロックで分割し、各ブロックの画像をマスクすることで、前記ブロックマッチングで使用するブロックのサイズを設定する、
ことを特徴とする請求項１又は請求項２に記載のステレオ画像処理装置。
【請求項４】
前記ブロックマッチングで使用するブロックのサイズは、前記ブロックマッチングが進行するにつれて大きくなる、
ことを特徴とする請求項１〜請求項３のいずれか１つに記載のステレオ画像処理装置。
【請求項５】
前記ブロックのサイズは階段状に大きくなる、
ことを特徴とする請求項４に記載のステレオ画像処理装置。
【請求項６】
前記各ブロックの画像をマスクした領域は、前記マスク領域に応じたサイズのブロック、又は、前記画像の領域外にはみ出たブロックによりブロックマッチングされる、
ことを特徴とする請求項４又は請求項５に記載のステレオ画像処理装置。
【請求項７】
ステレオ画像を撮像する一対のカメラを有するステレオ画像処理装置が、
前記ステレオ画像からブロックマッチングにより物体の視差を算出する処理と、
前記物体の視差から物体までの距離を算出する処理と、
を実行するときに、
前記ブロックマッチングの進行状況に応じて、前記ブロックマッチングで使用するブロックのサイズを変更する、
ことを特徴とするステレオ画像処理方法。
【請求項８】
前記ステレオ画像処理装置が、前記ステレオ画像のブロックマッチングの結果を前記ブロックのサイズに応じて正規化し、正規化されたブロックマッチングの結果から対応する画像を特定して視差を算出する、
ことを特徴とする請求項７に記載のステレオ画像処理方法。
【請求項９】
前記ステレオ画像処理装置が、前記ステレオ画像を所定サイズのブロックで分割し、各ブロックの画像をマスクすることで、前記ブロックマッチングで使用するブロックのサイズを設定する、
ことを特徴とする請求項７又は請求項８に記載のステレオ画像処理方法。
【請求項１０】
前記ブロックマッチングで使用するブロックのサイズは、前記ブロックマッチングが進行するにつれて大きくなる、
ことを特徴とする請求項７〜請求項９のいずれか１つに記載のステレオ画像処理方法。
【請求項１１】
前記ブロックのサイズは階段状に大きくなる、
ことを特徴とする請求項１０に記載のステレオ画像処理方法。
【請求項１２】
前記ステレオ画像処理装置が、前記各ブロックの画像をマスクした領域を、前記マスク領域に応じたサイズのブロック、又は、前記画像の領域外にはみ出たブロックでブロックマッチングする、
ことを特徴とする請求項１０又は請求項１１に記載のステレオ画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一対の画像（ステレオ画像）の視差に応じて物体までの距離を測距する、ステレオ画像処理装置及びステレオ画像処理方法に関する。
【背景技術】
【０００２】
ステレオ画像における物体の視差を算出する手法として、特開２００１−９２９６９号公報（特許文献１）に記載されるように、一方の画像を一定の大きさのブロックで分割し、各ブロックの画像について、他方の画像から対応する領域（ブロック）を探索する「ブロックマッチング」が知られている。そして、一方の画像におけるブロックの位置と他方の画像におけるブロックの位置とのずれが、測距対象の物体の視差として算出される。
【０００３】
ところで、画像を分割するブロックのサイズが一定である場合、次のような不具合が生じるおそれがある。即ち、視差算出対象の物体が遠方にあるなど、その物体が占める画像上の面積が小さい場合、１つのブロック内に異なる視差を持つ物体と背景とが混在することがある。一方、視差算出対象の物体が近傍にあるなど、その物体が占める画像上の面積が大きい場合、物体が複数のブロックに亘って存在し、例えば、物体のエッジが含まれないブロックができてしまうことがある。このような状態でブロックマッチングを行っても、物体の視差を適切に算出することは困難であり、物体までの距離を精度良く測距できない可能性がある。
【０００４】
このような不具合に対処するため、特開２０１２−２６８３号公報（特許文献２）に記載されるように、ステレオ画像から倍率を変えた複数の縮小画像を生成し、各縮小画像について同一サイズのブロックを使用したブロックマッチングを行い、その評価が最も良好なものを採用する技術が提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００１−９２９６９号公報
【特許文献２】特開２０１２−２６８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献２で提案される技術では、ステレオ画像における物体の視差を算出するために、ステレオ画像から複数の縮小画像を生成すると共に、各縮小画像についてブロックマッチングを行わなければならず、物体の視差を算出する処理負荷が高いという欠点があった。
【０００７】
そこで、本発明は、ステレオ画像における物体の視差を算出する処理負荷を低減した、ステレオ画像処理装置及びステレオ画像処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
ステレオ画像処理装置は、ステレオ画像を撮像する一対のカメラと、ステレオ画像からブロックマッチングにより物体の視差を算出する手段と、物体の視差から物体までの距離を算出する手段と、を有する。そして、物体の視差を算出する手段は、ブロックマッチングの進行状況に応じて、ブロックマッチングで使用するブロックのサイズを変更する。
【発明の効果】
【０００９】
かかるステレオ画像処理装置によれば、ステレオ画像における物体の視差を算出する処理負荷を低減することができる。
【図面の簡単な説明】
【００１０】
【図１】ステレオ画像処理装置の一例を示す概要図である。
【図２】画像処理の一例を示すフローチャートである。
【図３】画像処理の一例を示すフローチャートである。
【図４】画像データの取り込み範囲の説明図である。
【図５】画像処理ブロックの説明図である。
【図６】画像処理ブロックのマスク領域の説明図である。
【図７】左画像のブロックずらし方法の説明図である。
【図８】ブロックマッチング結果を正規化する方法の説明図である。
【図９】ブロックマッチング結果を正規化する他の方法の説明図である。
【図１０】右画像のブロックずらし方法の説明図である。
【図１１】画像処理ブロックのマスク領域を変更する方法の説明図である。
【図１２】ブロックずらし量と有効画像領域との関係を示す線図である。
【図１３】画像処理ブロックのマスク領域の変化の説明図である。
【図１４】次の画像データの取り込み範囲の説明図である。
【図１５】画像左端に未探索領域が残った状態の説明図である。
【図１６】画像左端以外に未探索領域が残った状態の説明図である。
【図１７】探索領域位置の一例を示す説明図である。
【図１８】画像処理ブロックの他のマスク領域の説明図である。
【図１９】画像処理ブロックのマスク領域の変化の説明図である。
【図２０】ブロックが探索済領域や画像領域外にはみ出ることを許容する方法の説明図である。
【図２１】ブロックマッチングを行う画素の抽出方法の一例を示す説明図である。
【発明を実施するための形態】
【００１１】
以下、添付された図面を参照し、本発明を実施するための実施形態について詳述する。
［第１の実施例］
図１は、車両に搭載されたステレオ画像処理装置の一例を示す。
【００１２】
ステレオ画像処理装置１００は、左カメラ１１０と、右カメラ１２０と、左画像メモリ１３０と、右画像メモリ１４０と、左画像ブロック設定部１５０と、右画像ブロック設定部１６０と、左画像ブロックマスク部１７０と、右画像ブロックマスク部１８０と、右画像ブロック保持部１９０と、右画像マスクブロック保持部２００と、マッチング処理部２１０と、正規化処理部２２０と、視差算出部２３０と、距離算出部２４０と、を含んで構成されている。
【００１３】
左カメラ１１０及び右カメラ１２０は、車両前方の状況を撮像すべく、フロントガラスの上部内面に、車幅方向（水平方向）に基線長Ｌ［ｍ］隔てた状態で取り付けられている。左カメラ１１０及び右カメラ１２０は、雨天時などにフロントガラスが汚れることを考慮し、ワイパの払拭エリア内に配置される。左カメラ１１０及び右カメラ１２０は、例えば、ＣＣＤ（Charge Coupled Device），ＣＭＯＳ（Complementary Metal Oxide Semiconductor）などのイメージセンサであって、所定の焦点距離ｆ［ｍ］及び画素ピッチ［ｍ／pixel］を有している。
【００１４】
ここで、左カメラ１１０及び右カメラ１２０の並び方向は、車幅方向に限らず、車高方向（垂直方向）であってもよい。また、フロントガラスの上部内面に３台以上のカメラを取り付け、例えば、車両走行条件などに応じて、その中から一対のカメラを選択して使用してもよい。さらに、左カメラ１１０及び右カメラ１２０として、赤外線カメラを使用して、夜間の視認性を向上させたり、カラー画像を撮像するカラーカメラを使用して、カラー情報を後段の処理で活用することもできる。
【００１５】
左画像メモリ１３０及び右画像メモリ１４０は、例えば、高速で読み書きが可能なＲＡＭ（Random Access Memory）などの揮発性メモリを含み、左カメラ１１０及び右カメラ１２０によって撮像された、視点の異なる左画像及び右画像を夫々格納する。ここで、左画像メモリ１３０及び右画像メモリ１４０には、左カメラ１１０及び右カメラ１２０によって撮像された左画像及び右画像を、揮発性メモリに取り込む機能が付設されている。
【００１６】
左画像ブロック設定部１５０及び右画像ブロック設定部１６０は、ブロックマッチングによって左画像と右画像との視差を算出する最大サイズのブロックを設定し、そのブロックによって区画される領域に含まれる画像データを抽出する。ここで、「ブロックマッチング」とは、例えば、右画像のある点におけるブロック（矩形形状の範囲）について、左画像をブロック単位で順次探索しつつ、ブロック間の見え方の類似度を表すスコア（数値）を算出し、そのスコアが良好な左画像のブロックを求める手法である。なお、左画像ブロック設定部１５０及び右画像ブロック設定部１６０は、ブロックマッチングの進行状況に応じて、ブロックを設定する位置を適宜変更する。
【００１７】
左画像ブロックマスク部１７０及び右画像ブロックマスク部１８０は、左画像ブロック設定部１５０及び右画像ブロック設定部１６０によって抽出された左右の画像データについて、その一部領域をマスクし、残りの領域を有効な画像領域とする。即ち、左画像ブロックマスク部１７０及び右画像ブロックマスク部１８０は、ブロックによって区画される領域の画像データのうち、ブロックマッチングを行う領域を限定する。なお、左画像ブロックマスク部１７０及び右画像ブロックマスク部１８０は、ブロックマッチングの進行状況に応じて、マスクする領域を順次縮小、即ち、有効な画像領域を順次拡大する。
【００１８】
右画像ブロック保持部１９０は、右画像ブロック設定部１６０によって抽出された右画像のデータを、例えば、揮発性メモリに保持する。このようにすれば、ブロックによって区画される領域の画像データは、右画像メモリ１４０をアクセスしなくとも利用可能となるため、処理速度を向上させることができる。
【００１９】
右画像マスクブロック保持部２００は、右画像ブロックマスク部１８０によってマスクされた右画像のデータを、例えば、揮発性メモリに保持する。このようにすれば、右画像ブロック保持部１９０と同様に、マスクされた右画像のデータは、右画像メモリ１４０をアクセスしなくとも利用可能となるため、処理速度を向上させることができる。
【００２０】
マッチング処理部２１０は、右画像ブロックマスク部１８０によってマスクされた右画像のデータと、左画像ブロックマスク部１７０によってマスクされた左画像のデータと、をブロックマッチングする。なお、ブロックマッチングの詳細については後述する。
【００２１】
正規化処理部２２０は、マッチング処理部２１０によって行われたブロックマッチングではブロックのサイズが必ずしも同一でないため、これを同一条件で評価可能とすべく、ブロックマッチングにおけるスコアを正規化する処理を実行する。
【００２２】
視差算出部２３０は、正規化処理部２２０によって正規化されたスコアを評価し、そのスコアが良好なブロックについて視差（ずれ）δ［pixel］を算出する。
距離算出部２４０は、視差算出部２３０によって算出された視差δ［pixel］に基づいて、例えば、「Ｚ＝ｂｆ／δＦ」という式から、車両前方の物体までの距離Ｚ［ｍ］を算出する。距離算出部２４０によって算出された距離Ｚは、ブレーキ制御装置，エンジン制御装置などに出力され、例えば、オートクルーズコントロールなどに使用される。
【００２３】
図２及び図３は、ステレオ画像処理装置１００が起動されたことを契機として、左カメラ１１０及び右カメラ１２０の撮像フレームごとに繰り返し実行される画像処理の一例を示す。
【００２４】
ステップ１（図では「Ｓ１」と略記する。以下同様。）では、左画像メモリ１３０が、左カメラ１１０で撮像した左画像を左画像メモリ１３０の揮発性メモリに取り込む。ここで、左画像メモリ１３０の揮発性メモリに取り込む左画像データは、図４に示すように、左画像の全体ではなく、例えば、４ラインなど、ブロックマッチングを行う最大サイズのブロックの高さ（縦方向のサイズ）に応じた複数ラインとする。そして、左画像メモリ１３０は、最初の取り込みでは、上から複数ラインの画像データを取り込み、それ以降の取り込みでは、続く複数ラインの左画像データを取り込む（右画像についても同様）。なお、左画像メモリ１３０の揮発性メモリに左画像の全体を取り込むようにしてもよい。
【００２５】
ステップ２では、右画像メモリ１４０が、右カメラ１２０で撮像した右画像を右画像メモリ１４０の揮発性メモリに取り込む。ここで、右画像メモリ１４０の揮発性メモリに取り込む右画像データは、図４に示すように、左画像データと同様に、右画像の全体ではなく、例えば、４ラインなど、ブロックマッチングを行う最大サイズのブロックの高さに応じた複数ラインとする。なお、右画像メモリ１４０の揮発性メモリに右画像の全体を取り込むようにしてもよい。
【００２６】
ステップ３では、右画像ブロック設定部１６０が、図５に示すように、右画像メモリ１４０の揮発性メモリに取り込んだ右画像データから、ブロックマッチングの開始位置において最大サイズのブロックによって区画される領域の右画像データを切り出し、これを右画像ブロック保持部１９０へと送る。以下、最大サイズのブロックによって区画される領域の右画像データを、「右画像処理ブロック」と称する（左画像についても同様）。
【００２７】
ステップ４では、右画像ブロック保持部１９０が、右画像処理ブロックを揮発性メモリに保持する。
ステップ５では、左画像ブロックマスク部１７０及び右画像ブロックマスク部１８０が、左画像処理ブロック及び右画像処理ブロックをマスクするマスク量の初期値として、最大サイズのマスク量を設定する。従って、ブロックマッチングを開始する位置においては、左画像処理ブロック及び右画像処理ブロックの有効画像領域は最小となる。
【００２８】
ここで、左画像処理ブロック及び右画像処理ブロックをマスクする領域は、図６に示すように、画像処理ブロックの左右端部のみとする。従って、マスク後の画像処理ブロックは、横方向の中央部が有効画像領域となる。このようにすれば、マスク量を変更した場合でも、画像全体の特徴が著しく変動しないようにすることができる。例えば、画像処理ブロックの左半分に車両、その右半分に路面が表れている場合、マスク領域を画像処理ブロックの左側又は右側に偏って設定すると、マスク状況によっては画像処理ブロックに路面のみが表れていたり、車両のみが表れている状況が発生する。このため、マスク前の画像処理ブロックとマスク後の画像処理ブロックとの間で、表れている画像が著しく異なってしまうおそれがある。そこで、画像処理ブロックの左右中央部を有効画像領域とすることで、有効画像領域のサイズを変更しても、車両と路面とが半分ずつ表れるようにする。
【００２９】
ステップ６では、右画像ブロックマスク部１８０が、右画像処理ブロックをマスクし、これを右画像マスクブロック保持部２００へと送る。マスクされた右画像処理ブロックは、図６に示すように、左右方向の中央部が有効画像領域となっている。
【００３０】
ステップ７では、右画像マスクブロック保持部２００が、マスクされた右画像処理ブロックを揮発性メモリに保持する。
ステップ８では、左画像ブロック設定部１５０が、右画像処理ブロックとブロックマッチングを行う左画像のブロック位置を設定する。ブロックマッチングの開始位置では、図５に示すように、ブロック位置は右画像処理ブロックの位置と同一位置となる。
【００３１】
ステップ９では、左画像ブロックマスク部１７０が、ブロックマッチングの進行状況に応じてマスク量を変更するため、ブロック位置のずらし量を計数する変数ｎを０にリセットする。
【００３２】
ステップ１０では、左画像ブロックマスク部１７０が、変数ｎをインクリメント、即ち、変数ｎに１を加算する。
ステップ１１では、左画像ブロック設定部１５０が、左画像メモリ１３０の揮発性メモリに取り込んだ左画像データから、左画像のブロック位置において最大サイズのブロックによって区画される領域の左画像処理ブロックを切り出す。
【００３３】
ステップ１２では、左画像ブロックマスク部１７０が、左画像処理ブロックをマスクする。マスクされた左画像処理ブロックは、図６に示すように、左右方向の中央部が有効画像領域となっている。
【００３４】
ステップ１３では、マッチング処理部２１０が、マスクされた右画像処理ブロックと左画像処理ブロックとをブロックマッチングする。即ち、マッチング処理部２１０は、右画像処理ブロックの有効画像領域及び左画像処理ブロックの有効画像領域に含まれる各画素について、例えば、ＳＡＤ（Sum of Absolute Difference）を用い、左右の画像における各画素の輝度差の総和（スコア）を算出し、これが小さいほど類似度が高いと評価する。ここで、ブロックマッチングを行う手法としては、ＳＡＤに限らず、ＳＳＤ（Sum of Squared Difference），ＮＣＣ（Normalized Cross Correlation），ＩＳＣ（Increment Sign Correlation），ＳＲＦ（Statistical Reach Feature）など公知の手法を利用することができる。
【００３５】
また、有効画像領域にエッジなどの特徴的な画像が殆んど又はまったく存在しない状況では、単純にブロックマッチングを行うと、評価を誤ってしまうおそれがある。このため、有効画像領域にエッジが一定面積未満しか存在しない場合には、ブロックマッチングを行わず、その有効画像領域が最終的に選択されないようにすべく、例えば、そのスコアを無効値又は理論上の最悪値とすることもできる。
【００３６】
ステップ１４では、左画像ブロック設定部１５０が、図７に示すように、左画像のブロック位置を、所定量（例えば、１画素）だけ右方にずらす。なお、左画像のブロック位置をずらす量は、１画素に限らず、２画素以上、１画素未満であってもよい。ずらす量を２画素以上とした場合には、ブロックマッチングの高速化が期待でき、ずらす量を１画素未満とした場合には、ブロックマッチングの精度を向上させることができる。また、ずらす量を整数としない場合には、例えば、隣接する画素の輝度を加重平均することで擬似的に小数のずらし量を実現することができるが、その他の公知の手法を用いて実現してもよい。
【００３７】
ステップ１５では、左画像ブロック設定部１５０が、左画像のブロック位置のずらし量が閾値Ａより大きくなったか否かを判定する。ここで、閾値Ａは、車両の先端部までの距離に応じた値とすることができる。即ち、閾値Ａが大きな値をとると、車両前方に位置する物体までの距離が車両先端部よりも近い領域まで視差を探索することとなってしまう。このため、閾値Ａを車両先端部までの距離に応じた値とすることで、視差の探索範囲を狭め、処理負荷を低減することができる。そして、左画像ブロック設定部１５０は、ブロック位置のずらし量が閾値Ａより大きいと判定すれば処理をステップ１６へと遷移させる一方（Ｙｅｓ）、ブロック位置のずらし量が閾値Ａ以下であると判定すれば処理をステップ２２へと遷移させる（Ｎｏ）。
【００３８】
ステップ１６では、正規化処理部２２０及び視差算出部２３０が協働して、ブロックマッチングの結果を評価する。即ち、正規化処理部２２０は、ブロックマッチングを行ったブロックのサイズが必ずしも同一ではないため、これを同一条件で評価可能とする正規化処理を行う。具体的には、正規化処理部２２０は、ブロックマッチングの結果であるスコアを有効画像領域に含まれる画素数で除算することで、図８に示すように、有効画像領域の大小にかかわらず評価ができるようにする。
【００３９】
ここで、正規化の精度を向上させるため、有効画像領域の画素数に代えて、図９に示すように、有効画像領域を変更する地点付近において、有効画像領域の変更前及び変更後のブロックマッチングの結果であるスコアの比の平均を用いることもできる。そして、視差算出部２３０は、１ラインにおけるすべての正規化スコアのうち、最小の値をとるスコアに対応する有効画像領域を選択する。
【００４０】
また、ブロックマッチングのスコアが最小になっても、その値が絶対的には大きい場合には、ブロックマッチングの成績がよくないことから、視差の算出に失敗してしまうおそれがある。そこで、例えば、周囲の有効画像領域との整合性などの要素を勘案し、場合によってはスコアが最小でない有効画像領域を選択してもよい。
【００４１】
ステップ１７では、視差算出部２３０が、右画像における有効画像領域と左画像における有効画像領域との視差δを算出する。
ステップ１８では、距離算出部２４０が、視差δに基づいて、物体までの距離Ｚを算出する。
【００４２】
ステップ１９では、右画像ブロック設定部１６０が、図１０に示すように、右画像のブロック位置を、例えば、最大サイズのブロックの幅だけ右方にずらす。
ステップ２０では、右画像ブロック設定部１６０が、右画像のブロック位置のずらし量が閾値Ｂより大きくなったか否かを判定する。ここで、閾値Ｂは、右画像の右端までブロックマッチングを行ったか否かを判定するためのものであって、例えば、右画像の解像度及びブロックの最大サイズに応じた値とすることができる。そして、右画像ブロック設定部１６０は、ブロック位置のずらし量が閾値Ｂより大きいと判定すれば処理をステップ２１へと遷移させる一方（Ｙｅｓ）、ブロック位置のずらし量が閾値Ｂ以下であると判定すれば処理をステップ３へと遷移させる（Ｎｏ）。
【００４３】
ステップ２１では、右画像ブロック設定部１６０が、最終ラインまでブロックマッチングを行ったか否かを判定する。そして、右画像ブロック設定部１６０は、最終ラインまでブロックマッチングを行ったと判定すれば処理を終了させる一方（Ｙｅｓ）、最終ラインまでブロックマッチングを行っていないと判定すれば処理をステップ１へと遷移させる（Ｎｏ）。なお、ステップ２１の処理は、右画像ブロック設定部１６０に限らず、他の設定部、処理部が行うようにしてもよい。
【００４４】
ステップ２２では、左画像ブロック設定部１５０が、変数ｎが閾値Ｃより大きくなったか否かを判定する。ここで、閾値Ｃは、ブロックマッチングを行う有効画像領域の大きさを変更するタイミングを判定するためのものであって、例えば、実験などを通して適当な値に設定される。そして、左画像ブロック設定部１５０は、変数ｎが閾値Ｃより大きいと判定すれば処理をステップ２３へと遷移させる一方（Ｙｅｓ）、変数ｎが閾値Ｃ以下であると判定すれば処理をステップ９へと遷移させる（Ｎｏ）。
【００４５】
ステップ２３では、左画像ブロックマスク部１７０及び右画像ブロックマスク部１８０が、図１１に示すように、左画像処理ブロック及び右画像処理ブロックをマスクするマスク量を減少、即ち、左画像処理ブロック及び右画像処理ブロックの有効画像領域を拡大する。そして、左画像処理ブロック及び右画像処理ブロックの有効画像領域を拡大した後、処理をステップ６へと遷移させる。
【００４６】
ここで、画像処理ブロックの有効画像領域は、図１２に示すように、左画像処理ブロックのずらし量に応じて離散的（階段状）に増加、要するに、ずらし量がｉ画素増えるごとに、有効画像領域の一辺の大きさがｊ画素増える。ｉ及びｊは、ステレオ画像処理装置１００で求められる処理速度や視差算出精度などに応じて一定値としてもよいし、視差算出結果に応じた可変値としてもよい。
【００４７】
即ち、視差と距離とは反比例するため、左画像処理ブロックのずらし量とその有効画像領域の一辺の長さが略比例するように、マスク量の変更タイミングとその変更量を決定する。マスク量の変更タイミング及び変更量は、恒常的な関係が予め決められていてもよいし、状況に応じて可変としてもよい。
【００４８】
次に、ステレオ画像処理装置１００の理解を容易ならしめることを目的として、ステレオ画像から物体までの距離を算出する一連の処理について説明する。
ステレオ画像処理装置１００が起動されると、左画像メモリ１３０及び右画像メモリ１４０には、図４に示すように、複数ライン分の左画像データ及び右画像データが夫々取り込まれる。右画像メモリ１４０に取り込まれた右画像データから、図５に示すように、ブロックマッチングを行う最大サイズのブロックによって区画される領域の右画像処理ブロックが切り出され、これが揮発性メモリに保持される。揮発性メモリに保持された右画像処理ブロックは、図６に示すように、左右方向の中央部に最小の有効画像領域が設定されるように両端部がマスクされ、これが揮発性メモリに保持される。一方、左画像メモリ１３０に取り込まれた左画像データから、図５に示すように、ブロックマッチングを行う最大サイズのブロックによって区画される領域の左画像処理ブロックが切り出される。左画像処理ブロックは、図６に示すように、左右方向の中央部に最小の有効画像領域が設定されるように両端部がマスクされる。そして、マスクされた左画像処理ブロックと右画像処理ブロックとがブロックマッチングされ、右画像処理ブロックに対する左画像処理ブロックの類似度を表すスコアが算出される。
【００４９】
ブロックマッチングが終了すると、図７に示すように、左画像のブロック位置が所定量だけ右方にずらされ、左画像メモリ１３０に取り込まれた左画像データから、ずらされたブロックによって区画される領域の左画像処理ブロックが切り出される。このとき、ブロックのサイズが大きければ、最小サイズのブロックによってブロックマッチングを行う手法と比較して、処理負荷を低減することができる。また、前回のブロックマッチングと同じラインの画像データを使用するため、左画像メモリ１３０及び右画像メモリ１４０に取り込み済みの画像データをそのまま利用することができる。左画像処理ブロックは、図６に示すように、左右方向の中央部に最小の有効画像領域が設定されるように両端部がマスクされる。そして、マスクされた左画像処理ブロックと右画像処理ブロックとがブロックマッチングされて、右画像処理ブロックに対する左画像処理ブロックの類似度を表すスコアが算出される。このとき、右画像処理ブロックは、前回の処理と同じであるので、揮発性メモリに保持されている右画像処理ブロックを使用することができる。
【００５０】
このような処理が逐次行われ、左画像のブロック位置を所定量だけ右方にずらした結果、左画像のブロックのずらし量が閾値Ｃに達するたびに、図１１に示すように、左画像処理ブロック及び右画像処理ブロックをマスクするマスク量が順次減少される。そして、左画像処理ブロック及び右画像処理ブロックがマスクされ、有効画像領域が拡大した左画像処理ブロックと右画像処理ブロックとがブロックマッチングされて、右画像処理ブロックに対する左画像処理ブロックの類似度を表すスコアが算出される。このとき、右画像処理ブロックは、ブロック位置が変更されていないので、揮発性メモリに保持されている右画像処理ブロックをマスクすればよく、右画像メモリ１４０から画像データを読み込む時間を省くことができる。なお、左画像処理ブロック及び右画像処理ブロックをマスクするマスク量は、最終的に０となり、図１３に示すように、左画像処理ブロック及び右画像処理ブロックの有効画像領域は、最大サイズのブロックサイズとなる。
【００５１】
そして、左画像のブロックのずらし量が閾値Ａに達すると、左画像処理ブロックと右画像処理ブロックとのブロックマッチング結果が評価され、右画像処理ブロックに対応する左画像処理ブロックが求められ、右画像処理ブロックと左画像処理ブロックとの視差から物体までの距離が算出される。物体までの距離が算出されると、図１０に示すように、右画像のブロック位置が最大サイズのブロックの幅だけ右方にずらされ、前述した手順によって、右画像処理ブロックに対応する左画像処理ブロックの探索が行われる。
【００５２】
右画像のブロック位置が右方に順次ずらされた結果、右画像の右端までブロックマッチングが行われると、左画像メモリ１３０及び右画像メモリ１４０には、図１４に示すように、次の複数ライン分の左画像データ及び右画像データが夫々取り込まれる。そして、左画像メモリ１３０及び右画像メモリ１４０に取り込まれた画像データについて、最終ラインに達するまで、前述した処理が順次行われる。
【００５３】
従って、ブロックマッチングの進行状況に応じて、ブロックマッチングで使用するブロックのサイズが徐々に大きくなることで、遠くの物体の視差を算出する場合には、小さなブロックを使用し、近くの物体の視差を算出する場合には、大きなブロックを使用することとなる。このため、従来技術のようにステレオ画像から複数の縮小画像を生成しなくとも、物体の測距精度を確保でき、ステレオ画像における物体の視差を算出する処理負荷を低減することができる。
【００５４】
２ライン目以降のブロックマッチングでは、その前のラインの画像から状態が大きく変化していないことが多く、算出対象の視差も前のラインから大きく変化していないことが期待できる。このため、ブロックマッチングを行うブロックのサイズを固定とし、そのブロックによって区画される領域でブロックマッチングを行うようにしてもよい。このようにすることで、ブロックマッチング及びブロックサイズ変更の負荷が軽減し、高速化を図ることができる。この場合、隣接するブロック又はそれ以上離れたブロックに視差の正解値が移動している可能性があることを考慮し、隣接するブロック又はそれ以上離れたブロックもカバーできるように、ブロックサイズを変更してもよい。さらにこの場合、ブロックサイズを所定のサイズに変更してもよいし、正規化処理及びブロックサイズ変更処理を省くために、ブロックサイズを固定としてもよい。
【００５５】
ここで、画像処理ブロックの有効画像領域が最大でない場合、図１５及び図１６に示すように、視差の未探索領域が発生してしまう。この場合、未探索領域に応じたサイズのブロックを用いて、未探索領域の視差を探索するようにしてもよい。また、探索済領域や画像領域外にブロックがはみ出ることを許容して、未探索領域を中心としたブロックの最大サイズを規定し、そのブロックを用いてブロックマッチングを行うようにしてもよい。
【００５６】
さらに、このような状況が画像左端を除いて発生しないようにするため、探索済領域の次の探索領域の位置を、図１７に示すように、最小サイズのブロックが探索済領域の右隣に隣接するようにし、ブロックサイズを拡大した場合に探索済領域と一部重複するようにしてもよい。この場合、視差に対応するブロックのサイズにかかわらず、最小ブロックのサイズで視差が算出されるという利点がある。
【００５７】
このような状況が画像左端でも発生しないようにするため、画像左端でのブロックの位置を、最小サイズのブロックが画像左端に接するようにし、ブロックサイズを拡大した場合に、ブロックの一部が画像領域外となることを許容することとしてもよい。この場合、画像領域外にはみ出る部分は、左右画像ともに同一の所定の輝度値、例えば、０であるとしておき、その領域がブロックマッチングで影響を及ぼさないようにする。
【００５８】
また、画像領域外の領域を含むブロックマッチングを行った結果を正規化する場合には、画像領域外の存在を考慮する処理を行う。その方法は、画像領域外となるブロックの領域の面積を有効面積から除外したり、ブロックサイズの変更点前後におけるスコアの比を正規化係数としたり、ブロックから一定数の画素を抽出してブロックマッチングを行う場合に、画素抽出を画像領域外から行わないようにしたりするなどがある。
【００５９】
この他には、例えば、正規化係数を単純なブロックサイズに比例した値とするのではなく、画像領域外を除いたブロックの面積に比例した値としてもよい。また、画像左端でのブロックの位置は、最大サイズのブロックが左端に接するようにするが、このようにしても画像左端に未探索領域が発生した場合には、この部分の視差を探索せずに無視するようにしてもよい。このようにすれば、未探索領域は比較的小さくかつ画像端であるため、影響が小さい領域の例外的な処理を考慮する必要がない。
【００６０】
さらに、左側の視差探索済領域に最大サイズのブロックが接するようにして視差探索を行った結果、視差探索済領域の間に未探索領域が発生した場合には、その部分の視差を探索せずに無視するようにしてもよい。このようにすれば、視差探索精度が若干低下するが、処理プロセスの単純化及び高速化を図ることができる。
【００６１】
［第２の実施例］
ステレオ画像処理装置１００の基本構成は、第１の実施例と同一であるので、その説明は省略する。そして、以下の説明では、重複説明を排除する観点から、第１の実施例と異なる部分についてのみ説明する。
【００６２】
図１において、左画像ブロックマスク部１７０及び右画像ブロックマスク部１８０は、左画像処理ブロック及び右画像処理ブロックについて、図１８に示すように、周縁部の領域をマスクし、上下左右中央部の領域を有効画像領域とする。そして、左画像ブロックマスク部１７０及び右画像ブロックマスク部１８０は、有効画像領域の中心及び縦横比を一定に保持しながら、マスク量を適宜変更し、図１９に示すように、有効画像領域を順次拡大する。そして、第１の実施例と同様な手順を経て、ステレオ画像の物体までの距離が測距される。
【００６３】
なお、第２の実施例では、画像処理ブロックをマスクする領域を除き、作用・効果は第１の実施例と同様であるので、その説明は省略する。必要であれば、第１の実施例を参照されたい。
【００６４】
［第３の実施例］
ステレオ画像処理装置１００の基本構成は、第１の実施例と同一であるので、その説明は省略する。そして、以下の説明では、重複説明を排除する観点から、第１の実施例と異なる部分についてのみ説明する。
【００６５】
あるブロックでの視差算出処理が終了したら、画像内の未処理のブロックへ移動して同様に視差算出処理を行う。ここで、視差算出処理が行われたブロックは、ブロックマッチングが合致したサイズのブロックとする。このようにすることで、大きな視差となったブロック、即ち、サイズが大きくなったブロックでは処理済領域が大きくなり、以降処理すべき未処理領域が少なくなる。
【００６６】
ここで、ブロックマッチングで使用するブロックのサイズ拡大により、既に視差探索を行っている領域が当該ブロックに含まれてしまうと、その領域については探索が二重に行われて無駄となる。このため、極力重複が発生ないように、探索順序を設定することが望ましい。例えば、ブロックのマスク範囲を周縁部とする場合には、画像左上から右方向に探索することを大まかな探索順序とする場合において、初期探索ブロックの位置は、マスクされた最小の有効画像領域の左上が画像左上に接するようにするのではなく、画像処理ブロックの左上が画像左上に接するようにする。このようにすることで、マスク量を徐々に小さくしながらブロックマッチングを行う過程において、ブロック内にそもそも有効画像領域が含まれないという状況を防ぐことができる。
【００６７】
あるブロックでの視差探索の終了後、次の視差探索を行うブロックを設定する場合にも、画像処理ブロックが視差探索終了領域に接するようにする。このようにすることで、マスク量を徐々に小さくしながらブロックマッチングを行う過程において、ブロック内に視差探索終了領域が含まれるという状況を防ぐことができる。
【００６８】
なお、このような処理を逐次行うと、最終的に画像処理ブロックより縦又は横又はその両方の寸法が小さい未処理領域が残ってしまう場合がある。この場合には、当該領域について、探索を行う際のブロックサイズの上限を探索済領域にかからないサイズとして探索を行ったり、図２０に示すように、ブロックが探索済領域に重複したり画像範囲外にはみ出ることを許容して、通常のブロックと同様な方法で探索を行ってもよい。
【００６９】
この場合、画像領域外にはみ出る部分は、左右画像共に同一の所定の輝度、例えば、０であるとしておき、この領域の存在がブロックマッチングに影響を及ぼさないようにする。また、正規化処理では、第１の実施例と同様に、画像領域外の領域が存在することに対応した処理を行う。
【００７０】
周囲に存在する探索済領域のブロックサイズが互いに略同じである場合には、未探索領域の視差及び対応すべきブロックサイズもこれらと同等である可能性が高い。このため、未探索領域の縦又は横又はその両方が、未探索領域をはみ出ない範囲で、極力周囲のブロックサイズ相当の長さとなるようにし、当該ブロックのサイズで探索する範囲のずらし量のみ探索を行ってもよい。また、未探索領域のブロックサイズは固定のまま、ずらし量の全範囲で探索を行ってもよい。
【００７１】
ここまで説明したステレオ画像処理装置１００では、右画像のブロックを固定し、左画像のブロックをずらしてブロックマッチングを行っていたが、左画像のブロックを固定し、右画像のブロックをずらしてブロックマッチングを行ってもよい。この場合、視差が発生する方向の関係上、右画像のブロックをずらす方向が逆になる。
【００７２】
また、ブロックマッチングを行う過程において、画像処理ブロックをマスクせずに有効画像領域を最大とし、視差最大となるブロックのずらし位置から、ずらし量０となる方向へ探索を行い、その過程でブロックマスク量を一段階増やすようにしてもよい。
【００７３】
さらに、正規化処理部２２０で正規化処理を行わず、マッチング処理部２１０において、正規化と同等の効果となる方法にてブロックマッチングを行うようにしてもよい。例えば、図２１に示すように、ＳＡＤを用いる場合、画像領域のサイズによらず、輝度差を比較する画素の数を一定とすればよい。従って、画像領域の中から一定数の画素を抽出し、この画素の集合に対してブロックマッチングを行う。なお、左画像ブロック設定部１５０及び右画像ブロック設定部１６０が、画像にブロックを設定するときに、ブロックサイズを予め縮小して画素抽出領域を設定するようにしてもよい。
【００７４】
また、ブロックマッチングを行う画像範囲は、画像処理ブロックをマスクによって規定する構成に限らず、左画像メモリ１３０及び右画像メモリ１４０から取り込む画像処理ブロックのサイズを変えることで規定するようにしてもよい。この場合には、画像処理ブロックをマスクする処理は不要となる。
【符号の説明】
【００７５】
１００  ステレオ画像処理装置
１１０  左カメラ
１２０  右カメラ
１５０  左画像ブロック設定部
１６０  右画像ブロック設定部
１７０  左画像ブロックマスク部
１８０  右画像ブロックマスク部
２１０  マッチング処理部
２２０  正規化処理部
２３０  視差算出部
２４０  距離算出部
【図１】
2014089498.tif 000003
【図２】
2014089498.tif 000004
【図３】
2014089498.tif 000005
【図４】
2014089498.tif 000006
【図５】
2014089498.tif 000007
【図６】
2014089498.tif 000008
【図７】
2014089498.tif 000009
【図８】
2014089498.tif 000010
【図９】
2014089498.tif 000011
【図１０】
2014089498.tif 000012
【図１１】
2014089498.tif 000013
【図１２】
2014089498.tif 000014
【図１３】
2014089498.tif 000015
【図１４】
2014089498.tif 000016
【図１５】
2014089498.tif 000017
【図１６】
2014089498.tif 000018
【図１７】
2014089498.tif 000019
【図１８】
2014089498.tif 000020
【図１９】
2014089498.tif 000021
【図２０】
2014089498.tif 000022
【図２１】
2014089498.tif 000023
【手続補正書】
【提出日】平成26年3月5日(2014.3.5)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ステレオ画像を撮像する一対のカメラと、
前記ステレオ画像からブロックマッチングにより物体の視差を算出する手段と、
前記物体の視差から物体までの距離を算出する手段と、
を有し、
前記物体の視差を算出する手段は、前記ステレオ画像を所定サイズのブロックで分割し、各ブロックの画像をマスクすることで、ブロックマッチングの進行状況に応じて、前記ブロックマッチングで使用するブロックのサイズを変更する、
ことを特徴とするステレオ画像処理装置。
【請求項２】
前記物体の視差を算出する手段は、前記ステレオ画像のブロックマッチングの結果を前記ブロックのサイズに応じて正規化し、正規化されたブロックマッチングの結果から対応する画像を特定して視差を算出する、
ことを特徴とする請求項１に記載のステレオ画像処理装置。
【請求項３】
前記ブロックマッチングで使用するブロックのサイズは、前記ブロックマッチングが進行するにつれて大きくなる、
ことを特徴とする請求項１又は請求項２に記載のステレオ画像処理装置。
【請求項４】
前記ブロックのサイズは階段状に大きくなる、
ことを特徴とする請求項３に記載のステレオ画像処理装置。
【請求項５】
前記各ブロックの画像をマスクした領域は、前記マスク領域に応じたサイズのブロック、又は、前記画像の領域外にはみ出たブロックによりブロックマッチングされる、
ことを特徴とする請求項３又は請求項４に記載のステレオ画像処理装置。
【請求項６】
ステレオ画像を撮像する一対のカメラを有するステレオ画像処理装置が、
前記ステレオ画像からブロックマッチングにより物体の視差を算出する処理と、
前記物体の視差から物体までの距離を算出する処理と、
を実行するときに、
前記ステレオ画像を所定サイズのブロックで分割し、各ブロックの画像をマスクすることで、前記ブロックマッチングの進行状況に応じて、前記ブロックマッチングで使用するブロックのサイズを変更する、
ことを特徴とするステレオ画像処理方法。
【請求項７】
前記ステレオ画像処理装置が、前記ステレオ画像のブロックマッチングの結果を前記ブロックのサイズに応じて正規化し、正規化されたブロックマッチングの結果から対応する画像を特定して視差を算出する、
ことを特徴とする請求項６に記載のステレオ画像処理方法。
【請求項８】
前記ブロックマッチングで使用するブロックのサイズは、前記ブロックマッチングが進行するにつれて大きくなる、
ことを特徴とする請求項６又は請求項７に記載のステレオ画像処理方法。
【請求項９】
前記ブロックのサイズは階段状に大きくなる、
ことを特徴とする請求項８に記載のステレオ画像処理方法。
【請求項１０】
前記ステレオ画像処理装置が、前記各ブロックの画像をマスクした領域を、前記マスク領域に応じたサイズのブロック、又は、前記画像の領域外にはみ出たブロックでブロックマッチングする、
ことを特徴とする請求項８又は請求項９に記載のステレオ画像処理方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】変更
【補正の内容】
【０００８】
ステレオ画像処理装置は、ステレオ画像を撮像する一対のカメラと、ステレオ画像からブロックマッチングにより物体の視差を算出する手段と、物体の視差から物体までの距離を算出する手段と、を有する。そして、物体の視差を算出する手段は、ステレオ画像を所定サイズのブロックで分割し、各ブロックの画像をマスクすることで、ブロックマッチングの進行状況に応じて、ブロックマッチングで使用するブロックのサイズを変更する。