(57)【特許請求の範囲】
【請求項１】
２つの画像の一方を基準画像、他方を参照画像としてマッチングブロックを行うためのブロック形状を設定するブロック形状設定手段と、
前記ブロック形状設定手段により設定されたブロック形状に基づいて、前記基準画像におけるブロック位置を設定する基準画像ブロック位置設定手段と、
前記参照画像において、前記基準画像ブロック位置設定手段により設定されたブロック位置に対応する位置の近傍に複数のブロックを設定する参照画像ブロック位置設定手段と、
前記基準画像内に設定されたブロックと、前記参照画像ブロック位置設定手段により設定された複数のブロックとの相関評価値を算出する評価値演算手段とを有し、
前記ブロック形状設定手段は、
予め蓄積された形状の異なる複数のブロック形状の中から、前記基準画像に含まれる対象物の形状又は種類に応じて少なくとも１つの前記対象物の境界部分に沿った垂直線を含まない形状を選択し、前記ブロック形状として設定することを特徴とする画像処理装置。
【請求項２】
前記ブロック形状設定手段は、
前記ブロック形状を菱形形状、前記対象物の境界部分に沿った垂直線を含まない多角形形状、円形形状、及び、楕円形状のうち、少なくとも一つに設定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
２つの画像の一方を基準画像、他方を参照画像としてマッチングブロックを行うためのブロック形状を設定するブロック形状設定手段と、
前記ブロック形状設定手段により設定されたブロック形状に基づいて、前記基準画像におけるブロック位置を設定する基準画像ブロック位置設定手段と、
前記参照画像において、前記基準画像ブロック位置設定手段により設定されたブロック位置に対応する位置の近傍に複数のブロックを設定する参照画像ブロック位置設定手段と、
前記基準画像内に設定されたブロックと、前記参照画像ブロック位置設定手段により設定された複数のブロックとの相関評価値を算出する評価値演算手段とを有し、
前記ブロック形状設定手段は、
前記基準画像に含まれる対象物の形状又は種類に応じて、不一致度の高い形状を選択し、前記ブロック形状として設定することを特徴とする画像処理装置。
【請求項４】
２つの画像の一方を基準画像、他方を参照画像としてマッチングブロックを行うためのブロック形状を設定するブロック形状設定手順と、
前記ブロック形状設定手順により設定されたブロック形状に基づいて、前記基準画像におけるブロック位置を設定する基準画像ブロック位置設定手順と、
前記参照画像において、前記基準画像ブロック位置設定手順により設定されたブロック位置に対応する位置の近傍に複数のブロックを設定する参照画像ブロック位置設定手順と、
前記基準画像内に設定されたブロックと、前記参照画像ブロック位置設定手順により設定された複数のブロックとの相関評価値を算出する評価値演算手順とを有し、
前記ブロック形状設定手順は、
予め蓄積された形状の異なる複数のブロック形状の中から、前記基準画像に含まれる対象物の形状又は種類に応じて少なくとも１つの前記対象物の境界部分に沿った垂直線を含まない形状を選択し、前記ブロック形状として設定することを特徴とする画像処理方法。
【請求項５】
コンピュータを、請求項１乃至３のいずれか一項に記載の画像処理装置が有する各手段として機能させるための画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法、及び画像処理プログラムに関する。
【背景技術】
【０００２】
近年、例えばカメラにより撮影された画像から３次元形状を取得する方法として、ステレオカメラのように異なる視点から撮影した２つの画像を用いる方法が知られている。この方法では、２つの画像間において対応付けを行い、相互に対応する点から視差を求め、被写体までの距離情報を取得する。なお、対応点の探索方法としては、例えば一方の基準画像上の注目点に対して注目点を含むブロックを設定し、他方の参照画像上に同サイズのブロックを画素（ピクセル）単位で複数設定する。このように設定した基準画像上のブロックと、参照画像上の各ブロック間で相関値を算出し、最も相関値が高い参照画像上のブロックを探索することで対応点を探索する。
【０００３】
ここで、３次元画像における距離分解能を上げるためには、視差の分解能を上げれば良い。視差の分解能を上げるためには、画素レベルよりも細かい精度で対応付けを行えば良い。そこで、例えばサブピクセルレベルでの画素の対応付けを行う。なお、サブピクセルレベルでの画素の対応付けは、例えば画素レベルで求めた相関値をサブピクセル推定モデルに当てはめる処理（フィッティング処理）を行うことで、サブピクセルレベルの対応点を推定する方法が用いられている。
【０００４】
なお、従来では、サブピクセル精度で対応点を推定するため、最も相関値の高い位置とその周辺の相関値との位置関係から画素と画素との間の相関値を直線式又は曲線式に当てはめることによって補間し、相関値のピーク位置及びピーク値を推定する方法が知られている（例えば、特許文献１参照）。また、ピーク位置及びピーク位置の周辺における相関値とサブピクセル推定モデルとの合致度に基づいてサブピクセル推定モデルを選択する方法が知られている（例えば、特許文献２参照）。また、４点の相関値を用いてサブピクセルレベルの対応点を推定する折れ線と放物線の和をとったサブピクセル推定モデルの関数が知られている（例えば、非特許文献１参照）。
【０００５】
更に、窓内の視差、雑音と画像の微分の分布を正規分布と仮定したＭＡＰ推定により視差の分散と平均値を求め、視差の分散を最小にする窓を、相関演算を行う窓と決定する方法が知られている（例えば、非特許文献２参照）。また、視差の不連続を反映した適応窓を設定することによって視差が不連続付近での分解能の向上を図る視差演算方法が知られている（例えば、特許文献３参照）。なお、サブピクセル視差の検出精度を高めるために、複数のステレオ画像から得られる相関値を加算する複眼撮像装置が知られている（例えば、特許文献４参照）
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、上述したステレオカメラは、例えば２台のカメラを利用して構成するため、その形状が大きくなり、設置したい場所に設置することができない場合も生じる。そこで、例えばレンズアレイを用いて、１つの画像センサで複数の視点の画像を取得し、その複数の画像から距離情報を得る超小型のステレオカメラが研究されている。また、例えば２つの画像センサをシリコンウェハ上に隣接して形成し、その上にレンズアレイを搭載して各センサから視点の異なる画像を得ることも研究されている。
【０００７】
一方、上述した超小型ステレオカメラは、従来のステレオカメラと異なり、その基線長（レンズ間の距離）が非常に小さい。例えばカメラ２台を用いた従来のステレオカメラの基線長が１０ｃｍ前後の場合でも、超小型ステレオカメラでは、数ｍｍ程度である。ここで、ステレオカメラを用いた測距原理として基線長が小さい場合には、検出可能な視差も小さくなる。すなわち、所定の距離にある被写体を撮影したときに、例えば１０ｃｍ程度の基線長を持つステレオカメラが検出できる視差が５０画素程度とすると、例えば２ｍｍ程度の基線長を持つステレオカメラの場合、カメラの焦点距離が変わらないと仮定するとその検出できる視差は１画素程度となってしまう。これは、サブピクセルレベルの視差の距離測定精度に与える度合いが、前者のカメラの場合には１％程度であるのに対し、後者のカメラの場合にはほぼ１００％となる。すなわち、基線長の小さい超小型ステレオカメラの場合、その距離測定精度がサブピクセルレベルの視差検出（対応点付け）精度に大きく依存することとなる。
【０００８】
したがって、上述したサブピクセルレベルの視差検出精度は、従来の大きさのステレオカメラでは問題とならなかったのに対し、超小型ステレオカメラでは重要な問題となってくる。ここで、図１及び図２を用いて、上述したサブピクセルレベルの視差検出精度が与える問題について説明する。
【０００９】
図１は、所定距離にある物体を撮影した基準画像と参照画像を用いてブロックマッチングを行う方法を説明するための図である。また、図２は、基準画像のブロックに対して参照画像に設定したブロックが所定画素ずれている場合を説明するための図である。
【００１０】
上述した対応点を探索するためにブロック単位の相関値を求める方法は、ブロックマッチングといわれ、通常、そのブロック形状は正方形が使用されている。ブロック形状が正方形の場合、上下左右対称となるため、ソフトウェアやハードウェアの演算では扱いやすい。ところで、現実の世の中の物体形状を鑑みると、その形状は水平線と垂直線で構成されているものが多い。
【００１１】
ここで、図１（Ａ）を基準画像として、図１（Ｂ）を参照画像とした場合に、基準画像と参照画像には左右方向に１画素の視差があるものとする。図１（Ａ）に示す基準画像に点Ａを中心とした正方形のブロックを設定し、図１（Ｂ）に示す参照画像に同じ形状、同じ大きさのブロックを複数設定して対応点探索を行う。
【００１２】
図２（Ａ）に示す基準画像のブロックに対して、相関値が最大となる参照画像のブロック位置は、図２（Ａ'）に示す参照画像の破線で囲まれたブロック位置である。すなわち、図２（Ａ'）に示す参照画像の点Ａ'が、図２（Ａ）に示す基準画像の点Ａに最も近い画素単位の対応点である。
【００１３】
上述した図２（Ａ'）に示す参照画像のブロックが１画素左にずれたときの参照画像のブロック位置は、図２（Ｂ'）に示す参照画像のブロック位置となる。この場合、図２（Ｂ'）に示す参照画像のブロックの左端部分は、図２（Ｂ）に示す基準画像のブロックの左端部分とは大きく異なる画素（画像）輝度値を有し、図２（Ｂ）及び図２（Ｂ'）に示す中心付近の画素輝度値の差分に相当する相関の低下に加えて更に相関が小さくなる（例えば、ＳＡＤ（Ｓｕｍ  ｏｆ  Ａｂｓｏｌｕｔｅ  Ｄｉｆｆｅｒｅｎｃｅ：各ブロックの対応する画素値の差分の絶対値和）やＳＳＤ（Ｓｕｍ  ｏｆ  Ｓｑｕａｒｅｄ  Ｄｉｆｆｅｒｅｎｃｅ：各ブロックの対応する画素値の差分二乗和）の場合には評価値が大きくなる）。
【００１４】
一方、図２（Ｃ'）のように、参照画像のブロック位置が図２（Ｃ）に示す基準画像のブロックと１画素右にずれたときの相関は、図２（Ｃ）及び図２（Ｃ'）に示す基準画像と参照画像のブロック境界はその画素輝度値の差が大きく異なっていない。そのため、相関は中心付近の画素輝度値の差分に相当する値だけ小さくなる。
【００１５】
ここで、図３は、図２に示す基準画像のブロックと参照画像のブロックとの相関関係をグラフ上にプロットした図である。なお、図３（Ａ）〜（Ｃ）は、二次曲線フィッティングを示している。
【００１６】
図３（Ａ）は、横軸が探索画素位置を示し、縦軸はＮＣＣ（Ｎｏｒｍａｌｉｚｅ  Ｃｒｏｓｓ  Ｃｏｒｒｅｌａｔｉｏｎ：正規化相互相関法：各ブロックの対応画素値の積和を正規化する）評価値を示している。また、図３（Ｂ）は、横軸が探索画素位置を示し、縦軸がＳＡＤ評価値、ＳＳＤ評価値を示している。また、図３（Ｃ）は、横軸が探索画素位置を示し、縦軸が相関値を示している。
【００１７】
図３（Ａ）の場合は、相関が最大の時に評価値が最大となり、図３（Ｂ）の場合は、相関が最大の時にその評価値が最小となる。
【００１８】
上述したように図２に示す基準画像と参照画像とは、１画素の視差があるため、理想的にはその相関関係は、図３（Ｃ）に示す画素単位の対応点（すなわち図３（Ｃ）の例では探索画素位置１の点）を中心に対称となり、サブピクセルレベルで視差は発生しない。
【００１９】
これに対して、図３（Ａ）及び図３（Ｂ）の図では、相関関係が最大となる場合の対応点を中心に左右対称とならず、サブピクセルレベルでの視差が発生している。すなわち、対応点探索のサブピクセルレベルの推定を行った場合には、二次曲線フィッティング又は等角直線フィッティングのいずれの方法をとってもサブピクセル値は「０」にならず、「０」以外の値を有することになる。
【００２０】
これは、対応点探索のサブピクセル推定を行ったときの検出誤差となり、上述した超小型ステレオカメラにとって大きな問題となる。
【００２１】
なお、上述した特許文献１、特許文献２、及び非特許文献１に示される手法では，サブピクセル推定精度を向上させる方法が記載されているが、いずれの方式でも、上述した相関値を求める際の問題点については言及していない。また、上述した非特許文献２や特許文献３に示される手法では、対応点付けの精度を向上させるために、ブロックの形状やサイズを変更したりしているが、ブロックが矩形状であるため、ブロックの境界が被写体の境界と一致し、上述した相関関係に影響を及ぼす問題を解決していない。更に、特許文献４に示される手法でも同様にブロック形状は矩形状となっている。
【００２２】
本発明は、上記の課題に鑑みてなされたものであり、精度の高いサブピクセルレベルの対応点を推定する画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【００２３】
本発明は、上記目的を達成するための画像処理装置であり、２つの画像の一方を基準画像、他方を参照画像としてマッチングブロックを行うためのブロック形状を設定するブロック形状設定手段と、前記ブロック形状設定手段により設定されたブロック形状に基づいて、前記基準画像におけるブロック位置を設定する基準画像ブロック位置設定手段と、前記参照画像において、前記基準画像ブロック位置設定手段により設定されたブロック位置に対応する位置の近傍に複数のブロックを設定する参照画像ブロック位置設定手段と、前記基準画像内に設定されたブロックと、前記参照画像ブロック位置設定手段により設定された複数のブロックとの相関評価値を算出する評価値演算手段とを有し、前記ブロック形状設定手段は、予め蓄積された形状の異なる複数のブロック形状の中から、前記基準画像に含まれる対象物の形状又は種類に応じて少なくとも１つの前記対象物の境界部分に沿った垂直線を含まない形状を選択し、前記ブロック形状として設定する。
【００２４】
また、本発明は、２つの画像の一方を基準画像、他方を参照画像としてマッチングブロックを行うためのブロック形状を設定するブロック形状設定手順と、前記ブロック形状設定手順により設定されたブロック形状に基づいて、前記基準画像におけるブロック位置を設定する基準画像ブロック位置設定手順と、前記参照画像において、前記基準画像ブロック位置設定手順により設定されたブロック位置に対応する位置の近傍に複数のブロックを設定する参照画像ブロック位置設定手順と、前記基準画像内に設定されたブロックと、前記参照画像ブロック位置設定手順により設定された複数のブロックとの相関評価値を算出する評価値演算手順とを有し、前記ブロック形状設定手順は、予め蓄積された形状の異なる複数のブロック形状の中から、前記基準画像に含まれる対象物の形状又は種類に応じて少なくとも１つの前記対象物の境界部分に沿った垂直線を含まない形状を選択し、前記ブロック形状として設定する。
【００２５】
また、本発明は、コンピュータを、上述した画像処理装置が有する各手段として機能させるための画像処理プログラムである。
【発明の効果】
【００２６】
本発明によれば、精度の高いサブピクセルレベルの対応点を推定することを可能とする。
【図面の簡単な説明】
【００２７】
【図１】所定距離にある物体を撮影した基準画像と参照画像を用いてブロックマッチングを行う方法を説明するための図である。
【図２】基準画像のブロックに対して参照画像に設定したブロックが所定画素ずれている場合を説明するための図である。
【図３】図２に示す基準画像のブロックと参照画像のブロックとの相関関係をグラフ上にプロットした図である。
【図４】本実施形態に係る画像処理装置を含むステレオカメラ装置の構成を示す図である。
【図５】図４に示すレンズアレイにより撮影された画像を示す図である。
【図６】本実施形態に係るマッチングブロックについて説明するための図である。
【図７】本実施形態に係るマッチングブロックが所定画素ずれている例を説明するための図である。
【図８】本実施形態に係る相関演算手段の機能構成を示す図である。
【図９】本実施形態に係る画像処理装置の機能を実現するハードウェア構成の一例を示す図である。
【図１０】本実施形態に係る相関演算処理の流れを示すフローチャートである。
【図１１】相関演算手段により得られた値を用いたサブピクセルの推定方法を説明するための図である。
【図１２】本実施形態に係る他のマッチングブロックについて説明するための図である。
【発明を実施するための形態】
【００２８】
以下、本発明の実施の形態について詳細に説明する。
【００２９】
＜ステレオカメラ装置の構成＞
図４及び図５を用いて、本実施形態に係る画像処理装置を含むステレオカメラ装置について説明する。図４は、本実施形態に係る画像処理装置を含むステレオカメラ装置の構成を示している。また、図５は、レンズアレイにより撮像された画像を示している。
【００３０】
図４に示すように、本実施形態に係るステレオカメラ装置１００は、例えば１台の超小型ステレオカメラであり、撮像手段１０と画像処理装置１１とを有するように構成される。
【００３１】
撮像手段１０は、レンズアレイと、画像センサと、遮光壁を有し、左右に視点の異なる画像を撮像する。図５に示す左側の画像Ｌは、図４に示す右側のレンズＢにより撮影した画像であり、図５に示す右側の画像Ｒは、図４に示す左側のレンズＣにより撮影した画像である。
【００３２】
画像処理装置１１は、シェーディング補正手段２０と、歪み補正手段３０と、相関演算手段４０と、サブピクセル視差推定手段５０と、距離算出手段６０とを有するように構成される。
【００３３】
シェーディング補正手段２０は、撮像手段１０から取得した画像に対してシェーディング補正を実行する。シェーディング補正手段２０は、例えば左右のカメラの明るさの差や画像周辺の暗さを修正する。シェーディング補正手段２０は、例えば予め画素の輝度値に乗算すべき値を記憶したシェーディング補正用のテーブルを用意しておき、テーブルの値を輝度値に乗じて画素の明暗を補正しても良い。
【００３４】
歪み補正手段３０は、シェーディング補正手段２０によりシェーディング補正された画像に対して歪み補正を実行する。歪み補正手段３０は、例えば左右の画像それぞれが持つ歪みを補正する。歪み補正手段３０は、例えばレンズの特性に由来する歪みをもって撮影された画像をピンホールカメラが撮影したような歪みのない画像に補正する。歪み補正手段３０は、公知の方法を用いて、例えば予め作成しておいたルックアップテーブルを用いて歪み補正を行っても良く、高次の多項式を用いて歪み状態を近似した補正多項式を用いて歪みを取り除いても良い。
【００３５】
相関演算手段４０は、歪み補正手段３０により歪みが補正された左右の画像に対してブロックマッチングを用いながら左右の画像の相関を計算する。このとき、左右の画像の一方を基準画像とし、他方を参照画像とする。なお、以下の例では、相関演算手段４０は、図５に示す左側の画像Ｌ（右側のレンズＢで撮影された画像）を基準画像、右側の画像Ｒ（左側のレンズＣで撮影された画像）を参照画像として、ブロックマッチングを行いながら左右の画像の相関値を算出するが、本発明においてはこれに限定されるものではなく、基準画像と参照画像を逆にしても良い。なお、相関演算手段４０による具体的な相関演算方法については後述する。
【００３６】
サブピクセル視差推定手段５０は、相関演算手段４０により得られた相関評価値及び極値位置に基づき、サブピクセル視差を推定する。例えばサブピクセル視差推定手段５０は、相関の評価値列を入力とし、視差の評価値の極小値（例えばＳＳＤ、ＳＡＤ）、あるいは極大値（ＮＣＣ）を与える相関評価値とその評価値の左右にある１画素ずらした位置での相関評価値を取得する。
【００３７】
また、サブピクセル視差推定手段５０は、上述のように算出した３つの評価値から対応点のサブピクセル位置を推定する。例えば、サブピクセル視差推定手段５０は、ＳＡＤをブロックマッチングに使用した場合には、等角直線フィッティングを用いて対応点のサブピクセル位置を推定する。また、サブピクセル視差推定手段５０は、ＳＳＤやＮＣＣを用いた場合には２次曲線フィッティングを用いて対応点のサブピクセル値を推定する。なお、等角直線フィッティング及び２次曲線フィッティングを用いた推定方法については後述する。
【００３８】
距離算出手段６０は、サブピクセル視差推定手段５０により推定された対応点のサブピクセル位置（サブピクセルレベルの視差）を用いて被写体（対象物）までの距離を算出する。距離算出手段６０は、例えば被写体までの距離を計算する式としてＺ＝Ｂｆ／（Ｄ−ｏｆｆｓｅｔ）を用いて上述した点Ａにおける被写体までの距離を算出する。ここで、Ｚは被写体までの距離を意味し、Ｂは基線長（レンズ間の距離）を意味し、ｆは焦点距離を意味し、Ｄは視差を意味する。
【００３９】
距離算出手段６０は、上述した式を用いて距離が計算可能な画素全てに対して、距離を算出する。これにより、距離画像が得られる。
【００４０】
＜本実施形態に係るマッチングブロックについて＞
次に、図６及び図７を用いて、本実施形態に係るマッチングブロックについて説明する。図６は、本実施形態に係るマッチングブロックについて説明するための図である。また、図７は、本実施形態に係るマッチングブロックが所定画素ずれている例を説明するための図である。
【００４１】
図６（Ａ）に示すように、基準画像の対応点探索を行う点を点Ａとして設定し、その点Ａを中心としたブロックを設定する。本実施形態では、例えばブロックの形状の一例として菱形を用いることとし、そのサイズを菱形の対角線を基準に設定するものとし、例えば対角線で横方向１６画素、縦方向１６画素とする。なお、画素数については、これに限定されるものではない。
【００４２】
次に、図６（Ｂ）に示すように、図６（Ａ）において設定したブロックと同一サイズの同一形状のブロックを参照画像上に複数設定する。
【００４３】
相関演算手段４０は、基準画像の点Ａを中心とした菱形のブロックと、参照画像上に複数設定したブロックとの相関を計算し、その評価値を得る。なお、本実施形態では、ステレオ画像の性質上、左側の画像Ｌ（基準画像）の点Ａに対応する点は、右側の画像Ｒ（参照画像）上では点Ａに相当する位置と同じ位置にあるか、その位置より右側にしか存在しない。
【００４４】
したがって、参照画像の複数のブロックの位置は、図６（Ｂ）に示すように、点Ａと同じ位置の水平ライン上を左に数画素（最低１画素）移動させた位置から右に測定したい最短距離に相当する視差分の画素に、更に数画素（最低１画素）だけ移動させた位置まで１画素ずつ移動させて設定する。
【００４５】
上述のように左右に設定する余分な数画素のブロック位置は、例えばサブピクセル視差を推定するために１画素ずつ必要であり、また基準画像と参照画像とがレンズの製造誤差等によりオフセットをもつ場合に備えるためである。
【００４６】
相関演算手段４０による相関評価値の算出方法は、従来用いられているＳＡＤ、ＳＳＤ、ＮＣＣ等を用いると良い。図６に示すブロック形状の場合には、上述した図１に示すような画像を撮影した場合でも、図２の例とは異なる比較が行われる。例えば、図７（Ａ）〜（Ｃ）では、菱形ブロックどうしを比較することになり、ブロック端付近での相関を低下させる画素輝度値の大きな差を軽減することが可能になる。
【００４７】
すなわち、上述した図２におけるブロック端での相関を低下させる原因を大きく低減させて、中心付近の位置ずれのみが相関に反映されることになり、望ましい相関の評価値を得ることが可能となる。
【００４８】
＜相関演算手段の機能構成＞
次に、図８を用いて、上述した相関演算手段４０の機能構成に説明する。図８は、本実施形態に係る相関演算手段の機能構成を示している。図８に示すように相関演算手段４０は、ブロック形状設定手段４１と、基準画像ブロック位置設定手段４２と、参照画像ブロック位置設定手段４３と、評価値演算手段４４と、極値検出手段４５とを有するように構成される。
【００４９】
ブロック形状設定手段４１は、例えば２つの画像の一方を基準画像、他方を参照画像としてマッチングブロックを行うための演算ブロックの形状（ブロック形状）と大きさを設定する。ここで、ブロック形状設定手段４１は、基準画像において対応点探索を行う所定の点を中心としたブロックを設定する場合に、基準画像に含まれる被写体である対象物の形状に応じてブロック形状を設定すると良い。
【００５０】
具体的には、ブロック形状設定手段４１は、対象物の境界部分に沿った垂直線を含まない形状をブロック形状として設定し、例えばブロック形状を菱形形状、垂直線を含まない六角形等の多角形形状、円形形状、楕円形状等に設定すると良い。ブロック形状設定手段４１は、例えばブロック形状を菱形形状とする場合、例えば所定の点を中心として対角線で横方向１６画素、縦方向１６画素とするブロック形状を設定する。
【００５１】
また、ブロック形状設定手段４１は、予め設定された形状の異なる複数のブロック形状のうち、対象物に応じて少なくとも一つのブロック形状を設定しても良い。
【００５２】
基準画像ブロック位置設定手段４２は、ブロック形状設定手段４１により設定されたブロック形状に基づいて、基準画像におけるブロック位置を設定する。
【００５３】
参照画像ブロック位置設定手段４３は、参照画像において、基準画像ブロック位置設定手段４２で設定されたブロック位置に対応する位置の近傍に複数のブロックを設定する。参照画像ブロック位置設定手段４３は、図６等において説明したように、例えば所定の点（図６の例では点Ａ）と同じ位置の水平ライン上を左に数画素（最低１画素以上）移動させた位置から右に測定したい最短距離に相当する視差分の画素に、更に数画素（最低１画素以上）移動させた位置まで１画素ずつ移動させて設定する。
【００５４】
評価値演算手段４４は、基準ブロック位置設定手段４２により設定された基準画像内のブロックと、参照画像ブロック位置設定手段４３により参照画像内に設定された複数のブロックとをそれぞれ所定の演算を行うことで相関評価値を算出する。評価値演算手段４４は、相関評価値を算出する所定の演算として、上述したＳＡＤ、ＳＳＤ、ＮＣＣ等を用いて、上述した各ブロック間の相関評価値を得る。
【００５５】
極値検出手段４５は、評価値演算手段４４により得られた複数の相関評価値からその極値とその位置を検出し、複数の相関評価値及びその極値の位置を出力する。
【００５６】
＜ハードウェア構成＞
次に、図９を用いて、上述した画像処理装置１１の機能を実現するハードウェア構成について説明する。図９は、本実施形態に係る画像処理装置の機能を実現するハードウェア構成の一例を示している。
【００５７】
図９に示す画像処理装置１１には、入力装置７１と、出力装置７２と、ドライブ装置７３と、補助記憶装置７４と、メモリ装置７５と、各種制御を行う演算処理装置（ＣＰＵ：Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）７６と、ネットワーク接続装置７７と、記録媒体７８とを有するよう構成されており、これらはシステムバスＢで相互に接続されている。
【００５８】
入力装置７１は、ユーザが操作する操作ボタン等を有しており、ユーザからのプログラムの実行等、各種操作信号を入力する。出力装置７２は、本発明における処理を行うのに必要な各種ウィンドウやデータ等を表示するディスプレイ等を有し、ＣＰＵ７６が有する制御プログラムによりプログラムの実行経過や結果等を表示することができる。
【００５９】
ここで、画像処理装置１１にインストールされる実行プログラムは、記録媒体７８等により提供される。プログラムを記録した記録媒体７８は、ドライブ装置７３にセット可能であり、記録媒体７８に含まれる実行プログラムが、記録媒体７８からドライブ装置７３を介して補助記憶装置７４にインストールされる。
【００６０】
なお、記録媒体７８は、例えばＣＤ−ＲＯＭの他、フレキシブルディスク、光磁気ディスク等のように情報を光学的、電気的或いは磁気的に記録する記録媒体、ＲＯＭ、フラッシュメモリ等のように情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。
【００６１】
補助記憶装置７４は、ハードディスク等のストレージ手段であり、本発明における実行プログラムや、コンピュータに設けられた制御プログラム、各種データ等を蓄積し必要に応じて入出力を行うことができる。
【００６２】
メモリ装置７５は、ＣＰＵ７６により補助記憶装置７４から読み出された実行プログラム等を格納する。なお、メモリ装置７５は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等からなる。
【００６３】
ＣＰＵ７６は、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）等の制御プログラム、メモリ装置７５により格納されている実行プログラムに基づいて、各種演算や各ハードウェア構成部とのデータの入出力等、コンピュータ全体の処理を制御して上述した各機能及び後述する相関演算処理を実現することができる。また、プログラムの実行中に必要な各種情報は、補助記憶装置７８から取得することができ、また格納することもできる。
【００６４】
ネットワーク接続装置７７は、通信ネットワーク等と接続することにより、実行プログラムを通信ネットワークに接続されている他の端末等から取得したり、プログラムを実行して得られる実行結果又は本発明における実行プログラム自体を他の端末等に提供したりすることができる。
【００６５】
上述したようなハードウェア構成により、特別な装置構成を必要とせず、低コストで効率的に上述した各機能及び後述する相関演算処理を実現することができる。また、プログラムをインストールすることにより、上述した各機能及び後述する各相関演算処理を容易に実現することができる。
【００６６】
＜相関演算処理について＞
次に、図１０を用いて、上述した相関演算手段４０による相関演算処理の流れについて説明する。図１０は、本実施形態に係る相関演算処理の流れを示すフローチャートである。
【００６７】
図１０に示すように、相関演算手段４０に、上述した各補正手段により補正された基準画像、参照画像が入力されると（Ｓ１０）、ブロック形状設定手段４１は、ブロックマッチングに用いるブロック形状を設定する（Ｓ１１）。
【００６８】
次に、基準画像ブロック位置設定手段４２は、ブロック形状設定手段４１により設定されたブロック形状を用いて基準画像のブロック位置を設定する（Ｓ１２）。
【００６９】
次に、参照画像ブロック位置設定手段４３は、参照画像において基準画像ブロック位置設定手段４１により設定されたブロック位置に対応する位置の近傍に複数のブロック位置を設定する（Ｓ１３）。
【００７０】
次に、評価値演算手段４４は、基準ブロック位置設定手段４２により設定された基準画像内のブロックと、参照画像ブロック位置設定手段４３により参照画像内に設定された複数のブロックとをそれぞれ所定の演算を行うことにより相関評価値を算出する（Ｓ１４）。
【００７１】
次に、相関演算手段４０により入力された全画素に対して処理がなされたか判断する（Ｓ１５）。全画素に対して処理がなされていないと判断した場合には（Ｓ１５において、ＮＯ）、Ｓ１２の処理に戻り、他の画素について同様の処理を行う。
【００７２】
全画素に対して処理がなされたと判断された場合には（Ｓ１５において、ＹＥＳ）、極値検出手段４５は、評価値演算手段４４により得られた複数の相関評価値からその極値とその位置を検出し（Ｓ１６）、複数の相関評価値及びその極値位置を出力し（Ｓ１７）、処理を終了する。
【００７３】
＜サブピクセルの推定方法＞
次に、図１１を用いて、上述した相関演算手段４０により得られた相関評価値及び極値位置に基づきサブピクセルを推定する方法について説明する。図１１は、相関演算手段により得られた値を用いたサブピクセルの推定方法を説明するための図である。なお、図１１（Ａ）は、等角直線を用いたフィッティングを示す図である。横軸は、探索画素位置を示し、縦軸はＳＡＤ評価値を示している。
【００７４】
サブピクセル視差推定手段５０は、図１１（Ａ）に示す図から対応点のサブピクセル位置を推定するため、まず、ＳＡＤ評価値の一番小さいＰ１と、Ｐ１と隣接する２つのＳＡＤ評価値（Ｐ０とＰ２）のうち評価値の大きいＰ０とを結ぶ直線を引く。次に、Ｐ２を通り、Ｐ０とＰ１を結んだ直線を左右反転させた直線と平行な直線を引く。次に、サブピクセル視差推定手段５０は、２つの直線の交点を対応点のサブピクセル位置として推定する。
【００７５】
図１１（Ｂ）は、２次曲線を用いたフィッティングを示す図である。横軸は、探索画素位置を示し、縦軸は、ＳＳＤ評価値を示している。
【００７６】
サブピクセル視差推定手段５０は、図１１（Ｂ）に示す図から対応点のサブピクセル位置を推定するため、まず、図１１（Ｂ）に示す３点（Ｐ０、Ｐ１、Ｐ２）を用いて、２次曲線の当てはめを行い、２次曲線の頂点を決定する。サブピクセル視差推定手段５０は、この頂点の位置を対応点のサブピクセル位置として推定する。
【００７７】
上述したように、サブピクセル視差推定手段５０によりサブピクセルレベルの視差（対応点）を検出することができる。
【００７８】
＜その他のブロック形状＞
次に、図１２を用いて、本実施形態に係る他のマッチングブロックの例について説明する。図１２は、本実施形態に係る他のマッチングブロックについて説明するための図である。上述したように、世の中の風景や人間が作った構造物は垂直方向にその境界をもつものが大部分を占めるため、ブロック形状を被写体との平行部分が小さいようなものであれば菱形以外でも効果がある。
【００７９】
図１２（Ａ）は、ブロック形状を円状にした場合を示している。上述した１６×１６画素の菱形のブロック形状は、例えば１６×１６画素の正方形よりも相関に使用する画素数が小さく、ノイズの影響を受けやすい場合も考えられるため、円状のブロック形状を用いてブロックマッチングを行っても良い。
【００８０】
図１２（Ｂ）は、ブロック形状を六角形にした場合を示している。六角形のブロック形状の場合には、例えば１６×１６画素の正方形のブロックに近い画素数を確保することができるため、ノイズの耐性とサブピクセル推定精度とを両立することが可能となる。
【００８１】
また、上述したブロック形状の他にも例えば星形や、正方形等の多角形の中心を基準として所定の角度（例えば６０度右回転等）だけ回転させて、被写体等の対象物の境界部分（例えば輪郭形状）等と平行にならない形状を生成しても良い。
【００８２】
また、本実施形態では、上述したブロック形状を予め複数蓄積しておき、被写体の形状（例えば、輪郭形状や模様等）や種類（例えば、人、建物、山、月等）等に応じて、不一致度の高い形状を選択するようにしても良く、ユーザがブロック形状を適宜選択できるようにしても良い。なお、本実施形態では、上述した複数のブロック形状のうち少なくとも一つのブロック形状が設定され、複数選択された場合には、例えば位置や時間等に応じて切り換えても良く、また画像中に含まれる被写体の変更に伴って変更しても良い。
【００８３】
上述したように、本発明の実施形態によれば、世の中の被写体に応じた形状のブロックを設定するブロックマッチングを用いた対応点探索を実行することで、最適な相関を得て、精度の高いサブピクセルレベルの対応点（サブピクセルレベルの視差）を推定し、精度の高いサブピクセル推定を行うことが可能となる。また、上述したサブピクセルレベルの対応点の推定は、ステレオカメラを用いた測距装置や３次元形状認識装置等に用いても良い。
【００８４】
以上、本発明の好ましい実施例について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形、変更が可能である。
【符号の説明】
【００８５】
１０  撮像手段
１１  画像処理装置
２０  シェーディング補正手段
３０  歪み補正手段
４０  相関演算手段
４１  ブロック形状設定手段
４２  基準画像ブロック位置設定手段
４３  参照画像ブロック位置設定手段
４４  評価値演算手段
４５  極値検出手段
５０  サブピクセル視差推定手段
６０  距離算出手段
７１  入力装置
７２  出力装置
７３  ドライブ装置
７４  補助記憶装置
７５  メモリ装置
７６  演算処理装置
７７  ネットワーク接続装置
７８  記録媒体
１００  ステレオカメラ装置
【先行技術文献】
【特許文献】
【００８６】
【特許文献１】特開２００１−１９５５９７号公報
【特許文献２】特開２００９−２８２６３５号公報
【特許文献３】特開平５−２５６６１３号公報
【特許文献４】特許第４３８２１５６号公報
【非特許文献】
【００８７】
【非特許文献１】新井元基，鷲見和彦，松山隆司，「画像のブロックマッチングにおける相関関数とサブピクセル推定方式の最適化」，情報処理学会 研究報告，May 2004, CVIM-144-5, pp.33-40
【非特許文献２】"A Stereo Matching Algorithm with an Adaptive Window: Theory and Experiment", Takeo Kanade and Masatoshi Okutomi, IEEE PAMI, Vol. 16, NO.9, Sep. 1994
【図１】
0005782766.tif 000002
【図２】
0005782766.tif 000003
【図３】
0005782766.tif 000004
【図４】
0005782766.tif 000005
【図５】
0005782766.tif 000006
【図６】
0005782766.tif 000007
【図７】
0005782766.tif 000008
【図８】
0005782766.tif 000009
【図９】
0005782766.tif 000010
【図１０】
0005782766.tif 000011
【図１１】
0005782766.tif 000012
【図１２】
0005782766.tif 000013