(57)【特許請求の範囲】
【請求項１】
一方の撮像画像における画素ブロックと他方の撮像画像における画素ブロックとの輝度特性の相関をシティブロック距離によって評価し、他方の画像における画素ブロックを画素単位でずらしながら、画素ブロックのズレ量に対するシティブロック距離の離散的な分布を求める画像処理装置において、
シティブロック距離の離散的な分布において、シティブロック距離が最小となるピクセルレベルのズレ量を算出する算出手段と、
前記他方の撮像画像に関して、互いに隣接した画素間の輝度をサブピクセルレベルで補間することによって、輝度の補間データを生成する生成手段と、
前記補間データを用いて、前記一方の撮像画像との間でステレオマッチングを行うことで、前記ズレ量のサブピクセル成分を算出するとともに、前記ピクセルレベルのズレ量と前記サブピクセル成分とに基づいて、サブピクセルレベルのズレ量を出力する出力手段と
を有し、
前記生成手段は、最小シティブロック距離の直前に隣接したシティブロック距離と前記最小シティブロック距離の直後に隣接したシティブロック距離との大きさを判定し、当該判定結果に基づいて、補間データの生成範囲を決定することを特徴とする画像処理装置。
【請求項２】
前記補間データは、サブピクセルレベルの比較画素ブロックの少なくとも一つの集合であることを特徴とする請求項１に記載された画像処理装置。
【請求項３】
一対のカメラで構成され、同一の撮像タイミングで撮像した一対の撮像画像を出力するステレオカメラをさらに有することを特徴とする請求項１または２に記載された画像処理装置。
【請求項４】
前記生成手段は、前記最小シティブロック距離の直前に隣接したシティブロック距離と、前記最小シティブロック距離の直後に隣接したシティブロック距離との大きさを比較し、小さいほうのシティブロック距離に関するズレ量と、前記最小シティブロック距離に関するズレ量との間を補間データの生成範囲として設定することを特徴とする請求項１から３のいずれかに記載された画像処理装置。
【請求項５】
前記生成手段は、前記最小シティブロック距離の直前に隣接したシティブロック距離が、前記最小シティブロック距離の直後に隣接したシティブロック距離以上の場合、前記最小シティブロック距離に関するズレ量と、前記直後に隣接したシティブロック距離に関するズレ量との間を補間データの生成範囲として設定することを特徴とする請求項４に記載された画像処理装置。
【請求項６】
前記生成手段は、前記最小シティブロック距離の直前に隣接したシティブロック距離が、前記最小シティブロック距離の直後に隣接したシティブロック距離よりも小さい場合、前記直前に隣接したシティブロック距離に関するズレ量と、前記最小シティブロック距離に関するズレ量との間を補間データの生成範囲として設定することを特徴とする請求項４に記載された画像処理装置。
【請求項７】
一方の撮像画像における画素ブロックと他方の撮像画像における画素ブロックとの輝度特性の相関をシティブロック距離によって評価し、他方の画像における画素ブロックを画素単位でずらしながら、画素ブロックのズレ量に対するシティブロック距離の離散的な分布を求める画像処理方法において、
シティブロック距離の離散的な分布において、シティブロック距離が最小となるピクセルレベルのズレ量を算出する第１のステップと、
前記他方の撮像画像に関して、互いに隣接した画素間の輝度をサブピクセルレベルで補間することによって、輝度の補間データを生成する第２のステップと、
前記補間データを用いて、前記一方の撮像画像との間でステレオマッチングを行うことで、前記ズレ量のサブピクセル成分を算出する第３のステップと、
前記ピクセルレベルのズレ量と前記サブピクセル成分とに基づいて、サブピクセルレベルのズレ量を算出する第４のステップと
を有し、
前記第２のステップは、最小シティブロック距離の直前に隣接したシティブロック距離と前記最小シティブロック距離の直後に隣接したシティブロック距離との大きさを判定するステップと、当該判定結果に基づいて、補間データの生成範囲を決定するステップとを含むことを特徴とする画像処理方法。
【請求項８】
前記補間データは、サブピクセルレベルの比較画素ブロックの少なくとも一つの集合であることを特徴とする請求項７に記載された画像処理方法。
【請求項９】
ステレオカメラを用いて、同一の撮像タイミングで撮像した一対の撮像画像を出力する第５のステップをさらに有することを特徴とする請求項７または８に記載された画像処理方法。
【請求項１０】
前記判定するステップは、前記最小シティブロック距離の直前に隣接したシティブロック距離と、前記前記最小シティブロック距離の直後に隣接したシティブロック距離との大きさを比較し、
前記決定するステップは、当該比較で小さいほうのシティブロック距離に関するズレ量と、前記最小シティブロック距離に関するズレ量との間を補間データの生成範囲として設定することを特徴とする請求項７から９のいずれかに記載された画像処理装置。
【請求項１１】
前記判定するステップにおいて、前記最小シティブロック距離の直前に隣接したシティブロック距離が、前記最小シティブロック距離の直後に隣接したシティブロック距離以上の場合、
前記決定するステップは、前記最小シティブロック距離に関するズレ量と、前記直後に隣接したシティブロック距離に関するズレ量との間を補間データの生成範囲として設定することを特徴とする請求項１０に記載された画像処理装置。
【請求項１２】
前記判定するステップにおいて、前記最小シティブロック距離の直前に隣接したシティブロック距離が、前記最小シティブロック距離の直後に隣接したシティブロック距離よりも小さい場合、
前記決定するステップは、前記直前に隣接したシティブロック距離に関するズレ量と、前記最小シティブロック距離に関するズレ量との間を補間データの生成範囲として設定することを特徴とする請求項１０に記載された画像処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一対の撮像画像において、輝度特性の相関を有する画素ブロック対のズレ量を１画素以下の分解能で算出する画像処理装置および画像処理方法に関する。
【０００２】
【従来の技術】
例えば、特開２０００−２８３７５３号には、互いに相関を有する画素ブロック対のピクセルレベルの視差を、直線近似によって算出されたサブピクセル成分によって補間する、ステレオ画像を用いた測距装置が開示されている。図９は、従来のサブピクセル成分の算出説明図である。ピクセルレベルの視差Ｄを与える仮の対応点ｐ1、その直前の隣接点ｐ0、その直後の隣接点ｐ2の３つの点に基づいて、縦軸に対して線対称となる２本の直線Ｌ1，Ｌ2を算出する。そして、これらの直線Ｌ1，Ｌ2の交点より、サブピクセル成分Ｓを算出する。
【０００３】
【発明が解決しようとする課題】
上述した従来技術では、対応点ｐ0の前後の隣接点ｐ0，ｐ2の双方を用いてサブピクセル成分Ｓを算出している。前後の対応点ｐ0，ｐ2の内、シティブロック距離の小さい隣接点ｐ2には、真の対応点ｐsubの輝度値が含まれているが、シティブロック距離の大きい対応点ｐ0には、真の対応点ｐsubの輝度値が含まれていない。この手法は、結果的に、真の対応点ｐsubの輝度値が点ｐ0，ｐ1，ｐ2の３点に跨っているものとみなしており、誤差の原因となる隣接点ｐ0を入力変数としてサブピクセル成分Ｓを算出している。そのため、演算量が比較的大きくなる割にはサブピクセル成分Ｓの誤差が大きくなり易く、サブピクセル成分Ｓによって補間されたサブピクセルレベルの視差の算出精度が低下する傾向がある。
【０００４】
そこで、本発明の目的は、互いに相関を有する画素ブロック対のズレ量（典型的には視差）をサブピクセルレベルで精度よく算出し得る、新規な画像処理装置および画像処理方法を提供することである。
【０００５】
【課題を解決するための手段】
かかる課題を解決するために、第１の発明は、一方の撮像画像における画素ブロックと他方の撮像画像における画素ブロックとの輝度特性の相関をシティブロック距離によって評価し、他方の画像における画素ブロックを画素単位でずらしながら、画素ブロックのズレ量に対するシティブロック距離の離散的な分布を求める画像処理装置を提供する。この画像処理装置は、シティブロック距離の離散的な分布において、シティブロック距離が最小となるピクセルレベルのズレ量を算出する算出手段と、他方の撮像画像に関して、互いに隣接した画素間の輝度をサブピクセルレベルで補間することによって、輝度の補間データを生成する生成手段と、補間データを用いて、一方の撮像画像との間でステレオマッチングを行うことで、ズレ量のサブピクセル成分を算出するとともに、ピクセルレベルのズレ量とサブピクセル成分とに基づいて、サブピクセルレベルのズレ量を出力する出力手段とを有する。
【０００６】
ここで、第１の発明において、上記生成手段は、最小シティブロック距離の直前に隣接したシティブロック距離と最小シティブロック距離の直後に隣接したシティブロック距離との大きさを判定し、この判定結果に基づいて、補間データの生成範囲を決定することが好ましい。また、上記補間データは、サブピクセルレベルの比較画素ブロックの少なくとも一つの集合であってもよい。さらに、一対のカメラで構成され、同一の撮像タイミングで撮像した一対の撮像画像を出力するステレオカメラをさらに設けてもよい。
【０００７】
第２の発明は、一方の撮像画像における画素ブロックと他方の撮像画像における画素ブロックとの輝度特性の相関をシティブロック距離によって評価し、他方の画像における画素ブロックを画素単位でずらしながら、画素ブロックのズレ量に対するシティブロック距離の離散的な分布を求める画像処理方法を提供する。この画像処理装置は、シティブロック距離の離散的な分布において、シティブロック距離が最小となるピクセルレベルのズレ量を算出する第１のステップと、他方の撮像画像に関して、互いに隣接した画素間の輝度をサブピクセルレベルで補間することによって、輝度の補間データを生成する第２のステップと、補間データを用いて、一方の撮像画像との間でステレオマッチングを行うことで、ズレ量のサブピクセル成分を算出する第３のステップと、ピクセルレベルのズレ量とサブピクセル成分とに基づいて、サブピクセルレベルのズレ量を算出する第４のステップとを有する。
【０００８】
ここで、第２の発明において、上記第２のステップは、最小シティブロック距離の直前に隣接したシティブロック距離と最小シティブロック距離の直後に隣接したシティブロック距離との大きさを判定するステップと、この判定結果に基づいて、補間データの生成範囲を決定するステップとを含むことが好ましい。また、補間データは、サブピクセルレベルの比較画素ブロックの少なくとも一つの集合であってもよい。さらに、ステレオカメラを用いて、同一の撮像タイミングで撮像した一対の撮像画像を出力する第５のステップを設けてもよい。
【発明の実施の形態】
（第１の実施形態）
図１は、本発明を適用した画像処理装置の基本構成を示すブロック図である。ステレオカメラ１は、ＣＣＤやＣＭＯＳイメージセンサ等を内蔵した一対のカメラ１ａ，１ｂで構成されており、所定の基線長で互いの撮像面垂直軸が平行となるように取付けられている。メインカメラ１ａは、ステレオマッチング処理における基準画像を出力し、サブカメラ１ｂは比較画像を出力する。カメラ対１ａ，１ｂは互いに同期がとれており、これらのシャッタースピードは調節可能である。ステレオカメラ１は、同一のタイミングで撮像した一対の画像を画像入力部２に出力する。なお、ステレオカメラ１は、ＣＣＤカメラ等に限らず、赤外線カメラ等を用いてもよい。
【０００９】
画像入力部２は、それぞれのカメラ１ａ，１ｂから出力された２系統のアナログ画像信号に対する入力処理を行い、所定の輝度階調（例えば、２５６階調のグレースケール）のデジタル画像に変換する。デジタル化されたこれらの画像（ステレオ画像）は、画像入力部２の一部を構成する補正回路において、輝度補正や画像の幾何学的な変換等が行われる。通常、カメラ１ａ，１ｂの取付位置は程度の差こそあれ誤差を含んでいるため、それに起因したズレが左右の画像に存在する。そこで、アフィン変換等によって、画像の回転や平行移動といった幾何学的な変換処理がステレオ画像に対して行われる。これにより、ステレオマッチング処理の前提となる、基準画像の水平線と比較画像の水平線との一致（エピポーラライン）が保証される。以上のような画像処理を経た基準画像データおよび比較画像データが、画像入力部２より出力され、撮像画像における各画素の輝度値を示す元画像データとして元画像メモリ３に格納される。元画像メモリ３に格納された１フレーム相当の元画像データは、後段のサブピクセル処理部５および認識部７において用いられる。なお、以下、画像平面上の位置は直交座標で定義し、水平方向をｉ座標、垂直方向をｊ座標とする。
【００１０】
ステレオ処理部４は、加算器、差分器、絶対値演算回路、メモリ等で構成されており、元画像メモリ３にストアされた基準画像データと比較画像データとに基づいて、１フレーム相当の視差（距離と等価）の集合である距離データを算出する。このステレオ処理部４を、このようなハードウェア構成での実現に代えて、ソフトウェアによって実現できることは当然である。視差は、基準画像を構成する画素ブロック（以下「基準画素ブロック」という）毎に１つ算出され、画像全体では最大で１フレーム中の基準画素ブロックの個数分だけ算出される。ある基準画素ブロックに関して算出された視差は、その画素ブロック内に写し出されている対象物までの距離に相当する。算出された視差のそれぞれは、画像平面上の位置（すなわち、座標（ｉ，ｊ））と対応付けられており、画像平面上に視差群を二次元的に配置した構成となる。そこで、１フレーム相当の視差群で構成された距離データを適宜「距離画像」という。
【００１１】
ステレオ処理部４は、比較画像を探索することによって、基準画素ブロックの輝度特性と相関を有する画素ブロックを特定する。周知のとおり、ステレオ画像に写し出された対象物までの距離は、視差、すなわち、基準画素ブロックの位置を基準とした比較画素ブロックの相対的なズレ量（水平方向の画素ズレ量）から一義的に算出される。したがって、図２に示すように、ステレオマッチングにより基準画素ブロックＡの相関先を探索する場合、比較画像全体を探索範囲とする必要はなく、基準画素ブロックＡと同一水平線（エピポーラライン）を探索範囲とすればよい。ステレオ処理部４は、このエピポーラライン上を１画素ずつずらしながら、エピポーラライン上の所定範囲内に存在するすべての画素ブロックＢ（以下「「比較画素ブロック」という）の相関を、シティブロック距離によって評価する。
【００１２】
シティブロック距離は、画素ブロックＡ，Ｂの相関性を評価する手法として周知であり、比較的少ない演算量で輝度特性の相関を良好に評価することができる。ここで、例えば、画素ブロックＡ，Ｂのサイズ（Ｉ×Ｊ）を４×４画素とし、基準画素ブロックＡを構成する各画素の輝度値をａij（i=0〜3，j＝0〜3）、比較画素ブロックＢを構成する各画素の輝度値をｂij（i=0〜3，j＝0〜3）とする。基本的に、シティブロック距離Ｈは、位置的に対応した二つの輝度値ａij，ｂijの差（絶対値）の画素ブロック全体における総和として定義される。前段の処理（画像入力部２における処理）で、元画像に輝度補正をかけている場合には、両画素ブロックＡ，Ｂに関するシティブロック距離Ｈは、輝度値ａij，ｂijをそのまま用いて、下式に従い算出する（通常のステレオマッチング）。
【数１】
Ｈ＝Σ｜ａij−ｂij｜
【００１３】
上式からわかるように、２つの画素ブロックＡ，Ｂの輝度特性が類似しているほど（すなわち相関が大きいほど）、シティブロック距離が小さくなり、両者がまったく同じであれば０になる。比較画像のエピポーラライン上を左から右へ１画素ずつずらしながら、それぞれの比較画素ブロックＢを演算対象としたシティブロック距離を順次算出する。これにより、基準画素ブロックＡの位置を基準とした比較画素ブロック（・・・，Ｂ[is-1]，Ｂ[is]、Ｂ[is+1]，・・・）の相対的なズレ量（・・・，ｉs−１，ｉs，ｉs＋１，・・・）に対するシティブロック距離（・・・，Ｈ0，Ｈ1，Ｈ2，・・・）の離散的な分布が求まる。シティブロック距離の算出間隔は、１画素の横方向サイズ相当となる。
【００１４】
このようにして算出されたシティブロック距離の離散的な分布において、シティブロック距離が最小値Ｈminとなる比較画素ブロックＢ[is]を基準画素ブロックＡの相関先と判断する。そして、基本的には、相関先と判断された比較画素ブロックＢ[is]の水平方向のズレ量ｉsが、基準画素ブロックＡに関する視差Ｄとなる。ステレオ処理部４において算出される視差Ｄは、ピクセル単位、すなわち１画素の整数倍の値として算出されるので、このピクセルレベルの視差Ｄを「ピクセル視差Ｄ」という。なお、シティブロック距離を算出するためのハード構成を含めたステレオマッチングの詳細については、本願出願人が既に提案した特開平５−１１４００９号公報に開示されているので、必要ならば参照されたい。
【００１５】
以上の手法によって、ステレオ処理部４は、１フレームの基準画像を構成するそれぞれの基準画素ブロックに関してピクセル視差Ｄを順次算出し、それをサブピクセル処理部５に出力する。その際、このピクセル視差Ｄを与えるズレ量ｉsに関するシティブロック距離Ｈ1（＝Ｈmin）、その直前において隣接したシティブロック距離Ｈ0、および、その直後において隣接したシティブロック距離Ｈ2もサブピクセル処理部５に出力される。
【００１６】
シティブロック距離の基本形は上述したとおりであるが、具体的な算出式には数々のバリエーションが存在する。例えば、上述した通常のステレオマッチングに代えて、平均値差分マッチングを行なってもよい。平均値差分マッチングは、撮像画像の高周波成分のみをマッチング対象とし、ハイパスフィルタと等価な作用を有しているため、低周波ノイズを有効に除去する。また、平均値差分マッチングでは、ステレオ画像における輝度の僅かなバランスの狂いに起因した影響、或いは、カメラやアナログ回路部品の経年変化によるゲイン変化に起因した影響等に対し、ミスマッチングを生じることがなく正確な距離データを得る。そのため、通常のステレオマッチングでは前段の処理として必須となる輝度補正等を省略することができる。その結果、画像入力部２を構成する回路の部品点数を低減し、画像入力部２の回路構成を簡素化できるため、コスト低減や信頼性向上を図ることができる。
【００１７】
平均値差分マッチングでは、下式に従いシティブロック距離Ｈを算出する。ここで、Ａaveは基準画素ブロックＡの輝度平均値であり、Ｂaveは比較画素ブロックＢの輝度平均値である。すなわち、平均値差分マッチングでは、基準画素ブロックＡの輝度値ａijからその輝度平均値Ａaveを差分した値と、比較画素ブロックＢの輝度値ｂijからその輝度平均値Ｂaveを差分した値との差（絶対値）の画素ブロック全体における総和として定義される。なお、平均値差分マッチング処理の詳細については、本願出願人が既に提案した特開平１１−２３４７０１号公報に詳述されているので、必要ならば参照されたい。
【数２】
Ｈ＝Σ｜（ａij−Ａave）−（ｂij−Ｂave）｜
Ａave＝Σａij／（Ｉ×Ｊ）
Ｂave＝Σｂij／（Ｉ×Ｊ）
【００１８】
また、画素ブロックＡ，Ｂの中心部の輝度値（例えば、ａ22，ａ23，ａ32，ａ33、ｂijについても同様）を重視する場合には、下式のように、輝度差の絶対値に重み係数ｗijを乗じてシティブロック距離Ｈを算出してもよい（重み付けマッチング）。この場合、重み係数ｗijは、画素ブロックＡ，Ｂの内側に向うほど大きな値に設定する。重み付けマッチング処理の詳細については、本願出願人が既に提案した特願２００１−０６３２９０号において開示されている。
【数３】
Ｈ＝Σｗij｜ａij−ｂij｜
【００１９】
サブピクセル処理部５は、ステレオ処理部４において生成された１画素単位の分解能を有するピクセル視差Ｄに対して、サブピクセル処理による補間を行うことで、１画素単位以下の分解能を有するサブピクセルレベルの視差Ｄs（以下、「サブピクセル視差Ｄs」という）を算出する。ステレオ処理部４で算出されるピクセル視差Ｄは画素単位（画素の整数倍）であるため、三角測量の原理より、撮像画像に写し出された対象物までの距離が遠くなるにつれて、測距分解能が必然的に低下してしまう。そこで、サブピクセル処理部５は、ズレ量ｉs（＝Ｄ）に関するシティブロック距離Ｈ1（以下「最小シティブロック距離Ｈ1」という）と、直前のズレ量ｉs-1（＝Ｄ-1）に関するシティブロック距離Ｈ0（以下「直前の隣接シティブロック距離Ｈ0」という）と、直後のズレ量ｉs+1（＝Ｄ+1）に関するシティブロック距離Ｈ2（以下「直後の隣接シティブロック距離Ｈ2」という）と、後述する輝度の補間データとを入力データとし、ステレオマッチングを再度行い、ピクセル視差Ｄに関する１画素以下の小数画素成分、すなわち、サブピクセル成分Ｓを求める。この補間データは、元画像メモリ３に格納された比較画像データに基づき生成され、比較画像における互いに隣接した画素間の輝度値をサブピクセルレベルで補間することによって生成される。そして、算出されたサブピクセル成分Ｓを用いて、ピクセルレベルの視差Ｄを補間し、サブピクセルレベルの視差Ｄsを算出する。サブピクセル視差Ｄs群は、距離データとして距離画像メモリ６に順次格納される。
【００２０】
認識部７は、元画像メモリ３に格納された元画像データと、距離画像メモリ６に格納された距離データとに基づき、撮像画像に写し出された対象物、および、その対象物までの距離等を認識する。以上のような構成を有する画像処理装置は、自車両前方の道路形状や先行車等を検出する車外監視装置、障害物検出装置、踏切監視装置、或いは、飛行体の高度計測装置として利用することができる。
【００２１】
図３は、サブピクセル処理部５が行うサブピクセル視差Ｄsの算出手順を示すフローチャートである。まず、ステップ１において、ステレオ処理部４で算出された、ある基準画素ブロックＡに関する視差Ｄ（すなわち、ズレ量ｉs）と、この視差Ｄに関連付けられたシティブロック距離Ｈ0，Ｈ1，Ｈ2とが入力される。ステップ２では、直前の隣接シティブロック距離Ｈ0と直後の隣接シティブロック距離Ｈ2との大きさが比較される。直前の隣接シティブロック距離Ｈ0が直後の隣接シティブロック距離Ｈ2以上の場合（Ｈ0≧Ｈ2）、補間データの生成範囲として画素ズレ量ｉs〜（ｉs+1/2）が設定される（ステップ３）。これに対して、直前の隣接シティブロック距離Ｈ0が直後の隣接シティブロック距離Ｈ2よりも小さい場合（Ｈ0＜Ｈ2）、補間データの生成範囲として画素ズレ量（ｉs-1/2）〜ｉsが設定される（ステップ４）。このように、補間データの生成範囲を、(is-1）〜isまたはis〜(is+1)のいずれかに絞り込む理由は、続くステップ６におけるサブピクセルレベルのステレオマッチングに要する演算量の低減を図り、処理の高速化を図るためである。
【００２２】
従来技術として挙げた特開２０００−２８３７５３号公報にも言及されているように、１画素のサイズが無限に小さいと仮定した場合、画像平面（ｉ，ｊ）におけるシティブロック距離Ｈの分布は、図４に示すように連続的になる。これを、視差検出方向であるｉ方向の一次元的な分布として捉えた場合には、例えば、図５の破線で示すような連続的な分布となる。同図において、横軸ｉは、基準画素ブロックＡに対する比較画素ブロックＢの相対的なズレ量であり、縦軸Ｈはシティブロック距離である。また、破線上に丸印で示した点群（点ｐ0〜ｐ2を含む）は、ステレオ処理部４において算出された離散的なシティブロック距離をプロットしたものである。この連続分布が示すように、対応点ｐsub（シティブロック距離の連続的な分布において最小値をとる点）周りに左右対称になる。ただし、その対称性が理論的に保証されるのは極狭い範囲であり、対応点ｐsubの±１画素以内である。±１画素以上の点では、元画像の画素成分が比較画像の画素成分にまったく含まれないため、対称性が維持されない。画素のサイズ間隔で離散的にプロットした点ｐ0〜ｐ2は、シティブロック距離の連続分布を示す破線上に存在し、この部分においては対称性が維持される
【００２３】
このようなシティブロック距離の対称性に鑑みると、直前の隣接シティブロック距離Ｈ0が直後の隣接シティブロック距離Ｈ2よりも大きい場合（図５のケース）、対応点ｐsubは、仮の対応点ｐ1（離散的なシティブロック距離の分布において最小シティブロック距離となる点）よりも右側（シティブロック距離が小さい点側）に位置する。換言すれば、対応点ｐsubは、is〜（is+1)の範囲内に存在し、(is-1)〜isの範囲内には存在しない。この場合、対応点ｐsubが存在する範囲であるis〜（is+1）を補間データの生成範囲とする。
【００２４】
シティブロック距離が大きい方の範囲（is-1）〜isを補間データの生成範囲としない理由は、サブピクセル成分Ｓの算出精度の向上を図るためである。一般に、１画素で撮像できる範囲は、メインカメラ１ａもサブカメラ１ｂも同程度である。これらのカメラ１ａ，１ｂの上下ズレが存在しない場合、メインカメラ１ａの１画素に撮像される領域は、サブカメラ１ｂの２画素に跨ってしか撮像されない。そのため、シティブロック距離の大きい方の隣接点は対応点ｐsubの輝度値が含まれないことになる。例えば、図５に示すケース（Ｈ0＞Ｈ2）では、対応点ｐsubは、ｉs〜(is+1)の範囲内に存在する。そのため、対応点ｐsubの輝度値は、シティブロック距離の大きい直前の隣接点ｐ0には含まれない（直後の隣接点ｐ2に含まれる）。本手法では、シティブロック距離の大きい方の隣接点を対応点ｐsubの情報を含まない隣接点であるとみなし、この隣接点を用いることなくサブピクセル成分Ｓを算出する。誤差の原因となる一方の隣接点の使用を避けることで、サブピクセル成分Ｓの算出精度の向上を図ることができる。
【００２５】
ステップ５において、サブピクセル処理部５は、元画像メモリ３より比較画像データを読み出し、ステップ３，４で設定された範囲内で輝度値の補間データを生成する。図２に示したように、この補間データは、最小シティブロック距離Ｈ1を与える比較画素ブロックＢ[is]と、その前方または後方の比較画素ブロックＢ[is-1]，Ｂ[is+1]との間の輝度値を補間することによって作成される。ここで、それぞれの比較画素ブロックＢ[is-1]，Ｂ[is]，Ｂ[is+1]が、図６に示すような輝度特性を有するものとする。補間データは、４×４画素の画素ブロック単位で作成され、実際の画素の輝度値を線形補間することにより算出される。比較画素ブロックＢ[is]と比較画素ブロックＢ[is+1]との間、つまり、画素ズレ量is〜（is+1）の範囲内を補間する場合、下記の補間式により、サブピクセルレベルの補間画素の輝度値ｂijが算出される。ここで、Ｂ(is)ij，Ｂ(is+1)ijは、それぞれ比較画素ブロックＢ[is]，Ｂ[is+1]を構成する画素群の輝度値である。また、Ｌは、補間解像度（定数）であり、Ｉは、補間画素の位置を示すパラメータ（０≦Ｉ≦Ｌ）であり、整数値を取る。
【数４】
ｂij ＝Ｂ(is)ij＋I×（Ｂ(is+1)ij−Ｂ(is)ij）/Ｌ
【００２６】
一方、比較画素ブロックＢ[is-1]と比較画素ブロックＢ[is]との間、つまり、画素ズレ量(is-1)〜isの範囲内を補間する場合、下記の補間式により、サブピクセルレベルの補間画素の輝度値ｂijが算出される。
【数５】
ｂij ＝Ｂ(is-1)ij＋I×（Ｂ(is)ij−Ｂ(is-1)ij）/Ｌ
【００２７】
つまり、補間によって求めようとする架空の画素（補間画素）の位置を、補間解像度に応じて（つまり、1/L画素単位で）移動させながら、補間解像度Ｌ相当の個数分だけ、仮想的な比較画素ブロックを得る。例えば、補間解像度Ｌが256の場合、補間データとして、255個の比較画素ブロックが得られる。
【００２８】
なお、比較画素ブロックＢ[is-1]，Ｂ[is]，Ｂ[is+1]は、互いに水平ライン方向に１画素ずつずらしたものであるから、比較画素ブロックＢ[is-1]におけるｉ行ｊ列目の画素と、比較画素ブロックＢ[is]におけるｉ行ｊ-1列目の画素と、比較画素ブロックＢ[is+1]におけるｉ行ｊ-2列目の画素とは同一の輝度値になる（例えば、Ｂ(is-1)13＝Ｂ(is)12＝Ｂ(is+1)11）。
【００２９】
ステップ６において、サブピクセル処理部５は、先のステップ５で生成された補間データを用いて、サブピクセルレベルのステレオマッチングを行う。すなわち、補間データを構成する比較画素ブロック毎に、基準画素ブロックとのステレオマッチングを行い、視差ｄを求める。このステレオマッチング自体については、ピクセルレベルのステレオマッチングと同様である。算出された視差ｄは、画素ズレ量ｉs（＝視差Ｄ）の位置を基準としたズレ量であり、1/L画素単位になる。
【００３０】
ステップ７では、ステップ６で算出された視差ｄを補間解像度Ｌで除算することにより、サブピクセル成分Ｓが算出される。サブピクセル成分Ｓは、ピクセルレベルの視差Ｄ（ｉsに相当）とサブピクセルレベルの視差Ｄs（ｉsubに相当）とのオフセット値に相当する。
【００３１】
最後に、ステップ８において、ステップ７で算出されたサブピクセル成分Ｓを用いて、ステレオ処理部４で算出されたピクセルレベルの視差Ｄを補間する。具体的には、ピクセルレベルの視差Ｄにサブピクセル成分Ｓを加算することにより、１画素以下の分解能を有するサブピクセル視差Ｄsが算出される。算出されたサブピクセル視差Ｄsは距離画像メモリ６に格納される。
【００３２】
ステレオ処理部４から視差Ｄが出力される度に、サブピクセル処理部５は上述したサブピクセル処理を行う。これにより、距離画像を構成するすべての視差Ｄが補間され、１画素以下の分解能を有するサブピクセル視差Ｄs群が距離画像として距離画像メモリ６に格納される。
【００３３】
図７は、サブピクセル処理部５をハードウェアで実現した場合におけるブロック構成図であり、上述したソフトウェア処理と等価的に機能する。サブピクセル処理部５は、比較器５ａ、セレクタ５ｂ、線形補間器５ｃ、ステレオ演算器５ｄおよび加算器５ｅによって構成されている。比較器５ａは、隣接シティブロック距離Ｈ0，Ｈ2の値を比較し、小さい方がセレクタ５ｂによって選択される。線形補間器５ｃは、セレクタ５ｂからの選択結果を参照し、元画像メモリ３から読み出された元画像データを用いて、サブピクセルレベルの比較画素ブロック群よりなる補間データを生成する。ステレオ演算器５ｄは、補間データと、元画像データ３より読み出した基準画素ブロックとに基づいて、上述したサブピクセルレベルのステレオマッチングを行い、サブピクセル成分Ｓを算出する。加算器５ｅは、サブピクセル成分Ｓとピクセルレベルの視差Ｄとを加算してサブピクセル視差Ｄsを算出し、距離画像メモリ６に出力する。
【００３４】
このように、本実施形態では、物理的に隣接した画素間の輝度値を補間することにより、仮想的な輝度値の集合である比較画素ブロック（補間データ）を生成する。そして、この補間データと基準画素ブロックとを用いて、サブピクセルレベルのステレオマッチングを行う。これにより、撮像素子の物理的な解像度以上の解像度を有するサブピクセルレベルの視差Ｄsを高精度で算出できるため、システム的に、あたかも１画素以下で視差検出を行ったかのように取り扱うことができる。その結果、ピクセルレベルの視差Ｄをそのまま用いた場合に生じる、遠距離での測距分解能の低下を抑制でき、近距離から遠距離までの広いレンジで有効な測距分解能を確保することが可能となる。そして、サブピクセルレベルの視差Ｄs群で構成された距離画像を用いて各種の監視制御を行えば、信頼性の高い監視を行うことができる。
【００３５】
また、本実施形態によれば、補間データの生成範囲を限定することにより、サブピクセルレベルのステレオマッチング処理の高速化を図ることができる。すなわち、隣接点ｐ0，ｐ2の内、シティブロック距離の小さい方の隣接点が対応点ｐsubの輝度値を含む点に着目し、仮の対応点ｐ1のシティブロック距離Ｈ1と、対応点ｐsubの輝度値を含む方のシティブロック距離Ｈ0（またはＨ2）との範囲で補間データを生成する。これにより、ステレオマッチングの探索範囲を限定できるので、処理の高速化を図ることができる。
【００３６】
なお、本実施形態では、いわゆる線形補間によって補間データを作成していた。しかし補間データ作成のための演算手法はこれに限定されるものではなく、例えば、ラグランジュ補間等を用いてもよい。また、ステレオカメラ１に採用するイメージセンサが十分に高解像度である場合には、隣接３点ではなく、５点、７点を入力とし、最小２乗法を用いて２次曲線に近似しての補間してもよい。
【００３７】
また、演算量の一層の低減を図るために、下記のような変形例が考えられる。シティブロック距離Ｈ0は、ピクセルレベルでのシティブロック距離の最小値である。したがって、上述した原理から考えて、サブピクセルレベルでのシティブロック距離が最小となる位置は、画素ズレ量（ｉs＋１）の位置（あるいは、画素ズレ量（ｉs−１）の位置）よりも、画素ズレ量ｉsの位置に近い領域にあるはずである。たとえば、Ｈ0＞Ｈ2の場合には、サブピクセルレベルでのシティブロック距離が最小となる位置は、画素ズレ量ｉs〜（ｉs＋1/2）の領域にあると推定できる。したがって、画素ズレ量（ｉs＋1/2）〜（ｉs＋１）の領域についての補間データの作成およびステレオマッチングを省略することができる。また、Ｈ0＜Ｈ2の場合も同様に、画素ズレ量（ｉs−１）〜（ｉs−1/2）の領域については、演算を省略することができる。これにより、演算量すなわち処理に要する時間を半減できる。以上のように上述した原理を２回適用することで、演算量は、当初の演算対象領域である画素ズレ量（ｉs−１）〜（ｉs＋１）の範囲全体について演算を行う場合のほぼ１／４にまで減らすことができる。
【００３８】
なお、本実施形態は、後述する第２の実施形態も含めて、ステレオカメラ１を用いたステレオ画像処理について説明した。しかしながら、本発明はこれに限定されるものではく、例えば、１台のカメラで画像内対象物のオプティカルフロー検出を行うといった、２枚以上の画像の対応付けにも適用可能である。この場合、１台のカメラを用いて所定の間隔で繰返し撮像し、時系列的な複数の撮像画像を得る。そして、ある撮像タイミングで得られた一方の撮像画像（基準画像）と、それとは異なる撮像タイミングで得られた他方の撮像画像（比較画像）とを用いて、上述した実施形態と同様にサブピクセル処理を行う。これにより得られたサブピクセルレベルのズレ量ｉsubは、基準画素ブロックに写し出された対象物に関する、画像平面上の移動量や速度に相当する。
【００３９】
（第２の実施形態）
上述した第１の実施形態では、サブピクセルレベルのステレオマッチングの実行に先立ち、サブピクセルレベルの分解能相当の補間データを予め生成しておく必要がある。また、補間データを構成するすべての比較画素ブロックについて、基準画素ブロックとのシティブロック距離を計算する必要がある。これに対して、本実施形態は、第１の実施形態よりも演算量の低減を図り、処理の一層の高速化を図るものである。なお、本実施形態に係る画像処理装置の基本構成は、第１の実施形態と同様なので、図１の符号と同一の符号を付してここでの説明を省略する。
【００４０】
図８は、本実施形態に係るサブピクセル視差の算出手順を示すフローチャートである。このフローチャートは、図３のステップ３，５，６の一連の手順を置き換えたもので、直前の隣接シティブロック距離Ｈ0が直後の隣接シティブロック距離Ｈ2以上の場合（Ｈ0≧Ｈ2）を示す。
【００４１】
まず、このフローチャートで登場する主な変数の意味について述べる。変数ＶＬは、補間データ生成範囲の左端位置におけるシティブロック距離を保持する変数である。変数ＶＲは、補間データの生成範囲の右端位置におけるシティブロック距離を保持する変数である。これらの変数ＶＬ，ＶＲを比較し、その比較結果に応じて処理が進行する。また、変数ｆ，ｋ，Ｉは、補間を行う位置を管理する変数である。変数ｆは、補間を行う位置を変更する向き（左／右）を保持する変数であり、１または−１の値を取る。変数ｋは、補間を行う位置（補間画素の画素位置）の変更量を保持する変数である。変数Ｉは、補間を行う位置（補間画素の画素位置）を保持する変数であり、第１の実施形態で述べた変数Ｉと同様の意味を有する。初期状態である演算対象領域の左端位置では、Ｉ＝０、右端位置ではＩ＝補間解像度となる。変数Ｃは、適用回数を管理する変数である。
【００４２】
まず、ステップ１００において、サブピクセル処理部５は、各種変数の初期設定を行う。具体的には、変数ＶＬをＨ1、変数ｋを６４、変数Ｉを１２８、変数Ｃを８、変数ｆ＝−１にセットする。
【００４３】
ステップ１０１において、サブピクセル処理部５は、画素ズレ量ｉs〜（ｉs＋１）の範囲におけるＩ番目（ここでは、Ｉ＝１２８）の補間データを作成する。補間データとして今回生成される比較画素ブロックは、第１の実施形態で述べた補間手法を用いて生成する。ステップ１０２では、今回作成した比較画素ブロックと基準画素ブロックとの間で、サブピクセルレベルでのステレオマッチングを行い、シティブロック距離Ｈ(I)を求める。そして、今回求めたシティブロック距離Ｈ(I)（初回はＨ(128)）が変数ＶＲに代入され（ステップ１０３）、カウンター変数Ｃから１が減算される（ステップ１０４）。
【００４４】
続くステップ１０５において、変数ＶＲと変数ＶＬとの大きさ判定が行われる。上述したように初回は、ＶＲ＝Ｈ(128)、ＶＬ＝Ｈ1である。ここでの判定結果が否定である場合（ＶＬ≦ＶＲ）、シティブロック距離の最小値が画素ズレ量（ｉs＋1/4）〜（ｉs＋1/2）の範囲内に存在する。また、次回の画素補間を行う位置は、この新たな演算対象領域の左端位置（つまり、画素ズレ量（ｉs＋1/4）の位置）である。そこで、この場合にはステップ１０６〜１１０の処理が実行される。
【００４５】
まず、ステップ１０６の変数Ｉの更新処理として、Ｉの現在値にｆ・ｋを加算した値を新たなＩとして設定する。このときには、ｆおよびｋは初期値（ｆ＝−１，ｋ＝６４）のままである。したがって、新たなＩは６４となる。つまり、次回の補間位置は、前回の補間位置（Ｉ＝１２８）から、左へ６４補間画素だけ移動した位置となる。
【００４６】
ステップ１０７において、この新たなＩ（ここでは、６４）番目の補間データ（比較画素ブロック）を作成する。続くステップ１０８において、今回作成した比較画素ブロックと基準画素ブロックとの間で、サブピクセルレベルでのステレオマッチングを行い、シティブロック距離を求め、算出されたシティブロック距離Ｈ(I)をＶＬに代入する（ステップ１０９）。ここでは、Ｉ＝６４であるため、ＶＬ＝Ｈ（６４）となる。
【００４７】
ステップ１１０では、変数ｆ，ｋの更新処理として、次回のｋの値は、これまでの値の１／２にされる。例えばｋ＝６４ならばｋ＝３２に更新される。一方、ｆには１が設定される。これは、先のステップ１０７で作成された補間データ（比較画素ブロック）の位置は補間データの生成範囲の左端位置であり、次回の補間を行う位置は、前回に補間を行った位置よりも必ず右方向に移動するからである。ステップ１０６，１１１の処理内容から明らかなとおり、補間を行う位置（Ｉ）は、ｆが１であれば右方向へ、また、−１であれば左方向へ、ｋだけ移動する。続くステップ１１６において、Ｃ＝１か否かが判定される。判定結果が否定の場合（Ｃ≠１）、ステップ１０４に戻る。ここでは、まだ、Ｃは７であるため、ステップ１０４へと戻り、Ｃが更新されてＣ＝６になる。この後は、ステップ１０５において、再び、ＶＲとＶＬとの大小が比較される。以下、ステップ１０５における判定結果がＶＬ＜ＶＲであったものとして説明を行う。
【００４８】
ステップ１０５における判定の結果がＶＬ＜ＶＲであったため、ステップ１１１〜１１５の処理が行われる。まず、ステップ１１１において、Ｉの更新処理が行われ、ステップ１０６と同様に、Ｉの現在値にｆ・ｋを加算した値を新たなＩとして設定される。このときには、ｆ＝１，ｋ＝３２であるため、新たなＩは９６となる。つまり、次回の補間位置は、前回の補間位置（Ｉ＝６４）から、右へ３２補間画素だけ移動した位置となる。
【００４９】
ステップ１１２において、新たなＩ（ここでは９６）番目の補間データ（比較画素ブロック）が作成される。続くステップ１１３において、このとき作成した比較画素ブロックと基準画素ブロックとの間で、サブピクセルレベルでのステレオマッチングを行い、シティブロック距離を求める。そして、このとき求めたシティブロック距離Ｈ(I)がＶＲに代入される（ステップ１１４）。ここでは、Ｉ＝９６であるため、ＶＲ＝Ｈ（９６）となる。そして、ステップ１１５において、ｆ、ｋの更新処理が行われ、次回のｋの値は、ステップ１１０と同様、これまでの１／２にされる。すなわち、ｋ＝３２ならばｋ＝１６に更新される。一方、ｆ＝−１とする。これは、先にステップ１１２で作成した比較画素ブロックの位置は、演算対象領域の右端位置であり、次回の補間を行う位置は、前回に補間を行った位置よりも必ず左方向に移動することになるからである。
【００５０】
続くステップ１１６において、Ｃ＝１であるか否かが判定され、この判定結果が否定ならば（Ｃ≠１）、ステップ１０４へ戻る。ここでは、まだ、Ｃは６であるため、ステップ１０４へと戻る。
【００５１】
これ以降も同様にステップ１０５での結果に応じて、ステップ１０６〜１１０の処理またはステップ１１１〜１１５の処理を選択的に行うループが、Ｃ＝１になるまで繰り返される。ステップ１１６においてＣ＝１であると判定された場合、すなわち、目的とする補間解像度（ここでは、２５６）にまで達した場合、サブピクセル処理部５は、この繰り返しを抜けて、ステップ１１７に進む。
【００５２】
ステップ１１７において、サブピクセル処理部５は、その時点でのＩを、視差ｄに変換する。ところで、Ｉは、初期的な演算対象領域の左端位置を基準（０）として表現されている。また、この図８に示した処理では、初期的な演算対象領域が画素ズレ量ｉs〜（ｉs＋１）の範囲である。つまり、Ｉは、視差ｎと同様、画素ズレ量ｉsの位置を基準としている。したがって、ここではそのまま、ｎ＝Ｉとする。
【００５３】
なお、直前の隣接シティブロック距離Ｈ0が直後の隣接シティブロック距離Ｈ2よりも小さい場合（Ｈ0＜Ｈ2）も、以下の点以外は、図８の手順と同様である。すなわち、Ｈ0＜Ｈ2の場合は、補間データの生成範囲が画素ズレ量（ｉs−１）〜ｉsとなる。したがって、ステップ１００の初期設定においてｆ＝１にセットされる。ステップ１１７では、ｄ＝Ｉ−２５６とする。Ｈ0≧Ｈ2の場合、視差ｄは画素ズレ量ｉsの位置を基準として表現されるのに対して、Ｈ0＜Ｈ2の場合、画素ズレ量（ｉs−１）の位置を基準位置として表現されるからである。したがって、画素ズレ量ｉsの位置を基準とする視差ｄに変換するために、補間解像度分（＝２５６）を差し引いている。
【００５４】
以上説明したとおり本実施形態では、第１の実施形態に較べて、サブピクセルレベルでの視差ｄを求めるのに必要な演算処理量がより少ない。具体的には、補間解像度Ｌ＝256のレベルでの視差Ｄsを求める場合には、補間、サブピクセルレベルでのステレオマッチングを８回行えばよい。したがって、第１の実施形態と比べて、処理時間の短縮化が可能である。
【００５５】
本実施形態では、求めようとする補間解像度が２５６であるため、サブピクセルレベルのステレオマッチングを８回行っている。しかしながら、この実行回数は補間解像度に応じて任意に選択すればよいし、補間解像度に対応する実行回数以上の実行回数を設定してもよい。
【００５６】
【発明の効果】
このように、本発明では、隣接した画素間の輝度値を補間することにより補間データを生成し、この補間データに基づいてサブピクセルレベルのステレオマッチングを行う。これにより、撮像素子の物理的な解像度以上の分解能を有する高精度な画素ズレ量（典型的には視差）を算出できる。その結果、ピクセルレベルの画素ズレ量を視差としてそのまま用いた場合に生じる、遠距離での測距分解能の低下を抑制でき、近距離から遠距離までの広いレンジで有効な測距分解能を確保することが可能となる。そして、サブピクセルレベルの視差群で構成された距離画像を用いて各種の監視制御を行えば、信頼性の高い監視を行うことができる。
【図面の簡単な説明】
【図１】画像処理装置の基本構成を示すブロック図
【図２】ステレオマッチングの説明図
【図３】サブピクセル視差の算出手順を示すフローチャート
【図４】画像平面におけるシティブロック距離の分布説明図
【図５】Ｈ0＞Ｈ2における極小点周りのシティブロック距離の分布説明図
【図６】比較画素ブロックの輝度特性を示す図
【図７】サブピクセル処理部のブロック構成図
【図８】第２の実施形態に係るサブピクセル視差の算出手順を示すフローチャート
【図９】従来のサブピクセル成分の算出説明図
【符号の説明】
１  ステレオカメラ
１ａ  メインカメラ
１ｂ  サブカメラ
２  画像入力部
３  元画像メモリ
４  ステレオ処理部
５  サブピクセル処理部
６  距離画像メモリ
７  認識部
【図１】
0004053282.tif 000002
【図２】
0004053282.tif 000003
【図３】
0004053282.tif 000004
【図４】
0004053282.tif 000005
【図５】
0004053282.tif 000006
【図６】
0004053282.tif 000007
【図７】
0004053282.tif 000008
【図８】
0004053282.tif 000009
【図９】
0004053282.tif 000010