(57)【要約】【課題】少ない演算量で高精度の距離画像を生成すること。【解決手段】画像処理装置は、メモリ１３０と、メモリ１３０に接続されたプロセッサ１２０とを有する。プロセッサ１２０は、異なる２点から撮像された２画像に基づいて、異なる２点からの視差量を画素値として有する距離画像であって複数の画素からなるブロックごとに同一の画素値を有する距離画像を生成する。また、プロセッサ１２０は、異なる２点から撮像された２画像の少なくとも一方に基づいて、エッジの位置を示すエッジ画像を生成する。そして、プロセッサ１２０は、距離画像のブロックのうち、エッジ画像によって示されるエッジを含むブロックの画素値を当該ブロックに隣接する隣接ブロックの画素値を用いて補正する。【選択図】図１
2014215840.tif 000002
【特許請求の範囲】
【請求項１】
異なる２点から撮像された２画像に基づいて、前記異なる２点からの視差量を画素値として有する距離画像であって複数の画素からなるブロックごとに同一の画素値を有する距離画像を生成する距離画像生成部と、
前記異なる２点から撮像された２画像の少なくとも一方に基づいて、エッジの位置を示すエッジ画像を生成するエッジ画像生成部と、
前記距離画像のブロックのうち、前記エッジ画像によって示されるエッジを含むブロックの画素値を当該ブロックに隣接する隣接ブロックの画素値を用いて補正する補正部と
を有することを特徴とする画像処理回路。
【請求項２】
前記補正部は、
前記エッジを含むブロックの画素のうち、前記エッジよりも前記隣接ブロック側の画素の画素値を当該隣接ブロックの画素値に置き換えることを特徴とする請求項１記載の画像処理回路。
【請求項３】
前記距離画像のブロックに対応する前記エッジ画像のブロックにおいて、同一の行又は列にエッジであることを示すエッジ画素が複数含まれる場合に、互いに隣接する行又は列のエッジ画素間のユークリッド距離と各エッジ画素の画素値とに基づいて、同一の行又は列から１つのエッジ画素を選択する選択部
をさらに有することを特徴とする請求項１又は２記載の画像処理回路。
【請求項４】
前記距離画像生成部は、
前記異なる２点から撮像された２画像のうち一方の画像の一部の領域をテンプレートに設定し、他方の画像に複数の画素の間隔を空けて設定される複数のマッチング位置において前記テンプレートとのマッチングを行う処理を含むことを特徴とする請求項１〜３のいずれか１項に記載の画像処理回路。
【請求項５】
メモリと、
前記メモリに接続されたプロセッサとを有し、
前記プロセッサは、
異なる２点から撮像された２画像に基づいて、前記異なる２点からの視差量を画素値として有する距離画像であって複数の画素からなるブロックごとに同一の画素値を有する距離画像を生成し、
前記異なる２点から撮像された２画像の少なくとも一方に基づいて、エッジの位置を示すエッジ画像を生成し、
前記距離画像のブロックのうち、前記エッジ画像によって示されるエッジを含むブロックの画素値を当該ブロックに隣接する隣接ブロックの画素値を用いて補正する
ことを特徴とする画像処理装置。
【請求項６】
異なる２点から撮像された２画像に基づいて、前記異なる２点からの視差量を画素値として有する距離画像であって複数の画素からなるブロックごとに同一の画素値を有する距離画像を生成し、
前記異なる２点から撮像された２画像の少なくとも一方に基づいて、エッジの位置を示すエッジ画像を生成し、
前記距離画像のブロックのうち、前記エッジ画像によって示されるエッジを含むブロックの画素値を当該ブロックに隣接する隣接ブロックの画素値を用いて補正する
ことを特徴とする画像処理方法。
【請求項７】
コンピュータに、
異なる２点から撮像された２画像に基づいて、前記異なる２点からの視差量を画素値として有する距離画像であって複数の画素からなるブロックごとに同一の画素値を有する距離画像を生成し、
前記異なる２点から撮像された２画像の少なくとも一方に基づいて、エッジの位置を示すエッジ画像を生成し、
前記距離画像のブロックのうち、前記エッジ画像によって示されるエッジを含むブロックの画素値を当該ブロックに隣接する隣接ブロックの画素値を用いて補正する
処理を実行させることを特徴とする画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理回路、画像処理装置及び画像処理方法に関する。
【背景技術】
【０００２】
従来、画像処理装置においては、例えば画像の中央付近に写っている被写体に比して周囲の背景をぼやけさせるフィルタリングが行われることがある。すなわち、撮影済みの画像に対して事後的にフィルタリングを施すことにより、あたかも中央の被写体のみに焦点を合わせて撮影されたかのような画像を得ることが可能となっている。
【０００３】
このようなフィルタリングには、異なる２点から撮像された２画像に基づいて生成される距離画像を用いるのが一般的である。距離画像とは、撮像対象物に関する２箇所のカメラの視差量を画像化したものであり、距離画像の各画素には、輝度値の代わりに視差量が画素値として格納されている。一般に、カメラから近い位置にある撮像対象物については視差量が大きくなり、カメラから遠い位置にある撮像対象物については視差量が小さくなるため、距離画像によれば、カメラと撮像対象物の間の距離を画像として表現することができる。
【０００４】
距離画像を生成する際には、ステレオマッチング処理が行われることがある。ステレオマッチング処理とは、異なる２点から撮像された２画像間で互いに対応する対応領域を検出し、検出された対応領域の画像上の位置座標の差から視差量を求め、視差量を用いて奥行などを推定する手法である。このようなステレオマッチング処理としては、例えばグラフカット法、ＤＰ（Dynamic  Programming）法及びブロックマッチング法などの様々な手法が提案されている。
【０００５】
ブロックマッチング法は、一方の画像の一部の領域をテンプレートとし、他方の画像においてテンプレートを移動させながらマッチング処理を行い、テンプレートとの相関が最も高い領域を探索して対応領域を得る方法である。すなわち、ブロックマッチング法では、一方の画像の複数画素を含む領域を順次テンプレートとし、テンプレートに類似した領域を他方の画像から探索することにより、２画像間の対応領域が検出される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００１−１８４４９７号公報
【特許文献２】特表２００５−５３５０１５号公報
【特許文献３】特開２００１−３４６０３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、ステレオマッチング処理を用いた距離画像生成には、少ない演算量で高精度の距離画像を生成することが困難であるという問題がある。すなわち、上述したグラフカット法やＤＰ法は、演算が複雑であり、ハードウェア化することが困難であるため、これらの手法を用いたステレオマッチング処理を実現するのは容易でない。
【０００８】
一方、ブロックマッチング法においては、テンプレートを１画素ずつ移動させてマッチングすると、テンプレートとの相関が高い領域を正確に検出することができる反面、相関を算出するための演算量が増大し、計算内容が複雑化する。また、テンプレートを複数の画素ずつ移動させてマッチングすると、演算量を削減することは可能であるが、テンプレートとの相関が最も高い領域を検出することができる確証がなく、マッチングの精度が低下することがある。
【０００９】
このように、ステレオマッチング処理においては、演算量の削減とマッチング精度の向上とを両立することが困難であるため、ステレオマッチング処理を用いて少ない演算量で高精度の距離画像を生成することは困難である。
【００１０】
開示の技術は、かかる点に鑑みてなされたものであって、少ない演算量で高精度の距離画像を生成することができる画像処理回路、画像処理装置及び画像処理方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本願が開示する画像処理回路は、１つの態様において、異なる２点から撮像された２画像に基づいて、前記異なる２点からの視差量を画素値として有する距離画像であって複数の画素からなるブロックごとに同一の画素値を有する距離画像を生成する距離画像生成部と、前記異なる２点から撮像された２画像の少なくとも一方に基づいて、エッジの位置を示すエッジ画像を生成するエッジ画像生成部と、前記距離画像のブロックのうち、前記エッジ画像によって示されるエッジを含むブロックの画素値を当該ブロックに隣接する隣接ブロックの画素値を用いて補正する補正部とを有する。
【発明の効果】
【００１２】
本願が開示する画像処理回路、画像処理装置及び画像処理方法の１つの態様によれば、少ない演算量で高精度の距離画像を生成することができるという効果を奏する。
【図面の簡単な説明】
【００１３】
【図１】図１は、実施の形態１に係る画像処理装置の構成を示すブロック図である。
【図２】図２は、実施の形態１に係るプロセッサの機能を示すブロック図である。
【図３】図３は、実施の形態１に係る画像処理装置の動作を示すフロー図である。
【図４】図４は、実施の形態１に係る距離画像生成処理を示すフロー図である。
【図５】図５は、実施の形態１に係る画像補正処理を示すフロー図である。
【図６】図６は、実施の形態１に係る画像補正処理の具体例を示す図である。
【図７】図７は、実施の形態２に係るプロセッサの機能を示すブロック図である。
【図８】図８は、実施の形態２に係るエッジ選択処理を示すフロー図である。
【図９】図９は、実施の形態２に係るエッジ選択処理の具体例を示す図である。
【発明を実施するための形態】
【００１４】
以下、本願が開示する画像処理回路、画像処理装置及び画像処理方法の実施の形態について、図面を参照して詳細に説明する。なお、この実施の形態により本発明が限定されるものではない。
【００１５】
（実施の形態１）
図１は、実施の形態１に係る画像処理装置１００の構成を示すブロック図である。図１に示す画像処理装置１００は、左カメラ１１０Ｌ、右カメラ１１０Ｒ、プロセッサ１２０、メモリ１３０及びディスプレイ１４０を有する。
【００１６】
左カメラ１１０Ｌ及び右カメラ１１０Ｒは、それぞれ撮像素子を備え、同時に同一の方向に向かって撮像する。ここでは、便宜上、２つのカメラを左カメラ１１０Ｌ及び右カメラ１１０Ｒとしたが、これらのカメラは、要するに異なる位置に備えられた２つのカメラである。また、左カメラ１１０Ｌによって撮像されて得られた画像を以下では「左画像」といい、右カメラ１１０Ｒによって撮像されて得られた画像を以下では「右画像」という。
【００１７】
左カメラ１１０Ｌ及び右カメラ１１０Ｒは、互いに異なる位置に配置されているため、同時に同一の方向に向かって撮像した場合でも、左画像と右画像とでは同じ被写体の座標位置が異なっている。この座標位置の違いは、被写体に関する２つのカメラの視差量に対応しており、カメラから近い被写体ほど視差量が大きいため、画像上での座標位置の違いも大きい。
【００１８】
プロセッサ１２０は、プログラムを実行し、画像処理装置１００全体を制御する。具体的には、プロセッサ１２０は、左カメラ１１０Ｌ及び右カメラ１１０Ｒから左画像及び右画像を取得し、距離画像を生成する。そして、プロセッサ１２０は、生成された距離画像を用いて、例えば着色やフィルタリングなどの所定の表示処理を実行し、得られた表示画像をディスプレイ１４０に表示させる。また、プロセッサ１２０は、距離画像を生成する際、画像からエッジを抽出することにより得られるエッジ画像を用いて距離画像の補正を行う。これらのプロセッサ１２０の機能については、後に詳述する。なお、プロセッサ１２０は、例えばＣＰＵ（Central  Processing  Unit）、ＤＳＰ（Digital  Signal  Processor）、ＦＰＧＡ（Field  Programmable  Gate  Array）又は画像処理回路などによって実現されても良い。
【００１９】
メモリ１３０は、例えばＲＡＭ（Random  Access  Memory）やＲＯＭ（Read  Only  Memory）を備え、プロセッサ１２０が実行するプログラム自体やプログラム実行時に使用されるデータなどを記憶する。
【００２０】
ディスプレイ１４０は、例えば液晶素子を備え、プロセッサ１２０から出力される表示画像を表示する。
【００２１】
図２は、実施の形態１に係るプロセッサ１２０の機能を示すブロック図である。図２に示すプロセッサ１２０は、撮像制御部１２１、距離画像生成部１２２、エッジ検出部１２３、画像補正部１２４及び表示制御部１２５を有する。
【００２２】
撮像制御部１２１は、左カメラ１１０Ｌ及び右カメラ１１０Ｒを制御し、それぞれ左画像及び右画像を取得させる。すなわち、撮像制御部１２１は、左カメラ１１０Ｌ及び右カメラ１１０Ｒに同時に撮像を実行させる。そして、撮像制御部１２１は、得られた左画像及び右画像を左カメラ１１０Ｌ及び右カメラ１１０Ｒから取得する。
【００２３】
距離画像生成部１２２は、撮像制御部１２１によって取得された左画像及び右画像を用いて距離画像を生成する。すなわち、距離画像生成部１２２は、左画像の複数の画素を含む領域をテンプレートとし、右画像においてテンプレートを移動させながら、それぞれのマッチング位置において相関演算を行う。このとき、距離画像生成部１２２は、テンプレートを１画素ずつ移動させてマッチング位置を設定するのではなく、例えばテンプレート幅の画素数ずつテンプレートを移動させてマッチング位置を設定する。換言すれば、距離画像生成部１２２は、複数の画素の間隔を空けてマッチング位置を設定する。このため、右画像内に設定されるマッチング位置の数が少なくなり、距離画像生成部１２２が相関を算出するための演算量は少なくて済む。
【００２４】
距離画像生成部１２２は、１つのテンプレートについてすべてのマッチング位置に関する相関を算出すると、このテンプレートとの相関が最大となるマッチング位置（以下「最大相関位置」という）を決定する。こうして決定された右画像の最大相関位置は、左画像のテンプレートに対応する領域の位置である。そこで、距離画像生成部１２２は、左画像におけるテンプレートの位置座標と右画像における最大相関位置の位置座標との差から視差量を求める。そして、距離画像生成部１２２は、左画像のテンプレート内の画素に視差量を画素値として格納する。
【００２５】
さらに、距離画像生成部１２２は、左画像内で順次別のテンプレートを設定し、同様のマッチングを繰り返すことにより、左画像内のすべてのテンプレートについて視差量を求める。このような過程を経て、距離画像生成部１２２は、左画像を基準とし、画素値として視差量を有する距離画像を生成する。また、距離画像生成部１２２は、右画像内にテンプレートを設定して上記と同様の処理を行うことにより、右画像を基準とした距離画像を生成する。
【００２６】
エッジ検出部１２３は、撮像制御部１２１によって取得された左画像及び右画像を用いてエッジ画像を生成する。すなわち、エッジ検出部１２３は、例えばソーベルフィルタなどを用いて、左画像を基にしたエッジ画像と右画像を基にしたエッジ画像とを生成する。エッジ画像においては、例えば画像中の異なる被写体の境界にある輪郭線に相当する画素の画素値が大きくなっている。
【００２７】
画像補正部１２４は、エッジ検出部１２３によって生成されたエッジ画像を用いて、距離画像生成部１２２によって生成された距離画像を補正する。このとき、画像補正部１２４は、左画像を基準とした距離画像を補正する場合には、左画像から生成されたエッジ画像を用い、右画像を基準とした距離画像を補正する場合には、右画像から生成されたエッジ画像を用いる。
【００２８】
具体的には、画像補正部１２４は、距離画像内のブロックであってマッチング時に使用されたテンプレートに相当する各ブロックについて、エッジ画像を参照することにより、ブロック内にエッジが含まれるか否かを判定する。そして、画像補正部１２４は、エッジが含まれるブロックについて、エッジよりも左側の画素には左隣のブロック内の画素の画素値をコピーする。同様に、画像補正部１２４は、エッジが含まれるブロックについて、エッジから右側の画素には右隣のブロック内の画素の画素値をコピーする。このようにして、画像補正部１２４は、エッジが含まれるブロックにおいて、エッジよりも隣接ブロック側の画素の画素値を隣接ブロックの画素の画素値に置き換える。この結果、画像補正部１２４は、画像中の輪郭線が明瞭になるように補正された距離画像を得る。
【００２９】
表示制御部１２５は、画像補正部１２４によって補正された距離画像を用いて、例えば着色やフィルタリングなどの所定の表示処理を実行し、得られた表示画像をディスプレイ１４０へ出力する。
【００３０】
次いで、上記のように構成された画像処理装置１００の動作について、図３に示すフロー図を参照しながら説明する。
【００３１】
撮像制御部１２１によって左カメラ１１０Ｌ及び右カメラ１１０Ｒが制御され、同時に同方向に向かって撮像された左画像及び右画像が撮像制御部１２１によって取得される。取得された左画像及び右画像は、距離画像生成部１２２及びエッジ検出部１２３へ出力され、距離画像生成部１２２によって、マッチングが行われることにより距離画像が生成される（ステップＳ１０１）。このとき、マッチングは、テンプレートを１画素ずつ移動させながら行われるのではなく、テンプレートを複数の画素ずつ移動させながら行われる。このため、生成される距離画像は粗い画像となるものの、距離画像生成時の演算量は少なくて済む。なお、距離画像生成部１２２による距離画像生成処理については、後に図４に示すフロー図を参照しながら詳述する。
【００３２】
一方、エッジ検出部１２３によって、例えばソーベルフィルタが用いられることにより、左画像及び右画像それぞれに対応するエッジ画像が生成される（ステップＳ１０２）。エッジ画像の生成は、比較的容易な処理であり、実行される演算の量も多くない。このため、エッジ画像の生成による演算量の増大は無視できる程度に小さい。なお、距離画像の生成とエッジ画像の生成とは、並行して実行されても良く、一方の画像の生成が他方の画像の生成より先に実行されても良い。
【００３３】
生成された距離画像及びエッジ画像は、画像補正部１２４へ出力され、画像補正部１２４によって、エッジ画像を用いた距離画像の補正が行われる（ステップＳ１０３）。具体的には、画像補正部１２４によって、距離画像内のブロックにおいて、エッジよりも隣接ブロック側の画素に隣接ブロックの画素の画素値がコピーされ、距離画像中の輪郭線を明瞭にする補正が行われる。この結果、距離画像生成部１２２によって生成された粗い距離画像から、輪郭線の位置が正確な距離画像が得られる。すなわち、距離画像生成時の演算量を削減しても、高精度な距離画像を得ることができる。
【００３４】
また、通常、左カメラ１１０Ｌ及び右カメラ１１０Ｒから被写体までの距離は、画像中の輪郭線の位置を境界にして大きく変化するはずである。このため、距離画像において、エッジを含むブロックの画素値は、カメラからの距離が異なる複数の被写体までの距離を反映した視差量となっており、個々の被写体に関する正確な視差量ではない。そこで、エッジよりも隣接ブロック側の画素には、エッジを含まない隣接ブロック内の画素の画素値をコピーすることで、エッジを含むブロック内の画素の画素値を正確な視差量に変換することができる。なお、画像補正部１２４による画像補正処理については、後に図５に示すフロー図を参照しながら詳述する。
【００３５】
補正された距離画像は、表示制御部１２５へ出力され、表示制御部１２５によって、例えば着色やフィルタリングなどの所定の表示処理が実行され、得られた表示画像がディスプレイ１４０に表示される（ステップＳ１０４）。
【００３６】
次に、距離画像生成部１２２による距離画像生成処理について、図４に示すフロー図を参照しながら説明する。なお、以下においては、左画像にテンプレートを設定して左画像を基準とした距離画像を生成する場合の距離画像生成処理について説明するが、右画像を基準とした距離画像を生成する場合も同様の処理を実行すれば良い。
【００３７】
まず、左画像内の複数の画素を含む領域がテンプレートに設定される（ステップＳ２０１）。テンプレートは、例えば左画像を分割して得られる複数の矩形領域のそれぞれに対応し、ここでは、例えば左画像の左上端に形成される矩形領域がテンプレートに設定される。なお、テンプレートは、隣接するテンプレート同士が重複するように設定されても良いが、互いに重複しない複数の矩形領域をそれぞれテンプレートとすることにより、テンプレートの数を最小限にすることができる。結果として、右画像とのマッチング処理の回数を最小限に抑制し、演算量を削減することができる。
【００３８】
テンプレートが設定されると、テンプレートとの相関が算出される右側画像内のマッチング位置が設定される（ステップＳ２０２）。マッチング位置は、例えば右画像の左上端から右下端へ向かって順次設定されるが、ここでは、例えば右画像の左上端にマッチング位置が設定される。
【００３９】
マッチング位置が設定されると、テンプレートとマッチング位置におけるテンプレートと同サイズの領域との間で相関が算出される（ステップＳ２０３）。すなわち、ここでは、左画像と右画像の間で左上端における矩形領域内にある画素の輝度値の相関が算出される。算出された相関は、例えばメモリ１３０に一時的に記憶される。
【００４０】
そして、右画像全体について、テンプレートとの相関算出が終了したか否かが判断され（ステップＳ２０４）、終了していない場合には（ステップＳ２０４Ｎｏ）、右画像において次のマッチング位置が設定される（ステップＳ２０２）。すなわち、マッチング位置は、右画像の左上端から右下端へ向かって順次設定されるため、右下端のマッチング位置までのすべてのマッチング位置についてテンプレートとの相関算出が終了したか否かが判断される。ここでは、左上端のマッチング位置についてテンプレートとの相関算出が終了したのみであるため、ステップＳ２０２において次のマッチング位置が設定される。
【００４１】
ここで、次のマッチング位置は、現在のマッチング位置から複数画素の間隔を空けて設定される。すなわち、右画像におけるマッチング位置は、１画像ずつ移動して設定されるのではなく、複数画素ずつ移動して設定される。具体的には、例えば、現在のマッチング位置からテンプレート幅の画素数だけ右方向に移動した位置が次のマッチング位置となる。このように、次のマッチング位置が現在のマッチング位置から複数画素の間隔を空けて設定されるため、右画像内のマッチング位置の数を削減することができ、相関算出のための演算量を削減することができる。
【００４２】
このように、右画像において複数画素の間隔を空けてマッチング位置が順次設定されると、それぞれのマッチング位置においてテンプレートとの相関が算出され、算出された相関がメモリ１３０に記憶される。そして、右画像全体について、テンプレートとの相関算出が終了すると（ステップＳ２０４Ｙｅｓ）、メモリ１３０に記憶された相関が最大となるマッチング位置（最大相関位置）が決定される（ステップＳ２０５）。最大相関位置は、左画像において設定されたテンプレートとの相関が最も高い右画像内の領域の位置を示しているため、左画像のテンプレートに対応する右画像内の対応領域を示しているといえる。
【００４３】
そして、左画像のテンプレートと右画像内の対応領域との画像上における位置座標の差分から視差量が求められ、求められた視差量がテンプレート内の画素の画素値として格納される。これにより、左画像の左上端に設定されたテンプレートに関してのマッチングが終了し、左画像内のすべてのテンプレートについてマッチングが終了したか否かが判断される（ステップＳ２０６）。ここでは、左上端のテンプレートについてマッチングが終了したのみであるため、すべてのテンプレートについてのマッチングは終了しておらず（
ステップＳ２０６Ｎｏ）、ステップＳ２０１において次のテンプレートが設定される。次のテンプレートは、例えば現在のテンプレートに隣接するテンプレートなどとすることができる。したがって、ここでは、現在のテンプレートが左画像の左上端に位置しているため、例えば、このテンプレートの右隣の矩形領域が次のテンプレートとなる。
【００４４】
このように、左画像の各テンプレートについて、右画像内のすべてのマッチング位置における相関が算出されて最大相関位置が決定され、テンプレートと最大相関位置の位置座標の差分から視差量が求められる。そして、求められた視差量が各テンプレート内の画素の画素値として格納される。この結果、テンプレートに対応するブロックごとに同一の視差量を画素値として有する画素からなる距離画像が生成される。生成された距離画像には、孤立点の除去や平滑化などの所定の処理が施され（ステップＳ２０７）、これらの処理後の距離画像が距離画像生成部１２２から画像補正部１２４へ出力される。
【００４５】
次に、画像補正部１２４による画像補正処理について、図５に示すフロー図を参照しながら説明する。なお、以下においては、左画像を基準とした距離画像を補正する場合の画像補正処理について説明するが、右画像を基準とした距離画像を補正する場合も同様の処理を実行すれば良い。
【００４６】
画像補正部１２４による画像補正処理は、距離画像生成処理において用いられたテンプレートに対応するブロック単位で実行される。すなわち、距離画像において、同一の画素値を有する複数の画素からなるブロックごとに、エッジ画像を用いた補正が行われる。具体的には、まず、距離画像内の１つのブロックが補正対象の対象ブロックに設定される（ステップＳ３０１）。対象ブロックは、例えば距離画像の左上端のブロックから順に設定されれば良い。
【００４７】
対象ブロックが設定されると、エッジ検出部１２３によって生成されたエッジ画像が参照され、対象ブロック内にエッジが含まれるか否かが判定される（ステップＳ３０２）。すなわち、左画像を基準とした距離画像を補正する場合には、左画像から生成されたエッジ画像が参照され、エッジ画像内の対象ブロックに対応する領域にエッジに対応する画素が含まれるか否かが判定される。
【００４８】
この判定の結果、対象ブロック内にエッジが含まれなければ（ステップＳ３０２Ｎｏ）、次の対象ブロックが設定される（ステップＳ３０１）。すなわち、例えば現在の対象ブロックの右隣のブロックが次の対象ブロックに設定される。このようにして距離画像の左上端から対象ブロックが順次設定され、対象ブロック内にエッジが含まれると判定されると（ステップＳ３０２Ｙｅｓ）、対象ブロック内の画素の画素値が置き換えられる。
【００４９】
具体的には、対象ブロック内のエッジに対応する画素よりも左側のすべての画素に、対象ブロックの左側に隣接する隣接ブロック内の画素の画素値がコピーされる。同様に、対象ブロック内のエッジに対応する画素から右側のすべての画素に、対象ブロックの右側に隣接する隣接ブロック内の画素の画素値がコピーされる（ステップＳ３０３）。この結果、すべての画素の画素値が同一であった対象ブロックにおいて、エッジに対応する画素を境界として画素値が異なることになる。したがって、画像中の正確な輪郭線の位置を示すエッジ画像のエッジが距離画像においても明瞭になる。換言すれば、距離画像において正確な位置に輪郭線が表れることとなり、距離画像の精度が向上する。また、エッジを含まない隣接ブロックの画素値をコピーすることにより、単一の被写体に関する視差量を対象ブロックの画素値とすることができ、距離画像の精度が向上する。
【００５０】
ここまでの処理により、エッジが含まれる対象ブロックに関しての補正が終了し、距離画像内のすべてのブロックが対象ブロックとなったか否かが判断される（ステップＳ３０４）。この判断の結果、まだ対象ブロックとなっていないブロックが残っていれば（ステップＳ３０４Ｎｏ）、ステップＳ３０１において次の対象ブロックが設定される。また、すべてのブロックが対象ブロックとなり、距離画像全体についての補正が終了していれば（ステップＳ３０４Ｙｅｓ）、画像補正処理が終了する。
【００５１】
ここで、距離画像のブロック内の画素値のコピーについて、図６を参照してより具体的に説明する。図６において、補正前の距離画像１５０のブロック１５１内の画素は画素値ａを有し、ブロック１５２内の画素は画素値ｂを有している。また、距離画像１５０に対応するエッジ画像１６０においては、エッジ１６１が検出されている。エッジ１６１は、エッジ画像１６０の左から３列目に位置しているため、距離画像１５０のブロック１５１内に含まれることになる。
【００５２】
この状況で上述した隣接ブロックの画素値のコピーを実行すると、補正後の距離画像１７０においては、ブロック１７１内のエッジ１７３から右側の画素の画素値がブロック１７２内の画素の画素値ｂに等しくなっている。すなわち、補正前はすべての画素が画素値ａを有していたブロック１５１が、補正後はエッジよりも左側の画素が画素値ａを有しエッジから右側の画素が画素値ｂを有するブロック１７１に変更されている。これは、補正前は、ブロック１５１とブロック１５２の境界が輪郭線となっていたのに対し、補正後は、エッジ画像１６０におけるエッジ１６１が距離画像においても輪郭線となったことを意味する。このように、ブロック単位で輪郭線が表れる粗い距離画像に対して、本実施の形態に係るエッジ画像を用いた画像補正処理を施すことにより、正確な位置に輪郭線が表れた高精度の距離画像を得ることができる。
【００５３】
なお、図６においては、ブロック１５１の左側に隣接する隣接ブロックを省略したため、補正後もエッジ１７３より左側の画素が画素値ａを有することとなっている。しかしながら、ブロック１５１の左側に隣接ブロックがある場合は、補正後において、エッジ１７３より左側の画素の画素値が、左側の隣接ブロック内の画素の画素値に等しくなる。
【００５４】
以上のように、本実施の形態によれば、左画像及び右画像を用いて、複数画素の間隔を空けてマッチング位置を移動させつつテンプレートとの相関を算出することにより、粗い距離画像を生成するとともに、エッジ画像を生成する。そして、テンプレートに対応する距離画像のブロックのうちエッジを含むブロックについては、エッジから隣接ブロック側の画素の画素値を隣接ブロックの画素値に置き換える。このため、距離画像生成時の相関演算量を削減することができるとともに、正確な位置に輪郭線が表れた高精度の距離画像を得ることができる。つまり、少ない演算量で高精度の距離画像を生成することができる。
【００５５】
（実施の形態２）
上記実施の形態１においては、エッジを含む距離画像のブロック内のエッジから隣接ブロック側の画素の画素値を隣接ブロックの画素値に置き換える画像補正処理を行うこととした。しかしながら、例えば画像にノイズなどが発生している場合には、１つのブロックの同一行にエッジを示す画素（以下「エッジ画素」という）が複数含まれ、適切な画像補正処理が行われないことがある。そこで、実施の形態２では、１つのブロックの同一行にエッジ画素が複数含まれる場合でも、適切な１つのエッジ画素を選択した上で画像補正処理が行われる。
【００５６】
本実施の形態に係る画像処理装置の構成は、実施の形態１の画像処理装置（図１）と同様であるため、その説明を省略する。本実施の形態においては、プロセッサ１２０の機能が実施の形態１とは異なっている。
【００５７】
図７は、実施の形態２に係るプロセッサ１２０の機能を示すブロック図である。図７において、図２と同じ部分には同じ符号を付し、その説明を省略する。図７に示すプロセッサ１２０では、図２に示すプロセッサ１２０に単一エッジ選択部２０１が追加されている。
【００５８】
単一エッジ選択部２０１は、エッジ画像において、各ブロックの行ごとに１つのエッジ画素を選択する。すなわち、距離画像生成部１２２が距離画像生成時に使用するテンプレートに対応するブロック内には、同一行に複数のエッジ画素が存在する可能性があるが、単一エッジ選択部２０１は、ブロック内の各行から１つのエッジ画素を選択する。
【００５９】
具体的には、単一エッジ選択部２０１は、エッジ画像のブロック内において、上下に隣接する行のエッジ画素のうち互いのユークリッド距離が小さいエッジ画素同士を順に結合していき、複数のエッジ画素を含むエッジ候補を決定する。ここで、ブロック内の同一行に複数のエッジ画素が存在する場合には、１ブロックについて複数のエッジ候補が決定される。そして、単一エッジ選択部２０１は、複数のエッジ候補のうち、画素値の総和が最も大きいエッジ候補をエッジと判定し、このエッジに含まれるエッジ画素を最終的なエッジ画素とする。
【００６０】
次いで、単一エッジ選択部２０１によるエッジ選択処理について、図８に示すフロー図を参照しながら説明する。以下のエッジ選択処理は、エッジ画像に設定されるブロックであって、距離画像生成部１２２が使用するテンプレートに対応するブロックごとに実行される。
【００６１】
まず、エッジ画像のブロックから画素値が閾値以上のエッジ画素が抽出される（ステップＳ４０１）。エッジ画像においては、エッジに相当する画素の画素値が大きくなっているため、閾値以上の画素値を有する画素を抽出することにより、エッジに相当するエッジ画素が抽出される。この段階では、同一行から複数のエッジ画素が抽出される可能性がある。
【００６２】
そして、上下の行のエッジ画素を結合してエッジ候補を決定するために、エッジ画素の結合を開始する開始行が決定される（ステップＳ４０２）。開始行の決定は、ブロック内の複数の行のうち、エッジ画素が最も少ない行を選択することによって行われる。開始行が決定されると、開始行に含まれるエッジ画素のいずれか１つが結合の起点となる起点画素に設定される（ステップＳ４０３）。
【００６３】
そして、起点画素と上下に隣接する行の起点画素近傍にあるエッジ画素との画素値の比較が行われ、起点画素近傍のエッジ画素のうち起点画素との画素値の差分が最小の画素が抽出される（ステップＳ４０４）。すなわち、例えば開始行の起点画素と比較して、開始行の上方向に隣接する行からエッジ画素が抽出される場合には、起点画素の画素値と起点画素からのユークリッド距離が小さい左上、真上及び右上の３近傍画素のうちのエッジ画素の画素値との差分が求められる。そして、求められた差分が最も小さくなるエッジ画素が開始行の上方向に隣接する行から抽出される。なお、上下に隣接するいずれの行においても起点画素の３近傍画素にエッジ画素が含まれない場合には、いずれの画素も抽出されず、この起点画素に関してのエッジ選択処理は終了する。
【００６４】
このようにして起点画素の３近傍画素にエッジ画素が含まれる場合は、いずれか１つのエッジ画素が抽出され、すべての行からエッジ画素の抽出が終了したか否かが判断される（ステップＳ４０５）。この判断の結果、まだエッジ画素の抽出が行われていない行がある場合には（ステップＳ４０５Ｎｏ）、直近に抽出されたエッジ画素が新たに起点画素に設定され（ステップＳ４０３）、さらに隣接する行からエッジ画素の抽出が行われる（ステップＳ４０４）。
【００６５】
このように、起点画素の上下に隣接する行の３近傍画素にエッジ画素が含まれる場合は１つのエッジ画素を抽出し、抽出されたエッジ画素を新たな起点画素に設定して隣接する行のエッジ画素を抽出する処理が繰り返される。この結果、すべての行からエッジ画素の抽出が終了した場合には（ステップＳ４０５Ｙｅｓ）、開始行に設定された起点画素を含み上下方向に結合する一連のエッジ画素からなるエッジ候補が得られる。
【００６６】
そして、開始行のすべてのエッジ画素を起点画素として同様の処理を繰り返すことにより、開始行のエッジ画素ごとにエッジ候補が得られる。そこで、各エッジ候補の画素値の総和が比較され、画素値の総和が最も大きいエッジ候補がエッジと判断される。これにより、エッジと判断されたエッジ候補に含まれる各行のエッジ画素が最終的なエッジ画素となる。各エッジ候補は、一行に１つのエッジ画素を含むため、どのエッジ候補がエッジと判断されても、最終的なエッジ画素は一行に１つしか含まれない。したがって、単一エッジ選択部２０１は、一行に１つのエッジ画素を含むエッジ画像を生成し、画像補正部１２４へ出力することができる。この結果、画像補正部１２４は、各行から適切な１つのエッジ画素が選択されたエッジ画像を用いて、正しく画像補正処理を行うことができる。
【００６７】
ここで、エッジ選択処理の具体例について、図９を参照しながら説明する。図９は、エッジ検出部１２３によって生成されたエッジ画像から単一エッジ選択部２０１が最終的なエッジを選択する処理を説明する図である。
【００６８】
図９に示すエッジ画像の各画素のうち、画素値が２００以上の画素はエッジ画素である。図９においては、エッジ画素の画素値に下線を引いて示している。すなわち、例えば行＃１においては、左から４番目の画素（画素値２５６）及び左から６番目の画素（画素値２００）の２つがエッジ画素である。同様に、例えば行＃２においては、左から３番目の画素（画素値２００）がエッジ画素である。
【００６９】
このようなエッジ画像において、まずエッジ画素が最も少ない行が開始行に決定される。すなわち、図９においては、エッジ画素を１つしか含まない行＃２が開始行に決定される。また、開始行のエッジ画素が起点画素に設定されるため、行＃２の左から３番目の画素（画素値２００）が起点画素に設定される。
【００７０】
起点画素が設定されると、隣接する行の３近傍画素からエッジ画素が抽出されるが、例えば行＃１については、起点画素の３近傍画素のうち左から４番目の画素（画素値２５６）のみがエッジ画素である。このため、行＃１からは左から４番目の画素（画素値２５６）が抽出される。同様に、行＃３からは左から４番目の画素（画素値２２５）が抽出される。
【００７１】
そして、行＃３からエッジ画素が抽出されると、このエッジ画素が新たに起点画素となり、行＃４からエッジ画素が抽出される。行＃４においては、起点画素の３近傍画素のうち左から４番目の画素（画素値２３０）と左から５番目の画素（画素値２００）とがエッジ画素である。これら２つのエッジ画素のうち、起点画素である行＃３の左から４番目の画素（画素値２２５）との画素値の差分が最も小さいのは、行＃４の左から４番目の画素（画素値２３０）である。このため、行＃４からは左から４番目の画素（画素値２３０）が抽出される。
【００７２】
以下同様に、行＃４から抽出されたエッジ画素が起点画素となり、行＃５からエッジ画素が抽出される。行＃５からは、行＃４の左から４番目の画素（画素値２３０）との画素値の差分が最も小さい左から４番目の画素（画素値２５６）が抽出される。そして、行＃６からは、行＃５の左から４番目の画素（画素値２５６）との画素値の差分が最も小さい左から５番目の画素（画素値２３０）が抽出される。また、行＃７及び行＃８からは、それぞれ左から５番目の画素（画素値２４０）と左から６番目の画素（画素値２２０）とが抽出される。
【００７３】
これにより、図９において白黒反転して示すエッジ画素を含むエッジ候補が決定される。図９に示すエッジ画像においては、開始行である行＃２にエッジ画素が１つしかないことから、このエッジ候補がエッジであると判断され、白黒反転して示すエッジ画素が最終的なエッジ画素となる。これらの最終的なエッジ画素は、各行に１つずつしか含まれておらず、画像補正部１２４は、正しく画像補正処理を行うことができる。
【００７４】
以上のように、本実施の形態によれば、ブロック内の互いに隣接する行から結合可能なエッジ画素を順次選択してエッジ候補とし、画素値の総和が最も大きいエッジ候補をエッジと判断し、エッジに含まれるエッジ画素を最終的なエッジ画素とする。このため、エッジ画像の１つのブロックの同一行にエッジ画素が複数含まれる場合でも、正しく画像補正処理を行うことができる。
【００７５】
なお、上記各実施の形態においては、プロセッサ１２０を用いて左画像及び右画像から距離画像を生成するものとした。このような距離画像の生成に用いられるプロセッサは、汎用のプロセッサのみではなく、例えば動画像の符号化において用いられる画像処理専用回路などを含む。この画像処理専用回路は、動画像の画像符号化においてマクロブロック単位で動きベクトルを探索する処理などを実行する回路である。動画像の連続する２フレームの間で動きベクトルを探索する処理を、上記各実施の形態の左画像及び右画像に適用することにより、既存の回路を用いて距離画像を効率的に生成することができる。
【００７６】
また、例えばＹＣｂＣｒ方式の４：２：２フォーマットや４：２：０フォーマットの画像に対して、上記各実施の形態の画像処理を適用する場合には、輝度Ｙの画像と色差Ｃｂ、Ｃｒいずれか一方の画像とに対して画像処理を適用しても良い。こうすることにより、色差Ｃｂ、Ｃｒの双方の画像に対して画像処理を適用する場合と比べて、高精度な距離画像を生成する際の演算量をさらに削減することができる。
【００７７】
上記各実施の形態に係る画像処理装置１００は、例えばスマートフォンなどの携帯端末装置や汎用サーバなどの情報処理装置に実装することが可能である。また、上記各実施の形態に係る画像処理装置１００は、必ずしも左カメラ１１０Ｌ及び右カメラ１１０Ｒを備える必要はなく、別体のカメラによって撮像された２画像を取得した上で、上記各実施の形態と同様の画像処理を行っても良い。
【００７８】
さらに、上記各実施の形態において説明した画像処理装置１００の動作をコンピュータが実行可能なプログラムとして記述することも可能である。この場合、このプログラムをコンピュータが読み取り可能な記録媒体に格納し、コンピュータに導入することも可能である。コンピュータが読み取り可能な記録媒体としては、例えばＣＤ−ＲＯＭ、ＤＶＤディスク、ＵＳＢメモリなどの可搬型記録媒体や、例えばフラッシュメモリなどの半導体メモリが挙げられる。
【符号の説明】
【００７９】
１１０Ｌ  左カメラ
１１０Ｒ  右カメラ
１２０  プロセッサ
１２１  撮像制御部
１２２  距離画像生成部
１２３  エッジ検出部
１２４  画像補正部
１２５  表示制御部
１３０  メモリ
１４０  ディスプレイ
２０１  単一エッジ選択部
【図１】
2014215840.tif 000003
【図２】
2014215840.tif 000004
【図３】
2014215840.tif 000005
【図４】
2014215840.tif 000006
【図５】
2014215840.tif 000007
【図６】
2014215840.tif 000008
【図７】
2014215840.tif 000009
【図８】
2014215840.tif 000010
【図９】
2014215840.tif 000011