以下、実施の形態について図面を参照して説明する。
(第1実施形態)
まず、図1を参照して、第1実施形態に係る撮像装置を備える測距装置の構成を説明する。この測距装置1は、画像を撮像し、撮像された画像を用いて被写体の位置を実スケールで推定する。推定される被写体の位置は、撮像地点から被写体までの距離(奥行きとも称する)を少なくとも含み、例えば、三次元空間の座標として表される。
この測距装置1は、画像を撮像する撮像部11と、撮像された画像を処理する画像処理部12とを備える。測距装置1は、撮像部11と画像処理部12とを備える1つの装置として実現されてもよいし、撮像部11に相当する撮像装置と、画像処理部12に相当する画像処理装置とのような複数の装置で構成されるシステムとして実現されてもよい。あるいは、撮像装置11が画像処理部12をさらに備えていてもよい。撮像部11は、被写体の画像と当該被写体までの距離に関する情報とを一度の撮影で取得する機能を有する。撮像部11は、この機能により、例えば撮像時の被写体までの距離情報が符号化された画像を取得する。また、画像処理部12は、例えば、コンピュータ、または各種電子機器に内蔵される組み込みシステムとして実現され得る。画像処理部12は、撮像部11により撮像された1つ以上の画像を用いて、被写体の三次元情報(例えば、被写体の三次元座標、被写体までの距離等)を生成する機能を有している。
測距装置1はディスプレイ13をさらに備えていてもよい。画像処理部12はディスプレイ13に映像信号を送出し、ディスプレイ13はその映像信号に基づく画面画像を表示する。表示される画面画像には、撮像画像が含まれていてもよいし、撮像画像を処理することにより得られた様々な情報が含まれていてもよい。
図1に示すように、撮像部11は、フィルタユニット2とレンズユニット(例えばレンズ鏡筒)3とイメージセンサ41とを備える単眼カメラによって構成され得る。レンズユニット3の一端は、イメージセンサ41を備えるカメラ本体に対して着脱自在である。フィルタユニット2は、レンズユニット3の他端に対して着脱自在である。撮像部11は、イメージセンサ41を備えるカメラ本体にレンズユニット3の一端が直接的にまたは間接的に装着され、レンズユニット3の他端にフィルタユニット2が直接的にまたは間接的に取り付けられて構成されてもよい。
カメラ本体とレンズユニット3とは、機械的および光学的に結合する嵌合構造であるマウントを備え得る。例えば、カメラ本体側のマウント(レンズマウントとも称する)と、レンズユニット3側のマウント(ボディマウントとも称する)とが対応する形状を有している場合、レンズマウントとボディマウントとを結合することによりカメラ本体にレンズユニット3が装着される。マウントの装着形態には例えばねじ込み式(スクリューマウント)とバヨネット式とがあり、いずれの装着形態であってもよい。
また例えば、カメラ本体側のレンズマウントとレンズユニット3側のボディマウントとが対応する形状を有していない場合、これら形状を媒介するマウントアダプタを用いてカメラ本体にレンズユニット3の一端が間接的に装着される。つまり、カメラ本体にレンズユニット3の一端が間接的に装着されるとは、例えば、カメラ本体にマウントアダプタが装着され、このマウントアダプタにレンズユニット3の一端が取り付けられることを意味する。
また、レンズユニット3の他端にフィルタユニット2が間接的に取り付けられるとは、例えば、レンズユニット3の他端にフィルタユニット2とは別のフィルタが取り付けられ、その別のフィルタにフィルタユニット2が取り付けられることを意味する。
フィルタユニット2は、互いに異なる波長帯域の光(例えば互いに異なる色成分の光)を透過する複数のフィルタ領域を含む光学フィルタ21(以下、単にフィルタとも称する)を備える。複数の波長帯域の一部は重複していてもよい。フィルタ21は、例えば2色のカラーフィルタ領域である第1フィルタ領域211と第2フィルタ領域212とで構成される。例えば、第1フィルタ領域211は第1波長帯域の光を透過する。第2フィルタ領域212は第2波長帯域の光を透過する。第1波長帯域と第2波長帯域は共通の波長帯域を含む。
レンズユニット3は1つ以上のレンズ31を備える。
イメージセンサ41は、フィルタ21とレンズ31とを透過(通過)した光を受光し、受光した光を電気信号に変換(光電変換)する。イメージセンサ41には、例えばCCD(Charge Coupled Device)やCMOS(Complementary Metal Oxide Semiconductor)が用いられる。イメージセンサ41は、少なくとも二種類の撮像素子を含み、例えば、赤色(R)の光を受光する撮像素子を含む第1センサ411と、緑色(G)の光を受光する撮像素子を含む第2センサ412と、青色(B)の光を受光する撮像素子を含む第3センサ413とを備える。各撮像素子は、対応する波長帯域の光を受光し、受光した光を電気信号に変換する。この電気信号をA/D変換することによりカラー画像を生成することができる。以下では、画像のR成分、G成分、B成分である色成分画像(波長成分画像とも称する)を、それぞれR画像、G画像、B画像とも称する。なお、赤色、緑色、青色の撮像素子毎の電気信号を用いて、R画像、G画像、B画像をそれぞれ生成することもできる。つまり、撮像部11は、一度の撮像(ワンショット)で、カラー画像、R画像、G画像、およびB画像の少なくとも1つを生成することができる。
次いで図2はフィルタ21の構成の例を示す。フィルタ21は互いに異なる光の波長帯域(色成分)を透過する複数のフィルタ領域を有し、2つ以上のフィルタ領域は撮像装置11(レンズ31)の光学中心213に対して非点対称な形状である。フィルタ21は、例えば二色のカラーフィルタ領域である第1フィルタ領域211と第2フィルタ領域212とで構成される。フィルタ21の中心は撮像装置11の光学中心213と一致している。第1フィルタ領域211および第2フィルタ領域212はそれぞれ、光学中心213に対して非点対称である形状を有している。また例えば、2つのフィルタ領域211,212は重複せず、且つ2つのフィルタ領域211,212によってフィルタ21の全領域を構成している。
図2に示す例では、第1フィルタ領域211および第2フィルタ領域212はそれぞれ、円形のフィルタ21が光学中心213を通る線分(境界線とも称する)214で分割された半円の形状を有している。第1フィルタ領域211はイメージセンサ41で受光される光の色(例えば赤色(R)、緑色(G)、および青色(B))の内、第1の組み合わせの複数色(例えば赤色および緑色)を透過する。第2フィルタ領域212はイメージセンサ41で受光される光の色の内、第1の組み合わせとは異なる第2の組み合わせの複数色(例えば青色および緑色)を透過する。したがって、第1フィルタ領域211と第2フィルタ領域212とからなるフィルタ21の全面は共通の光の色(例えば緑色)を透過する。第1フィルタ領域211は、例えばイエロー(Y)のフィルタ領域であり、第2フィルタ領域212は、例えばシアン(C)のフィルタ領域である。なお、第1フィルタ領域211がマゼンタ(M)のフィルタ領域であって、第2フィルタ領域212がイエロー(Y)のフィルタ領域であってもよい。さらに、第1フィルタ領域211がシアン(C)のフィルタ領域であって、第2フィルタ領域212がマゼンタ(M)のフィルタ領域であってもよい。
各カラーフィルタが透過する波長帯域は異なる。1つのフィルタ領域が透過する光の波長帯域の一部と、別の1つのカラーフィルタ領域が透過する光の波長帯域の一部は、例えば重複する。1つのカラーフィルタ領域が透過する光の波長帯域は、例えば別の1つのカラーフィルタ領域が透過する光の波長帯域を含んでもよい。
なお、第1フィルタ領域211と第2フィルタ領域212とは、任意の波長帯域の透過率を変更するフィルタ、任意方向の偏光光を通過させる偏光フィルタ、または任意の波長帯域の集光パワーを変更するマイクロレンズであってもよい。例えば、任意の波長帯域の透過率を変更するフィルタは、原色フィルタ(RGB)、補色フィルタ(CMY)、色補正フィルタ(CC−RGB/CMY)、赤外線・紫外線カットフィルタ、NDフィルタ、または遮蔽板であってもよい。第1フィルタ領域211や第2フィルタ領域212がマイクロレンズである場合は、レンズにより光線の集光の分布に偏りが生じることでぼけの形状が変化する。
以下では説明を分かりやすくするために、図2に示すフィルタ21において、第1フィルタ領域211がイエロー(Y)のフィルタ領域であり、第2フィルタ領域212がシアン(C)のフィルタ領域である場合を主に例示する。
図2に示したフィルタ21が、例えばカメラの開口部に配置されることにより、開口部が2色で二分割された構造開口であるカラー開口が構成される。このカラー開口を透過する光線に基づいて、イメージセンサ41は画像を生成する。イメージセンサ41に入射する光の光路上において、フィルタ21とイメージセンサ41との間にレンズ31が配置されてもよい。イメージセンサ41に入射する光の光路上において、レンズ31とイメージセンサ41との間にフィルタ21が配置されてもよい。レンズ31が複数設けられる場合、フィルタ21は2つのレンズ31の間に配置されてもよい。
第2センサ412に対応する波長帯域の光は、イエローの第1フィルタ領域211とシアンの第2フィルタ領域212の両方を透過する。第1センサ411に対応する波長帯域の光は、イエローの第1フィルタ領域211を透過し、シアンの第2フィルタ領域212を透過しない。第3センサ413に対応する波長帯域の光は、シアンの第2フィルタ領域212を透過し、イエローの第1フィルタ領域211を透過しない。
なお、ある波長帯域の光がフィルタまたはフィルタ領域を透過するとは、フィルタまたはフィルタ領域が高い透過率でその波長帯域の光を透過し、そのフィルタまたはフィルタ領域による当該波長帯域の光の減衰(すなわち、光量の低下)が極めて小さいことを意味する。また、ある波長帯域の光がフィルタまたはフィルタ領域を透過しないとは、光がフィルタまたはフィルタ領域に遮蔽されることであり、例えば、フィルタまたはフィルタ領域が低い透過率でその波長帯域の光を透過し、そのフィルタまたはフィルタ領域による当該波長帯域の光の減衰が極めて大きいことを意味する。例えばフィルタまたはフィルタ領域は、ある波長帯域の光を吸収することにより光を減衰させる。
図3は、第1フィルタ領域211および第2フィルタ領域212の透過率特性の例を示す。なお、可視光の波長帯域のうち700nmより長い波長の光に対する透過率は図示を省略してあるが、その透過率は700nmの場合に近いものである。図3に示すイエローの第1フィルタ領域211の透過率特性215では、波長帯域が620nmから750nm程度のR画像に対応する光と、波長帯域が495nmから570nm程度のG画像に対応する光とが高い透過率で透過され、波長帯域が450nmから495nm程度のB画像に対応する光がほとんど透過されていない。また、シアンの第2フィルタ領域212の透過率特性216では、B画像およびG画像に対応する波長帯域の光が高い透過率で透過され、R画像に対応する波長帯域の光がほとんど透過されていない。
したがって、R画像(第1センサ411)に対応する波長帯域の光はイエローの第1フィルタ領域211のみを透過し、B画像(第3センサ413)に対応する波長帯域の光はシアンの第2フィルタ領域212のみを透過する。G画像(第2センサ412)に対応する波長帯域の光は、第1フィルタ領域211と第2フィルタ領域212を透過する。
このようなR画像、B画像およびG画像上のぼけの形状は被写体までの距離dに応じて、より詳細には距離dと合焦距離dfとの差分に応じて変化する。合焦距離dfは、撮像位置から、画像上にぼけが発生しない(すなわちピントが合う)合焦位置までの距離である。また、各フィルタ領域211,212が光学中心213に対して非点対称な形状であるので、R画像上およびB画像上のぼけの形状は、被写体が合焦距離dfよりも手前にあるか、それとも奥にあるかによって異なり、また偏っている。R画像上およびB画像上のぼけの偏りの方向は、撮像位置から見て、被写体が合焦距離dfよりも手前にあるか、それとも奥にあるかによってそれぞれ反転する。
図4を参照して、フィルタ21を備える撮像部11における光線変化と撮像画像上のぼけ形状との関係について説明する。
被写体210が合焦距離dfよりも奥にある場合(d>df)、イメージセンサ41によって撮像された画像にはぼけが発生する。この画像のぼけの形状を示すぼけ関数(PSF:Point Spread Function)は、R画像、G画像およびB画像でそれぞれ異なっている。例えば、R画像のぼけ関数201Rは左側に偏ったぼけの形状を示し、G画像のぼけ関数201Gは偏りのないぼけの形状を示し、B画像のぼけ関数201Bは右側に偏ったぼけの形状を示している。
また、被写体210が合焦距離dfにある場合(d=df)、イメージセンサ41によって撮像された画像にはほとんどぼけが発生しない。この画像のぼけの形状を示すぼけ関数は、R画像、G画像およびB画像でほぼ同じである。すなわち、R画像のぼけ関数201R、G画像のぼけ関数201G、およびB画像のぼけ関数201Bは、偏りのないぼけの形状を示している。
また、被写体210が合焦距離dfよりも手前にある場合(d<df)、イメージセンサ41によって撮像された画像にはぼけが発生する。この画像のぼけの形状を示すぼけ関数は、R画像、G画像およびB画像でそれぞれ異なっている。すなわち、R画像のぼけ関数201Rは右側に偏ったぼけの形状を示し、G画像のぼけ関数201Gは偏りのないぼけの形状を示し、B画像のぼけ関数201Bは左側に偏ったぼけの形状を示している。
このように、被写体210が合焦距離dfよりも手前または奥にある場合、イエローの第1フィルタ領域211を透過した光線に基づくR画像のぼけ関数201R,203Rは非対称であり、またシアンの第2フィルタ領域212を透過した光線に基づくB画像のぼけ関数201B,203Bも非対称である。そして、そのR画像のぼけ関数201R,203Rは、B画像のぼけ関数201B,203Bとは異なっている。
図5はこのような画像上のぼけを利用して被写体210までの距離を算出(推定)する方法を示す。図5に示す例では、フィルタ21はイエローの第1フィルタ領域211とシアンの第2フィルタ領域212とによって構成されている。そのため、R画像に対応する波長帯域の光が第1フィルタ領域211に対応する部分51Rを通過し、G画像に対応する波長帯域の光が第1フィルタ領域211および第2フィルタ領域212に対応する部分51Gを通過し、B画像に対応する波長帯域の光が第2フィルタ領域212に対応する部分51Bを通過する。
このようなフィルタ21を用いて撮像された画像上にぼけが生じた場合、R画像、G画像およびB画像上のぼけはそれぞれ異なる形状になる。図5に示すように、G画像のぼけ関数52Gは左右対称であるぼけの形状を表している。また、R画像のぼけ関数52RおよびB画像のぼけ関数52Bは非点対称であるぼけの形状を表し、ぼけの偏りはそれぞれ異なっている。
R画像のぼけ関数52RおよびB画像のぼけ関数52Bには、R画像およびB画像上の非点対称なぼけを左右対称なぼけに補正するためのぼけ補正フィルタ53,54が適用され、ぼけ補正フィルタ53、54が適用された後のぼけ関数がG画像のぼけ関数52Gと一致するかどうかが判定される。ぼけ補正フィルタ53,54は複数用意されており、複数のぼけ補正フィルタ53、54のそれぞれは、被写体との複数の距離にそれぞれ対応する。あるぼけ補正フィルタ53,54が適用されたぼけ関数が、G画像のぼけ関数52Gと一致した場合には、そのぼけ補正フィルタ53,54に対応する距離が、撮影された被写体210までの距離に決定される。
このぼけ関数が一致しているかどうかの判定には、例えば、ぼけ補正フィルタが適用されたR画像またはB画像と、G画像との相関が用いられる。したがって例えば、複数のぼけ補正フィルタから、ぼけ補正フィルタが適用されたぼけ関数とG画像のぼけ関数との相関がより高くなるぼけ補正フィルタを探索することで、画像上の各画素に写る被写体までの距離が推定される。
ぼけ補正フィルタが適用されたR画像またはB画像と、G画像との相関を示す相関値には、例えば、NCC(Normalized Cross−Correlation)、ZNCC(Zero−mean Normalized Cross−Correlation)、Color Alignment Measure、等が用いられ得る。
また、あるぼけ補正フィルタ53,54が適用されたぼけ関数55R,55Bが、G画像のぼけ関数52Gと一致しているかどうかの判定に、ぼけ補正フィルタが適用されたR画像またはB画像とG画像との相違度が用いられてもよい。この相違度がより低くなる距離を求めることで、被写体までの距離を算出することができる。相違度には、例えば、SSD(Sum of Squared Difference)、SAD(Sum of Absolute Difference)、等が用いられ得る。
なお、ぼけ補正フィルタ53が適用されたR画像のぼけ関数が、ぼけ補正フィルタ54が適用されたB画像のぼけ関数と一致するかどうかが判定されてもよい。これらぼけ補正フィルタ53,54は同一の距離に対応する。ぼけ補正フィルタ53が適用されたR画像のぼけ関数が、ぼけ補正フィルタ54が適用されたB画像のぼけ関数と一致した場合には、それらぼけ補正フィルタ53,54に対応する距離が、撮影された被写体210までの距離に決定される。
このように、2つの色成分画像上のぼけ(例えば、ぼけ関数、ぼけ形状)の相対的な関係が、被写体までの距離と相関を持つので、画像処理部12はこの相関関係を予めキャリブレーションして保持することもできる。キャリブレーションにより、一方の色成分画像上のぼけを他方の色成分画像上のぼけに補正するためのぼけ補正量と、被写体までの距離との対応を示すルックアップテーブル(LUT)やモデルが作成される。例えば、R画像またはB画像のぼけ関数をG画像のぼけ関数と一致させるために用いられるぼけ補正フィルタ53,54と被写体までの距離との対応を示すLUTまたはモデルが作成される。なお、ぼけ補正量の代わりに、一方の色成分画像上のぼけと他方の色成分画像上のぼけとの関係を示す、例えばぼけの大きさのような他の値(パラメータ)が用いられてもよい。このLUTまたはモデルを参照することにより、ぼけ補正量を被写体までの距離に変換することができる。
図6のフローチャートは、画像処理部12によって実行される測距処理の手順の例を示す。測距処理では、撮像部11により取得された画像を用いて、撮像された時点の撮像部11の位置から画像に写っている被写体までの距離が算出される。
まず、画像処理部12は、撮像部11から画像が取得されたか否かを判定する(ステップS11)。画像処理部12は、例えば撮像部11によって新たな画像が生成された場合に、撮像部11から画像が取得されたと判断する。また、画像処理部12は、撮像部11によって生成され、ストレージ等に格納された1つ以上の画像から、1つの画像を取得してもよい。撮像部11から画像が取得されていない場合(ステップS11のNO)、ステップS11に戻り、撮像部11から画像が取得されたか否かが再度判定される。
撮像部11から画像が取得された場合(ステップS11のYES)、画像処理部12は取得された画像内の注目画素を設定する(ステップS12)。注目画素は、例えば画像の左上端の画素から右下端の画素までラスタ走査の順に設定され得る。また、画像上のエッジに対応する画素が注目画素として設定されてもよい。
次いで画像処理部12は、あるぼけ補正量に対応するぼけ補正フィルタを取得する(ステップS13)。画像処理部12は、例えば予め用意された複数のぼけ補正量にそれぞれ対応する複数のぼけ補正フィルタ53,54から、1つのぼけ補正フィルタを取得する。画像処理部12は、取得されたぼけ補正フィルタをR画像またはB画像内の注目画素を含む第1領域に適用することにより、補正された第1領域を生成する(ステップS14)。第1領域は、例えば注目画素を中心とする特定のサイズの領域である。
そして画像処理部12は、補正された第1領域と、G画像内の注目画素を含む第2領域とが一致したか否かを判定する(ステップS15)。第2領域は、例えば注目画素を中心とする第1領域と同一のサイズを有する領域である。なお、画像処理部12は、補正された第1領域と第2領域とが一致したか否かを判定する代わりに、補正された第1領域と第2領域との相関値が第1閾値を超えているか否かを、あるいは補正された第1領域と第2領域との相違度が第2閾値未満であるか否かを判定してもよい。補正された第1領域と第2領域とが一致していない場合(ステップS15のNO)、ステップS13に戻り、別のぼけ補正フィルタを用いた処理が行われる。
補正された第1領域と第2領域とが一致した場合(ステップS15のYES)、画像処理部12は、適用されたぼけ補正フィルタに対応するぼけ補正量に基づいて、被写体までの距離を算出する(ステップS16)。この算出には、上述したように、ぼけ補正量と被写体までの距離との対応を示すLUTやモデルが用いられてもよい。
次いで画像処理部12は、取得された画像内に、被写体までの距離を算出すべき別の画素があるか否かを判定する(ステップS17)。被写体までの距離を算出すべき別の画素がある場合(ステップS17のYES)、ステップS12に戻り、その別の画素に写っている被写体までの距離を算出するための処理が行われる。
被写体までの距離を算出すべき別の画素がない場合(ステップS17のNO)、処理を終了する。
以上により、画像処理部12は、撮像部11によって取得された画像を用いて、画像内の各画素に写っている被写体までの距離を算出することができる。
ところで、フィルタ21は、被写体までの距離を精度良く算出するために、理想的にはレンズユニット3内の開口部に設けられることが望ましい。図7に示すように、レンズユニット3内の開口部3Aの位置は、レンズユニット3内に配置される1つ以上のレンズ311,312,313の各々の光学特性、レンズ311,312,313の配置等に基づく光学設計によって決定される。開口部3Aは、いずれか2つのレンズ311,312,313の間、レンズユニット3の第1端部3E−1とレンズ311(すなわち第1端部3E−1に最も近いレンズ)との間、またはレンズユニット3の第2端部3E−2とレンズ313(すなわち第2端部3E−2に最も近いレンズ)との間に位置する。
フィルタ21が開口部3Aに設けられたレンズユニットを利用するには、例えば、開口部3Aにフィルタ21が組み込まれた特殊なレンズユニットを製造するか、あるいは市販のレンズユニットを分解し、開口部3Aにフィルタ21を挿入し、レンズユニットを組み立てなおして改造する必要がある。このような方法は汎用性に乏しく、一般的なユーザが、開口部3Aにフィルタ21が設けられたレンズユニットを利用することは困難である。
また、被写体のエッジがフィルタ21内の第1フィルタ領域211と第2フィルタ領域212との境界線214と直交する場合(例えば撮像されるシーンが境界線214に直交するエッジを多く含む場合)、被写体までの距離に応じたぼけを含む画像が得られず、画像から被写体までの距離を算出する測距性能が劣化する。このような場合には、被写体のエッジと、第1フィルタ領域211と第2フィルタ領域212との境界線214とが直交しないように、フィルタ21の向きを変更すること(すなわちフィルタ21を回転させること)により、被写体までの距離を精度良く算出可能な画像を取得できる。
さらに、開口部3Aに配置されたフィルタ21の向きは振動等で意図しない向きにずれることがある。しかし、レンズユニット3内部の開口部3Aに配置されたフィルタ21の向きを変更することは、ユーザにとって非常に困難な作業である。
そのため本実施形態では、フィルタ21がレンズユニット3の外部に設けられる。フィルタ21は、開口部3Aから距離D1だけ離間した、レンズユニット3の外部の位置に設けられる。フィルタ21から開口部3Aまでの距離D1は、フィルタ21を含むフィルタユニット2が取り付けられるレンズユニット3の第1端部3E−1から開口部3Aまでの距離D2よりも長い。これにより、種々のレンズユニット3(あるいはレンズユニット3を備えるカメラ)に対して、レンズユニット3の構造を変更することなく、フィルタ21を備えるフィルタユニット2を容易に取り付けられる。またユーザが容易に操作できるレンズユニット3の外部にフィルタユニット2が設けられるので、被写体上のエッジ等に応じてフィルタ21の向きも容易に調節できる。
図8は本実施形態に係る撮像装置11の構造の例を示す。撮像装置11は、フィルタ21を備えるフィルタユニット2と、1つ以上のレンズ31を備えるレンズユニット3と、イメージセンサ41を備えるカメラ本体4とから構成される。フィルタユニット2およびレンズユニット3は、例えば円筒形状を有する。撮像装置11は、カメラ本体4に画像処理部12が設けられた測距装置1であってもよい。また、カメラ本体4にディスプレイ13が組み込まれていてもよい。以下では説明を分かりやすくするために、撮像装置11において、カメラ本体4からフィルタユニット2への向きを前方と称し、フィルタユニット2からカメラ本体4への向きを後方と称する。
カメラ本体4の正面には、レンズユニット3を装着するためのレンズマウント42が設けられている。レンズマウント42には、レンズユニット3の第2端部3E−2に設けられるボディマウント(図示せず)が結合される。これによりレンズユニット3がカメラ本体4に装着される。ここではレンズユニット3が交換レンズである例を示したが、レンズユニット3は、コンパクトデジタルカメラ、スマートフォンまたはタブレットPCに設けられるカメラ等のように、カメラ本体4に固定され一体化されていてもよい。
レンズユニット3の第1端部3E−1には、フィルタユニット2を取り付けるためのネジ部32が設けられている。ネジ部32は、一般的なレンズユニット3(交換レンズ)において、レンズ31を保護するためのプロテクタや各種のフィルタ(例えばUVカットフィルタ、偏光フィルタ等)を取り付けるために設けられているものであってもよい。
フィルタユニット2はフィルタ21を保持するフィルタ枠22と、フィルタ枠22に連結する取り付け部23とを備える。フィルタ枠22は、例えば円形のフィルタ21を保持するために円筒形状を有する。取り付け部23はフィルタ枠22の少なくとも一部を囲み、支持する円筒形状を有する。
また取り付け部23は、レンズユニット3の第1端部3E−1に着脱可能に取り付けられる。取り付け部23は、フィルタユニット2をレンズユニット3の第1端部3E−1に取り付けるためのネジ部231を備える。ネジ部231をレンズユニット3のネジ部32に螺合させることにより、フィルタユニット2がレンズユニット3に取り付けられる。この取り付けにより、取り付け部23がレンズユニット3に対して固定される。
なお、レンズユニット3に取り付けられた別のフィルタ等に設けられるネジ部32に、フィルタユニット2のネジ部231が螺合されてもよい。すなわちその別のフィルタ等を挟んで、フィルタユニット2がレンズユニット3に取り付けられてもよい。フィルタユニット2のネジ部231は、対応するネジ部32を有する他の円筒形状の対象への取り付けを可能とするものである。
フィルタ枠22は光軸15を中心として(すなわち光学中心213に対して)回転自在である構造を有する。つまりフィルタ枠22は、光軸15を中心として回転することによりフィルタ21の向き(すなわち回転方向の角度)を調節できる調節機構を有する。したがってユーザは、フィルタ枠22を回転させる操作を行うことで、フィルタ21の向きを被写体上のエッジ等に応じて適切に変更できる。フィルタ21の向きは、例えばフィルタ21内の第1フィルタ領域211と第2フィルタ領域212との境界線214の方向で特定される。以下ではこの境界線214の方向をフィルタ21の向きとも称する。
また図9に示すように、フィルタ枠22は取り付け部23の側面を貫通するネジ232を固定部として用いて、取り付け部23に対して固定される。ネジ232が締め付けられた場合、フィルタ枠22が取り付け部23に対して固定される。一方、ネジ232が緩められた場合、フィルタ枠22は回転自在になる。ネジ232には、例えばネジ頭部がネジ部と同じ大きさである止めネジが用いられる。
あるいは図10に示すように、フィルタ枠22はロックリング25と、取り付け部23に設けられる締め付け部241,243とを固定部として用いて、取り付け部23に対して固定されてもよい。2つの締め付け部241,243は、例えばフィルタ枠22を上方と下方から挟み込むように設けられる。締め付け部241の基端部241Aは取り付け部23の上部に支持(固定)され、基端部241Aからフィルタ枠22に接触する先端部241Bに亘って連続的に延出されている。また、締め付け部243の基端部243Aは取り付け部23の下部に支持(固定)され、基端部243Aからフィルタ枠22に接触する先端部243Bに亘って連続的に延出されている。
各先端部241B,243Bには、光軸15に対して外側に、ネジ状の刻みを有するテーパ242,244が設けられている。同様のネジ状の刻みを内側に有するロックリング25がテーパ242,244のネジ状の刻みに対してねじ込まれることにより、フィルタ枠22が取り付け部23に対して固定される。一方、ロックリング25が緩められた場合、フィルタ枠22は回転自在になる。
フィルタ枠22を取り付け部23に対して固定するための機構(固定部)は、上述した構成に限られず、例えばフィルタ枠22と取り付け部23との間の摩擦力で簡易的に固定される機構であってもよいし、あるいはフィルタ枠22が取り付け部23に圧入されることによって固定力を得る機構であってもよい。つまりフィルタ枠22は、取り付け部23との摩擦力により、または取り付け部23に対する圧入により、取り付け部23に対する位置が保持され得る。
フィルタユニット2には、フィルタ枠22が取り付け部23に対して固定された後に、取り付け部23に対するフィルタ枠22の位置を調整する機構がさらに設けられていてもよい。この機構は、例えば図9に示した例と同様に、取り付け部23の側面を貫通してフィルタ枠22に接触し得る微調整用のネジである。微調整用のネジは、取り付け部23に対するフィルタ枠22の位置を、例えば水平方向と垂直方向に調整(シフト)できるように複数設けられ得る。これにより微調整用のネジを締め付けるか、あるいは緩めることにより、取り付け部23に対するフィルタ枠22の位置を調整できる。
次いで図11は、撮像装置11がレンズフード8を取り付けるための構造をさらに有する例を示す。レンズフード8はその一端にネジ部81を有している。レンズフード8には、円筒形状以外のレンズフード(例えば花形のレンズフード)のように、取り付けられるべき向きを有するものがある。
フィルタ枠22には、その前方に、レンズフード8を取り付けるためのレンズフード枠29がさらに設けられる。レンズフード枠29の前方の端部には、例えばその内側に、レンズフード8が着脱自在に取り付けられるネジ部291(取り付け部)が設けられる。このネジ部291にレンズフード8のネジ部81を螺合させることにより、レンズフード8がレンズフード枠29に取り付けられる。
レンズフード枠29は光軸15を中心として(すなわち光学中心213に対して)摺動可能(回転自在)である構造を有する。つまりレンズフード枠29は、光軸15を中心として回転することによりレンズフード8の向きを調整できる構造を有する。したがってユーザは、レンズフード枠29を回転させる操作を行うことで、レンズフード8の向きを適切に変更できる。
以上の構成により、撮像装置11においてフィルタ21が容易に取り付けられる。フィルタ21は、第1波長帯域の光を透過する第1フィルタ領域211と、第2波長帯域の光を透過する第2フィルタ領域212とを備える。第1波長帯域と第2波長帯域は共通の波長帯域を含む。フィルタ枠22は、フィルタ21を保持する。取り付け部23は、フィルタ枠22に連結し、レンズユニット3の第1端部3E−1に着脱可能に取り付けられる。取り付け部23がレンズユニット3の第1端部3E−1に取り付けられた場合、フィルタ21からレンズユニット3内の開口部3Aまでの距離は、第1端部3E−1から開口部3Aまでの距離よりも長い。
このように、フィルタ枠22に連結する取り付け部23はレンズユニット3の第1端部3E−1に取り付けられ、着脱自在である。したがって撮像装置11において、フィルタ21が容易に取り付けられると共に、フィルタ21の向きも容易に変更できる。
ところで画像処理部12は、図5および図6を参照して上述したように、ある特定の方向(例えば、水平方向、垂直方向等)にぼけの偏りが生じることを前提としたぼけ補正フィルタを用いて、画像に写った被写体までの距離を算出する。フィルタ21の向きが想定された方向からずれることは画像処理部12における測距性能を劣化させ得る。測距性能を高めるためには、撮像時のフィルタ21の向きを、前提としている画像上に生じるぼけの偏りの方向に対応するように設定すること、すなわちフィルタ21の向きを、前提としている画像上に生じるぼけの偏りの方向に直交するように設定することが必要である。
例えばR画像およびB画像上に生じるぼけの偏りが水平方向であることを前提としたぼけ補正フィルタが用意されている場合、フィルタ21の向き(より詳しくはフィルタ21内の境界線214の向き)を垂直方向に設定しておくことで、その意図された水平方向のぼけの偏りが発生した画像を取得できる。また例えばR画像およびB画像上に生じるぼけの偏りが垂直方向であることを前提としたぼけ補正フィルタが用意されている場合、フィルタ21(境界線214)の向きを水平方向に設定しておくことで、その意図された垂直方向のぼけの偏りが発生した画像を取得できる。
しかしユーザによる手動の作業では、フィルタ21の向きを、前提としている画像上に生じるぼけの偏りの方向に対応するように正確に設定することが困難であり得る。
そのため本実施形態では、画像処理部12がフィルタ21の向きに関する補正のための機能を有する。画像処理部12は上述した撮像装置11を用いて、キャリブレーションのための第1被写体(例えばキャリブレーションチャート)が撮像された第1画像と、測距対象の第2被写体が撮像された第2画像とを取得する。そして画像処理部12は、これら第1画像と第2画像とを用いて第2被写体までの距離を算出する。画像処理部12は、第1画像を用いてフィルタ21の向きを算出し、そのフィルタ21の向きと第2画像とを用いて第2被写体までの距離を算出できる。例えば算出されたフィルタ21の向きに基づいて第2画像が補正され、補正された第2画像からぼけ補正フィルタ53,54を用いて第2被写体までの距離が算出される。
図12は画像処理部12の機能構成の例を示す。画像処理部12は、取得部121、キャリブレーション処理部122、補正部123、および距離算出部124を備える。
取得部121は撮像装置11を用いて画像を取得する。取得部121は、撮像装置11内のイメージセンサによって送出された信号を用いて画像を生成してもよい。あるいは取得部121は、撮像装置11によって生成され、ストレージ(メモリ)等に保存された画像を取得してもよい。取得部121は、例えばキャリブレーションのための第1被写体が撮像された第1画像を取得する。第1被写体は例えばキャリブレーションチャートである。また取得部121は例えば第1画像が取得された後に、測距対象の第2被写体が撮像された第2画像を取得する。第2被写体は複数であってもよい。
なお、取得された第2画像をストレージ等に保存しておいて、第1画像が取得されてもよい。つまり、保存されている第2画像とその後に取得された第1画像とを用いて、第2画像に撮像された被写体までの距離が算出されてもよい。この場合、第2画像の撮像時と第1画像の撮像時とで撮像装置11に設けられるフィルタ21の向きは変更されないものとする。
図13はキャリブレーションチャート6の例を示す。キャリブレーションチャート6は例えば撮像対象となる平面を有するボード(例えば平板)であって、その平面上に1つ以上の円形または多角形の要素61を含む。キャリブレーションチャート6に複数の要素61が含まれる場合、それら複数の要素61は等間隔で配置される。
またキャリブレーションチャート6において、要素61の部分とそれ以外の背景部分62とが高いコントラストを有するように、各部分の色が設定されることが望ましい。例えば要素61を黒に、背景部分62を白に設定する。また例えば要素61を白に、背景部分62を黒に設定する。
図13に示す例では、キャリブレーションチャート6は、白い背景部分62と、黒い円形である81個(=9×9)の要素61とで構成されている。各要素61は、隣り合う要素61との間隔がXcmである二次元のマトリクス状に配置されている。
図14は、フィルタ21を備える撮像装置11を用いて、キャリブレーションチャート6の一部が撮像された第1画像71の例を示す。第1画像71上には、撮像時における撮像装置11からキャリブレーションチャート6までの距離に応じたぼけが発生している。また、撮像時のフィルタ21の向きに対応する方向にぼけの偏りが生じている。
ここでは一例として、被写体までの距離を算出するために、画像上の水平方向にぼけの偏りが発生すること、すなわちフィルタ21内の境界線214の方向が垂直方向であることを前提としたぼけ補正フィルタが用いられる場合について説明する。
キャリブレーションチャート6上のある要素61を撮像して得られた、第1画像71上の要素711には、水平方向ではない方向にぼけの偏りが生じている。つまり、第1画像71において、要素711のG成分711Gに対して水平方向に、要素711のR成分711RおよびB成分711Bが位置していない。R成分711RはG成分711Gの右斜め上側にずれ、B成分711BはG成分711Gの左斜め下側にずれている。もし要素711に水平方向のぼけの偏りが生じているならば、R成分711RはG成分711Gに対して水平に右側にずれ、B成分711BはG成分711Gに対して水平に左側にずれる。したがって、第1画像71を撮像した時点におけるフィルタ21内の境界線214の方向は垂直方向ではなかったと云える。
図15に示すように、キャリブレーション処理部122、補正部123、および距離算出部124は、キャリブレーションチャート6(すなわち第1被写体)が撮像された第1画像71と、測距対象の第2被写体が撮像された第2画像77とを用いて第2被写体までの距離を算出する。
より具体的には、まずキャリブレーション処理部122は、第1画像71を用いて撮像時のフィルタ21の向き(より詳しくはフィルタ21内の境界線214の方向)21Dを算出する。図16を参照して、第1画像71上の要素711から、第1画像71が撮像された時点におけるフィルタ21内の境界線214の方向が算出される例を説明する。
キャリブレーション処理部122は、要素711のR成分711Rの重心72RとB成分711Bの重心72Bとをそれぞれ算出する。キャリブレーション処理部122は、重心72Rと重心72Bとをつなぐ線分の方向を、第1画像71上のぼけの偏りの方向71Dとして決定する。このぼけの偏りの方向71Dは、第1画像71上の垂直方向71Vに対して角度θbを有している。また、ぼけの偏りの方向71Dとフィルタ21内の境界線214の方向21Dとは直交するので、フィルタ21内の境界線214の方向21Dは、第1画像71上の垂直方向71Vに対して角度(90°−θb)を有している。キャリブレーション処理部122は、ぼけの偏りの方向71Dを示す角度θbと、フィルタ21内の境界線214の方向21Dを示す角度(90°−θb)とを算出する。
なお、フィルタ21が3つ以上のフィルタ領域で構成される場合、キャリブレーション処理部122は、第1画像71を用いて、フィルタ21の向き21Dとして、いずれか2つのフィルタ領域の境界線の方向を算出してもよいし、フィルタ21内の複数の境界線の方向をそれぞれ算出してもよい。
図15に戻り、補正部123は、フィルタ21の境界線214の方向21Dに基づいて第2画像77を補正することにより、補正された第2画像78を生成する。図15に示す例では、補正部123は第2画像77を、フィルタ21の境界線214の方向21Dを示す角度(90°−θb)だけ時計回りに回転させることにより、補正された第2画像78を生成する。これにより第2画像77上の被写体77Aに生じているぼけの偏りの方向は、補正された第2画像78上の被写体78Aでは、前提とされているぼけの偏りの方向(例えば水平方向)に補正される。
そして距離算出部124は、補正された第2画像78を用いて第2被写体までの距離を算出する。距離算出部124は、例えば予め用意された複数のぼけ補正量にそれぞれ対応する複数のぼけ補正フィルタ53,54と補正された第2画像78とを用いて第2被写体までの距離を算出する。距離を算出する具体的な方法については、図5および図6を参照して上述した通りである。以上により、フィルタ21の向き21Dが、前提とされているぼけの偏りの方向に対応していない場合にも、第2画像78上の被写体までの距離を精度良く算出することができる。
なお、画像処理部12は通知部125をさらに備えていてもよい。通知部125は、キャリブレーション処理部122によって算出されたフィルタ21の向き21D(例えば角度(90°−θb))をユーザに通知する。ユーザは、この通知に応じてフィルタ21を保持するフィルタ枠22を回転させることにより、フィルタ21の向き21Dを、前提としている画像上に生じるぼけの偏りの方向に対応するように調整すること、すなわちフィルタ21の向き21Dが、前提としている画像上に生じるぼけの偏りの方向に直交するように調整することもできる。この場合、補正部123による第2画像77の補正は必要なく、距離算出部124は、撮像装置11で取得された第2画像77上の被写体までの距離を、予め用意された複数のぼけ補正量にそれぞれ対応する複数のぼけ補正フィルタ53,54を用いて容易に算出できる。
図17のフローチャートは、画像処理部(あるいは画像処理装置)12によって実行されるキャリブレーション処理の手順の例を示す。
まず画像処理部12は、キャリブレーションチャート6が撮像された第1画像71を取得する(ステップS21)。画像処理部12は、第1画像71に写ったキャリブレーションチャート6内のある要素711のR成分711Rの重心72RとB成分711Bの重心72Bとを算出する(ステップS22)。そして、画像処理部12は、第1画像71上の垂直方向71Vに対して、R成分711Rの重心72RとB成分711Bの重心72Bとをつなぐ線分がなす角度θbを算出する(ステップS23)。角度θbは、第1画像71上のぼけの偏りの方向71Dを示す。ぼけの偏りの方向71Dとフィルタ21内の境界線214の方向とは直交するので、画像処理部12は、フィルタ21の向き(フィルタ21内の境界線214の方向)21Dを示す角度(90°−θb)を算出できる。
また画像処理部12は、フィルタ21の向き21Dをユーザに通知してもよい(ステップS24)。画像処理部12は、例えばディスプレイ13の画面にフィルタ21の向き21Dを示す角度(90°−θb)を表示する。
また図18のフローチャートは、画像処理部12によって実行される、フィルタの向きに関する補正機能を有する測距処理の手順の例を示す。測距処理では、撮像装置11により取得された第2画像77を用いて、撮像された時点の撮像装置11の位置から第2画像77に写っている第2被写体までの距離が算出される。ここでは、この測距処理が実行される前に図17に示したキャリブレーション処理の実行が完了し、且つ第1画像71と第2画像77とで撮像時のフィルタ21の向き21Dが変更されていないことを想定する。
まず画像処理部12は、撮像装置11を用いて第2画像77が取得されたか否かを判定する(ステップS31)。第2画像77が取得されていない場合(ステップS31のNO)、ステップS31に戻り、撮像装置11を用いて第2画像77が取得されたか否かが再度判定される。
第2画像77が取得された場合(ステップS31のYES)、画像処理部12は、撮像時のフィルタ21の向き21Dを示す角度(90°−θb)に基づいて第2画像77を回転した補正画像78を生成する(ステップS32)。これにより、第2画像77上のぼけの偏りの方向71Dが水平方向に補正される。
画像処理部12は取得された補正画像78内の注目画素を設定する(ステップS33)。注目画素は、例えば補正画像78の左上端の画素から右下端の画素までラスタ走査の順に設定され得る。また、補正画像78上のエッジに対応する画素が注目画素として設定されてもよい。
次いで画像処理部12は、あるぼけ補正量に対応するぼけ補正フィルタを取得する(ステップS34)。画像処理部12は、例えば予め用意された複数のぼけ補正量にそれぞれ対応する複数のぼけ補正フィルタから、1つのぼけ補正フィルタを取得する。画像処理部12は、取得されたぼけ補正フィルタを、補正画像78のR成分の画像(以下R画像と称する)またはB成分の画像(以下B画像と称する)内の注目画素を含む第1領域に適用することにより、補正された第1領域を生成する(ステップS35)。第1領域は、例えば注目画素を中心とする特定のサイズの領域である。
そして画像処理部12は、補正された第1領域と、補正画像78のG成分の画像(以下G画像と称する)内の注目画素を含む第2領域とが一致したか否かを判定する(ステップS36)。第2領域は、例えば注目画素を中心とする第1領域と同一のサイズを有する領域である。なお、画像処理部12は、補正された第1領域と第2領域とが一致したか否かを判定する代わりに、補正された第1領域と第2領域との相関値が第1閾値を超えているか否かを、あるいは補正された第1領域と第2領域との相違度が第2閾値未満であるか否かを判定してもよい。補正された第1領域と第2領域とが一致していない場合(ステップS36のNO)、ステップS34に戻り、別のぼけ補正フィルタを用いた処理が行われる。
補正された第1領域と第2領域とが一致した場合(ステップS36のYES)、画像処理部12は、適用されたぼけ補正フィルタに対応するぼけ補正量に基づいて、被写体までの距離を算出する(ステップS37)。この算出には、上述したように、ぼけ補正量と被写体までの距離との対応を示すLUTやモデルが用いられてもよい。
次いで画像処理部12は、補正画像78内に、被写体までの距離を算出すべき別の画素があるか否かを判定する(ステップS38)。被写体までの距離を算出すべき別の画素がある場合(ステップS38のYES)、ステップS33に戻り、その別の画素に写っている被写体までの距離を算出するための処理が行われる。
被写体までの距離を算出すべき別の画素がない場合(ステップS38のNO)、処理を終了する。
以上により、画像処理部12は、キャリブレーション処理で取得されたフィルタ21の向き21Dと撮像装置11によって取得された第2画像77とを用いて、第2画像77内の各画素に写っている被写体までの距離を算出することができる。
なお図19に示すように、補正画像78を生成することなく、第2画像77内の各画素に写っている被写体までの距離を算出することもできる。図19に示す例では、補正部123は、第1画像71を用いて算出されたフィルタ21の向き21Dに応じて変更されたぼけ補正フィルタ56,57を算出する。画像処理部12は、例えば予め用意された複数のぼけ補正量にそれぞれ対応する複数のぼけ補正フィルタ53,54をフィルタ21の向き21Dに応じて変更することにより、ぼけ補正フィルタ56,57を算出する。
距離算出部124は、この変更されたぼけ補正フィルタ56,57と第2画像77とを用いて第2被写体までの距離を算出する。距離を算出する具体的な方法は、図5および図6を参照して上述した方法と同様である。
また図20に示すように、キャリブレーション処理部122は、キャリブレーションチャート6を撮像した第1画像71を用いて撮像装置11の画角(有効画角とも称する)を算出することもできる。図20では説明を分かりやすくするために、ぼけが発生していない第1画像71Aを例示している。またここでは、キャリブレーションチャート6上の隣り合う要素間の距離が2cmであり、且つキャリブレーションチャート6が撮像装置11の位置から30cm離れた位置に設置されていることを想定する。
第1画像71Aには、実空間の高さ10cm(=2×5)、幅14cm(=2×7)の領域が撮像されている。この場合、水平方向の画角および垂直方向の画角は以下のように算出される。
水平画角θh=2×atan(14/30/2)=26.3°
垂直画角θv=2×atan(10/30/2)=18.9°
このように、キャリブレーションチャート6を撮像した第1画像71を用いて撮像装置11の画角を算出することができる。例えばレンズユニット3にフィルタユニット2を取り付ける前後それぞれでキャリブレーションチャート6を撮像した画像を取得し、画角を算出することにより、フィルタユニット2を取り付けることによる画角の変化を計測することができる。
撮像されるキャリブレーションチャート6は、撮像装置11と正対していることが望ましい。撮像装置11に正対したキャリブレーションチャート6を撮像するためには、例えば水準器等を用いて水平に設置された撮像装置11で、鉛直方向に立てられたキャリブレーションチャート6を正面から撮像する必要がある。
撮像装置11に正対していないキャリブレーションチャート6が撮像されたならば、傾いたキャリブレーションチャート6が撮像された画像が取得される。このような場合、キャリブレーション処理部122は、キャリブレーションチャート6の傾きが補正された画像を生成し、その補正画像を用いてフィルタ21の向き21D、画角等の算出を行う。
図21に示す例では、撮像装置11によって、傾いたキャリブレーションチャート6が撮像された画像743が取得されている。キャリブレーション処理部122は、画像743上の要素を検出し、画像743上で水平方向に並んでいるべき要素群をつなぐ線分743Xと、画像743上で垂直方向に並んでいるべき要素群をつなぐ線分743Yとを検出する。なおこの例では、線分741Yは垂直方向に延び、傾いていない。
キャリブレーション処理部122は、算出された線分741Xの傾きおよび線分741Yの傾きに基づき、例えばカメラキャリブレーションに用いられるZhangの手法(Zhengyou Zhang、“A Flexible New Technique for Camera Calibration”、[online]、1998年12月2日、Technical Report MSR-TR-98-71、[平成30年9月12日検索]、インターネット<URL:https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/tr98-71.pdf>)を用いて、傾きが補正された画像744を生成する。キャリブレーション処理部122は、例えば線分741Xの傾きが水平方向に、線分741Yの傾きが垂直方向になるように画像743を回転させ、傾きが補正された画像744を生成する。これによりキャリブレーション処理部122は、撮像装置11と正対して撮像されたキャリブレーションチャート6の画像を用いる場合と同様にして、補正画像744を用いてフィルタ21の向き21D、画角等を算出できる。
さらに、フィルタ21(フィルタユニット2)はレンズユニット3に対して、フィルタ21の中心213が撮像装置11の光軸15と一致しない位置(すなわち光軸15がフィルタ21の中心を通らない位置)に取り付けられることがある。このようにレンズユニット3に対するフィルタ21の位置ずれがある場合、レンズ31に光を透過するフィルタ21内の第1フィルタ領域211の面積と第2フィルタ領域212の面積とが不均一になる。
図22は、フィルタ21の中心213が光軸15と一致していない場合に、撮像装置11によって取得されたキャリブレーションチャート6の画像上の要素751の例を示す。ここでは、フィルタ21の中心213が光軸15と一致せず、例えばイエローの第1フィルタ領域211の面積が、シアンの第2フィルタ領域212の面積よりも広くなっていることを想定する。
キャリブレーション処理部122は、取得された画像上の要素751において、例えばR成分のぼけ751Rの大きさSrとB成分のぼけ751Bの大きさSbとを比較することにより、フィルタ21の中心213が光軸15と一致していないことを検出する。検出のために用いられる要素751は、例えば画像上の中央付近に位置していることが望ましい。
イエローの第1フィルタ領域211の面積がシアンの第2フィルタ領域212の面積よりも広い場合、取得された画像上の要素751において、広い第1フィルタ領域211を透過する赤の波長帯域の光により得られるR成分のぼけ751Rの大きさSrは、狭い第2フィルタ領域212を透過する青の波長帯域の光により得られるB成分のぼけ751Bの大きさSbよりも大きい。したがってキャリブレーション処理部122は、R成分およびB成分のそれぞれのぼけの大きさに基づいて、フィルタ領域211,212の面積が均一でなく、またいずれのフィルタ領域211,212の面積がより広く(あるいは狭く)なっているかを検出できる。
通知部125は、キャリブレーション処理部122による処理結果を用いて、フィルタ21の位置がずれていること、フィルタ21の中心213が光軸15と一致していないこと、フィルタ領域211,212の面積が均一でないこと、いずれのフィルタ領域の面積がより広くなっているか等を、ユーザに通知する。ユーザはこの通知に応じて、レンズユニット3に対してフィルタ21を正しく取り付けることができる。
またフィルタ21の中心213が光軸15と一致していない場合には、図23に示すように、撮像装置11によって取得される画像76にフィルタ枠22等のフィルタユニット2の一部による影が写り込むこともある。取得された画像76には、キャリブレーションチャート6の要素61が撮像された領域761と、フィルタ枠22等による影が写り込んだことによって欠けた領域762とが含まれている。
キャリブレーション処理部122は、フィルタ21を取り付ける前の第1画角とフィルタ21を取り付けた後の第2画角とを比較し、第1画角と第2画角との差が閾値を超えている場合に、フィルタ枠22等による影が画像76に写り込んでいると判断する。通知部125は、フィルタ枠22等による影が画像76に写り込んでいることをユーザに通知する。ユーザはこの通知に応じて、レンズユニット3に対してフィルタ21を正しく取り付けることができる。
なお、フィルタユニット2はクリップ形状を有していてもよい。図24は撮像装置11の構造の別の例を示す。ここでは撮像装置11が、レンズユニット3およびイメージセンサ41を備えるスマートフォン1Aと、クリップ形状を有するフィルタユニット2Aとして実現される場合を例示する。スマートフォン1Aは一例であって、レンズユニット3(レンズ31)上に重ね合わせるように、クリップ形状のフィルタユニット2Aを取り付けられる電子機器であればよい。この電子機器には、例えばレンズユニット3が取り付けられたカメラ本体4や、レンズユニット3を備える電子機器(例えばタブレットPC)が含まれ得る。
スマートフォン1Aは画像処理部12およびディスプレイ13を備えていてもよい。この場合、フィルタユニット2が取り付けられたスマートフォン1Aは、撮像装置11として用いられるだけでなく、測距装置1として用いることもできる。
図24(A)に示すように、クリップ形状のフィルタユニット2Aは、スマートフォン1Aの筐体を挟み込むための2つのクリップ部201,202を備える。クリップ部201,202は、スマートフォン1Aの筐体に対してフィルタユニット2Aを固定する固定部である。クリップ部201の第1端部201E−1はフィルタ21を保持する薄い円筒形状を有する。クリップ部202の第1端部202E−1も同様の薄い円筒形状を有するが、フィルタ21は保持されていない。
クリップ部201の第2端部201E−2とクリップ部202の第2端部202E−2とを外側から挟み込むように力を加えることで、クリップ部201の第1端部201E−1とクリップ部202の第1端部202E−1は開放される。クリップ部201の第2端部201E−2とクリップ部202の第2端部202E−2とに力が加えられなければ、クリップ部201の第1端部201E−1とクリップ部202の第1端部202E−1は閉じる。
図24(B)に示すように、ユーザはクリップ部201の第2端部201E−2とクリップ部202の第2端部202E−2とを外側から挟み込むように力を加えて第1端部201E−1,202E−1を開放し、フィルタ21がレンズユニット3を覆うように第1端部201E−1と第1端部202E−1との間にスマートフォン1Aを挟み込む。
ユーザはさらに、スマートフォン1Aを挟み込んでいる第1端部201E−1および第1端部202E−1の位置および向きを調節することもできる。この調節のために、第1端部201E−1および第1端部202E−1に移動や回転のための微動ステージが組み込まれていてもよい。微動ステージは、例えば第1端部201E−1および第1端部202E−1を水平方向および垂直方向にそれぞれシフトする微調整ネジを備える。
ユーザはレンズユニット3(より詳しくはレンズユニット3に内蔵されるレンズ31)とフィルタ21とが光学的に正しく結合されるように調節する。より具体的には、ユーザはフィルタ21の中心が光軸15上(すなわちレンズユニット3の中心上)に位置するように第1端部201E−1,202E−1を移動する。
ユーザはさらに、フィルタ21内の境界線214の方向がスマートフォン1Aの垂直方向45、水平方向46等のある特定の方向に設定されるように、第1端部201E−1,202E−1を回転することもできる。その際、スマートフォン1Aのディスプレイ13の画面には、フィルタ21内の境界線214の方向を特定の方向に設定するためのガイドが表示されてもよい。
図25はディスプレイ13に表示されるガイド画面90の例を示す。このガイド画面90には、例えばフィルタ21内の境界線214の現在の方向を示す線91と、境界線214の現在の方向を特定の方向(ここでは垂直方向45)に設定するためにフィルタユニット2を回転すべき向き92(ここでは時計回り)とが示されている。ガイド画面90を用いることにより、ユーザはフィルタ21の向きを容易に調節できる。
ガイド画面90には、フィルタ21の向きだけでなく、キャリブレーションによって得られた画角等の処理結果や被写体までの距離のような測距処理の結果が表示されてもよい。さらに、ガイド画面90には、取り付けられるべき位置(すなわちフィルタ21の中心が光軸15に一致する位置)からずれた位置にフィルタ21が取り付けられていること、フィルタ枠22等の影が画像に写り込んでいること等が示されてもよい。
なお、フィルタユニット2Aの形状および構造は、レンズユニット3を備えるスマートフォン1Aの筐体等に取り付けることができればどのような形状および構造であってもよい。
例えば図26に示すように、フィルタユニット2Aは、レンズユニット3を備えるスマートフォン1Aの筐体全体を嵌め込んで取り付けるケース(あるいはカバー)の形状を有していてもよい。ケース形状のフィルタユニット2Aでは、スマートフォン1Aに取り付けられた場合にレンズユニット3上に重なる位置に、フィルタ21を保持するフィルタ枠22が設けられる。フィルタ枠22は回転可能であり、ユーザはフィルタ21の向きを任意の方向に調節できる。
以上により、レンズユニット3がフィルタユニット2を取り付けるための構造を有していない場合にも、レンズユニット3を備える筐体に対してレンズユニット3上に重なるようにフィルタユニット2を取り付けられるので、ハードウェア構成によってフィルタ21の向きを精度良く調節できる。フィルタ21の向きが調節されることにより、撮像装置11(例えばスマートフォン1A)を用いて理想的なぼけ(すなわち意図したぼけ)が発生した画像を取得できる。
以上説明したように、本実施形態によれば被写体までの距離を精度良く算出できる。フィルタ21は、第1波長帯域の光を透過する第1フィルタ領域211と、第2波長帯域の光を透過する第2フィルタ領域212とを備える。第1波長帯域と第2波長帯域は共通の波長帯域を含む。取得部121は、フィルタ21を通過した光を受光するイメージセンサ41を有する撮像装置11を用いて撮像された、キャリブレーションのための第1被写体が撮像された第1画像71と、第2被写体が撮像された第2画像77とを取得する。画像処理部12は、第1画像71と第2画像77とを用いて第2被写体までの距離を算出する。
これによりフィルタ21がレンズユニット3の外部に設けられる場合にも、レンズユニット3に取り付けられたフィルタ21の向きを考慮して、被写体までの距離を精度良く算出できる。
なお、上述したキャリブレーションのための構成は、フィルタ21がレンズユニット3内の開口部3Aに設けられる場合にも適用できる。したがって、例えば開口部3Aに配置されたフィルタ21の向きが振動等で意図しない向きにずれた場合にも、撮像装置11を用いて取得された画像からその画像上の被写体までの距離を精度良く算出できる。
また、本実施形態に記載された様々な機能の各々は、回路(処理回路)によって実現されてもよい。処理回路の例には、中央処理装置(CPU)のような、プログラムされたプロセッサが含まれる。このプロセッサは、メモリに格納されたコンピュータプログラム(命令群)を実行することによって、記載された機能それぞれを実行する。このプロセッサは、電気回路を含むマイクロプロセッサであってもよい。処理回路の例には、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、マイクロコントローラ、コントローラ、他の電気回路部品も含まれる。本実施形態に記載されたCPU以外の他のコンポーネントの各々もまた処理回路によって実現されてもよい。
また、本実施形態の各種処理はコンピュータプログラムによって実現することができるので、このコンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのコンピュータプログラムをコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。