(57)【特許請求の範囲】
【請求項１】
一対のステレオカメラが第１の画像と第２の画像を撮影するステップと、
加算手段が、前記第１の画像の小領域内の画素データの第１の合計値、及び、前記第２の画像の小領域内の画素データの第２の合計値を算出する合計値算出ステップと、
シフト手段が、前記第１の合計値を所定ビット数、右にシフトして第１の近似平均値を算出し、前記第２の合計値を前記所定ビット数、右にシフトして第２の近似平均値を算出する近似平均値算出ステップと、
整数倍手段が、前記第１の画像の小領域内の各画素データの値を整数倍し、前記第２の画像の小領域内の各画素データの値を整数倍する整数倍ステップと、
相関値算出手段が、前記第１の画像の小領域内の画素データ毎に、該画素データの値を整数倍した値から前記第１の近似平均値を引いた第１のデータと、前記第２の画像の小領域内の画素データ毎に、該画素データを整数倍した値から前記第２の近似平均値を引いた第２のデータをそれぞれ求め、前記第１のデータと前記第２のデータとの差の二乗和又は差の絶対値和を算出する相関値算出ステップと、を有する画像処理方法。
【請求項２】
前記整数倍手段は、前記第１の画像の小領域内の各画素データ毎に、該画素データの値を左に所定ビット数シフトした値に該画素データの値を加算することで、前記第１の画像の小領域内の各画素データの値を整数倍し、
前記第２の画像の小領域内の各画素データ毎に、該画素データの値を左に所定ビット数シフトした値に該画素データの値を加算することで、前記第２の画像の小領域内の各画素データの値を整数倍する、ことを特徴とする請求項１に記載の画像処理方法。
【請求項３】
加算手段が加算した、前記第１の画像の小領域内の画素データの数又は前記第２の画像の小領域内の画素データの数を、前記シフト手段がシフトした前記所定ビット数の２のべき乗により除した数と、前記整数倍手段による整数倍の倍数が等しい、
ことを特徴とする請求項１又は２に記載の画像処理方法。
【請求項４】
減算手段が、前記第１の近似平均値と前記第２の近似平均値の差の絶対値が閾値より小さいか否かを判定するステップを有し、
前記絶対値が閾値より小さい場合にのみ、前記整数倍手段は前記整数倍ステップを行い、前記相関値算出手段は前記相関値算出ステップを行う、
ことを特徴とする請求項１〜３いずれか１項に記載の画像処理方法。
【請求項５】
加算手段が加算して得た前記第１の合計値を、除算回路が、前記第１の画像の小領域内の画素データの数で除算した第１の除算結果と、
前記第２の合計値を前記第２の画像の小領域内の画素データの数で除算した第２の除算結果をそれぞれ求める除算ステップをさらに有し、
前記第１の除算結果と前記第２の除算結果の差の絶対値が閾値より小さいか否かを判定するステップを有し、
前記第１の除算結果と前記第２の除算結果の差の絶対値が閾値より小さい場合にのみ、前記整数倍手段は前記整数倍ステップを行い、前記相関値算出手段は前記相関値算出ステップを行う、ことを特徴とする請求項１〜３いずれか１項に記載の画像処理方法。
【請求項６】
演算手段が、前記第１の画像の小領域を１画素ずつずらして得られた複数の相関値から最も小さい前記相関値を選択し、該相関値が得られた際のずらし量により、前記第１の画像と前記第２の画像に共通に撮影された対象物との距離を算出するステップ、
をさらに有することを特徴とする請求項１〜４いずれか１項に記載の画像処理方法。
【請求項７】
前記演算手段は、複数の前記相関値から小さい順に３つの前記相関値を抽出し、３つの前記相関値に等角直線フィッティングを施しサブピクセル単位の視差情報を算出する、
ことを特徴とする請求項６に記載の画像処理方法。
【請求項８】
請求項１〜７いずれか１項に記載の画像処理方法を実施するステレオカメラシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ステレオカメラにより距離情報を検出する画像処理方法に関する。
【背景技術】
【０００２】
ステレオカメラが撮影した画像を利用した車両の運転者支援システムが知られている。運転支援システムは、例えば、車の前方に設置したステレオカメラによって車両前方を監視し、歩行者、他車両、障害物等との距離を測定し、それらに衝突する可能性がある場合は、運転者に報知したり、車両のブレーキを作動させて減速させたり停止させたりすることができる。
【０００３】
ステレオカメラは、異なる視点位置から同じ対象物体を撮影した時に、撮影画像上での結像位置が物体の距離によって変化することを利用して物体の距離や位置を計測する。
【０００４】
図１はステレオカメラの測距原理を説明する図の一例である。基線長Ｂ（カメラ間の距離）、焦点距離ｆ、及び、視差d（視点による物体の結像点の位置の差）から、物体までの距離Ｚは以下の式で表すことができる。
Ｚ＝Ｂ・ｆ／ｄ        …（１）
視差dの算出には、左右のカメラから得られた一対の画像のある小領域の相関値を計算し、最も相関が高い画素位置が得られた際の画像間のシフト量を視差として算出するブロックマッチングがよく用いられる。
【０００５】
相関の評価値としては、２つの小領域の各画素値の差の絶対値和ＳＡＤ（sum of absolute difference）や差の二乗和ＳＳＤ（sum of squared difference）が用いられることが多い。ＳＡＤやＳＳＤではカメラ特性に影響を受けやすいため、両画像の輝度差やノイズの影響を抑えることが可能な相関値の算出方法が提案されている（例えば、特許文献１参照。）。特許文献１には、２つの画像のそれぞれの各小領域の各画素値から各小領域の平均値を減算してからブロックマッチングを行う平均値差分マッチングが開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、平均値差分マッチングでは演算装置が除算処理しなければならないという問題がある。というのは、ステレオカメラの距離演算を車載用途等で利用する場合には、高精度かつリアルタイムで処理可能であることが望ましく、専用に設計されたハードウェアが搭載されることが多い。ハードウェアによる処理はソフトウェアによる処理よりも高速であるが、除算回路の除算処理は処理時間が長くなる（クロック数が多く必要になる）ため、除算回路を用いないことが理想的である。
【０００７】
ところが、平均値差分マッチングでは、小領域内の画素値の和を画素数で除算するため除算回路が必要である。例えば、７×７の小領域の画素平均値を求めるのであれば、除算回路は、小領域内の「画素値の和÷４９」を行う。したがって、平均値差分マッチングでは除算回路が必要となるため、距離を得るための処理時間が長くなるという問題があった。
【０００８】
また、特許文献１で提案されている平均値差分マッチングでは、高周波ノイズの影響でミスマッチを起こし、正確な視差値が得られないという問題があった。そこで、小領域の平均値から算出した判定値と小領域内の画素値を比較して有効か否かを判定し、有効な画素のみで相関計算を行う技術も提案されている（例えば、特許文献２参照。）。しかしながら、特許文献２のミスマッチの低減方法では、対象とする小領域の全画素において有効判定を行った上でマッチング処理を行うため、計算の処理コストが高いという問題がある。
【０００９】
本発明は、上記課題に鑑み、より短い処理時間で距離情報が得られる画像処理方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明は、一対のステレオカメラが第１の画像と第２の画像を撮影するステップと、加算手段が、前記第１の画像の小領域内の画素データの第１の合計値、及び、前記第２の画像の小領域内の画素データの第２の合計値を算出する合計値算出ステップと、シフト手段が、前記第１の合計値を所定ビット数、右にシフトして第１の近似平均値を算出し、前記第２の合計値を前記所定ビット数、右にシフトして第２の近似平均値を算出する近似平均値算出ステップと、整数倍手段が、前記第１の画像の小領域内の各画素データの値を整数倍し、前記第２の画像の小領域内の各画素データの値を整数倍する整数倍ステップと、相関値算出手段が、前記第１の画像の小領域内の画素データ毎に、該画素データの値を整数倍した値から前記第１の近似平均値を引いた第１のデータと、前記第２の画像の小領域内の画素データ毎に、該画素データを整数倍した値から前記第２の近似平均値を引いた第２のデータをそれぞれ求め、画素データ毎に前記第１のデータと前記第２のデータとの差分の二乗和又は差の絶対値和を算出する相関値算出ステップと、を有する画像処理方法を提供する。
【発明の効果】
【００１１】
より短い処理時間で距離情報が得られる画像処理方法を提供することができる。
【図面の簡単な説明】
【００１２】
【図１】ステレオカメラの測距原理を説明する図の一例である。
【図２】相関値の算出方法を説明する図の一例である。
【図３】４つのステレオカメラの搭載位置を模式的に示す図の一例である。
【図４】ステレオカメラシステムの車両への搭載例を示す図の一例である。
【図５】画像処理ＩＣの基本構成の一例を示す図である。
【図６】ステレオ演算処理部における視差値算出の流れを示すフローチャートである。
【図７】ブロックマッチングを説明する図の一例である。
【図８】等角直線フィッティングを説明する図の一例である。
【図９】ステップＳ１２の処理の詳細な手順を示すフローチャート図の一例である。
【図１０】ステレオ演算処理部の回路構成を模式的に示す図の一例である。
【図１１】除算処理により求めたサブピクセルの視差値と本実施例の方法で求めたサブピクセルの視差値の比較例を示す図である。
【図１２】並進量とサブピクセルの関係のグラフを示す図の一例である。
【図１３】ステップＳ１２の処理の詳細な手順を示すフローチャート図の一例である（実施例２）。
【図１４】ステレオ演算処理部の回路構成を模式的に示す図の一例である（実施例２）。
【図１５】ステップＳ１２の処理の詳細な手順を示すフローチャート図の一例である（実施例２の変形例）。
【図１６】ステレオ演算処理部の回路構成を模式的に示す図の一例である（実施例２の変形例）。
【発明を実施するための形態】
【００１３】
以下、本発明を実施するための形態について図面を参照しながら説明する。
【実施例１】
【００１４】
図２は、本実施例の相関値の算出方法を説明する図の一例である。ステレオカメラの一方の画像を基準画像、他方を比較画像と呼ぶ。ブロックマッチングでは、比較画像の注目画素を含む小領域（図では７×７）を、基準画像に対し１画素ずつシフトさせながら、相関値を計算する。
Ｓ１：ステレオカメラシステムはまず、比較画像と基準画像それぞれの４８画素の画素値の和を算出する。４８画素となるのは注目画素を除いたためである。
Ｓ２：ステレオカメラシステムは、４８画素の画素値の和を４bit右シフトする。右シフトは除算と同等なので、１６で除算したことと同等の除算結果が得られる。４８画素あるのに対し１６で除算することは、４８個の画素の画素値の平均を３倍した値が得られることを意味する。以下、４bit右シフト結果を近似平均値と称す。
Ｓ３：次に、ステレオカメラシステムは比較画像と基準画像それぞれの画素の画素値を３倍する。
Ｓ４：次に、ステレオカメラシステムはＺＳＳＤ（zero-mean sum of squared difference）値を相関値として算出する。すなわち、比較画像において、各画素毎に３倍の画素値から近似平均値を減じ、基準画像において３倍の画素値から近似平均値を減ずる。そして、４８個の画素について、これら（「３×Ｓij−４bitシフト結果」と「３×Ｍij−４bitシフト結果」）の差の二乗和を求めることでＺＳＳＤ値が得られる。
【００１５】
したがって、本実施例のステレオカメラシステムは、近似平均値の算出にシフト演算を用い、除算処理を行っていないので、高速に演算することができる。また、近似平均値を画素値から減じるので、２つのカメラのカメラ特性を高精度に調整したり、わずかな経年変化が生じても再調整が必要になることなく、高精度に距離を計測することが可能である。
【００１６】
〔ステレオカメラの搭載例〕
図３は、４つのステレオカメラ１〜４の搭載位置を模式的に示す図の一例である。ステレオカメラ１は前方に、ステレオカメラ２は右側方に、ステレオカメラ３は左側方に、ステレオカメラ４は後部に、それぞれ配置されている。ステレオカメラ１は、室内ルームミラーや車両前部バンパに、車両前方のやや水平下向きに光軸を向けて配置される。ステレオカメラ２は、例えば、右ドアミラー、車両右側面のドアノブ設置部分の窪み、ドアウィンドウのフレーム、Ａピラー、Ｂピラー又はＣピラーなどに、車両右側方、車両右側方よりもやや後方又は車両右側方よりもやや前方に光軸を向けて配置される。ステレオカメラ３は、例えば、左ドアミラー、車両左側面のドアノブ設置部分の窪み、ドアウィンドウのフレーム、Ａピラー、Ｂピラー又はＣピラーなどに、車両左側方、車両左側方よりもやや後方又は車両左側方よりもやや前方に光軸を向けて配置される。ステレオカメラ４は、後部ナンバープレートの周辺や、後部バンパなどに配置されている。
【００１７】
ステレオカメラ１は、主に、車両前方の歩行者との距離、先行車両との距離、その他の地物（標識、信号機、電柱、ガードレール等）や障害物との距離を測定するために用いられる。障害物との距離に応じて、ステレオカメラシステムは運転者に警告したり、制動をかけることができる。
【００１８】
ステレオカメラ２，３は、乗員がドアの開閉をする際に、周囲から近づいてくる人や物との距離を検出するために用いられる。駐車場などで、隣の他車両との距離を測定し、また、駐車中に後側方から接近する自転車、バイク、及び、歩行者との距離を測定する。ステレオカメラシステムは、距離に応じて、運転者に警告したり、ドアの開放を禁止することができる。
【００１９】
ステレオカメラ４は、後方の障害物との距離を検出したり、乗員が後部ドアを開放する際に障害物との距離を測定する。障害物が所定の距離内にある場合、ドアの開放を禁止することができる。また、バック走行中、ステレオカメラは障害物との距離に応じて、運転者に警告したり、制動をかけることができる。
【００２０】
この他、すでに車両に乗車している乗員を検知するステレオカメラを搭載してもよい。乗員検知カメラの設置位置は、車内を前方から後方に向けて撮像できる位置（例えば、ルームミラー、サンバイザ、Ａピラー、天井部等）、又は、車内の側方から前方に向けて撮像できる位置（例えば、Ｃピラー、後部ドアフレーム、天井部等）等である。また、車両の側方から車内側を撮像できる位置（例えば、ドア、Ａピラー、Ｂピラー、Ｃピラー）に設置して、搭乗者を横から撮像することも有効である。
【００２１】
〔構成例〕
図４はステレオカメラシステム１００の車両への搭載例を示す図の一例を示す。車両には多くのマイコンが搭載されており、１つ以上のマイコンが搭載された１つの装置をＥＣＵ（Electronic Control Unit）と呼ぶことが多い。代表的なＥＣＵとしては、エンジンを制御するエンジンＥＣＵ、ブレーキを制御するブレーキＥＣＵ、ドアやシートを制御するボディＥＣＵ、ナビやＡＶ機器を制御する情報系ＥＣＵ等が知られている。本実施例では、距離情報を取得するＥＣＵを画像処理ＥＣＵ１２と呼ぶこととする。
【００２２】
画像処理ＥＣＵ１２は、ＣＡＮ（Controller Area Network）やＦｒｅｘＲａｙなどの規格の車載ＬＡＮを介して他の不図示のＥＣＵと通信可能に接続されている。車載ＬＡＮ上のデータは、車載ＬＡＮに接続された全てのＥＣＵが参照可能であり、画像処理ＥＣＵ１２を含め各ＥＣＵは、予め定められたデータを受信して処理に使用する。
【００２３】
画像処理ＥＣＵ１２は、表示装置１１、及び、ステレオカメラ１３（図では１つのみだが複数個を搭載してもよい）と接続されている。画像処理ＥＣＵ１２には一台以上のマイコンが搭載されており、一般的なマイコンと同様にＣＰＵ，ＲＡＭ、ＲＯＭ、ＣＡＮＣ（ＣＡＮ  Controller）、Ｉ／Ｏ等を有すると共に、画像処理のための画像処理ＩＣ２０を有している。これらは、システムバスや外部バス及びバスコントローラを介して接続されている。
【００２４】
ステレオカメラ１３はＩ／Ｏに接続され、撮影された画像データは適宜、画像処理ＩＣ２０がＲＡＭを用いて画像処理する。ＣＡＮＣは、ＣＡＮプロトコルに基づき他のＥＣＵと通信を行う。ＣＰＵは、ＲＯＭに記憶されたプログラムを、ＲＡＭを作業メモリに実行して、ＣＡＮＣを介して、画像処理結果を他のＥＣＵに送信するなどの各種の制御を行う。なお、表示装置１１は、ステレオカメラ１３が撮影した映像を表示する液晶や有機ＥＬなどのディスプレイ、又は、ＨＵＤ（Ｈｅａｄ  Ｕｐ  Ｄｉｓｐｌａｙ）である。表示装置１１は、画像処理により検出された例えば歩行者や障害物を強調して表示するために用いられるが、必ずしも必要ではない。また、表示装置１１は、道路地図を表示するナビゲーション装置と兼用されることが多い。
【００２５】
図５は、画像処理ＩＣ２０の基本構成の一例を示す図である。画像処理ＩＣ２０は、ステレオ画像入力部２１、ステレオ画像校正部２２、ステレオ画像記憶部２３、ステレオ演算処理部２４、及び、視差データ記憶部２５を有している。
【００２６】
ステレオカメラ１３は、二台の単眼カメラがほぼ同時にそれぞれ撮影する画像データをステレオ画像校正部２２に入力する。
【００２７】
ステレオ画像校正部２２は、ステレオカメラ１３から入力された２つの画像データに対して、単眼カメラにおける光学的なずれ、単眼カメラ間における幾何的なずれを補正する。ステレオ画像記憶部２３は、ステレオ画像校正部２２が校正した２つの画像データをステレオ演算のための元画像として記憶する。ステレオ演算処理部２４は、２つの画像データを処理して視差データを算出する。視差データ記憶部２５は、距離情報の算出のための視差データを記憶する。
【００２８】
ステレオカメラ１３は、ある焦点距離fのレンズ光学系と撮像素子からなる単眼カメラ１Ｌ、単眼カメラ１Ｒを有している。これら二つの単眼カメラ１Ｌ、１Ｒは、露光時間やゲインが可変のＣＣＤカメラであり、両者は互いに同期が取られ、同一タイミングで画像を撮影している。なお、撮像素子はＣＣＤに限らず、ＣＭＯＳ等の撮像素子でもよい。ステレオカメラ１３には、これら二つの単眼カメラ１Ｌ、１Ｒがある所定の基線長Ｂの距離を置いて、光軸が平行になるよう配置されている。
【００２９】
ステレオ画像校正部２２は、レンズ光学系と撮像素子の機械的なずれやレンズ光学系により生じる歪曲収差、また、単眼カメラの取り付け位置のずれを補正する。具体的には例えばＬＵＴ（Ｌｏｏｋ  Ｕｐ  Ｔａｂｌｅ）により画素位置が置き換えられる。ステレオ画像校正部２２は、例えば、所定の画像処理機能を実現するＦＰＧＡ等から構成される電気回路である。前述の補正項目における補正量は、事前に非特許文献1等のキャリブレーション手法により求めておくが、補正項目、キャリブレーション手法共に非特許文献1の内容に限定されない。
【００３０】
ステレオ演算処理部２４は、ステレオ画像記憶部２３に記憶された左カメラの画像データ（比較画像とする）と右カメラの画像データ（基準画像とする）に対して、両画像の小領域ごとの相関値を求めることで対応点を検出するブロックマッチングを行い、両画像間の対応点の画素のずれ（視差）を算出する。この視差データは、式（１）の視差dに対応し、焦点距離f、基線長Ｂを用いて測定対象物までの３次元距離情報を取得することを可能にする。ステレオ演算処理部２４もステレオ画像校正部２２と同様に、ＦＰＧＡ等から構成される電気回路である。ステレオ演算処理部２４の詳細は後述する。
【００３１】
ステレオ演算処理部２４により得られた視差データは、視差データ記憶部２５に記憶され、車両制御や認識処理等に利用される。なお、視差データ記憶部２５に記憶する際、式（１）を用いて視差データを距離情報に換算しておいてもよい。
【００３２】
〔ステレオ演算処理部の処理の詳細〕
図６は、ステレオ演算処理部２４における視差値算出の流れを示すフローチャートである。
【００３３】
Ｓ１１：ステレオカメラ１３が２つの画像データを撮像し、入力画像をステレオ画像校正部２２に入力する。ステレオ画像校正部２２はＬＵＴ等により２つの画像データを校正し、ステレオ画像記憶部２３に記憶する。
【００３４】
Ｓ１２：ステレオ演算処理部２４は、左右の２つの画像データ（比較画像と基準画像）に対してブロックマッチングを行い、ピクセル単位での視差値dintを算出する。Ｓ１２の処理手順は後に詳述する。
【００３５】
図７は、ブロックマッチングを説明する図の一例である。ブロックマッチングでは、入力画像を小領域の探索ブロックに分割し、基準画像の探索ブロックに対して比較画像の探索ブロックの位置を、画像の水平方向に１画素ずつずらしながら（シフトしながら）相関値の計算を行う。本実施例では、
探索ブロックのサイズ      ：  ７×７
基準画像の各画素の輝度値  ：  Ｍi,j（i=1〜7、j=1〜7）
比較画像の各画素の輝度値  ：  Ｓi,j（i=1〜7、j=1〜7）
とする。ただし、探索ブロックのサイズは一例に過ぎない。
【００３６】
予め探索範囲を制限するため、探索した（ずらした）画素数が閾値ＴＨ１を満たした時点で相関値が最も相関を示す（この場合は相関値が小さい）シフト量を決定する。この最も相関値が小さかった画素位置におけるシフト量が、ピクセル単位での視差値dintを表す。
【００３７】
なお、上述したように、本実施例では、ＺＳＳＤ値を相関値とするが、このＺＳＳＤ値は一般のＺＳＳＤ値を３倍したものになっている。
【００３８】
Ｓ１３：ステレオ演算処理部２４は、ステップＳ１２で算出された相関値を用いて、サブピクセル単位での視差値を算出する。
【００３９】
サブピクセルの視差値の算出方法としては、等角直線フィッティングやパラボラフィッティングなどが知られている。本実施例では等角直線フィッティングを用いて、サブピクセルの視差値dsubを算出する。
【００４０】
図８は、等角直線フィッティングを説明する図の一例である。等角直線フィッティングでは、最小の相関値Ｒ（0）、２番目に小さい相関値Ｒ（1）、及び、３番目に小さい相関値Ｒ（-1）を用いる。
(i)最小の相関値（図の黒丸）と３番目に小さな相関値（図のR(-１)）を通る直線を引く
(ii)その直線の傾きの符号を逆にした直線で、２番目に小さな相関値（図の（R（1））を通る直線を引く
(iii)２直線の交点位置を求め、最小の相関値から交点までの距離をサブピクセル単位での視差値dsubの推定値とする
等角直線フィッティングを数式で表現すると式（２）により表される。もっとも相関が高い画素の相関値がR(0)、隣接画素の相関値がR(-1)、R(1)である。なお、本実施例では相関値の３倍を算出しているが、相関値が定数倍されてもサブピクセルでの視差値dsubは変化しない。
【００４１】
【数１】
0005821408.tif 000002
Ｓ１４：ステレオ演算処理部２４は、ピクセル単位での視差値dintとサブピクセル単位での視差値dsubを加算することで、視差データdを算出する。
【００４２】
＜Ｓ１２の処理＞
図９は、ステップＳ１２の処理の詳細な手順を示すフローチャート図の一例を、図１０はステレオ演算処理部２４の回路構成を模式的に示す図の一例をそれぞれ示す。加算器２４１は比較画像の探索ブロックの４８個の画素の画素値を加算し、シフト部２４２は加算結果を４bit右シフトする。シフト部２４３は比較画像の探索ブロックの４８個の画素の画素値をそれぞれ１bit左シフトし、加算器２４４は１bit左シフトされた画素値と元の画素値とを加算する。基準画像側のブロックについても同様である。ＺＳＳＤ演算器２４９はＺＳＳＤ値を算出する。  
Ｓ１２−１：加算器２４１は比較画像の探索ブロックの注目画素以外の４８画素の和を算出し、加算器２４５は基準画像の探索ブロックの注目画素以外の４８画素の和を算出する。なお、注目画素とは探索ブロック内の中心画素を意味し、本実施例ではＭ4,4、Ｓ4,4である。
【００４３】
加算器２４１，２４５は、１画素毎に加算を４８回繰り返す回路でもよいが、４８画素の加算を１回で行う回路、又は、ｍ個の画素の加算を１度に行いそれを４８／ｍ回繰り返す回路など、さまざまな実装形態がある。一般に１度に加算可能な画素数が多いほど演算が速いが回路規模が大きくなる傾向にあるので、回路規模の制約と必要な演算速度から加算器２４１，２４５を設計する。
【００４４】
Ｓ１２−２：次に、シフト部２４２は加算器２４１が加算した４８個の画素の加算結果を４bit右シフトし、シフト部２４６は加算器２４５が加算した４８個の画素の加算結果を４bit右シフトする。これは算術シフトであり、上位４桁にはゼロ（正値を意味する）が補充され、下位４桁は捨てられる。４bitの右シフトは１６で除算することと等価である。本来、４８個の画素の画素値の平均値を求めるのであれば、４８で除算すればよいが、シフト演算では２のべき乗の数でしか除算できない。そこで、本実施例では、４bit右シフトすることで１６で除算し、注目画素以外の４８画素の画素値の平均値×３を近似平均値としている。
近似平均値
＝４８画素の画素値の合計を４bit右シフトした値
＝４８画素の画素値の平均値×３
Ｓ１２−３：シフト部２４３と加算器２４４が、比較画像の探索ブロック内の４８個の画素の画素値を３倍した値を計算し、シフト部２４７と加算器２４８が、基準画像の探索ブロック内の４８個の画素の画素値を３倍した値を計算する。すなわち、シフト部２４３は比較画像の各画素の画素値を１bit左シフトし、シフト部２４７は基準画像の各画素の画素値を１bit左シフトする。最上位ビットには正値を意味するゼロを保持したまま、最上位ビット以外の下位ビットをそれぞれ１ビット左にシフトし、最下位ビットにゼロを補充する。これにより、２倍した値が得られる。
【００４５】
シフト部２４３は画素値を２倍した値を加算器２４４に入力し、加算器２４４は比較画像の各画素の画素値と２倍された画素値を加算する。同様に、シフト部２４７は画素値を２倍した値を加算器２４８に入力し、加算器２４８は比較画像の各画素の画素値と２倍された画素値を加算する。これにより、比較画像と基準画像それぞれの画素の画素値を３倍した値が得られる。
【００４６】
Ｓ１２−４：ＺＳＳＤ演算器２４９が、式（３）を用いて、ＺＳＳＤ値を３倍した値と同等の値を算出する。以下、この値を単にＺＳＳＤ値という。
３×ＺＳＳＤ＝Σ｛（３×Ｓij−近似平均値）−（３×Ｍij−近似平均値）｝２  …（３）
すなわち、ＺＳＳＤ演算器２４９は、比較画像について、各素毎に、画素値を３倍した値から近似平均値を減じ、基準画像について、各素毎に、画素値を３倍した値から近似平均値を減じる。そして、比較画像の減算値（３×Ｓij−近似平均値）から基準画像の減算値（３×Ｍij−近似平均値）を減じた値を二乗する。そして、４８個得られる二乗値を全て加算する。
【００４７】
このような演算により、除算処理することなく相関値としてＺＳＳＤ値が得られる。
【００４８】
Ｓ１２−５：ステレオ演算処理部２４は、探索画素数が閾値ＴＨ１以上か否かを判定する。
【００４９】
Ｓ１２−６：探索画素数が閾値ＴＨ１より大きくない場合、ステレオ演算処理部２４は、探索画素数を１つ増やし（注目画素を水平方向に１画素ずつずらして）、Ｓ１２−１〜１２−４の処理を、探索画素数が閾値ＴＨ１より大きくなるまで演算する。したがって、閾値ＴＨ１個の相関値が得られ、このうち最も小さいＺＳＳＤ値が得られたシフト量が、ピクセル単位での視差値dintである。
【００５０】
なお、ステップＳ１２−２において、４bit右シフトと３倍の処理は、探索ブロックのサイズを７×７画素とした場合の値であって、シフト量と３倍という値は上記に制限されない。例えば、探索ブロックのサイズを４×４とした場合、まず、注目画素を含めて１６画素の画素値の合計を算出する。この場合シフト量は右４bitとすればよく、各画素の画素値を３倍する必要はない。
【００５１】
また、例えば、探索ブロックのサイズを６×６とした場合、まず、注目画素を含めて３６画素の画素値の合計を算出する。シフト量は右２bitとなり、この場合、各画素の画素値を９倍する。このように、探索ブロックのサイズ、着目画素の画素値を加算するか否か、シフト量、定倍数は適宜、定めることができる。
【００５２】
〔従来法との比較〕
図１１は、除算処理により求めたサブピクセルの視差値と本実施例の方法で求めたサブピクセルの視差値の比較例を示す図であり、図１２は並進量とサブピクセルの関係のグラフを示す図の一例である。サブピクセル単位で視差値dsubを比較するのは、ピクセル単位では両者の算出結果が完全に一致してしまい、差異が確認できないためである。
【００５３】
例えば、実験者は、測距ターゲットとステレオカメラ１３との間の距離を一定に保ち、ステレオカメラ１３を測距ターゲットと平行の方向に０．２ピクセルずつ５回並進させた。それぞれの並進量の際に、サブピクセルの視差値dsubを、ステレオ演算処理部２４が従来法と本実施例の算出方法で算出した。図１２では横軸がステレオカメラ１３の並進量[pix]、縦軸がサブピクセルの視差値dsubである。
【００５４】
図１１、図１２から明らかなように、本実施例の視差値dsubの算出結果と、除算処理による視差値dsubの算出結果とが同等の値（ほぼ同じ）になっている。
【００５５】
したがって、本実施例のステレオカメラシステム１００は、除算回路又は除算処理を用いて平均値差分マッチングを行ったときと同等の精度を、より高速な処理で実現できることが検証された。
【実施例２】
【００５６】
本実施例では、ノイズの影響により相関性の低い小領域をミスマッチすることを防止するステレオカメラシステム１００について説明する。本実施例では、基準画像及び比較画像の小領域の平均値を算出後に、両平均値の差の絶対値を算出し、差の絶対値が閾値より大きい場合は両領域が異なる領域であると判断してマッチング処理を行わない。こうすることで、相関性の低い小領域をミスマッチすることを防止することができる。また、従来技術用のように、小領域内の各画素単位で演算しないので演算コストも低減できる。
【００５７】
本実施例では、図６の処理手順は実施例１と同様だが、ステップＳ１２の処理内容が異なっている。
【００５８】
＜Ｓ１２の処理＞
図１３は、図６のステップＳ１２の処理の詳細な手順を示すフローチャート図の一例を示す。図１４はステレオ演算処理部２４の回路構成を模式的に示す図の一例をそれぞれ示す。本実施例のステレオ演算処理部２４は減算器２５０を有する。減算器２５０は、シフト部２４２と２４６が出力する２つの近似平均値の差の絶対値を算出し、閾値以下か否かの判定結果をＺＳＳＤ演算器２４９に出力する。
【００５９】
Ｓ１２−１１：加算器２４１は比較画像の注目画素以外の４８画素の和を算出し、加算器２４５は基準画像の注目画素以外の４８画素の和を算出する。
【００６０】
Ｓ１２−１２：次に、シフト部２４２は、加算器２４１が加算した４８個の画素の加算結果を４bit右シフトする。これにより、近似平均値２が得られる。同様に、シフト部２４６は、加算器２４５が加算した４８個の画素の加算結果を４bit右シフトする。これにより、近似平均値１が得られる。
【００６１】
なお、必ずしもシフトする必要はなく、基準画像と比較画像の４８画素又は４９画素の画素値の合計値の差の絶対値を求めてもよい。
【００６２】
Ｓ１２−１３：減算器２５０は２つの近似平均値１，２の差の絶対値を算出し、その差が類似判定閾値ＴＨ２１より小さいか否かを判定する。
２つの探索ブロックが類似している、つまり両探索ブロック領域が２つの画像中で対応する領域の場合、それぞれの探索ブロックで算出した近似平均値はほぼ同等の値になる。これに対し、両探索ブロックが異なる領域の場合は、それぞれの探索ブロックで算出した近似平均値も異なる値となる。
【００６３】
この考え方により、両探索ブロック内の近似平均値１，２の差の絶対値が類似判定閾値ＴＨ２１より小さい場合、両探索ブロックが類似していると判断できる。両探索ブロック内の近似平均値１，２の差の絶対値が類似判定閾値ＴＨ２１以上の場合、両探索ブロックが異なる領域であると判断される。
【００６４】
Ｓ１２−１４：両探索ブロックが類似していると判断された場合、ＺＳＳＤ演算部２４９はＺＳＳＤ値を算出する。算出方法は実施例１と同様である。
【００６５】
Ｓ１２−１５：両探索ブロックが類似していないと判断された場合、ステレオ演算処理部２４は、探索した画素数が予め設定した閾値ＴＨ１以上か否かを判定する。探索した画素数が予め設定した閾値ＴＨ１以上の場合、算出されたいくつかのＺＳＳＤ値のうち最も小さい相関値が得られたシフト量が、ピクセル単位での視差値dintである。
【００６６】
Ｓ１２−１６：探索した画素数が予め設定した閾値ＴＨ１以上でない場合、ステレオ演算処理部２４は、１画素隣りの画素位置に移り、Ｓ１２-１１〜Ｓ１２−１５の処理を継続する。
【００６７】
本実施例では、単に基準画像と比較画像の探索ブロックの平均を求めるだけなので、探索ブロックの各画素の画素値から平均値を引くような処理が不要であり、演算コストを低減できる。
【００６８】
＜変形例＞
本実施例のミスマッチの防止処理は、除算回路を用いたステレオ演算処理部２４によっても実現できる。
【００６９】
図１５は、図６のステップＳ１２の処理の詳細な手順を示すフローチャート図の一例を示す。図１６はステレオ演算処理部２４の回路構成を模式的に示す図の一例をそれぞれ示す。図１６のステレオ演算処理部２４は除算回路２５１、２５２を有する。除算回路２５１、２５２は、加算器２４１、２４５が加算した４９画素の画素値の合計を、定数４９で除算する。したがって、基準画像および比較画像の探索ブロックにおける画素値の平均値ＭAVE、ＳAVEがそれぞれ算出される。
【００７０】
【数２】
0005821408.tif 000003
減算器２５０は、平均値ＭAVE、ＳAVEの差の絶対値を算出し、閾値以下か否かの判定結果をＺＳＳＤ演算器２４９に出力する。したがって、図１３と同様に、両探索ブロックが２つの画像中で対応する領域の場合にだけ、ブロックマッチング処理を行うことができる。
【００７１】
Ｓ１２−１１：加算器２４１は比較画像の４９画素の和を算出し、加算器２４５は基準画像の４９画素の和を算出する。
【００７２】
Ｓ１２−１２´：次に、除算回路２５１が加算器２４１が加算した４９個の画素の加算結果を４９で除算し、除算回路２５２が加算器２４５が加算した４９個の画素の加算結果を４９で除算する。これにより、平均値ＭAVE、ＳAVEが得られる。
【００７３】
Ｓ１２−１３´：減算器２５０は２つの平均値ＭAVE、ＳAVEの差の絶対値を算出し、その差が類似判定閾値ＴＨ２２より小さいか否かを判定する。両探索ブロック内の近似平均値の差の絶対値が類似判定閾値ＴＨ２２より小さい場合、両探索ブロックが類似していると判断できる。両探索ブロック内の近似平均値の差の絶対値が類似判定閾値ＴＨ２２以上の大きい場合、両探索ブロックが異なる領域であると判断される。
【００７４】
Ｓ１２−１４：両探索ブロックが類似していると判断された場合、ＺＳＳＤ演算部２４９はＺＳＳＤ値を算出する。算出方法は実施例１と同様でもよいが、除算回路２５１，２５２を有する場合は以下のようにして算出できる。
ＺＳＳＤ＝Σ｛（Ｓij−ＳAVE）−（Ｍij−ＭAVE｝２  …（４）
すなわち、ＺＳＳＤ演算器２４９は、探索ブロックの比較画像の画素毎に、画素値Ｓijから平均値ＳAVEを減じ、基準画像の画素毎に画素値Ｍijから平均値ＭAVEを減じる。それらの差分の二乗和がＺＳＳＤ値である。
【００７５】
Ｓ１２−１５：両探索ブロックが類似していないと判断された場合、ステレオ演算処理部２４は、探索した画素数が予め設定した閾値ＴＨ１以上か否かを判定する。探索した画素数が予め設定した閾値ＴＨ１以上の場合、算出されたいくつかのＺＳＳＤ値のうち最も小さいＺＳＳＤ値が得られたシフト量が、ピクセル単位での視差値dintである。
【００７６】
Ｓ１２−１６：探索した画素数が予め設定した閾値ＴＨ１以上でない場合、ステレオ演算処理部２４は、１画素隣りの画素位置に移り、Ｓ１２-１１〜Ｓ１２−１５の処理を継続する。
【００７７】
このような演算方法でも、探索ブロックの各画素の画素値から平均値を引くような処理が不要であり、演算コストを低減できる。
【符号の説明】
【００７８】
１１      表示装置
１２      画像処理ＥＣＵ
１３      ステレオカメラ
２０      画像処理ＩＣ
２１      ステレオ画像入力部
２２      ステレオ画像校正部
２３      ステレオ画像記憶部
２４      ステレオ演算処理部
２５      視差データ記憶部
１００    ステレオカメラシステム
【先行技術文献】
【特許文献】
【００７９】
【特許文献１】特開平１１−２３４７０１号公報
【特許文献２】特開２００３−２８８５８４号公報
【非特許文献】
【００８０】
【非特許文献１】Z.Zhang, "A Flexible New Technique for Camera Calibration", Technical Report MSR-TR-98-71, Microsoft Research, 1998
【図１】
0005821408.tif 000004
【図２】
0005821408.tif 000005
【図３】
0005821408.tif 000006
【図４】
0005821408.tif 000007
【図５】
0005821408.tif 000008
【図６】
0005821408.tif 000009
【図７】
0005821408.tif 000010
【図８】
0005821408.tif 000011
【図９】
0005821408.tif 000012
【図１０】
0005821408.tif 000013
【図１１】
0005821408.tif 000014
【図１２】
0005821408.tif 000015
【図１３】
0005821408.tif 000016
【図１４】
0005821408.tif 000017
【図１５】
0005821408.tif 000018
【図１６】
0005821408.tif 000019