(57)【要約】【課題】距離画像の形成の演算量を削減すること。【解決手段】画像処理装置１０において、  左側距離画像形成部１１は、左側画像を基準画像、右側画像を参照画像とし、ブロックマッチングを用いて左側距離画像を形成し、右側距離画像形成部１２は、左側距離画像形成部１１で形成された左側距離画像を構成する複数のブロックの各々を、各ブロックの視差値に応じた距離だけ移動させ、移動後の各ブロックから、右側距離画像を形成する。【選択図】図１
2014235615.tif 000002
【特許請求の範囲】
【請求項１】
メモリと、前記メモリに接続されたプロセッサと、を具備し、
前記プロセッサは、
第１距離画像を構成する複数のブロックの各々を、各ブロックの視差値に応じた距離だけ移動させ、
移動後の前記複数のブロックから、前記第１距離画像と視点が異なる第２距離画像を形成する、
画像処理装置。
【請求項２】
前記プロセッサは、
前記第２距離画像において、移動後の前記複数のブロックが存在しない領域をオクルージョン領域と決定する、
請求項１に記載の画像処理装置。
【請求項３】
前記プロセッサは、
前記第２距離画像において、前記オクルージョン領域に隣接する複数のブロックのうち、最小の視差値のブロックにより、前記オクルージョン領域を補完する、
請求項２に記載の画像処理装置。
【請求項４】
第１距離画像を形成する第１形成部と、
前記第１距離画像を構成する複数のブロックの各々を、各ブロックの視差値に応じた距離だけ移動させ、移動後の前記複数のブロックから、前記第１距離画像と視点が異なる第２距離画像を形成する第２形成部と、
を具備する画像処理回路。
【請求項５】
第１距離画像を構成する複数のブロックの各々を、各ブロックの視差値に応じた距離だけ移動させ、
移動後の前記複数のブロックから、前記第１距離画像と視点が異なる第２距離画像を形成する、
処理を、プロセッサに実行させる画像処理プログラム。
【請求項６】
第１距離画像を構成する複数のブロックの各々を、各ブロックの視差値に応じた距離だけ移動させ、
移動後の前記複数のブロックから、前記第１距離画像と視点が異なる第２距離画像を形成する、
画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理回路、画像処理プログラム、及び画像処理方法に関する。
【背景技術】
【０００２】
人が３Ｄ（three  dimensions）画像を見たときに、違和感または不快感を覚えることがある。実空間で人が物体を見る場合、その人の焦点は、中心視野に在る物体近傍に合っている。このため、その中心視野から外れたところの物体はピントがずれた状態で認識される。すなわち、実空間において、人からの距離が大きく異なる複数の物体を同程度で認識することは少ない。このため、画像内で深さ（つまり、視点からの距離）が大きく異なる複数の物体を見る場合、輻輳と調節との矛盾の程度が大きいため、観察者は疲労感を感じる。
【０００３】
そこで、この状況において輻輳と調節との矛盾の程度を小さく抑えるために、一般的にフィルタリング処理が行われる。このフィルタリング処理では、距離画像が用いられる。距離画像は、２つの視点から撮影された２つの画像、すなわち、左側の視点から撮影された画像である「左側画像」と、右側の視点から撮影された画像である「右側画像」とから求められる。例えば、左側画像の原点と右側画像の原点とを合わせ、左側画像の基準点の座標と、当該基準点に対応する右側画像の対応点の座標との差（つまり、視差）を、基準点の値とした画像が、「左側距離画像」である。逆に、左側画像の原点と右側画像の原点とを合わせ、右側画像の基準点の座標と、当該基準点に対応する左側画像の対応点の座標との差（つまり、視差）を、基準点の値とした画像が、「右側距離画像」である。つまり、左側距離画像を求める場合、左側画像が基準画像となり、右側画像が参照画像となる。逆に、右側距離画像を求める場合、右側画像が基準画像となり、左側画像が参照画像となる。そして、３Ｄ画像に対してフィルタリング処理を行う場合には、左側画像及び右側画像のそれぞれに対しフィルタリング処理を行う。すなわち、左側画像に対しては左側距離画像を用いてフィルタリング処理を行い、右側画像に対しては右側距離画像を用いてフィルタリング処理を行う。つまり、３Ｄ画像に対してフィルタリング処理を行う場合には、左側距離画像及び右側距離画像の２つの距離画像を求める。
【０００４】
ここで、距離画像の形成に用いられる従来技術として「ブロックマッチング」がある。ブロックマッチングとは、基準画像を、複数の小面積の領域、つまり、複数のブロックに分割し、各ブロックの画像と参照画像の全領域とを比較し、参照画像上において各ブロックと対応する位置を探す技術である。以下では、基準画像の複数のブロックのうち距離算出の対象とするブロックを「対象ブロック」と呼ぶことがある。ブロックマッチングでは、参照画像上の対応する位置として、対象ブロックと最も類似する画像の位置（つまり、最も誤差が小さい画像の位置）を探す。そして、対象ブロックと、参照画像上で探し出された画像の位置との間の距離の値を、視差値として対象ブロックに書き込む。視点からの距離が遠い物体では視差が小さくなり、視点からの距離が近い物体では視差が大きくなる。つまり、視点からの距離がより近い物体ほど、視差値はより大きくなる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１１−１０２４３８号公報
【特許文献２】特開２０００−２１５３１１号公報
【特許文献３】特開２００１−２５６４８２号公報
【特許文献４】特開２０１１−０６０２１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ブロックマッチングは、基準画像上で対象ブロックを順次シフトさせながら、基準画像の全ブロックの各々について参照画像の全領域に渡って行われる。このため、ブロックマッチングの演算量は大きい。よって、距離画像の形成にブロックマッチングを用いると、距離画像の形成の演算量が大きくなり、距離画像の形成に多くの時間がかかってしまう。特に、３Ｄ画像に対してフィルタリング処理を行う場合には、左側画像を基準画像として左側距離画像を求めるブロックマッチングと、右側画像を基準画像として右側距離画像を求めるブロックマッチングとが行われるため、距離画像の形成の演算量がさらに大きくなる。
【０００７】
開示の技術は、上記に鑑みてなされたものであって、距離画像の形成の演算量を削減することができる、画像処理装置、画像処理回路、画像処理プログラム、及び画像処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
開示の態様では、第１距離画像を構成する複数のブロックの各々を、各ブロックの視差値に応じた距離だけ移動させ、移動後の前記複数のブロックから、前記第１距離画像と視点が異なる第２距離画像を形成する。
【発明の効果】
【０００９】
開示の態様によれば、距離画像の形成の演算量を削減することができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施例１の画像処理装置の一例を示すブロック図である。
【図２】図２は、実施例１のブロック分割の一例を示す図である。
【図３】図３は、実施例１の右側距離画像の形成の説明に供する図である。
【図４】図４は、実施例１の画像処理装置の処理の説明に供するフローチャートである。
【図５】図５は、実施例１の左側距離画像の一例を示す図である。
【図６Ａ】図６Ａは、実施例１の右側距離画像の形成例の説明に供する図である。
【図６Ｂ】図６Ｂは、実施例１の右側距離画像の形成例の説明に供する図である。
【図６Ｃ】図６Ｃは、実施例１の右側距離画像の形成例の説明に供する図である。
【図６Ｄ】図６Ｄは、実施例１の右側距離画像の形成例の説明に供する図である。
【図７】図７は、実施例１の左側画像の一例を示す図である。
【図８】図８は、実施例１の右側画像の一例を示す図である。
【図９】図９は、実施例１の左側距離画像の一例を示す図である。
【図１０】図１０は、実施例１の右側距離画像の一例を示す図である。
【図１１】図１１は、実施例２の画像処理装置の一例を示すブロック図である。
【図１２】図１２は、実施例２の画像処理装置の処理の説明に供するフローチャートである。
【図１３Ａ】図１３Ａは、実施例２のオクルージョン領域マップの更新例の説明に供する図である。
【図１３Ｂ】図１３Ｂは、実施例２のオクルージョン領域マップの更新例の説明に供する図である。
【図１３Ｃ】図１３Ｃは、実施例２のオクルージョン領域マップの更新例の説明に供する図である。
【図１３Ｄ】図１３Ｄは、実施例２のオクルージョン領域マップの更新例の説明に供する図である。
【図１４】図１４は、実施例３の画像処理装置の一例を示すブロック図である。
【図１５】図１５は、実施例３の画像処理装置の処理の説明に供するフローチャートである。
【図１６Ａ】図１６Ａは、実施例３のオクルージョン領域の補完例の説明に供する図である。
【図１６Ｂ】図１６Ｂは、実施例３のオクルージョン領域の補完例の説明に供する図である。
【図１７】図１７は、画像処理装置のハードウェア構成例を示す図である。
【発明を実施するための形態】
【００１１】
以下に、本願の開示する画像処理装置、画像処理回路、画像処理プログラム、及び画像処理方法の実施例を図面に基づいて説明する。なお、以下の実施例により本願の開示する画像処理装置、画像処理回路、画像処理プログラム、及び画像処理方法が限定されるものではない。また、各実施例において同一の機能を有する構成、または、同一の処理を行うステップには同一の符号を付し、重複する説明を省略する。
【００１２】
また、以下では一例として、左側距離画像から右側距離画像を形成する場合について説明する。しかし、以下の実施例の「左」を「右」に、「右」を「左」に読み替えることにより、以下の実施例と同様にして、右側距離画像から左側距離画像を形成することもできる。左側距離画像から右側距離画像を形成する場合は、左側距離画像が第１の距離画像に、右側距離画像が、第１の距離画像と視点が異なる第２の距離画像に相当する。逆に、右側距離画像から左側距離画像を形成する場合は、右側距離画像が第１の距離画像に、左側距離画像が、第１の距離画像と視点が異なる第２の距離画像に相当する。
【００１３】
［実施例１］
＜画像処理装置の構成例＞
図１は、実施例１の画像処理装置の一例を示すブロック図である。図１において、画像処理装置１０は、左側距離画像形成部１１と、右側距離画像形成部１２とを有する。
【００１４】
左側距離画像形成部１１には、左側画像と右側画像とが入力される。左側距離画像形成部１１は、左側画像を基準画像、右側画像を参照画像とし、ブロックマッチングを用いて左側距離画像を形成する。
【００１５】
すなわち、左側距離画像形成部１１は、図２に示すように、左側画像をｘ軸でＭブロック、ｙ軸でＮブロックの合計Ｍ×Ｎの複数のブロックに分割する。図２は、実施例１のブロック分割の一例を示す図である。Ｍ×Ｎブロックにおいて、原点のブロックを左上端のブロック（０,０）とし、任意の対象ブロックをブロック（ｍ,ｎ）とすると、右下端のブロックはブロック（Ｍ−１,Ｎ−１）となる。つまり、ｍは０〜Ｍ−１の何れかの値をとり、ｎは０〜Ｎ−１の何れかの値をとる。また、１ブロックのｘ軸方向の長さをＸとし、ｙ軸方向の長さをＹとする。また、ブロック（ｍ,ｎ）の右上端の画素位置を（ｂｘ,ｂｙ）とする。
【００１６】
左側距離画像形成部１１は、左側画像を基準画像、右側画像を参照画像とし、対象ブロック（ｍ,ｎ）をブロック（０,０）からブロック（Ｍ−１,Ｎ−１）まで１ブロックずつシフトさせながら、Ｍ×Ｎブロックの全ブロックについてブロックマッチングを行う。すなわち、左側距離画像形成部１１は、右側画像の全領域において、対象ブロック（ｍ,ｎ）の画像と最も類似する画像の位置（つまり、最も誤差が小さい画像の位置）を探す。ここで、左側画像及び右側画像の双方に存在する同一物体は、左側画像では、右側画像での撮影位置よりも相対的に右側にずれて撮影される。よって、図２に示すように、右方向をｘ軸の正方向、下方向をｙ軸の正方向とした場合、左側距離画像形成部１１は、右側画像上で探し出した画像の位置から、対象ブロック（ｍ,ｎ）までの距離の値（ｘｍｎ,ｙｍｎ）を、視差値として対象ブロック（ｍ,ｎ）に書き込む。
【００１７】
ここで、類似度の評価には、例えば、ＳＡＤ（Sum  of  Absolute  Difference）を用いる。ここでは、ＳＡＤは式（１）により表される。式（１）において、ｉｎは基準画像である左側画像、ｒｅｆは参照画像である右側画像を表す。また、ｉｎ（ｂｘ＋ｉ,ｂｙ＋ｊ）は、左側画像の座標（ｂｘ＋ｉ,ｂｙ＋ｊ）での画素の輝度値、ｒｅｆ（ｂｘ＋ｉ＋ｘ,ｂｙ＋ｊ＋ｙ）は、右側画像の座標（ｂｘ＋ｉ＋ｘ,ｂｙ＋ｊ＋ｙ）での画素の輝度値を表す。
【数１】
2014235615.tif 000003
【００１８】
左側距離画像形成部１１は、対象ブロック（ｍ,ｎ）について、式（１）に従って、ＳＡＤ（ｘ,ｙ）を右側画像の全領域で求め、右側画像上でＳＡＤ（ｘ,ｙ）が最小となる位置、つまり、対象ブロック（ｍ,ｎ）との誤差が最も小さい位置（ｘ,ｙ）を求める。そして、左側距離画像形成部１１は、対象ブロック（ｍ,ｎ）上の位置（ｂｘ,ｂｙ）から、右側画像上の位置（ｘ,ｙ）までの距離（ｘｍｎ,ｙｍｎ）を求め、距離（ｘｍｎ,ｙｍｎ）を対象ブロック（ｍ,ｎ）の視差値として、対象ブロック（ｍ,ｎ）に書き込む。左側距離画像形成部１１は、距離の算出及び書き込みを、対象ブロック（ｍ,ｎ）をブロック（０,０）からブロック（Ｍ−１,Ｎ−１）まで１ブロックずつシフトさせながらＭ×Ｎブロックの全ブロックについて行うことにより、左側距離画像を形成する。そして、左側距離画像形成部１１は、形成した左側距離画像を出力する。
【００１９】
右側距離画像形成部１２には、左側距離画像形成部１１で形成された左側距離画像が入力される。右側距離画像形成部１２は、左側距離画像に基づいて、以下のようにして、右側距離画像を形成する。
【００２０】
図３は、実施例１の右側距離画像の形成の説明に供する図である。上記のブロックマッチングにより左側距離画像において距離（ｘｍｎ,ｙｍｎ）を書き込まれた対象ブロック（ｍ,ｎ）は、その対象ブロック（ｍ,ｎ）との誤差が最も小さい右側画像の位置から距離（ｘｍｎ,ｙｍｎ）だけ離れた位置に存在する。また、左側画像及び右側画像の双方に存在する同一物体は、右側画像では、左側画像での撮影位置よりも相対的に左側にずれて撮影される。よって、右側画像をＭ×Ｎの複数のブロックに分割した場合、左側距離画像の距離（ｘｍｎ,ｙｍｎ）を書き込まれた対象ブロック（ｍ,ｎ）との誤差が最も小さいブロック（ｍ’,ｎ’）が右側画像において存在する位置は、式（２）により表される。
【数２】
2014235615.tif 000004
【００２１】
また、左側画像と右側画像との間で誤差が最も小さい２つのブロック間で、一方のブロックから他方のブロックまでの距離と、他方のブロックから一方のブロックまでの距離とは、大きさが同一で、互いに反対方向になる。よって、左側距離画像の距離（ｘｍｎ,ｙｍｎ）を書き込まれた対象ブロック（ｍ,ｎ）との誤差が最も小さいブロック（ｍ’,ｎ’）の視差値は（−ｘｍｎ,−ｙｍｎ）となる。
【００２２】
そこで、右側距離画像形成部１２は、左側距離画像の各ブロックを、各ブロックの視差値に応じた距離だけ移動させ、移動後の各ブロックから右側距離画像を形成する。すなわち、右側距離画像形成部１２は、Ｍ×Ｎブロックにおいて、左側距離画像のブロック（ｍ,ｎ）を、ブロック（ｍ,ｎ）の視差値（ｘｍｎ,ｙｍｎ）に応じた距離（ｘｍｎ,ｙｍｎ）だけｘ軸及びｙ軸の負方向に移動させて右側距離画像のブロック（ｍ’，ｎ’）とする。そして、右側距離画像形成部１２は、ブロック（ｍ,ｎ）の視差値（ｘｍｎ,ｙｍｎ）の符号を反転させた視差値（−ｘｍｎ,−ｙｍｎ）をブロック（ｍ’，ｎ’）の視差値とする。右側距離画像形成部１２は、ブロックの移動及び視差値の符号の反転を、左側距離画像においてブロック（ｍ,ｎ）をブロック（０,０）からブロック（Ｍ−１,Ｎ−１）まで１ブロックずつシフトさせながらＭ×Ｎブロックの全ブロックについて行うことにより、右側距離画像を形成する。そして、右側距離画像形成部１２は、形成した右側距離画像を出力する。
【００２３】
なお、一般に３Ｄ画像において垂直方向（ｙ軸方向）の視差は考慮しないため、上記の各処理において、ｙ軸方向における処理を省くことができる。つまり、ｙｍｎを常に０とすることができる。
【００２４】
＜画像処理装置の処理＞
図４は、実施例１の画像処理装置の処理の説明に供するフローチャートである。
【００２５】
まず、右側距離画像形成部１２は、左側距離画像のブロック（ｍ,ｎ）を初期位置に設定する（ステップＳ４１）。例えば、初期位置を（ｍ,ｎ）＝（０,０）とする。
【００２６】
次いで、右側距離画像形成部１２は、ブロック（ｍ,ｎ）の視差値から、式（２）に従って、右側距離画像のブロック位置（ｍ’,ｎ’）を決定する（ステップＳ４２）。
【００２７】
次いで、右側距離画像形成部１２は、ブロック（ｍ,ｎ）をブロック位置（ｍ’,ｎ’）に移動させる（ステップＳ４３）。
【００２８】
次いで、右側距離画像形成部１２は、ブロック位置（ｍ’,ｎ’）に移動させたブロック（ｍ,ｎ）の視差値の符号を反転させる（ステップＳ４４）。
【００２９】
次いで、右側距離画像形成部１２は、左側距離画像の全ブロックの移動が終了したか否か判断する（ステップＳ４５）。例えば、右側距離画像形成部１２は、（ｍ,ｎ）＝（Ｍ−１,Ｎ−１）であるときに、左側距離画像の全ブロックの移動が終了したと判断する。左側距離画像の全ブロックの移動が終了したとき（ステップＳ４５：Ｙｅｓ）、右側距離画像形成部１２は、右側距離画像を出力して処理を終了する。
【００３０】
一方で、左側距離画像の全ブロックの移動が終了していないとき（ステップＳ４５：Ｎｏ）、右側距離画像形成部１２は、ブロック（ｍ,ｎ）をｘ軸方向またはｙ軸方向に１ブロックシフトさせ（ステップＳ４６）、処理はステップＳ４２に戻る。
【００３１】
＜右側距離画像の形成例＞
図５は、実施例１の左側距離画像の一例を示す図であり、図６Ａ〜Ｄは、実施例１の右側距離画像の形成例の説明に供する図である。図５及び図６Ａ〜Ｄには、Ｍ＝１６，Ｎ＝８とした場合を一例として示す。
【００３２】
左側距離画像形成部１１は、図５に示すような左側距離画像を形成する。左側距離画像の各ブロックの濃淡は、各ブロックの視差値の大きさを表す。すなわち、濃いほど視差値が小さくて視点から物体までの距離が遠いことを意味し、薄いほど視差値が大きくて視点から物体までの距離が近いことを意味する。また、ここでは、左側距離画像の各ブロックは０，２，３の何れかの視差値を有するものとする。また、垂直方向（ｙ軸方向）の視差を考慮しない。
【００３３】
一方、右側距離画像形成部１２において、Ｍ×Ｎブロックの初期状態は、図６Ａに示すように、Ｍ×Ｎブロックの全ブロックがＮｕｌｌである状態である。
【００３４】
ここで、上述したブロック移動は、ブロック（０,０）からブロック（Ｍ−１,Ｎ−１）までブロックの並び順に行われる。しかし、ここでは、ブロック移動による右側距離画像の形成を分かりやすく説明するために、視差の大きさ順にブロック移動をする。
【００３５】
すなわち、右側距離画像形成部１２は、図６Ｂに示すように、左側距離画像（図５）における「視差値＝０」のブロックを視差値に応じた距離だけ移動、つまり、移動させることなく、右側距離画像のＭ×Ｎブロックに書き込む。
【００３６】
次いで、右側距離画像形成部１２は、図６Ｃに示すように、左側距離画像（図５）における「視差値＝２」のブロックを、ｘ軸の負方向（つまり、左方向）に視差値に応じた距離だけ移動、つまり、２ブロックだけ移動させて右側距離画像のＭ×Ｎブロックに書き込む。
【００３７】
次いで、右側距離画像形成部１２は、図６Ｄに示すように、右側距離画像（図５）における「視差値＝３」のブロックを、ｘ軸の負方向（つまり、左方向）に視差値に応じた距離だけ移動、つまり、３ブロックだけ移動させて右側距離画像のＭ×Ｎブロックに書き込む。
【００３８】
そして、左側距離画像の全ブロックの右側距離画像への書き込みが終了した図６Ｄに示す状態において、右側距離画像形成部１２は、Ｎｕｌｌのまま残ったブロックを除き、各ブロックの視差値の符号を反転させて“−”にする。
【００３９】
＜画像の具体例＞
図７は、実施例１の左側画像の一例を示す図であり、図８は、実施例１の右側画像の一例を示す図である。図７及び図８では、視点から近い順に、バス、建物、背景が存在する。左側距離画像形成部１１は、左側画像（図７）を基準画像とし、右側画像（図８）を参照画像として、ブロックマッチングにより、図９に示すような左側距離画像を形成する。図９は、実施例１の左側距離画像の一例を示す図である。
【００４０】
一方で、右側距離画像形成部１２は、左側距離画像（図９）を用いて、上述したブロック移動により、図１０に示す右側距離画像を形成する。図１０は、実施例１の右側距離画像の一例を示す図である。図９，１０での濃淡は、視差値の大きさを表す。すなわち、濃いほど視差値が小さくて視点から物体までの距離が遠いことを意味し、薄いほど視差値が大きくて視点から物体までの距離が近いことを意味する。なお、右側距離画像には、図１０に示すように、「オクルージョン領域」が存在する。「オクルージョン領域」とは、左側画像及び右側画像のうちの一方には存在するが他方には存在しない画像領域である。
【００４１】
以上のように、本実施例によれば、画像処理装置１０において、右側距離画像形成部１２は、左側距離画像を構成するＭ×Ｎブロックの各々を、各ブロックの視差値に応じた距離だけ移動させ、移動後のＭ×Ｎブロックから、左側距離画像と視点が異なる右側距離画像を形成する。
【００４２】
つまり、右側距離画像形成部１２は、ブロックマッチングを行わずに、左側距離画像のブロックを移動させることにより右側距離画像を形成する。ブロック移動の演算量は、ブロックマッチングの演算量に比べ、非常に小さい。また、右側距離画像形成部１２は、右側距離画像の形成にあたり、ＳＡＤの演算を行わない。よって、本実施例によれば、距離画像の形成の演算量を削減することができる。その結果、距離画像の形成を行う画像処理装置１０の消費電力を削減することができる。
【００４３】
［実施例２］
＜画像処理装置の構成例＞
図１１は、実施例２の画像処理装置の一例を示すブロック図である。図１１において、画像処理装置２０は、オクルージョン領域決定部２１を有する。
【００４４】
右側距離画像形成部１２は、実施例１の処理に加え、左側距離画像のブロック（ｍ,ｎ）を右側距離画像のブロック位置（ｍ’,ｎ’）に移動させる度に、移動後のブロック位置（ｍ’,ｎ’）をオクルージョン領域決定部２１に通知する。
【００４５】
オクルージョン領域決定部２１は、移動後のブロック位置（ｍ’,ｎ’）を通知される度に、オクルージョン領域マップを更新する。そして、左側距離画像の全ブロックの移動が完了した時点で、オクルージョン領域決定部２１は、オクルージョン領域マップを参照し、右側距離画像において、左側距離画像からの移動後のブロックが存在しない領域をオクルージョン領域と決定する。そして、オクルージョン領域決定部２１は、オクルージョン領域を構成するブロックの位置を示す情報を決定結果として出力する。
【００４６】
＜画像処理装置の処理＞
図１２は、実施例２の画像処理装置の処理の説明に供するフローチャートである。なお、ステップＳ４１，Ｓ４２，Ｓ４４〜Ｓ４６の処理は図４と同一であるため、説明を省略する。
【００４７】
まず、ステップＳ５１では、オクルージョン領域決定部２１は、オクルージョン領域マップを初期化する（ステップＳ５１）。オクルージョン領域マップは、右側距離画像と同様に、Ｍ×Ｎブロックの複数のブロックで構成され、ステップＳ５１での初期化により、全ブロックが“０”に設定される。
【００４８】
ステップＳ５２では、図４のステップＳ４３と同様、右側距離画像形成部１２は、ブロック（ｍ,ｎ）をブロック位置（ｍ’,ｎ’）に移動させる。さらに、右側距離画像形成部１２は、移動後のブロック位置（ｍ’,ｎ’）をオクルージョン領域決定部２１に通知する（ステップＳ５２）。
【００４９】
ステップＳ５３では、オクルージョン領域決定部２１は、オクルージョン領域マップのＭ×Ｎブロックのうち、ステップＳ５２で通知されたブロック位置（ｍ’,ｎ’）に対応するブロックの値を“０”から“１”に更新する（ステップＳ５３）。オクルージョン領域決定部２１は、左側距離画像のブロックの移動が行われる度に、ステップＳ５３の処理を行う。
【００５０】
左側距離画像の全ブロックの移動が終了したとき（ステップＳ４５：Ｙｅｓ）、右側距離画像形成部１２は、右側距離画像を出力するとともに、左側距離画像の全ブロックの移動が終了したことをオクルージョン領域決定部２１に通知する。
【００５１】
そして、左側距離画像の全ブロックの移動が終了した時点で（ステップＳ４５：Ｙｅｓ）、オクルージョン領域決定部２１は、オクルージョン領域マップを参照し、値が“０”のままであるブロックにより構成される領域をオクルージョン領域と決定する（ステップＳ５４）。
【００５２】
＜オクルージョン領域マップの更新例＞
図１３Ａ〜Ｄは、実施例２のオクルージョン領域マップの更新例の説明に供する図である。図１３Ａ〜Ｄには、Ｍ＝１６，Ｎ＝８とした場合を一例として示す。
【００５３】
右側距離画像が図６Ａに示す初期状態にある場合、オクルージョン領域マップは、図１３Ａに示す初期状態にある。すなわち、オクルージョン領域マップは、初期状態では、全ブロックの値が“０”である。
【００５４】
次いで、右側距離画像が図６Ｂに示す状態になったとき、オクルージョン領域マップは図１３Ｂに示す状態に更新される。すなわち、オクルージョン領域マップのＭ×Ｎブロックのうち、右側距離画像において「視差値＝０」のブロックが書き込まれた位置にあるブロックの値が“０”から“１”に更新される。
【００５５】
次いで、右側距離画像が図６Ｃに示す状態になったとき、オクルージョン領域マップは図１３Ｃに示す状態に更新される。すなわち、オクルージョン領域マップのＭ×Ｎブロックのうち、右側距離画像において「視差値＝２」のブロックが書き込まれた位置にあるブロックの値が“０”から“１”に更新される。
【００５６】
次いで、右側距離画像が図６Ｄに示す状態になったとき、オクルージョン領域マップは図１３Ｄに示す状態に更新される。すなわち、オクルージョン領域マップのＭ×Ｎブロックのうち、右側距離画像において「視差値＝３」のブロックが書き込まれた位置にあるブロックの値が“０”から“１”に更新される。
【００５７】
左側距離画像の全ブロックの右側距離画像への書き込みが終了した時点でオクルージョン領域マップにおいて値が“０”のままであるブロックにより構成される領域は、右側距離画像において、左側距離画像からの移動後のブロックが存在しない領域と一致する。そこで、左側距離画像の全ブロックの右側距離画像への書き込みが終了した図１３Ｄに示す状態において、オクルージョン領域決定部２１は、オクルージョン領域マップにおいて値が“０”のままであるブロックにより構成される領域をオクルージョン領域と決定する。つまり、画像処理装置２０において、オクルージョン領域決定部２１は、右側距離画像において、左側距離画像からの移動後のブロックが存在しない領域をオクルージョン領域と決定する。
【００５８】
これにより、簡易に、かつ、短時間でオクルージョン領域を決定することができる。
【００５９】
［実施例３］
図１４は、実施例３の画像処理装置の一例を示すブロック図である。図１４において、画像処理装置３０は、オクルージョン領域補完部３１を有する。
【００６０】
オクルージョン領域補完部３１には、右側距離画像形成部１２から右側距離画像が入力される。また、オクルージョン領域補完部３１には、オクルージョン領域決定部２１から、決定結果として、オクルージョン領域を構成するブロックの位置を示す情報が入力される。
【００６１】
オクルージョン領域補完部３１は、右側距離画像において、オクルージョン領域に隣接する複数のブロックのうち、最小の視差値のブロックによりオクルージョン領域を補完する。そして、オクルージョン領域補完部３１は、補完後の右側距離画像を出力する。
【００６２】
＜画像処理装置の処理＞
図１５は、実施例３の画像処理装置の処理の説明に供するフローチャートである。なお、ステップＳ４１，Ｓ４２，Ｓ４４〜Ｓ４６及びステップＳ５１〜Ｓ５４の処理は図４，図１２と同一であるため、説明を省略する。
【００６３】
オクルージョン領域決定部２１によりオクルージョン領域が決定されると（ステップＳ５４）、決定結果に従って、オクルージョン領域補完部３１は、右側距離画像のオクルージョン領域を補完する（ステップＳ６１）。
【００６４】
＜オクルージョン領域の補完例＞
図１６Ａ，Ｂは、実施例３のオクルージョン領域の補完例の説明に供する図である。図１６Ａ，Ｂには、Ｍ＝１６，Ｎ＝８とした場合を一例として示す。
【００６５】
図６ＤにおいてＮｕｌｌのまま残ったブロックにより構成される領域は、左側距離画像の全ブロックの右側距離画像への書き込みが終了した時点でオクルージョン領域マップにおいて値が“０”のままであるブロックにより構成される領域と一致する。つまり、図６ＤにおいてＮｕｌｌのまま残ったブロックにより構成される領域はオクルージョン領域である。
【００６６】
よって例えば、図５及び図６Ａ〜Ｄに示すようにして形成される右側距離画像には、図１６Ａに示すように、ＯＣ１〜ＯＣ５の５つの領域に分割されるオクルージョン領域が含まれる。
【００６７】
ここで、オクルージョン領域は、視点からの距離が遠い物体が、視点からの距離が近い物体によって隠されていて見えない領域と推定される。つまり、オクルージョン領域には、視点からの距離が遠い物体が存在すると推定される。また、視点からの距離が遠い物体に対する視差値は、視点からの距離が近い物体に対する視差値よりも小さい。
【００６８】
そこで、オクルージョン領域補完部３１は、右側距離画像において、オクルージョン領域に隣接する複数のブロックのうち、最小の視差値のブロックによりオクルージョン領域を補完する。
【００６９】
例えば図１６Ａにおいて、オクルージョン領域ＯＣ１，ＯＣ２，ＯＣ３にはそれぞれ、ｘ軸方向で、視差値＝２のブロックと視差値＝０のブロックとが隣接している。そこで、オクルージョン領域補完部３１は、オクルージョン領域ＯＣ１，ＯＣ２，ＯＣ３のそれぞれを、視差値＝０のブロックにより補完する。
【００７０】
また、オクルージョン領域ＯＣ４，ＯＣ５にはそれぞれ、ｘ軸方向で、視差値＝３のブロックと視差値＝２のブロックとが隣接している。そこで、オクルージョン領域補完部３１は、オクルージョン領域ＯＣ４，ＯＣ５のそれぞれを、視差値＝２のブロックにより補完する。
【００７１】
オクルージョン領域ＯＣ１〜ＯＣ５が補完された結果、オクルージョン領域補完部３１は、図１６Ｂに示すような、補完後の右側距離画像を得る。
【００７２】
以上のように、本実施例によれば、オクルージョン領域補完部３１は、右側距離画像において、オクルージョン領域に隣接する複数のブロックのうち、最小の視差値のブロックによりオクルージョン領域を補完する。
【００７３】
これにより、視点からの距離がより遠い距離画像によりオクルージョン領域を補完することができるので、精度良くオクルージョン領域を補完することができる。また、精度良くオクルージョン領域を補完することができるため、右側距離画像の精度を向上させることができる。
【００７４】
［他の実施例］
［１］実施例１〜３で図示した画像処理装置１０，２０，３０は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【００７５】
さらに、画像処理装置１０，２０，３０で行われる各種処理機能は、ＣＰＵ（Central  Processing  Unit）（または、ＭＰＵ（Micro  Processing  Unit）、ＭＣＵ（Micro  Controller  Unit）等のマイクロ・コンピュータ）上で、その全部または任意の一部を実行するようにしてもよい。また、各種処理機能は、ＣＰＵ（または、ＭＰＵ、ＭＣＵ等のマイクロ・コンピュータ）で解析実行するプログラム上、またはワイヤードロジックによるハードウェア上で、その全部または任意の一部を実行するようにしてもよい。
【００７６】
［２］実施例１〜３の画像処理装置１０，２０，３０は、例えば、次のようなハードウェア構成により実現することができる。
【００７７】
図１７は、画像処理装置のハードウェア構成例を示す図である。図１７に示すように、画像処理装置１００は、プロセッサ１０１と、メモリ１０２と、カメラ１０３と、表示装置１０４とを有する。
【００７８】
プロセッサ１０１の一例として、ＣＰＵ（Central  Processing  Unit）、ＤＳＰ（Digital  Signal  Processor）、ＦＰＧＡ（Field  Programmable  Gate  Array）等が挙げられる。また、メモリ１０２の一例として、ＳＤＲＡＭ（Synchronous  Dynamic  Random  Access  Memory）等のＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ等が挙げられる。
【００７９】
そして、実施例１〜３の画像処理装置１０，２０，３０で行われる各種処理機能は、不揮発性記憶媒体などの各種メモリに格納されたプログラムをプロセッサ１０１で実行することによって実現してもよい。すなわち、左側距離画像形成部１１と、右側距離画像形成部１２と、オクルージョン領域決定部２１と、オクルージョン領域補完部３１とによって実行される各処理に対応するプログラムがメモリ１０２に記録され、各プログラムがプロセッサ１０１で実行されてもよい。また、左側画像及び右側画像は、カメラ１０３で撮影されてもよい。また、左側距離画像及び右側距離画像、並びに、補完された右側距離画像は、表示装置１０４に表示されてもよい。
【００８０】
また、プロセッサ１０１は、１チップの画像処理回路として実現されてもよい。
【符号の説明】
【００８１】
１０，２０，３０  画像処理装置
１１  左側距離画像形成部
１２  右側距離画像形成部
２１  オクルージョン領域決定部
３１  オクルージョン領域補完部
【図１】
2014235615.tif 000005
【図２】
2014235615.tif 000006
【図３】
2014235615.tif 000007
【図４】
2014235615.tif 000008
【図５】
2014235615.tif 000009
【図６Ａ】
2014235615.tif 000010
【図６Ｂ】
2014235615.tif 000011
【図６Ｃ】
2014235615.tif 000012
【図６Ｄ】
2014235615.tif 000013
【図７】
2014235615.tif 000014
【図８】
2014235615.tif 000015
【図９】
2014235615.tif 000016
【図１０】
2014235615.tif 000017
【図１１】
2014235615.tif 000018
【図１２】
2014235615.tif 000019
【図１３Ａ】
2014235615.tif 000020
【図１３Ｂ】
2014235615.tif 000021
【図１３Ｃ】
2014235615.tif 000022
【図１３Ｄ】
2014235615.tif 000023
【図１４】
2014235615.tif 000024
【図１５】
2014235615.tif 000025
【図１６Ａ】
2014235615.tif 000026
【図１６Ｂ】
2014235615.tif 000027
【図１７】
2014235615.tif 000028