(57)【特許請求の範囲】
【請求項１】
第１撮像手段が被写体を撮像することにより得られた基準画像、および前記第１撮像手段の位置とは異なる位置の第２撮像手段が前記被写体を撮像することにより得られた比較画像に基づいて、前記被写体に対する視差を示す視差値を導出する視差値導出装置であって、
前記基準画像の第１基準領域と、前記比較画像における前記第１基準領域に相当する領域から所定のシフト量でシフトすることにより特定される、前記第１基準領域に対応する前記比較画像での対応領域の候補となる複数の候補領域と、に対して前記シフト量に応じたサイズのローパスフィルタによるフィルタ処理を行うフィルタリング手段と、
前記フィルタリング手段により前記フィルタ処理が行われた前記第１基準領域と、該フィルタ処理が行われた前記複数の候補領域それぞれとの一致度を算出する算出手段と、
前記一致度に基づいて、前記第１基準領域と前記対応領域との前記視差値を導出する導出手段と、
を備えた視差値導出装置。
【請求項２】
前記フィルタリング手段は、前記第１基準領域の輝度値と、前記複数の候補領域の輝度値と、に対して前記ローパスフィルタによるフィルタ処理を行い、
前記算出手段は、前記フィルタ処理が行われた前記第１基準領域の輝度値と、該フィルタ処理が行われた前記複数の候補領域の輝度値と、に基づいて該複数の候補領域それぞれの前記一致度を算出し、
前記導出手段は、前記比較画像における前記各候補領域の前記一致度に基づく値の極値に対応する前記シフト量に基づいて前記視差値を導出する請求項１に記載の視差値導出装置。
【請求項３】
前記フィルタリング手段は、前記シフト量が小さいほど、サイズの小さい前記ローパスフィルタにより前記フィルタ処理を行い、前記シフト量が大きいほど、サイズの大きい前記ローパスフィルタにより前記フィルタ処理を行う請求項１または２に記載の視差値導出装置。
【請求項４】
前記ローパスフィルタは、一次元のフィルタである請求項１〜３のいずれか一項に記載の視差値導出装置。
【請求項５】
前記フィルタリング手段は、前記シフト量が所定値未満である場合、前記フィルタ処理を行わない請求項１〜４のいずれか一項に記載の視差値導出装置。
【請求項６】
前記第１基準領域の周辺の第２基準領域についての前記比較画像における一致度を、前記複数の候補領域の一致度に集約させて、該複数の候補領域それぞれについて合成一致度を求める合成手段を、さらに備え、
前記導出手段は、前記合成一致度に基づいて、前記第１基準領域と前記対応領域との前記視差値を導出する請求項１〜５のいずれか一項に記載の視差値導出装置。
【請求項７】
前記ローパスフィルタを予め記憶した記憶手段を、さらに備えた請求項１〜６のいずれか一項に記載の視差値導出装置。
【請求項８】
前記導出手段は、前記比較画像における前記各候補領域の前記一致度に基づく値の極値に対応する前記シフト量を含む隣接した複数の前記シフト量に基づいて、サブピクセル推定により前記視差値を導出する請求項１〜７のいずれか一項に記載の視差値導出装置。
【請求項９】
請求項１〜８のいずれか一項に記載の視差値導出装置と、
前記視差値導出装置によって導出される前記視差値により求まる前記視差値導出装置から被写体までの距離情報によって、制御対象を制御する制御装置と、
を備えた機器制御システム。
【請求項１０】
請求項９に記載の機器制御システムを備えた移動体。
【請求項１１】
請求項９に記載の機器制御システムを備えたロボット。
【請求項１２】
第１撮像手段が被写体を撮像することにより得られた基準画像、および前記第１撮像手段の位置とは異なる位置の第２撮像手段が前記被写体を撮像することにより得られた比較画像に基づいて、前記被写体に対する視差を示す視差値を導出する視差値導出方法であって、
前記基準画像の第１基準領域と、前記比較画像における前記第１基準領域に相当する領域から所定のシフト量でシフトすることにより特定される、前記第１基準領域に対応する前記比較画像での対応領域の候補となる複数の候補領域と、に対して前記シフト量に応じたサイズのローパスフィルタによるフィルタ処理を行うフィルタリングステップと、
前記フィルタ処理を行った前記第１基準領域と、該フィルタ処理を行った前記複数の候補領域それぞれとの一致度を算出する算出ステップと、
前記一致度に基づいて、前記第１基準領域と前記対応領域との前記視差値を導出する導出ステップと、
を有する視差値導出方法。
【請求項１３】
第１撮像手段が被写体を撮像することにより得られた基準画像、および前記第１撮像手段の位置とは異なる位置の第２撮像手段が前記被写体を撮像することにより得られた比較画像に基づいて、前記被写体に対する視差を示す視差値を導出するためのプログラムであって、
前記基準画像の第１基準領域と、前記比較画像における前記第１基準領域に相当する領域から所定のシフト量でシフトすることにより特定される、前記第１基準領域に対応する前記比較画像での対応領域の候補となる複数の候補領域と、に対して前記シフト量に応じたサイズのローパスフィルタによるフィルタ処理を行うフィルタリング手段と、
前記フィルタリング手段により前記フィルタ処理が行われた前記第１基準領域と、該フィルタ処理が行われた前記複数の候補領域それぞれとの一致度を算出する算出手段と、
前記一致度に基づいて、前記第１基準領域と前記対応領域との前記視差値を導出する導出手段と、
をコンピュータに実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、視差値導出装置、機器制御システム、移動体、ロボット、視差値導出方法、およびプログラムに関する。
【背景技術】
【０００２】
近年、自動車間の距離、または自動車と障害物との間の距離を測定することにより自動車の衝突防止を図る車載システムが一般的に利用されてきている。そのような距離を測定する方法として、２つのカメラを有するステレオカメラを用い、三角測量の原理を用いたステレオマッチング処理による方法がある。
【０００３】
ステレオマッチング処理とは、一方のカメラで撮像された基準画像と、他方のカメラで撮像された比較画像との間で対応する画素をマッチングすることにより視差を求め、視差からステレオカメラと、画像に含まれる物体との距離を算出する処理である。このようなステレオカメラを用いたステレオマッチング処理による物体との距離の算出により、各種認識処理、ならびに衝突防止のためのブレーキ制御および操舵制御が可能となる。
【０００４】
上述のようなステレオマッチング処理として、画像間の類似性を評価するために、比較する画像から領域を切り出し、その領域に対する輝度差の総和（ＳＡＤ：Ｓｕｍ  ｏｆ  Ａｂｓｏｌｕｔｅ  Ｄｉｆｆｅｒｅｎｃｅ）、輝度差の２乗和（ＳＳＤ：Ｓｕｍ  ｏｆ  Ｓｑｕａｒｅｄ  Ｄｉｆｆｅｒｅｎｃｅ）、および正規化相互相関（ＺＮＣＣ：Ｚｅｒｏ−ｍｅａｎ  Ｎｏｒｍａｌｉｚｅｄ  Ｃｒｏｓｓ−Ｃｏｒｒｅｌａｔｉｏｎ）等を求めるブロックマッチング法がある。このようなブロックマッチング法によるステレオマッチング処理を利用した技術として、１つのペアのステレオカメラだけで、広い視野角と視野内の特定領域では高い測距精度を両立するという技術が提案されている（特許文献１）。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、特許文献１に記載された技術は、基準画像の基準領域と、比較画像の候補領域とのマッチング処理で、基準領域と候補領域とのシフト量の大きさに関わらず、同じ大きさのブロック（領域）でマッチング処理を行うものである。したがって、基準画像（または比較画像）において、近い被写体および遠い被写体に対しても、同じブロックによるマッチング処理を行うので、視差値の精度が低下する可能性がある。
【０００６】
本発明は、上記に鑑みてなされたものであって、近い被写体および遠い被写体のいずれでもあっても精度の高い視差値を導出することができる視差値導出装置、機器制御システム、移動体、ロボット、視差値導出方法、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本発明は、第１撮像手段が被写体を撮像することにより得られた基準画像、および前記第１撮像手段の位置とは異なる位置の第２撮像手段が前記被写体を撮像することにより得られた比較画像に基づいて、前記被写体に対する視差を示す視差値を導出する視差値導出装置であって、前記基準画像の第１基準領域と、前記比較画像における前記第１基準領域に相当する領域から所定のシフト量でシフトすることにより特定される、前記第１基準領域に対応する前記比較画像での対応領域の候補となる複数の候補領域と、に対して前記シフト量に応じたサイズのローパスフィルタによるフィルタ処理を行うフィルタリング手段と、前記フィルタリング手段により前記フィルタ処理が行われた前記第１基準領域と、該フィルタ処理が行われた前記複数の候補領域それぞれとの一致度を算出する算出手段と、前記一致度に基づいて、前記第１基準領域と前記対応領域との前記視差値を導出する導出手段と、を備えたことを特徴とする。
【発明の効果】
【０００８】
本発明によれば、近い被写体および遠い被写体のいずれでもあっても精度の高い視差値を導出することができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、撮像装置から物体までの距離を導き出す原理を説明する図である。
【図２】図２は、基準画像、高密度視差画像およびエッジ視差画像を示す概念図である。
【図３】図３は、基準画像における基準画素に対応する比較画像における対応画素を求める場合の説明図である。
【図４】図４は、シフト量とコスト値との関係の一例を示すグラフである。
【図５】図５は、合成コストを導出するための概念図である。
【図６】図６は、シフト量と合成コスト値との関係の一例を示すグラフである。
【図７】図７は、本実施の形態に係る機器制御システムを車両に搭載した例を示す図である。
【図８】図８は、本実施の形態に係る視差値導出装置の外観の一例を示す図である。
【図９】図９は、本実施の形態に係る視差値導出装置のハードウェア構成の一例を示す図である。
【図１０】図１０は、本実施の形態に係る視差値導出装置のブロック構成の一例を示す図である。
【図１１】図１１は、基準画像の基準画素に対応する比較画像の対応画素を求める場合にローパスフィルタを切り替える動作を説明する図である。
【図１２】図１２は、本実施の形態におけるシフト量と合成コスト値との関係の一例を示すグラフである。
【図１３】図１３は、パラボラフィッティングによるサブピクセル推定を説明する図である。
【図１４】図１４は、最小二乗法によるサブピクセル推定を説明する図である。
【図１５】図１５は、本実施の形態のステレオマッチング処理によって求められる高密度視差画像の一例を示す概念図である。
【図１６】図１６は、本実施の形態に係る視差値導出装置のステレオマッチング処理の動作の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
［ＳＧＭ法を用いた測距方法の概略］
まず、図１〜６を用いて、ＳＧＭ（Ｓｅｍｉ−Ｇｌｏｂａｌ  Ｍａｔｃｈｉｎｇ）法を用いた測距方法の概略について説明する。
【００１１】
（測距の原理）
図１は、撮像装置から物体までの距離を導き出す原理を説明する図である。図１を参照しながら、ステレオマッチング処理により、ステレオカメラから物体に対する視差を導出し、この視差を示す視差値によって、ステレオカメラから物体までの距離を測定する原理について説明する。なお、以下では、説明を簡略化するため、複数の画素からなる所定領域のマッチングではなく、画素単位のマッチングの例について説明する。
【００１２】
図１に示す撮像システムは、平行等位に配置された撮像装置５１０ａと撮像装置５１０ｂとを有するものとする。撮像装置５１０ａ、５１０ｂは、それぞれ、入射する光を屈折させて物体の像を固体撮像素子である画像センサに結像させる撮像レンズ５１１ａ、５１１ｂを有する。撮像装置５１０ａおよび撮像装置５１０ｂによって撮像された各画像を、それぞれ比較画像Ｉａおよび基準画像Ｉｂとする。図１において、３次元空間内の物体Ｅ上の点Ｓは、比較画像Ｉａおよび基準画像Ｉｂそれぞれにおいて、撮像レンズ５１１ａと撮像レンズ５１１ｂとを結ぶ直線と平行な直線上の位置に写像される。ここで、各画像に写像された点Ｓを、比較画像Ｉａにおいて点Ｓａ（ｘ，ｙ）とし、基準画像Ｉｂにおいて点Ｓｂ（Ｘ，ｙ）とする。このとき、視差値ｄｐは、比較画像Ｉａ上の座標におけるＳａ（ｘ，ｙ）と基準画像Ｉｂ上の座標における点Ｓｂ（Ｘ，ｙ）とを用いて、以下の（式１）のように表される。
【００１３】
ｄｐ＝Ｘ−ｘ                                                          （式１）
【００１４】
また、図１において、比較画像Ｉａにおける点Ｓａ（ｘ，ｙ）と撮像レンズ５１１ａから撮像面上におろした垂線の交点との距離をΔａとし、基準画像Ｉｂにおける点Ｓｂ（Ｘ，ｙ）と撮像レンズ５１１ｂから撮像面上におろした垂線の交点との距離をΔｂにすると、視差値ｄｐは、ｄｐ＝Δａ＋Δｂと表すこともできる。
【００１５】
次に、視差値ｄｐを用いることにより、撮像装置５１０ａ、５１０ｂと物体Ｅとの間の距離Ｚを導出する。ここで、距離Ｚは、撮像レンズ５１１ａの焦点位置と撮像レンズ５１１ｂの焦点位置とを結ぶ直線から物体Ｅ上の点Ｓまでの距離である。図１に示すように、撮像レンズ５１１ａおよび撮像レンズ５１１ｂの焦点距離ｆ、撮像レンズ５１１ａと撮像レンズ５１１ｂとの間の長さである基線長Ｂ、および視差値ｄｐを用いて、下記の（式２）により、距離Ｚを算出することができる。
【００１６】
Ｚ＝（Ｂ×ｆ）／ｄｐ                                                  （式２）
【００１７】
この（式２）により、視差値ｄｐが大きいほど距離Ｚは小さく、視差値ｄｐが小さいほど距離Ｚは大きくなることがわかる。
【００１８】
（ＳＧＭ法）
次に、図２〜６を用いて、ＳＧＭ法を用いた測距方法について説明する。
【００１９】
図２は、基準画像、高密度視差画像およびエッジ視差画像を示す概念図である。このうち、図２（ａ）は、基準画像を示し、図２（ｂ）は、図２（ａ）に示す基準画像を用いて求められた高密度視差画像を示し、図２（ｃ）は、図２（ａ）に示す基準画像を用いて求められたエッジ視差画像を示す概念図である。ここで、基準画像は、図１に示す基準画像Ｉｂに相当し、撮像された被写体が輝度値によって表された画像である。また、高密度視差画像とは、基準画像の各画素を、ＳＧＭ法によって導出された基準画像における各画素に対応する視差値で表した画像を示すものとする。そして、エッジ視差画像は、基準画像の各画素を、ブロックマッチング法によって導出された基準画像における各画素に対応する視差値で表した画像を示すものとする。ただし、ブロックマッチング法によって導出できる視差値は、後述するように、基準画像におけるエッジ部のような比較的テクスチャの強い部分であり、テクスチャの弱い部分のように視差値を導出できない場合は、例えば視差値を「０」として画像を構成する。
【００２０】
ＳＧＭ法は、画像におけるテクスチャが弱い部分に対しても適切に視差値を導出するための方法であり、図２（ａ）に示す基準画像に基づいて、図２（ｂ）に示す高密度視差画像を導出する方法である。なお、ブロックマッチング法は、図２（ａ）に示す基準画像に基づいて、図２（ｃ）に示すエッジ視差画像を導出する方法である。ＳＧＭ法によれば、図２（ｂ）および図２（ｃ）における破線の楕円内を比べると分かるように、高密度視差画像は、エッジ視差画像に比べてテクスチャが弱い道路等においても詳細な視差値に基づく距離を表すことができるため、より詳細な測距を行うことができる。
【００２１】
ＳＧＭ法は、基準画像に対する比較画像上の、一致度としてのコスト値を算出して直ちに視差値を導出せず、コスト値を算出後、さらに、合成コスト値を算出することで視差値を導出する方法である。そして、ＳＧＭ法は、最終的に、基準画像におけるほぼ全ての画素に対応する視差値で表された視差画像（ここでは、高密度視差画像）を導出する。
【００２２】
なお、ブロックマッチング法の場合は、コスト値を算出する点はＳＧＭ法と同じであるが、ＳＧＭ法のように、合成コスト値を算出せずに、エッジ部のような比較的テクスチャの強い部分の視差値のみが導出される。
【００２３】
＜コスト値の算出＞
図３は、基準画像における基準画素に対応する比較画像における対応画素を求める場合の説明図である。図４は、シフト量とコスト値との関係の一例を示すグラフである。図３および図４を参照しながら、コスト値Ｃ（ｐ，ｄ）の算出方法について説明する。なお、以降、Ｃ（ｐ，ｄ）はＣ（ｘ，ｙ，ｄ）を表すものとして説明する。
【００２４】
図３のうち、図３（ａ）は、基準画像における基準画素を示す概念図を示し、図３（ｂ）は、図３（ａ）に示す基準画素に対応する比較画像における対応画素の候補を順次シフトしながら（ずらしながら）、コスト値を算出する際の概念図である。ここで、対応画素とは、基準画像における基準画素に最も類似する比較画像における画素を示す。また、コスト値とは、基準画像における基準画素に対する、比較画像における各画素の一致度を表す評価値である。すなわち、以下に示すコスト値（および合成コスト値）は、値が小さいほど、比較画像における画素が基準画素と類似していることを示す。
【００２５】
図３（ａ）に示すように、基準画像Ｉｂにおける基準画素ｐ（ｘ，ｙ）、および、基準画素ｐ（ｘ，ｙ）に対する比較画像Ｉａにおけるエピポーラ線ＥＬ上の対応画素の候補である候補画素ｑ（ｘ＋ｄ，ｙ）の各輝度値に基づいて、基準画素ｐ（ｘ，ｙ）に対する対応画素の候補画素ｑ（ｘ＋ｄ，ｙ）のコスト値Ｃ（ｐ，ｄ）が算出される。ｄは、基準画素ｐと候補画素ｑとのシフト量（ずれ量）であり、シフト量ｄは、画素単位でシフトされる。すなわち、図３では、候補画素ｑ（ｘ＋ｄ，ｙ）を予め指定された範囲（例えば、０＜ｄ＜２５）において順次一画素分シフトしながら、候補画素ｑ（ｘ＋ｄ，ｙ）と基準画素ｐ（ｘ，ｙ）との輝度値の一致度であるコスト値Ｃ（ｐ，ｄ）が算出される。
【００２６】
なお、上述のように、撮像装置５１０ａ、５１０ｂは、それぞれ平行等位に配置されるため、比較画像Ｉａおよび基準画像Ｉｂも、それぞれ平行等位の関係にある。したがって、基準画像Ｉｂにおける基準画素ｐに対応する比較画像Ｉａにおける対応画素は、図３に紙面視横方向の線として示されるエピポーラ線ＥＬ上に存在することになり、比較画像Ｉａにおける対応画素を求めるためには、比較画像Ｉａのエピポーラ線ＥＬ上の画素を探索すればよい。
【００２７】
このようにして算出されたコスト値Ｃ（ｐ，ｄ）は、シフト量ｄとの関係で、図４に示すグラフにより表される。図４の例では、コスト値Ｃは、シフト量ｄ＝５，１２，１９の場合が「０」となるため、最小値を求めることができない。例えば、画像におけるテクスチャが弱い部分がある場合には、このようにコスト値Ｃの最小値を求めることは困難になる。
【００２８】
＜合成コスト値の算出＞
図５は、合成コストを導出するための概念図である。図６は、シフト量と合成コスト値との関係の一例を示すグラフである。図５および図６を参照しながら、合成コスト値Ｌｓ（ｐ，ｄ）の算出方法について説明する。
【００２９】
合成コスト値の算出は、コスト値Ｃ（ｐ，ｄ）の算出だけでなく、基準画素ｐ（ｘ，ｙ）の周辺の画素を基準画素とした場合のコスト値を、基準画素ｐ（ｘ，ｙ）におけるコスト値Ｃ（ｐ，ｄ）に集約させて、合成コスト値Ｌｓ（ｐ，ｄ）を算出するものである。合成コスト値Ｌｓ（ｐ，ｄ）を算出するためには、まず、経路コスト値Ｌｒ（ｐ，ｄ）を算出する。経路コスト値Ｌｒ（ｐ，ｄ）は、下記の（式３）によって算出する。
【００３０】
Ｌｒ（ｐ，ｄ）＝Ｃ（ｐ，ｄ）＋ｍｉｎ（Ｌｒ（ｐ−ｒ，ｋ）＋Ｐ（ｄ，ｋ））
（式３）
（Ｐ＝０（ｄ＝ｋの場合）、
Ｐ＝Ｐ１（｜ｄ−ｋ｜＝１の場合）、
Ｐ＝Ｐ２（＞Ｐ１）（｜ｄ−ｋ｜＞１の場合））
【００３１】
（式３）に示すように経路コスト値Ｌｒは、再帰的に求められる。ここで、ｒは、集約方向の方向ベクトルを示し、ｘ方向およびｙ方向の２成分を有する。ｍｉｎ（）は、最小値を求める関数である。Ｌｒ（ｐ−ｒ，ｋ）は、基準画素ｐの座標からｒ方向に１画素シフトした座標の画素について、シフト量を変化させた場合（この場合のシフト量をｋとしている）のそれぞれの経路コスト値Ｌｒを示す。そして、経路コスト値Ｌｒ（ｐ，ｄ）のシフト量であるｄと、シフト量ｋとの間の関係に基づいて、下記の（１）〜（３）のように値Ｐ（ｄ，ｋ）を求め、Ｌｒ（ｐ−ｒ，ｋ）＋Ｐ（ｄ，ｋ）を算出している。
【００３２】
（１）ｄ＝ｋの場合、Ｐ＝０とする。すなわち、Ｌｒ（ｐ−ｒ，ｋ）＋Ｐ（ｄ，ｋ）＝Ｌｒ（ｐ−ｒ，ｋ）となる。
（２）｜ｄ−ｋ｜＝１の場合、Ｐ＝Ｐ１とする。すなわち、Ｌｒ（ｐ−ｒ，ｋ）＋Ｐ（ｄ，ｋ）＝Ｌｒ（ｐ−ｒ，ｋ）＋Ｐ１となる。
（３）｜ｄ−ｋ｜＞１の場合、Ｐ＝Ｐ２（＞Ｐ１）とする。すなわち、Ｌｒ（ｐ−ｒ，ｋ）＋Ｐ（ｄ，ｋ）＝Ｌｒ（ｐ−ｒ，ｋ）＋Ｐ２となる。
【００３３】
そして、ｍｉｎ（Ｌｒ（ｐ−ｒ，ｋ）＋Ｐ（ｄ，ｋ））は、ｋを様々な値に変化させた場合の、上述の（１）〜（３）で算出したＬｒ（ｐ−ｒ，ｋ）＋Ｐ（ｄ，ｋ）のうち最小の値を抽出した値となる。すなわち、比較画像Ｉａにおける基準画素ｐの座標の位置にある画素からｒ方向において隣接する画素（ｐ−ｒ）からシフト量ｋだけシフトした画素から離れた場合に、値Ｐ１または値Ｐ２（＞Ｐ１）を加算することにより、比較画像Ｉａにおける基準画素ｐの座標から離れた画素についての、シフト量ｄが不連続な経路コスト値Ｌｒの影響を受け過ぎないようにしている。また、値Ｐ１および値Ｐ２は、予め実験により定められた固定パラメータであり、経路上で隣接する基準画素の視差値が連続になりやすいようなパラメータになっている。例えば、Ｐ１＝４８、Ｐ２＝９６である。このように、比較画像Ｉａにおいてｒ方向の各画素における経路コスト値Ｌｒを求めるために、最初は、基準画素ｐ（ｘ，ｙ）の座標からｒ方向の一番端の画素から経路コスト値Ｌｒを求め、ｒ方向に沿って経路コスト値Ｌｒが求められる。
【００３４】
そして、図５に示すように、８方向（ｒ０、ｒ４５、ｒ９０、ｒ１３５、ｒ１８０、ｒ２２５、ｒ２７０およびｒ３１５）の経路コスト値ＬｒであるＬｒ０、Ｌｒ４５、Ｌｒ９０、Ｌｒ１３５、Ｌｒ１８０、Ｌｒ２２５、Ｌｒ２７０およびＬｒ３１５が求められ、最終的に下記の（式４）に基づいて、合成コスト値Ｌｓ（ｐ，ｄ）が求められる。
【００３５】
Ｌｓ（ｐ，ｄ）＝ΣＬｒ                                                （式４）
【００３６】
以上のようにして、算出された合成コスト値Ｌｓ（ｐ，ｄ）は、シフト量ｄとの関係で、図６に示すグラフによって表すことができる。図６の例では、合成コスト値Ｌｓは、シフト量ｄ＝３の場合が最小値となるため、視差値ｄｐ＝３として導出される。なお、上述の説明においては、ｒ方向の数を８個として説明しているが、これに限定されるものではない。例えば、８方向をさらに２つに分割して１６方向、または、３つに分割して２４方向等にしてもよい。あるいは、８方向のうちのいずれかの経路コスト値Ｌｒを求め、合成コスト値Ｌｓを算出するものとしてもよい。
【００３７】
［本実施の形態の具体的な説明］
以下、図７〜１６を用いて、本実施の形態の具体的な説明をする。ここでは、ステレオマッチング処理を行う視差値導出装置１が自動車に搭載される場合を例に説明する。
【００３８】
（視差値導出装置を備えた車両の概略構成）
図７は、本実施の形態に係る機器制御システムを車両に搭載した例を示す図である。図７を参照しながら、本実施の形態に係る機器制御システム５０を搭載した車両１００について説明する。図７のうち、図７（ａ）は、機器制御システム５０を搭載した車両１００の側面図であり、図７（ｂ）は、車両１００の正面図である。
【００３９】
図７に示すように、自動車である車両１００は、機器制御システム５０を備えている。機器制御システム５０は、車両１００の居室空間である車室に設置された視差値導出装置１と、制御装置５と、ステアリングホイール６と、ブレーキペダル７と、を備えている。
【００４０】
視差値導出装置１は、車両１００の進行方向を撮像する撮像機能を有し、例えば、車両１００のフロントウィンドウ内側のバックミラー近傍に設置される。視差値導出装置１は、詳細は後述するが、本体２と、本体２に固定された撮像部１０ａと、撮像部１０ｂとを備えている。撮像部１０ａ、１０ｂ（第１撮像手段、第２撮像手段）は、車両１００の進行方向の被写体を撮像できるように本体２に固定されている。
【００４１】
制御装置５は、視差値導出装置１から受信した視差画像の画像データに基づいて求まる視差値導出装置１から被写体までの距離情報により、各種車両制御を実行する。制御装置５は、車両制御の例として、視差値導出装置１から受信した視差画像の画像データに基づいて、ステアリングホイール６を含むステアリング系統（制御対象）を制御して障害物を回避するステアリング制御、または、ブレーキペダル７（制御対象）を制御して車両１００を減速および停止させるブレーキ制御等を実行する。
【００４２】
このような視差値導出装置１および制御装置５を含む機器制御システム５０のように、ステアリング制御またはブレーキ制御等の車両制御が実行されることによって、車両１００の運転の安全性を向上することができる。
【００４３】
なお、上述のように、視差値導出装置１は、車両１００の前方を撮像するものとしたが、これに限定されるものではない。すなわち、視差値導出装置１は、車両１００の後方または側方を撮像するように設置されるものとしてもよい。この場合、視差値導出装置１は、車両１００の後方の後続車、または側方を並進する他の車両等の位置を検出することができる。そして、制御装置５は、車両１００の車線変更時または車線合流時等における危険を検知して、上述の車両制御を実行することができる。また、制御装置５は、車両１００の駐車時等におけるバック動作において、視差値導出装置１によって検出された車両１００の後方の障害物の視差画像に基づいて、衝突の危険があると判断した場合に、上述の車両制御を実行することができる。
【００４４】
（視差値導出装置の構成）
図８は、本実施の形態に係る視差値導出装置の外観の一例を示す図である。図８に示すように、視差値導出装置１は、上述のように、本体２と、本体２に固定された撮像部１０ａと、撮像部１０ｂとを備えている。撮像部１０ａ、１０ｂは、本体２に対して平行等位に配置された一対の円筒形状のカメラで構成されている。また、説明の便宜上、図８に示す撮像部１０ａを「左」のカメラと称し、撮像部１０ｂを「右」のカメラと称するものとする。
【００４５】
＜視差値導出装置のハードウェア構成＞
図９は、本実施の形態に係る視差値導出装置のハードウェア構成の一例を示す図である。図９を参照しながら、視差値導出装置１のハードウェア構成について説明する。
【００４６】
図９に示すように、視差値導出装置１は、本体２と、撮像部１０ａと、撮像部１０ｂと、信号変換部２０ａと、信号変換部２０ｂと、画像処理部３０と、を備えている。
【００４７】
本体２は、視差値導出装置１の筐体を構成するものであり、撮像部１０ａ、１０ｂを固定して支持し、信号変換部２０ａ、２０ｂおよび画像処理部３０を内蔵する。
【００４８】
撮像部１０ａは、前方の被写体を撮像してアナログ形式の画像データを生成する処理部である。撮像部１０ａは、撮像レンズ１１ａと、絞り１２ａと、画像センサ１３ａと、を備えている。
【００４９】
撮像レンズ１１ａは、入射する光を屈折させて物体の像を画像センサ１３ａに結像させるための光学素子である。絞り１２ａは、撮像レンズ１１ａを通過した光の一部を遮ることによって、画像センサ１３ａに結像される光の量を調整する部材である。画像センサ１３ａは、撮像レンズ１１ａに入射し、絞り１２ａを通過した光を電気的なアナログ形式の画像データに変換する固体撮像素子である。画像センサ１３ａは、例えば、ＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅｓ）またはＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ  Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）によって実現される。
【００５０】
撮像部１０ｂは、前方の被写体を撮像してアナログ形式の画像データを生成する処理部である。撮像部１０ｂは、撮像レンズ１１ｂと、絞り１２ｂと、画像センサ１３ｂと、を備えている。撮像レンズ１１ｂ、絞り１２ｂおよび画像センサ１３ｂの機能は、それぞれ上述した撮像レンズ１１ａ、絞り１２ａおよび画像センサ１３ａの機能と同様である。また、撮像レンズ１１ａおよび撮像レンズ１１ｂは、左右のカメラが同一の条件で撮像されるように、それぞれのレンズ面が互いに同一平面上にあるように設置されている。
【００５１】
信号変換部２０ａは、撮像部１０ａにより生成されたアナログ形式の画像データを、デジタル形式の画像データに変換する処理部である。信号変換部２０ａは、ＣＤＳ（Ｃｏｒｒｅｌａｔｅｄ  Ｄｏｕｂｌｅ  Ｓａｍｐｌｉｎｇ）２１ａと、ＡＧＣ（Ａｕｔｏ  Ｇａｉｎ  Ｃｏｎｔｒｏｌ）２２ａと、ＡＤＣ（Ａｎａｌｏｇ  Ｄｉｇｉｔａｌ  Ｃｏｎｖｅｒｔｅｒ）２３ａと、フレームメモリ２４ａと、を備えている。
【００５２】
ＣＤＳ２１ａは、画像センサ１３ａにより生成されたアナログ形式の画像データに対して、相関二重サンプリング、横方向の微分フィルタ、および縦方向の平滑フィルタ等によりノイズを除去する。ＡＧＣ２２ａは、ＣＤＳ２１ａによってノイズが除去されたアナログ形式の画像データの強度を制御する利得制御を行う。ＡＤＣ２３ａは、ＡＧＣ２２ａによって利得制御されたアナログ形式の画像データをデジタル形式の画像データに変換する。フレームメモリ２４ａは、ＡＤＣ２３ａによって変換された画像データを記憶する。
【００５３】
信号変換部２０ｂは、撮像部１０ｂにより生成されたアナログ形式の画像データを、デジタル形式の画像データに変換する処理部である。信号変換部２０ｂは、ＣＤＳ２１ｂと、ＡＧＣ２２ｂと、ＡＤＣ２３ｂと、フレームメモリ２４ｂと、を備えている。ＣＤＳ２１ｂ、ＡＧＣ２２ｂ、ＡＤＣ２３ｂおよびフレームメモリ２４ｂの機能は、それぞれ上述したＣＤＳ２１ａ、ＡＧＣ２２ａ、ＡＤＣ２３ａおよびフレームメモリ２４ａの機能と同様である。
【００５４】
画像処理部３０は、信号変換部２０ａおよび信号変換部２０ｂによって変換された画像データに対して画像処理をする装置である。画像処理部３０は、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）３１と、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３２と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３３と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３４と、通信Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）３５と、バス３９と、を備えている。
【００５５】
ＦＰＧＡ３１は、集積回路であり、画像データに基づく画像における視差値ｄｐを導出する処理を行う。ＣＰＵ３２は、視差値導出装置１の各機能を制御する。ＲＯＭ３３は、ＣＰＵ３２が視差値導出装置１の各機能を制御するために実行する画像処理用プログラムを記憶している。ＲＡＭ３４は、ＣＰＵ３２のワークエリアとして使用される。通信Ｉ／Ｆ３５は、外部コントローラ等と通信するためのインターフェースであり、図７に示す制御装置５が接続される。
【００５６】
なお、通信Ｉ／Ｆ３５には、例えば、自動車のＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、または、撮像画像または視差画像を表示する液晶ディスプレイまたは有機ＥＬ（Ｅｌｅｃｔｒｏ−Ｌｕｍｉｎｅｓｃｅｎｃｅ）ディスプレイ等の表示装置等が接続されてもよい。また、画像処理部３０は、視差値ｄｐを導出する集積回路としてＦＰＧＡ３１を備えるものとしているが、これに限定されるものではなく、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）等の集積回路であってもよい。
【００５７】
バス３９は、図９に示すように、ＦＰＧＡ３１、ＣＰＵ３２、ＲＯＭ３３、ＲＡＭ３４および通信Ｉ／Ｆ３５が互いに通信可能となるように接続するアドレスバスおよびデータバス等である。
【００５８】
なお、上述の画像処理用プログラムは、インストール可能な形式または実行可能な形式のファイルで、コンピュータで読み取り可能な記録媒体に記録して流通させてもよい。この記録媒体は、ＣＤ−ＲＯＭまたはＳＤカード等である。
【００５９】
＜視差値導出装置のブロック構成および各ブロックの動作＞
図１０は、本実施の形態に係る視差値導出装置のブロック構成の一例を示す図である。図１１は、基準画像の基準画素に対応する比較画像の対応画素を求める場合にローパスフィルタを切り替える動作を説明する図である。図１２は、本実施の形態におけるシフト量と合成コスト値との関係の一例を示すグラフである。図１３は、パラボラフィッティングによるサブピクセル推定を説明する図である。図１４は、最小二乗法によるサブピクセル推定を説明する図である。図１５は、本実施の形態のステレオマッチング処理によって求められる高密度視差画像の一例を示す概念図である。図１０〜１５を参照しながら、視差値導出装置１の要部のブロック構成および各ブロックの動作について説明する。
【００６０】
図１０に示すように、視差値導出装置１は、画像取得部１１０と、変換部２１０と、コスト算出部３１０と、コスト合成部３２０（合成手段）と、サブピクセル推定部３３０（導出手段）と、記憶部３４０（記憶手段）と、生成部３５０と、を備えている。
【００６１】
画像取得部１１０は、左右２台のカメラにより前方の被写体を撮像して、それぞれアナログ形式の画像データを生成し、各画像データ基づく画像である２つの輝度画像を得る処理部である。画像取得部１１０は、図９に示す撮像部１０ａおよび撮像部１０ｂによって実現される。
【００６２】
変換部２１０は、画像取得部１１０により得られた２つの輝度画像の画像データに対して、ノイズを除去し、デジタル形式の画像データに変換して出力する。ここで、変換部２１０が出力する２つの輝度画像の画像データ（以下、単に「輝度画像」と称する）のうち、画像取得部１１０の右のカメラ（撮像部１０ｂ）により撮像された画像データを基準画像Ｉｂの画像データ（以下、単に「基準画像Ｉｂ」という）とし、左のカメラ（撮像部１０ａ）により撮像された画像データを比較画像Ｉａの画像データ（以下、単に「比較画像Ｉａ」という）とする。すなわち、変換部２１０は、画像取得部１１０から出力された２つの輝度画像に基づいて、基準画像Ｉｂおよび比較画像Ｉａを出力する。変換部２１０は、図９に示す信号変換部２０ａ、２０ｂによって実現される。
【００６３】
記憶部３４０は、コスト算出部３１０において、比較画像Ｉａにおいて、基準画素ｐ（ｘ，ｙ）に対する対応画素の候補画素ｑ（ｘ＋ｄ，ｙ）のコスト値Ｃ（ｐ，ｄ）を算出するために、基準画素ｐおよび候補画素ｑに対して施すローパスフィルタのデータ（以下、単に、ローパスフィルタという）（例えば、後述の図１１に示すローパスフィルタＦ１、Ｆ２）を記憶している。記憶部３４０は、基準画素ｐと候補画素ｑとのシフト量ｄにより定まるローパスフィルタを記憶している。また、記憶部３４０は、コスト算出部３１０がシフト量ｄに応じてどのローパスフィルタを使用するかの判定基準になるシフト量ｄに対する閾値のデータを記憶している。例えば、記憶部３４０は、実験等に基づいて予め定められた閾値Ｔｈ１、Ｔｈ２（＞Ｔｈ１）を記憶しているものとする。この閾値Ｔｈ１、Ｔｈ２については、後述する。
【００６４】
コスト算出部３１０は、基準画像Ｉｂにおける基準画素ｐ（ｘ，ｙ）（第１基準領域）の輝度値、および、基準画素ｐ（ｘ，ｙ）に基づく比較画像Ｉａにおけるエピポーラ線上で、基準画素ｐ（ｘ，ｙ）の位置に相当する画素からシフト量ｄでシフトすることにより特定される、対応画素の候補である候補画素ｑ（ｘ＋ｄ，ｙ）の各輝度値に基づいて、各候補画素ｑ（ｘ＋ｄ，ｙ）のコスト値Ｃ（ｐ，ｄ）を算出する。コスト算出部３１０は、フィルタ部３１０ａ（フィルタリング手段）と、算出部３１０ｂ（算出手段）と、を有する。コスト算出部３１０は、図９に示すＦＰＧＡ３１によって実現される。
【００６５】
フィルタ部３１０ａは、まず、記憶部３４０から閾値Ｔｈ１、Ｔｈ２を読み出して取得する。フィルタ部３１０ａは、基準画像Ｉｂの基準画素ｐ（ｘ，ｙ）と比較する比較画像Ｉａの候補画素ｑ（ｘ＋ｄ，ｙ）のシフト量ｄが、閾値Ｔｈ１未満である場合、基準画素ｐおよび候補画素ｑに対応する被写体は遠いものであると判断する。この場合、フィルタ部３１０ａは、記憶部３４０から１×１次元、かつ、フィルタ係数が「１」のローパスフィルタを読み出し、基準画素ｐおよび候補画素ｑに対して、読み出したローパスフィルタによるフィルタ処理（コンボリューション演算（畳み込み演算））を行う。具体的には、この場合、フィルタ部３１０ａは、基準画素ｐおよび候補画素ｑの輝度値と、ローパスフィルタのフィルタ係数「１」との積を算出、すなわち、基準画素ｐおよび候補画素ｑの輝度値そのものを、それぞれフィルタ処理後の基準画素ｐおよび候補画素ｑの輝度値として求める。なお、この場合、フィルタ部３１０ａによるフィルタ処理は、基準画素ｐおよび候補画素ｑの輝度値そのものが求まるので、１×１次元のフィルタ処理をしないものとしてもよい。
【００６６】
また、フィルタ部３１０ａは、図１１（ａ）に示すように、基準画像Ｉｂの基準画素ｐ（ｘ，ｙ）と比較する比較画像Ｉａの候補画素ｑ（ｘ＋ｄ１，ｙ）のシフト量ｄ１が、閾値Ｔｈ１以上閾値Ｔｈ２未満である場合、基準画素ｐおよび候補画素ｑに対応する被写体は中距離のものであると判断する。この場合、フィルタ部３１０ａは、記憶部３４０から１×３次元、かつ、フィルタ係数が「１／３」のローパスフィルタＦ１を読み出し、基準画素ｐおよび候補画素ｑに対して、読み出したローパスフィルタＦ１によるフィルタ処理（コンボリューション演算（畳み込み演算））を行う。具体的には、この場合、フィルタ部３１０ａは、基準画素ｐおよび基準画素ｐの左右の画素の３つの輝度値と、ローパスフィルタＦ１とのコンボリューション演算を行い、フィルタ処理後の基準画素ｐの輝度値を求める。これは、基準画素ｐおよび基準画素ｐの左右の画素の３つの輝度値の平均値を求めていることになる。また、同様に、フィルタ部３１０ａは、候補画素ｑおよび候補画素ｑの左右の輝度値の３つの輝度値と、ローパスフィルタＦ１とのコンボリューション演算を行い、フィルタ処理後の候補画素ｑの輝度値を求める。これは、候補画素ｑおよび候補画素ｑの左右の画素の３つの輝度値の平均値を求めていることになる。
【００６７】
また、フィルタ部３１０ａは、図１１（ｂ）に示すように、基準画像Ｉｂの基準画素ｐ（ｘ，ｙ）と比較する比較画像Ｉａの候補画素ｑ（ｘ＋ｄ２，ｙ）のシフト量ｄ２が、閾値Ｔｈ２以上である場合、基準画素ｐおよび候補画素ｑに対応する被写体は近いものであると判断する。この場合、フィルタ部３１０ａは、記憶部３４０から１×５次元、かつ、フィルタ係数が「１／５」のローパスフィルタＦ２を読み出し、基準画素ｐおよび候補画素ｑに対して、読み出したローパスフィルタＦ２によるフィルタ処理（コンボリューション演算（畳み込み演算））を行う。具体的には、この場合、フィルタ部３１０ａは、基準画素ｐ、および基準画素ｐの左右２つずつの画素の５つの輝度値と、ローパスフィルタＦ２とのコンボリューション演算を行い、フィルタ処理後の基準画素ｐの輝度値を求める。これは、基準画素ｐ、および基準画素ｐの左右２つずつの画素の５つの輝度値の平均値を求めていることになる。また、同様に、フィルタ部３１０ａは、候補画素ｑおよび候補画素ｑの左右２つずつの輝度値の５つの輝度値と、ローパスフィルタＦ２とのコンボリューション演算を行い、フィルタ処理後の候補画素ｑの輝度値を求める。これは、候補画素ｑ、および候補画素ｑの左右２つずつの画素の５つの輝度値の平均値を求めていることになる。
【００６８】
なお、上述の閾値の数、およびローパスフィルタの次元は例示であり、その他の閾値によりシフト量ｄの範囲を定め、それぞれのシフト量ｄの範囲に応じたローパスフィルタを適用するものとしてもよい。また、ローパスフィルタは、１次元のローパスフィルタとしたが、これに限定されるものではなく、ｍ×ｎ次元（ｍ，ｎ≧１）のローパスフィルタとしてもよい。ただし、上述のようにローパスフィルタを１次元とすることによってフィルタ処理の演算負荷を軽減することができる。
【００６９】
算出部３１０ｂは、フィルタ部３１０ａによりローパスフィルタを用いてフィルタ処理が行われた後の基準画素ｐおよび候補画素ｑの輝度値に基づいて、候補画素ｑのコスト値Ｃを算出する。算出部３１０ｂが算出するコスト値Ｃとしては、例えば、ＳＡＤ（Ｓｕｍ  ｏｆ  Ａｂｓｏｌｕｔｅ  Ｄｉｆｆｅｒｅｎｃｅｓ）、またはＳＳＤ（Ｓｕｍ  ｏｆ  Ｓｑｕａｒｅｄ  Ｄｉｆｆｅｒｅｎｃｅｓ）等を用いることができる。例えば、算出部３１０ｂが算出するコスト値Ｃとして、ＳＡＤを用いる場合、基準画素ｐおよび候補画素ｑそれぞれを中心に、例えば、３×３の領域をブロックとして想定する場合、このブロックに含まれる画素それぞれに対して、フィルタ部３１０ａによる上述のフィルタ処理を行う必要がある。そして、シフト量ｄと、算出部３１０ｂにより算出されたコスト値Ｃとの関係を示すグラフが、例えば、上述の図４に示すグラフである。このように、コスト算出部３１０は、基準画像Ｉｂおよび比較画像Ｉａを構成する画素の輝度値そのものを使用するのではなく、この輝度値に対して、シフト量ｄに応じたサイズのローパスフィルタによるフィルタ処理を行った後の輝度値に基づいてコスト値Ｃを算出する。具体的には、同じ被写体であれば、視差値導出装置１から遠い位置にある場合は小さく、近い位置にある場合は大きく撮像されることから、シフト量ｄが小さい（被写体が遠い）場合、サイズの小さいローパスフィルタを用い、シフト量ｄが大きい（被写体が近い）場合、サイズの大きいローパスフィルタを用いる。このように、シフト量ｄに大きさに応じて、適用するローパスフィルタのサイズを変えるので、導出される視差値の精度を向上させることができる。
【００７０】
コスト合成部３２０は、基準画像Ｉｂにおける基準画素ｐ（ｘ，ｙ）の周辺の画素を基準画素とした場合のその基準画素についての比較画像Ｉａにおける画素のコスト値Ｃを、コスト算出部３１０により算出された候補画素ｑ（ｘ＋ｄ，ｙ）のコスト値Ｃ（ｐ，ｄ）に集約させて、候補画素ｑ（ｘ＋ｄ，ｙ）の合成コスト値Ｌｓ（ｐ，ｄ）（合成一致度）を算出する。コスト合成部３２０は、図９に示すＦＰＧＡ３１によって実現される。
【００７１】
具体的には、コスト合成部３２０は、合成コスト値Ｌｓを算出するために、まず、上述の（式３）によって、所定のｒ方向の経路コスト値Ｌｒ（ｐ，ｄ）を算出する。この場合、（式３）におけるＬｒ（ｐ−ｒ，ｋ）は、基準画素ｐの座標からｒ方向に１画素シフトした座標の画素について、シフト量を変化させた場合（この場合のシフト量をｋとしている）のそれぞれの経路コスト値Ｌｒを示す。次に、コスト合成部３２０は、図５に示したように、８方向の経路コスト値ＬｒであるＬｒ０、Ｌｒ４５、Ｌｒ９０、Ｌｒ１３５、Ｌｒ１８０、Ｌｒ２２５、Ｌｒ２７０およびＬｒ３１５を算出し、最終的に上述の（式４）に基づいて、合成コスト値Ｌｓ（ｐ，ｄ）を算出する。そして、シフト量ｄと、コスト合成部３２０により算出された合成コスト値Ｌｓとの関係を示すグラフが、図１２に示すグラフである。図１２に示すように、合成コスト値Ｌｓは、シフト量ｄ＝３のとき最小値となる。
【００７２】
サブピクセル推定部３３０は、コスト合成部３２０により算出された、基準画像Ｉｂにおける基準画素についての比較画像Ｉａにおける画素の合成コスト値Ｌｓの最小値（極値）に対応するシフト量ｄ、およびそれに隣接するシフト量ｄにおける合成コスト値Ｌｓに基づいて、サブピクセル推定を実行する。サブピクセル推定部３３０は、図９に示すＦＰＧＡ３１によって実現される。図１３に示す合成コスト値Ｌｓのグラフは、画素単位のシフト量ｄに対する合成コスト値Ｌｓのグラフである。したがって、図１３に示すグラフの合成コスト値Ｌｓの最小値は、画素単位で区切られたシフト量ｄ＝３における合成コスト値Ｌｓということになる。すなわち、図１３に示すような画素単位で区切られたシフト量ｄに対する合成コスト値Ｌｓのグラフにおいては、視差値ｄｐとして画素単位の値を導出することしかできないことになる。ここで、サブピクセル推定とは、視差値ｄｐを画素単位の値ではなく、画素より小さい単位（以下、サブピクセル単位という）で視差値ｄｐを推定して導出するものである。
【００７３】
まず、図１３を参照しながら、サブピクセル推定部３３０がパラボラフィッティングによるサブピクセル推定を実行する場合について説明する。サブピクセル推定部３３０は、コスト合成部３２０によって算出された合成コスト値Ｌｓのグラフ（図１２参照）において、合成コスト値Ｌｓが最小となるシフト量ｄの値を求める。図１２の例では、シフト量ｄ＝３の場合が、合成コスト値Ｌｓが最小となる。次に、サブピクセル推定部３３０は、シフト量ｄ＝３に隣接するシフト量ｄを求める。具体的には、シフト量ｄ＝２，４である。次に、サブピクセル推定部３３０は、図１２に示すシフト量ｄと合成コスト値Ｌｓとのグラフにおいて、図１３に示すように、シフト量ｄ＝２，３，４である３点を通る下に凸の２次曲線を求める。そして、サブピクセル推定部３３０は、その２次曲線の極小値に対応するサブピクセル単位のシフト量ｄが視差値ｄｐであると推定する。
【００７４】
次に、図１４を参照しながら、サブピクセル推定部３３０が最小二乗法によるサブピクセル推定を実行する場合について説明する。サブピクセル推定部３３０は、コスト合成部３２０によって算出された合成コスト値Ｌｓのグラフ（図１２参照）において、合成コスト値Ｌｓが最小となるシフト量ｄの値を求める。図１２の例では、シフト量ｄ＝３の場合が、合成コスト値Ｌｓが最小となる。次に、サブピクセル推定部３３０は、シフト量ｄ＝３の近傍の４つのシフト量ｄを求める。具体的には、シフト量ｄ＝１，２，４，５である。次に、サブピクセル推定部３３０は、図１２に示すシフト量ｄと合成コスト値Ｌｓとのグラフにおいて、図１４に示すように、最小二乗法によってシフト量ｄ＝１，２，３，４，５である５点の近傍を通る下に凸の２次曲線を求める。そして、サブピクセル推定部３３０は、その２次曲線の極小値に対応するサブピクセル単位のシフト量ｄが視差値ｄｐであると推定する。
【００７５】
サブピクセル推定部３３０は、図１３に示すパラボラフィッティングによるサブピクセル推定、または、図１４に示す最小二乗法によるサブピクセル推定のいずれかによって、視差値ｄｐを推定して導出する。これによって、画素より小さい単位であるサブピクセル単位で視差値ｄｐを導出することができるので、精度が高く、かつ密な視差値ｄｐを導出することができる。
【００７６】
なお、サブピクセル推定は、上述のパラボラフィッティングによるもの、または、最小二乗法によるものに限定されるものではなく、その他の方法によってサブピクセル推定を行うものとしてもよい。例えば、サブピクセル推定部３３０は、図１３に示す３点を用いて、２次曲線ではなく、３点を通る等角直線を求めて視差値ｄｐを推定する等角直線フィッティングによりサブピクセル推定を実行するものとしてもよい。
【００７７】
また、最小二乗法によるサブピクセル推定において、図１４に示すグラフ上の５点を用いて２次曲線を求めるものとしたが、これに限定されるものではなく、異なる数の点を用いて２次曲線を求めるものとしてもよい。
【００７８】
また、サブピクセル推定部３３０によるサブピクセル推定によってサブピクセル単位の視差値ｄｐを算出することに限定されるものではなく、サブピクセル推定の実行はせずに、画素単位の視差値ｄｐを算出するものとしてもよい。この場合、サブピクセル推定部３３０は、コスト合成部３２０により算出された、基準画像Ｉｂにおける基準画素についての比較画像Ｉａにおける画素の合成コスト値Ｌｓの最小値に対応するシフト量ｄを視差値ｄｐとすればよい。
【００７９】
生成部３５０は、サブピクセル推定部３３０により導出されたサブピクセル単位の視差値ｄｐに基づいて、基準画像Ｉｂの各画素の輝度値を、その画素に対応する視差値ｄｐで表した画像である視差画像Ｉｐ（高密度視差画像）を生成する。生成部３５０は、図９に示すＦＰＧＡ３１によって実現される。図１５のうち、図１５（ａ）は、比較画像Ｉａの一例を示し、図１５（ｂ）は、基準画像Ｉｂの一例を示し、図１５（ｃ）は、生成部３５０により生成された視差画像Ｉｐの模式図を示す。
【００８０】
なお、コスト算出部３１０、コスト合成部３２０、サブピクセル推定部３３０および生成部３５０は、ＦＰＧＡ３１によって実現、すなわちハードウェア回路によって実現されるものとしたが、これに限定されるものではない。すなわち、コスト算出部３１０、コスト合成部３２０、サブピクセル推定部３３０または生成部３５０の少なくともいずれかは、ソフトウェアであるプログラムがＣＰＵ３２によって実行されることにより、実現されてもよい。また、コスト算出部３１０、コスト合成部３２０、サブピクセル推定部３３０および生成部３５０は、機能を概念的にブロック構成したものであって、このような構成に限定されるものではない。例えば、図１０で独立した機能部として図示した複数の機能部を、１つの機能部として構成してもよい。一方、図１０の１つの機能部が有する機能を複数の分割し、複数の機能部として構成するものとしてもよい。
【００８１】
（視差値導出装置の画像処理動作）
図１６は、本実施の形態に係る視差値導出装置のステレオマッチング処理の動作の一例を示すフローチャートである。図１６を参照しながら、視差値導出装置１のステレオマッチング処理（ＳＧＭ法）に基づく画像処理の動作の流れについて説明する。
【００８２】
＜ステップＳ１−１＞
視差値導出装置１の画像取得部１１０は、左のカメラ（撮像部１０ａ）により前方の被写体を撮像して、それぞれアナログ形式の画像データを生成し、その画像データに基づく画像である輝度画像を得る。これによって、後段の画像処理の対象となる画像データが得られることになる。そして、ステップＳ２−１へ移行する。
【００８３】
＜ステップＳ１−２＞
視差値導出装置１の画像取得部１１０は、右のカメラ（撮像部１０ｂ）により前方の被写体を撮像して、それぞれアナログ形式の画像データを生成し、その画像データに基づく画像である輝度画像を得る。これによって、後段の画像処理の対象となる画像データが得られることになる。そして、ステップＳ２−２へ移行する。
【００８４】
＜ステップＳ２−１＞
視差値導出装置１の変換部２１０は、撮像部１０ａにより撮像されて得られたアナログ形式の画像データに対して、ノイズを除去し、デジタル形式の画像データに変換する。このように、デジタル形式の画像データに変換することによって、その画像データに基づく画像に対して画素ごとの画像処理が可能となる。そして、ステップＳ３−１へ移行する。
【００８５】
＜ステップＳ２−２＞
視差値導出装置１の変換部２１０は、撮像部１０ｂにより撮像されて得られたアナログ形式の画像データに対して、ノイズを除去し、デジタル形式の画像データに変換する。このように、デジタル形式の画像データに変換することによって、その画像データに基づく画像に対して画素ごとの画像処理が可能となる。そして、ステップＳ３−２へ移行する。
【００８６】
＜ステップＳ３−１＞
変換部２１０は、ステップＳ２−１において変換したデジタル形式の画像データに基づく画像をステレオマッチング処理における比較画像Ｉａとして出力する。これによって、ステレオマッチング処理において視差値を求めるための比較対象となる画像を得る。そして、ステップＳ４へ移行する。
【００８７】
＜ステップＳ３−２＞
変換部２１０は、ステップＳ２−２において変換したデジタル形式の画像データに基づく画像をステレオマッチング処理における基準画像Ｉｂとして出力する。これによって、ステレオマッチング処理において視差値を求めるための基準となる画像を得る。そして、ステップＳ４へ移行する。
【００８８】
＜ステップＳ４＞
視差値導出装置１のコスト算出部３１０のフィルタ部３１０ａは、基準画像Ｉｂの基準画素ｐ（ｘ，ｙ）と比較する比較画像Ｉａの候補画素ｑ（ｘ＋ｄ，ｙ）のシフト量ｄが、閾値Ｔｈ１未満であるか、閾値Ｔｈ１以上閾値Ｔｈ２未満であるか、閾値Ｔｈ２以上であるかを判定する。
【００８９】
フィルタ部３１０ａは、シフト量ｄが閾値Ｔｈ１未満であると判定した場合、記憶部３４０から１×１次元、かつ、フィルタ係数が「１」のローパスフィルタを読み出す。そして、フィルタ部３１０ａは、基準画素ｐおよび候補画素ｑに対して、読み出したローパスフィルタによるフィルタ処理（コンボリューション演算）を行い、フィルタ処理後の基準画素ｐおよび候補画素ｑの輝度値を求める。
【００９０】
また、フィルタ部３１０ａは、シフト量ｄが閾値Ｔｈ１以上閾値Ｔｈ２未満であると判定した場合、記憶部３４０から１×３次元、かつ、フィルタ係数が「１／３」のローパスフィルタＦ１を読み出す。そして、フィルタ部３１０ａは、基準画素ｐおよび候補画素ｑに対して、読み出したローパスフィルタＦ１によるフィルタ処理（コンボリューション演算）を行い、フィルタ処理後の基準画素ｐおよび候補画素ｑの輝度値を求める。
【００９１】
また、フィルタ部３１０ａは、シフト量ｄが閾値Ｔｈ２以上であると判定した場合、記憶部３４０から１×５次元、かつ、フィルタ係数が「１／５」のローパスフィルタＦ２を読み出す。そして、フィルタ部３１０ａは、基準画素ｐおよび候補画素ｑに対して、読み出したローパスフィルタＦ２によるフィルタ処理（コンボリューション演算）を行い、フィルタ処理後の基準画素ｐおよび候補画素ｑの輝度値を求める。
【００９２】
視差値導出装置１のコスト算出部３１０の算出部３１０ｂは、フィルタ部３１０ａによりローパスフィルタを用いてフィルタ処理が行われた後の基準画素ｐおよび候補画素ｑの輝度値に基づいて、候補画素ｑのコスト値Ｃを算出する。
【００９３】
このように、コスト算出部３１０は、基準画像Ｉｂおよび比較画像Ｉａを構成する画素の輝度値そのものを使用するのではなく、この輝度値に対して、シフト量ｄに応じたサイズのローパスフィルタによるフィルタ処理を行った後の輝度値に基づいてコスト値Ｃを算出する。そして、ステップＳ５へ移行する。
【００９４】
＜ステップＳ５＞
視差値導出装置１のコスト合成部３２０は、基準画像Ｉｂにおける基準画素ｐ（ｘ，ｙ）の周辺の画素を基準画素とした場合のその基準画素についての比較画像Ｉａにおける画素のコスト値Ｃを、コスト算出部３１０により算出された候補画素ｑ（ｘ＋ｄ，ｙ）のコスト値Ｃ（ｐ，ｄ）に集約させて、候補画素ｑ（ｘ＋ｄ，ｙ）の合成コスト値Ｌｓ（ｐ，ｄ）を算出する。このように、コスト合成部３２０は、コスト算出部３１０によりローパスフィルタを用いて算出されたコスト値Ｃを用いて合成コスト値Ｌｓを算出する。そして、ステップＳ６へ移行する。
【００９５】
＜ステップＳ６＞
視差値導出装置１のサブピクセル推定部３３０は、コスト合成部３２０により算出された、基準画像Ｉｂにおける基準画素についての比較画像Ｉａにおける画素の合成コスト値Ｌｓの最小値に対応するシフト量ｄに隣接するシフト量ｄにおける合成コスト値Ｌｓに基づいて、サブピクセル推定を実行する。サブピクセル推定部３３０は、サブピクセル推定によって求めた近似曲線（図１３および図１４においては下に凸の２次曲線）の極小値に対応するサブピクセル単位のシフト量ｄが視差値ｄｐであると推定する。推定された視差値ｄｐは、比較画像Ｉａにおける基準画素ｐに対応する被写体の部分までの距離を示す値となる。そして、ステップＳ７へ移行する。
【００９６】
＜ステップＳ７＞
視差値導出装置１の生成部３５０は、サブピクセル推定部３３０により導出されたサブピクセル単位の視差値ｄｐに基づいて、基準画像Ｉｂの各画素の輝度値を、その画素に対応する視差値ｄｐで表した画像である視差画像Ｉｐ（高密度視差画像）を生成する。
【００９７】
その後、図９に示されている通信Ｉ／Ｆ３５を介して、視差画像Ｉｐの画像データが出力され、視差値導出装置１の外部の装置（例えば、制御装置５）によって、視差画像Ｉｐに基づき撮像部１０ａ、１０ｂと物体との間の距離が算出される。算出された距離は、別プロセスで行われる物体認識処理の結果と併せて、車両のブレーキまたはステアリング等の制御に利用される。
【００９８】
（本実施の形態の主な効果）
以上のように、本実施の形態に係る視差値導出装置１のコスト算出部３１０は、基準画像Ｉｂおよび比較画像Ｉａを構成する画素の輝度値そのものを使用するのではなく、この輝度値に対して、シフト量ｄに応じたローパスフィルタによるフィルタ処理を行った後の輝度値に基づいてコスト値Ｃを算出するものとしている。具体的には、同じ被写体であれば、視差値導出装置１から遠い位置にある場合は小さく、近い位置にある場合は大きく撮像されることから、シフト量ｄが小さい（被写体が遠い）場合、サイズの小さいローパスフィルタを用い、シフト量ｄが大きい（被写体が近い）場合、サイズの大きいローパスフィルタを用いる。これによって、シフト量ｄの大きさに応じて、適用するローパスフィルタのサイズを変えるので、導出される視差値の精度を向上させることができる。
【００９９】
また、視差値導出装置１において、サブピクセル推定部３３０は、画素より小さい単位であるサブピクセル単位で視差値ｄｐを導出することができるので、精度が高く、かつ密な視差値ｄｐを導出することができ、より正確な視差画像を得ることができる。
【０１００】
なお、上述の実施の形態では、コスト合成部３２０は、コスト算出部３１０によりローパスフィルタを用いて算出されたコスト値Ｃを用いて合成コスト値Ｌｓを算出し、この合成コスト値Ｌｓに基づいて視差値ｄｐが求められるものとしているが、これに限定されるものではない。すなわち、コスト合成部３２０によりローパスフィルタを用いて算出されたコスト値Ｃに基づいて視差値ｄｐが求められるものとしてもよい。これによっても、導出される視差値の精度の向上が期待できる。ただし、コスト合成部３２０により、基準画素ｐの周辺の画素を基準画素とした場合のその基準画素についての比較画像Ｉａにおける画素のコスト値Ｃを、コスト算出部３１０により算出された候補画素ｑのコスト値Ｃ（ｐ，ｄ）に集約させて、候補画素ｑの合成コスト値Ｌｓ（ｐ，ｄ）が算出される場合、累積的に視差値の精度の向上が期待できる。
【０１０１】
また、上述の実施の形態では、一致度としてのコスト値Ｃは非類似度を表す評価値としているが、類似度を表す評価値であってもよい。この場合、合成コスト値Ｌｓがサブピクセル単位で最大（極値）となるシフト量ｄが視差値ｄｐとなる。
【０１０２】
また、上述の実施の形態では、説明の簡略化のために、画素単位でのマッチングで説明したが、これに限定されるものではなく、複数の画素からなる所定領域単位でマッチングされてもよい。この場合、基準画素を含む所定領域は基準領域として示され、対応画素を含む所定領域は対応領域として示され、対応画素の候補画素は候補領域として示される。また、この基準領域には基準画素のみの場合も含まれ、対応領域には対応画素のみの場合も含まれ、候補領域には候補画素のみの場合も含まれる。
【０１０３】
また、上述の実施の形態では、視差値導出装置１の外部の機器（例えば、制御装置５）が視差画像（視差値）に基づき、距離Ｚを算出しているが、これに限定されるものではなく、画像処理部３０のＣＰＵ３２が距離Ｚを算出するものとしてもよい。
【０１０４】
また、上述の実施の形態では、車両１００としての自動車に搭載される視差値導出装置１について説明したが、これに限定されるものではない。例えば、他の車両の一例としてバイク、自転車、車椅子または農業用の耕運機等の車両に搭載されるものとしてもよい。また、移動体の一例としての車両だけでなく、ロボット等の移動体であってもよい。
【０１０５】
さらに、ロボットは、移動体だけでなく、ＦＡ（Ｆａｃｔｏｒｙ  Ａｕｔｏｍａｔｉｏｎ）において固定設置される工業用ロボット等の装置であってもよい。また、固定設置される装置としては、ロボットだけでなく、防犯用の監視カメラ等であってもよい。
【０１０６】
なお、視差値導出装置１の変換部２１０、フィルタ部３１０ａ、算出部３１０ｂ、コスト合成部３２０、サブピクセル推定部３３０、および生成部３５０の少なくともいずれかがプログラムの実行によって実現される場合、そのプログラムは、ＲＯＭ等に予め組み込まれて提供される。本実施の形態の視差値導出装置１で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。また、本実施の形態の視差値導出装置１で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施の形態の視差値導出装置１で実行されるプログラムを、インターネット等のネットワーク経由で提供または配布するように構成してもよい。本実施の形態の視差値導出装置１で実行されるプログラムは、上述した各機能部のうち少なくともいずれかを含むモジュール構成となっており、実際のハードウェアとしてはＣＰＵ３２が上述のＲＯＭ３３からプログラムを読み出して実行することにより、上述の各機能部が主記憶装置（ＲＡＭ３４等）上にロードされて生成されるようになっている。
【符号の説明】
【０１０７】
１  視差値導出装置
２  本体
５  制御装置
６  ステアリングホイール
７  ブレーキペダル
１０ａ、１０ｂ  撮像部
１１ａ、１１ｂ  撮像レンズ
１２ａ、１２ｂ  絞り
１３ａ、１３ｂ  画像センサ
２０ａ、２０ｂ  信号変換部
２１ａ、２１ｂ  ＣＤＳ
２２ａ、２２ｂ  ＡＧＣ
２３ａ、２３ｂ  ＡＤＣ
２４ａ、２４ｂ  フレームメモリ
３０  画像処理部
３１  ＦＰＧＡ
３２  ＣＰＵ
３３  ＲＯＭ
３４  ＲＡＭ
３５  通信Ｉ／Ｆ
３９  バス
５０  機器制御システム
１００  車両
１１０  画像取得部
２１０  変換部
３１０  コスト算出部
３１０ａ  フィルタ部
３１０ｂ  算出部
３２０  コスト合成部
３３０  サブピクセル推定部
３４０  記憶部
３５０  生成部
５１０ａ、５１０ｂ  撮像装置
５１１ａ、５１１ｂ  撮像レンズ
Ｂ  基線長
Ｃ  コスト値
ｄ、ｄ１、ｄ２  シフト量
ｄｐ  視差値
Ｅ  物体
ＥＬ  エピポーラ線
ｆ  焦点距離
Ｆ１、Ｆ２  ローパスフィルタ
Ｉａ  比較画像
Ｉｂ  基準画像
Ｉｐ  視差画像
Ｌｒ  経路コスト値
Ｌｓ  合成コスト値
Ｓ、Ｓａ、Ｓｂ  点
Ｔｈ１、Ｔｈ２  閾値
Ｚ  距離
【先行技術文献】
【特許文献】
【０１０８】
【特許文献１】特開２０１２−１９８０７７号公報
【図１】
0006459482.tif 000002
【図２】
0006459482.tif 000003
【図３】
0006459482.tif 000004
【図４】
0006459482.tif 000005
【図５】
0006459482.tif 000006
【図６】
0006459482.tif 000007
【図７】
0006459482.tif 000008
【図８】
0006459482.tif 000009
【図９】
0006459482.tif 000010
【図１０】
0006459482.tif 000011
【図１１】
0006459482.tif 000012
【図１２】
0006459482.tif 000013
【図１３】
0006459482.tif 000014
【図１４】
0006459482.tif 000015
【図１５】
0006459482.tif 000016
【図１６】
0006459482.tif 000017