(57)【要約】【課題】複数の画像間の視差値の算出精度を向上する技術を提供する。【解決手段】視差値算出装置は、２つのカメラで撮像された第１の画像及び第２の画像を取得し、前記第１の画像及び前記第２の画像それぞれに対して、予め定められた視差方向への拡大処理により、第１の拡大画像及び第２の拡大画像を生成し、前記第１の拡大画像の第１の画素毎及び前記第２の拡大画像の第２の画素毎に、周囲の画素との画素値の比較により、第１のセンサス特徴量及び第２のセンサス特徴量を算出し、各第１の画素について、前記第１のセンサス特徴量と前記第２のセンサス特徴量とを用いて、前記第２の画素それぞれに対する相違度を算出し、各第１の画素について、最も小さい相違度に対応する視差値を、前記第１の拡大画像に対応する視差画像の画素の視差値として取得し、前記視差画像を縮小処理することにより、前記第１の画像の画素毎の視差値を算出する。【選択図】図１４
2019120590.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサとメモリとを備え、
前記プロセッサは、
（ａ）第１の位置に配置された第１のカメラで撮像された第１の画像と、第２の位置に配置された第２のカメラで撮像された第２の画像とを前記メモリから取得し、
（ｂ）前記第１の画像に対して、予め定められた視差方向への拡大処理により、前記第１の画像の画素の数を増やすことによって、複数の第１の画素を含む第１の拡大画像を生成し、前記第２の画像に対して、予め定められた視差方向への拡大処理により、前記第２の画像の画素の数を増やすことによって、複数の第２の画素を含む第２の拡大画像を生成し、
（ｃ）前記第１の拡大画像において、前記複数の第１の画素毎に、周囲の画素との画素値の比較により、第１のセンサス特徴量を算出し、前記第２の拡大画像において、前記複数の第２の画素毎に、周囲の画素との画素値の比較により、第２のセンサス特徴量を算出し、
（ｄ）前記複数の第１の画素それぞれについて、前記第１のセンサス特徴量と、少なくとも１つの前記第２の画素の前記第２のセンサス特徴量とを用いて、前記少なくとも１つの第２の画素それぞれの位置での前記第１の画素に対する視差値に対応する相違度を算出し、
（ｅ）前記複数の第１の画素それぞれについて、前記相違度を用いて、最も小さい相違度に対応する視差値を選択することにより、前記第１の拡大画像に対応する視差画像における画素毎の視差値を取得し、
（ｆ）前記視差画像の画素毎の視差値に対して、縮小処理をすることにより、前記第２の画像に対する前記第１の画像の画素毎の視差値を算出する
視差値算出装置。
【請求項２】
前記プロセッサは、前記第１のセンサス特徴量と前記第２のセンサス特徴量との間のハミング距離を、前記相違度として算出する
請求項１に記載の視差値算出装置。
【請求項３】
前記プロセッサは、
処理（ｄ）と処理（ｅ）の間において、
（ｇ）前記第１の拡大画像において、視差値の算出対象の前記第１の画素である着目画素から、所定の方向に位置する前記第１の画素である評価画素それぞれについて、
前記評価画素のうち、第１の評価画素に前記所定の方向で隣り合う第２の評価画素の視差値と、前記第２の拡大画像における前記第１の評価画素に対応する位置の対応画素に対する、相違度算出のための探索範囲内の前記第２の画素それぞれの視差値との比較に基づき、前記探索範囲内の前記第２の画素それぞれの第１の評価値を算出し、
前記第１の評価画素と前記探索範囲内の前記第２の画素それぞれとの間の相違度と、前記探索範囲内の前記第２の画素それぞれの第１の評価値とに基づき、前記探索範囲内の前記第２の画素それぞれの視差値についての第２の評価値を算出し、
前記探索範囲内の前記第２の画素それぞれの視差値に対応する全ての前記評価画素の前記第２の評価値を加算して、加算評価値を算出し、
処理（ｅ）において、最小の前記加算評価値に対応する前記視差値を前記着目画素の視差値に決定する
請求項１または２に記載の視差値算出装置。
【請求項４】
前記プロセッサは、
処理（ｃ）において、対象画素のセンサス特徴量を算出する際に比較する周囲の画素の領域である比較領域として、前記対象画素を含み且つ前記対象画素に対する位置が異なる複数の前記比較領域を決定し、
前記比較領域それぞれについて、前記複数の第１の画素の前記第１のセンサス特徴量と、前記複数の第２の画素の前記第２のセンサス特徴量とを算出し、
処理（ｄ）において、前記比較領域それぞれについて、前記相違度を算出し、
処理（ｅ）において、全ての前記比較領域の前記相違度のうち、最も小さい相違度に対応する視差値を選択することにより、前記第１の拡大画像に対応する視差画像における画素毎の視差値を取得する
請求項１〜３のいずれか一項に記載の視差値算出装置。
【請求項５】
前記プロセッサは、
処理（ｄ）において、前記相違度が算出される前記第１の画素及び前記第２の画素について、前記第１の画素の前記周囲の画素の画素値である輝度値と前記第２の画素の前記周囲の画素の画素値である輝度値との差異と、前記第１の画素の前記周囲の画素の輝度勾配と前記第２の画素の前記周囲の画素の輝度勾配との差異との少なくとも一方に基づく重みを、前記相違度に付加する
請求項１〜４のいずれか一項に記載の視差値算出装置。
【請求項６】
（ａ）第１の位置に配置された第１のカメラで撮像される第１の画像と、第２の位置に配置された第２のカメラで撮像される第２の画像とを取得し、
（ｂ）前記第１の画像に対して、予め定められた視差方向への拡大処理により、前記第１の画像の画素の数を増やすことによって、複数の第１の画素を含む第１の拡大画像を生成し、前記第２の画像に対して、予め定められた視差方向への拡大処理により、前記第２の画像の画素の数を増やすことによって、複数の第２の画素を含む第２の拡大画像を生成し、
（ｃ）前記第１の拡大画像において、前記複数の第１の画素毎に、周囲の画素との画素値の比較により、第１のセンサス特徴量を算出し、前記第２の拡大画像において、前記複数の第２の画素毎に、周囲の画素との画素値の比較により、第２のセンサス特徴量を算出し、
（ｄ）前記複数の第１の画素それぞれについて、前記第１のセンサス特徴量と、少なくとも１つの前記第２の画素の前記第２のセンサス特徴量とを用いて、前記少なくとも１つの第２の画素それぞれの位置での前記第１の画素に対する視差値に対応する相違度を算出し、
（ｅ）前記複数の第１の画素それぞれについて、前記相違度を用いて、最も小さい相違度に対応する視差値を選択することにより、前記第１の拡大画像に対応する視差画像における画素毎の視差値を取得し、
（ｆ）前記視差画像の画素毎の視差値に対して、縮小処理をすることにより、前記第２の画像に対する前記第１の画像の画素毎の視差値を算出し、
処理（ａ）〜処理（ｆ）の少なくとも１つは、少なくとも１つのプロセッサによって実行される
視差値算出方法。
【請求項７】
前記第１のセンサス特徴量と前記第２のセンサス特徴量との間のハミング距離を、前記相違度として算出する
請求項６に記載の視差値算出方法。
【請求項８】
処理（ｄ）と処理（ｅ）の間において、
（ｇ）前記第１の拡大画像において、視差値の算出対象の前記第１の画素である着目画素から、所定の方向に位置する前記第１の画素である評価画素それぞれについて、
前記評価画素のうち、第１の評価画素に前記所定の方向で隣り合う第２の評価画素の視差値と、前記第２の拡大画像における前記第１の評価画素に対応する位置の対応画素に対する、相違度算出のための探索範囲内の前記第２の画素それぞれの視差値との比較に基づき、前記探索範囲内の前記第２の画素それぞれの第１の評価値を算出し、
前記第１の評価画素と前記探索範囲内の前記第２の画素それぞれとの間の相違度と、前記探索範囲内の前記第２の画素それぞれの第１の評価値とに基づき、前記探索範囲内の前記第２の画素それぞれの視差値についての第２の評価値を算出し、
前記探索範囲内の前記第２の画素それぞれの視差値に対応する全ての前記評価画素の前記第２の評価値を加算して、加算評価値を算出し、
処理（ｅ）において、最小の前記加算評価値に対応する前記視差値を前記着目画素の視差値に決定する
請求項６または７に記載の視差値算出方法。
【請求項９】
処理（ｃ）において、対象画素のセンサス特徴量を算出する際に比較する周囲の画素の領域である比較領域として、前記対象画素を含み且つ前記対象画素に対する位置が異なる複数の前記比較領域を決定し、
前記比較領域それぞれについて、前記複数の第１の画素の前記第１のセンサス特徴量と、前記複数の第２の画素の前記第２のセンサス特徴量とを算出し、
処理（ｄ）において、前記比較領域それぞれについて、前記相違度を算出し、
処理（ｅ）において、全ての前記比較領域の前記相違度のうち、最も小さい相違度に対応する視差値を選択することにより、前記第１の拡大画像に対応する視差画像における画素毎の視差値を取得する
請求項６〜８のいずれか一項に記載の視差値算出方法。
【請求項１０】
処理（ｄ）において、前記相違度が算出される前記第１の画素及び前記第２の画素について、前記第１の画素の前記周囲の画素の画素値である輝度値と前記第２の画素の前記周囲の画素の画素値である輝度値との差異と、前記第１の画素の前記周囲の画素の輝度勾配と前記第２の画素の前記周囲の画素の輝度勾配との差異との少なくとも一方に基づく重みを、前記相違度に付加する
請求項６〜９のいずれか一項に記載の視差値算出方法。
【請求項１１】
（ａ）第１の位置に配置された第１のカメラで撮像された第１の画像と、第２の位置に配置された第２のカメラで撮像された第２の画像とを取得し、
（ｂ）前記第１の画像に対して、予め定められた視差方向への拡大処理により、前記第１の画像の画素の数を増やすことによって、複数の第１の画素を含む第１の拡大画像を生成し、前記第２の画像に対して、予め定められた視差方向への拡大処理により、前記第２の画像の画素の数を増やすことによって、複数の第２の画素を含む第２の拡大画像を生成し、
（ｃ）前記第１の拡大画像において、前記複数の第１の画素毎に、周囲の画素との画素値の比較により、第１のセンサス特徴量を算出し、前記第２の拡大画像において、前記複数の第２の画素毎に、周囲の画素との画素値の比較により、第２のセンサス特徴量を算出し、
（ｄ）前記複数の第１の画素それぞれについて、前記第１のセンサス特徴量と、少なくとも１つの前記第２の画素の前記第２のセンサス特徴量とを用いて、前記少なくとも１つの第２の画素それぞれの位置での前記第１の画素に対する視差値に対応する相違度を算出し、
（ｅ）前記複数の第１の画素それぞれについて、前記相違度を用いて、最も小さい相違度に対応する視差値を選択することにより、前記第１の拡大画像に対応する視差画像における画素毎の視差値を取得し、
（ｆ）前記視差画像の画素毎の視差値に対して、縮小処理をすることにより、前記第２の画像に対する前記第１の画像の画素毎の視差値を算出する
ことを、コンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、視差値算出装置、視差値算出方法及びプログラムに関する。
【背景技術】
【０００２】
近年、自動車の安全運転支援システム及び自動運転システム、不審者等を検出する監視カメラシステム又はロボット等の開発分野において、カメラで撮像された画像を用いて、カメラから被写体までの距離を算出する技術が検討されている。上記距離を算出する技術として、複数のカメラで撮像された画像から上記距離を算出するステレオ測距技術がある。複数のカメラの撮像画像では、同一の被写体が見える方向が異なり、このような方向の違いは、視差と呼ばれる。ステレオ測距技術では、三角測量の技術が利用され、視差に基づき被写体までの距離が算出される。視差の精度は、被写体が遠い程、被写体の測距結果の誤差に与える影響が大きい。そこで、複数の画像間の視差を求めるための技術が検討されている。例えば、特許文献１は、ステレオカメラで撮像された２つの画像における視差を算出する技術を、開示している。特許文献１では、２つの画像の画素を対応付けるために、画素値のセンサス変換とセンサス変換された画素値の相関演算とが用いられる。非特許文献１は、Ｓｅｍｉ−Ｇｌｏｂａｌ  Ｍａｃｈｉｎｇ（ＳＧＭ）と呼ばれる視差値算出方法を開示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第４１６８１２５号公報
【非特許文献】
【０００４】
【非特許文献１】Heiko Hirschmuller著、「Stereo Processing by Semiglobal Matching and Mutual Information」、IEEE、IEEE Transactions on Pattern Analysis Machine Intelligence、2008年2月、Vol. 39、No. 2
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１及び非特許文献１の技術は、サブピクセル精度の視差値の算出精度が低い場合がある。
【０００６】
そこで本開示は、複数の画像間の視差値の算出精度を向上する視差値算出装置、視差値算出方法及びプログラムを提供する。
【課題を解決するための手段】
【０００７】
本開示の一態様に係る視差値算出装置は、プロセッサとメモリとを備え、前記プロセッサは、（ａ）第１の位置に配置された第１のカメラで撮像された第１の画像と、第２の位置に配置された第２のカメラで撮像された第２の画像とを前記メモリから取得し、（ｂ）前記第１の画像に対して、予め定められた視差方向への拡大処理により、前記第１の画像の画素の数を増やすことによって、複数の第１の画素を含む第１の拡大画像を生成し、前記第２の画像に対して、予め定められた視差方向への拡大処理により、前記第２の画像の画素の数を増やすことによって、複数の第２の画素を含む第２の拡大画像を生成し、（ｃ）前記第１の拡大画像において、前記複数の第１の画素毎に、周囲の画素との画素値の比較により、第１のセンサス特徴量を算出し、前記第２の拡大画像において、前記複数の第２の画素毎に、周囲の画素との画素値の比較により、第２のセンサス特徴量を算出し、（ｄ）前記複数の第１の画素それぞれについて、前記第１のセンサス特徴量と、少なくとも１つの前記第２の画素の前記第２のセンサス特徴量とを用いて、前記少なくとも１つの第２の画素それぞれの位置での前記第１の画素に対する視差値に対応する相違度を算出し、（ｅ）前記複数の第１の画素それぞれについて、前記相違度を用いて、最も小さい相違度に対応する視差値を選択することにより、前記第１の拡大画像に対応する視差画像における画素毎の視差値を取得し、（ｆ）前記視差画像の画素毎の視差値に対して、縮小処理をすることにより、前記第２の画像に対する前記第１の画像の画素毎の視差値を算出する。
【０００８】
本開示の一態様に係る視差値算出方法は、（ａ）第１の位置に配置された第１のカメラで撮像される第１の画像と、第２の位置に配置された第２のカメラで撮像される第２の画像とを取得し、（ｂ）前記第１の画像に対して、予め定められた視差方向への拡大処理により、前記第１の画像の画素の数を増やすことによって、複数の第１の画素を含む第１の拡大画像を生成し、前記第２の画像に対して、予め定められた視差方向への拡大処理により、前記第２の画像の画素の数を増やすことによって、複数の第２の画素を含む第２の拡大画像を生成し、（ｃ）前記第１の拡大画像において、前記複数の第１の画素毎に、周囲の画素との画素値の比較により、第１のセンサス特徴量を算出し、前記第２の拡大画像において、前記複数の第２の画素毎に、周囲の画素との画素値の比較により、第２のセンサス特徴量を算出し、（ｄ）前記複数の第１の画素それぞれについて、前記第１のセンサス特徴量と、少なくとも１つの前記第２の画素の前記第２のセンサス特徴量とを用いて、前記少なくとも１つの第２の画素それぞれの位置での前記第１の画素に対する視差値に対応する相違度を算出し、（ｅ）前記複数の第１の画素それぞれについて、前記相違度を用いて、最も小さい相違度に対応する視差値を選択することにより、前記第１の拡大画像に対応する視差画像における画素毎の視差値を取得し、（ｆ）前記視差画像の画素毎の視差値に対して、縮小処理をすることにより、前記第２の画像に対する前記第１の画像の画素毎の視差値を算出し、処理（ａ）〜処理（ｆ）の少なくとも１つは、少なくとも１つのプロセッサによって実行される。
【０００９】
本開示の一態様に係るプログラムは、（ａ）第１の位置に配置された第１のカメラで撮像された第１の画像と、第２の位置に配置された第２のカメラで撮像された第２の画像とを取得し、（ｂ）前記第１の画像に対して、予め定められた視差方向への拡大処理により、前記第１の画像の画素の数を増やすことによって、複数の第１の画素を含む第１の拡大画像を生成し、前記第２の画像に対して、予め定められた視差方向への拡大処理により、前記第２の画像の画素の数を増やすことによって、複数の第２の画素を含む第２の拡大画像を生成し、（ｃ）前記第１の拡大画像において、前記複数の第１の画素毎に、周囲の画素との画素値の比較により、第１のセンサス特徴量を算出し、前記第２の拡大画像において、前記複数の第２の画素毎に、周囲の画素との画素値の比較により、第２のセンサス特徴量を算出し、（ｄ）前記複数の第１の画素それぞれについて、前記第１のセンサス特徴量と、少なくとも１つの前記第２の画素の前記第２のセンサス特徴量とを用いて、前記少なくとも１つの第２の画素それぞれの位置での前記第１の画素に対する視差値に対応する相違度を算出し、（ｅ）前記複数の第１の画素それぞれについて、前記相違度を用いて、最も小さい相違度に対応する視差値を選択することにより、前記第１の拡大画像に対応する視差画像における画素毎の視差値を取得し、（ｆ）前記視差画像の画素毎の視差値に対して、縮小処理をすることにより、前記第２の画像に対する前記第１の画像の画素毎の視差値を算出することを、コンピュータに実行させる。
【００１０】
なお、上記の包括的又は具体的な態様は、システム、装置、方法、集積回路、コンピュータプログラム又はコンピュータ読取可能な記録ディスク等の記録媒体で実現されてもよく、システム、装置、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。コンピュータ読み取り可能な記録媒体は、例えばＣＤ−ＲＯＭ（Compact Disc-Read Only Memory）等の不揮発性の記録媒体を含む。
【発明の効果】
【００１１】
本開示の視差値算出装置等によれば、複数の画像間の視差値の算出精度を向上することが可能になる。
【図面の簡単な説明】
【００１２】
【図１】図１は、特許文献１が開示するイメージ処理システムを示す図である。
【図２Ａ】図２Ａは、特許文献１に開示される等角フィッティング法を説明する図である。
【図２Ｂ】図２Ｂは、特許文献１に開示される等角フィッティング法を説明する図である。
【図３】図３は、従来技術の視差値算出処理の流れを模式的に示す図である。
【図４】図４は、従来技術のＳｅｍｉ−Ｇｌｏｂａｌ  Ｍａｃｈｉｎｇ処理の流れを模式的に示す図である。
【図５】図５は、ＳＧＭを用いた視差値算出処理の検証に使用したＣＧ画像である。
【図６】図６は、図５のＣＧ画像と、このＣＧ画素を水平方向に平行移動した画像とを用いたＳＧＭによる視差値の算出結果を示す図である。
【図７】図７は、ＳＧＭを用いた視差値算出処理の検証に使用した実写画像である。
【図８】図８は、図７の実写画像と、この実写画素を水平方向に平行移動した画像とを用いたＳＧＭによる視差値の算出結果を示す図である。
【図９】図９は、ＳＧＭを用いた視差値算出処理の検証に使用した実写画像である。
【図１０】図１０は、図９の実写画像と、この実写画素を水平方向に平行移動した画像とを用いたＳＧＭによる視差値の算出結果を示す図である。
【図１１】図１１は、ＳＧＭを用いた視差値算出処理の検証に使用した実写画像である。
【図１２】図１２は、図１１の実写画像と、この実写画素を水平方向に平行移動した画像とを用いたＳＧＭによる視差値の算出結果を示す図である。
【図１３】図１３は、正解視差値と算出視差値との関係の仮定的な一例を示す図である。
【図１４】図１４は、実施の形態１に係る視差値算出装置を含む測距システムの機能的な構成の一例を示すブロック図である。
【図１５】図１５は、撮像部のカメラの配置例を示す模式的な斜視図である。
【図１６】図１６は、図１５のカメラの基線長の例を示す模式的な正面図である。
【図１７】図１７は、撮像部のカメラの別の配置例を示す模式的な斜視図である。
【図１８Ａ】図１８Ａは、センサス変換における周辺画素の一例を示す図である。
【図１８Ｂ】図１８Ｂは、センサス変換における周辺画素の別の一例を示す図である。
【図１９Ａ】図１９Ａは、図１８Ａの周辺画素のセンサス変換の一例を示す図である。
【図１９Ｂ】図１９Ｂは、図１８Ｂの周辺画素のセンサス変換の一例を示す図である。
【図２０】図２０は、相違度の算出の際の画素の探索範囲の一例を示す図である。
【図２１】図２１は、相違度の算出の際の画素の探索範囲の別の一例を示す図である。
【図２２】図２２は、１つの着目画素に対して算出される相違度と、相違度に対応する参照画素の視差値との関係の一例を示す図である。
【図２３】図２３は、実施の形態１に係る視差値算出装置の動作の一例を示すフローチャートである。
【図２４】図２４は、実施の形態２に係る視差値算出装置の機能的な構成の一例を示すブロック図である。
【図２５】図２５は、実施の形態２に係る視差値算出装置の動作の一例を示すフローチャートである。
【図２６】図２６は、実施の形態３に係る視差値算出装置の機能的な構成の一例を示すブロック図である。
【図２７】図２７は、実施の形態３に係る視差値算出装置の動作の一例を示すフローチャートである。
【図２８】図２８は、実施の形態３の変形例に係る視差値算出装置の機能的な構成の一例を示すブロック図である。
【図２９】図２９は、実施の形態４に係る視差値算出装置の機能的な構成の一例を示すブロック図である。
【図３０】図３０は、実施の形態４の変形例に係る視差値算出装置の機能的な構成の一例を示すブロック図である。
【図３１】図３１は、実施の形態５に係る視差値算出装置の機能的な構成の一例を示すブロック図である。
【図３２】図３２は、コスト算出の際の着目画素からの複数の走査方向の例を示す図である。
【図３３】図３３は、コスト算出の際の着目画素を通る直線上での画素の走査方向の例を示す図である。
【図３４】図３４は、コスト算出のための走査ライン上の１つの画素におけるコストの例を示す図である。
【図３５】図３５は、実施の形態５に係る視差値算出装置の動作の一例を示すフローチャートである。
【図３６】図３６は、実施の形態５の変形例１に係る視差値算出装置の機能的な構成の一例を示すブロック図である。
【図３７】図３７は、実施の形態５の変形例２に係る視差値算出装置の機能的な構成の一例を示すブロック図である。
【図３８】図３８は、実施の形態５の変形例３に係る視差値算出装置の機能的な構成の一例を示すブロック図である。
【図３９】図３９は、実施の形態５の変形例４に係る視差値算出装置の機能的な構成の一例を示すブロック図である。
【図４０】図４０は、実施の形態６に係る視差値算出装置の機能的な構成の一例を示すブロック図である。
【図４１】図４１は、着目画素の複数の窓領域の一例を示す図である。
【図４２】図４２は、実施の形態６の変形例に係る視差値算出装置の機能的な構成の一例を示すブロック図である。
【図４３】図４３は、実施の形態７に係る視差値算出装置の機能的な構成の一例を示すブロック図である。
【図４４】図４４は、着目画素と周辺画素との間におけるビット間差異と輝度差に基づく重みとの関係の一例を示す図である。
【図４５】図４５は、実施の形態７の変形例に係る視差値算出装置の機能的な構成の一例を示すブロック図である。
【発明を実施するための形態】
【００１３】
［発明者による知見］
本発明者らは、デジタル画像を用いた測距精度の向上のために、デジタル画像の画素単位よりも細かいサブピクセル精度で、画像間の視差値を算出する技術を検討した。なお、視差値の単位は、１画素つまりピクセルであり、サブピクセルは、１画素未満を示す。本発明者らは、特許文献１及び非特許文献１に開示される技術を、以下に説明するように検討した。例えば、特許文献１に開示される従来技術では、複数のカメラ又は複眼カメラで撮像された複数の画像であるステレオ画像それぞれの画素が、センサス変換され、各画素について、センサス変換後の特徴量であるセンサス特徴量が算出される。さらに、ステレオ画像間において、各画素のセンサス特徴量の相違度が、ハミング距離を用いて算出される。一方の画像における着目画素について、当該着目画素とのハミング距離が最小となる画素が他方の画像から抽出され、抽出された画素は、着目画素に対応する画素に決定される。さらに、他方の画像における着目画素に対応する画素とその近傍の画素とについて、着目画素に対するハミング距離と、画素間の位置関係とに基づき、等角フィティングと呼ばれる方法を用いることによって、１画素未満のサブピクセル精度で視差値が算出される。
【００１４】
例えば、図１は、特許文献１が開示するイメージ処理システムを示す。このシステムは、左右のカメラ２１及び２２で撮像されたオリジナルイメージデータ２００及び２０１から、視差イメージ２９０を生成する。視差イメージ２９０は、オリジナルイメージの中の個々のイメージ要素に対する選択された最適な視差の組である。この視差イメージ２９０を得るために、イメージデータ２００及び２０１は、変換され、これらの間で相関演算され、エラー及び信頼性の検査がなされる。
【００１５】
例えば、左カメラ２１及び右カメラ２２が、光景１０をキャプチャし、フレームグラバ及びデジタイザが、再構成可能なイメージの処理システムにイメージデータを提供する。個別のピクセル要素及びその各々の輝度の形態である左のイメージデータ２００及び右のイメージデータ２０１はそれぞれ、左の輝度イメージ２１０及び右の輝度イメージ２１１にマッピングされる。これらの輝度イメージそれぞれは、Ｘの幅であり、Ｙの高さであり、つまり、Ｘ×Ｙの輝度イメージである。センサス変換又はランク変換のような非パラメトリック局所変換２１５及び２１６が、これらの輝度イメージの各々に適用される。変換２１５は、矢印２１８によって示されるように、左の輝度イメージ２１０に適用されて、変換されたベクトル左イメージ２２０を生成する。同様に、変換２１６は、矢印２１９によって示されるように、右の輝度イメージ２１１に適用されて、変換されたベクトル右イメージ２２１を生成する。これらの変換は、これら２つの輝度イメージ各々の中のイメージ要素の近隣部、又はウインドウの中における２つの輝度イメージのイメージ要素の実質的に全てに適用される。従って、ウインドウのサイズ及び参照イメージ要素の位置は、輝度イメージの端のどのイメージ要素が変換計算で無視されるかを決定する。これらの無視されたイメージ要素は、参照イメージ要素としては使用されないが、当該イメージ要素は、他の参照イメージ要素の変換ベクトルの計算では、依然として使用され得る。
【００１６】
図１のイメージ処理システムは、相関合計プロセス２２５をさらに含む。相関合計プロセス２２５は、左イメージ２２０と右イメージ２２１との間の対応の決定における１つのステップである。相関合計プロセス２２５は、左イメージ２２０のための相関ウインドウの内部の変換ベクトル、及び右イメージ２２１の中の同じサイズの相関ウインドウの内部の変換ベクトルに動作して、単一の矢印２２６で示されるように、相関合計マトリクス２３０を生成する。この相関合計マトリクス２３０の生成において、左又は右イメージ２２０又は２２１の何れかが参照イメージとして使用され、もう一方のイメージの中のウインドウがシフトされる。右イメージ２２１が参照イメージとして取り扱われるならば、相関合計マトリクス２３０は、相関ウインドウの中の右イメージ２２１の各右イメージ要素がどのように相関しているか、又は、左イメージ２２０の左イメージ要素の右イメージ要素からのシフト若しくは視差の各々についての相関ウインドウの中で左イメージ要素にどのように対応しているかを示すデータを含む。定義によって、特定の左イメージ要素の、右イメージ要素の様々なシフト若しくは視差との相関又は対応を示すデータは、やはり相関合計マトリクス２３０に含まれている。これらの視差に基づく相関合計及び相関合計マトリクス２３０、矢印２３１で示される最適視差は、各右イメージ要素について選択され、外部インデックス（「指標」とも呼ばれる）アレイ２７０に記憶され得る。最終的な視差イメージ２９０は、その後に、矢印２７１で示されるように、外部インデックスアレイ２７０で決定される。ステレオ視の場合には、視差は、変換イメージ１のウインドウと変換イメージ２のウインドウとの間の水平オフセットである。
【００１７】
図１では含まれていないが、特許文献１は、等角フィッティング法（「等角直線フィッティング法」とも呼ばれる）により、サブピクセル精度の視差を導出することを開示している。この等角フィッティング法では、相関合計の最小値を与える視差値、及び、その前後の視差値、例えば相関合計の最小値を与える視差値±１の視差値のそれぞれについての相関合計の値（以下、「相関合計値」とも呼ぶ）と、視差値との関係に対して、Ｖ字型の関数の関係が当てはめられる。
【００１８】
例えば、図２Ａ及び図２Ｂは、特許文献１に開示される等角フィッティング法を説明する図である。図２Ａにおいて、相関合計値及び視差値の関係が示され、相関合計値は、視差値２において、最小値Ｙ２である。この場合、相関合計値が最小値Ｙ２であり且つ視差値が２である点Ａに加えて、視差値１且つ相関合計値Ｙ１の点Ｂと、視差値３且つ相関合計値Ｙ３の点Ｃが用いられる。さらに、図２Ｂに示すように、これら３点を通るＶ字型の関数が当てはめられる。このとき、Ｖ字型の関数の２つのラインの傾きの絶対値は、点Ａ及び点Ｂの間の視差値の差異に対する相関合計値の差異の傾きの絶対値と、点Ａ及び点Ｃとの間の視差値の差異に対する相関合計値の差異の傾きの絶対値とのうち、大きい方と等しくされる。具体的には、図２Ａでは、点Ａと点Ｃとの間の傾きである相関合計値の差分（Ｙ３−Ｙ２）の絶対値の方が、点Ａと点Ｂとの間の傾きである相関合計値の差分（Ｙ２−Ｙ１）の絶対値よりも大きい。このため、（Ｙ３−Ｙ２）の絶対値が、Ｖ字型の関数の傾きに採用される。Ｖ字型の関数では、Ｖ字の頂点の両側のラインの傾きの絶対値が同じである。つまり、両側のラインと水平ラインとの角度１及び２が同じである。これにより、点Ｂを通り且つ上記傾きの絶対値で負の傾きを持つ直線と、点Ａ及び点Ｃを通り且つ上記傾きの絶対値で正の傾きを持つ直線とが、形成される。これら２つの直線の交点Ｄを求めることにより、１画素未満の間隔のサブピクセル精度で、視差値が求められる。例えば、図２Ｂの例では、視差値は１．８である。
【００１９】
図１における視差イメージ２９０の決定は、３つのオプションの信頼／エラー検出検査、すなわち、対象演算、左右一貫性検査、及びモードフィルタを含み得る。対象演算は、輝度イメージが高レベル信頼に関連しているかを、キャプチャされた光景の模様（テクスチャ）に基づいて決定する。これにより、均一な模様（テクスチャ）である光景のイメージ要素に関連している対象演算は、模様（テクスチャ）が変化している光景よりも、低い信頼を有する。対象演算は、輝度イメージの一つのみ、左側或いは右側の輝度イメージのいずれかのみに、適用される。しかしながら、他の態様では、両輝度イメージに適用される対象演算がカバーされ得る。図１では、対象演算２３５は、矢印２３６によって示されるように、右輝度イメージ２に適用され、対象ウインドウの内部の各イメージ要素について、矢印２３７で示されるように、合計のスライディング視差（ＳＳＤ）アレイ２４０を生成する。閾値演算２４１の適用によって、最終対象結果アレイ２５０が対象結果として生成される。対象結果は、特定のイメージ要素がこのイメージ処理システムの中に確立された信頼閾値をパスするかどうかを反映するデータを含む。対象結果アレイ２５０の中のデータに基づいて、視差イメージ２９０は、外部インデックスアレイ２７０に関連して決定され得る。
【００２０】
左右一貫性検査は、エラー検出の形態である。この検査は、右イメージの中のイメージ要素によって最適イメージ要素として選択された左イメージの中のイメージ要素が、最適イメージ要素として、右イメージの中の同じイメージ要素をまた選択する事を、決定且つ確認する。左右一貫性検査２４５は、矢印２４６によって示されるように、相関合計アレイ２３０に適用され、矢印２７６で示されるように、外部インデックスアレイ２７０と比較され、矢印２４７によって示されるように、ＬＲ結果アレイ２６０を生成する。ＬＲ結果アレイ２６０は、左右一貫性検査２４５をパスするイメージ要素を示すデータを含む。ＬＲ結果アレイ２６０は、外部インデックスアレイ２７０と協同して、矢印２６１によって示されるように、視差イメージ２９０を生成するために使用される。
【００２１】
第３の信頼／エラー検出検査は、モードフィルタである。モードフィルタは、個体群解析に基づいて最適視差を選択することによって、選択された最適視差が高度の一貫性を有するかどうかを決定する。これにより、外部インデックスアレイ２７０の中の選択された最適視差が、高度の一貫性を示さないならば、その後これらの最適視差は無効にされる。モードフィルタ２７５は、矢印２７６に示されるように、外部インデックスアレイ２７０に動作し、矢印２７７に示されるように、モードフィルタ外部インデックス（「指標」とも呼ばれる）アレイ２８０を生成する。モードフィルタ外部インデックスアレイ２８０は、特定のイメージ要素が視差の一貫性検査をパスした視差を選択したかどうかを示すデータを含む。データ及びモードフィルタ外部インデックスアレイ２８０は、矢印２８１に示されるように、外部インデックスアレイ２７０と協同して視差イメージ２９０を生成するために使用され得る。
【００２２】
これらの３つの信頼／エラー検出検査を行うかどうかは選択可能である。ある態様では、視差イメージ２９０の決定に当たってこれらの３つの検査の全てを行い得るが、他の態様では、これらの検査を全く含まなくてもよい。更に他の態様では、これらの検査の組合せが含まれ得る。
【００２３】
例えば、特許文献１に記載されるような従来技術の視差値算出処理は、図３に示すように模式的に示すことができる。なお、図３は、従来技術の視差値算出処理の流れを模式的に示す図である。ステレオ画像である入力画像Ｉ１及びＩ２ではそれぞれ、ステップＳ１５０１において、各画素が、センサス変換され、各センサス特徴量が求められる。さらに、ステップＳ１５０２では、入力画像Ｉ１及びＩ２の間において、画素間の視差値についてのセンサス特徴量の相関（「相違度」とも呼ばれる）が、入力画像Ｉ１及びＩ２の各画素について視差値毎に算出される。ここでは、ハミング距離によりセンサス特徴量間の相違度算出を行う。
【００２４】
ステップＳ１５０３ａ及びＳ１５０３ｂではそれぞれ、入力画像Ｉ１及びＩ２のうちの一方の画像である基準画像の各画素について、他方の画像における予め設定された探索範囲内の各画素の視差値及び相違度（すなわちハミング距離）から、最小の相違度を与える視差値が選択される。これにより、基準画像の各画素におけるピクセル精度の視差値が得られる。ステップＳ１５０３ａでは、入力画像Ｉ１を基準画像として、ステップＳ１５０３ｂでは、入力画像Ｉ２を基準画像として、それぞれにおいて上記処理が行われる。
【００２５】
ステップＳ１５０４ａ及びＳ１５０４ｂではそれぞれ、図２Ａ及び図２Ｂを用いて説明したような等角フィッティング法により、基準画像Ｉ１及び基準画像Ｉ２それぞれにおける各画素でのサブピクセル精度の視差値が算出される。具体的には、基準画像の各画素について、最小相違度及びそれを与える視差値と、当該視差値の前後の視差値及びその相違度とを用いて、サブピクセル精度の視差値が算出される。ステップＳ１５０５では、基準画像Ｉ１の場合の視差値と、基準画像Ｉ２の場合の視差値とについて、対応する画素間での一貫性がチェックされる。具体的には、基準画像Ｉ１及び基準画像Ｉ２の対応する画素間で、双方向の視差値の差が所定の閾値未満であるかがチェックされる。さらに、閾値以上の差を構成する視差値は無効とされ、当該視差値に対応する画素についての視差推定結果は、出力されない。
【００２６】
また、非特許文献１に記載されるようなＳｅｍｉ−Ｇｌｏｂａｌ  Ｍａｃｈｉｎｇ（以下、「ＳＧＭ」とも呼ぶ）と呼ばれる視差値算出処理は、図４に示すように模式的に示すことができる。なお、図４は、従来技術のＳｅｍｉ−Ｇｌｏｂａｌ  Ｍａｃｈｉｎｇ処理の流れを模式的に示す図である。ステップＳ１６０１において、入力画像Ｉ１及びＩ２と初期視差画像とが縮小される。初期視差画像は、予め設定された画像であり、各画素は、当該画素における２つの画像間の視差値を画素値として有する。画像の縮小では、画素数が減少される。ステップＳ１６０２において、入力画像Ｉ１及びＩ２間の各画素について、視差値毎に相違度が算出される。ステップＳ１６０２では、入力画像Ｉ１及びＩ２間の相違度の算出に、相互情報量又は特許文献１と同様のセンサス特徴量を用いたセンサス特徴量間の相違度（ハミング距離）を用いることができる。ステップＳ１６０３では、基準画像中の着目画素それぞれについて、着目画素を通る、つまり中心とする８又は１６方向の直線上での視差値の分布に対するコストが算出される。ステップＳ１６０４では、着目画素を通る８又は１６方向の直線上での視差の分布に対するコストに関して、各方向について最小のコストを与える視差値が選択される。つまり、コストが集約される。
【００２７】
ステップＳ１６０５ａ及びＳ１６０５ｂでは、各方向について最小のコストを与える視差値のうちから、最小のコストを与える方向の視差値が選択される。その際、ステップＳ１６０５ａでは、入力画像Ｉ１を基準画像とする視差値が選択され、ステップＳ１６０５ｂでは、入力画像Ｉ２を基準画像とする視差値が選択される。ステップＳ１６０６では、入力画像Ｉ１を基準画像とする視差値と入力画像Ｉ２を基準画像とする視差値との一貫性がチェックされる。ステップＳ１６０７では、ステップＳ１６０６において一貫性チェックが行われた視差値を各画素が画素値として含む視差画像が、拡大される。この拡大では、視差画像に対する空間的な拡大により画素数を増加させる処理と、空間的な拡大に伴って視差値（視差画像の画素値）を大きくする処理との両方が行われる。例えば、空間的な拡大率が２倍の場合、視差値も２倍に変換される。ステップＳ１６０８では、ステップＳ１６０１〜Ｓ１６０７の処理を繰り返すか否かの終了判断が行われる。
【００２８】
図４において、一例として４段階の繰り返し処理が行われる場合、入力画像Ｉ１及びＩ２に対して、１回目の処理では８分の１に縮小されたスケールで、ステップＳ１６０１〜Ｓ１６０８の視差値算出処理がされ、さらに、２回目の処理では４分の１に縮小されたスケールで、３回目の処理では２分の１に縮小されたスケールで、４回目の処理では等倍のスケールで視差値算出処理がされる。そのため、ステップＳ１６０８では、繰り返し数が４回目未満の場合、処理が継続され、繰り返し数が４回目の場合、処理が終了する。
【００２９】
ＳＧＭ及び特許文献１の視差値算出処理の間には、以下のような差異がある。特許文献１では、視差値の探索が局所的な処理（ローカルな処理）で行われており、視差値算出時に、着目画素における視差値とその周囲の画素における視差値との関係について考慮されていない。ＳＧＭでは、コスト算出の際、視差値の空間的な変化に対してペナルティを与えることにより、着目画素における視差値がその周囲の画素の視差値と同様の値を取りやすくされている。特許文献１では、視差画像において、ストリーキングアーチファクト（Streaking Artifact）、つまり、エッジ、境界等のライン間で視差値が異なることによる筋状のアーチファクトが生じ得るが、ＳＧＭでは、ストリーキングアーチファクトを低減することができる。
【００３０】
しかしながら、特許文献１及び非特許文献１の従来の視差値算出処理では、相違度（つまり、ハミング距離）、又は相違度に基づくコストが最小となる整数画素精度の視差値付近において、具体的には、当該視差値の前後の視差値（当該視差値±１画素の視差値）に対応する相違度又はコストを用いてサブピクセル精度の視差値を算出する場合、得られる視差値の精度が低い、つまり誤差が大きいという問題がある。
【００３１】
本発明者らは、上記問題の発生原因を、以下のように考えた。ＳＡＤ（Sum of Absolute Difference：輝度値の差の絶対値の合計）及びＳＳＤ（Sum of Squared Difference：輝度値の差の２乗の合計）等の輝度差で定義されるコスト関数による視差値算出では、コスト関数の整数画素精度での最小値付近で等角フィッティング又はパラボラフィッティングすることでサブピクセル精度の視差値が算出できることが知られている。このことは、輝度差で定義されるコスト関数の空間的な分布が、その最小値付近で１次式又は２次式でよく近似できることを利用している。このことは、例えば８ビットの画素値の分布を連続量とみなせば、２つの画像の対応点間の画素値の差も連続量とみなせ、±０．５画素程度の区間であれば、低次のテーラー展開でよく近似できるということを意味する。
【００３２】
一方、センサス特徴量間のハミング距離は、着目画素とその周辺画素との間の明るさの大小関係をビット列化したものの差である。このようなハミング距離の最小値付近において、サブピクセル程度の位置変動に対して、ハミング距離が、リニア、つまり直線的に又は２次曲線的に振舞う保証はない。言い換えると、１画素間隔でのハミング距離の変動、すなわち明るさの大小関係の逆転が１画素間隔内で起きる位置は、規則性がないと考えるのが妥当である。このような規則性のない現象については、センサス変換における着目画素の周辺画素である参照画素を増やせば、大数の法則が効くため、滑らかな性質になることが期待される。しかしながら、センサス変換で参照する例えば８画素又は６４画素程度の参照画素数では、サブピクセル精度の視差値の算出精度を確保するのに十分なサンプル数になっていないと考えられる。さらに、ハミング距離の最小値付近では、８ビット又は６４ビットのビット列中の数ビットしか相違ビットがなく、ハミング距離の最小値付近は、大数の法則が最も効きにくいケースに該当する。
【００３３】
本発明者らは、図５〜図１３に示すように、実際に視差値を算出することによって、非特許文献１に記載されるようなＳＧＭを用いた視差値算出処理を検証した。図５は、検証に使用したＣＧ（Computer Graphic）画像であり、図７、図９及び図１１は、検証に使用した実写画像である。図６は、図５のＣＧ画像と、このＣＧ画素を水平方向に平行移動した画像とを用いたＳＧＭによる視差値の算出結果を示す。図８は、図７の実写画像と、この実写画素を水平方向に平行移動した画像とを用いたＳＧＭによる視差値の算出結果を示す。図１０は、図９の実写画像と、この実写画素を水平方向に平行移動した画像とを用いたＳＧＭによる視差値の算出結果を示す。図１２は、図１１の実写画像と、この実写画素を水平方向に平行移動した画像とを用いたＳＧＭによる視差値の算出結果を示す。
【００３４】
各画像について、１２ケース又は１６ケースの水平方向の平行移動が行われ、その内訳は、１．０画素から１．５画素までの０．１画素間隔での移動量による６つケース、又は１．０画素から１．９画素までの０．１画素間隔での移動量による１０のケースと、５．０画素から５．５画素までの０．１画素間隔での移動量による６つケースとである。平行移動後の画像である参照画像は、上記移動量での移動後の画像の画素を補間処理することにより、移動の前後で画素座標が対応するように生成した。画素座標は、画像上における２次元座標であり、画像の画素を単位とする座標である。そして、移動前の画像を基準画像として、基準画像と参照画像とから、基準画像の各画素に対応する参照画像の画素の視差値を算出した。例えば、算出視差値が「＋１．０」画素又は「−１．０」画素である場合、画素座標で基準画像の画素と同じ位置にある参照画像の画素から、水平方向に、具体的には画素座標のｘ軸正方向又はｘ軸負方向に１画素移動した位置の画素は、基準画像の当該画素と同じ被写体を写し出す。
【００３５】
上記の視差値の算出では、上述したように、基準画像の各画素について、ＳＧＭで整数精度での視差値における相違度の算出後、最小の相違度を与える画素の視差値と、当該画素の±１画素隣の画素における視差値及び相違度とを用いて、等角フィッティング法によりサブピクセル精度で視差値が算出される。なお、ハミング距離で整数精度での視差値における相違度の算出後、相違度の最小値付近での等角フィッティング法によりサブピクセル精度での視差値の算出を行った場合にも、同様の結果になることは容易に類推できる。
【００３６】
図６、図８、図１０及び図１２それぞれにおいて、左列は、上記の水平方向の移動量である正解視差値を示し、中列は、左列の移動量から各画素の算出視差値を減じた差の平均値（「ｍｅａｎ」とも呼ぶ）を示し、右列は、左列の移動量から各画素の算出視差値を減じた差の２乗平均平方根（「ＲＭＳ（Root mean square）」とも呼ぶ）を示す。これらの図から、正解視差値が、「１．０」及び「５．０」の整数画素単位の場合と比べて、正解視差値が上記以外のサブピクセル単位の場合の方が、視差値の推定誤差が大きくなる傾向であることがわかる。
【００３７】
なお、整数画素単位の視差値の算出精度が高く、サブピクセル単位の視差値の誤差がランダムな誤差となる場合、整数画素精度の視差値の算出のみを行い、サブピクセル単位の視差値の算出を行わないと仮定する。この場合、正解視差値と算出視差値との関係は、図１３に示すように仮定することができる。つまり、サブピクセル単位の視差値は、図１３の斜線でハッチングした領域に含まれ、サブピクセル単位の視差値の誤差の分布は、±０．５画素の範囲で一様となると仮定することができる。この場合、サブピクセル単位の視差値の誤差のＲＭＳ値は、下記の式１により求まる。
【００３８】
【数１】
2019120590.tif 000003
【００３９】
一方、図６において、図５のＣＧ画像について、全ての視差値の誤差のＲＭＳ値（全誤差ＲＭＳ値とも称し、具体的には、１．０から１．９と５．０から５．９までの区間を０．１画素間隔で誤差評価した場合のＲＭＳ値である。ここで、１．６から１．９までと５．６から５．９までのＲＭＳ値については、１．１から１．４までと５．１から５．４までについてのＲＭＳ値を、１．５と５．５に対して折り返す形で用いている。）は、上記式１に示した整数画素精度での視差値算出時の誤差のＲＭＳ値を超えている。また、図８、図１０及び図１２において、実写画像についての全ての視差値の誤差のＲＭＳ値は、上記式１に示した誤差のＲＭＳ値を下回ってはいるが、いずれのＲＭＳ値も、定性的には正解視差値が整数値から離れるにつれて増加しており、サブピクセル精度での視差値の算出が行われていないことを示す。
【００４０】
本発明者らは、上述のような特許文献１及び非特許文献１に記載されるような従来技術の問題点を検討した結果、複数の画像間のサブピクセル精度の視差値の算出精度を向上するために、以下のような技術を創案した。
【００４１】
本開示の一態様に係る視差値算出装置は、プロセッサとメモリとを備え、前記プロセッサは、（ａ）第１の位置に配置された第１のカメラで撮像された第１の画像と、第２の位置に配置された第２のカメラで撮像された第２の画像とを前記メモリから取得し、（ｂ）前記第１の画像に対して、予め定められた視差方向への拡大処理により、前記第１の画像の画素の数を増やすことによって、複数の第１の画素を含む第１の拡大画像を生成し、前記第２の画像に対して、予め定められた視差方向への拡大処理により、前記第２の画像の画素の数を増やすことによって、複数の第２の画素を含む第２の拡大画像を生成し、（ｃ）前記第１の拡大画像において、前記複数の第１の画素毎に、周囲の画素との画素値の比較により、第１のセンサス特徴量を算出し、前記第２の拡大画像において、前記複数の第２の画素毎に、周囲の画素との画素値の比較により、第２のセンサス特徴量を算出し、（ｄ）前記複数の第１の画素それぞれについて、前記第１のセンサス特徴量と、少なくとも１つの前記第２の画素の前記第２のセンサス特徴量とを用いて、前記少なくとも１つの第２の画素それぞれの位置での前記第１の画素に対する視差値に対応する相違度を算出し、（ｅ）前記複数の第１の画素それぞれについて、前記相違度を用いて、最も小さい相違度に対応する視差値を選択することにより、前記第１の拡大画像に対応する視差画像における画素毎の視差値を取得し、（ｆ）前記視差画像の画素毎の視差値に対して、縮小処理をすることにより、前記第２の画像に対する前記第１の画像の画素毎の視差値を算出する。
【００４２】
上記態様によれば、視差値算出装置は、第１の拡大画像及び第２の拡大画像を用いて、第１の拡大画像の各画素に対応する視差画像の各画素の視差値を算出する。さらに、視差値算出装置は、視差画像の視差値を縮小処理することによって、第２の画像に対する第１の画像の画素毎の視差値を算出する。上述のような視差値は、１画素未満の精度、つまりサブピクセル精度であり得る。例えば、視差画像の視差値が、整数精度であっても、このような視差値が縮小されることによって、サブピクセル精度となり得る。また、第１の拡大画像及び第２の拡大画像は、同じ方向に拡大された画像であるため、縮小処理による視差値の算出は簡易である。よって、視差値算出装置は、複数の画像間の視差値を高い精度で簡易に算出することができる。
【００４３】
本開示の一態様に係る視差値算出装置において、前記プロセッサは、前記第１のセンサス特徴量と前記第２のセンサス特徴量との間のハミング距離を、前記相違度として算出してもよい。
【００４４】
上記態様によれば、センサス特徴量間のハミング距離を用いた相違度の算出は、簡易である。よって、視差値算出装置は、相違度を簡易に算出することができる。
【００４５】
本開示の一態様に係る視差値算出装置において、前記プロセッサは、処理（ｄ）と処理（ｅ）の間において、（ｇ）前記第１の拡大画像において、視差値の算出対象の前記第１の画素である着目画素から、所定の方向に位置する前記第１の画素である評価画素それぞれについて、前記評価画素のうち、第１の評価画素に前記所定の方向で隣り合う第２の評価画素の視差値と、前記第２の拡大画像における前記第１の評価画素に対応する位置の対応画素に対する、相違度算出のための探索範囲内の前記第２の画素それぞれの視差値との比較に基づき、前記探索範囲内の前記第２の画素それぞれの第１の評価値を算出し、前記第１の評価画素と前記探索範囲内の前記第２の画素それぞれとの間の相違度と、前記探索範囲内の前記第２の画素それぞれの第１の評価値とに基づき、前記探索範囲内の前記第２の画素それぞれの視差値についての第２の評価値を算出し、前記探索範囲内の前記第２の画素それぞれの視差値に対応する全ての前記評価画素の前記第２の評価値を加算して、加算評価値を算出し、処理（ｅ）において、最小の前記加算評価値に対応する前記視差値を前記着目画素の視差値に決定してもよい。
【００４６】
上記態様によれば、第２の評価値は、着目画素の周囲の画素の視差値の変化を相違度に反映した指標である。視差値算出装置は、第２の評価値の和を最小にするような視差値を着目画素の視差値に決定するため、着目画素における視差値がその周囲の画素の視差値と同様の値を取りやすくなる。よって、視差値算出装置は、被写体のエッジ、境界等のライン間で視差値が異なることによる筋状のアーチファクトが生じるストリーキングアーチファクトを低減し、高い精度で視差値を算出することができる。
【００４７】
本開示の一態様に係る視差値算出装置において、前記プロセッサは、処理（ｃ）において、対象画素のセンサス特徴量を算出する際に比較する周囲の画素の領域である比較領域として、前記対象画素を含み且つ前記対象画素に対する位置が異なる複数の前記比較領域を決定し、前記比較領域それぞれについて、前記複数の第１の画素の前記第１のセンサス特徴量と、前記複数の第２の画素の前記第２のセンサス特徴量とを算出し、処理（ｄ）において、前記比較領域それぞれについて、前記相違度を算出し、処理（ｅ）において、全ての前記比較領域の前記相違度のうち、最も小さい相違度に対応する視差値を選択することにより、前記第１の拡大画像に対応する視差画像における画素毎の視差値を取得してもよい。
【００４８】
上記態様によれば、視差値算出装置は、複数の比較領域に関する着目画素の相違度のうち、最も小さい相違度に対応する視差値を着目画素の視差値に決定する。このような視差値は、着目画素に対する比較領域の位置に起因する視差値の誤差を低減する。よって、視差値算出装置は、オクルージョンの境界又は視差値が変化する前景及び背景間の境界付近に位置する画素について、視差画像での視差値の差異による境界の位置と、被写体の輪郭の位置とを正確に整合させることができる。
【００４９】
本開示の一態様に係る視差値算出装置において、前記プロセッサは、処理（ｄ）において、前記相違度が算出される前記第１の画素及び前記第２の画素について、前記第１の画素の前記周囲の画素の画素値である輝度値と前記第２の画素の前記周囲の画素の画素値である輝度値との差異と、前記第１の画素の前記周囲の画素の輝度勾配と前記第２の画素の前記周囲の画素の輝度勾配との差異との少なくとも一方に基づく重みを、前記相違度に付加してもよい。
【００５０】
上記態様によれば、第１の画素の周囲の画素の輝度値と第２の画素の周囲の画素の輝度値との差異に基づく重みも、第１の画素の周囲の画素の輝度勾配と第２の画素の周囲の画素の輝度勾配との差異に基づく重みも、着目画素に対する比較領域の配置が固定されていても、比較領域の内部を空間的に重み付けする。これにより、相違度は、輝度値の変化及び／又は輝度勾配の変化を反映することができる。よって、視差値算出装置は、オクルージョンの境界又は視差値が変化する前景及び背景間の境界付近に位置する画素について、着目画素に対して単一の比較領域を用いるだけで、視差画像での視差値の差異による境界の位置と、被写体の輪郭の位置とを正確に整合させることができる。
【００５１】
本開示の一態様に係る視差値算出方法は、（ａ）第１の位置に配置された第１のカメラで撮像される第１の画像と、第２の位置に配置された第２のカメラで撮像される第２の画像とを取得し、（ｂ）前記第１の画像に対して、予め定められた視差方向への拡大処理により、前記第１の画像の画素の数を増やすことによって、複数の第１の画素を含む第１の拡大画像を生成し、前記第２の画像に対して、予め定められた視差方向への拡大処理により、前記第２の画像の画素の数を増やすことによって、複数の第２の画素を含む第２の拡大画像を生成し、（ｃ）前記第１の拡大画像において、前記複数の第１の画素毎に、周囲の画素との画素値の比較により、第１のセンサス特徴量を算出し、前記第２の拡大画像において、前記複数の第２の画素毎に、周囲の画素との画素値の比較により、第２のセンサス特徴量を算出し、（ｄ）前記複数の第１の画素それぞれについて、前記第１のセンサス特徴量と、少なくとも１つの前記第２の画素の前記第２のセンサス特徴量とを用いて、前記少なくとも１つの第２の画素それぞれの位置での前記第１の画素に対する視差値に対応する相違度を算出し、（ｅ）前記複数の第１の画素それぞれについて、前記相違度を用いて、最も小さい相違度に対応する視差値を選択することにより、前記第１の拡大画像に対応する視差画像における画素毎の視差値を取得し、（ｆ）前記視差画像の画素毎の視差値に対して、縮小処理をすることにより、前記第２の画像に対する前記第１の画像の画素毎の視差値を算出し、処理（ａ）〜処理（ｆ）の少なくとも１つは、少なくとも１つのプロセッサによって実行される。上記態様によれば、本開示の一態様に係る視差値算出装置を同様の効果が得られる。
【００５２】
本開示の一態様に係る視差値算出方法において、前記第１のセンサス特徴量と前記第２のセンサス特徴量との間のハミング距離を、前記相違度として算出してもよい。
【００５３】
本開示の一態様に係る視差値算出方法において、処理（ｄ）と処理（ｅ）の間において、（ｇ）前記第１の拡大画像において、視差値の算出対象の前記第１の画素である着目画素から、所定の方向に位置する前記第１の画素である評価画素それぞれについて、前記評価画素のうち、第１の評価画素に前記所定の方向で隣り合う第２の評価画素の視差値と、前記第２の拡大画像における前記第１の評価画素に対応する位置の対応画素に対する、相違度算出のための探索範囲内の前記第２の画素それぞれの視差値との比較に基づき、前記探索範囲内の前記第２の画素それぞれの第１の評価値を算出し、前記第１の評価画素と前記探索範囲内の前記第２の画素それぞれとの間の相違度と、前記探索範囲内の前記第２の画素それぞれの第１の評価値とに基づき、前記探索範囲内の前記第２の画素それぞれの視差値についての第２の評価値を算出し、前記探索範囲内の前記第２の画素それぞれの視差値に対応する全ての前記評価画素の前記第２の評価値を加算して、加算評価値を算出し、処理（ｅ）において、最小の前記加算評価値に対応する前記視差値を前記着目画素の視差値に決定してもよい。
【００５４】
本開示の一態様に係る視差値算出方法では、処理（ｃ）において、対象画素のセンサス特徴量を算出する際に比較する周囲の画素の領域である比較領域として、前記対象画素を含み且つ前記対象画素に対する位置が異なる複数の前記比較領域を決定し、前記比較領域それぞれについて、前記複数の第１の画素の前記第１のセンサス特徴量と、前記複数の第２の画素の前記第２のセンサス特徴量とを算出し、処理（ｄ）において、前記比較領域それぞれについて、前記相違度を算出し、処理（ｅ）において、全ての前記比較領域の前記相違度のうち、最も小さい相違度に対応する視差値を選択することにより、前記第１の拡大画像に対応する視差画像における画素毎の視差値を取得してもよい。
【００５５】
本開示の一態様に係る視差値算出方法では、処理（ｄ）において、前記相違度が算出される前記第１の画素及び前記第２の画素について、前記第１の画素の前記周囲の画素の画素値である輝度値と前記第２の画素の前記周囲の画素の画素値である輝度値との差異と、前記第１の画素の前記周囲の画素の輝度勾配と前記第２の画素の前記周囲の画素の輝度勾配との差異との少なくとも一方に基づく重みを、前記相違度に付加するとしてもよい。
【００５６】
本開示の一態様に係るプログラムは、（ａ）第１の位置に配置された第１のカメラで撮像された第１の画像と、第２の位置に配置された第２のカメラで撮像された第２の画像とを取得し、（ｂ）前記第１の画像に対して、予め定められた視差方向への拡大処理により、前記第１の画像の画素の数を増やすことによって、複数の第１の画素を含む第１の拡大画像を生成し、前記第２の画像に対して、予め定められた視差方向への拡大処理により、前記第２の画像の画素の数を増やすことによって、複数の第２の画素を含む第２の拡大画像を生成し、（ｃ）前記第１の拡大画像において、前記複数の第１の画素毎に、周囲の画素との画素値の比較により、第１のセンサス特徴量を算出し、前記第２の拡大画像において、前記複数の第２の画素毎に、周囲の画素との画素値の比較により、第２のセンサス特徴量を算出し、（ｄ）前記複数の第１の画素それぞれについて、前記第１のセンサス特徴量と、少なくとも１つの前記第２の画素の前記第２のセンサス特徴量とを用いて、前記少なくとも１つの第２の画素それぞれの位置での前記第１の画素に対する視差値に対応する相違度を算出し、（ｅ）前記複数の第１の画素それぞれについて、前記相違度を用いて、最も小さい相違度に対応する視差値を選択することにより、前記第１の拡大画像に対応する視差画像における画素毎の視差値を取得し、（ｆ）前記視差画像の画素毎の視差値に対して、縮小処理をすることにより、前記第２の画像に対する前記第１の画像の画素毎の視差値を算出することを、コンピュータに実行させる。上記態様によれば、本開示の一態様に係る視差値算出装置を同様の効果が得られる。
【００５７】
なお、上記の包括的又は具体的な態様は、システム、装置、方法、集積回路、コンピュータプログラム又はコンピュータ読取可能な記録ディスク等の記録媒体で実現されてもよく、システム、装置、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。コンピュータ読み取り可能な記録媒体は、例えばＣＤ−ＲＯＭ等の不揮発性の記録媒体を含む。また、装置は、１つ以上の装置で構成されてもよい。装置が２つ以上の装置で構成される場合、当該２つ以上の装置は、１つの機器内に配置されてもよく、分離した２つ以上の機器内に分かれて配置されてもよい。本明細書及び特許請求の範囲では、「装置」とは、１つの装置を意味し得るだけでなく、複数の装置からなるシステムも意味し得る。
【００５８】
以下、本開示に係る視差値算出装置について、図面を参照しながら具体的に説明する。なお、以下で説明する実施の形態は、いずれも包括的又は具体的な例を示すものである。以下の実施の形態で示される数値、形状、構成要素、構成要素の配置位置及び接続形態、ステップ（工程）、ステップの順序等は、一例であり、本開示を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。また、各図は模式図であり、必ずしも厳密に図示されたものではない。さらに、各図において、実質的に同一の構成要素に対しては同一の符号を付しており、重複する説明は省略又は簡略化される場合がある。
【００５９】
［実施の形態１］
実施の形態１に係る視差値算出装置１００を含む測距システム１を説明する。測距システム１は、複数のカメラで取得された複数の撮像画像から、当該撮像画像内の被写体と複数のカメラとの距離を算出する、つまり、当該撮像画像内の被写体の位置を３次元的に測距する。視差値算出装置１００は、測距に用いられる複数の撮像画像間の視差値を算出する。なお、視差値算出装置１００が備えられる対象は、測距システム１に限定されず、複数の撮像画像間の視差値を用いるものであれば、いかなる対象でもよい。
【００６０】
図１４は、実施の形態１に係る視差値算出装置１００を含む測距システム１の機能的な構成の一例のブロック図を示す。図１４に示すように、測距システム１は、撮像部１０と、記憶部２０と、画像処理部３０とを備える。撮像部１０、記憶部２０及び画像処理部３０は、１つの機器に搭載されてもよく、複数の機器に分かれて搭載されてもよい。後者の場合、複数の機器は、有線通信又は無線通信を介して、情報を授受してもよい。上記有線通信には、既存のいかなる有線通信が適用されてもよい。上記無線通信には、既存のいかなる無線通信が適用されてもよい。例えば、上記無線通信には、Ｗｉ−Ｆｉ（登録商標）（Wireless Fidelity）などの無線ＬＡＮ（Local Area Network）が適用されてもよく、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＺｉｇＢｅｅ（登録商標）等の近距離無線通信が適用されてもよい。
【００６１】
撮像部１０は、画像を撮像して取得し、記憶部２０に出力する。撮像部１０は、少なくとも２つのカメラを備え、本実施の形態では、異なる光軸中心で配置された２つのカメラ１１ａ及び１１ｂを備える。本実施の形態では、カメラ１１ａ及び１１ｂは、各画素の画素値が輝度値であるデジタル画像を、動画及び／又は静止画として撮像するカメラであるが、いかなるデジタル画像を撮像するカメラであってもよい。カメラ１１ａ及び１１ｂは、別々のカメラを構成してもよく、一体化されて複眼のカメラを構成してもよい。なお、カメラの数量は、２つに限定されず、２つ以上のいかなる数量であってもよい。本実施の形態では、カメラ１１ａ及び１１ｂは、同時に撮像を行う。
【００６２】
例えば、図１５には、撮像部１０のカメラ１１ａ及び１１ｂの配置例が模式的な斜視図で示されている。さらに、図１６には、図１５のカメラ１１ａ及び１１ｂの基線長の例が模式的な正面図で示されている。図１５の例では、カメラ１１ａ及び１１ｂは、水平方向に並んで配置されている。この場合、カメラ１１ａ及び１１ｂのレンズの中心を結ぶ基線ＢＬは、水平方向に延びる。さらに、カメラ１１ａ及び１１ｂそれぞれの光軸中心ＯＡａ及びＯＡｂは、互いから離れて水平方向に並び且つ平行であり、基線ＢＬ方向に対して垂直である。この場合、図１６に示すように、カメラ１１ａ及び１１ｂの光軸中心ＯＡａ及びＯＡｂの距離である基線長Ｌは、０よりも大きい。さらに、カメラ１１ａ及び１１ｂは、同じ向きＤに向けられ、例えば、図１５の例では、光軸中心ＯＡａ及びＯＡｂは、水平方向に延び且つ向きＤに平行である。さらにまた、カメラ１１ａ及び１１ｂの水平スキャン方向と基線ＢＬ方向とが平行である。水平スキャン方向は、カメラが有する複数の撮像素子の縦横の並び方向のうちの横方向であり、基線ＢＬ方向と同様の水平方向である。複数の撮像素子は、例えば、横方向である水平方向と、これに垂直な縦方向である垂直方向との２つの方向に格子状に平面的に配置されている。ここで、カメラ１１ａは、第１の位置に配置された第１のカメラの一例であり、カメラ１１ｂは、第２の位置に配置された第２のカメラの一例である。
【００６３】
なお、カメラ１１ａ及び１１ｂの配置は、図１５に示すような水平方向に並ぶ配置に限定されず、例えば、図１７に示すように、鉛直方向、つまり上下方向に並ぶ配置であってもよい。図１７は、撮像部１０のカメラ１１ａ及び１１ｂの別の配置例を示す模式的な斜視図である。この場合、基線ＢＬは鉛直方向に延びる。カメラ１１ａ及び１１ｂの光軸中心ＯＡａ及びＯＡｂは、互いから離れて鉛直方向に並び且つ平行であり、基線ＢＬ方向に対して垂直である。さらに、カメラ１１ａ及び１１ｂは、同じ向きＤに向けられ、例えば、図１７の例では、光軸中心ＯＡａ及びＯＡｂは、水平方向に延び且つ向きＤに平行である。さらにまた、カメラ１１ａ及び１１ｂの水平スキャン方向と基線ＢＬ方向とが垂直である。
【００６４】
上述のようなカメラ１１ａ及び１１ｂは、同じ被写体を撮像することができるステレオカメラを構成し、このようなカメラ１１ａ及び１１ｂによって撮像された画像は、ステレオ画像を構成する。
【００６５】
本明細書及び特許請求の範囲において、「平行」及び「垂直」とはそれぞれ、完全に平行及び垂直であるケースだけでなく、完全な平行及び垂直に対して差異があるケースも意味し得る。上記差異は、例えば、１０°未満の角度の差異であってもよい。
【００６６】
記憶部２０は、種々の情報の格納及び取り出しを可能にする。例えば、記憶部２０は、撮像部１０によって取得された撮像画像を格納する。記憶部２０は、撮像部１０及び／又は画像処理部３０を動作させるためのプログラムを格納してもよい。これらのプログラムは、撮像部１０及び画像処理部３０が有する図示しないメモリに格納されてもよい。記憶部２０は、例えば、ＲＯＭ（Read-Only Memory）、ＲＡＭ（Random Access Memory）、フラッシュメモリなどの半導体メモリ、ハードディスクドライブ、又はＳＳＤ（Solid State Drive）等の記憶装置によって実現される。ここで、記憶部２０は、メモリの一例である。
【００６７】
画像処理部３０は、視差値算出装置１００と、距離算出部３１と、出力部３２とを備える。さらに、視差値算出装置１００は、水平拡大部１０１と、センサス変換部１０２と、相違度算出部１０３と、視差選択部１０４と、水平縮小部１０５とを含む。上記の画像処理部３０及び視差値算出装置１００の各構成要素は、ＣＰＵ（Central Processing Unit）又はＤＳＰ（Digital Signal Processor）等のプロセッサ、並びに、ＲＡＭ及びＲＯＭ等のメモリなどからなるコンピュータシステム（図示せず）により構成されてもよい。各構成要素の一部又は全部の機能は、ＣＰＵ又はＤＳＰがＲＡＭを作業用のメモリとして用いてＲＯＭに記録されたプログラムを実行することによって達成されてもよい。また、各構成要素の一部又は全部の機能は、電子回路又は集積回路等の専用のハードウェア回路によって達成されてもよい。各構成要素の一部又は全部の機能は、上記のソフトウェア機能とハードウェア回路との組み合わせによって構成されてもよい。プログラムは、アプリケーションとして、インターネット等の通信網を介した通信、モバイル通信規格による通信、その他の無線ネットワーク、有線ネットワーク、又は放送等で提供されるものであってもよい。
【００６８】
視差値算出装置１００は、カメラ１１ａ及び１１ｂによって取得された対応する撮像画像を用いて、撮像画像上の様々な位置、具体的には、各画素における撮像画像間の視差を算出し、距離算出部３１に出力する。対応する撮像画像の例は、カメラ１１ａ及び１１ｂによって同時刻に撮像された画像である。距離算出部３１は、カメラ１１ａ及び１１ｂの撮像画像間の視差に基づき、三角測量の技術を用いて、撮像画像の上の様々な位置、具体的には、各画素における、当該画素に写し出される被写体とカメラ１１ａ及び１１ｂとの距離を算出し、出力部３２に出力する。距離算出部３１は、被写体とカメラ１１ａ及び１１ｂの基線ＢＬとの距離を算出する。距離算出部３１は、各画素の画素値が基準カメラ（カメラ１１ａ又はカメラ１１ｂ）の光学中心（図１５及び図１７におけるＯＡａ又はＯＡｂ）からの距離である距離画像を生成してもよい。出力部３２は、距離算出部３１によって算出された撮像画像の各画素の距離、及び距離画像等の距離情報を、撮像画像と対応付けて、記憶部２０、測距システム１を搭載する機器等に出力する。例えば、測距システム１が自動車に搭載される場合、出力部３２は、距離情報を自動車のＥＣＵ（Electronic Control Unit：電子制御ユニット）に出力してもよい。
【００６９】
視差値算出装置１００の水平拡大部１０１は、入力画像であるカメラ１１ａ及び１１ｂの撮像画像Ｉ１及びＩ２と、初期視差画像Ｄｉｎｉｔとを、予め定められた視差探索方向である水平方向の視差方向に拡大する、つまり水平拡大する。視差探索方向は、後述する探索範囲内における画素の並び方向である。撮像画像Ｉ１及びＩ２はそれぞれ、拡大画像Ｉ１ｈ及びＩ２ｈに水平拡大される。初期視差画像Ｄｉｎｉｔは、カメラ１１ａ及び１１ｂのカメラパラメタに基づき予め算出された視差値の初期値を、各画素の画素値として含む画像である。このような視差値の初期値は、全ての画素において同一であってもよい。初期視差画像Ｄｉｎｉｔの全ての画素の視差値は、０であってもよい。カメラパラメタの例は、カメラの位置及び向き、並びに、焦点距離及び光軸中心位置等である。視差探索方向は、視差値を算出する際に、カメラ１１ａ及び１１ｂの画像間で画素を比較する方向であり、本実施の形態では、水平方向の一次元の探索方向である。この場合、カメラ１１ａの画像を基準として視差値を算出する際、当該画像の１つの画素である着目画素に対して、カメラ１１ｂの画像において、着目画素と同じラインの参照画素が、水平方向、つまりライン方向に順次探索され、着目画素と比較される。カメラ１１ａの画像ではなく、カメラ１１ｂの画像を基準とする場合も同様である。ここで、撮像画像Ｉ１は、第１の画像の一例であり、撮像画像Ｉ２は、第２の画像の一例であり、視差探索方向は、予め定められた視差方向の一例である。
【００７０】
水平拡大処理では、水平方向の画素数が増やされるが、鉛直方向の画素数は変わらない。つまり、画素列の数量が増加し、画素行の数量は一定である。水平拡大処理は補間拡大によって行われる。補間拡大の方法には複数のものが知られているが、本実施の形態では、復元画質が高いことで知られているバイキュービック補間よりもバイリニア補間を行うことが好ましい。その理由は、バイキュービック補間で重畳されるオーバーシュート成分が後述するセンサス変換結果を用いた相違度計算の誤差要因となり得るからである。
【００７１】
センサス変換部１０２は、拡大画像Ｉ１ｈ及びＩ２ｈをセンサス変換する。センサス変換とは、着目画素とその周囲の周辺画素との大小関係により、着目画素周囲の周辺画素の画素値つまり輝度値の分布をビット列に変換する処理である。具体的には、例えば、着目画素の画素値が周辺画素の画素値よりも大きい場合、当該周辺画素のセンサス変換値は１であり、着目画素の画素値が周辺画素の画素値以下の場合、当該周辺画素のセンサス変換値は０である。センサス変換部１０２は、拡大画像Ｉ１ｈ及びＩ２ｈそれぞれの全ての画素に対して、センサス変換する。
【００７２】
例えば、図１８Ａ及び図１８Ｂは、センサス変換における周辺画素の一例を示す。図１９Ａ及び図１９Ｂはそれぞれ、図１８Ａ及び図１８Ｂの周辺画素のセンサス変換の一例を示す。図１８Ａ、図１８Ｂ、図１９Ａ及び図１９Ｂにおいて、ｃｔｒは着目画素を示す。図１８Ａ及び図１９Ａは、着目画素の近傍の８画素が周辺画素である例であり、図１８Ｂ及び図１９Ｂは、着目画素の近傍の６４画素が周辺画素である例である。図１９Ａ及び図１９Ｂの例ではそれぞれ、センサス変換により、着目画素周囲の周辺画素の画素値の分布は、８ビット又は６４ビットのビット列で表すことができる。具体的には、図１９Ａ及び図１９Ｂはそれぞれ、センサス変換前の周辺画素及び着目画素の画素値の例と、周辺画素のセンサス変換値の例と、センサス変換値からなるビット列の例とを示す。
【００７３】
例えば、図１８Ａ、図１８Ｂ、図１９Ａ及び図１９Ｂにおいて、図面上で水平方向に画素座標のｘ軸が定義され、上記水平方向の垂直方向に画素座標のｙ軸が定義され、図面上で水平方向右方向にｘ軸正方向が定義され、垂直方向下方向にｙ軸正方向が定義される。ｘ軸は、カメラ１１ａ及び１１ｂの基線ＢＬに沿う方向に延びる。ビット列は、例えば、ｙ座標最小且つｘ座標最小の周辺画素のセンサス変換値を最初の要素、つまりビットとして含み、さらに、ｙ座標が同じであるｘ軸正方向の周辺画素のセンサス変換値を順次要素として含み、次いで、ｙ座標を１つずつ増やしつつ、ｙ座標が同じであるｘ軸正方向の周辺画素のセンサス変換値を順次要素として含む。例えば、図１９Ａの例では、ビット列は、（０００１１０１１）で示される。このようにして、拡大画像Ｉ１ｈ及びＩ２ｈそれぞれの全ての画素に対して、ビット列が生成される。なお、周辺画素の数量及び配置は、図１８Ａ及び１８Ｂの数量及び配置に限る必要はなく、他の数量及び配置であってもかまわない。ここで、センサス変換値からなる上記のようなビット列は、センサス特徴量を構成する。
【００７４】
相違度算出部１０３は、予め決められた探索範囲内の画素について、拡大画像Ｉ１ｈ及びＩ２ｈの間のセンサス特徴量の相違度を算出する。本実施の形態では、センサス特徴量の相違度として、ハミング距離が用いられる。ここで、探索範囲について説明する。探索範囲は、少なくとも１つの画素を含む。図１５に示すように、本実施の形態では、カメラ１１ａは、撮像方向である向きＤに向かって、カメラ１１ｂよりも左側に配置され、左カメラを構成し、カメラ１１ｂは、右カメラを構成する。
【００７５】
このようなカメラ１１ａの撮像画像Ｉ１に対応する拡大画像Ｉ１ｈを基準画像とし、カメラ１１ｂの撮像画像Ｉ２に対応する拡大画像Ｉ２ｈを参照画像とする場合の探索範囲を説明する。この場合、図２０に示すように、例えば、基準画像Ｉ１ｈ上の画素（以下、「着目画素」とも呼ぶ）Ｉ１ｈｐは、参照画像Ｉ２ｈ上の探索範囲内の全ての画素（以下、「参照画素」とも呼ぶ）Ｉ２ｈｐ１〜Ｉ２ｈｐｎそれぞれとの間で、センサス特徴量の相違度が求められる。なお、図２０は、相違度の算出の際の画素の探索範囲の一例を示す図である。参照画素Ｉ２ｈｐ１〜Ｉ２ｈｐｎは、着目画素Ｉ１ｈｐと画素座標のｙ座標が同じ画素の行を構成し、当該画素の行は、探索範囲を構成する。このような探索範囲は、画素座標における一次元探索範囲であり、参照画像Ｉ２ｈにおける１つの画素の行の全てである。
【００７６】
又は、着目画素Ｉ１ｈｐは、参照画像Ｉ２ｈ上における着目画素Ｉ１ｈｐと同じ画素座標である対応画素Ｉ２ｈｐｍを含むｋ＋１個（ｋは、正の整数）の参照画素それぞれとの間で、センサス特徴量の相違度が求められてもよい。着目画素Ｉ１ｈｐの画素座標と、対応画素Ｉ２ｈｐｍの画素座標とは、着目画素Ｉ１ｈｐでの視差値に対応して異なるが、本実施の形態では、各画素の視差値の初期値を示す初期視差画像における各画素の視差値は０である。このため、着目画素Ｉ１ｈｐの画素座標と、対応画素Ｉ２ｈｐｍの画素座標とが同じである。このような参照画素は、対応画素Ｉ２ｈｐｍとｙ座標が同じであり且つ対応画素Ｉ２ｈｐｍからｘ軸負方向にｋ＋１個の画素、つまり、対応画素Ｉ２ｈｐｍから画素Ｉ２ｈｐｍ−ｋのｋ＋１個の画素であり、探索範囲を構成する。このような探索範囲は、一次元探索範囲であり、参照画像Ｉ２ｈの対応画素Ｉ２ｈｐｍを含む画素の行において、対応画素Ｉ２ｈｐｍから基線ＢＬに沿ってカメラ１１ａに向かうｋ＋１個の画素の範囲である。以下の実施の形態では、ｋ＋１個の画素を探索範囲とするケースを説明する。
【００７７】
なお、着目画素Ｉ１ｈｐに対する対応画素Ｉ２ｈｐｍの視差値は、０画素であり、着目画素Ｉ１ｈｐに対する画素Ｉ２ｈｐｍ−ｋの視差値は、−ｋ画素である。このため、探索範囲は、着目画素Ｉ１ｈｐに対する水平方向の視差値が０画素から−ｋ画素である範囲でもある。なお、上記探索範囲は、視差値が０以下の範囲であるが、これに限定されず、視差値が０超である範囲も含んでもよい。本実施の形態では、視差値は、正の値である場合、ｘ軸正方向の視差を示し、負の値である場合、ｘ軸負方向の視差を示す。
【００７８】
同様に、拡大画像Ｉ２ｈを基準画像とし、拡大画像Ｉ１ｈを参照画像とする場合の探索範囲を説明する。この場合、図２１に示すように、基準画像Ｉ２ｈ上の着目画素Ｉ２ｈｐは、参照画像Ｉ１ｈ上の探索範囲内の全ての参照画素Ｉ１ｈｐ１〜Ｉ１ｈｐｎそれぞれとの間で、センサス特徴量の相違度が求められる。なお、図２１は、相違度の算出の際の画素の探索範囲の別の一例を示す図である。このような探索範囲は、参照画像Ｉ１ｈにおける１つの画素の行の全てであり、この行のｙ座標は、着目画素Ｉ２ｈｐと同じである。
【００７９】
又は、着目画素Ｉ２ｈｐは、参照画像Ｉ１ｈ上における対応画素Ｉ１ｈｐｍを含むｋ＋１個の参照画素それぞれとの間で、センサス特徴量の相違度が求められてもよい。このような参照画素は、対応画素Ｉ１ｈｐｍとｙ座標が同じであり且つ対応画素Ｉ１ｈｐｍからｘ軸正方向のｋ＋１個の画素、つまり、対応画素Ｉ１ｈｐｍから画素Ｉ１ｈｐｍ＋ｋのｋ＋１個の画素であり、探索範囲を構成する。このような探索範囲は、参照画像Ｉ１ｈの対応画素Ｉ１ｈｐｍを含む画素の行において、対応画素Ｉ１ｈｐｍから基線ＢＬに沿ってカメラ１１ｂに向かうｋ＋１個の画素の範囲である。また、探索範囲は、着目画素Ｉ２ｈｐに対する水平方向の視差値が０画素からｋ画素である範囲でもある。上記探索範囲は、視差値が０以上の範囲であるが、これに限定されず、視差値が０未満である範囲も含んでもよい。
【００８０】
また、ハミング距離を用いた相違度は、以下のように求められる。例えば、基準画像の着目画素のセンサス特徴量が、ビット列（０００１１０１１）であり、参照画像の参照画素のセンサス特徴量が、ビット列（１０１１０００１）である場合、これら２つの画素間のハミング距離は、１＋０＋１＋０＋１＋０＋１＋０＝４であり、相違度は、「４」である。相違度は、ハミング距離であり、２つの画素のセンサス特徴量であるビット列間において、同じ桁同士のビットの数値が異なる桁数である。つまり、ハミング距離の算出では、２つのビット列間において、同じ桁のビットの数値が同じ場合、ビット間差異が「０」であり、同じ桁のビットの数値が異なる場合、ビット間差異が「１」であり、全てのビット間差異の和がハミング距離である。
【００８１】
このように、相違度算出部１０３は、基準画像の着目画素それぞれについて、着目画素のセンサス特徴量と、参照画像の少なくとも１つの参照画素のセンサス特徴量とを用いて、少なくとも１つの参照画素それぞれの位置での着目画素に対する視差値に対応する相違度を算出する。
【００８２】
視差選択部１０４は、着目画素について、対応する探索範囲内の参照画素の相違度のうちから、最小の相違度を選択し、当該相違度に対応する参照画素の視差値を特定する。そして、視差選択部１０４は、特定された視差値を、着目画素の視差値に決定する。視差選択部１０４は、基準画像内の全ての画素を、着目画素として順次走査することにより、基準画像内の各画素における視差値を決定する。これにより、視差選択部１０４は、各画素の画素値が視差値である視差画像を生成する。視差画像は、基準画像の各画素における輝度値からなる画素値を視差値に置き換えた画像である。
【００８３】
具体的には、着目画素の視差値の決定は、以下に説明するように処理される。例えば、図２２には、１つの着目画素に対して算出される相違度と、相違度に対応する参照画素の視差値との関係の一例が、図化されている。このように、相違度は、予め設定された視差値の最小値及び最大値で決まる探索範囲内において、１画素間隔で算出される。そして、視差選択部１０４は、探索範囲内の相違度から、最小の相違度を選択し、当該相違度に対応する視差値を、着目画素の視差値に決定する。
【００８４】
水平縮小部１０５は、視差選択部１０４によって決定された基準画像の各画素の視差値を、水平拡大部１０１における水平拡大率に対応した水平縮小率で縮小することによって、水平拡大前のスケールの視差値に変換する。例えば、水平拡大部１０１における水平拡大率が２倍の場合、水平縮小部１０５は、２分の１の水平縮小率で水平縮小処理を行う。例えば、水平拡大部１０１における水平拡大率が４倍の場合、水平縮小部１０５は、４分の１の水平縮小率で水平縮小処理を行う。
【００８５】
具体的には、水平縮小部１０５は、視差選択部１０４によって生成された視差画像を、上記の水平縮小率で縮小する。例えば、水平縮小率が２分の１の場合、水平縮小部１０５は、水平方向つまりｘ軸方向に並ぶ２つの画素の画素値を平均化する、２つの画素の画素値の一方を選ぶ等で当該２つの画素を統合することにより、画素数を２分の１にするように視差画像を縮小する。さらに、水平縮小部１０５は、統合後の各画素の画素値、つまり視差値を２分の１にする。これにより、水平縮小部１０５は、視差画像を２分の１に縮小した１／２視差画像を、縮小視差画像として生成する。このような１／２視差画像の各画素は、２分の１画素精度の視差値を含む。
【００８６】
よって、水平拡大部１０１による２倍の水平拡大及び水平縮小部１０５による２分の１の水平縮小の場合、２分の１画素精度の視差値の算出が可能であり、水平拡大部１０１による４倍の水平拡大及び水平縮小部１０５による４分の１の水平縮小の場合、４分の１画素精度の視差値の算出が可能である。
【００８７】
なお、本実施の形態では、左右のカメラ１１ａ及び１１ｂの配置が適切である場合を想定している。すなわち、図１５に示すように、カメラ１１ａ及び１１ｂの光軸中心ＯＡａ及びＯＡｂが基線ＢＬ方向に垂直であり、且つ、光軸中心ＯＡａ及びＯＡｂが互いに平行であり、且つ、カメラ１１ａ及び１１ｂの水平スキャン方向と基線ＢＬ方向とが平行あり、且つ、カメラ１１ａ及び１１ｂに画像歪がない場合を想定している。基準画像中の着目点に対応する参照画像中の対応点は、当該着目点の画素座標のｙ座標と、画素座標のｙ座標が同じであるｘ軸方向の水平ライン中に存在する。上記のカメラ１１ａ及び１１ｂの配置によるステレオ画像の撮像を平行撮像と呼ぶ。カメラ１１ａ及び１１ｂの配置が、平行撮像の配置からずれている、又は、撮像画像の歪みが無視できない程大きい場合には、水平拡大部１０１により水平拡大を行う前又は後に、歪み補正及び画像の平行化処理を行うことで、歪みを有さず且つ平行撮像による画像となるように、画像を補正してもよい。また、図１７に示すように、カメラ１１ａ及び１１ｂが上下方向に離して配置される場合、基準画像中の着目点に対応する参照画像中の対応点は、当該着目点の画素座標のｘ座標と、画素座標のｘ座標が同じであるｙ軸方向の垂直コラム中に存在する。
【００８８】
さらに、実施の形態１に係る視差値算出装置１００の動作を説明する。図２３は、実施の形態１に係る視差値算出装置１００の動作の一例を示すフローチャートである。まず、ステップＳ１０１において、水平拡大部１０１は、記憶部２０から、カメラ１１ａ及び１１ｂそれぞれにより撮像された撮像画像Ｉ１及びＩ２を取得する。撮像画像Ｉ１及びＩ２は、同じ被写体を写し出す画像であり、同じ時刻にカメラ１１ａ及び１１ｂにより撮像された画像である。つまり、撮像画像Ｉ１及びＩ２は、ステレオ画像である。
【００８９】
次いで、ステップＳ１０２において、水平拡大部１０１は、撮像画像Ｉ１及びＩ２それぞれを、視差探索方向である画素座標のｘ軸方向、つまり水平方向に、所定の水平拡大率で拡大することによって、拡大画像Ｉ１ｈ及びＩ２ｈを生成する。水平拡大部１０１は、補間拡大により画素数を増やすことよって水平拡大処理をする。本実施の形態では、バイリニア補間が補間拡大の方法として用いられる。
【００９０】
次いで、ステップＳ１０３において、センサス変換部１０２は、拡大画像Ｉ１ｈ及びＩ２ｈそれぞれをセンサス変換する。センサス変換部１０２は、拡大画像Ｉ１ｈ及びＩ２ｈそれぞれの全ての画素をセンサス変換し、各画素のセンサス特徴量を算出する。センサス特徴量は、例えば、図１８Ａ、図１８Ｂ、図１９Ａ及び図１９Ｂに示すように、センサス変換される着目画素の周辺画素に対応するビット列であり、「センサスベクトル」とも呼ばれる。
【００９１】
次いで、ステップＳ１０４において、相違度算出部１０３は、拡大画像Ｉ１ｈ及びＩ２ｈのうちの一方の基準画像の各画素について、拡大画像Ｉ１ｈ及びＩ２ｈのうちの他方の参照画像に対する相違度を算出する。本実施の形態では、相違度算出部１０３は、図１５に示すように左側に位置するカメラ１１ａに対応する拡大画像Ｉ１ｈを、基準画像に決定し、拡大画像Ｉ２ｈを参照画像に決定するが、これに限定されない。基準画像及び参照画像の決定は、予め決められた規則に従って行われてもよく、図示しない入力装置を介したユーザによる指令に従って行われてもよい。相違度算出部１０３は、基準画像Ｉ１ｈの着目画素について、例えば、図２０に示すような、参照画像Ｉ２ｈにおける着目画素に対応する探索範囲の参照画素それぞれと着目画素との間で、センサス特徴量の相違度を算出する。相違度算出部１０３は、基準画像Ｉ１ｈの全ての画素を着目画素として、相違度を算出する。本実施の形態では、相違度は、着目画素及び参照画素のセンサス特徴量間のハミング距離である。例えば、探索範囲内の参照画素の数量がｋ＋１個である場合、１つの着目画素に対してｋ＋１個の相違度が算出される。
【００９２】
次いで、ステップＳ１０５において、視差選択部１０４は、基準画像Ｉ１ｈの各画素について、算出された相違度に基づき、当該画素の視差値を決定する。視差選択部１０４は、例えば、図２２に示すように、基準画像Ｉ１ｈの着目画素に対応する相違度から最小の相違度を抽出し、最小の相違度に対応する参照画素と着目画素との視差値を特定する。視差値は、例えば、図２０に示すように、着目画素Ｉ１ｈｐに対応する参照画像Ｉ２ｈの対応画素Ｉ２ｈｐｍに対する参照画素の位置から、算出可能である。視差選択部１０４は、基準画像Ｉ１ｈ内で、全ての画素を着目画素として順次走査することにより、基準画像Ｉ１ｈ内の全ての画素の視差値を決定する。これにより、視差選択部１０４は基準画像Ｉ１ｈの視差画像を生成する。
【００９３】
次いで、ステップＳ１０６において、水平縮小部１０５は、視差画像を、ステップＳ１０２における水平拡大率に応じた水平縮小率で縮小することによって、縮小視差画像を生成する。このとき、水平縮小部１０５は、視差画像において、水平方向つまりｘ軸方向で隣り合う複数の画素を統合することによって、撮像画像Ｉ１と同じ画素数の縮小視差画像を生成する。水平縮小部１０５は、複数の画素の統合の際、画素値である視差値も、水平縮小率で縮小する。これにより、縮小視差画像は、水平拡大前のスケールにおける視差値を画素値として含む。例えば、ステップＳ１０２での水平拡大率が２倍の場合、水平縮小率は２分の１であり、水平拡大率が４倍の場合、水平縮小率は４分の１である。縮小視差画像は、前者の場合、２分の１画素精度の視差値を含み、後者の場合、４分の１画素精度の視差値を含む。
【００９４】
なお、左右のカメラ１１ａ及び１１ｂの配置が適切でない場合、ステップＳ１０２又はステップＳ１０３の前に、画像の歪み補正及び平行化処理等を行ってもよい。またその際、平行化に伴う画像中心（図１５及び図１７における光軸中心ＯＡａ及びＯＡｂの画像中での位置）の移動を考慮し、初期視差画像における視差値の初期値を０以外の値に設定するようにしてもよい。
【００９５】
上述したように、実施の形態１に係る視差値算出装置１００は、カメラ１１ａで撮像された撮像画像Ｉ１と、カメラ１１ｂで撮像された撮像画像Ｉ２とを記憶部２０から取得し、撮像画像Ｉ１に対して、予め定められた視差方向への拡大処理により、画素の数を増やすことによって、拡大画像Ｉ１ｈを生成し、撮像画像Ｉ２に対して、予め定められた視差方向への拡大処理により、画素の数を増やすことによって、拡大画像Ｉ２ｈを生成する。さらに、視差値算出装置１００は、拡大画像Ｉ１ｈの複数の第１の画素毎に第１のセンサス特徴量を算出し、拡大画像Ｉ２ｈの複数の第２の画素毎に第２のセンサス特徴量を算出し、複数の第１の画素それぞれについて、第１のセンサス特徴量と、少なくとも１つの第２の画素それぞれの第２のセンサス特徴量とを用いて、少なくとも１つの第２の画素それぞれの位置での視差値に対応する相違度を算出する。視差値算出装置１００は、複数の第１の画素それぞれについて、相違度を用いて、最も小さい相違度に対応する視差値を選択することにより、拡大画像Ｉ１ｈに対応する視差画像における画素毎の視差値を取得し、視差画像の画素毎の視差値に対して、縮小処理をすることにより、撮像画像Ｉ２に対する撮像画像Ｉ１の画素毎の視差値を算出する。
【００９６】
上記構成によると、視差値算出装置１００は、拡大画像Ｉ１ｈ及びＩ２ｈを用いて、基準画像である拡大画像Ｉ１ｈの各画素に対応する視差画像の各画素の視差値を、整数精度で算出する。拡大画像Ｉ１ｈ及びＩ２ｈは、同じ方向に拡大されているため、上記の視差値の算出は簡易である。上述のような視差画像が縮小処理されることによって得られる視差値は、１画素未満の精度、つまりサブピクセル精度である。よって、視差値算出装置１００は、複数の画像間の視差値を高い精度で算出することができる。より具体的には、視差値算出装置１００は、ハミング距離である相違度が最小となる整数画素精度の視差値付近でサブピクセル精度の視差値を算出することができる。なお、拡大画像Ｉ２ｈが基準画像である場合も同様である。
【００９７】
また、実施の形態１に係る視差値算出装置１００において、相違度は、第１のセンサス特徴量と第２のセンサス特徴量との間のハミング距離であるため、相違度の算出が簡易である。よって、視差値算出装置１００は、複数の画像間の視差値を、高い精度で且つ簡易に算出することができる。
【００９８】
［実施の形態２］
実施の形態１に係る視差値算出装置１００は、カメラ１１ａ及び１１ｂに対応する拡大画像Ｉ１ｈ及びＩ２ｈの一方を基準画像とし、他方を参照画像と決定し、基準画像の画素に対応する視差値を算出した。実施の形態２に係る視差値算出装置２００は、拡大画像Ｉ１ｈ及びＩ２ｈそれぞれを基準画像に決定し、各基準画像に対応する視差値を比較することによって、視差値の一貫性をチェックする。つまり、実施の形態２に係る視差値算出装置２００は、視差値の算出結果の信頼性を高めるために、双方向の視差値の算出を行い、視差値の算出結果の比較から一貫性をチェックすることで、視差値の算出精度を高める。実施の形態２において、実施の形態１と同様の構成要素については、実施の形態１と同一の参照符号を付し、その説明を省略する。以下において、実施の形態１と異なる点を中心に説明し、実施の形態１と同様の点の説明を省略する。
【００９９】
図２４は、実施の形態２に係る視差値算出装置２００の機能的な構成の一例のブロック図を示す。図２４に示すように、視差値算出装置２００は、水平拡大部１０１と、センサス変換部１０２と、相違度算出部１０３と、第一視差選択部２０４ａと、第二視差選択部２０４ｂと、Ｌ／Ｒチェック部（「左右チェック部」とも呼ぶ）２０６と、水平縮小部１０５とを含む。
【０１００】
相違度算出部１０３は、カメラ１１ａ及び１１ｂの撮像画像Ｉ１及びＩ２それぞれに対応する拡大画像Ｉ１ｈ及びＩ２ｈそれぞれを基準画像として、基準画像の各画素の相違度を算出する。具体的には、相違度算出部１０３は、第一基準画像である拡大画像Ｉ１ｈ中の各画素に関して、第一参照画像である拡大画像Ｉ２ｈの探索範囲中の各画素に対して、つまり、探索範囲中の各視差値について、センサス特徴量の相違度を算出する。同様に、相違度算出部１０３は、第二基準画像である拡大画像Ｉ２ｈ中の各画素に関して、第二参照画像である拡大画像Ｉ１ｈの探索範囲中の各画素に対して、センサス特徴量の相違度を算出する。
【０１０１】
第一視差選択部２０４ａは、拡大画像Ｉ１ｈの各画素に対して算出された相違度について、当該画素の相違度のうちから最小の相違度を抽出し、最小の相違度を与える拡大画像Ｉ２ｈの画素の視差値を特定する。そして、第一視差選択部２０４ａは、拡大画像Ｉ１ｈの視差画像を、第一基準画像の視差画像として生成する。
【０１０２】
第二視差選択部２０４ｂは、拡大画像Ｉ２ｈの各画素に対して算出された相違度について、当該画素の相違度のうちから最小の相違度を抽出し、最小の相違度を与える拡大画像Ｉ１ｈの画素の視差値を特定する。そして、第二視差選択部２０４ｂは、拡大画像Ｉ２ｈの視差画像を、第二基準画像の視差画像として生成する。
【０１０３】
Ｌ／Ｒチェック部２０６は、第一基準画像の視差画像と、第二基準画像の視差画像との間の一貫性をチェックする。つまり、Ｌ／Ｒチェック部２０６は、拡大画像Ｉ１ｈの視差画像と、拡大画像Ｉ２ｈの視差画像との間の一貫性をチェックする。Ｌ／Ｒチェック部２０６は、一貫性のチェックに、以下の式２を用いる。
【０１０４】
【数２】
2019120590.tif 000004
【０１０５】
上記の式２において、ｄ１は、拡大画像Ｉ１ｈの着目画素の視差値である。ｘ’は、水平拡大後の拡大画像Ｉ１ｈにおける画素のｘ座標を示し、（ｘ’，ｙ）は、着目画素の画素座標である。ｘ’＋ｄ１（ｘ’，ｙ）は、拡大画像Ｉ１ｈの着目画素の視差値に対応する位置の拡大画像Ｉ２ｈの画素である視差対応画素のｘ座標を示す。ｄ２は、拡大画像Ｉ２ｈの上記視差対応画素の視差値である。ｘ’＋ｄ１（ｘ’，ｙ）＋ｄ２（ｘ’＋ｄ１（ｘ’，ｙ），ｙ）は、拡大画像Ｉ２ｈの上記視差対応画素の視差値に対応する位置の拡大画像Ｉ１ｈの画素のｘ座標を示す。このような式２は、拡大画像Ｉ１ｈを基準にした視差値と、拡大画像Ｉ２ｈを基準とした視差値との差異を表す。上記の式２の値が所定の閾値以下である場合、拡大画像Ｉ１ｈの着目画素の視差値の信頼性が高く、拡大画像Ｉ１ｈを基準にした視差値と、拡大画像Ｉ２ｈを基準とした視差値との間に一貫性がある見なすことができる。上記の式２の値が所定の閾値よりも大きい場合、拡大画像Ｉ１ｈの着目画素の視差値の信頼性が低く、上記一貫性がないと見なすことができる。上記閾値は、要求される一貫性の程度に応じて予め決められる。上記閾値の例は、１画素である。
【０１０６】
Ｌ／Ｒチェック部２０６は、上記の式２の値が所定の閾値以下である場合、視差値ｄ１をそのまま、拡大画像Ｉ１ｈの着目画素（ｘ’，ｙ）の視差値に決定し出力する。一方、Ｌ／Ｒチェック部２０６は、上記の式２の値が閾値よりも大きい場合には、拡大画像Ｉ１ｈの着目画素（ｘ’，ｙ）の視差値を、例えば探索範囲に含まれる視差値以外の特定の値に変更し出力する。この特定の値は、視差値の一貫性がないことを示す値である。例えば、図２０に示すように、探索範囲が０画素から−ｋ画素である場合、上記の特定の値は、−ｋ画素未満の値であってもよい。Ｌ／Ｒチェック部２０６は、上述のように、拡大画像Ｉ１ｈの視差画像における各画素の視差値を、一貫性の有無に基づき、維持又は変更することによって、新たな視差画像を生成する。
【０１０７】
水平縮小部１０５は、Ｌ／Ｒチェック部２０６によって生成された新たな視差画像を、水平拡大部１０１における水平拡大率に応じた水平縮小率で縮小し、水平拡大前の撮像画像と同じ画素数の縮小視差画像を生成する。具体的には、水平縮小部１０５は、拡大画像Ｉ１ｈの視差画像から生成された新たな視差画像を縮小する。水平縮小部１０５は、複数の画素を統合する際、視差値の一貫性がある画素の視差値を、上記水平縮小率で縮小し、統合後の画素の画素値に決定する。このような統合後の画素の視差値は、水平拡大前のスケールにおける視差値を示す。一方、水平縮小部１０５は、視差値の一貫性がない画素の視差値については、視差値の一貫性がないことを示す上記の特定の値を、縮小せずに、統合後の画素の画素値に決定する。これにより、水平縮小部１０５が出力する縮小視差画像では、視差値の一貫性がある画素は、算出されたサブピクセル精度の視差値を画素値として含み、視差値の一貫性がない画素は、一貫性つまり信頼性が低いことを示す例外値を画素値として含む。
【０１０８】
図２５を参照しつつ、視差値算出装置２００の動作を説明する。図２５は、実施の形態２に係る視差値算出装置２００の動作の一例を示すフローチャートである。視差値算出装置２００は、ステップＳ１０１〜Ｓ１０３の処理を、実施の形態１と同様に行う。
【０１０９】
次いで、ステップＳ２０１において、相違度算出部１０３は、拡大画像Ｉ１ｈを第一基準画像として、第一参照画像である拡大画像Ｉ２ｈに対する相違度を、拡大画像Ｉ１ｈの各画素について算出する。さらに、相違度算出部１０３は、拡大画像Ｉ２ｈを第二基準画像として、第二参照画像である拡大画像Ｉ１ｈに対する相違度を、拡大画像Ｉ２ｈの各画素について算出する。
【０１１０】
次いで、ステップＳ２０２において、第一視差選択部２０４ａは、第一基準画像である拡大画像Ｉ１ｈの各画素について、算出された相違度に基づき、当該画素の視差値を決定する。第一視差選択部２０４ａは、拡大画像Ｉ１ｈ内の各画素の輝度値を視差値に置き換えることによって、拡大画像Ｉ１ｈ、つまり第一基準画像の視差画像を生成する。
【０１１１】
次いで、ステップＳ２０３において、第二視差選択部２０４ｂは、第二基準画像である拡大画像Ｉ２ｈの各画素について、算出された相違度に基づき、当該画素の視差値を決定する。第二視差選択部２０４ｂは、拡大画像Ｉ２ｈ内の各画素の輝度値を視差値に置き換えることによって、拡大画像Ｉ２ｈ、つまり第二基準画像の視差画像を生成する。なお、ステップＳ２０２及びＳ２０３の順序は、逆であってもよい。
【０１１２】
次いで、ステップＳ２０４において、Ｌ／Ｒチェック部２０６は、第一基準画像である拡大画像Ｉ１ｈの視差画像の各画素について、拡大画像Ｉ２ｈの視差画像との間で、視差値の一貫性をチェックする。Ｌ／Ｒチェック部２０６は、拡大画像Ｉ１ｈの視差画像における各画素の視差値を、一貫性がある場合には維持し、一貫性がない場合には例外的な視差値に変更することによって、新たな視差画像を生成する。
【０１１３】
次いで、ステップＳ２０５において、水平縮小部１０５は、ステップＳ２０４で生成された新たな視差画像を、ステップＳ１０２における水平拡大率に応じた水平縮小率で縮小することによって、縮小視差画像を生成する。水平縮小部１０５は、複数の画素を統合する際、視差値の一貫性がある画素の視差値を、上記水平縮小率で縮小し、統合後の画素の画素値に決定する。水平縮小部１０５は、視差値の一貫性がない画素については、当該画素に設定された例外的な視差値を、縮小せずに、統合後の画素の画素値に決定する。
【０１１４】
上述のような実施の形態２に係る視差値算出装置２００によれば、実施の形態１と同様の効果が得られる。さらに、視差値算出装置２００は、カメラ１１ａの撮像画像Ｉ１の拡大画像Ｉ１ｈを基準画像とし且つカメラ１１ｂの撮像画像Ｉ２の拡大画像Ｉ２ｈを参照画像とする場合の拡大画像Ｉ１ｈの各画素の視差値を算出する。さらに、視差値算出装置２００は、拡大画像Ｉ２ｈを基準画像とし且つ拡大画像Ｉ１ｈを参照画像とする場合の拡大画像Ｉ２ｈの各画素の視差値を算出する。視差値算出装置２００は、拡大画像Ｉ１ｈを基準にした視差値と、拡大画像Ｉ２ｈを基準とした視差値との差異に基づき、視差値の一貫性を決定し、一貫性のある視差値を画素に適用し、一貫性のない視差値を一貫性が低いことを示す値に置き換えて画素に適用する。そして、視差値算出装置２００は、各画素の視差値の一貫性の有無の判別が容易である視差画像を生成する。よって、視差値算出装置２００は、複数の画像間の視差値を高い精度及び信頼性で算出することができる。
【０１１５】
本実施の形態では、Ｌ／Ｒチェック部２０６は、拡大画像Ｉ１ｈの視差画像と拡大画像Ｉ２ｈの視差画像との間の視差値の一貫性の有無に応じて、拡大画像Ｉ１ｈの視差画像の各画素の視差値を変更し、新たな視差画像を生成したが、これに限定されない。Ｌ／Ｒチェック部２０６は、上記一貫性の有無に応じて、拡大画像Ｉ２ｈの視差画像の各画素の視差値を変更し、新たな視差画像を生成してもよい。この場合、水平縮小部１０５は、拡大画像Ｉ２ｈの視差画像から生成された新たな視差画像を縮小する。
【０１１６】
又は、Ｌ／Ｒチェック部２０６は、拡大画像Ｉ１ｈの視差画像の各画素について、拡大画像Ｉ２ｈの視差画像との間の視差値の一貫性の有無を判定し、且つ、拡大画像Ｉ２ｈの視差画像の各画素について、拡大画像Ｉ１ｈの視差画像との間の視差値の一貫性の有無を判定してもよい。さらに、Ｌ／Ｒチェック部２０６は、拡大画像Ｉ１ｈの視差画像及び拡大画像Ｉ２ｈの視差画像の対応する２つの画素間で、視差値の一貫性の有無を比較してもよい。この場合、Ｌ／Ｒチェック部２０６は、対応する２つの画素のいずれもが、視差値の一貫性を有する場合、当該画素それぞれの視差値をそのまま採用し、対応する２つの画素のいずれもが、視差値の一貫性を有さない場合、当該画素それぞれの視差値を上記特定の値に変更する。また、Ｌ／Ｒチェック部２０６は、対応する２つの画素の一方が、視差値の一貫性を有し、且つ他方が視差値の一貫性を有さない場合、当該画素それぞれの視差値として、一貫性を有する画素の視差値を採用してもよく、上記特定の値を採用してもよい。
【０１１７】
［実施の形態３］
実施の形態３に係る視差値算出装置３００を説明する。実施の形態３に係る視差値算出装置３００は、実施の形態２に係る視差値算出装置２００と比較して、画像を縮小及び拡大する処理をさらに行う。具体的には、実施の形態２に係る視差値算出装置２００は、水平方向の画像の拡大及び縮小のみを行ったが、実施の形態３に係る視差値算出装置３００は、垂直方向の画像の縮小及び拡大をさらに行う。実施の形態３において、実施の形態１又は２と同様の構成要素については、実施の形態１及び２と同一の参照符号を付し、その説明を省略する。以下において、実施の形態１及び２と異なる点を中心に説明し、実施の形態１又は２と同様の点の説明を省略する。
【０１１８】
図２６は、実施の形態３に係る視差値算出装置３００の機能的な構成の一例のブロック図を示す。図２６に示すように、視差値算出装置３００は、縮小部３０７と、水平拡大部１０１と、センサス変換部１０２と、相違度算出部１０３と、第一視差選択部２０４ａと、第二視差選択部２０４ｂと、Ｌ／Ｒチェック部２０６と、水平縮小部１０５と、拡大部３０８と、終了判断部３０９とを含む。
【０１１９】
縮小部３０７は、カメラ１１ａ及び１１ｂの撮像画像Ｉ１及びＩ２を、予め定められた縮小率で縮小し、水平拡大部１０１に出力する。縮小部３０７は、記憶部２０から初期視差画像を取得する、又は拡大部３０８から視差画像を取得し、当該視差画像を予め定められた縮小率で縮小し、水平拡大部１０１に出力する。縮小部３０７は、撮像画像Ｉ１及びＩ２について、通常の等方的な縮小処理を行う、つまり、水平方向及び垂直方向であるｘ軸方向及びｙ軸方向に同じ縮小処理を行う。例えば、縮小率が２分の１の場合、撮像画像Ｉ１及びＩ２はそれぞれ、ｘ軸方向の画素数が２分の１に減少され且つｙ軸方向の画素数が２分の１に減少された画像に、補間縮小によって変換される。本実施の形態では、バイリニア補間が補間縮小の方法として用いられる。
【０１２０】
縮小部３０７は、視差画像について、通常の縮小処理に加えて、縮小率に応じて画素値である視差値を縮小（「ゲインダウン」とも呼ばれる）させる。これは、例えば２分の１の縮小率により視差画像の幅が水平方向に２分の１に縮小されると、これに応じて各画素の視差値も縮小前の２分の１の大きさになるためである。
【０１２１】
縮小部３０７による縮小処理は、後述する繰り返し処理の回数に応じて複数回行われる。例えば、繰り返し処理の回数が３回の場合、縮小率の一例は、１回目の４分の１の縮小率、２回目の２分の１の縮小率、３回目の等倍の縮小率（すなわち入力信号そのままの出力）である。縮小部３０７は、１回目の繰り返し処理では、初期視差画像を縮小し、２回目以降の繰り返し処理では、拡大部４０９から取得する視差画像を縮小する。初期視差画像では、全ての画素の画素値である視差値が０である。
【０１２２】
拡大部３０８は、水平縮小部１０５によって出力された縮小視差画像を、縮小部３０７での縮小率に対応する拡大率で拡大処理をし、縮小部３０７に出力する。拡大部３０８は、縮小視差画像について、通常の拡大処理に加えて、拡大率に応じて画素値である視差値を拡大させる。例えば、縮小率が２分の１の場合、拡大部３０８は、縮小視差画像に対して、２倍の拡大率で通常の補間拡大処理及び各画素の視差値の拡大処理を行う。縮小視差画像は、ｘ軸方向の画素数が２倍に増加され且つｙ軸方向の画素数が２倍に増加された画像に、補間拡大によって変換される。本実施の形態では、バイリニア補間が補間拡大の方法として用いられる。
【０１２３】
終了判断部３０９は、視差画像を算出するための縮小部３０７での縮小率に基づき、視差値の計算を継続するか終了するかを決定する。終了判断部３０９は、上記縮小率が１未満の場合、すなわち等倍未満である場合、視差値の計算の継続を決定し、等倍の場合、視差値の計算の終了を決定し、上記視差画像を出力する。
【０１２４】
図２７を参照しつつ、視差値算出装置３００の動作を説明する。図２７は、実施の形態３に係る視差値算出装置３００の動作の一例を示すフローチャートである。まず、ステップＳ３０１において、縮小部３０７は、記憶部２０から、カメラ１１ａ及び１１ｂそれぞれにより撮像されたステレオ画像である撮像画像Ｉ１及びＩ２と、初期視差画像Ｉｉ１及びＩｉ２とを取得する。初期視差画像Ｉｉ１及びＩｉ２はそれぞれ、カメラ１１ａ及び１１ｂに対応して予め設定される視差画像であり、初期視差画像Ｉｉ１及びＩｉ２の全ての画素の視差値は、０である。
【０１２５】
次いで、ステップＳ３０２において、縮小部３０７は、撮像画像Ｉ１及びＩ２それぞれを、所定の縮小率Ｓで通常の縮小処理することによって、縮小画像Ｉ１ｓ及びＩ２ｓを生成する。縮小部３０７は、縮小画像Ｉ１ｓ及びＩ２ｓを、水平拡大部１０１に出力する。また、縮小部３０７は、初期視差画像Ｉｉ１及びＩｉ２、又は、拡大部３０８から取得した視差画像Ｉｄ１及びＩｄ２それぞれを、撮像画像Ｉ１及びＩ２と同じ縮小率で縮小し、縮小視差画像Ｉｄ１ｓ及びＩｄ２ｓを生成する。この際、縮小部３０７は、各視差画像の各画素の視差値も当該縮小率で縮小する。縮小部３０７は、縮小視差画像Ｉｄ１ｓ及びＩｄ２ｓを水平拡大部１０１に出力する。視差画像Ｉｄ１及びＩｄ２はそれぞれ、撮像画像Ｉ１及びＩ２の視差画像である。
【０１２６】
なお、ステップＳ３０１〜Ｓ３０７の一連の処理の繰り返し回数が予め設定され、さらに、各回での縮小率が予め設定され、記憶部２０に格納されている。縮小率は、繰り返された回数が多くなるに従い、大きくなる。本実施の形態では、３回の繰り返し処理回数が設定され、１回目、２回目及び３回目の処理の際の縮小率がそれぞれ、４分の１、２分の１、及び等倍に設定されている。縮小部３０７は、縮小処理の回数をカウントし、カウント数を繰り返し処理回数として、当該繰り返し処理回数に対応する縮小率で、撮像画像Ｉ１及びＩ２それぞれを縮小し、且つ、初期視差画像Ｉｉ１及びＩｉ２又は視差画像Ｉｄ１及びＩｄ２を縮小する。縮小部３０７は、１回目の繰り返し処理では、初期視差画像Ｉｉ１及びＩｉ２を縮小し、２回目以降の繰り返し処理では、視差画像Ｉｄ１及びＩｄ２を縮小する。また、縮小率が等倍の場合、縮小部３０７は、撮像画像Ｉ１及びＩ２並びに視差画像Ｉｄ１及びＩｄ２を縮小せずにそのまま、出力する。初期視差画像Ｉｉ１及びＩｉ２の各画素の視差値は、０である。
【０１２７】
次いで、ステップＳ３０３において、水平拡大部１０１は、縮小画像Ｉ１ｓ及びＩ２ｓそれぞれを、所定の水平拡大率Ｈで拡大することによって、拡大画像Ｉ１ｓｈ及びＩ２ｓｈを生成する。また、水平拡大部１０１は、縮小視差画像Ｉｄ１ｓ及びＩｄ２ｓそれぞれを、水平拡大率Ｈで拡大することによって、拡大視差画像Ｉｄ１ｓｈ及びＩｄ２ｓｈを生成する。この際、水平拡大部１０１は、縮小視差画像Ｉｄ１ｓ及びＩｄ２ｓの各画素の視差値も水平拡大率Ｈで拡大する。水平拡大部１０１は、拡大画像Ｉ１ｓｈ及びＩ２ｓｈをセンサス変換部１０２に出力し、拡大視差画像Ｉｄ１ｓｈ及びＩｄ２ｓｈを相違度算出部１０３に出力する。
【０１２８】
拡大画像Ｉ１ｓｈ及びＩ２ｓｈそれぞれのｘ軸方向の画素数は、撮像画像Ｉ１及びＩ２それぞれのｘ軸方向の画素数のＨ／Ｓ倍である。拡大画像Ｉ１ｓｈ及びＩ２ｓｈそれぞれのｙ軸方向の画素数は、撮像画像Ｉ１及びＩ２それぞれのｙ軸方向の画素数の１／Ｓ倍である。拡大視差画像Ｉｄ１ｓｈ及びＩｄ２ｓｈそれぞれのｘ軸方向の画素数及びｙ軸方向の画素数は、拡大画像Ｉ１ｓｈ及びＩ２ｓｈと同じであり、初期視差画像Ｉｉ１及びＩｉ２又は視差画像Ｉｄ１及びＩｄ２それぞれのｘ軸方向の画素数のＨ／Ｓ倍であり、ｙ軸方向の画素数の１／Ｓ倍である。拡大視差画像Ｉｄ１ｓｈ及びＩｄ２ｓｈそれぞれの各画素の視差値は、初期視差画像Ｉｉ１及びＩｉ２又は視差画像Ｉｄ１及びＩｄ２それぞれの各画素の視差値のＨ／Ｓ倍である。
【０１２９】
次いで、ステップＳ３０４において、センサス変換部１０２は、実施の形態１におけるステップＳ１０３と同様に、拡大画像Ｉ１ｓｈ及びＩ２ｓｈそれぞれをセンサス変換する。
【０１３０】
次いで、ステップＳ３０５において、相違度算出部１０３は、実施の形態２のステップＳ２０１と同様に、拡大画像Ｉ１ｓｈを第一基準画像として、第一参照画像である拡大画像Ｉ２ｓｈに対する相違度を、拡大画像Ｉ１ｓｈの各画素について算出する。さらに、相違度算出部１０３は、拡大画像Ｉ２ｓｈを第二基準画像として、第二参照画像である拡大画像Ｉ１ｓｈに対する相違度を、拡大画像Ｉ２ｓｈの各画素について算出する。
【０１３１】
なお、相違度算出部１０３は、１回目の繰り返し処理では、予め決められた探索範囲に従って、相違度を算出する。具体的には、相違度算出部１０３は、撮像画像と同じスケールでの予め設定された視差探索範囲と、縮小率と、水平拡大率とに基づき、探索範囲を決定する。例えば、１回目の繰り返し処理における縮小率が４分の１であり、水平拡大率が２倍であり、撮像画像と同じスケールでの視差探索範囲がｘ軸方向の６４画素である場合、探索範囲は、基準画像の着目画素に対応する参照画像の対応画素を中心として、ｘ軸方向で、±６４画素×１／４×２＝±３２画素に決定される。なお、基準画像と参照画像との位置関係、すなわち、基準画像がカメラ１１ａ及び１１ｂの撮像画像Ｉ１及びＩ２のいずれに対応するかが既知の場合、探索範囲は、対応画素からｘ軸正方向の画素又はｘ軸負方向画素の一方にすることができる。具体的には、基準画像が撮像画像Ｉ１に対応する場合は、図２０においてｋ＝３２であるケースに該当し、探索範囲は、対応画素に対する−３２画素から０画素の範囲である。基準画像が撮像画像Ｉ２に対応する場合は、図２１においてｋ＝３２であるケースに該当し、探索範囲は、対応画素に対する０画素から３２画素の範囲である。
【０１３２】
２回目以降の繰り返し処理では、相違度算出部１０３は、直前の繰り返し処理によって得られた視差値の近傍の範囲を探索範囲として、相違度を算出する。具体的には、相違度算出部１０３は、直前の繰り返し処理によって得られた拡大視差画像Ｉｄ１ｓｈ及びＩｄ２ｓｈに基づき、参照画像において、着目画素の視差値に対応する位置の画素を、着目画素の対応画素に決定し、当該対応画素のｘ軸方向での近傍範囲を探索範囲に決定する。例えば、相違度算出部１０３は、当該対応画素を中心として、ｘ軸方向で、±２画素の範囲を探索範囲に決定する。このような探索範囲は、１回目の繰り返し処理よりも小さくてよい。
【０１３３】
ステップＳ３０２での縮小率は、処理が繰り返された回数が多くなる従い、大きくなる。このため、繰り返し処理が進行することによって、画素密度が粗である探索から密である探索に移行する。つまり、繰り返し処理による粗密探索が行われる。相違度算出部１０３は、１回目の繰り返し処理では、容量が小さな低解像度の画像に対する粗な探索を全探索で行った後に、繰り返し処理の回数の増加に応じて、解像度がより高い画像を用いた徐々に密な探索を、直前の探索結果の周辺だけで行う。これにより、視差値の算出精度が高く維持されつつ視差値算出の全体の計算量が削減する。
【０１３４】
次いで、ステップＳ２０２〜Ｓ２０５において、視差値算出装置３００は、ステップＳ３０５で算出された拡大画像Ｉ１ｓｈ及びＩ２ｓｈそれぞれの各画素の相違度に基づき、実施の形態２と同様の処理を行う。
【０１３５】
次いで、ステップＳ３０６において、終了判断部３０９は、視差値の計算処理を継続するか否かを判定する。終了判断部３０９は、視差値の計算処理を継続する場合（ステップＳ３０６でＹｅｓ）、ステップＳ３０７に進み、視差値の計算処理を継続しない場合（ステップＳ３０６でＮｏ）、処理を終了する。具体的には、終了判断部３０９は、ステップＳ３０２での縮小率を縮小部３０７から取得し、ステップＳ２０５で生成された視差画像をＬ／Ｒチェック部２０６から取得する。そして、終了判断部３０９は、縮小率が１未満の場合、視差値の計算処理を継続し、取得された視差画像を拡大部３０８に出力する。終了判断部３０９は、縮小率が等倍の場合、計算処理を終了し、取得された視差画像を距離算出部３１及び記憶部２０等に出力する。なお、縮小率が等倍の場合、Ｌ／Ｒチェック部２０６から取得される視差画像のスケールは、撮像画像Ｉ１及びＩ２と同じである。
【０１３６】
次いで、ステップＳ３０７において、拡大部３０８は、終了判断部３０９から取得した視差画像に対して、ステップＳ３０２での縮小率に対応する拡大率で、通常の拡大処理及び各画素の視差値の拡大処理を行い、縮小部３０７に出力する。本実施の形態では、１回目、２回目及び３回目の処理の際の拡大率はそれぞれ、縮小率４分の１、２分の１及び等倍に対応する、４倍、２倍及び等倍である。なお、縮小率が等倍の場合、ステップＳ３０６で上述したように、拡大部３０８は視差画像を取得しない。
【０１３７】
ステップＳ３０７の次のステップＳ３０２では、縮小部３０７は、前回の繰り返し処理よりも大きい縮小率で、撮像画像Ｉ１及びＩ２、並びに視差画像Ｉｄ１及びＩｄ２を縮小し、縮小画像Ｉ１ｓａ及びＩ２ｓａ、並びに縮小視差画像Ｉｄ１ｓａ及びＩｄ２ｓａを生成する。ステップＳ３０３では、水平拡大部１０１は、縮小画像Ｉ１ｓａ及びＩ２ｓａ、並びに縮小視差画像Ｉｄ１ｓａ及びＩｄ２ｓａを水平拡大し、拡大画像Ｉ１ｓａｈ及びＩ２ｓａｈ、並びに拡大視差画像Ｉｄ１ｓａｈ及びＩｄ２ｓａｈを生成する。ステップＳ３０４では、センサス変換部１０２は、拡大画像Ｉ１ｓａｈ及びＩ２ｓａｈをセンサス変換する。ステップＳ３０５では、相違度算出部１０３は、拡大画像Ｉ１ｓａｈが基準画像である場合、拡大視差画像Ｉｄ１ｓａｈに基づき、拡大画像Ｉ１ｓａｈの着目画素の視差値を取得する。さらに、相違度算出部１０３は、参照画像である拡大画像Ｉ２ｓａｈ上において、着目画素と同じ位置に上記視差値を付加した位置の画素を、着目画素の対応画素に決定し、対応画素の近傍範囲を探索範囲に決定する。相違度算出部１０３は、上記探索範囲に基づき、着目画素の相違度を算出する。また、相違度算出部１０３は、拡大画像Ｉ２ｓａｈが基準画像である場合も、拡大視差画像Ｉｄ２ｓａｈに基づき、上記と同様に処理する。また、視差値算出装置３００は、ステップＳ２０２〜Ｓ３０７の処理を、前回の繰り返し処理と同様に繰り返す。
【０１３８】
上述のような実施の形態３に係る視差値算出装置３００によれば、実施の形態２と同様の効果が得られる。さらに、視差値算出装置３００は、撮像画像に縮小率を大きくするように変化させつつ、視差値の計算の繰り返し処理を行う。視差値算出装置３００は、繰り返し処理において、相違度の算出のための探索範囲を、前回の繰り返し処理で得られた視差画像を用いて限定する。視差値算出装置３００は、１回目の繰り返し処理では、小さく縮小された低解像度の画像に対する粗な探索を全探索で行うことで相違度及び視差値を算出した後に、繰り返し処理の回数の増加に応じて、徐々に大きく縮小された高解像度の画像に対する密な探索を直前の視差画像から得られる限定された探索範囲で行うことで相違度及び視差値を算出する。これにより、視差値算出装置３００は、視差値の算出精度をサブピクセル精度に維持しつつ、視差値算出の全体の演算量を低減することができる。
【０１３９】
実施の形態３に係る視差値算出装置３００は、実施の形態２に係る視差値算出装置２００に、縮小部３０７と、拡大部３０８と、終了判断部３０９とを加えた構成であるが、図２８に示す実施の形態３の変形例に係る視差値算出装置３００ａのように、実施の形態１に係る視差値算出装置１００に、縮小部３０７と、拡大部３０８と、終了判断部３０９とを加えた構成であってもよい。なお、図２８は、実施の形態３の変形例に係る視差値算出装置３００ａの機能的な構成の一例を示すブロック図である。
【０１４０】
［実施の形態４］
実施の形態４に係る視差値算出装置４００を説明する。実施の形態３に係る視差値算出装置３００は、撮像画像に対して、縮小部３０７による等方的な縮小の後、水平拡大部１０１による水平拡大を行い、さらに、Ｌ／Ｒチェック部２０６による一貫性チェックの後、視差画像に対して、水平縮小部１０５による水平縮小と、拡大部３０８による等方的な拡大を行っている。実施の形態４に係る視差値算出装置４００は、縮小部３０７及び水平拡大部１０１による縮小及び拡大処理、並びに、水平縮小部１０５及び拡大部３０８による縮小及び拡大処理をそれぞれ、個別に行わず、合成した処理で一度に行う。実施の形態４において、実施の形態１〜３と同様の構成要素については、実施の形態１〜３と同一の参照符号を付し、その説明を省略する。以下において、実施の形態１〜３と異なる点を中心に説明し、実施の形態１〜３と同様の点の説明を省略する。
【０１４１】
図２９は、実施の形態４に係る視差値算出装置４００の機能的な構成の一例のブロック図を示す。図２９に示すように、視差値算出装置４００は、異方性縮小部４１０と、センサス変換部１０２と、相違度算出部１０３と、第一視差選択部２０４ａと、第二視差選択部２０４ｂと、Ｌ／Ｒチェック部２０６と、終了判断部３０９と、異方性拡大部４１１とを含む。視差値算出装置４００は、実施の形態３に係る視差値算出装置３００において、縮小部３０７及び水平拡大部１０１が異方性縮小部４１０に変更され、水平縮小部１０５及び拡大部３０８が異方性拡大部４１１に変更された構成である。
【０１４２】
異方性縮小部４１０は、縮小部３０７の縮小処理と水平拡大部１０１の水平拡大処理とを合成した処理を行う。例えば、実施の形態３で例示したように、３回の繰り返し処理における１回目、２回目及び３回目の縮小率がそれぞれ、４分の１、２分の１及び等倍であり、各回の繰り返し処理での水平拡大率が２倍である場合、異方性縮小部４１０は、以下のような変化率で縮小処理を行う。つまり、１回目の繰り返し処理での変化率は、水平方向２分の１、且つ垂直方向４分の１であり、２回目の繰り返し処理での変化率は、水平方向等倍、且つ垂直方向２分の１であり、３回目の繰り返し処理での変化率は、水平方向２倍、且つ垂直方向等倍である。このように、異方性縮小部４１０は、縮小部３０７での縮小率と水平拡大部１０１での水平拡大率とを合成した変化率で、撮像画像の縮小処理を行う。また、異方性縮小部４１０は、視差画像の各画素の視差値について、本実施の形態では、視差値の探索方向でもある水平方向の変化率で縮小する。具体的には、１回目の繰り返し処理では、２分の１の変化率が適用され、２回目の繰り返し処理では、等倍の変化率が適用され、３回目の繰り返し処理では、２倍の変化率が適用される。
【０１４３】
異方性拡大部４１１は、水平縮小部１０５の水平縮小処理と拡大部３０８の拡大処理とを合成した処理を行う。つまり、異方性拡大部４１１は、異方性縮小部４１０の変化率に対応する変化率で、視差画像の拡大処理を行うことによって、視差画像のスケールを撮像画像と同じスケールに変換する。例えば、上記の実施の形態３の例と同様に処理する場合、異方性拡大部４１１における１回目の繰り返し処理での変化率は、水平方向２倍、且つ垂直方向４倍であり、２回目の繰り返し処理での変化率は、水平方向等倍、且つ垂直方向２倍であり、３回目の繰り返し処理での変化率は、水平方向２分の１、且つ垂直方向等倍である。また、異方性拡大部４１１は、視差画像の各画素の視差値について、本実施の形態では、水平方向の変化率で拡大する。具体的には、１回目の繰り返し処理では、２倍の変化率が適用され、２回目の繰り返し処理では、等倍の変化率が適用され、３回目の繰り返し処理では、２分の１の変化率が適用される。
【０１４４】
上述のような実施の形態４に係る視差値算出装置４００によれば、実施の形態３と同様の効果が得られる。さらに、視差値算出装置４００は、撮像画像の縮小及び水平拡大処理を合成した処理で一度に行い、視差画像の水平縮小及び拡大処理を合成した処理で一度に行うため、処理に要する演算量を低減することができる。
【０１４５】
実施の形態４に係る視差値算出装置４００は、実施の形態３に係る視差値算出装置３００をベースとした構成であるが、図３０に示す実施の形態４の変形例に係る視差値算出装置４００ａのように、実施の形態３の変形例に係る視差値算出装置３００ａをベースにした構成であってもよい。このような視差値算出装置４００ａは、異方性縮小部４１０と、センサス変換部１０２と、相違度算出部１０３と、視差選択部１０４と、終了判断部３０９と、異方性拡大部４１１とを含む。なお、図３０は、実施の形態４の変形例に係る視差値算出装置４００ａの機能的な構成の一例を示すブロック図である。
【０１４６】
［実施の形態５］
実施の形態５に係る視差値算出装置５００を説明する。実施の形態５に係る視差値算出装置５００は、実施の形態１に係る視差値算出装置１００において、相違度に重み付けをし、重み付けされた相違度に基づき、視差値を決定する構成である。実施の形態５において、実施の形態１〜４と同様の構成要素については、実施の形態１〜４と同一の参照符号を付し、その説明を省略する。以下において、実施の形態１〜４と異なる点を中心に説明し、実施の形態１〜４と同様の点の説明を省略する。
【０１４７】
図３１は、実施の形態５に係る視差値算出装置５００の機能的な構成の一例のブロック図を示す。図３１に示すように、視差値算出装置５００は、水平拡大部１０１と、センサス変換部１０２と、相違度算出部１０３と、コスト算出部５１２と、コスト集約部５１３と、視差選択部１０４と、水平縮小部１０５とを含む。視差値算出装置５００は、実施の形態１に係る視差値算出装置１００に対して、コスト算出部５１２及びコスト集約部５１３が加えられた構成である。水平拡大部１０１、センサス変換部１０２及び水平縮小部１０５は、実施の形態１と同様である。
【０１４８】
コスト算出部５１２は、基準画像中の着目画素について、着目画素から複数の走査方向それぞれに沿った画素における視差値の分布に関するコストを算出する。具体的には、コスト算出部５１２は、着目画素を通る複数の直線それぞれの上での視差値の分布に関するコストを算出する。複数の直線の例は、着目画素を起点とする放射状の半直線である。本実施の形態では、複数の直線は、着目画素から８又は１６の方向に等間隔に延びる半直線であり、８の半直線は、着目画素を通過する４の直線を構成し、１６の半直線は、着目画素を通過する８の直線を構成する。ここで、走査方向、つまり、半直線の方向は、所定の方向の一例である。
【０１４９】
コスト集約部５１３は、コスト算出部５１２によって算出された着目画素から延びる複数の半直線上での視差値の分布に関するコストについて、相違度算出のための探索範囲の各視差値に対して複数の半直線でのコストを加算し集約する。
【０１５０】
視差選択部１０４は、コスト集約部５１３によって集約された着目画素における視差値毎のコストについて、最小のコストを与える視差値を着目画素の視差値として決定する。
【０１５１】
ここで、コスト算出処理及びコスト集約処理の詳細を説明する。拡大画像Ｉ１ｈが基準画像であり、拡大画像Ｉ２ｈが参照画像である場合において、８の方向のうちのｘ軸負方向の半直線上の視差値の分布のコストに関する処理例を説明する。コスト算出部５１２は、図３２に示すように、拡大画像Ｉ１ｈの着目画素Ｉ１ｈｐａを中心とする８の方向の半直線Ｌ１〜Ｌ８を、拡大画像Ｉ１ｈ上で設定する。そして、コスト算出部５１２は、各半直線Ｌ１〜Ｌ８上における画素の視差値の分布のコストを算出する。なお、図３２は、コスト算出の際の着目画素からの複数の走査方向の例を示す図である。
【０１５２】
図３３に示すように、コスト算出部５１２は、ｘ軸正方向の半直線Ｌ１上の各画素について、当該画素に対応する探索範囲と、探索範囲内の視差値に対応する相違度とに基づき、コストを算出する。コスト算出部５１２は、拡大画像Ｉ１ｈの縁から着目画素Ｉ１ｈｐａに向かって順に、つまり、画素座標のｘ座標が１である画素Ｉ１ｈｐ１から着目画素Ｉ１ｈｐａに向かって順に、半直線Ｌ１上の各画素に関するコストを算出する。なお、図３３は、コスト算出の際の着目画素を通る直線上での画素の走査方向の例を示す図である。
【０１５３】
例えば、図３４は、画素Ｉ１ｈｐ１と着目画素Ｉ１ｈｐａとの間の画素Ｉ１ｈｐｉ（ｉは正の整数）に関するコストの例を示す。図３４に示すように、コスト算出部５１２は、画素Ｉ１ｈｐｉについて、相違度算出部１０３によって算出された探索範囲内の各視差値に対応する相違度を取得する。なお、図３４は、コスト算出のための走査ライン上の１つの画素におけるコストの例を示す図である。本例では、探索範囲は、０画素から−ｋ画素である。さらに、コスト算出部５１２は、探索範囲内の各視差値と、隣接画素Ｉ１ｈｐｉ−１の視差値との差異に基づき、当該視差値のペナルティ値を決定する。探索範囲内の視差値と画素Ｉ１ｈｐｉ−１の視差値とが同じである場合、ペナルティ値はＰ１であり、探索範囲内の視差値と画素Ｉ１ｈｐｉ−１の視差値とが異なる場合、ペナルティ値はＰ２である。本実施の形態では、Ｐ２はＰ１よりも大きい。画素Ｉ１ｈｐｉ−１は、画素Ｉ１ｈｐｉに対して、ｘ軸正方向に隣接する画素であり、半直線Ｌ１に沿って画素Ｉ１ｈｐｉの直前にコスト計算された画素である。コスト算出部５１２は、探索範囲内の各視差値について、その相違度にペナルティ値を加算した値であるコストを算出する。これにより、画素Ｉ１ｈｐｉに関する探索範囲内の各視差値のコストが求まる。ここで、半直線Ｌ１上の画素Ｉ１ｈｐｉは、第１の評価画素の一例であり、画素Ｉ１ｈｐｉ−１は、第２の評価画素の一例であり、ペナルティ値は、第１の評価値の一例であり、コストは、第２の評価値の一例である。
【０１５４】
コスト算出部５１２は、半直線Ｌ１上の全ての画素について、探索範囲内の各視差値のコストを算出する。なお、画素Ｉ１ｈｐ１については、隣接する画素が存在しないため、ペナルティ値がなく、各視差値の相違度がコストになる。さらに、コスト算出部５１２は、他の半直線Ｌ２〜Ｌ８それぞれについても、当該半直線上の全ての画素について、探索範囲内の各視差値のコストを算出する。よって、半直線Ｌ１〜Ｌ８上の全ての画素について、０画素から−ｋ画素の視差値それぞれのコストが算出される。コスト集約部５１３は、半直線Ｌ１〜Ｌ８上の全ての画素について、同じ視差値のコストの和を算出する。そして、視差選択部１０４は、０画素から−ｋ画素の視差値それぞれのコストの和のうち、最小の和を有する視差値を、着目画素Ｉ１ｈｐａの視差値に決定する。コスト算出部５１２及びコスト集約部５１３は、拡大画像Ｉ１ｈの全ての画素を着目画素として上述のような処理を行うことによって、各画素の視差値を決定する。ここで、コストの和は、加算評価値の一例である。
【０１５５】
上述のように、コスト算出部５１２は、例えば、第１の拡大画像としての拡大画像Ｉ１ｈにおいて、視差値の算出対象の第１の画素としての着目画素Ｉ１ｈｐａから、所定の方向に位置する評価画素としての画素Ｉ１ｈｐｉそれぞれについて、画素Ｉ１ｈｐｉに所定の方向で隣り合う画素Ｉ１ｈｐｉ−１の視差値と、第２の拡大画像としての拡大画像Ｉ２ｈにおける画素Ｉ１ｈｐｉに対応する位置の対応画素に対する、相違度算出のための探索範囲内の画素それぞれの視差値との比較に基づき、探索範囲内の画素それぞれの第１の評価値としてのペナルティ値を算出する。さらに、コスト算出部５１２は、画素Ｉ１ｈｐｉと探索範囲内の画素それぞれとの間の相違度と、探索範囲内の画素それぞれのペナルティ値とに基づき、探索範囲内の画素それぞれの視差値についての第２の評価値としてのコストを算出する。コスト集約部５１３は、探索範囲内の画素それぞれの視差値に対応する全ての評価画素のコストを加算して、加算評価値としてのコストの和を算出する。視差選択部１０４は、最小のコストの和に対応する視差値を着目画素Ｉ１ｈｐａの視差値に決定する。
【０１５６】
図３５を参照しつつ、視差値算出装置５００の動作を説明する。図３５は、実施の形態５に係る視差値算出装置５００の動作の一例を示すフローチャートである。視差値算出装置５００は、実施の形態１と同様に、ステップＳ１０１〜Ｓ１０４の処理を行うことによって、記憶部２０から撮像画像Ｉ１及びＩ２を取得し、撮像画像Ｉ１及びＩ２の拡大画像Ｉ１ｈ及びＩ２ｈの各画素のセンサス特徴量を算出する。さらに、視差値算出装置５００は、拡大画像Ｉ１ｈを基準画像として、拡大画像Ｉ１ｈの各画素に関して、拡大画像Ｉ２ｈの探索範囲の各画素に対する相違度を算出する。
【０１５７】
次いで、ステップＳ５０１において、コスト算出部５１２は、基準画像である拡大画像Ｉ１ｈ中の着目画素について、着目画素を通る複数の直線それぞれの上での視差値の分布に関するコストを算出する。コスト算出部５１２は、各直線上の画素それぞれについて、相違度算出のための探索範囲内の視差値と、当該画素に隣接する画素の視差値との差異に基づき、探索範囲内の各視差値に対応する相違度を重み付けした値であるコストを算出する。コスト算出部５１２は、拡大画像Ｉ１ｈの全ての画素を着目画素として、コストを算出する。
【０１５８】
次いで、ステップＳ５０２において、コスト集約部５１３は、拡大画像Ｉ１ｈ中の着目画素について、複数の直線上の画素それぞれに対して算出されたコストを、探索範囲の視差値毎に加算し集約する、つまり、同じ視差値のコストの全てを加算する。これにより、探索範囲の視差値毎に、コストの和が求められる。コスト集約部５１３は、拡大画像Ｉ１ｈの全ての画素を着目画素として、各画素のコストを集約する。
【０１５９】
次いで、ステップＳ５０３において、視差選択部１０４は、拡大画像Ｉ１ｈ中の着目画素について、探索範囲の視差値毎のコストの和のうち、最小のコストの和を与える視差値を着目画素の視差値に決定する。視差選択部１０４は、拡大画像Ｉ１ｈの全ての画素を着目画素として、各画素の視差値を決定し、拡大画像Ｉ１ｈの視差画像を生成する。
【０１６０】
次いで、ステップＳ１０６では、視差値算出装置５００は、実施の形態１と同様に、拡大画像Ｉ１ｈの視差画像を水平縮小した縮小視差画像を生成する。
【０１６１】
上述のような実施の形態５に係る視差値算出装置５００によれば、実施の形態１と同様の効果が得られる。また、視差値算出装置５００は、基準画像の着目画素の周囲の画素の視差値の変化を相違度に反映したコストに基づき、着目画素の視差値を算出する。これにより、視差値算出装置５００は、着目画素における視差値がその周囲の画素の視差値と同様の値を取りやすくし、被写体のエッジ、境界等のライン間で視差値が異なることによる筋状のアーチファクトが生じるストリーキングアーチファクトを低減することができる。よって、視差値算出装置５００は、高い精度で視差値を算出することができる。上述では、視差値算出装置５００は、拡大画像Ｉ１ｈを基準画像としていたが、拡大画像Ｉ２ｈを基準画像としてもよい。
【０１６２】
実施の形態５に係る視差値算出装置５００は、実施の形態１に係る視差値算出装置１００をベースとした構成であるが、実施の形態２〜４及びその変形例をベースとした構成であってもよい。例えば、実施の形態２をベースとする実施の形態５の変形例１に係る視差値算出装置５００ａは、図３６に示すような構成である。また、実施の形態３をベースとする実施の形態５の変形例２に係る視差値算出装置５００ｂは、図３７に示すような構成である。また、実施の形態４をベースとする実施の形態５の変形例３に係る視差値算出装置５００ｃは、図３８に示すような構成である。変形例１〜３において、コスト算出部５１２は、相違度算出部１０３から相違度を取得し、コスト集約部５１３は、集約したコストを、第一視差選択部２０４ａ及び第二視差選択部２０４ｂに出力する。また、実施の形態４の変形例をベースとする実施の形態５の変形例４に係る視差値算出装置５００ｄは、図３９に示すような構成である。変形例４において、コスト算出部５１２は、相違度算出部１０３から相違度を取得し、コスト集約部５１３は、集約したコストを視差選択部１０４に出力する。
【０１６３】
［実施の形態６］
実施の形態６に係る視差値算出装置６００を説明する。実施の形態１に係る視差値算出装置１００では、センサス変換の際、着目画素に対する周辺画素の領域は、例えば、図１８Ａ及び図１８Ｂに示すように一定である。実施の形態６に係る視差値算出装置６００は、着目画素に対する周辺画素の様々な領域に基づき、着目画素のセンサス特徴量を算出する。本明細書において、センサス変換において、着目画素に対して参照される周辺画素の領域を、「窓領域」とも呼ぶ。実施の形態６において、実施の形態１〜５と同様の構成要素については、実施の形態１〜５と同一の参照符号を付し、その説明を省略する。以下において、実施の形態１〜５と異なる点を中心に説明し、実施の形態１〜５と同様の点の説明を省略する。ここで、窓領域は、比較領域の一例である。
【０１６４】
窓領域が、手前の被写体により背後の被写体が見えない状態であるオクルージョンの領域、又は視差が大きく変化する領域をまたぐ場合、このような窓領域に基づき視差値が算出された視差画像の領域では、撮像画像における前景及び背景の境界等の被写体の輪郭と、視差値の差異により形成される視差画像の境界ラインとが、一致しない場合がある。本実施の形態では、視差値算出装置６００は、実施の形態１〜５のように、着目画素が窓領域の中央に位置する通常の窓領域以外に、着目画素が中央からずらした位置にある少なくとも１つの窓領域を用いる。視差値算出装置６００は、これら複数の窓領域について算出した相違度を最も小さくする視差値を決定することにより、視差値の差異の境界が実際の被写体の輪郭とより整合する視差画像を生成する。
【０１６５】
図４０は、実施の形態６に係る視差値算出装置６００の機能的な構成の一例のブロック図を示す。図４０に示すように、視差値算出装置６００は、実施の形態１と同様に、水平拡大部１０１と、センサス変換部６０２と、相違度算出部６０３と、視差選択部６０４と、水平縮小部１０５とを含む。水平拡大部１０１及び水平縮小部１０５の構成は、実施の形態１と同様である。
【０１６６】
センサス変換部６０２は、基準画像の着目画素に対して、複数の窓領域を設定する。センサス変換部６０２は、各窓領域について、着目画素と当該窓領域内の周辺画素との間でセンサス変換を行い、センサス特徴量を算出する。センサス変換部６０２は、拡大画像Ｉ１ｈ及びＩ２ｈそれぞれの全ての画素に対して、複数の窓領域それぞれについてのセンサス特徴量を算出する。
【０１６７】
例えば、本実施の形態では、センサス変換部６０２は、図４１に示すように、９つの窓領域Ｗ１〜Ｗ９を、１つの着目画素ｃｔｒに対して設定する。なお、図４１は、着目画素の複数の窓領域の一例を示す図である。窓領域Ｗ５は、着目画素ｃｔｒが窓領域の中央に位置する通常の窓領域である。窓領域Ｗ１〜Ｗ４及びＷ６〜Ｗ９ではそれぞれ、着目画素ｃｔｒが、窓領域の中央以外に位置する。センサス変換部６０２は、着目画素ｃｔｒについて、窓領域Ｗ１〜Ｗ９それぞれの周辺画素との間でセンサス変換することによって、９つのセンサス特徴量を算出する。
【０１６８】
相違度算出部６０３は、各窓領域に関して、基準画像の各画素の参照画像に対する相違度を算出する。相違度算出部６０３は、基準画像の着目画素の相違度を算出する際、着目画素のセンサス特徴量の算出に使用した窓領域と同じ窓領域を使用して算出された、参照画像の各画素のセンサス特徴量と、当該着目画素のセンサス特徴量との間で、相違度を算出する。つまり、相違度の算出では、基準画像と参照画像との間において、センサス特徴量の算出に使用される窓領域と着目画素及び参照画素との位置関係が同じである。すなわち、例えば、窓領域Ｗ１が、基準画像のセンサス特徴量の算出に用いられた場合、当該基準画像の着目画素の相違度計算に用いられる参照画像のセンサス特徴量は、窓領域Ｗ１を用いて算出されたものである。よって、図４１の例の場合、相違度算出部６０３は、基準画像の１つの着目画素に対して、窓領域Ｗ１〜Ｗ９それぞれに対応する相違度を算出する。
【０１６９】
視差選択部６０４は、相違度算出部６０３によって算出された窓領域毎の基準画像の各画素の相違度に基づき、各窓領域について、基準画像の着目画素の相違度のうちから、最小の相違度を抽出し、当該最小の相違度を与える視差値を抽出する。さらに、視差選択部６０４は、全ての窓領域それぞれにおいて抽出された視差値の相違度のうちから、最小の相違度を抽出し、当該最小の相違度を与える視差値を、着目画素の視差値に決定する。つまり、視差選択部６０４は、全ての窓領域における着目画素の相違度のうちから、最小の相違度を抽出し、当該最小の相違度を与える視差値を、着目画素の視差値に決定する。さらに、視差選択部６０４は、基準画像の全ての画素を着目画素として、当該画素の視差値を決定し、視差画像を生成する。
【０１７０】
上述のような実施の形態６に係る視差値算出装置６００によれば、実施の形態１と同様の効果が得られる。また、視差値算出装置６００は、窓領域に対する着目画素の位置が異なる複数の窓領域のうち、相違度を最小にする窓領域を用いて算出されたセンサス特徴量を用いた相違度に基づき、視差値を算出する。このような視差値は、着目画素に対する窓領域の位置に起因する視差値の誤差を低減する。よって、視差値算出装置６００は、オクルージョンの境界又は視差値が変化する前景及び背景間の境界付近に位置する画素について、視差画像での視差値の差異による境界の位置と、被写体の輪郭の位置とを正確に整合させることができる。
【０１７１】
なお、着目画素に対する窓領域の位置は、図４１に示す例に限定されず、窓領域内のいかなる位置に着目画素が位置してもよい。また、図４１の例では、複数の窓領域の形状は、矩形であったが、いかなる形状であってもよい。
【０１７２】
また、実施の形態６に係る視差値算出装置６００は、実施の形態１に係る視差値算出装置１００をベースする構成であったが、実施の形態２〜５及びその変形例をベースする構成であってもよい。
【０１７３】
例えば、実施の形態５をベースとする実施の形態６の変形例に係る視差値算出装置６００ａは、図４２に示すような構成である。変形例に係る視差値算出装置６００ａにおいて、上述の実施の形態６と同様に、センサス変換部６０２は、拡大画像Ｉ１ｈ及びＩ２ｈそれぞれの全ての画素に対して、複数の窓領域それぞれについてのセンサス特徴量を算出する。相違度算出部６０３は、各窓領域に関して、基準画像の各画素の参照画像に対する相違度を算出する。
【０１７４】
コスト算出部５１２は、各窓領域に関して、基準画像中の全ての画素を着目画素として、着目画素を通る複数の直線それぞれの上での視差値の分布に関する着目画素のコストを算出する。コスト算出部５１２は、各直線上の画素それぞれについて、相違度算出のための探索範囲内の視差値と、当該画素に隣接する画素の視差値との差異に基づき、探索範囲内の各視差値に対応する相違度を重み付けした値を、着目画素のコストとして算出する。コスト集約部５１３は、各窓領域に関して、着目画素を通る複数の直線上の画素それぞれに対して算出されたコストを、探索範囲の視差値毎に加算する、つまり視差値毎のコストの和を算出することによって、着目画素のコストを集約する。視差選択部６０４は、着目画素に関して、全ての窓領域における探索範囲の視差値毎のコストの和のうちから、最小のコストの和を抽出し、最小のコストの和を与える窓領域及び視差値を特定し、特定した視差値を着目画素の視差値に決定する。さらに、視差選択部６０４は、基準画像の全ての画素を着目画素として、当該画素の視差値を決定し、視差画像を生成する。
【０１７５】
［実施の形態７］
実施の形態７に係る視差値算出装置７００を説明する。実施の形態６に係る視差値算出装置６００は、視差画像における視差値の差異による境界ラインを、前景及び背景の境界等の被写体の輪郭と一致させるために、１つの着目画素に設定される複数の窓領域について、相違度又はコストを算出することによって、着目画素の視差値を決定した。実施の形態７に係る視差値算出装置７００は、基準画像の着目画素と参照画像の参照画素との間の相違度であるハミング距離を計算する際、２つの画素のセンサス特徴量のビット列間におけるビット間差異を、センサス変換での対応画素間の画素値の差である輝度差で重み付けする。実施の形態７において、実施の形態１〜６と同様の構成要素については、実施の形態１〜６と同一の参照符号を付し、その説明を省略する。以下において、実施の形態１〜６と異なる点を中心に説明し、実施の形態１〜６と同様の点の説明を省略する。
【０１７６】
図４３は、実施の形態７に係る視差値算出装置７００の機能的な構成の一例のブロック図を示す。図４３に示すように、視差値算出装置７００は、実施の形態１と同様に、水平拡大部１０１と、センサス変換部１０２と、相違度算出部７０３と、視差選択部１０４と、水平縮小部１０５とを含む。水平拡大部１０１、センサス変換部１０２、視差選択部１０４及び水平縮小部１０５は、実施の形態１と同様である。
【０１７７】
相違度算出部７０３は、拡大画像Ｉ１ｈ及びＩ２ｈについてのセンサス特徴量間の視差値に応じた相違度であるハミング距離を算出する際に、対応画素間の画素値の差である輝度差に応じて重み付けする。具体的には、相違度算出部７０３は、拡大画像Ｉ１ｈ及びＩ２ｈのうちの基準画像の着目画素の相違度を算出する際、着目画素のセンサス特徴量のビット列と、参照画像の参照画素のセンサス特徴量のビット列との間における同じ桁のビットの数値の差異であるビット間差異を、着目画素のセンサス変換の際に参照した周辺画素の輝度値と参照画素のセンサス変換の際に参照した周辺画素の輝度値との、対応画素での差で重み付けする。ここで、対応画素間の輝度差に応じた重みは、対応画素間で輝度差が大きい場合には小さく、対応画素間で輝度差が小さい場合には大きくされる。これにより、対応画素間で輝度差の小さい場合のハミング距離のビット間差異は、ハミング距離に重点的に反映され、対応画素間で輝度差の大きい場合のハミング距離のビット間差異は、ハミング距離への影響が少なくなる。
【０１７８】
例えば、図４４は、着目画素と参照画素との間におけるビット間差異と輝度差に基づく重みとの関係の一例を示す。図４４は、センサス変換の際に、８つの周辺画素が参照されるケースである。図４４において、相違度算出部７０３は、拡大画像Ｉ１ｈを基準画像とし、拡大画像Ｉ２ｈを参照画像として処理を行う。相違度算出部７０３は、基準画像において、着目画素ｃｔｒの周囲の周辺画素の輝度値を、拡大画像Ｉ１ｈから取得する。周辺画素は、着目画素ｃｔｒのセンサス変換において参照される８つの画素である。さらに、相違度算出部７０３は、参照画像において、参照画素ｒｅｆの周囲の周辺画素の輝度値を、拡大画像Ｉ２ｈから取得する。参照画素ｒｅｆは、着目画素ｃｔｒとの間で相違度を算出する対象である探索範囲内の画素であり、参照画素ｒｅｆの周辺画素は、参照画素ｒｅｆのセンサス変換において参照される８つの画素である。
【０１７９】
相違度算出部７０３は、着目画素ｃｔｒの周辺画素の窓領域Ａ１と、参照画素ｒｅｆの周辺画素の窓領域Ａ２との間で、窓領域に対して同じ位置の周辺画素である対応周辺画素同士の輝度値の差異、つまり、輝度値の差の絶対値を算出する。さらに、相違度算出部７０３は、８組の対応周辺画素それぞれについて、輝度値の差異に基づく重みを算出する。本実施の形態では、相違度算出部７０３は、輝度値の差異の逆数を、重みとして算出する。なお、重みは、これに限定されず、輝度値の差異の逆数の２乗等、差異が大きい場合に小さく、差異が小さい場合に大きくなるものであればよい。例えば、相違度算出部７０３は、窓領域Ａ１における輝度値「８５」の周辺画素と、窓領域Ａ２における輝度値「１２０」の周辺画素との間で、輝度値の差異に基づく重み「０．０３」を算出する。相違度算出部７０３は、窓領域Ａ１の８つの周辺画素それぞれについて、重みを算出する。
【０１８０】
さらに、相違度算出部７０３は、着目画素のセンサス特徴量と、参照画素のセンサス特徴量とから、センサス特徴量のビット列間のビット間差異を算出する。相違度算出部７０３は、窓領域Ａ１内の各周辺画素における着目画素に対するセンサス変換値と、窓領域Ａ２内の各周辺画素における参照画素に対するセンサス変換値とを比較し、窓領域に対して同じ位置の対応画素同士の間で、センサス変換値が同じであるか否かに基づく、ビット間差異を算出する。例えば、相違度算出部７０３は、窓領域Ａ１における左上角のセンサス変換値「１」と、窓領域Ａ２における左上角のセンサス変換値「０」との間で、ビット間差異「１」を算出する。相違度算出部７０３は、窓領域Ａ１の８つの周辺画素それぞれについて、ビット間差異を算出する。
【０１８１】
さらに、相違度算出部７０３は、窓領域Ａ１の周辺画素それぞれの重みと、窓領域Ａ１の周辺画素それぞれのビット間差異とから、窓領域Ａ１の周辺画素それぞれにおける重み付け後ビット間差異である重み付けビット間差異を算出する。相違度算出部７０３は、窓領域Ａ１内の同一の周辺画素に対応する重みとビット間差異とを乗算することによって、重み付けビット間差異を算出する。例えば、相違度算出部７０３は、窓領域Ａ１における左上角の周辺画素の重み「０．０３」とビット間差異「１」とを乗算することによって、重み付けビット間差異「０．０３」を算出する。
【０１８２】
さらに、相違度算出部７０３は、着目画素ｃｔｒの各周辺画素の重み付けビット間差異の和を、着目画素ｃｔｒの相違度として算出する。図４４の例では、相違度算出部７０３は、窓領域Ａ１の各周辺画素の重み付けビット間差異の和「０．０３＋０．０９＋０．０４＝０．１６」を、着目画素ｃｔｒの相違度として算出する。
【０１８３】
視差選択部１０４は、着目画素に対して、参照画像における探索範囲内の参照画素それぞれとの間で、相違度算出部７０３によって算出された相違度のうちから、最小の相違度を抽出し、抽出した相違度に対応する視差値を、着目画素の視差値に決定する。
【０１８４】
上述のような実施の形態７に係る視差値算出装置７００によれば、実施の形態１と同様の効果が得られる。また、視差値算出装置７００は、基準画像の着目画素と参照画像の参照画素との相違度に対して、着目画素のセンサス変換で参照される周辺画素の輝度値と、参照画素のセンサス変換で参照される周辺画素の輝度値との差異に基づく重み付けを行う。この重み付けは、輝度値の差異が小さくなるほど大きくされ、輝度値の差異が大きくなるほど小さくされる。輝度値の差異が小さい相違度の構成要素は、相違度に重点的に反映され、輝度値の差異が大きい相違度の構成要素は、相違度に与える影響が小さい。このような重み付けは、例えば、着目画素に対する窓領域の配置が窓領域の中央のみであっても、窓領域の内部を空間的に重み付けすることができ、窓領域に対する重心位置を適応的に変更することができることを示す。つまり、着目画素に対して窓領域をあたかも適応的に動かしたのと同様の効果が得られる。これにより、相違度は、画素値の変化を反映することができる。よって、視差値算出装置７００は、オクルージョンの境界又は視差値が変化する前景及び背景間の境界付近に位置する画素について、着目画素に対して単一の窓領域を用いるだけで、視差画像での視差値の差異による境界の位置と、被写体の輪郭の位置とを正確に整合させることができる。
【０１８５】
なお、ビット間差異に対する重み付けは、着目画素及び参照画素の比較領域間の対応画素の輝度差に限らず、対応画素におけるそれぞれの輝度勾配の差であってもよく、さらに簡略化して、着目画素又は対応画素における輝度勾配であってもよい。さらに、上記重み付けは、対応画素間の輝度差と、対応画素における輝度勾配の差と、着目画素又は対応画素の輝度勾配との少なくとも２つを組み合わせたものあってもよい。ここで、上記重み付けは、上記の輝度差、輝度勾配の差、又は、着目画素若しくは対応画素における輝度勾配が大きいほど重くなり、小さいほど軽くなるように設定される。このような重み付けによっても、対応画素間の輝度差を用いた重み付けの場合と同様の効果を得ることができる。輝度勾配は、画像座標で、ｘ軸方向の勾配であってもよく、ｙ軸方向の勾配であってもよく、ｘ軸方向及びｙ軸方向の勾配の両者を考慮した勾配であってもよく、その他の任意の方向の勾配であってもよい。
【０１８６】
上述のように、視差値算出装置７００は、相違度が算出される基準画像の着目画素及び参照画像の参照画素について、着目画素の周囲の画素の輝度値と参照画素の周囲の画素の輝度値との差異、着目画素の周囲の画素の輝度勾配と参照画素の周囲の画素の輝度勾配との差異と、着目画素、参照画素又はその周囲の画素における輝度勾配とのうちの少なくとも一つに基づく重みを、相違度に付加してもよい。
【０１８７】
また、実施の形態７に係る視差値算出装置７００は、実施の形態１に係る視差値算出装置１００をベースする構成であったが、実施の形態２〜６及びその変形例をベースする構成であってもよい。
【０１８８】
例えば、実施の形態５をベースとする実施の形態７の変形例に係る視差値算出装置７００ａは、図４５に示すような構成である。変形例に係る視差値算出装置７００ａにおいて、実施の形態７と同様に、相違度算出部７０３は、基準画像である拡大画像Ｉ１ｈの全ての画素に対して、重み付けされた相違度を算出する。
【０１８９】
コスト算出部５１２は、基準画像中の全ての画素を着目画素として、着目画素を通る複数の直線それぞれの上での視差値の分布に関する着目画素のコストを算出する。コスト算出部５１２は、各直線上の画素それぞれについて、相違度算出のための探索範囲内の視差値と、当該画素に隣接する画素の視差値との差異に基づき、探索範囲内の各視差値に対応する重み付けされた相違度を、さらに重み付けした値を、着目画素のコストとして算出する。コスト集約部５１３は、着目画素を通る複数の直線上の画素それぞれに対して算出されたコストを、探索範囲の視差値毎に加算する、つまり視差値毎のコストの和を算出することによって、着目画素のコストを集約する。視差選択部１０４は、着目画素に関して、探索範囲の視差値毎のコストの和のうちから、最小のコストの和を抽出し、最小のコストの和を与える視差値を特定し、特定した視差値を着目画素の視差値に決定する。さらに、視差選択部１０４は、基準画像の全ての画素を着目画素として、当該画素の視差値を決定し、視差画像を生成する。
【０１９０】
なお、変形例に係る視差値算出装置７００ａは、重み付けを相違度に対して行うが、これに限る必要はなく、コスト計算時又はコスト集約時に同様の重み付けを各画素に対して行ってもよい。このような場合も、同様の効果を得ることができる。
【０１９１】
具体的には、図３４に示す着目画素Ｉ１ｈｐｉのコストの場合、ペナルティ値Ｐ１及びＰ２の値が、着目画素及び対応画素間の輝度差、着目画素及び対応画素間の輝度勾配の差、又は、これらの組み合わせに応じて、重み付けされる。さらに簡略化して、ペナルティ値Ｐ１及びＰ２は、着目画素又は対応画素における輝度勾配に応じて、重み付けされてもよい。ここで、基準画像中の着目画素Ｉ１ｈｐｉのｘ座標値をｘｂとすると、視差値０の場合、対応画素は、参照画像中において、ｘｂ−０＝ｘｂをｘ座標とする画素である。同様に、対応画素は、視差値−１の場合、参照画像中でｘｂ−１をｘ座標とする画素であり、視差値−ｋの場合、参照画像中でｘｂ−ｋをｘ座標とする画素である。ちなみに、参照画像中のいずれの対応画素のｙ座標も、基準画像中の着目画素Ｉ１ｈｐｉのｙ座標と等しい。
【０１９２】
なお、上記重み付けは、上記の輝度差、輝度勾配の差、又は、着目画素若しくは対応画素における輝度勾配が大きいほど重くなり、小さいほど軽くなるように設定される。輝度勾配は、画像座標で、ｘ軸方向の勾配であってもよく、ｙ軸方向の勾配であってもよく、ｘ軸方向及びｙ軸方向の勾配の両者を考慮した勾配であってもよく、その他の任意の方向の勾配であってもよい。
【０１９３】
上述のように、視差値算出装置は、第１の評価画素としての着目画素Ｉ１ｈｐｉとその対応画素の探索範囲内の画素との間における輝度値の差異、着目画素Ｉ１ｈｐｉと上記探索範囲内の画素との間における輝度勾配の差異、並びに、着目画素Ｉ１ｈｐｉ又は上記探索範囲内の画素における輝度勾配のうちの少なくとも一つに基づく重みを、第１の評価値としてのペナルティ値に付加してもよい。
【０１９４】
［その他］
以上、１つ又は複数の態様に係る視差値算出装置について、実施の形態及び変形例に基づいて説明したが、本開示は、これらの実施の形態及び変形例に限定されるものではない。本開示の趣旨を逸脱しない限り、当業者が思いつく各種変形を実施の形態及び変形例に施したものや、異なる実施の形態及び変形例における構成要素を組み合わせて構築される形態も、１つ又は複数の態様の範囲内に含まれてもよい。
【０１９５】
実施の形態及び変形例に係る視差値算出装置は、２つのカメラ１１ａ及び１１ｂの撮像画像間の視差値を算出したが、これに限定されない。視差値算出装置は、３つ以上のカメラの撮像画像間の視差値を算出してもよい。この場合、視差値算出装置は、３つ以上のカメラのうちの２つのカメラによるペア毎に、当該ペアの２つの撮像画像間の視差値を算出してもよい。
【０１９６】
また、上述したように、本開示の技術は、システム、装置、方法、集積回路、コンピュータプログラム又はコンピュータ読取可能な記録ディスク等の記録媒体で実現されてもよく、システム、装置、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。コンピュータ読み取り可能な記録媒体は、例えばＣＤ−ＲＯＭ等の不揮発性の記録媒体を含む。
【０１９７】
例えば、上記実施の形態及び変形例に係る視差値算出装置に含まれる各処理部は典型的には集積回路であるＬＳＩ（Large Scale Integration：大規模集積回路）として実現される。これらは個別に１チップ化されてもよいし、一部又は全てを含むように１チップ化されてもよい。
【０１９８】
また、集積回路化はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後にプログラムすることが可能なＦＰＧＡ（Field Programmable Gate Array）、又はＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
【０１９９】
なお、上記実施の形態及び変形例において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、ＣＰＵなどのプロセッサ等のプログラム実行部が、ハードディスク又は半導体メモリ等の記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。
【０２００】
また、上記構成要素の一部又は全部は、脱着可能なＩＣ（Integrated Circuit）カード又は単体のモジュールから構成されてもよい。ＩＣカード又はモジュールは、マイクロプロセッサ、ＲＯＭ、ＲＡＭ等から構成されるコンピュータシステムである。ＩＣカード又はモジュールは、上記のＬＳＩ又はシステムＬＳＩを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、ＩＣカード又はモジュールは、その機能を達成する。これらＩＣカード及びモジュールは、耐タンパ性を有するとしてもよい。
【０２０１】
本開示の視差値算出方法は、ＭＰＵ（Micro Processing Unit）及びＣＰＵ等のプロセッサ、ＬＳＩ等の回路、ＩＣカード又は単体のモジュール等によって、実現されてもよい。
【０２０２】
さらに、本開示の技術は、ソフトウェアプログラム又はソフトウェアプログラムからなるデジタル信号によって実現されてもよく、プログラムが記録された非一時的なコンピュータ読み取り可能な記録媒体であってもよい。また、上記プログラムは、インターネット等の伝送媒体を介して流通させることができるのは言うまでもない。
【０２０３】
また、上記で用いた序数、数量等の数字は全て、本開示の技術を具体的に説明するために例示するものであり、本開示は例示された数字に制限されない。また、構成要素間の接続関係は、本開示の技術を具体的に説明するために例示するものであり、本開示の機能を実現する接続関係はこれに限定されない。
【０２０４】
また、ブロック図における機能ブロックの分割は一例であり、複数の機能ブロックを１つの機能ブロックとして実現したり、１つの機能ブロックを複数に分割したり、一部の機能を他の機能ブロックに移してもよい。また、類似する機能を有する複数の機能ブロックの機能を単一のハードウェア又はソフトウェアが並列又は時分割に処理してもよい。
【産業上の利用可能性】
【０２０５】
本開示の技術は、カメラの撮像画像間のサブピクセル精度の視差値を算出する技術に有用である。本開示の技術は、車両、船舶、飛行体又はロボットなどに搭載されるカメラを用いた距離センサ等の、カメラの撮像画像間の視差値を用いるいかなる技術にも有用である。
【符号の説明】
【０２０６】
２０  記憶部（メモリ）
１００，２００，３００，３００ａ，４００，４００ａ，５００，５００ａ，５００ｂ，５００ｃ，５００ｄ，６００，６００ａ，７００，７００ａ  視差値算出装置
１０１  水平拡大部
１０２，６０２  センサス変換部
１０３，６０３，７０３  相違度算出部
１０４，６０４  視差選択部
１０５，２０５  水平縮小部
２０４ａ  第一視差選択部
２０４ｂ  第二視差選択部
２０６  Ｌ／Ｒチェック部
３０７  縮小部
３０８  拡大部
３０９  終了判断部
４１０  異方性縮小部
４１１  異方性拡大部
５１２  コスト算出部
５１３  コスト集約部
【図１】
2019120590.tif 000005
【図２Ａ】
2019120590.tif 000006
【図２Ｂ】
2019120590.tif 000007
【図３】
2019120590.tif 000008
【図４】
2019120590.tif 000009
【図５】
2019120590.tif 000010
【図６】
2019120590.tif 000011
【図７】
2019120590.tif 000012
【図８】
2019120590.tif 000013
【図９】
2019120590.tif 000014
【図１０】
2019120590.tif 000015
【図１１】
2019120590.tif 000016
【図１２】
2019120590.tif 000017
【図１３】
2019120590.tif 000018
【図１４】
2019120590.tif 000019
【図１５】
2019120590.tif 000020
【図１６】
2019120590.tif 000021
【図１７】
2019120590.tif 000022
【図１８Ａ】
2019120590.tif 000023
【図１８Ｂ】
2019120590.tif 000024
【図１９Ａ】
2019120590.tif 000025
【図１９Ｂ】
2019120590.tif 000026
【図２０】
2019120590.tif 000027
【図２１】
2019120590.tif 000028
【図２２】
2019120590.tif 000029
【図２３】
2019120590.tif 000030
【図２４】
2019120590.tif 000031
【図２５】
2019120590.tif 000032
【図２６】
2019120590.tif 000033
【図２７】
2019120590.tif 000034
【図２８】
2019120590.tif 000035
【図２９】
2019120590.tif 000036
【図３０】
2019120590.tif 000037
【図３１】
2019120590.tif 000038
【図３２】
2019120590.tif 000039
【図３３】
2019120590.tif 000040
【図３４】
2019120590.tif 000041
【図３５】
2019120590.tif 000042
【図３６】
2019120590.tif 000043
【図３７】
2019120590.tif 000044
【図３８】
2019120590.tif 000045
【図３９】
2019120590.tif 000046
【図４０】
2019120590.tif 000047
【図４１】
2019120590.tif 000048
【図４２】
2019120590.tif 000049
【図４３】
2019120590.tif 000050
【図４４】
2019120590.tif 000051
【図４５】
2019120590.tif 000052