(57)【要約】【課題】視差マップや距離マップのフィルタ処理において、被写体のエッジを維持しつつ、視差の推定精度を向上させる。【解決手段】同一の被写体を異なる視点から撮影した複数の視差画像と同一のシーンの当該被写体までの距離に関する情報を表す距離画像を補正する画像処理装置であって、前記複数の視差画像間のマッチングの評価値を導出する評価値導出手段と、前記評価値に基づき、前記補正における重みを決定する重み決定手段と、前記距離画像における画素値を、前記重みを用いて補正する補正手段とを備えることを特徴とする。【選択図】図３
2017021759.tif 000002
【特許請求の範囲】
【請求項１】
同一の被写体を異なる視点から撮影した複数の視差画像と同一のシーンの当該被写体までの距離に関する情報を表す距離画像を補正する画像処理装置であって、
前記複数の視差画像間のマッチングの評価値を導出する評価値導出手段と、
前記評価値に基づき、前記補正における重みを決定する重み決定手段と、
前記距離画像における画素値を、前記重みを用いて補正する補正手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記評価値は、前記複数の視差画像における対応する画素同士の画素値の類似度を表すことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記複数の視差画像のうち基準とする視差画像における着目画素、及び前記重みの導出対象となる画素であって、前記着目画素を中心とした所定ブロック内に存在する周辺画素を決定する手段をさらに備え、
前記評価値導出手段は、決定された前記周辺画素に対応する、前記距離画像における画素値及び前記複数の視差画像における画素値を参照して、前記評価値を導出する
ことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
同一の被写体を異なる視点から撮影した複数の視差画像と同一のシーンの当該被写体までの距離に関する情報を表す距離画像を補正する画像処理装置であって、
前記複数の視差画像間のマッチングの評価値を導出する評価値導出手段と、
前記評価値に基づき、前記補正における重みを決定する重み決定手段と、
前記距離画像における画素値を、前記重みを用いて補正する補正手段であって、前記複数の視差画像におけるオクルージョン領域に対応する画素値については、前記評価値に基づいて決定された重みとは異なる重みを用いて補正する、補正手段と
を備えることを特徴とする画像処理装置。
【請求項５】
前記複数の視差画像のうち基準とする視差画像における着目画素、及び前記重みの導出対象となる画素であって、前記着目画素を中心とした所定ブロック内に存在する周辺画素を決定する手段をさらに備え、
前記評価値導出手段は、決定された前記周辺画素に対応する、前記距離画像における画素値及び前記複数の視差画像における画素値を参照して、前記評価値を導出し、
前記評価値に基づいて決定された重みとは異なる重みは、前記着目画素と前記周辺画素における色の違い及び前記着目画素と前記周辺画素との距離の少なくとも一方に基づいて導出される、
ことを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記距離画像は、前記複数の視差画像間における前記被写体の移動量を画素値で表現した視差マップであることを特徴とする請求項１乃至５のいずれか一項に記載の画像処理装置。
【請求項７】
前記距離画像は、前記複数の視差画像における前記被写体までの距離を画素値で表現した距離マップであることを特徴とする請求項１乃至５のいずれか一項に記載の画像処理装置。
【請求項８】
同一の被写体を異なる視点から撮影した複数の視差画像と同一のシーンの当該被写体までの距離に関する情報を表す距離画像を補正する画像処理方法であって、
前記複数の視差画像間のマッチングの評価値を導出するステップと、
前記評価値に基づき、前記補正における重みを決定するステップと、
前記距離画像における画素値を、前記重みを用いて補正するステップと
を含むことを特徴とする画像処理方法。
【請求項９】
コンピュータを、請求項１乃至７のいずれか一項に記載の画像処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、視差マップや距離マップを補正する技術に関する。
【背景技術】
【０００２】
被写体までの距離を画素値で表現した距離マップにおけるデータの欠損や非一様な誤差、信頼性の低い画素値などを補正する方法として、平滑化フィルタを用いたフィルタ処理がある。しかし、平滑化フィルタは、着目画素と周囲の画素との画素値の差を小さくするフィルタである。そのため、フィルタ処理により、被写体の境界部（エッジ）がぼけてしまうという問題がある。そこで、エッジの情報を失わずに画像を平滑化する方法として、エッジ保存型の平滑化フィルタが提案されている。特許文献１では、エッジ保存型の平滑化フィルタの一例として、クロス（またはジョイント）バイラテラルフィルタが開示されている。クロスバイラテラルフィルタは、補正対象の画像（入力画像）と同一のシーンに対応する、より高画質な画像（参照画像）を用意し、参照画像の各画素における輝度値の類似度に基づいてフィルタ処理に用いる重みを画素毎に決定するフィルタである。このクロスバイラテラルフィルタでは、入力画像よりもエッジがはっきりしている参照画像に基づいてフィルタ処理に用いる重みが決定されるため、入力画像のみを用いて重みを決定した場合よりも、エッジが鮮明な画像を得ることができる。そして、参照画像の各画素における輝度値の類似度に基づいてフィルタ処理に用いる重みを画素毎に決定することで、異なる被写体に対応する画素の寄与を小さくすることができ、エッジがより鮮明な画像を得ることができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許第８２５３７３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１に記載の技術の場合、輝度値が近い被写体同士ではその境界部（エッジ）がぼけてしまう領域が発生することがあった。また、同一被写体内においても距離値が連続的に変化するようなシーンにおいては、平滑化により、距離値の精度が劣化する可能性があった。そして、この問題は、被写体までの距離を表す上記距離マップだけでなく、任意視点における画像全体における視差量の分布を表す視差マップについても同様に当て嵌まる。そこで、本発明は、視差マップや距離マップのフィルタ処理において、被写体のエッジを維持しつつ、視差の推定精度を向上させることを目的とする。
【課題を解決するための手段】
【０００５】
本発明に係る画像処理装置は、同一の被写体を異なる視点から撮影した複数の視差画像と同一のシーンの当該被写体までの距離に関する情報を表す距離画像を補正する画像処理装置であって、前記複数の視差画像間のマッチングの評価値を導出する評価値導出手段と、前記評価値に基づき、前記補正における重みを決定する重み決定手段と、前記距離画像における画素値を、前記重みを用いて補正する補正手段とを備えることを特徴とする。
【発明の効果】
【０００６】
本発明によれば、視差マップや距離マップのフィルタ処理において、被写体のエッジを維持しつつ、視差の推定精度を向上させることができる。
【図面の簡単な説明】
【０００７】
【図１】画像処理装置のハードウェア構成を示す図である。
【図２】実施例１に係る、画像処理装置のソフトウェア構成を示す機能ブロック図である。
【図３】実施例１に係る、視差マップデータの補正処理の流れを示すフローチャートである。
【図４】視差画像と視差マップの一例を示す図である。
【図５】実施例１による補正処理の効果を示す図である。
【図６】実施例２に係る、画像処理装置のソフトウェア構成を示す機能ブロック図である。
【図７】実施例２に係る、視差マップデータの補正処理の流れを示すフローチャートである。
【図８】実施例２における重みの再導出を説明する図である。
【発明を実施するための形態】
【０００８】
以下、添付の図面を参照して、本発明を実施する形態について説明する。なお、以下の実施例において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
【０００９】
［実施例１］
本実施例では、視差マップ（モノクロ画像）をフィルタ処理によって補正する場合について述べる。フィルタ処理に用いる重み係数は、同一被写体を異なる視点から撮影されることで視差を有する複数の画像（以下、視差画像と呼ぶ）間の対応関係によって決定される。
【００１０】
ここで本明細書における用語の定義について確認しておく。本明細書において「距離マップ」とは、被写体までの距離を画素値で表現した画像をいい、「視差マップ」とは、複数の視差画像間における被写体の移動量（視差）を画素値で表現した画像をいう。視差の逆数に定数を乗じたものが被写体までの距離に相当するため、両者は同一のシーンにおける被写体までの距離に関する情報を表した画像という点で共通する。そこで、視差マップと距離マップの上位概念を表す用語として「距離画像」を用いることとする。なお、視差の逆数に乗じる上記定数は、複数視点で撮影するカメラ同士の間隔と焦点距離（pixel単位）の積を求めることで得ることができる。
【００１１】
以下では、水平方向に視差が発生している２枚の視差画像を用いて、視差マップを補正する場合を例に説明するものとする。しかしながら、後述のとおり使用する視差画像の枚数は３枚以上でもよく、また、水平方向以外の任意の方向に視差がついた場合についても同様に適用することが可能である。さらには、上述のとおり距離マップと視差マップとは被写体までの距離に関する情報を表した画像という点で共通するもので、相互に変換可能であるから、距離マップについても、視差マップの場合に準じて適用することができる。
【００１２】
図１は、本実施例に係る画像処理装置のハードウェア構成を示す図である。
【００１３】
画像処理装置１００は、ＣＰＵ１０１、ＲＡＭ１０２、ＲＯＭ１０３、記憶部１０４、入力インターフェース１０５、出力インターフェース１０６で構成され、これら各部がシステムバス１０７を介して接続されている。そして、入力インターフェース１０５には外部メモリ１０８が接続され、出力インターフェース１０６には表示装置１０９が接続されている。
【００１４】
ＣＰＵ１０１は、画像処理装置１００における上記各部を統括的に制御するプロセッサである。ＲＡＭ１０２は、ＣＰＵ１０１の主メモリ、ワークエリアとして機能するメモリである。そして、ＲＯＭ１０３は、様々な処理に用いられるプログラム等を格納するメモリである。ＣＰＵ１０１は、ＲＡＭ１０２をワークエリアとしてＲＯＭ１０３に格納されたプログラムを実行することで、後述する様々な処理を実行する。記憶部１０４は、各処理に用いる画像データや、各処理のためのパラメータなどを記憶する記憶デバイスである。記憶部１０４にはＨＤＤや光ディスクドライブ、フラッシュメモリなどが用いられる。
【００１５】
入力インターフェース１０５は、例えばＵＳＢやＩＥＥＥ１３９４などのシリアルバスインターフェースである。画像処理装置１００は、この入力インターフェース１０５を介して、外部メモリ１０８（例えば、ハードディスク、メモリカード、ＣＦカード、ＳＤカード、ＵＳＢメモリ）から処理対象の画像データ等を取得することができる。出力インターフェース１０６は、例えばＤＶＩやＨＤＭＩ（登録商標）などの映像出力端子である。画像処理装置１００は、この出力インターフェース１０６を介して、表示装置１０９（液晶ディスプレイなどの画像表示デバイス）に、画像処理装置１００で処理した画像データを出力することができる。なお、画像処理装置１００の構成要素は上記のもの以外にも存在するが、本発明の主眼ではないため、説明を省略する。
【００１６】
図２は、本実施例に係る、画像処理装置１００のソフトウェア構成を示す機能ブロック図である。
【００１７】
画像処理装置１００は、入力データ取得部２０１、着目画素決定部２０２、周辺画素決定部２０３、マッチング評価値導出部２０４、評価値重み導出部２０５及び補正部２０６で構成される。以下、各部の概要について説明する。
【００１８】
入力データ取得部２０１は、複数の視差画像と当該複数の視差画像間の視差を推定した視差マップのデータを、入力インターフェース１０５を介して外部メモリ１０８等から取得する。ここで、視差マップはモノクロの画像データである。視差マップは、入力される複数の視差画像間における被写体の移動量（視差）を表す値が０〜２５５の画素値（例えば、最大の視差を表す値が３０の場合であれば、８倍して最大値を２４０とする等レンジが調節されて）により表現されている。この視差マップは、例えば参照画像データを含む複数の画像データからステレオ法やＤＦＤ（Depth From Defocus）によって生成することで得られる。また、TOF（Time of Flight）センサなどのアクティブ法で得られた距離情報を視差情報に変換して生成してもよい。取得した複数の視差画像とその視差マップのデータは、着目画素決定部２０２に送られる。
【００１９】
着目画素決定部２０２は、フィルタ処理を施す着目画素を、当該着目画素の位置を示す座標情報に基づいて決定する。
【００２０】
周辺画素決定部２０３は、フィルタ処理で用いる重みの導出対象となる画素を、着目画素の位置を示す座標情報と当該着目画素からの相対的な位置を示す座標情報とに基づいて決定する。
【００２１】
マッチング評価値導出部２０４は、入力された複数の視差画像間のマッチングの度合いを表す評価値（複数の視差画像における対応する画素同士の画素値の類似度を表す値）を導出する。
【００２２】
評価値重み導出部２０５は、導出されたマッチングの評価値に基づいて、フィルタ処理で用いる重みを画素毎に導出する。
【００２３】
補正部２０６は、評価値重み導出部２０５で導出された重みを用いたフィルタ処理によって、入力された視差マップの画素値（視差値）を補正し、新たな視差マップを生成する。
【００２４】
図３は、本実施例に係る、視差マップデータの補正処理の流れを示すフローチャートである。この一連の処理は、この一連の処理は、ＣＰＵ１０１が、ＲＯＭ１０３に格納されているプログラムをＲＡＭ１０２にロードし、実行することで実現される。
【００２５】
ステップ３０１において、入力データ取得部２０１は、入力インターフェース１０５を介して外部メモリ１０８から視差画像データと視差マップデータを取得し、着目画素決定部２０２に出力する。図４は、被写体（立方体）を水平方向に異なる視点から撮影して得られた２枚の視差画像と、当該視差画像に対応する視差マップの一例を示す図である。ここでは、図４に示す２枚の画像４０１と４０２が視差画像として入力されるものとする。
また、図４において、全体的に不鮮明な視差マップ４１１が本ステップで入力される視差マップ（推定視差マップ）を示しており、鮮明な視差マップ４１０は実際には存在しない理想的な視差マップ（正解視差マップ）を示している。
【００２６】
以下の説明では、複数の視差画像（ここでは画像４０１と４０２）のうちユーザが見たい方の視点で撮影された画像を「基準画像」と定義し、画像４０１を基準画像とする。
【００２７】
また、視差マップ４１１は、基準画像と同一視点から見た場合における推定視差を表す画像であるとし、以下では、視差マップ４１１に対してフィルタ処理を行う。
【００２８】
ステップ３０２において、着目画素決定部２０２は、基準画像における着目画素の位置を示す座標情報に基づいて、着目画素ｐを決定する。この座標情報は、ＲＡＭ１０２に格納されている。処理開始直後の初期状態では、ＲＡＭ１０２には着目画素ｐの座標の初期値として、画像の左上隅の位置を示す（０，０）が格納されている。そして、着目画素ｐが決定されるとその画素値とその周囲３×３のブロック内に含まれる８つの隣接画素の画素値が、ＲＡＭ１０２に格納される。ここでは、着目画素ｐとして画素４０４が決定されるものとする。この場合のＲＡＭに格納される画素値の一例を以下に示す。
【００２９】
【数１】
2017021759.tif 000003
【００３０】
上記の具体例において、着目画素ｐとしての画素４０４の画素値は２１０/２５５（画素値の取り得る範囲を０〜１に正規化）である。なお、着目画素ｐを囲む隣接８画素は、後述の式（２）において、評価値を算出する際に使用する画素群を表している。本実施例では、この画素群の範囲を着目画素の周囲３×３画素のブロックとしているが、ブロックサイズはこれに限られない。
【００３１】
ステップ３０３において、周辺画素決定部２０３は、着目画素ｐの座標情報と着目画素ｐからの相対的な位置関係を示す座標情報とに基づいて、フィルタ処理における重みの導出対象となる、着目画素ｐの周辺に位置する画素ｒ（以下、周辺画素ｒ）を決定する。ここでの座標情報も、ＲＡＭ１０２に格納されている。そして、決定された周辺画素ｒの座標と、当該周辺画素ｒに対応する視差値の情報がＲＡＭ１０２に格納される。本実施例では、着目画素ｐを中心とした所定ブロック内（ここでは１１×１１画素のブロック内）の画素をフィルタ処理に用いるものとする。そのため、本実施例においては、周辺画素ｒは、着目画素ｐを中心とした１１×１１画素のブロック内の画素の中から順次決定される。なお、処理開始直後の初期状態では、着目画素ｐからの相対的な位置関係を示す座標情報として、着目画素ｐの座標を（０，０）としたときの、上記ブロックにおける左上隅の位置を示す座標値（−５，−５）がＲＡＭ１０２に格納されている。画像４０１における画素４０４が着目画素ｐ、枠４０３が１１×１１のブロックを示している場合において、座標値（−５，−５）は枠４０３の左上隅の画素４０５を示す座標値となる。そして、当該左上隅の画素４０５の視差値として例えば３pixelといった値が、入力された視差マップ（ここでは、視差マップ４１１）から周辺画素ｒの座標情報を参照して取得され、ＲＡＭ１０２に格納されることになる。同様に、周辺画素ｒの座標値が例えば（５、−５）であれば、枠４０３の右上隅の画素４０６を示す座標値となる。つまり、当該画素４０６の視差値として例えば１２pixelといった値が、入力された視差マップ４１１から周辺画素ｒの座標情報を参照して取得され、ＲＡＭ１０２に格納されることになる。
【００３２】
ステップ３０４において、マッチング評価値導出部２０４は、ＲＡＭ１０２に格納された周辺画素ｒの座標情報に基づき、当該座標情報で特定される画素位置の、入力視差マップにおける画素値（＝視差値d(r)）と、入力視差画像における画素値を参照する。参照したこれらの画素値から、入力視差画像間のマッチングの評価値を導出する。いま、入力される視差画像は画像４０１と４０２の２枚であるため、それぞれをI1 , I2とすると、求める評価値V(p,r)は、以下の式（１）で表される。
【００３３】
【数２】
2017021759.tif 000004
【００３４】
上記式（１）において、pとｒはそれぞれ着目画素ｐと周辺画素ｒの座標に対応する２次元のベクトルであり、vはカメラの相対位置（方向）を表す方向ベクトルである。２台のカメラが水平に並んでいる場合、I1を着目する基準画像、I1を撮影するカメラ位置を原点とすると、I2を撮影するカメラ位置の方向ベクトルvは、（１，０）となる。そして、d(r)は視差マップ４１１の周辺画素rの座標における視差値を表す。f()は視差画像間のマッチング、すなわち類似度を評価する関数であり、例えばSSD（差分２乗和）やZNCC（正規化相互相関）などを用いることができる。本実施例では、着目画素を中心とした３×３画素の範囲に渡るSSDの場合について説明する。このとき、上記式（１）は以下の式（２）ようになる。
【００３５】
【数３】
2017021759.tif 000005
【００３６】
上記式（２）において、Bは着目画素を中心とした３×３画素の集合を表し、Σは集合Bに含まれる９画素について和を取るものとする。上述のとおり、本実施例において視差画像の画素値は０〜１に正規化されているものとする。上記式（２）によって（値を分かりやすくするため平方根で表す）、√V(p,r) = ０．０５といった値が、マッチングの評価値として求められる。なお、マッチングの評価値導出に用いる画素数は何画素でもよく、例えば、上記式（２）おけるBを４×４画素の集合として１６画素を用いてもよいし、或いは着目画素のみを用いてもよい。また、集合Bの形状も正方形である必要はない。
【００３７】
ステップ３０５において、評価値重み導出部２０５は、ステップ３０４で導出した評価値V(p,r)に基づき、ステップ３０３で決定した周辺画素ｒの重みｗを導出する。重みｗは、例えば以下の式（３）を用いて求められる。
【００３８】
【数４】
2017021759.tif 000006
【００３９】
上記式（３）において、σは任意に設定できる実定数で、どれだけ異なる評価値まで考慮するかを示す定数である。一般にσを大きくすれば補正後の画像はぼける傾向にある。本実施例においてはσ＝0.1を設定しているが、この値は自由に設定可能である。例えば、評価値の平方根√V(p,r) = ０．０５、σ＝０．１の場合、上記式（３）によって求められる重みｗは、w(p,r)=０．８８２５となる。なお、重みwを必ずしも上記式（３）を用いた演算によって導出する必要はない。例えば、評価値と重みとを対応付けたテーブルを予め用意しておき、入力評価値に応じた重みを、当該テーブルを用いて求めるようにしてもよい。以下に、テーブルの一例を示す。
【００４０】
【表１】
2017021759.tif 000007
【００４１】
ステップ３０６において、補正部２０６は、周辺画素ｒの範囲を確定する所定ブロック（ここでは１１×１１画素）内の全ての画素について、重みｗが決定されたかどうかを判定する。重みｗが未決定の周辺画素ｒが存在する場合は、ステップ３０７に進む。一方、所定ブロック内の全ての周辺画素ｒについて重みｗが決定されていれば、ステップ３０８に進む。図４の例では、ステップ３０８に進む段階で、着目画素ｐを画素４０４とした場合の、枠４０３で示す１１×１１画素の範囲の全画素について、重みｗが決定されていることになる。一例を示すと、着目画素ｐである画素４０４の重みw(p,r) = 1.00、周辺画素ｒである右上隅の画素４０６の重みw(p,r) = 0.08、同じく周辺画素ｒである左下隅の画素４０７の重みw(p,r) =0.87といった具合である。なお、本実施例においては、着目画素を中心に１１×１１画素の範囲を補正処理に用いる周辺画素の範囲としているが、これに限られない。例えば、視差画像内の全ての画素を補正処理に用いる周辺画素の範囲にしてもよいし、導出された重みの値に応じて使用する周辺画素ｒを変更してもよい。
【００４２】
ステップ３０７において、補正部２０６は、周辺画素ｒの位置（着目画素ｐからの相対的な位置）を示す座標情報を更新する。例えば、現在の座標値が、処理開始直後の初期状態（−５、−５）であれば、次の座標値はその右隣を示す（−４、−５）に更新される。また、現在の座標値が（５、−５）で、枠４０３で示す１１×１１画素のブロックの右端に到達した場合であれば、次の座標値は（−５、−４）に更新される。次の周辺画素ｒの位置を特定する座標情報が更新されると、ステップ３０３で次の周辺画素ｒが決定されて処理が続行される。
【００４３】
ステップ３０８において、補正部２０６は、ＲＡＭ１０２に格納された着目画素ｐとその周辺画素ｒの重み及び周辺画素ｒに対応する視差値に基づいて、着目画素ｐに対応する視差値を補正する。着目画素ｐについての補正後の視差値D（ｐ）は、以下の式（４）で表わされる。
【００４４】
【数５】
2017021759.tif 000008
【００４５】
上記式（４）においてd（ｒ）は、上述のとおり周辺画素ｒに対応する入力視差マップ上の画素値（視差値）である。評価値重み導出部２０５から出力された各周辺画素ｒの重みｗの値と、ＲＡＭ１０２に格納された各周辺画素ｒに対応する視差値を、上記式（４）に代入することで、着目画素ｐについての補正後の視差値D（ｐ）が求められる。後述するように、着目画素ｐとしての画素４０４に対応する補正前の視差値が仮に３pixelであったとして、例えばより真値に近い１．２pixelといった値に補正されることになる。
【００４６】
ステップ３０９において、補正部２０６は、基準画像（ここでは画像４０１）内の全ての画素を着目画素ｐとして、入力視差マップの視差値の補正が完了したかどうかを判定する。未処理の画素がある場合は、ステップ３１０に進む。一方、全ての画素を着目画素ｐとして、入力視差マップの視差値の補正が完了していれば、ステップ３１１に進む。
【００４７】
ステップ３１０において、補正部２０６は、着目画素ｐの位置を示す座標情報を更新すると共に、周辺画素ｒの位置を示す座標情報を初期値である（−５，−５）に戻す。そして、これら座標情報の更新がなされると、ステップ３０２に戻って次の注目画素ｐが決定されて処理が続行される。
【００４８】
ステップ３１１において、補正部２０６は、補正された視差値に基づく視差マップを生成し出力する。
【００４９】
以上が、本実施例に係る、視差マップデータを補正する処理の内容である。
【００５０】
＜本実施例の原理＞
ここで、本実施例による補正処理の原理について説明する。
【００５１】
図４において、入力視差画像を構成する２枚の画像のうち、画像４０１は左視点の画像、画像４０２は右視点の画像である。そして、視差マップ４１０は理想とする正解視差マップであり、視差マップ４１１はこれら入力視差画像の推定視差マップである。画像４０１における枠４０３は着目画素ｐとしての画素４０４を中心とした周辺画素ｒの範囲を表しており、画素４０５〜４０７は周辺画素ｒのうちの、左上隅、右上隅、左下隅の各画素を表している。視差マップ４１０及び４１１は、輝度が高いほど視差が大きいことを表しており、より手前の被写体である立方体において視差が大きいことを示している。ここでは、正解視差マップ４１０における画素４０６に対応する視差値を１０pixel、着目画素４０４及び画素４０７に対応する視差値を１pixelとする。また、推定視差マップ４１１における画素４０６に対応する視差値を１２pixel、着目画素４０４及び画素４０７の視差値を２pixelとする。
【００５２】
本実施例において、周辺画素ｒとしての画素４０６の重みを導出する際は、推定視差マップ４１１における画素４０６に対応する視差値=１２pixelを参照する。そして、着目画素４０４を１２pixelだけずらして右視点の画像４０２における対応画素４０８を求める。右視点の画像４０２における両方向矢印４０９は、この１２pixelに相当する移動量を表している。そして、前述の式（２）を用いて、着目画素４０４と対応画素４０８間のマッチングの評価値が導出される。このとき、着目画素４０４における正解の視差値は１pixelであって乖離が大きいため、導出される評価値は大きくなり、その結果、重みは小さくなる。
【００５３】
一方、周辺画素ｒとしての画素４０７の重みを導出する際は、推定視差マップ４１１における画素４０７に対応する視差値=２pixelを参照する。そして、着目画素４０４を２pixelだけずらして右視点の画像４０２における対応画素（不図示）を求めることになる。このとき、着目画素４０４における正解の視差値は１pixelであって乖離が小さいため、導出される評価値は小さくなり、その結果、重みは大きくなる。
【００５４】
以上のようにして、推定視差マップ４１１において、着目画素４０４における正解の視差値に近い視差値を有する周辺画素ほど補正に大きな影響を持つことになる。その結果、被写体境界や各画素の視差推定精度を維持しつつ、推定視差マップ４１１におけるノイズ低減や穴埋めが可能になる。
【００５５】
＜本実施例の効果＞
図５は、本実施例による補正処理の効果を示す図である。画像５０１は入力視差画像のうちの一枚を表しており、板が斜めに配置されたシーンを撮影したものである。視差マップ５０２は、画像５０１の推定視差マップ（不図示）をバイラテラルフィルタを用いて補正した結果を示しており、視差マップ５０３は、本実施例に係る手法を用いて補正した結果を示している。拡大図５０４及び５０５は、それぞれ補正後の視差マップ５０２及び５０３の被写体境界部を切り出した拡大図である。本実施例に係る手法の方が被写体境界部（エッジ）が明瞭であり、より望ましい形で補正されていることが分かる。
【００５６】
なお、本実施例では水平方向に２台のカメラが並んでいる場合を例に説明を行なったが、このような例に限定されない。例えば、十字型に５台のカメラが並んでいるケースであってもよい。この場合、中心カメラ位置を原点として左右上下のカメラの番号をそれぞれ２，３，４，５とすると、各方向ベクトルｖは、v2=（−１，０）、v3=（１，０）、v4=（０，１）、v5=（０，ー１）、となる。
【００５７】
このとき、評価値を求める前述の式（１）は、以下の式（１）’のようになる。
【００５８】
【数６】
2017021759.tif 000009
【００５９】
【数７】
2017021759.tif 000010
【００６０】
その結果、前述の式（２）に該当する評価値は、上記式（２）’を用いて例えば以下のようになる。
【００６１】
【数８】
2017021759.tif 000011
【００６２】
【数９】
2017021759.tif 000012
【００６３】
以上のとおり、本実施例によれば、複数の視差画像データから得られる視差マップや距離マップといった距離画像を高精度に補正することができる。詳細には、被写体境界部におけるエッジの鮮明さと、距離値の精度を維持したフィルタ処理を実現することが可能となる。
【００６４】
［実施例２］
次に、オクルージョン領域など、視差画像間でマッチングが取れずそのままでは周辺画素の重みの値が全て小さくなってしまうケースを想定した態様について、実施例２として説明する。なお、実施例１と共通する部分については説明を省略ないしは簡略化し、以下では差異点を中心に説明するものとする。
【００６５】
図６は、本実施例に係る画像処理装置１００のソフトウェア構成を示す機能ブロック図である。本実施例の場合、図２の機能ブロック図で示された各部に加え、新たに評価値重み判定部６０１、距離重み導出部６０２、色重み導出部６０３、重み統合部６０４が追加されている。図７は、本実施例に係る、オクルージョン領域などマッチングが取れない領域に関しても、高精度に視差マップを補正することが可能な補正処理の流れを示すフローチャートである。以下、図６及び図７を参照しつつ、説明する。
【００６６】
ステップ７０１〜ステップ７０７は、実施例１における図３のフローのステップ３０１〜３０７と同じであるので説明を省く。
【００６７】
所定ブロック内の全画素について重みｗが決定されると（ステップ７０６でＹｅｓ）、ステップ７０８において、評価値重み判定部６０１は、決定された重みｗの値が閾値より大きい周辺画素ｒが存在するかどうかを判定する。この判定は、所定ブロック内の全周辺画素ｒの中で行われる。閾値としては例えば０．２といった値が考えられるがこれに限定されるものではなく、要はオクルージョン領域などでマッチングが上手く取れない領域かどうかの切り分けができればよい。重みｗの値が閾値より大きい周辺画素ｒが存在する場合は、ステップ７１０に進む。一方、所定ブロック内の全周辺画素について決定された重みの値が閾値より小さい場合は、ステップ７０９に進む。
【００６８】
ステップ７０９では、入力視差画像間のマッチングの評価値ではなく、着目画素と周辺画素における画素値（色）の違いや距離に基づいて、重みが改めて導出される。ここでは、色の違いと距離の双方に基づいて重みを導出するケース、すなわち、距離重み導出部６０２及び色重み導出部６０３によって、各々重みを導出し、重み統合部６０４によって最終的な重みを決定する態様について説明する。具体的には、以下のようにして、重みの再導出が行われる。
【００６９】
まず、距離重み導出部６０２では、着目画素ｐからの距離に基づく距離重みwdが、周辺画素ｒの座標情報を用いて求められる。ここで、距離重みwdは、以下の式（５）及び式（６）で表わされる。
【００７０】
【数１０】
2017021759.tif 000013
【００７１】
【数１１】
2017021759.tif 000014
【００７２】
上記式（５）において、ｐとｒはそれぞれ着目画素ｐと周辺画素ｒの座標に対応する２次元のベクトルであり、距離重みwdの値はｐとｒの間のユークリッド距離に依存している。また、σdは任意に設定できる実定数で、着目画素ｐからどれだけ離れた周辺画素ｒまで考慮するかを示す定数である。
【００７３】
そして、色重み導出部６０３では、着目画素ｐとの画素値（色）の違いに基づく色重みｗcolorが、ＲＡＭ１０２に格納されている着目画素ｐと周辺画素ｒの画素値を用いて求められる。ここで、色重みｗcolorは、以下の式（７）で表わされる。
【００７４】
【数１２】
2017021759.tif 000015
【００７５】
上記式（７）において、Ii（ｐ）およびIi（ｒ）は、それぞれ着目画素ｐ及び周辺画素ｒの画素値であり、iは｛R,G,B｝の色情報を表す添え字である。そして、Σは３チャネルの色情報について取るものとする。σiは係数分布の画素値の強度方向への分散を表わすパラメータである。本実施例においては、i=｛R,G,B｝全てに対し、σi＝５/２５５を設定しているが、この値はσdと同様に自由に設定可能である。
【００７６】
そして、重み統合部６０４において、以下の式（８）に基づいて、最終的な重みが決定される。
【００７７】
【数１３】
2017021759.tif 000016
【００７８】
なお、実施例１のステップ３０５では、マッチング評価値のみに基づいて周辺画素ｒの重みを導出していた。本実施例のステップ７０５では、マッチング評価値から求めた重みｗに上記式（５）から求めた距離重みwdを乗算したものを、周辺画素ｒの重みとして導出してもよい。
【００７９】
また、上述のステップ７０９では、着目画素ｐと周辺画素ｒの画素値と距離に基づき重みｗの再導出を行っているが、例えばメディアンフィルタを用いて中央値を求めるなど他の手法を用いてもよい。
【００８０】
ステップ７１０は、図３のフローのステップ３１１と同じであり、マッチングの評価値に基づき導出された重みｗを用いた視差値の補正が実行される。
【００８１】
一方、ステップ７０９で重みｗが再導出された場合には、ステップ７１１において補正部２０６が、再導出された新たな重みｗを用いて視差値の補正を行なう。
【００８２】
ステップ７１２〜ステップ７１４は、図３のフローのステップ３０９〜３１１と同じであるので説明を省く。
【００８３】
以上が、本実施例に係る、オクルージョン領域などマッチングが取れない領域に関して、高精度に視差マップを補正することが可能なフィルタ処理の内容である。
【００８４】
図８は、ステップ７０８における判定によって、重みｗが再導出されるケースを示す図である。図８において、画像８０１は左視点の画像、画像８０２は右視点の画像であり、共に手前側に立方体８０３、その奥に円柱８０４の２つの被写体が写っている。画素８０５は着目画素であり、左視点画像８０１には写っているが、右視点画像８０２には、手前の被写体８０３に隠れて写っていない。このような領域（オクルージョン領域）では、どの周辺画素の視差値を用いても、対応する点（画素）が存在しないため、マッチング評価値は大きくなって重みが小さくなってしまう。そこで、本実施例では、周辺画素の重みが全て閾値以下となるような場合には、着目画素と周辺画素における画素値の違いや距離によって重みを改めて導出して適切な重みを決定し、視差値の補正を行うようにしている。
【００８５】
このような処理行なうことで、オクルージョン領域などマッチングが取れない領域に関しても、高精度に視差マップを補正することができる。
【００８６】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００８７】
１００  画像処理装置
２０１  入力データ取得部
２０２  着目画素決定部
２０３  周辺画素決定部
２０４  マッチング評価値導出部
２０５  評価値重み導出部
２０６  補正部
【図１】
2017021759.tif 000017
【図２】
2017021759.tif 000018
【図３】
2017021759.tif 000019
【図４】
2017021759.tif 000020
【図５】
2017021759.tif 000021
【図６】
2017021759.tif 000022
【図７】
2017021759.tif 000023
【図８】
2017021759.tif 000024