以下、本発明の実施の形態による画像処理装置を備える撮像装置の一例について図面を参照して説明する。
[第1の実施形態]
図1は、本発明の第1の実施の形態による画像処理装置を備える撮像装置の一例についてその構成を示すブロック図である。
図示の撮像装置は、例えば、デジタルカメラ(以下単にカメラと呼ぶ)100であり、撮像光学系(以下単に光学系と呼ぶ)101、撮像素子102、前処理部103、メモリ104、ベクトル探索部105、視差競合頻度推定部106、後処理部107、およびCPU108を有している。そして、光学系101は、被写体109からの光(光学像又は被写体像)を撮像素子002上に結像させる。なお、光学系101は複数枚のレンズおよびミラーなどを有している。
撮像素子102は、例えば、CCD又はCMOSイメージセンサであり、光学系101によって受光面(結像面ともいう)に結像された光学像に応じた電気信号(アナログ信号)を出力する。前処理部103は、撮像素子102の出力であるアナログ信号を受けて、当該アナログ信号について、例えば、相二重サンプリング(CDS)によるノイズ除去、オートゲインコントロール(AGC)を用いたゲインアップによる露出制御、黒レベル補正、およびA/D変換などの前処理を行う。そして、前処理部103はデジタル画像信号(以下前処理済み画像信号と呼ぶ)を出力する。この前処理済み画像信号は画像メモリ104に一旦保存される。
なお、前処理部103においては、前処理済み画像信号についてベイヤー配列補間などによるカラー画像信号生成又は輝度画像信号生成を行ってベクトル探索部105に与えるようにしてもよい。カラー画像信号又は輝度画像信号の生成についてはベクトル探索のためであるので簡易レベルで行えばよい。
さらに、前処理部103においては、動きベクトル検出処理の精度およびロバスト性を向上させるため、ローパスおよびハイパスなどのフィルタリング処理、そして、トーンマッピングなどの諧調調整処理を行うようにしてもよい。
ベクトル探索部105は、前処理部003の出力である前処理済み画像信号と画像メモリ004に保存された過去の前処理済み画像信号(ともに入力画像である)とを用いて画像間における動きベクトルを探索して推定する。
CPU108はカメラ100の制御を統括し、制御プログラムをメモリ(図示せず)から読み出して実行して、カメラ100の各部の動作を制御する。例えば、CPU108はカメラ100のズーム状態(焦点距離)、フォーカス距離を示す被写体距離などの撮影条件、および動画撮影の際のフレームレートなどの動作状態をメモリに保持する。
視差競合頻度推定部106は、視差競合の発生頻度を後述するセンシング情報とCPU008から得られる撮影条件および動作状態とに応じて推定する。そして、視差競合頻度推定部106は視差競合の発生頻度を示す推定情報をベクトル探索部005に送る。
なお、視差競合頻度推定部106は当該推定情報に基づいてベクトル探索部005を制御するようにしてもよい。例えば、図1には信号線が示されていないが、視差競合頻度推定部106は、ベクトル探索部005に入力される画像間の視差の大小を推定する。そして、視差競合頻度推定部106は画像間で生じる視差が小さいと判定すると、画像の縮小率を小さくしてベクトル探索を行うようにベクトル探索部005を制御する。
一方、画像間で生じる視差が大きいと判定すると、視差競合頻度推定部106は画像の縮小率を大きくしてベクトル探索を行うようにベクトル探索部005を制御する。
後処理部107は、ベイヤー配列補間、線形化マトリクス処理、ホワイトバランス調整、YCC変換、色差・諧調・コントラスト補正、およびエッジ強調などのバックエンド画像処理を、前処理画像信号に対して行う。
当該バックエンド処理は前処理部103で行われるAFE処理に対してDBE(デジタルバックエンド)処理と呼ばれる。このようにして、AFE処理(フロントエンド処理)およびバックエンド処理を行うことによって、後処理部107から一枚の出力画像(つまり、画像)が出力される。
ここで、ベクトル探索部104による動きベクトルの探索結果に応じて、後処理部107は、複数枚の画像データを合成して広ダイナミックレンジ画像を生成するダイナミックレンジ拡張処理を行う。さらには、後処理部107は複数枚の画像についてノイズリダクション処理および超解像処理などの付加価値向上処理を行うようにしてもよい。これら処理は後処理に含まれる。
なお、動きベクトルは画像データの補足情報であるメタ情報又は別途に管理される情報として扱われ、3次元再構成および人物認識などに用いるようにしてもよい。
後処理部107の出力である画像データ(後処理済み画像データ)はDRAMなどのワークメモリ(図示せず)に一旦保存されるか又は後段処理部(図示せず)に直接送られる。
後段処理部は、例えば、半導体メモリからなる記録部、液晶などのディスプレイからなる表示部、および無線LANおよびUSBなど有線ケーブルに接続可能なI/F(インターフェース)を備える外部入出力I/Fを有している。
ベクトル探索部105は、前述のように、複数の映像フレーム(画像)間における動きベクトルを検出する。ここでは、ベクトル探索部105は、前処理部003において直近に前処理されたカレントフレームとメモリ104に一旦保存された過去フレームとの間において動きベクトルを算出する。なお、カレントフレームと過去フレームとは必ずしも隣接するフレームでなくてもよい。
動きベクトルの算出に当たっては、例えば、テンプレートマッチング(TM)、各フレームで得られた特徴点間のテーブルマッチング、又は勾配法に基づく動きベクトル推定などによって、フレーム間の動きベクトル又は特徴点間の軌跡が算出される。
図2は、図1に示すベクトル探索部105で行われる動きベクトルの探索を説明するための図である。そして、図2(a)はテンプレートマッチング(TM)の1つであるブロックマッチングの一例を示す図であり、図2(b)はベクトル探索で用いられる主要な制御パラメータを示す図である。
まず、図2(a)を参照して、ここでは、左側に位置する画像201を基準画像とし、右側に位置する画像202を参照画像とする。例えば、ベクトル探索部105は先に入力された映像フレームを基準画像とし、後から入力されたカレントフレームを参照画像として、これら基準画像と参照画像との間において動きベクトルを検出する。
ベクトル探索部105は、基準画像201においてグリッド状に配置した注目点204を中心とする所定のサイズの部分領域をテンプレート203とする。そして、ベクトル探索部105は参照画像202において探索範囲207を設定して、当該探索範囲207においてテンプレート203移動しつつテンプレートが最も合致する領域を探索する。
なお、前述のように、ベクトル探索部105に入力される画像はカラー画像、輝度画像、又は微分画像などの変調画像であってもよい。
続いて、ベクトル探索部105は、参照画像202における注目画素205を基準とする部分領域206と基準画像201のテンプレート203との類似度を算出する。類似度として、例えば、SSD(Sum of Square Difference)、SAD(Sum of Absolute Difference)、又は正規相互相関値(正規相互相関類似度)が用いられる。なお、実写映像のようにフレーム間の輝度変動が激しい場合は正規相互相関値が類似度として主に用いられる。正規相互相関における類似度スコアは次の式(1)に応じて求められる。
また、(x,y)および(x’,y’)は基準画像Iおよび参照画像I’におけるテンプレートの位置を示し、I(x,y)(i,j)およびI’(x’,y’)(i,j)は部分画像を示す。
ベクトル探索部105は、探索範囲207における部分領域206毎の類似度を算出して、最も類似度(例えば、相関スコア)の高い位置を基準画像と参照画像とが対応する対応位置とみなして動きベクトルを求める。
オクルージョンがなければ、基本的に基準画像で設定した注目点204の数だけ動きベクトルが算出されることになる。動きベクトルは基準画像における注目点の位置を始点として、参照画像における対応点の位置を終点とするベクトルで表現される(式(4)参照)。
次に、図2(b)を参照して、ベクトル探索の際に用いられる制御パラメータとして、探索範囲、テンプレートサイズ、縮小率、および判定閾値がある。探索範囲は対象とする画像間における動きの大きさによって決定される。また、テンプレートサイズは探索範囲に応じて従属的に決定される。そして、前述のように、動きベクトル探索の性能は探索可能率、アウトライア率、および精度で規定される。
図3は、図1に示すベクトル探索部105における動きベクトル探索の性能について説明するための図である。そして、図3(a)は探索可能率を示す図であり、図3(b)はアウトライア率を示す図である。また、図3(c)は精度を示す図である。
図3(a)に示す例では、2次元の相関値マップが説明の簡略化のため1次元の相関値マップとして示されている。探索可能率は、相関値マップにおいて唯一のピークを得られる可能性の割合をいう。探索範囲における注目点毎の相関スコアを求めることによって相関値グラフ(つまり、2次元マップ)が得られる。
図3(a)において、左側の図は唯一のピークが得られる場合を示しており、最大の相関スコアの候補ピークの相関値に対して、次点のピークの相関値が閾値で設定した相関値差よりも十分低い状態である。
一方、右側の図では、候補ピークの相関値に対して、次点ピークの相関値との差が閾値以下の状態であり、唯一のピークが得られない。
このようにして、相関スコアのピークの唯一性について候補ピークの相関値と次のピークとの相関値との差に応じて判定して、当該唯一性に基づいて探索可能性を判定する。なお、相関値の差と閾値とに応じて探索可能性を判定する代わりに、ピークの鋭さに応じて探索可能性を判定するようにしてもよい。
また、相関値については、唯一のピークが得られる必要条件としてテンプレートに十分なテクスチャ性が存在することが求められる。このため、曖昧な対応を除くべくテンプレートにおけるテクスチャ性の不足を、分散などのスコアに応じて動きベクトルの探索前に事前に判定して探索可能性を判定するようにしてもよい。
図3(b)に示す例では、ベクトル探索対象の画像が静止の像面に平行な平面シーンを撮影した画像であって、カメラ100を被写体に向かって左下にシフトさせて撮影したものとする。図3(b)においては、全ての注目点301について同一の方向の動きベクトルが得られるはずである。ところが、正解ベクトル(同一方向の動きベクトル)に対して、探索エラーに起因して大きく方向がことなる動きベクトル302が生じることがある。
このような状態をアウトライアと呼び、その割合をアウトライア率という。そして、アウトライアは、所謂オクルージョン部で起こり易い。当該オクルージョン部は、図2に示す基準画像201と参照画像202とを入れ替えて探索することによって検査可能な双方向性および最低相関スコアに応じた閾値判定などで検出する。
精度とは、アウトライアほどには動きベクトルが大きく外れていないものの、真値の動きベクトルからのずれに関する指標である。例えば、図3(c)に示すように、特定の注目点402の周囲を切り出したテンプレート401に係る動きベクトルが、アウトライアほどにはずれていないものの、微小な誤差(ずれ)を含む場合に当該誤差に関する指標が精度である。
精度のずれは主に後述する視差競合により発生する。アウトライアと非アウトライアとの相違は動きベクトル探索の際には判別できない。正解であるGround Truth、つまり、理想的な正解値の動きベクトルと対となる画像対を入力して得られた動きベクトルとを比較することによって、アウトライアと非アウトライアとの相違が判別可能となる。精度に係る定量値についても同様である。アウトライアはベクトル誤差に対する判定閾値を定義して判別する。
また、人体などの非剛体の動き、ローリングシャッタ歪、および光学系の歪曲収差などに起因する変形によって精度の低下が生じる。テンプレートにおける注目点に対して注目点以外の領域が変形で移動して当該領域が顕著な特徴を持つ場合に、ベクトル探索がこの相対的な移動、つまり、視差の競合の影響を受ける。これによって、精度の劣化が生じる。当然のことながら、テンプレートが大きいほど、上記の歪および変形の影響を受け易くなって精度が低下する。
さらに、探索領域における相関スコアに対して多項式フィッティングを行って高精度に類似度のピーク位置を算出するか又はテンプレートと参照画像とを高画素化するなどの処理を行って、サブピクセル精度で動きベクトル又は対応点の軌跡を算出するようにしてもよい。
上述の例では、注目点をグリッド状に固定的に配置したブロックマッチングの例について説明したが、動きベクトルを算出しやすい特徴点を基準画像で抽出して、その位置を注目点として動きベクトルの探索を行うようにしてもよい。注目点を抽出する際には、通常Harrisオペレータなどの画像処理フィルタが用いられる。当該画像フィルタを用いて、画像のコーナー位置を特徴点として抽出し、適切な特徴のない位置で探索を行う。これによって、開口問題および「滑り」の問題を抑制して、探索可能率を向上させるとともに、アウトライア率の低下および精度の向上を期待することできる。
なお、Harrisオペレータについては、例えば、C. Harris and M. Stephens, “A combined corner and edge detector”, Fourth Alvey Vision Conference, pp.147−151, 1988に記載されている。
Harrisオペレータにおいては、まずウィンドウサイズWを決定し、水平および垂直方向について微分画像(Idx,Idy)を求める。微分画像を求める際には、Sobelフィルタなどが用いられる。
例えば、当該フィルタにおいて、h=|1,√2,1|/(2+√2)を横方向として、縦方向に3つ並べた3×3フィルタhxを画像に適用するとともに、h=|1,√2,1|/(2+√2)を縦方向として、横方向に3つ並べた3×3フィルタhyを画像に適用して、微分画像(Idx,Idy)を得る。
そして、画像における全ての座標(x、y)について、ウィンドウWを用いて、式(5)によってマトリクスGを求める。
続いて、マトリクスの最小特異値が大きい座標(x,y)の順に特徴点を抽出する。この際、特徴点はあまり密集しないほうが好ましい。そこで、既に特徴点が抽出済みの座標(x,y)のウィンドウサイズWの周辺について特徴点を算出しないなどの条件を設定するようにしてもよい。
なお、連続するフレーム間において、動きベクトルを探索する際には、再度特徴点を求めてTMを行うようにしてもよい、さらに、得られた動きベクトルの終端を注目点として新たなフレーム間でTMを行って特徴点の軌跡を追跡するようにしてもよい。
また、テンプレートに対応するウィンドウ、言い換えると、ブロックを参照画像内に設定された探索範囲内を移動して検出するのではなく、探索範囲内の候補点との相関で対応点を検出しても良い。各フレームにおいて算出した特徴点間で特徴量をキー情報としてテーブルマッチング、例えば、このベクトル特徴量の内積演算による相関演算を行って、対応付けするようにしてもよい。加えて、例えば、所謂枝刈りアルゴリズムを用いれば冗長な対応付け演算を削減することができるので、効率的に対応付けを行うことができる。
このようにして、動きベクトル探索処理では、前処理部103で生成した前処理済み画像信号と画像メモリ104に保存された過去の画像信号とを用いて、動きベクトル探索を行うようにしてもよいが、これら画像信号を縮小して動きベクトル探索処理を行うようにしてもよい。
図4は、図1に示すベクトル探索部105で行われるベクトル探索処理の画像縮小の一例を示す図である。
図4に示す例では、ベクトル探索部105は、画像信号が示す画像(つまり、基準画像および参照画像)を適宜縮小して動きベクトル探索処理を行う。この際、ベクトル探索部105は、基準画像および参照画像に関して動きベクトル探索性能を同等としたい場合には、テンプレートサイズおよび探索範囲について、縮小率に応じて同一の比で縮小する。
このように、画像の縮小を行うと、探索領域およびテンプレートサイズに相当する画素毎の差分又は積和の演算回数である総和(Σ)の繰り返し回数を削減することができる。
当然ながら画像を縮小すると、縮小後の画像から切り出される探索領域およびテンプレートを保存するための画像メモリ104の領域、そして、相関演算結果を保存するための領域は少なくて済む。その結果、ベクトル探索部105と画像メモリ104とのデータの送受(つまり、データ量)が少なくなって、データバス(図示せず)の帯域がデータで圧迫される可能性が少なくなる。
上述の動きベクトル探索処理においては、テンプレートサイズと当該テンプレートによって切り出されるシーンの奥行の関係とによって視差競合が生じる可能性がある。ここで、視差競合とは、設定テンプレートにおいて視差の異なる被写体が含まれる状態のことである。
具体的には、遠距離の被写体と近距離の被写体の双方が設定テンプレートに含まれている状態において、視差競合は、カメラ100を並行移動させた際に生じる像の動きベクトルを求める状態に対応する。そして、テンプレートに異なる視差が含まれているので、テンプレートの注目位置の視差が正しく求まらない。
図5は、図1に示すベクトル探索部105において奥行方向に延びる壁について動きベクトルを求める場合を説明するための図である。そして、図5(a)は奥行方向に延びる壁を撮影した画像を示す図であり、図5(b)はカメラ100を並行移動させる状態を示す図である。また、図5(c)はカメラ100を光学系の主点周りに回転させる状態を示す図である。
図5(a)に示す画像501では奥行方向に延びる壁504が撮影されており、当該画像501において注目点503を中心とするテンプレート502を設定する。この際、図5(b)に示すように、カメラ100を並行移動させると、奥行方向に延びる壁504において奥行きが異なる被写体毎に大きさが異なる視差が生じる。
図5(a)においては、テンプレート502におけるテクスチャが明瞭で同一距離の領域が大きい近距離が支配的となる。このため、注目点の動きベクトルに、近距離の領域と注目点位置の領域との視差分に起因する誤差が生じてしまう。
一方、図5(c)に示すように、カメラ100を光学系の主点周りに回転させると、動きベクトル探索の前に射影変換ホモグラフィによって動きの補正を行えば、奥行きの異なる被写体がテンプレート502に含まれていても視差は発生しない。このため、視差競合に起因する精度の劣化が生じることない。
また、視差がない場合には、テンプレートサイズを大きくすれば、ノイズおよび微小変形にも強く高精度の動きベクトルを得ることができる。加えて、縮小率の低い等倍探索を用いることによって動きベクトルの精度が向上する。
図6は、視差競合が顕著に生じる一例を説明するための図である。そして、図6(a)は前景に人物が存在する画像を示す図であり、図6(b)は背景の動きに応じたベクトルを示す図である。また、図6(c)は前景の動きに応じた動きベクトルを示す図であり、図6(d)は動きベクトル探索結果の一例を示す図である。
図6(a)において、画像601に前景の人物602と背景が存在する場合、前景と背景との間で視差が生じているとする。このような場合、前景の人物602と背景との境界近傍にテンプレート603が設定されると、テンプレート603において異なる視差を有する動き競合が生じる可能性がある。この際、注目点604に係る動きベクトルは、注目点604が背景に位置する画素であるので、図6(b)に示すように背景の動きに応じた動きベクトルが得られることになる。
ところが、前景のテクスチャが強い場合又は前景と背景との境界が明瞭な場合には、前景に引きずられて、図6(c)に示すように前景の動きに応じた動きベクトルが得られてしまう。そして、当該動きベクトルは精度の大きく劣化するか又はアウトライアと判定される動きベクトルとなる。この結果、図6(d)に白領域605で示すように、奥行方向の被写体境界において動きベクトル探索結果にアウトライア又は視差精度の劣化した部分が大きく発生してしまうことになる。
このような点を防止するため、図1に示すカメラ100においては、視差競合頻度推定部106は、視差競合の発生の度合い(頻度)を各種のセンシング情報から推定する。そして、視差競合頻度推定部106は動きベクトル算出部005に視差頻度情報を与えて、動きベクトル探索部105によるベクトル探索の方法又は設定値、つまり、画像の縮小率の変更を指示する。
前述のように、画像間で生じる視差競合の頻度が小さいと判定した場合には、視差競合頻度推定部106は画像に対する縮小率を小さくしてベクトル探索を行うようにベクトル探索部105に指示する。
一方、画像間で生じる視差競合の頻度が大きいと判定すると、視差競合頻度推定部106は画像に対する縮小率を大きくしてベクトル探索を行うようにベクトル探索部105に指示する。
撮影画像における視差の発生度合い(頻度)は、カメラ100と被写体シーンとの間の相対位置関係、つまり、被写体に対するカメラ100の相対的な並行移動量および被写体距離に依存する。並行移動量が大きいほど、そして、被写体距離が近く写っている被写体間の距離差が大きいほど発生する視差の度合いは大きくなる。
また、ズーム状態(つまり、撮像倍率)によって定まる焦点距離が長いと、画像における視差変化は大きくなる。加えて、カメラ100の動作状態、例えば、フレームレートの高低によっても視差は変化する。フレームレートが低いとフレーム間の動きが大きくなるため、視差が大きくなる。なお、前述のように、撮影条件およびカメラ100の動作状態は、CPU108がセンサおよびエンコーダ(図示せず)から取得して、内蔵メモリ(図示せず)に保存する。
上述のように、視差の発生度合いは並行移動量[T]、被写体ボリューム距離[V]と被写体距離[l]との比、焦点距離[f]、およびフレームレート[fps]などのカメラ100の動作状態によって指標化することができる。ここで、被写体ボリューム距離とは、写っている被写体の最遠距離から最近接距離の差分をいう。
加えて、視差競合の発生の度合いを考慮する際には、所定値以上の奥行き差のある被写体の細かさを考慮する必要がある。但し、被写体の奥行き差およびその大きさは瞬間毎に細かく変化して、閾値判定処理を切り替える基準にすることは不安定さがある。
このため、例えば、視差の発生度合いが大きいと視差競合の発生の度合いも大きいという類推を用いて、奥行き差のある被写体の細かさの影響を省略する。これによって、推定に必要な構成および処理を簡略化することができるばかりでなく、指標も安定化し易い。
次の式(6)は判定指標の一例を算出するための式である。
式(6)に示す指標Xが視差判定閾値thparallaxよりも大きければ、視差競合頻度推定部106は視差の発生度合い(頻度)が大きいと判定して視差競合の発生頻度も大きいと類推する。この結果、ベクトル探索部105は縮小探索を行う。
一方、指標Xが視差判定閾値thparallax以下であると、視差競合頻度推定部106は視差競合の発生頻度は小さいと判定する。この結果、ベクトル探索部105はベクトル探索の際の画像の縮小率を下げるか又は等倍探索を行う。
また、式(7)に示すように、視差判定閾値thparallaxを多段階に設定して、これら視差判定閾値に対応して縮小率を多段階に変化させるようにしてもよい。
上述のようにして視差競合の発生頻度を判定する際には、図1には示されていないが、視差競合頻度推定部106は、例えば、カメラ100の並行移動量を計測するセンサ、指標値算出部、および発生頻度を備えて、CPU108から撮影条件およびカメラ100の動作状態の情報を得る。そして、視差競合頻度推定部106は、式(6)に示す指標Xを求めて、当該指標Xと視差判定閾値thparallaxとを比較して、当該比較結果に応じて視差競合頻度の大小を推定する。
ところで、並行移動量は、通常カメラ100の3軸に対するベクトル量として得られる。このため、指標値もベクトル量として得られる。この際には、各軸に対応して視差判定閾値を設定して視差競合判定を行う。
なお、動きベクトル探索に影響の大きな光軸に垂直な2軸に関してのみ視差競合判定を行うようにしてもよい。さらには、変位の大きな並行移動量についてのみ視差競合判定に用いるようにしてもよい。
例えば、画像の並行移動量を計測するセンサとして所謂多軸姿勢センサが用いられる。この姿勢センサは、加速度センサおよびジャイロを備えて、回転軸および並進軸に関して移動方向および移動量を測定する。なお、単に指標を求めるのみであれば、加速度センサなどの並進軸に関する姿勢センサだけでもよい。そして、加速度センサによって得られた加速度を積分することによって速度値および並進量が算出される。
さらに、手ぶれ又は歩きぶれに起因するカメラ100のゆれ、つまり、カメラ100の姿勢変化に関して、カメラ100の回転ぶれと並行移動ぶれとの間には正の相関がある。言い換えると、回転ぶれが大きくなれば、並行移動ぶれも一定の比率で同様に大きくなる。回転ぶれと並行移動ぶれとの増加比率については、手ぶれ又は歩きぶれなどのぶれの発生原因の動作により異なるが、基本的に正の相関関係が存在する。
このため、視差競合頻度推定部106におけるセンシング対象である並行移動量の計測を、ジャイロなどの回転センサを用いた回転および回転ブレ量に置き換えてもよい。
図7は、図1に示すカメラ100で行われる動きベクトル探索処理の一例を説明するためのフローチャートである。なお、図示のフローチャートに係る処理は、CPU108の制御下で行われる。
動きベクトル探索処理を開始すると、視差競合頻度推定部106は式(6)によって求めた指標Xが視差判定閾値thparallaxよりも大きいか否かを判定する。つまり、視差競合頻度推定部106は視差が大であるか否かを判定する(ステップS701)。視差が大でないと、つまり、指標Xが視差判定閾値thparallax以下であると(ステップS701において、NO)、視差競合頻度推定部106は画像に対する縮小率を小さくしてベクトル探索を行うようにベクトル探索部105に指示する。
これによって、ベクトル探索部105は縮小率を小さくするか又は等倍で動きベクトルの検出を行う(ステップS7021)。そして、ベクトル探索部105は動きベクトル探索処理を終了する。
一方、視差が大であると、つまり、指標Xが視差判定閾値thparallaxよりも大きいと(ステップS701において、YES)、視差競合頻度推定部106は画像に対する縮小率を大きくして予め設定された縮小率でベクトル探索を行うようにベクトル探索部105に指示する。
これによって、ベクトル探索部105は縮小率を予め設定された縮小率に大きくして動きベクトルの検出を行う(ステップS7022)。そして、ベクトル探索部105は動きベクトル探索処理を終了する。
なお、前述のように、動きベクトル探索処理を行う際には、視差競合頻度推定結果に応じて多段階に縮小率を変化させるようにしてもよい。また、カメラ100が回転軸および並進軸に関するセンサを備える場合には、ベクトル探索部105は、動きベクトル探索を行う前に、カメラ100の姿勢変化に応じて画像に対して並行化処理を行ってもよい。
並行化処理を行うことによって、撮影シーンが静止である場合、視差以外の画像間の動きを除去することができる。この並行化処理は、エピポーラ幾何に応じて、画像間の視差以外の動きを射影変形などの幾何変形によって除去して対応点を同一のスキャンライン上に移動させる画像処理方法である。
この並行化処理については、例えば、R.Szeliski,” Computer Vision: Algorithms and Applications”,p.p.465に記載されている。
さらに、視差競合頻度推定部106はGUI(図示せず)を備える撮影モード設定部を有していてもよい。そして、ジャイロおよび加速度センサなどのセンシング情報に応じて姿勢変化を得て、当該姿勢変化に応じて視差競合の発生頻度の推定を行うことなく、ユーザが直感的に視差競合の発生頻度を推定するようにしてもよい。この際には、ユーザは、撮影モード設定部を用いて視差競合発生頻度を入力することになる。
なお、撮影モード設定部には、撮影モードとして手持ち撮影又は歩き撮り撮影のような撮影状態とカメラ100の把持状態(両手持ち、片手持ち)などが例示として表示される。これによって、ユーザに対して視差競合の発生頻度の推定をアシストするようにしてもよい。
例えば、両手持ちの撮影を示す状態が撮影モード設定部から入力されると、視差競合頻度推定部106は視差競合の発生頻度を小として、ベクトル探索の際の画像の縮小率を下げてベクトル探索を行うようにベクトル探索部105に指示するか又は等倍探索を行うようにベクトル探索部105に指示する。
一方、片手持ちでかつ歩き撮りの状態が撮影モード設定部から入力されると、視差競合頻度推定部106は視差競合の発生頻度を大として、縮小探索を行うようにベクトル探索部105に指示する。
このように、撮影モード設定部を用いたユーザの入力に応じて、視差競合の発生頻度を推定するようにすれば、ユーザの意図に応じた縮小率でベクトル探索を行うことができる。
このように、本発明の第1の実施の形態では、手ぶれ又は歩き撮りなどの撮影状態に応じて画像の縮小率を変更するようにしたので(つまり、選択的に切り替えるようにしたので)、探索可能率および精度に対するバス帯域および消費電力などのバランスを考慮してベクトル探索を行うことができる。この結果、視差競合による精度の劣化を抑制して動きベクトルを検出することができる。
[第2の実施形態]
次に、本発明の第2の実施形態による画像処理装置を備えるカメラについて説明する。
図8は、本発明の第2の実施形態による画像処理装置を備えるカメラの一例についてその構成を示すブロック図である。
なお、第2の実施形態に係るカメラ800の構成は、図1に示すカメラ100と同様であるが、視差競合頻度推定部の機能が図1に示すカメラと異なる。よって、ここでは、視差競合頻度推定部に参照番号806を付す。
視差競合頻度推定部806は、CPU108から撮影条件およびカメラ100の動作状態を得るとともに、ベクトル探索部105から動きベクトル探索結果である動きベクトルを得て、視差競合の発生頻度を判定する。
図8には示されていないが、視差競合頻度推定部806は、例えば、動きベクトルに応じてカメラ800の並行移動量を求める姿勢変化計算部を備えるとともに、前述の指標算出部および視差競合頻度判定部を有している。そして、視差競合頻度推定部806は、CPU108から撮影条件およびカメラ800の動作状態を示す情報を得て、前述の式(6)に応じて指標Xを求める。さらに、視差競合頻度推定部806は指標Xと視差判定閾値thparallaxとを比較して、その比較結果に応じて視差競合頻度を判定して視差競合頻度の大小を推定する。
視差競合頻度推定部806に備えられた姿勢変化計算部は、動きベクトルについて撮影条件に基づいて正規化を行って、カメラ800の回転および並行移動量を推定する。
なお、動きベクトルから求められるカメラ800の並行移動量は被写体距離と結合した形態で得られるので、AF測距部(図示せず)によって得られる被写体距離に応じて、並行移動量を分離して、式(6)を用いて視差競合頻度の推定のための指標を求めるようにしてもよい。さらには、被写体距離と結合したカメラ800の並行移動量[T’]を用いて、次の式(8)によって指標Xを求めるようにしてもよい。
ここでは、第1の実施形態で説明したようにして、式(6)又は式(8)によって求められた指標Xが視差判定閾値thparallaxよりも大きいと、視差競合頻度推定部806は視差競合の発生頻度が大きいと判定して、ベクトル探索部105に対して縮小探索を行うように指示する。一方、指標Xが視差判定閾値thparallax以下(判定閾値以下)であると、視差競合頻度推定部806は視差競合の発生頻度は小さいと判定して、ベクトル探索の際の縮小率を下げるか又は等倍として探索を行うように、ベクトル探索部105に指示する。
なお、第2の実施形態においても、視差判定閾値を多段階に設定して縮小率を多段階に変化させるようにしてもよい。さらには、姿勢変化計算部で求められる並行移動量を用いることなく、カメラ800の回転量の推定結果を用いて指標を得るようにしてもよい。
ここで、視差競合頻度推定部806に備えられた姿勢変化計算部において行われるカメラ800の回転および並行移動量の推定について説明する。
まず、姿勢変化計算部は、計算精度の向上および計算の安定化のため、対応点を入力フレームのピクセル座標系の対応点から正規化画像座標系における対応点に変換する。以下、(x,y)は入力フレーム上のピクセル座標(ud,vd)は歪みを含む正規化画像座標とし、(u,v)は歪みを除去した正規化画像座標とする。
姿勢変化計算部は、内部パラメータを用いて式(9)によって、ピクセル座標(x,y)を正規化画像座標(ud,vd)に変換する。ここで、内部パラメータの行列はカメラ行列Kと呼ばれ、カメラ行列Kは次の式(10)で表される。続いて、姿勢変化計算部は、式(11)で示すように、歪み係数によって正規化画像座標(ud,vd)から歪みを除去して、正規化画像座標(u,v)を得る。式(11)に示す→の演算は次の処理で行われる。ここでは、歪み除去は、式(12)および式(13)に示す放射歪の関係を用いて行われる。
ここで、k1、k2、およびk3はそれぞれ1次、2次、および3次の放射方向の歪み係数を示す。これら歪み係数は光学系の収差より生じる歪みである。歪みは光学系の焦点距離および被写体距離などの撮影条件に応じて変化する。
このため、焦点距離などと歪みとの関係は、予め設計値に応じて算出される。そして、焦点距離などに対応するルックアップテーブル又は焦点距離などに関する変換式をROM(図示せず)などに格納しておき、CPU108が撮影条件に基づいてROMから歪みを読み出す。
なお、ここでは、放射方向の歪みを除去するようにしたが、動径方向の歪みのような別の歪みが顕著であるならば、別途に当該歪みを除去する歪み除去処理を追加して行うようにしてもよい。
さらに、姿勢変化計算部は、カレントフレームと過去フレームと間の補正済み対応点を入力して、当該フレーム間におけるカメラ800の姿勢変化を推定する。例えば、姿勢変化計算部は、対応点補正において正規化画像座標系に変換した対応点に対して、基本行列の分解に基づく姿勢推定又は5点法のようなピンホールカメラモデルに応じた姿勢推定を行って、カメラ800の姿勢変化を推定する。
なお、一般的に、基本行列の分解に基づく姿勢推定の方が計算が容易であるので、基本行列の分解に基づく姿勢推定が用いられる。
しかしながら、対応点の算出において、その算出位置がマップされた空間配置が平面上のような特異配置の場合には、基本行列の分解に基づく姿勢推定では縮退に起因して解が得られなくなる。この場合には、射影ホモグラフィを求めて分解操作によってカメラ姿勢を推定する手法を用いる。
図9は、図8に示す視差競合頻度推定部806で行われるカメラ姿勢の推定処理を説明するためのフローチャートである。なお、図示のフローチャートにおける処理はCPU108の制御下で行われる。
カメラ姿勢推定処理を開始すると、視差競合頻度推定部806に備えられた姿勢変化計算部は、対応点に応じて求められたデータ行列の条件数の大小に基づいて平面度を算出する(ステップS901)。そして、姿勢変化計算部は、当該平面度が予め設定された平面閾値よりも高いか否かを判定する。つまり、姿勢変化計算部は平面度高であるか否かを判定する(ステップS902)。
平面度高であると(ステップS902において、YES)、姿勢変化計算部は射影行列の分解によるカメラ姿勢の推定を行う(ステップS9021)。そして、姿勢変化計算部はカメラ姿勢推定処理を終了する。
一方、平面度高でないと(ステップS902において、NO)、姿勢変化計算部は基本行列・5点法によるカメラ姿勢の推定を行う(ステップS9022)。そして、姿勢変化計算部はカメラ姿勢推定処理を終了する。
以下、射影ホモグラフィに基づく姿勢推定について説明する。
過去のフレームにおける正規化画像座標を(ui,vi)とし、カレントフレームにおける正規化画像座標を(ui’,vi’)とする。そして、i=1,…,m(mは対応点数)とする。この場合、次の式(14)によって射影ホモグラフィについての線形式を得ることができる。式(14)に示す線形式は対応点数m≧8であると過決定となる。そして、線形最小二乗式として解くことによって、h={h11,…,h33}が求められる。これを3×3のマトリクスに整形することによって、式(15)が得られる。そして、式(15)から射影ホモグラフィ、つまり、フレーム間の画像の変化量を求めることができる。
続いて、姿勢変化計算部は、射影ホモグラフィをカメラワーク回転R、撮影シーンの被写体を近似した面の方向n(ベクトル)、そして、並進t(ベクトル)と深度dの積t(ベクトル)/dに分解する。そして、姿勢変化計算部は、次の手順によって可能な2つの解を算出する。
射影ホモグラフィの2つの解への分解は固有値分解および特異値分解を用いて、不変量を見出すことで行われる。種々の解法が知られているが、ここでは、例えば、B.Triggs,”Auto calibration from Planar Scene”,ECCV98に記載のアプローチが用いられる。
射影ホモグラフィとカメラワークおよびシーン配置との関係は式(16)によって表される。
ここで、Rおよびt(ベクトル)はそれぞれカメラの回転および並進、dは基準面までの距離、n(ベクトル)は基準面のカメラから離れる向きの法線、λは定数である。
2画像間からの算出においては、空間平面の距離dとカメラワーク並進のノルムnorm{t(ベクトル)}の積を分けることはできない。なお、ノルムとはベクトルの大きさを表す量である。つまり、t(ベクトル)は並進方向を表す単位方向ベクトルnorm{t(ベクトル)}=1、dは空間平面までの距離と並進量の大きさの積として扱われる。
最初に、Hの符号は、平面上の全ての対応点x1(ベクトル)、x2(ベクトル)に対して、式(17)を満たすように選択されるとする。Hの特異値分解は、式(18)となる。ここで、UおよびVは3×3の回転マトリクスで、Sは式(19)で示される。正の降順対角要素σ1、σ2、およびσ3は式(20)に示す関係であり、Hの特異値とする。そして、関連する直交マトリクスUおよびVの列要素をu1,u2,u3、およびv1,v2,v3で表す。
第1カメラの参照系を採用して、3次元平面を式(21)で示すものとする。ここでn(ベクトル)は外向き(カメラから離れる方向)の法線とする。また、ζは平面に対する距離の逆数であり、式(22)で表される。この参照系においては、第1カメラは、式(23)で示す3×4の射影マトリクスを有する。そして、第2カメラは、式(24)で示す射影マトリクスを有する。
ここで、t’=−Rtであり、t、t’はカメラ間の並進(つまり、第1カメラ光軸中心から第2カメラの光軸中心への移動)、Rカメラ間の回転を表す。
第1の画像(画像1)から第2の画像(画像2)へのホモグラフィは、式(25)で示される。ここでは、H1は式(26)で示され、平面上の3次元点x(ベクトル)に対して式(27)で示されるようになる。何故ならば、そこでは、式(28)が成り立つためである。そして、x(ベクトル)を画像1内の任意点と扱うと、その相違は全体のスケール因子のみである。次の式(29)で示す積のみが復元可能であり、このため、式(30)によって正規化する。
つまり、平面距離1/ζは単位基線長||t||において測定される。そして、可能な符号を決定するために、後述するデプス正制約テストを行う。
式(18)で示す特異値分解のHとH1はR要素まで同一である。つまり、式(31)となる。H1において、外積ベクトルt(ベクトル)×n(ベクトル)は不変ある。特異値が明確ならば、t(ベクトル)×n(ベクトル)は特異ベクトルに対応しなければならない。これにより、いつも2番目の特異ベクトルv2であると分かる。それ故、式(32)で示すHの補正正規化は式(33)である。
以下、σ2による正規化が済まされているものとする。
画像フレーム1において、t(ベクトル)×n(ベクトル)がv2に対応することが与えられると、{t(ベクトル),n(ベクトル)}部分空間は{v1,v3}により占められなければならない、つまり、任意のパラメータα、β(α2+β2=1)に対して、式(34)となる。n(ベクトル)に直交する任意方向(特に、n(ベクトル)×{t(ベクトル)×n(ベクトル)}はHもしくはH1)によって変化しないノルムを有する。ここで、式(35)であるから、t(ベクトル)×n(ベクトル)を上記のv1もしくはv3に対応させると、解がなくなってしまう。それ故、V2のみが可能となる。厳密には、左辺の同一の引数が式(36)を示す。t(ベクトル)が式(37)で示すH1の固有値の固有ベクトルを満たすならば、式(38)を得る。故に、式(39)となり、単純化すると、式(40)となる。
H1の特異値分解の左辺{U1の列u1,u2,u3(ともにベクトル)}は表記u2(ベクトル)=v2(ベクトル)により復元可能であり、t(ベクトル)がH1の固有ベクトルであることが必要である。そこでは、式(41)であり、そして、単純化後では式(42)である。よって、式(43)によって、回転Rが得られる。
以下に、画像変化量を、回転と並進からなるカメラワークR、t(方向ベクトル)と空間の基準面の深さ位置dと方向n(ベクトル)からなるシーン配置との可能な2つの解を算出するための一連の具体的な処理を説明する。
次の式(44)〜式(52)を用いて、可能な2つの解{R1,t1(ベクトル),n1(ベクトル)}、{R2,t2(ベクトル),n2(ベクトル)}を求めることができる。いま、式(53)〜式(55)の解の組に対して、式(56)および式(57)で示す方位ベクトルnが外向きの約束(デプス正制約)を導入する。
符号の整合性を取ることにより、可能な2つの解が算出される。その後、エピポーラ誤差のチェックを行い、誤差の少ない1つの解を抽出する。
エピポーラ誤差のチェックは次のようにして行われる。
対応点x1(ベクトル),x2(ベクトル)から求められたホモグラフィを分解して得られる姿勢変化とシーン情報の可能な式(58)で示す2つの解のセットについて、対応点を用いてエピポーラ誤差を算出する。エピポーラ誤差は、次の式(59)で表される。
そして、エピポーラ誤差の小さな解を真の解として選択する。これによって、入力されたフレーム間のカメラワークを表す{R,t(ベクトル),n(ベクトル),d}の唯一の解が求まる。
なお、ここでは、説明を省略したピンホールカメラモデルによる非平面シーンに対するカメラの姿勢推定である基本行列に基づく姿勢推定については、例えば、R.Hartley,A.Zisserman,” Multiple View Geometry in Computer Vision”, Cambridge Univ. Press (2000)に記載されている。
また、5点法については、例えば、Bill Triggs,”Routines for Relative Pose of Two Calibrated Cameras from 5 Points”,Documentation, INRIA. juillet 2000.に記載されている。
上述のカメラ800の回転および並行移動量の推定では、撮影条件および動きベクトルに応じて推定を行う手法について説明したが、視差競合頻度推定部806が姿勢センサを備える場合には、姿勢変化の推定において併用してもよい。
例えば、姿勢センサであるジャイロセンサ(ジャイロスコープ)の出力(検出信号)の積分値から求まるフレーム間の回転情報を式(16)に示す回転情報とみなす。そして、フレーム間の動きベクトル変化、つまり、対応点の変化に対してカメラ800の回転に関する像変化の補正、即ち、打ち消しを先に実施する。その後、フィッティング処理を行って、カメラ800の平行移動量の推定を行うようにしてもよい。
また、ジャイロセンサの出力の積分値から求まるフレーム間の回転情報を式(16)に示す回転の初期値とする。そして、フレーム間の動きベクトル変化、つまり、対応点の変化に対してフィッティング処理を行って、平行移動量に加えて回転情報を推定するようにしてもよい。これによって、量子化などのノイズ影響が大きい場合においても、性能および安定度が向上する。
同様に、ジャイロセンサの出力の積分値から求まるフレーム間の回転情報を式(16)に示す回転の初期値とする。そして、加速度センサの出力の積分値から求まるフレーム間の平行移動量を式(16)に示す平行移動量の初期値とする。フレーム間の動きベクトル変化、つまり、対応点の変化に対してフィッティング処理を行って、カメラ800の回転および平行移動量についてセンサ性能を越える高精度な推定を行うようにしてもよい。
[第3の実施形態]
次に、本発明の第3の実施形態による画像処理装置を備えるカメラの一例について説明する。なお、第3の実施形態に係るカメラの構成は、図1又は図8に示すカメラの構成と同様である。ここでは、第3の実施形態に係るカメラの構成は、図1に示すカメラと同様であるものとして説明する。
第3の実施形態においては、ベクトル探索部105は、第1の実施形態で説明した単一の倍率である単層における動きベクトルの探索(第1の探索モード)に加えて、所謂階層動きベクトル探索(第2の探索モード)を行うことができる。
ベクトル探索部105は、階層動きベクトル探索を行う際に用いられるピラミッド画像階層作成部および注目点追跡部を有している。ピラミッド画像階層作成部は、ベースとなる最低縮小率の画像を最下層レイヤとして、第2および第3の画像を段階的に縮小してピラミッド画像階層を構成する。注目点追跡部はピラミッド画像階層を最上位レイヤから順番に最下層レイヤに向けて注目点を追跡して探索する。
ピラミッド画像階層作成部は、例えば、平均画素法を用いて画像を縮小してピラミッド画像階層を形成する。一般に、3段又は4段のピラミッド画像階層を作成することが効果的である。ここでは、ベースとなる最低縮小率の最下層レイヤを基準に1、1/2、1/4、および1/8倍に画像を縮小したピラミッド階層画像を生成する。なお、1、1/√2、1/4、および1/8倍などの倍率校正も用いられる。
注目点追跡部は、ピラミッド画像階層において注目点を追跡する。この際、最上位レイヤから下位レイヤに向かって順に注目点を追跡して、探索範囲を相対的に徐々に狭める。また、ここでは、テンプレートサイズを画像が拡大に対して一定か又は縮小させる。
図10は、本発明の第3の実施形態による画像処理装置を備えるカメラで行われる注目点の探索を説明するための図である。そして、図10(a)はピラミッド画像階層を探索する際の探索範囲の変化の一例を示す図であり、図10(b)はピラミッド画像階層を探索する際のテンプレートサイズの変化の一例を示す図である。
図10(a)において、ピラミッド画像階層を最上層1001から最下層1002に向けて探索する際、最上層1001では単層探索における探索範囲と同様にして対象とする画像間の動きの大きさに応じて決定した探索範囲1003によって探索が行われる。そして、以後最下層までの探索においては画像が拡大されて、テンプレートが相対的に縮小される。
これによって、補正される精度の範囲で探索をすればよい。例えば、参照画像中のある上層においてピーク相関値が得られた位置の周囲8画素近傍又は周囲24画素近傍を探索すればよい。
図10(b)において、最上層1001から最下層1002に向けて探索する途中では、テンプレートサイズ1004を一定に保つことで、ベース画像を基準として画像を徐々に縮小させていくことに繋がる。そして、ベース画像上で探索する際には徐々にテンプレートサイズを縮めていくことによって、動きベクトル探索精度を向上させることができる。
これによって、最終的な最下層レイヤにおけるテンプレートサイズを小さくすることができ、視差競合の影響をより小さくすることができる。つまり、テンプレートサイズを大きくし過ぎることによる弊害、例えば、視差競合による精度の劣化を気にすることなく初期テンプレートサイズを決定することができる。よって、探索範囲に対し初期テンプレートサイズを大きく取ることができ、探索可能率を高く保つことが可能となる。
しかしながら、単層探索の場合に比べて、ピラミッド画像階層作成を行う必要があり、ピラミッド画像階層を構築・保持するために回路規模および占有メモリが増加するばかりでなく、バス帯域の圧迫などの影響を無視することができない。このため、リソースの厳しい組込機器における実装においては、ベースとなる最低縮小率の最下層レイヤにおいても縮小探索を行わなければならない場合がある。
加えて、処理の複雑化に起因してリアルタイム処理を実現するため縮小探索で行わなければならない場合もある。この際には、視差競合のない手ぶれなどの撮影条件の場合には、等倍画像で探索する単層マッチング処理に、最下層レイヤが縮小探索である階層マッチング処理が劣るという場合がある。
さらには、階層動きベクトル探索においては、最上層レイヤでは特徴が消えてしまい、中間層レイヤにならないと画像特徴が現れず対応点探索ができない場合が生じて、中間階層から探索を開始しなければならない場合がある。また、階層探索においては、基準画像の注目点をオクルージョン部に設定してしまった際には、オクルージョン部を探索していることを検知する手段を備えなければならないなど探索手法が複雑になりがちである。
加えて、各レイヤにおけるテンプレートサイズ、探索範囲、および相関スコアの唯一性、そして、テンプレートのテクスチャ性を判定する際の判定閾値、各レイヤの縮小率などのパラメータが爆発的に増加してしまう。その結果、多数のパラメータを調整して期待通りの性能を得ることが難しくなって、最下層レイヤにおいて単層マッチングと同様の等倍探索を行えたとしても、視差競合のない手ぶれなどの撮影条件の場合には単層マッチング処理に階層マッチング処理が劣るという場合がある。
そこで、ここでは、視差競合頻度推定部106は、前述のように、視差競合の発生の度合い(頻度)を各種センシング情報から推定する。
図11は、本発明の第3の実施形態による画像処理装置を備えるカメラで行われるベクトル探索手法の切り替えを説明するための図である。そして、図11(a)はベクトル探索手法の切り替えの一例を示す図であり、図11(b)はベクトル探索手法の切り替えの他の例を示す図である。
視差競合頻度推定部106はベクトル探索部005に頻度情報を与えて画像の縮小率に加えベクトル探索手法の変更を指示する。前述のように、画像間で生じる視差競合の頻度が小さい場合には、視差競合頻度推定部106は画像に対する縮小率を小さくしてベクトル探索を行うようにベクトル探索部105に指示する。
この場合、図11(a)に示すように、ベクトル探索部105は探索手法として単層マッチングを採用する(左側の図)。
一方、画像間で生じる視差競合の頻度が大きい場合には、視差競合頻度推定部106は画像に対する縮小率を大きくしてベクトル探索を行うようにベクトル探索部105に指示する。
この際、図11(a)に示すように、ベクトル探索部105は探索手法として階層マッチングを採用する(右側の図)。
代わりに、図11(b)に示すように、ベクトル探索手法を階層探索から変更せずに、画像の縮小率のみを変更するようにしてもよい。ここでは、画像間で生じる視差競合の頻度が小さい場合には、視差競合頻度推定部106は画像に対する縮小率を小さるか又は等倍で階層探索を行うようにベクトル探索部105に指示する。
一方、画像間で生じる視差競合の頻度が大きい場合には、視差競合頻度推定部106は画像に対する縮小率を大きくして階層探索を行うようにベクトル探索部105に指示する。
このように、本発明の第3の実施の形態では、手ぶれ又は歩き撮りなどの場合においても性能(探索可能率および精度)に対する負荷(バス帯域および消費電力など)バランスを考慮してベクトル探索手法および対象画像の縮小率を選択する。これによって、視差競合による精度の劣化を抑制して動きベクトルを検出することができる。
上述の説明から明らかなように、図1に示す例においては、ベクトル探索部105およびCPU108がベクトル探索手段として機能し、視差競合頻度推定部106およびCPU108が制御手段として機能する。また、撮像素子102、前処理部103、およびメモリ104は撮像手段として機能し、後処理部107およびCPU108は画像処理手段として機能する。
なお、図1に示す例では、少なくともベクトル探索部105、視差競合頻度推定部106、およびCPU108が画像処理装置を構成する。
以上、本発明について実施の形態に基づいて説明したが、本発明は、これらの実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。
例えば、上記の実施の形態の機能を制御方法として、この制御方法を画像処理装置に実行させるようにすればよい。また、上述の実施の形態の機能を有するプログラムを制御プログラムとして、当該制御プログラムを画像処理装置が備えるコンピュータに実行させるようにしてもよい。なお、制御プログラムは、例えば、コンピュータに読み取り可能な記録媒体に記録される。
上記の制御方法および制御プログラムの各々は、少なくともベクトル探索ステップおよび制御ステップを有している。
また、本発明は、以下の処理を実行することによっても実現される。つまり、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種の記録媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPUなど)がプログラムを読み出して実行する処理である。