撮像モジュール、撮像装置、画像処理装置及び画像処理方法。
【課題】 複数の光学ユニットを有する撮像モジュールにおいて鏡面反射による影響を抑制することを目的としている。
【解決手段】 複数の光学ユニットを有する撮像モジュールであって、複数の光学ユニットのうちの少なくとも一部の光学ユニットに対して偏光フィルタを備え、偏光フィルタを備える光学ユニットにより得られる画像データに基づいて、被写体までの距離情報を推定する。
【解決手段】 複数の光学ユニットを有する撮像モジュールであって、複数の光学ユニットのうちの少なくとも一部の光学ユニットに対して偏光フィルタを備え、偏光フィルタを備える光学ユニットにより得られる画像データに基づいて、被写体までの距離情報を推定する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数の光学ユニットを有する撮像モジュールに関する。
【背景技術】
【0002】
従来から、ステレオカメラ、又は複数のカメラを格子上に配置した多眼方式の撮像装置を用いて、対象物体までの距離を推定する技術が知られている。この技術によれば、ステレオカメラ、又は多眼方式の撮像装置から得られる視差のある画像に基づいて対応点探索を行い、距離を推定することが可能となる(特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2008−157851号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、例えば、ガラス、水面、プラスチック等の表面で生じる鏡面反射により、視差のある画像が適切に取得できない場合がある。これは、画像中の鏡面反射成分が大きい領域においては、被写体からの反射光が適切に取得できないことが原因である。
そこで本発明は、複数の光学ユニットを有する撮像モジュールにおいて鏡面反射による影響を抑制することを目的としている。
【課題を解決するための手段】
【0005】
上記の目的を達成するため本発明の複数の光学ユニットを有する撮像モジュールは、
前記複数の光学ユニットのうちの少なくとも一部の光学ユニットに対して偏光フィルタを備え、前記偏光フィルタを備える光学ユニットにより得られる画像データに基づいて、被写体までの距離情報を推定することを特徴とする。
【発明の効果】
【0006】
本発明の複数の光学ユニットを有する撮像モジュールによれば、鏡面反射による影響を抑制することができる。
【図面の簡単な説明】
【0007】
【図1】多眼方式の撮像装置に偏光フィルタを装着した場合の概念図である。
【図2】多眼方式の撮像装置の構成を示した図である。
【図3】撮像部を説明するための図である。
【図4】偏光角度の異なる偏光フィルタを介して取得される画像データの概念図である。
【図5】実施の形態1の画像処理部を示すブロック図である。
【図6】実施の形態1の画像処理方法を示すフローチャートである。
【図7】実施の形態1の最適測距画像選択部を示すブロック図である。
【図8】実施の形態1の画像間差分を説明するための図である。
【図9】実施の形態1の最適測距画像の選択方法を示すフローチャートである。
【図10】実施の形態2の最適測距画像選択部を示す図である。
【図11】相対移動量計算のフローチャートである。
【図12】有効ブロックと無効ブロックを判定するフローチャートである。
【図13】有効動きベクトルと無効動きベクトルを判定するフローチャートである。
【図14】実施の形態3の最適測距画像選択部を示す図である。
【図15】ステレオ距離推定法を説明する図である。
【図16】実施の形態3の最適測距画像の選択方法を説明する図である。
【発明を実施するための形態】
【0008】
[実施の形態1]
<多眼方式の撮像装置に偏光フィルタを装着した場合の概念図>
図1は、多眼方式の撮像装置に偏光フィルタを装着した場合の概念図である。本実施の形態における多眼方式とは複数の光学ユニットを有する方式のことを指す。図1(a)は、複数の光学ユニットを構成する多眼方式の撮像装置の一例を示している。25個の光学ユニットは5行5列の格子上に配置されている。各光学ユニットは同一平面(又は略同一平面)に配置される。また、各光学ユニットの光軸は互いに平行(又は略平行)であり、配置された平面に対して垂直である。本実施の形態では、複数の光学ユニットにおいて、測距光学ユニットと撮像光学ユニットとを区別して使う。ユーザによる撮像操作(シャッタ押下操作)により、各光学ユニットに対して撮像指示信号が送信され、同時に25枚の画像データが取得できる。
【0009】
図1(a)は、測距光学ユニットと撮像光学ユニットの配置の一例を示している。本実施の形態では、図1(a)に示したように測距光学ユニットは距離推定の精度を向上させるために、一部の光学ユニットにおいて偏光フィルタが装着されている。光学ユニットに偏光フィルタを装着することにより、鏡面反射光による影響を抑制することができる。この鏡面反射光は、水面、ガラス、プラスチックなどの非金属の表面で生ずる反射光である。光学ユニットに入射される鏡面反射光成分は、偏光フィルタの装着角度(以下、「偏光角度」という)によって変動する。鏡面反射成分の光の振動平面と偏光フィルタの偏光角度とが35度前後の場合、最も強く偏光され(鏡面反射成分が抑制され)、鏡面反射成分の光の振動平面と偏光フィルタの偏光角度とが0度や90度に近づくにつれて偏光の度合いが弱まっていく(鏡面反射成分が光学ユニットに入射される)。
【0010】
本実施の形態では、複数の異なる偏光角度を有する偏光フィルタを装着し、最適な偏光角度により撮像した画像データを使用して距離推定を行う。一般に距離推定に関しては、なるべく視差の大きな視差画像群を用いることが適当とされる。視差の大きな視差画像群は、距離の離れた二つ以上の光学ユニットから取得することができる。よって、本実施の形態では、測距光学ユニットは、光学ユニット群の中心100を基準として撮像光学ユニットよりも外部に配置する。こうすることにより、より視差の大きな画像を取得することが可能となる。
【0011】
図1(a)において、測距光学ユニットの中心を通る線分(直径)は、偏光フィルタの偏光角度を示している。図1(b)、(c)はガラス窓越しに被写体(ガラス窓の向こう側にる人物)を撮像した場合の撮像画像データの概念図である。図1(b)は、偏光フィルタなしの撮像光学ユニットにより取得した撮像画像の概念図を示している。図1(c)は偏光フィルタありの測距光学ユニットで取得した測距画像の概念図を示している。図1(b)の場合、撮像画像上に鏡面反射光成分による鏡面反射領域が存在する。これはガラス窓による反射光が原因である。一方、図1(c)の場合、測距画像上の鏡面反射領域は偏光フィルタにより除去又は低減することができ、ガラス越しの被写体は測距画像上に現れる。
【0012】
図2は、多眼方式の撮像装置の構成を示した図である。
【0013】
図2において、撮像部101〜125は、被写体から入射される光をセンサで受光しA/D変換を施しデータ転送経路であるバス215にデジタルデータを出力する。本実施の形態においては、撮像部101〜125のそれぞれは、撮像光学ユニット及び測距光学ユニットのどちらかとして機能する。
【0014】
図3を用いて、撮像部101〜125の詳細を説明する。撮像部101〜125のうち測距光学ユニットとして機能するものは偏光フィルタ301を備える。一方で、撮像部101〜125のうち撮像光学ユニットとして機能するものは偏光フィルタ301を備えない。また、撮像部101〜125のそれぞれは、ズームレンズ302、フォーカスレンズ303、ぶれ補正レンズ304、絞り305、シャッター306、光学ローパスフィルタ307、iRカットフィルタ308、カラーフィルタ309等を備える。そして、CMOSやCCDなどのセンサ310により、各レンズやフィルタを介して得られる被写体からの光を検知する。A/D変換部311は、被写体の光量をデジタル値(画像データ)に変換する。
【0015】
フラッシュ214は、被写体に光を照射する。デジタル信号処理部209は、デジタル値にホワイトバランス処理、ガンマ処理、ノイズ低減処理などを行い、デジタル画像を生成する。
【0016】
圧縮・伸張部210は、上記デジタル値をJPEGやMPEGなどのファイルフォーマットに変換する処理を行う。
【0017】
外部メモリ制御部211は、PCその他メディア212(例えば、ハードディスク、メモリーカード、CFカード、SDカード、USBメモリ)につなぐためのインターフェースである。
【0018】
CPU203は、各構成の処理に関わり、 ROM201やRAM202に格納されたプログラム中の命令を順に読み込み、解釈し、その結果に従って処理を実行する。また、ROM201とRAM202は、その処理に必要なプログラム、データ、作業領域などをCPU203に提供する。
【0019】
撮像装置制御部204は、フォーカスを合わせる、シャッターを開く、絞りを調節するなどの、CPU203から指示された撮像系の制御を行う。
【0020】
操作部205は、ボタンやモードダイヤルなどが該当し、これらを介して入力されたユーザ指示を受け取る。CG生成部206は、文字やグラフィックなどを生成する。
【0021】
表示部208は、一般的には液晶ディスプレイやLCDディスプレイが広く用いられており、CG生成部206やデジタル信号処理部209、後述の画像処理部213から受け取った撮像画像や文字の表示を行う。また、タッチスクリーン機能を有していても良く、その場合は、ユーザ指示を操作部205の入力手段として扱うことも可能である。
【0022】
画像処理部213は、撮像部101〜125や外部メモリ制御部211から得られたデジタル画像データを利用して各種画像処理を行い、その結果をバス215へ出力する。
【0023】
なお、装置の構成要素は上記以外にも存在するが、本実施の形態の主眼ではないので、説明を省略する。
【0024】
<偏光フィルタで取得した画像群の概念図>
図4は、偏光角度の異なる偏光フィルタを介して取得される画像データの概念図である。偏光角度とは、所定の基準(本実施例では水平を基準)に対する偏光フィルタの角度である。
【0025】
図4のAとA’とは、偏光角度0度の偏光フィルタを有する測距光学ユニットの組により撮像された測距画像群である。AとA’とはそれぞれ別の光学ユニットにより撮像されている。図4のBとB’とは、偏光角度45度の偏光フィルタを有する測距光学ユニットにより撮像された測距画像群である。図4のCとC’とは、偏光角度90度の偏光フィルタを有する測距光学ユニットにより撮像された測距画像群である。偏光フィルタの偏光角度が変わることによって、画像上に現れる鏡面反射の領域の範囲と鏡面反射光成分の強さは変化する。最適な偏光角度になると、鏡面反射成分が略除去される。図4の例では偏光角度が90度の時に鏡面反射成分が略除去される。
【0026】
<実施の形態1のブロック図>
図5は、本実施の形態を適用できる画像処理部を示すブロック図である。入力端子501は、偏光フィルタを備えた測距光学ユニットにより撮像された測距画像データ群を画像処理部213に入力する。入力端子502は、入力された各測距画像データに対応した偏光角度の情報(偏光角度情報)を画像処理部213に入力する。入力端子503は、撮像光学ユニットにより撮像された通常撮像画像データ(又はデータ群)を画像処理部213に入力する。
【0027】
測距画像取得部504は、入力端子501から入力された測距画像データを測距用画像として読み込む。撮像画像取得部507は、入力端子503から入力された撮像画像データ(又は撮像画像データ群)を撮像画像として読み込む。取得された測距画像は最適測距画像選択部505に入力される。最適測距画像選択部505は、ガラスなどの鏡面反射の影響の少ない画像データを測距用画像データとして選択する。選択方法は図7の最適測距画像選択部のブロック図を用いて後述する。距離推定部506において、鏡面反射の影響の少ない画像データ(最適測距画像データ)を用いて距離推定を行う。なお、距離推定については、例えば後述するステレオ法による距離推定を用いる。
【0028】
画像合成部508は、距離推定部506により推定された距離情報を用いて撮像画像取得部507により取得された複数の撮像画像データの合成処理を行う。複数枚の画像データを用いた画像合成例としては、(1)撮影対象の距離データを用いて複数枚の画像データをシフトしそれらを合成することにより暈け画像を生成する処理や、(2)繰り返し演算による超解像処理等がある。
【0029】
画像合成部508により合成された合成画像データ(暈け画像データや超解像処理されたデータ)は出力端子509から出力される。
【0030】
<実施形態1のフローチャート>
図6は、実施の形態1の画像処理方法を示すフローチャートである。図6において、ステップs601は測距画像データを入力するステップである。ステップs602は撮像画像データを入力するステップである。ステップs603はステップs601で入力された測距画像データに対応する偏光フィルタの偏光角度を入力するステップである。ステップs604はステップs601で入力された測距画像データの中で鏡面反射光成分を最も抑えた測距画像データを最適測距画像データとして選択するステップである。ステップs605はs604で選択された最適測距画像データを用いた距離を推定するステップである。ステップs606は距離推定結果を用いて複数の撮像画像データに対して画像合成処理を行うステップである。
【0031】
<最適測距画像選択部のブロック図>
図7は、本実施の形態を適用できる最適測距画像選択部505を示すブロック図である。測距画像データは入力端子701から測距画像取得部703に入力される。偏光フィルタの角度(偏光角度)が異なると、画像上において鏡面反射部分の写り具合が異なってくる。一方で、鏡面反射以外の部分は画像間で多少の明度差はあるものの、鏡面反射部分の明度差よりも小さい。差分計算部704は、所定の偏光角度(基準偏光角度)の偏光フィルタを介して取得された測距画像データと、偏光角度がkαとなる偏光フィルタを介して取得された測距画像データとの対応画素の差分値の合計を計算する。αは単位偏光角度、kは自然数である。二つの測距画像データにおいて偏光角度の差異が大きくなると、測距画像上における鏡面反射部分の写り具合が大きく異なってくるので、二つの測距画像間の対応画素の差分値の合計は大きくなる。極値点検出部705は、差分値の合計を偏光角度順に比較する。差分値の合計の符号が変化する点(即ち差分値の合計を結ぶ関数の第一微分値が0、又は0に近い点)を極値点として検出する。最適測距画像選択部706は、極値点に対応する偏光角度で撮像した測距画像データを鏡面反射の影響は最も少ない測距画像データ(最適測距画像データ)として選択する。
【0032】
<極値点による最適測距画像選択方法のイメージ図>
図8は、本実施の形態における最適測距画像データの選択方法の概念図である。
【0033】
測距光学ユニットを用いて取得した画像には、鏡面反射部分が存在する場合、画像上に鏡面反射部分は高い輝度で現れる。偏光フィルタ装着すると、偏光フィルタの装着角度により高い輝度部分が変化する。偏光フィルタの装着角度を異なる全ての画像に対して、高い輝度部分が一番少ない画像を検出する。その画像を撮影した偏光フィルタの装着角度が鏡面反射を抑える効果がいいと見なす。
【0034】
図8(a)は、偏光角度の異なる複数の光学ユニットで取得した画像データが示す画像a,b,c,d,eを示している。画像a,b,c,d,eは、異なる偏光角度(0度、α度、2α度、3α度、4α度)を有する偏光フィルタを介して得られる画像データに対応している。図8(b)は、画像b、c、d、eそれぞれに対する基準画像aとの差分値の合計を縦軸とする図である。実施の形態1における差分値の合計は、二画像の対応画素の差分値の合計とする。横軸は、偏光フィルタの偏光角度に対応する。適切な偏光角度を有する偏光フィルタを介して取得される画像データが示す画像においては、画像上の鏡面反射成分は抑えられている。図8(a)からも明らかなように、差分値の合計が単純増加から単純減少に変化する点(極値点)が最適な偏光角度となる。詳しい計算方法は図9のフローチャートで説明する。
【0035】
<最適測距画像選択のフローチャート>
図9は、本実施の形態の最適測距画像データの選択方法を示すフローチャートである。ステップs901は画像カウントを初期化するステップである。全ての偏光角度に対して、ステップs902からステップs910までの処理を繰り返す。本実施の形態では、一つの偏光角度につき測距画像データは2つである。よって、偏光角度がN個(N種類)ある場合は、測距画像データは2N枚となる。本実施の形態では、測距画像データの組(2枚)の組から1枚のみを使ってステップs902からステップs910までの処理を繰り返す。
【0036】
入力される測距画像データのカウントは0番からN−1番までとする。本実施の形態では、0番目の測距画像データは偏光角度(0)で示す。ステップs903は偏光角度(0)の画像データを入力するステップである。ステップs904は偏光角度(i)の画像データを入力するステップである。iは自然数である。ステップs905は測距画像データの画素数をカウントするカウンタmを初期化するステップである。ステップs906からステップs909までは測距画像中のすべての画素について差分値を取得するループである。ステップs907は、カウンタmの位置の偏光角度(0)と偏光角度(i)との差分値の和を計算し、積算値E(i)に加えるステップである。なお、本実施の形態では、符号による影響を排除するため差分値の二乗和を積算値E(i)に加える。
【0037】
ステップs908はカウンタmを一つ増やすステップである。ステップs909を終了すると、積算値E(i)は、偏光角度(0)と偏光角度(i)の差分値の和(二乗和)となる。
【0038】
ステップs911は、k、Maxの値を初期化するステップである。Maxは極値点の値を記録する変数である。kは偏光角度をカウントする変数である。ステップs912からステップs917の処理は極値点を特定する計算のループである。ステップs913は、(1)k番目の差分値の合計とk−1の差分値の合計との差と(2)k番目の差分値の合計とk+1の差分値の合計との差、を掛け算するステップである。掛け算の結果が0と比べて大きい場合、k−1,k,k+1の三点は単純増加または単純減少となり、ステップs914に進む。掛け算の結果が0又は0と比べて小さい場合、kは極値点となり、s916に進む。ステップs914でk−1,k,k+1の三点の変化量の絶対値とMaxとを比較する。絶対値がMaxより大きい場合、ステップs915に進み、Maxの値を更新する。Maxより小さい場合、Maxの値を更新することなく、ステップs916に進む。ステップs917で全ての偏光角度について処理が終わると、極値点の最大値に対応する偏光角度kが出力される。ステップs918は、極値点の最大値に対応する偏光角度kに対応する測距画像データが特定されるステップである。この特定された測距画像データが鏡面反射の影響が最も少ない最適測距画像データとなる。なお、極値点を取得する方法は上記方法に限らないことは言うまでもない。
【0039】
以上の通り、本実施の形態によれば、複数の光学ユニットを有する撮像装置は、少なくとも一部の光学ユニットに対して偏光フィルタを有する。これにより、鏡面反射の影響の少ない測距画像データを取得することができ、より高精度に距離推定等の画像処理を実現することができる。
【0040】
<本実施の形態の変形例>
・本実施の形態では、複数の光学ユニット(測距光学ユニットと撮像光学ユニット)を有する撮像装置について説明したが、撮像モジュールであっても良い。この撮像モジュールは操作部205や外部メモリ制御部211等を有してなくても良い。
・本実施の形態では、撮像光学ユニットには偏光フィルタを取り付けないこととした。しかしながら、偏光フィルタを装着した撮像光学ユニットにより撮像画像データを取得しても良い。この場合、鏡面反射の影響が低減された撮像画像データに対して画像合成処理が行われることとなる。
・本実施の形態では、画像処理の例として距離推定の後に撮像画像データを合成するとしたが、これに限らない。例えば、距離推定後に超解像処理を行ったり、任意のフォーカス距離を設定することによる暈け味付加処理等を行っても良い。
・本実施の形態では、偏光角度は固定としたが、偏光角度をユーザが任意に設定できる機構を備えても良い。ユーザは写り込み具合を確認しながら、写り込みが最も抑制される偏光角度を設定する。こうすることにより、本実施の形態では無駄に撮像していた測距画像データ(偏光角度が最適でない測距画像データ)の数を削減することが可能となる。また、アクチュエータ等により偏光角度を自動的に調整するようにしても良い。
・本実施の形態では二つの測距画像ペアに基づいて距離推定を行うとしたが、三以上の測距画像ペアを用いて距離推定を行っても良い。測距光学ユニットの数が限られている場合、測距画像の数を増やせば増やすほど、距離推定の精度は向上するが、一方で、偏光角度の種類の数は減る。
・本実施の形態では、図6の画像処理を撮像装置内で行うとしたが、これに限らない。例えば、画像処理部213の各処理を撮像装置とは異なる画像処理装置で行っても良い。
【0041】
[実施の形態2]
<最適測距画像選択部のブロック図>
図10は、本実施の形態の最適測距画像選択部505を示すブロック図である。測距画像データ群は入力端子1001から測距画像データ取得部1003に入力される。相対移動量計算部は、偏光角度を共通とする測距画像データ間の相対移動量を計算する。鏡面反射の領域は平坦であるため、ブロックマッチングをして相対移動量を計算する際に、無効ブロック(無効画素により構成されるブロック)として判断される。無効画素数カウント部1005で無効画素数をカウントする。最適測距画像特定部1006は、全ての偏光角度における無効画素数をカウントした結果を用いて、最も無効画素数が少ない画像を最適測距画像データとして特定する。特定された最適測距画像データを出力端子1007から出力する。
【0042】
<相対移動量の算出>
図11は、画像間の相対移動量を求める方法を説明するためのフローチャートである。ここでは、ブロック毎に動きベクトルを求め、そこから画面全体の動き量をアフィンパラメータとして求める方法について説明する。ブロック毎の動きベクトルを求める際にその前処理としてステップs1101の有効ブロック判定を行う。これは正しい動きベクトルが求まらない可能性のあるブロックを除外する処理である。詳細は後述する。ステップs1102では、ブロックの動きベクトルを算出する。ここでは一般的なブロックマッチング方法について説明する。ブロックマッチング法では、マッチングの評価値としてブロック内の画素間の差分二乗和もしくは差分絶対値和を用いる。ベクトルを求める対象ブロックを基準画像のサーチ範囲内で順次動かしなら評価値を求めていく。サーチ範囲内で求めた全ての評価値の中から最小の評価値もつ位置が対称ブロックと最も相関の高い位置であり、その移動量が動きベクトルとなる。サーチ範囲を1画素ずつ求めていく方法はフルサーチと呼ばれている。これに対し、サーチ範囲を間引きながら最小の評価値を求め、次にその近傍に対して細かくサーチする方法は、ステップサーチと呼ばれている。ステップサーチは高速に動きベクトルを求める方法としてよく知られている。次にステップs1104にて、有効動きベクトル判定を行う。これは、求めた動きベクトルのうち、算出結果が正しくないと判断されるものを除外する処理である。詳細は後述する。ステップs1103で、終了判定を行い、すべてのブロックの処理が終わると、ステップs1105にて、有効な動きベクトルから、アフィンパラメータの検出を行う。
【0043】
次に、アフィンパラメータ検出の詳細を説明する。対象ブロックの中心座標が、(x,y)であり、動きベクトルの算出結果から基準画像におけるブロックの中心座標が(x’,y’)に移動したとすると、これらの関係は、式(1)のように表すことができる。
【0044】
【数1】
【0045】
ここで、3×3の行列がアフィン変換行列である。行列の各要素がアフィンパラメータであり、a=1,b=0,d=0,e=1のとき、この変換は平行移動となり、cが水平方向の移動量、fが垂直方向の移動量となる。また、回転角θでの回転移動は、a=cosθ,b=−sinθ,d=sinθ,e=cosθで表すことができる。式(2)は一般化した行列の形式で数式2のように表現することができる。
x’=A・x (2)
ここでXとX’は1×3の行列、Aは3×3の行列である。有効な動きベクトルがn個であった場合、対象画像の座標値は、式(3)のようにn×3の行列で表現できる。
x=(x1 x2 ・・・ xn) (3)
同様に、移動後の座標値も式(4)のようにn×3の行列で表現できる。
x’=(x’1 x’2 ・・・ x’n) (4)
よって、n個の動きベクトルに対しては、数(5)のような表現となる。
X’=A・X (5)
すなわち、式(5)におけるアフィン行列Aを求めれば、それが画面全体の位置ずれ量になる。式(5)を変形すると、アフィン行列は式(6)のように求まる。
A=X’・XT・(X・X)T−1 (6)
この方式では、ブロックマッチングによりブロック間の相対移動量を求めようとする場合、ブロック内の画像が何らかの特徴量を持っている必要がある。平坦でほとんど直流成分しか含んでいないブロックでは正しい動きベクトルを求めることはできない。逆に水平方向や垂直方向にエッジを含んでいると、マッチングがとりやすくなると考えられる。
【0046】
図12は、このような平坦部のブロックを除外する一手法である。ここでは1つのブロックに対する処理で説明する。まずステップs1201で、ブロック内にある水平方向の1つのラインに対し、最大値と最小値の差分値を算出する。例えば、ブロックのサイズが50×50の画素で構成されているとすると、ブロック内における水平方向の50の画素から最大値と最小値を求め、その差分値を算出する。これを水平ライン数分、すなわち50回繰り返す。そして、ステップs1203で50の差分値の中から最大の差分値を求める。ステップs1204で、あらかじめ設定したTxと最大差分値の比較を行う。最大差分値が閾値Txよりも小さければ、水平方向には特徴量を持たないブロックであるとみなし、ステップs1205にて、無効ブロックとする。水平方向に特徴量を持つとみなせる場合は、垂直方向で同様の検証を行う。まず、ステップs1206で、ブロック内にある垂直方向の1つのラインに対し、最大値と最小値の差分値を算出する。つまりブロック内における垂直方向の50の画素から最大値と最小値を求め、その差分値を算出する。これを垂直ライン数分、すなわち50回繰り返す。そして、ステップs1208で50の差分値の中から最大の差分値を求める。ステップs1209で、あらかじめ設定したTyと最大差分値の比較を行う。最大差分値が閾値Tyよりも小さければ、垂直方向には特徴量を持たないブロックであるとみなし、ステップs1205にて、無効ブロックとする。水平・垂直両方向に特徴を持つブロックならば、正確なブロックマッチングが行われることが期待できるので、ステップs1210にて、有効ブロックと判定する。
【0047】
次に、有効動きベクトル判定方法を図13のフローチャートを用いて説明する。まずは、ステップs1301にて動きベクトルを入力し、ステップs1302にて、その発生頻度を算出する。ステップs1303にて、全ての動きベクトルの発生頻度が求まるまでこの処理を繰り返し、終了するとステップs1304にて、最大発生頻度の動きベクトルを求める。次に、ステップs1305にて、再度動きベクトルを入力し、ステップs1306で、この動きベクトルが最大発生頻度の動きベクトル、もしくはその近傍の動きベクトルであるかどうかの判定を行う。画面全体のぶれが、シフトのみである場合、各ブロックの動きベクトルは、最大発生頻度の動きベクトルにほぼ一致するはずであり、ロールぶれを伴う場合は、最大発生頻度の動きベクトルの近傍に多くの動きベクトルが発生すると考えられる。したがって、これらの値に含まれる動きベクトルは、ステップs1307にて、有効動きベクトルと判定し、これらの値から外れている動きベクトルは、ステップs1308にて無効動きベクトルと判定する。ステップs1309では、すべての動きベクトルに対して処理が終わったかどうかの判定を行い、終了までステップs1305からの処理を繰り返す。
【0048】
以上の通り、距離推定時に使う画像間位置合わせの無効ブロックの数(又は無効画素の数)をカウントすることにより、もっとも鏡面反射の影響の少ない画像群(最適測距画像データ)をみつけることができる。これは、鏡面反射領域においては画像間での対応関係が見つけにくいという特性を利用したものである。このようにして選択された最適測距画像データに基づいて、本実施の形態では、鏡面反射の影響を最も抑えた距離推定結果を得ることができる。
【0049】
[実施の形態3]
<最適測距画像選択部のブロック図>
図14は、本実施の形態の最適測距画像選択部505を示すブロック図である。測距画像データは入力端子1401から測距画像取得部1403に入力される。距離推定部1405は、測距画像データを用いて距離推定を行う。距離推定の結果を用いて、最適測距画像特定部1406は、最適測距画像データを特定する。出力端子1007は最適測距画像データを出力する。
【0050】
<ステレオ法による距離推定>
図15は、距離推定部1405によるステレオ距離推定法を示している。
【0051】
注目点1502は被写体1501に存在する。被写体表面は波の形になっている。ステレオ法を用いる二台のカメラは性能が同じカメラである。カメラは光学中心を通る光線で投影面への結像を実現する。図15では、1503、1504は左右カメラの光学中心である。1512、1513は左右カメラの投影面である。左の投影面中心を座標原点とする直交座標系は(u,v)である。光学中心と投影面座標原点と連接するラインは投影面に対して垂直に交わっており、その間の距離は焦点距離fである。右の投影面中心を座標原点とする直交座標系は(u’,v’)である。三次元空間の被写体1501の座標は(Xカメラ,Yカメラ,Zカメラ)は両カメラの光学中心と連接し、投影面との接点は左右ステレオ画像上の画素になる。図15には1506、1507は左右投影面との接点を示している。1506の座標は(ux,vy)である。1507の座標は(u’x,v’y)である。1511と1509は左右投影面上のライン1510、1508を拡大した画素配列である。両カメラの光学中心を連接したラインは基線と呼ばれ、bはその基線の長さである1505基線長である。被写体上の点1501(Xカメラ,Yカメラ,Zカメラ)は左のカメラ座標系を基準にしている。被写体1501(Xカメラ,Yカメラ,Zカメカメラ)の奥行きはZとする。Zカメラについて下記の式を用いてステレオ法により計算する。
【0052】
【数2】
【0053】
<距離による最適測距画像選択方法のイメージ図>
実物体より手前にあるガラスの上に起こった鏡面反射の部分の距離推定結果は実物体の距離より小さい。よって、異なる偏光角度を有する偏光フィルタを介して得られる測距画像から推定された距離のうち、最も大きな距離を推定する場合の偏光角度を選択する。この偏光角度により取得された測距画像が最適測距画像データとなる。
【0054】
図16は、最適測距画像データの選択方法のイメージ図である。図16(a)において、画像a,b,c,d,eはそれぞれ、偏光角度が0度、α度、2α度、3α度、4α度の場合に取得された画像を示している。図16(b)は、それぞれの偏光角度の場合に取得された被写体までの距離を示している。この場合、偏光角度が2α度である画像cが最も推定された距離が遠いことから、画像cが最適測距画像データとなる。
【0055】
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【技術分野】
【0001】
本発明は、複数の光学ユニットを有する撮像モジュールに関する。
【背景技術】
【0002】
従来から、ステレオカメラ、又は複数のカメラを格子上に配置した多眼方式の撮像装置を用いて、対象物体までの距離を推定する技術が知られている。この技術によれば、ステレオカメラ、又は多眼方式の撮像装置から得られる視差のある画像に基づいて対応点探索を行い、距離を推定することが可能となる(特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2008−157851号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、例えば、ガラス、水面、プラスチック等の表面で生じる鏡面反射により、視差のある画像が適切に取得できない場合がある。これは、画像中の鏡面反射成分が大きい領域においては、被写体からの反射光が適切に取得できないことが原因である。
そこで本発明は、複数の光学ユニットを有する撮像モジュールにおいて鏡面反射による影響を抑制することを目的としている。
【課題を解決するための手段】
【0005】
上記の目的を達成するため本発明の複数の光学ユニットを有する撮像モジュールは、
前記複数の光学ユニットのうちの少なくとも一部の光学ユニットに対して偏光フィルタを備え、前記偏光フィルタを備える光学ユニットにより得られる画像データに基づいて、被写体までの距離情報を推定することを特徴とする。
【発明の効果】
【0006】
本発明の複数の光学ユニットを有する撮像モジュールによれば、鏡面反射による影響を抑制することができる。
【図面の簡単な説明】
【0007】
【図1】多眼方式の撮像装置に偏光フィルタを装着した場合の概念図である。
【図2】多眼方式の撮像装置の構成を示した図である。
【図3】撮像部を説明するための図である。
【図4】偏光角度の異なる偏光フィルタを介して取得される画像データの概念図である。
【図5】実施の形態1の画像処理部を示すブロック図である。
【図6】実施の形態1の画像処理方法を示すフローチャートである。
【図7】実施の形態1の最適測距画像選択部を示すブロック図である。
【図8】実施の形態1の画像間差分を説明するための図である。
【図9】実施の形態1の最適測距画像の選択方法を示すフローチャートである。
【図10】実施の形態2の最適測距画像選択部を示す図である。
【図11】相対移動量計算のフローチャートである。
【図12】有効ブロックと無効ブロックを判定するフローチャートである。
【図13】有効動きベクトルと無効動きベクトルを判定するフローチャートである。
【図14】実施の形態3の最適測距画像選択部を示す図である。
【図15】ステレオ距離推定法を説明する図である。
【図16】実施の形態3の最適測距画像の選択方法を説明する図である。
【発明を実施するための形態】
【0008】
[実施の形態1]
<多眼方式の撮像装置に偏光フィルタを装着した場合の概念図>
図1は、多眼方式の撮像装置に偏光フィルタを装着した場合の概念図である。本実施の形態における多眼方式とは複数の光学ユニットを有する方式のことを指す。図1(a)は、複数の光学ユニットを構成する多眼方式の撮像装置の一例を示している。25個の光学ユニットは5行5列の格子上に配置されている。各光学ユニットは同一平面(又は略同一平面)に配置される。また、各光学ユニットの光軸は互いに平行(又は略平行)であり、配置された平面に対して垂直である。本実施の形態では、複数の光学ユニットにおいて、測距光学ユニットと撮像光学ユニットとを区別して使う。ユーザによる撮像操作(シャッタ押下操作)により、各光学ユニットに対して撮像指示信号が送信され、同時に25枚の画像データが取得できる。
【0009】
図1(a)は、測距光学ユニットと撮像光学ユニットの配置の一例を示している。本実施の形態では、図1(a)に示したように測距光学ユニットは距離推定の精度を向上させるために、一部の光学ユニットにおいて偏光フィルタが装着されている。光学ユニットに偏光フィルタを装着することにより、鏡面反射光による影響を抑制することができる。この鏡面反射光は、水面、ガラス、プラスチックなどの非金属の表面で生ずる反射光である。光学ユニットに入射される鏡面反射光成分は、偏光フィルタの装着角度(以下、「偏光角度」という)によって変動する。鏡面反射成分の光の振動平面と偏光フィルタの偏光角度とが35度前後の場合、最も強く偏光され(鏡面反射成分が抑制され)、鏡面反射成分の光の振動平面と偏光フィルタの偏光角度とが0度や90度に近づくにつれて偏光の度合いが弱まっていく(鏡面反射成分が光学ユニットに入射される)。
【0010】
本実施の形態では、複数の異なる偏光角度を有する偏光フィルタを装着し、最適な偏光角度により撮像した画像データを使用して距離推定を行う。一般に距離推定に関しては、なるべく視差の大きな視差画像群を用いることが適当とされる。視差の大きな視差画像群は、距離の離れた二つ以上の光学ユニットから取得することができる。よって、本実施の形態では、測距光学ユニットは、光学ユニット群の中心100を基準として撮像光学ユニットよりも外部に配置する。こうすることにより、より視差の大きな画像を取得することが可能となる。
【0011】
図1(a)において、測距光学ユニットの中心を通る線分(直径)は、偏光フィルタの偏光角度を示している。図1(b)、(c)はガラス窓越しに被写体(ガラス窓の向こう側にる人物)を撮像した場合の撮像画像データの概念図である。図1(b)は、偏光フィルタなしの撮像光学ユニットにより取得した撮像画像の概念図を示している。図1(c)は偏光フィルタありの測距光学ユニットで取得した測距画像の概念図を示している。図1(b)の場合、撮像画像上に鏡面反射光成分による鏡面反射領域が存在する。これはガラス窓による反射光が原因である。一方、図1(c)の場合、測距画像上の鏡面反射領域は偏光フィルタにより除去又は低減することができ、ガラス越しの被写体は測距画像上に現れる。
【0012】
図2は、多眼方式の撮像装置の構成を示した図である。
【0013】
図2において、撮像部101〜125は、被写体から入射される光をセンサで受光しA/D変換を施しデータ転送経路であるバス215にデジタルデータを出力する。本実施の形態においては、撮像部101〜125のそれぞれは、撮像光学ユニット及び測距光学ユニットのどちらかとして機能する。
【0014】
図3を用いて、撮像部101〜125の詳細を説明する。撮像部101〜125のうち測距光学ユニットとして機能するものは偏光フィルタ301を備える。一方で、撮像部101〜125のうち撮像光学ユニットとして機能するものは偏光フィルタ301を備えない。また、撮像部101〜125のそれぞれは、ズームレンズ302、フォーカスレンズ303、ぶれ補正レンズ304、絞り305、シャッター306、光学ローパスフィルタ307、iRカットフィルタ308、カラーフィルタ309等を備える。そして、CMOSやCCDなどのセンサ310により、各レンズやフィルタを介して得られる被写体からの光を検知する。A/D変換部311は、被写体の光量をデジタル値(画像データ)に変換する。
【0015】
フラッシュ214は、被写体に光を照射する。デジタル信号処理部209は、デジタル値にホワイトバランス処理、ガンマ処理、ノイズ低減処理などを行い、デジタル画像を生成する。
【0016】
圧縮・伸張部210は、上記デジタル値をJPEGやMPEGなどのファイルフォーマットに変換する処理を行う。
【0017】
外部メモリ制御部211は、PCその他メディア212(例えば、ハードディスク、メモリーカード、CFカード、SDカード、USBメモリ)につなぐためのインターフェースである。
【0018】
CPU203は、各構成の処理に関わり、 ROM201やRAM202に格納されたプログラム中の命令を順に読み込み、解釈し、その結果に従って処理を実行する。また、ROM201とRAM202は、その処理に必要なプログラム、データ、作業領域などをCPU203に提供する。
【0019】
撮像装置制御部204は、フォーカスを合わせる、シャッターを開く、絞りを調節するなどの、CPU203から指示された撮像系の制御を行う。
【0020】
操作部205は、ボタンやモードダイヤルなどが該当し、これらを介して入力されたユーザ指示を受け取る。CG生成部206は、文字やグラフィックなどを生成する。
【0021】
表示部208は、一般的には液晶ディスプレイやLCDディスプレイが広く用いられており、CG生成部206やデジタル信号処理部209、後述の画像処理部213から受け取った撮像画像や文字の表示を行う。また、タッチスクリーン機能を有していても良く、その場合は、ユーザ指示を操作部205の入力手段として扱うことも可能である。
【0022】
画像処理部213は、撮像部101〜125や外部メモリ制御部211から得られたデジタル画像データを利用して各種画像処理を行い、その結果をバス215へ出力する。
【0023】
なお、装置の構成要素は上記以外にも存在するが、本実施の形態の主眼ではないので、説明を省略する。
【0024】
<偏光フィルタで取得した画像群の概念図>
図4は、偏光角度の異なる偏光フィルタを介して取得される画像データの概念図である。偏光角度とは、所定の基準(本実施例では水平を基準)に対する偏光フィルタの角度である。
【0025】
図4のAとA’とは、偏光角度0度の偏光フィルタを有する測距光学ユニットの組により撮像された測距画像群である。AとA’とはそれぞれ別の光学ユニットにより撮像されている。図4のBとB’とは、偏光角度45度の偏光フィルタを有する測距光学ユニットにより撮像された測距画像群である。図4のCとC’とは、偏光角度90度の偏光フィルタを有する測距光学ユニットにより撮像された測距画像群である。偏光フィルタの偏光角度が変わることによって、画像上に現れる鏡面反射の領域の範囲と鏡面反射光成分の強さは変化する。最適な偏光角度になると、鏡面反射成分が略除去される。図4の例では偏光角度が90度の時に鏡面反射成分が略除去される。
【0026】
<実施の形態1のブロック図>
図5は、本実施の形態を適用できる画像処理部を示すブロック図である。入力端子501は、偏光フィルタを備えた測距光学ユニットにより撮像された測距画像データ群を画像処理部213に入力する。入力端子502は、入力された各測距画像データに対応した偏光角度の情報(偏光角度情報)を画像処理部213に入力する。入力端子503は、撮像光学ユニットにより撮像された通常撮像画像データ(又はデータ群)を画像処理部213に入力する。
【0027】
測距画像取得部504は、入力端子501から入力された測距画像データを測距用画像として読み込む。撮像画像取得部507は、入力端子503から入力された撮像画像データ(又は撮像画像データ群)を撮像画像として読み込む。取得された測距画像は最適測距画像選択部505に入力される。最適測距画像選択部505は、ガラスなどの鏡面反射の影響の少ない画像データを測距用画像データとして選択する。選択方法は図7の最適測距画像選択部のブロック図を用いて後述する。距離推定部506において、鏡面反射の影響の少ない画像データ(最適測距画像データ)を用いて距離推定を行う。なお、距離推定については、例えば後述するステレオ法による距離推定を用いる。
【0028】
画像合成部508は、距離推定部506により推定された距離情報を用いて撮像画像取得部507により取得された複数の撮像画像データの合成処理を行う。複数枚の画像データを用いた画像合成例としては、(1)撮影対象の距離データを用いて複数枚の画像データをシフトしそれらを合成することにより暈け画像を生成する処理や、(2)繰り返し演算による超解像処理等がある。
【0029】
画像合成部508により合成された合成画像データ(暈け画像データや超解像処理されたデータ)は出力端子509から出力される。
【0030】
<実施形態1のフローチャート>
図6は、実施の形態1の画像処理方法を示すフローチャートである。図6において、ステップs601は測距画像データを入力するステップである。ステップs602は撮像画像データを入力するステップである。ステップs603はステップs601で入力された測距画像データに対応する偏光フィルタの偏光角度を入力するステップである。ステップs604はステップs601で入力された測距画像データの中で鏡面反射光成分を最も抑えた測距画像データを最適測距画像データとして選択するステップである。ステップs605はs604で選択された最適測距画像データを用いた距離を推定するステップである。ステップs606は距離推定結果を用いて複数の撮像画像データに対して画像合成処理を行うステップである。
【0031】
<最適測距画像選択部のブロック図>
図7は、本実施の形態を適用できる最適測距画像選択部505を示すブロック図である。測距画像データは入力端子701から測距画像取得部703に入力される。偏光フィルタの角度(偏光角度)が異なると、画像上において鏡面反射部分の写り具合が異なってくる。一方で、鏡面反射以外の部分は画像間で多少の明度差はあるものの、鏡面反射部分の明度差よりも小さい。差分計算部704は、所定の偏光角度(基準偏光角度)の偏光フィルタを介して取得された測距画像データと、偏光角度がkαとなる偏光フィルタを介して取得された測距画像データとの対応画素の差分値の合計を計算する。αは単位偏光角度、kは自然数である。二つの測距画像データにおいて偏光角度の差異が大きくなると、測距画像上における鏡面反射部分の写り具合が大きく異なってくるので、二つの測距画像間の対応画素の差分値の合計は大きくなる。極値点検出部705は、差分値の合計を偏光角度順に比較する。差分値の合計の符号が変化する点(即ち差分値の合計を結ぶ関数の第一微分値が0、又は0に近い点)を極値点として検出する。最適測距画像選択部706は、極値点に対応する偏光角度で撮像した測距画像データを鏡面反射の影響は最も少ない測距画像データ(最適測距画像データ)として選択する。
【0032】
<極値点による最適測距画像選択方法のイメージ図>
図8は、本実施の形態における最適測距画像データの選択方法の概念図である。
【0033】
測距光学ユニットを用いて取得した画像には、鏡面反射部分が存在する場合、画像上に鏡面反射部分は高い輝度で現れる。偏光フィルタ装着すると、偏光フィルタの装着角度により高い輝度部分が変化する。偏光フィルタの装着角度を異なる全ての画像に対して、高い輝度部分が一番少ない画像を検出する。その画像を撮影した偏光フィルタの装着角度が鏡面反射を抑える効果がいいと見なす。
【0034】
図8(a)は、偏光角度の異なる複数の光学ユニットで取得した画像データが示す画像a,b,c,d,eを示している。画像a,b,c,d,eは、異なる偏光角度(0度、α度、2α度、3α度、4α度)を有する偏光フィルタを介して得られる画像データに対応している。図8(b)は、画像b、c、d、eそれぞれに対する基準画像aとの差分値の合計を縦軸とする図である。実施の形態1における差分値の合計は、二画像の対応画素の差分値の合計とする。横軸は、偏光フィルタの偏光角度に対応する。適切な偏光角度を有する偏光フィルタを介して取得される画像データが示す画像においては、画像上の鏡面反射成分は抑えられている。図8(a)からも明らかなように、差分値の合計が単純増加から単純減少に変化する点(極値点)が最適な偏光角度となる。詳しい計算方法は図9のフローチャートで説明する。
【0035】
<最適測距画像選択のフローチャート>
図9は、本実施の形態の最適測距画像データの選択方法を示すフローチャートである。ステップs901は画像カウントを初期化するステップである。全ての偏光角度に対して、ステップs902からステップs910までの処理を繰り返す。本実施の形態では、一つの偏光角度につき測距画像データは2つである。よって、偏光角度がN個(N種類)ある場合は、測距画像データは2N枚となる。本実施の形態では、測距画像データの組(2枚)の組から1枚のみを使ってステップs902からステップs910までの処理を繰り返す。
【0036】
入力される測距画像データのカウントは0番からN−1番までとする。本実施の形態では、0番目の測距画像データは偏光角度(0)で示す。ステップs903は偏光角度(0)の画像データを入力するステップである。ステップs904は偏光角度(i)の画像データを入力するステップである。iは自然数である。ステップs905は測距画像データの画素数をカウントするカウンタmを初期化するステップである。ステップs906からステップs909までは測距画像中のすべての画素について差分値を取得するループである。ステップs907は、カウンタmの位置の偏光角度(0)と偏光角度(i)との差分値の和を計算し、積算値E(i)に加えるステップである。なお、本実施の形態では、符号による影響を排除するため差分値の二乗和を積算値E(i)に加える。
【0037】
ステップs908はカウンタmを一つ増やすステップである。ステップs909を終了すると、積算値E(i)は、偏光角度(0)と偏光角度(i)の差分値の和(二乗和)となる。
【0038】
ステップs911は、k、Maxの値を初期化するステップである。Maxは極値点の値を記録する変数である。kは偏光角度をカウントする変数である。ステップs912からステップs917の処理は極値点を特定する計算のループである。ステップs913は、(1)k番目の差分値の合計とk−1の差分値の合計との差と(2)k番目の差分値の合計とk+1の差分値の合計との差、を掛け算するステップである。掛け算の結果が0と比べて大きい場合、k−1,k,k+1の三点は単純増加または単純減少となり、ステップs914に進む。掛け算の結果が0又は0と比べて小さい場合、kは極値点となり、s916に進む。ステップs914でk−1,k,k+1の三点の変化量の絶対値とMaxとを比較する。絶対値がMaxより大きい場合、ステップs915に進み、Maxの値を更新する。Maxより小さい場合、Maxの値を更新することなく、ステップs916に進む。ステップs917で全ての偏光角度について処理が終わると、極値点の最大値に対応する偏光角度kが出力される。ステップs918は、極値点の最大値に対応する偏光角度kに対応する測距画像データが特定されるステップである。この特定された測距画像データが鏡面反射の影響が最も少ない最適測距画像データとなる。なお、極値点を取得する方法は上記方法に限らないことは言うまでもない。
【0039】
以上の通り、本実施の形態によれば、複数の光学ユニットを有する撮像装置は、少なくとも一部の光学ユニットに対して偏光フィルタを有する。これにより、鏡面反射の影響の少ない測距画像データを取得することができ、より高精度に距離推定等の画像処理を実現することができる。
【0040】
<本実施の形態の変形例>
・本実施の形態では、複数の光学ユニット(測距光学ユニットと撮像光学ユニット)を有する撮像装置について説明したが、撮像モジュールであっても良い。この撮像モジュールは操作部205や外部メモリ制御部211等を有してなくても良い。
・本実施の形態では、撮像光学ユニットには偏光フィルタを取り付けないこととした。しかしながら、偏光フィルタを装着した撮像光学ユニットにより撮像画像データを取得しても良い。この場合、鏡面反射の影響が低減された撮像画像データに対して画像合成処理が行われることとなる。
・本実施の形態では、画像処理の例として距離推定の後に撮像画像データを合成するとしたが、これに限らない。例えば、距離推定後に超解像処理を行ったり、任意のフォーカス距離を設定することによる暈け味付加処理等を行っても良い。
・本実施の形態では、偏光角度は固定としたが、偏光角度をユーザが任意に設定できる機構を備えても良い。ユーザは写り込み具合を確認しながら、写り込みが最も抑制される偏光角度を設定する。こうすることにより、本実施の形態では無駄に撮像していた測距画像データ(偏光角度が最適でない測距画像データ)の数を削減することが可能となる。また、アクチュエータ等により偏光角度を自動的に調整するようにしても良い。
・本実施の形態では二つの測距画像ペアに基づいて距離推定を行うとしたが、三以上の測距画像ペアを用いて距離推定を行っても良い。測距光学ユニットの数が限られている場合、測距画像の数を増やせば増やすほど、距離推定の精度は向上するが、一方で、偏光角度の種類の数は減る。
・本実施の形態では、図6の画像処理を撮像装置内で行うとしたが、これに限らない。例えば、画像処理部213の各処理を撮像装置とは異なる画像処理装置で行っても良い。
【0041】
[実施の形態2]
<最適測距画像選択部のブロック図>
図10は、本実施の形態の最適測距画像選択部505を示すブロック図である。測距画像データ群は入力端子1001から測距画像データ取得部1003に入力される。相対移動量計算部は、偏光角度を共通とする測距画像データ間の相対移動量を計算する。鏡面反射の領域は平坦であるため、ブロックマッチングをして相対移動量を計算する際に、無効ブロック(無効画素により構成されるブロック)として判断される。無効画素数カウント部1005で無効画素数をカウントする。最適測距画像特定部1006は、全ての偏光角度における無効画素数をカウントした結果を用いて、最も無効画素数が少ない画像を最適測距画像データとして特定する。特定された最適測距画像データを出力端子1007から出力する。
【0042】
<相対移動量の算出>
図11は、画像間の相対移動量を求める方法を説明するためのフローチャートである。ここでは、ブロック毎に動きベクトルを求め、そこから画面全体の動き量をアフィンパラメータとして求める方法について説明する。ブロック毎の動きベクトルを求める際にその前処理としてステップs1101の有効ブロック判定を行う。これは正しい動きベクトルが求まらない可能性のあるブロックを除外する処理である。詳細は後述する。ステップs1102では、ブロックの動きベクトルを算出する。ここでは一般的なブロックマッチング方法について説明する。ブロックマッチング法では、マッチングの評価値としてブロック内の画素間の差分二乗和もしくは差分絶対値和を用いる。ベクトルを求める対象ブロックを基準画像のサーチ範囲内で順次動かしなら評価値を求めていく。サーチ範囲内で求めた全ての評価値の中から最小の評価値もつ位置が対称ブロックと最も相関の高い位置であり、その移動量が動きベクトルとなる。サーチ範囲を1画素ずつ求めていく方法はフルサーチと呼ばれている。これに対し、サーチ範囲を間引きながら最小の評価値を求め、次にその近傍に対して細かくサーチする方法は、ステップサーチと呼ばれている。ステップサーチは高速に動きベクトルを求める方法としてよく知られている。次にステップs1104にて、有効動きベクトル判定を行う。これは、求めた動きベクトルのうち、算出結果が正しくないと判断されるものを除外する処理である。詳細は後述する。ステップs1103で、終了判定を行い、すべてのブロックの処理が終わると、ステップs1105にて、有効な動きベクトルから、アフィンパラメータの検出を行う。
【0043】
次に、アフィンパラメータ検出の詳細を説明する。対象ブロックの中心座標が、(x,y)であり、動きベクトルの算出結果から基準画像におけるブロックの中心座標が(x’,y’)に移動したとすると、これらの関係は、式(1)のように表すことができる。
【0044】
【数1】
【0045】
ここで、3×3の行列がアフィン変換行列である。行列の各要素がアフィンパラメータであり、a=1,b=0,d=0,e=1のとき、この変換は平行移動となり、cが水平方向の移動量、fが垂直方向の移動量となる。また、回転角θでの回転移動は、a=cosθ,b=−sinθ,d=sinθ,e=cosθで表すことができる。式(2)は一般化した行列の形式で数式2のように表現することができる。
x’=A・x (2)
ここでXとX’は1×3の行列、Aは3×3の行列である。有効な動きベクトルがn個であった場合、対象画像の座標値は、式(3)のようにn×3の行列で表現できる。
x=(x1 x2 ・・・ xn) (3)
同様に、移動後の座標値も式(4)のようにn×3の行列で表現できる。
x’=(x’1 x’2 ・・・ x’n) (4)
よって、n個の動きベクトルに対しては、数(5)のような表現となる。
X’=A・X (5)
すなわち、式(5)におけるアフィン行列Aを求めれば、それが画面全体の位置ずれ量になる。式(5)を変形すると、アフィン行列は式(6)のように求まる。
A=X’・XT・(X・X)T−1 (6)
この方式では、ブロックマッチングによりブロック間の相対移動量を求めようとする場合、ブロック内の画像が何らかの特徴量を持っている必要がある。平坦でほとんど直流成分しか含んでいないブロックでは正しい動きベクトルを求めることはできない。逆に水平方向や垂直方向にエッジを含んでいると、マッチングがとりやすくなると考えられる。
【0046】
図12は、このような平坦部のブロックを除外する一手法である。ここでは1つのブロックに対する処理で説明する。まずステップs1201で、ブロック内にある水平方向の1つのラインに対し、最大値と最小値の差分値を算出する。例えば、ブロックのサイズが50×50の画素で構成されているとすると、ブロック内における水平方向の50の画素から最大値と最小値を求め、その差分値を算出する。これを水平ライン数分、すなわち50回繰り返す。そして、ステップs1203で50の差分値の中から最大の差分値を求める。ステップs1204で、あらかじめ設定したTxと最大差分値の比較を行う。最大差分値が閾値Txよりも小さければ、水平方向には特徴量を持たないブロックであるとみなし、ステップs1205にて、無効ブロックとする。水平方向に特徴量を持つとみなせる場合は、垂直方向で同様の検証を行う。まず、ステップs1206で、ブロック内にある垂直方向の1つのラインに対し、最大値と最小値の差分値を算出する。つまりブロック内における垂直方向の50の画素から最大値と最小値を求め、その差分値を算出する。これを垂直ライン数分、すなわち50回繰り返す。そして、ステップs1208で50の差分値の中から最大の差分値を求める。ステップs1209で、あらかじめ設定したTyと最大差分値の比較を行う。最大差分値が閾値Tyよりも小さければ、垂直方向には特徴量を持たないブロックであるとみなし、ステップs1205にて、無効ブロックとする。水平・垂直両方向に特徴を持つブロックならば、正確なブロックマッチングが行われることが期待できるので、ステップs1210にて、有効ブロックと判定する。
【0047】
次に、有効動きベクトル判定方法を図13のフローチャートを用いて説明する。まずは、ステップs1301にて動きベクトルを入力し、ステップs1302にて、その発生頻度を算出する。ステップs1303にて、全ての動きベクトルの発生頻度が求まるまでこの処理を繰り返し、終了するとステップs1304にて、最大発生頻度の動きベクトルを求める。次に、ステップs1305にて、再度動きベクトルを入力し、ステップs1306で、この動きベクトルが最大発生頻度の動きベクトル、もしくはその近傍の動きベクトルであるかどうかの判定を行う。画面全体のぶれが、シフトのみである場合、各ブロックの動きベクトルは、最大発生頻度の動きベクトルにほぼ一致するはずであり、ロールぶれを伴う場合は、最大発生頻度の動きベクトルの近傍に多くの動きベクトルが発生すると考えられる。したがって、これらの値に含まれる動きベクトルは、ステップs1307にて、有効動きベクトルと判定し、これらの値から外れている動きベクトルは、ステップs1308にて無効動きベクトルと判定する。ステップs1309では、すべての動きベクトルに対して処理が終わったかどうかの判定を行い、終了までステップs1305からの処理を繰り返す。
【0048】
以上の通り、距離推定時に使う画像間位置合わせの無効ブロックの数(又は無効画素の数)をカウントすることにより、もっとも鏡面反射の影響の少ない画像群(最適測距画像データ)をみつけることができる。これは、鏡面反射領域においては画像間での対応関係が見つけにくいという特性を利用したものである。このようにして選択された最適測距画像データに基づいて、本実施の形態では、鏡面反射の影響を最も抑えた距離推定結果を得ることができる。
【0049】
[実施の形態3]
<最適測距画像選択部のブロック図>
図14は、本実施の形態の最適測距画像選択部505を示すブロック図である。測距画像データは入力端子1401から測距画像取得部1403に入力される。距離推定部1405は、測距画像データを用いて距離推定を行う。距離推定の結果を用いて、最適測距画像特定部1406は、最適測距画像データを特定する。出力端子1007は最適測距画像データを出力する。
【0050】
<ステレオ法による距離推定>
図15は、距離推定部1405によるステレオ距離推定法を示している。
【0051】
注目点1502は被写体1501に存在する。被写体表面は波の形になっている。ステレオ法を用いる二台のカメラは性能が同じカメラである。カメラは光学中心を通る光線で投影面への結像を実現する。図15では、1503、1504は左右カメラの光学中心である。1512、1513は左右カメラの投影面である。左の投影面中心を座標原点とする直交座標系は(u,v)である。光学中心と投影面座標原点と連接するラインは投影面に対して垂直に交わっており、その間の距離は焦点距離fである。右の投影面中心を座標原点とする直交座標系は(u’,v’)である。三次元空間の被写体1501の座標は(Xカメラ,Yカメラ,Zカメラ)は両カメラの光学中心と連接し、投影面との接点は左右ステレオ画像上の画素になる。図15には1506、1507は左右投影面との接点を示している。1506の座標は(ux,vy)である。1507の座標は(u’x,v’y)である。1511と1509は左右投影面上のライン1510、1508を拡大した画素配列である。両カメラの光学中心を連接したラインは基線と呼ばれ、bはその基線の長さである1505基線長である。被写体上の点1501(Xカメラ,Yカメラ,Zカメラ)は左のカメラ座標系を基準にしている。被写体1501(Xカメラ,Yカメラ,Zカメカメラ)の奥行きはZとする。Zカメラについて下記の式を用いてステレオ法により計算する。
【0052】
【数2】
【0053】
<距離による最適測距画像選択方法のイメージ図>
実物体より手前にあるガラスの上に起こった鏡面反射の部分の距離推定結果は実物体の距離より小さい。よって、異なる偏光角度を有する偏光フィルタを介して得られる測距画像から推定された距離のうち、最も大きな距離を推定する場合の偏光角度を選択する。この偏光角度により取得された測距画像が最適測距画像データとなる。
【0054】
図16は、最適測距画像データの選択方法のイメージ図である。図16(a)において、画像a,b,c,d,eはそれぞれ、偏光角度が0度、α度、2α度、3α度、4α度の場合に取得された画像を示している。図16(b)は、それぞれの偏光角度の場合に取得された被写体までの距離を示している。この場合、偏光角度が2α度である画像cが最も推定された距離が遠いことから、画像cが最適測距画像データとなる。
【0055】
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【特許請求の範囲】
【請求項1】
複数の光学ユニットを有する撮像モジュールであって、
前記複数の光学ユニットのうちの少なくとも一部の光学ユニットに対して偏光フィルタを備え、
前記偏光フィルタを備える光学ユニットにより得られる画像データに基づいて、被写体までの距離情報を推定することを特徴とする撮像モジュール。
【請求項2】
前記撮像モジュールは、少なくとも第一の偏光角度を有する偏光フィルタを備える第一の光学ユニットと第二の偏光角度を有する偏光フィルタを備える第二の光学ユニットを備え、
前記第一の偏光角度は、前記第二の偏光角度と異なることを特徴とする請求項1に記載の撮像モジュール。
【請求項3】
更に、偏光フィルタを備えない光学ユニットを有することを特徴とする請求項1又は2に記載の撮像モジュール。
【請求項4】
前記偏光フィルタを備える光学ユニットは、前記偏光フィルタを備えない光学ユニットよりも外部に配置されることを特徴とする請求項3に記載の撮像モジュール。
【請求項5】
前記請求項1乃至4の何れか1項に記載の撮像モジュールを有することを特徴とする撮像装置。
【請求項6】
偏光フィルタを備える光学ユニットを用いて撮像された複数の測距画像データを取得する取得手段と、
前記取得手段により取得された複数の測距画像データの中から、被写体までの距離を推定するための測距画像データを選択する選択手段と、
前記選択手段により選択された測距画像データに基づいて、被写体までの距離を推定する推定手段とを有することを特徴とする画像処理装置。
【請求項7】
前記選択手段は、前記複数の測距画像データ間の差分値に基づいて、被写体までの距離を推定するための測距画像データを選択することを特徴とする請求項6に記載の画像処理装置。
【請求項8】
前記選択手段は、前記複数の測距画像データに基づいて推定された被写体までの距離に基づいて、被写体までの距離を推定するための測距画像データを選択することを特徴とする請求項6に記載の画像処理装置。
【請求項9】
偏光フィルタを備える光学ユニットを用いて撮像された複数の測距画像データを取得する取得工程と、
前記取得工程で取得された複数の測距画像データの中から、被写体までの距離を推定するための測距画像データを選択する選択工程と、
前記選択工程で選択された測距画像データに基づいて、被写体までの距離を推定する推定工程とを有することを特徴とする画像処理方法。
【請求項1】
複数の光学ユニットを有する撮像モジュールであって、
前記複数の光学ユニットのうちの少なくとも一部の光学ユニットに対して偏光フィルタを備え、
前記偏光フィルタを備える光学ユニットにより得られる画像データに基づいて、被写体までの距離情報を推定することを特徴とする撮像モジュール。
【請求項2】
前記撮像モジュールは、少なくとも第一の偏光角度を有する偏光フィルタを備える第一の光学ユニットと第二の偏光角度を有する偏光フィルタを備える第二の光学ユニットを備え、
前記第一の偏光角度は、前記第二の偏光角度と異なることを特徴とする請求項1に記載の撮像モジュール。
【請求項3】
更に、偏光フィルタを備えない光学ユニットを有することを特徴とする請求項1又は2に記載の撮像モジュール。
【請求項4】
前記偏光フィルタを備える光学ユニットは、前記偏光フィルタを備えない光学ユニットよりも外部に配置されることを特徴とする請求項3に記載の撮像モジュール。
【請求項5】
前記請求項1乃至4の何れか1項に記載の撮像モジュールを有することを特徴とする撮像装置。
【請求項6】
偏光フィルタを備える光学ユニットを用いて撮像された複数の測距画像データを取得する取得手段と、
前記取得手段により取得された複数の測距画像データの中から、被写体までの距離を推定するための測距画像データを選択する選択手段と、
前記選択手段により選択された測距画像データに基づいて、被写体までの距離を推定する推定手段とを有することを特徴とする画像処理装置。
【請求項7】
前記選択手段は、前記複数の測距画像データ間の差分値に基づいて、被写体までの距離を推定するための測距画像データを選択することを特徴とする請求項6に記載の画像処理装置。
【請求項8】
前記選択手段は、前記複数の測距画像データに基づいて推定された被写体までの距離に基づいて、被写体までの距離を推定するための測距画像データを選択することを特徴とする請求項6に記載の画像処理装置。
【請求項9】
偏光フィルタを備える光学ユニットを用いて撮像された複数の測距画像データを取得する取得工程と、
前記取得工程で取得された複数の測距画像データの中から、被写体までの距離を推定するための測距画像データを選択する選択工程と、
前記選択工程で選択された測距画像データに基づいて、被写体までの距離を推定する推定工程とを有することを特徴とする画像処理方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【公開番号】特開2012−247356(P2012−247356A)
【公開日】平成24年12月13日(2012.12.13)
【国際特許分類】
【出願番号】特願2011−120563(P2011−120563)
【出願日】平成23年5月30日(2011.5.30)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成24年12月13日(2012.12.13)
【国際特許分類】
【出願日】平成23年5月30日(2011.5.30)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]