以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、従来の構造化開口を説明する説明図である。図1の(a)は、複雑な開口形状を有する構造化開口の正面図である。構造化開口は、保持枠101にフィルタ102が支持されて構成されている。フィルタ102は、被写体光束を遮断する遮断フィルタ部103と、被写体光束を透過させる透過フィルタ部104を有する。図示するように、透過フィルタ部104は2次元的に複雑な形状を有しており、これにより、被写体空間において深さ方向に異なる位置から入射する点像を、撮像素子の受光面上で特徴的な形状をもって結像させる。すなわち、このような開口形状を有する構造化開口を撮影レンズの瞳近傍に配置すれば、深さ方向である各距離に応じた点像分布関数(PSF)を大きく異ならせることができる。各距離に応じた点像分布関数を大きく異ならせることができれば、被写体画像の各領域における被写体までの距離を精度良く算出することができる。なおここでは、ひとつの開口形状に対応して各距離に応じたPSFが1セット用意される場合の構造化開口を、シングルコーデッドアパーチャと呼ぶ。
シングルコーデッドアパーチャを用いた被写体画像から距離情報を算出する具体的な手法について説明する。被写体画像の距離情報は、被写体画像に写る各々の被写体に対するカメラからの距離を含む。算出によって得られる推定画像は、いわゆる距離画像に類する。
シングルコーデッドアパーチャを介して撮影された撮影画像をy、オリジナルの被写体画像をx、PSFをf
dとすると、結像方程式は式(1)として表される。
するとPSFであるfdが既知であれば、撮影画像yを利用して式(1)を満たすようなオリジナル被写体画像xを推定することができる。
そして、PSFの構造は、被写体の深さである基準ピント位置からのずれによって変化する。したがって、被写体の深さと、推定に使用するPSFの深さが一致しているときに、最も良好なオリジナル被写体画像を推定できる。推定プロセスは、式(2)で表現することができる。
以上のプロセスを各深さのPSFに対して全て行い、エラーが最小となるPSFを見つけ、そのPSFに対応した深さをマップにすれば距離情報が得られる。
しかし、ステップS2の解である、デコンボリュージョンエラーを最小にする推定被写体画像はひとつではないという問題がある。したがって、デコンボリュージョンエラーを最小にする推定被写体画像が、真の被写体と近似する画像とはならない場合がある。また、被写体の深さとPSFの深さが一致していなくとも、そのような特殊解を見つけてデコンボリュージョンエラーを最小にしてしまう場合がある。
このような問題を解決すべく、推定被写体画像に「画像らしさ」を評価する制約項を加える。この場合、式(2)は以下の式(3)のように表現される。
関数g(x)が制約項である。λは制約項の重み係数である。例えば、一般的に画像は滑らかな構図を持つので、その微分値はゼロに近い。したがって、制約項に画像の微分値を示す関数を設定することにより、デコンボリュージョンエラーを最小にし、かつその微分値も小さいという「画像らしさ」を有するオリジナル被写体画像のみが推定され、深さを精度良く推定することができる。微分値を示す関数の例としては、式(4)が挙げられる。
以上の処理手順により深さ測定を行うことができる。
図1の(b−1)は、楕円形の開口形状を有する構造化開口の正面図である。構造化開口は、保持枠111にフィルタ112が支持されて構成されている。フィルタ112は、被写体光束を遮断する遮断フィルタ部113と、被写体光束を透過させる透過フィルタ部114を有する。保持枠111は円形枠であり、その中心は撮影レンズの光軸と一致するが、円形を成す透過フィルタ部114は、光軸に対して偏心している。
このように単純な円形開口を持つ構造化開口では、深さの変化に対するPSFの変化が小さいので、シングルコーデッドアパーチャとして深さを算出すると推定誤差が大きくなる。図1の(a)では、複雑な開口形状とすることにより推定誤差の低減を図ったが、ここでは、(b−1)の状態で第1の撮影画像を取得し、(b−1)の構造化開口を反転させた(b−2)の状態で第2の撮影画像を取得することにより、推定誤差の低減を図る。つまり、(b−1)の開口形状に対応して各距離に応じたPSFを1セットと、(b−2)の開口形状に対応して各距離に応じたPSFを1セット用意する。このような場合の構造化開口を、コーデッドアパーチャペアと呼ぶ。
コーデッドアパーチャペアを用いた被写体画像から距離情報を算出する具体的な手法について、説明する。コーデッドアパーチャペアの場合、開口形状が単純であるので、シングルコーデッドアパーチャにおける処理を空間周波数領域において展開することができる。
異なる2つの開口によりそれぞれ撮影された第1画像と第2画像のフーリエ変換をF
1、F
2、各深さdについて取得したPSFのフーリエ変換をK
1 d、K
2 d、オリジナル被写体画像xのフーリエ変換をF
0とすると、結像方程式は式(5)として表される。
式(5)によれば、式(1)と比較して、畳み込み積分が単純な掛け算となることがわかる。このとき、式(3)に対応するデコンボリュージョンエラーを記述すると式(6)のようになる。
深さマップの構築プロセスは以下の処理による。
この手法では、シングルコーデッドアパーチャの場合とは異なり、推定プロセスを繰り返す必要がなく、かつ単純な計算式によって導き出されるので、計算速度が非常に速い。なお、シングルコーデッドアパーチャにおいてこのような手法を適用できない理由は、シングルコーデッドアパーチャのPSFは非常に複雑な形状をしているので、そのフーリエ変換もエラーが大きいからである。
以上の従来の手法においては、それぞれに問題点を抱えている。シングルコーデッドアパーチャの場合、コーデッドアパーチャペアに比べて計算速度が非常に遅く、また、複雑な開口形状を通過した被写体画像は特定の周波数成分が抜け落ちるという問題があった。一方、コーデッドアパーチャペアの場合、同一被写体に対して開口位置を変えて少なくとも二枚の撮影画像を取得するので、画像間に被写体のずれが生じる。画像間で被写体がずれると、被写体領域ごとの深さを正確に推定することができない。画像間で被写体にずれを生じさせないためには、カメラを三脚に固定すること、被写体が動かないことなどの制約が課され、広範な被写体に対応できなくなる。
そこで、本実施形態においては、このような問題に対処すべく、コーデッドアパーチャペアに改良を加えて一眼レフカメラに適用する。以下に本実施形態について説明する。
図2は、本実施形態に係る一眼レフカメラ200の要部断面図である。一眼レフカメラ200は、撮影レンズであるレンズユニット210とカメラボディであるカメラユニット230が組み合わされて撮像装置として機能する。
レンズユニット210は、光軸201に沿って配列されたレンズ群211を備える。レンズ群211には、フォーカスレンズ212、ズームレンズ213が含まれる。また、光軸201に沿って、絞り214および構造化開口ユニット300も配列される。構造化開口ユニット300は、被写体光束に対して挿抜することができる。構造化開口ユニット300が被写体光束に対して挿入されると、構造化開口は、光軸201に交差して配設される。アクチュエータ215は、構造化開口ユニット300が被写体光束に対して挿入されたときに構造化開口を回転させる。
レンズユニット210は、フォーカスレンズ212、絞り214およびアクチュエータ215の駆動などレンズユニット210の制御および演算を司るレンズシステム制御部216を備える。レンズユニット210を構成する各要素は、レンズ鏡筒217に支持されている。
また、レンズユニット210は、カメラユニット230との接続部にレンズマウント218を備え、カメラユニット230が備えるカメラマウント231と係合して、カメラユニット230と一体化する。レンズマウント218およびカメラマウント231はそれぞれ、機械的な係合部の他に電気的な接続部も備え、カメラユニット230からレンズユニット210への電力の供給および相互の通信を実現している。
カメラユニット230は、レンズユニット210から入射される被写体像を反射するメインミラー232と、メインミラー232で反射された被写体像が結像するピント板234を備える。メインミラー232は、回転軸233周りに回転して、光軸201を中心とする被写体光束中に斜設される状態と、被写体光束から退避する状態を取り得る。ピント板234側へ被写体像を導く場合は、メインミラー232は被写体光束中に斜設される。また、ピント板234は、撮像素子243の受光面と共役の位置に配置されている。
ピント板234で結像した被写体像は、ペンタプリズム235で正立像に変換され、接眼光学系236を介してユーザに観察される。また、ペンタプリズム235の射出面上方にはAEセンサ237が配置されており、被写体像の輝度分布を検出する。
斜設状態におけるメインミラー232の光軸201の近傍領域は、ハーフミラーとして形成されており、入射される光束の一部が透過する。透過した光束は、メインミラー232と連動して動作するサブミラー238で反射されて、AF光学系239へ導かれる。AF光学系239を通過した被写体光束は、AFセンサ240へ入射される。AFセンサ240は、受光した被写体光束から位相差信号を検出する。なお、サブミラー238は、メインミラー232が被写体光束から退避する場合は、メインミラー232に連動して被写体光束から退避する。
斜設されたメインミラー232の後方には、光軸201に沿って、フォーカルプレーンシャッタ241、光学ローパスフィルタ242、撮像素子243が配列されている。フォーカルプレーンシャッタ241は、撮像素子243へ被写体光束を導くときに開放状態を取り、その他のときに遮蔽状態を取る。光学ローパスフィルタ242は、撮像素子243の画素ピッチに対する被写体像の空間周波数を調整する役割を担う。そして、撮像素子243は、例えばCMOSセンサなどの光電変換素子であり、受光面で結像した被写体像を電気信号に変換する。
撮像素子243で光電変換された電気信号は、メイン基板244に搭載されたDSPである画像処理部246で画像データに処理される。メイン基板244には、画像処理部246の他に、カメラユニット230のシステムを統合的に制御するMPUであるカメラシステム制御部245が搭載されている。カメラシステム制御部245は、カメラシーケンスを管理すると共に、各構成要素の入出力処理等を行う。
カメラユニット230の背面には液晶モニタ等による表示部247が配設されており、画像処理部246で処理された被写体画像が表示される。表示部247は、撮影後の静止画像に限らず、ビューファインダとしてのEVF画像、各種メニュー情報、撮影情報等を表示する。また、カメラユニット230には、着脱可能な二次電池248が収容され、カメラユニット230に限らず、レンズユニット210にも電力を供給する。
また、ペンタプリズム235の近傍には使用状態と収納状態を取り得るフラッシュ249を備えており、使用状態においてカメラシステム制御部245の制御により被写体を照射する。フラッシュ249の近傍には、被写体を照射するパターン投光部250を備えており、被写体に対して幾何的模様等であるパターンを投光する。
図3は、本実施形態に係る構造化開口ユニット300の外観図である。図3(a)は光軸201方向から見た正面図であり、図3(b)は側面図である。
構造化開口ユニット300は、保持枠301、フィルタ302、ベース部307、外周部308および把持部309を主な構成要素とする。保持枠301は、中心部分が中空の円筒形を成し、フィルタ302は、保持枠301の中空部分に張設されて固定されている。保持枠301の外周部にはギア306が全周にわたって設けられている。保持枠301は、ベース部307に回転機構を介して連結され、図示する矢印方向へ回転自在に支持されている。ベース部307は、保持枠301の中空部分と同様に、被写体光束範囲に中空部分を有する。したがって、保持枠301にフィルタ302が張設されていなければ、構造化開口ユニット300をレンズユニット210へ装着しても、被写体光束に何ら影響を与えない。
ベース部307の端部には外周部308と把持部309が一体的に形成されている。ユーザは、把持部309を掴んで構造化開口ユニット300をレンズユニット210に対して挿抜する。
フィルタ302は、被写体光束を遮断する遮断フィルタ部303、赤色の波長帯を透過させるRフィルタ部304および青色の波長帯を透過させるBフィルタ部305から構成される。図示するようにRフィルタ部304とBフィルタ部305は、フィルタ302の中心を通る光軸201に対して、それぞれ偏心した位置であって互いに対称となる位置に設けられている。別言すれば、遮断フィルタ部303の中心に対して、それぞれ偏心した位置であって互いに対称となる位置に設けられた2つの開口に、赤色の波長帯を透過させるRフィルタ部304と青色の波長帯を透過させるBフィルタ部305が形成されている。
フィルタ302を固定する保持枠301は、上述のように矢印方向へ回転するので、Rフィルタ部304とBフィルタ部305の光軸201に対する相対的な位置関係は、保持枠301の回転に伴って変化する。例えば、保持枠301が180度回転されると、図示するRフィルタ部304とBフィルタ部305の位置関係が逆転して、左側にRフィルタ部304が、右側にBフィルタ部305が配置されることになる。つまり、構造化開口ユニット300は、光軸201を中心に回転させてRフィルタ部304とBフィルタ部305の位置関係を変更させる自転機構を備える。
図4は、構造化開口ユニット300をレンズユニット210に装着する様子を示す図である。図4(a)は、構造化開口ユニット300をレンズユニット210に挿し込む直前の様子を示し、図4(b)は、装着された様子を示す。
ユーザは、把持部309を把持して、構造化開口ユニット300をレンズ鏡筒217に設けられた装着スリット219へ挿し込む。すると、構造化開口ユニット300は、ベース部307の側面がレンズ鏡筒217の内部に設けられた挿抜ガイド220に案内されて、フィルタ302の中心が光軸201と一致する位置に到達する。フィルタ302の中心が光軸201と一致する位置に到達すると、外周部308が装着スリット219に嵌合し、外周部308の外面がレンズ鏡筒217の外観面と一致する。同時に、ギア306は、アクチュエータ215の駆動ギアと噛合する。このように、構造化開口ユニット300がレンズユニット210と一体化されると、レンズシステム制御部216は、アクチュエータ215により保持枠301を回転させることができ、光軸201周りにRフィルタ部304とBフィルタ部305の位置関係を変更することができる。
図5は、撮像素子243の画素上に配置されたカラーフィルタの説明図である。本実施例におけるカラーフィルタの配列は、いわゆるベイヤー配列であり、4画素を1組として、各画素上にR画素フィルタ、G画素フィルタ、G画素フィルタおよびB画素フィルタが設けられている。したがって、各画素が感度を有する波長帯は、それぞれに設けられた画素フィルタによって規制される。例えば、R画素フィルタが設けられた画素は、赤色の波長帯に対して感度を持つ。撮像素子243の全体としては、2次元的に配列された画素のそれぞれが離散的にR画素フィルタ、G画素フィルタおよびB画素フィルタのいずれかを備えることになるので、撮像素子243は、入射する被写体光束をそれぞれの波長帯に分離して検出していると言える。換言すれば、撮像素子243は、受光面に結像する被写体像をRGBの3つの波長帯に分離して光電変換する。
図6は、撮像素子243の画素が感度を有する波長帯と、構造化開口のそれぞれのフィルタ部が透過する波長帯の関係を示す図である。図は、縦軸に透過率(%)を、横軸に波長(nm)を示す。透過率が高い波長の光ほど、画素を構成するフォトダイオードに到達することを表す。
B曲線601は、B画素フィルタが設けられた画素の感度を示し、同様にG曲線602はG画素フィルタが設けられた画素の感度を、R曲線603はR画素フィルタが設けられた画素の感度を示す。図示されるように、隣り合う波長帯であるB曲線601とG曲線602、および、G曲線602とR曲線603は若干の重なり部分を有しており、一方、互いに離れた波長帯であるB曲線601とR曲線603は互いに交わることが無い。すなわち、B画素フィルタが設けられた画素は、青色波長帯と共に若干の緑色波長帯にも感度を有するが、赤色波長帯には感度を有さない。同様に、R画素フィルタが設けられた画素は、赤色波長帯と共に若干の緑色波長帯にも感度を有するが、青色波長帯には感度を有さない。一方、G画素フィルタが設けられた画素は、緑色波長帯と共に若干の赤色波長帯にも青色波長帯にも感度を有する。
構造化開口のBフィルタ部305は、矢印611の波長帯を透過させる。同様に、Rフィルタ部304は、矢印613の波長帯を透過させる。したがって、B画素フィルタが設けられた画素は、構造化開口のBフィルタ部305を透過した被写体光束に対して感度を持ち、R画素フィルタが設けられた画素は、構造化開口のRフィルタ部304を透過した被写体光束に対して感度を持つと言える。上述のように、B画素フィルタが設けられた画素は赤色波長帯には感度を有さず、R画素フィルタが設けられた画素は青色波長帯には感度を有さない。したがって、別言すれば、B画素フィルタが設けられた画素は、構造化開口のRフィルタ部304を透過した被写体光束に対して感応せず、R画素フィルタが設けられた画素は、構造化開口のBフィルタ部305を透過した被写体光束に対して感応しない。
すると、Rフィルタ部304を開口とする赤色波長帯の被写体画像と、Bフィルタ部305を開口とする青色波長帯の被写体画像を、一度の撮影により取得することができる。すなわち、波長帯分離を利用することにより、図1(b−1)と(b−2)を用いて説明したコーデッドアパーチャペアにおける二度の撮影動作を、一度の撮影動作で済ますことができる。それぞれの開口位置および透過波長帯に対応した各深さのPSFを予め用意しておけば、図1を用いて説明したコーデッドアパーチャペアによる距離算出の手法をこれらの画像に適用することができる。一度の撮影により異なる2つの開口を通過する被写体画像をそれぞれ取得することができるので、画像間に生じる被写体の動き、撮影者の手振れの影響を受けることが無く、距離情報を精度良く算出することができる。
なお、このように撮影される赤色波長帯の被写体画像と青色波長帯の被写体画像は、それぞれR画素フィルタが設けられた画素の出力のみ、または、B画素フィルタが設けられた画素の出力のみを集めて互いに分離されるので、通常の撮影における画像処理とは異なる画像処理により形成される。したがって、ここでは通常の撮影により取得される撮影画像を本撮影画像と呼び、構造化開口を用いて取得される撮影画像を補助撮影画像と呼ぶ。本撮影画像は構造化開口ユニット300をレンズユニット210から抜出して撮影された画像であり、補助撮影画像は構造化開口ユニット300をレンズユニット210へ装着して撮影された画像である。
このように、撮像素子243が入射する被写体光束を複数の波長帯に分離して検出する性質を利用して補助撮影画像を取得すると、次に、被写体の色依存が問題となる。すなわち、上述の構造化開口の場合、Rフィルタ部304を開口とする赤色波長帯の被写体画像は、Rフィルタ部304が透過する色成分を持つ被写体のみが像として現れ、遮断する色成分しか持たない被写体は像として現れない。同じく、Bフィルタ部305を開口とする青色波長帯の被写体画像は、Bフィルタ部305が透過する色成分を持つ被写体のみが像として現れ、遮断する色成分しか持たない被写体は像として現れない。このような被写体に対しては、精度の良い距離情報を算出することができない。
そこで、一度の撮影により取得できる距離情報を更に精度を高めたいときには、Rフィルタ部304とBフィルタ部305を反転させてもう一度補助撮影画像を取得する。つまり、アクチュエータ215を駆動して保持枠301を180度回転させて、同一被写体に対して再度撮影を行う。このとき、反転されたそれぞれのフィルタ部に対応した各深さのPSFを予め用意しておけば、同様にコーデッドアパーチャペアの手法を適用することができる。このように補助撮影画像を二度取得すると、一度目の撮影において一方の開口位置から得られた被写体画像に像が現れない領域が存在しても、二度目の撮影においては同一の開口位置から得られる被写体画像の当該領域に像が現れることが期待できる。したがって、距離情報の精度を高めることができる。
次に、本実施形態に係る一眼レフカメラ200のシステム構成を説明する。図7は、一眼レフカメラ200のシステム構成を概略的に示すブロック図である。一眼レフカメラ200のシステムは、レンズユニット210とカメラユニット230のそれぞれに対応して、レンズシステム制御部216を中心とするレンズ制御系と、カメラシステム制御部245を中心とするカメラ制御系により構成される。そして、レンズ制御系とカメラ制御系は、レンズマウント218とカメラマウント231によって接続される接続部を介して、相互に各種データ、制御信号の授受を行う。
カメラ制御系に含まれる画像処理部246は、カメラシステム制御部245からの指令に従って、撮像素子243で光電変換された撮像信号を画像データに処理する。本撮影画像において処理された画像データは、表示部247へ送られて、例えば撮影後の一定時間の間表示される。これに並行して、処理された画像データは、所定の画像フォーマットに加工され、外部接続IF254を介して外部メモリに記録される。画像処理部246は、補助撮影画像として撮影された撮像信号から、波長帯ごとに分離された被写体画像を生成する。生成された被写体画像は距離情報算出部251へ引き渡され、距離情報算出部251は、上述の手法により距離情報を算出する。算出された距離情報は、カメラメモリ252へ記録される。
カメラメモリ252は、例えばフラッシュメモリなどの不揮発性メモリであり、生成された撮影画像の一時的な記録場所としての他に、一眼レフカメラ200を制御するプログラム、各種パラメータなどを記録する役割を担う。ワークメモリ253は、例えばRAMなどの高速アクセスできるメモリであり、処理中の画像データを一時的に保管する役割などを担う。
レリーズスイッチ255は押し込み方向に2段階のスイッチ位置を備えており、カメラシステム制御部245は、第1段階のスイッチであるSW1がONになったことを検出すると、AFセンサ39から位相差情報を取得する。そして、レンズシステム制御部216へフォーカスレンズ212の駆動情報を送信する。また、AEセンサ237から被写体像の輝度分布を取得して露出値を決定する。さらに、第2段階のスイッチであるSW2がONになったことを検出すると、予め定められた処理フローに従って本撮影画像の取得、または、補助撮影画像の取得を実行する。本撮影画像の取得と補助撮影画像の取得についての処理フローについては後述する。
フラッシュ249は、カメラシステム制御部245の制御に従って被写体を照射する。また、同様にパターン投光部250は、カメラシステム制御部245の制御に従って投光パターンを被写体に投光する。
レンズシステム制御部216は、カメラシステム制御部245からの制御信号を受けて各種動作を実行する。レンズメモリ221は、レンズユニット210に固有であるPSFを保管している。距離情報算出部251は、カメラシステム制御部245およびレンズシステム制御部216を介して、レンズメモリ221からPSFを取得する。また、構造化開口駆動部222は、レンズシステム制御部216の指示に従ってアクチュエータ215を駆動する。
図8は、補助撮影画像の取得から距離情報の算出までの処理フローを示す図である。本フローにおける一連の処理は、カメラシステム制御部245が操作部材を介してユーザから指示を受け付けたとき、または、予め定められた制御プログラムに距離算出処理が組み込まれているとき等に開始される。
ステップS801では、画像処理部246が処理対象となる補助撮影画像を取得する。画像処理部246は、処理対象の補助撮影画像として、撮像素子243から出力された画像信号をそのまま取得しても良いし、撮影後に距離情報を算出しないまま記録部に記録されている補助撮影画像を読み出して取得しても良い。したがって、本実施形態においてはカメラユニット230を画像処理装置として距離情報の算出を実行するが、距離情報の算出は、カメラとは別個の独立した画像処理装置で実行することもできる。例えば、PCを例にすれば、カメラとの間に記録媒体を介在させ、記録媒体に記録された補助撮影画像を読み出して処理することもできるし、有線、無線によりカメラと接続した状態を確立すれば、補助撮影画像の撮影と連動して処理することもできる。
画像処理部246は、ステップS802で、補助撮影画像から、Rフィルタ部304を通過して形成された赤色画像、すなわち、R画素フィルタが設けられた画素の出力から形成される画像を抽出する。同様に、Bフィルタ部305を通過して形成された青色画像を抽出する。画像処理部246は、このように波長帯別画像を抽出すると、これらの画像を距離情報算出部251へ引き渡す。
距離情報算出部251は、波長帯別画像を受け取ると、ステップS803で、レンズメモリ221に保管されているレンズユニット210のPSFを取得する。なお、距離情報の算出処理が補助撮影画像の撮影動作と連続しない場合には、レンズユニット210が他のレンズユニット210に交換されている場合もあるので、距離情報算出部251は、他の保管場所からPSFを取得するように構成しても良い。
例えば、補助画像データは、撮影処理時にレンズメモリ221に記録されているPSFをEXIF情報などの付帯情報として取り込むこともできるし、カメラメモリ252は、レンズユニット210が装着されるタイミングでレンズメモリ221からPSFを取り込むこともできる。したがって、距離情報算出部251は、補助撮影画像の付帯情報、カメラメモリ252などからPSFを取得することもできる。なお、距離情報算出部251は、補助撮影画像の付帯情報として記録されているレンズユニット情報と開口位置情報から、カメラメモリ252などの記録部に記録されているPSFから使用すべきPSFを特定することもできる。このような場合は、補助撮影画像の撮影時に用いられたレンズユニットの情報を取得するステップと、当該レンズユニットに対応するそれぞれのPSFを取得するステップとを分けて処理すると良い。
距離情報算出部251は、このように取得した波長帯別画像とこれに対応したPSFを用いて、ステップS804で、距離情報を算出する。距離情報は、上述のようにコーデッドアパーチャペアの手法を用いて算出される。なお、算出された距離情報は、距離画像データとして別途独立したファイルを生成しても良いし、補助撮影画像に付帯して記録しても良い。別途独立したファイルを生成する場合には、補助撮影画像に対してリンク情報を記録する。算出された距離情報は、例えば、同一距離と判断された被写体が存在する画素領域情報と当該距離をセットとして、距離ごとに複数セット分リスト化されたテーブル形式のデータ構造を有する。算出できる距離の分解能は、PSFがどれだけの距離ピッチごとに用意されているかに依存するので、高い分解能を得たい場合には、細かい距離ピッチで刻んだPSFを予め用意すれば良い。以上により一連の処理フローを終了する。
構造化開口を回転させて二度の補助撮影画像を行った場合には、それぞれの補助撮影画像に対して上述のフローを繰り返す。ただし、一枚目の補助撮影画像を用いて算出した結果、距離情報が抜け落ちた領域が無ければ、二枚目の補助撮影画像の処理を実行することなくそのまま終了しても良い。なお、二枚目の補助撮影画像の処理により、一枚目の補助撮影画像の処理で距離情報が抜け落ちた領域を修正するのみならず、互いに算出された距離情報を比較することによりエラーチェックを行うこともできる。
以上の説明においては、構造化開口としてRフィルタ部304とBフィルタ部305の2つの開口を有する構造化開口ユニット300を例に説明したが、構造化開口には他にもさまざまバリエーションが存在する。その例を以下に説明する。
図9は、他の構造化開口400の構成を示す図である。図3のフィルタ302がRフィルタ部304およびBフィルタ部305の2つのフィルタ部を有するのに対して、構造化開口400のフィルタ402は、Rフィルタ部404およびBフィルタ部405に加え、緑色の波長帯を透過させるGフィルタ部406を有する。
具体的な構造として、保持枠401は、中心部分が中空の円筒形を成し、フィルタ402は、保持枠401の中空部分に張設されて固定されている。保持枠401の外周部にはギア407が全周にわたって設けられている。したがって、保持枠301に代えて保持枠401を構造化開口ユニット300に適用すれば、上述の使用形態と同様の使用形態を実現させることができる。
図示するように、Rフィルタ部404、Gフィルタ部406およびBフィルタ部405は、フィルタ402の中心を通る光軸201に対して、それぞれ偏心した位置であって互いに120度の間隔を成す対称位置に設けられている。別言すれば、遮断フィルタ部403の中心に対して、それぞれ偏心した位置であって互いに120度の間隔を成す対称位置に設けられた3つの開口に、赤色の波長帯を透過させるRフィルタ部404、緑色の波長帯を透過させるGフィルタ部406および青色の波長帯を透過させるBフィルタ部405が形成されている。
Gフィルタ部406を加えることにより、撮像素子243におけるG画素フィルタが設けられた画素の出力である緑色画像を補助撮影画像として利用することができる。このように構造化開口を設定すれば、撮像素子243が分離する波長帯を余すことなく利用でき、距離情報の精度向上に寄与する。具体的には、それぞれの開口位置および透過波長帯に対応した各深さのPSFを予め用意しておけば、図1を用いて説明したコーデッドアパーチャペアによる距離算出の手法をこれらの画像に適用することができる。ただし、各計算式において、i=1、2、3とする。さらに、自転機構を利用して各フィルタ部の相対的な位置関係を変更して補助撮影画像を取得すれば、より精度の高い距離情報を算出することができる。
なお、上述のように、G画素フィルタが設けられた画素は、緑色波長帯と共に若干の赤色波長帯にも青色波長帯にも感度を有するので、緑色画像は、Rフィルタ部404およびBフィルタ部405を通過した被写体光束の影響を受けている。したがって、緑色画像は純粋にGフィルタ部406の開口を通過した被写体光束による画像とは言えないので、距離情報を算出する処理においては、緑色画像を補助的に利用することが好ましい。この意味において、開口を2つに設定する場合には、互いの被写体光束の影響を受けにくいように、撮像素子が分離する複数の波長帯において互いに最も離れた波長帯に対応するフィルタをそれぞれ用いることが好ましいと言える。
また、補助撮影画像から、赤色画像、緑色画像および青色画像が抽出できれば、被写体画像としてカラー画像を形成できる。したがって、構造化開口を介しながらも一定画質の視認用画像を取得することができる。
図10は、更に他の構造化開口500の構成を示す図である。図3を用いて説明した構造化開口ユニット300は、自転機構を利用してRフィルタ部304とBフィルタ部305の相対位置を反転させた。また、本撮影画像を撮影するときは構造化開口ユニット300をレンズユニット210から抜出し、補助撮影画像を撮影するときは構造化開口ユニット300をレンズユニット210へ装着した。これに対し、構造化開口500は、公転機構を利用してRフィルタ部とBフィルタ部の相対位置を反転させ、本撮影画像を撮影するときもレンズユニット210から抜出することを要しない。
レンズ鏡筒517は、少なくとも構造化開口500を内包する部位において断面が広く設定されている。なお、図4を用いて説明したレンズ鏡筒217に相当する外形は、点線511に相当する。構造化開口500は、3つの開口を有する保持枠501と、そのうちの2つの開口に張設されたフィルタ522,532を主な構成要素とする。保持枠501の中心には回転軸510が設けられており、保持枠501はレンズ鏡筒517に対して回転自在に軸支されている。保持枠501は全体として円形を成し、その外周部分には全集にわたって内向きにギア506が設けられている。ギア506は、レンズ鏡筒517内に支持されたアクチュエータ515と直接またはギアトレインを介して連結されており、保持枠501は、アクチュエータ515の駆動により回転軸510回りに回転する。
保持枠501は、回転軸510を中心として互いに120度の間隔を成す対称位置に、被写体光束と略同じ大きさ開口を3つ備えている。そのうちの一つにフィルタ522が、他の一つにフィルタ532が張設され、残り一つは被写体光束の全部を通過させる全開口542である。そして、レンズシステム制御部216は、アクチュエータ515の駆動により、フィルタ522、532および全開口542のうちのいずれか一つを、光軸201を中心とする被写体光束中に配設することができる。つまり、被写体光束にフィルタ522、532および全開口542のいずれかを挿抜することができる。
フィルタ522は、フィルタ302と同様に、被写体光束を遮断する遮断フィルタ部523、赤色の波長帯を透過させるRフィルタ部524および青色の波長帯を透過させるBフィルタ部525から構成される。赤色の波長帯を透過させるRフィルタ部524と青色の波長帯を透過させるBフィルタ部525は、遮断フィルタ部523の中心に対して、それぞれ偏心した位置であって互いに対称となる位置に設けられたペアとなる2つの開口にそれぞれ形成されている。
同様に、フィルタ532も、被写体光束を遮断する遮断フィルタ部533、赤色の波長帯を透過させるRフィルタ部534および青色の波長帯を透過させるBフィルタ部535から構成される。赤色の波長帯を透過させるRフィルタ部534と青色の波長帯を透過させるBフィルタ部535は、遮断フィルタ部533の中心に対して、それぞれ偏心した位置であって互いに対称となる位置に設けられたペアとなる2つの開口にそれぞれ形成されている。
そして、フィルタ522の開口のペアとフィルタ532の開口のペアは、保持枠501が120度回転されたときに一致するように配置されている。また、Rフィルタ部524とBフィルタ部525の相対位置関係は、Rフィルタ部534とBフィルタ部535の相対位置関係と逆転して形成されている。したがって、被写体光束にフィルタ522を配設したときとフィルタ532を配設したときで、ちょうどRフィルタ部とBフィルタ部の関係が入れ替わった状態を実現する。
なお、保持枠501のうち、3つの開口を形成するプレート部分は非透過部材で形成することが好ましい。さらには、植毛紙等の遮光部材で表面を処理することが好ましい。このような対策により、鏡筒内の迷光を遮断することが期待できる。
以上のように構造化開口500を構成すれば、ユーザによる構造化開口ユニットの挿抜動作を省くことができる。すなわち、レンズシステム制御部216がアクチュエータ515を駆動して自動的に、本撮影画像を撮影するときには全開口542を被写体光束に配置させ、補助撮影画像を撮影するときにはフィルタ522,532を被写体光束に配置させることができる。なお、保持枠501にフィルタを張設する開口をさらに追加して、構造化開口400の3つのフィルタ部が順次相対的な位置関係を変えながら被写体光束に挿抜されるように構成しても良い。
図11は、更に他の構造化開口700の構成を示す図である。これまでに説明した構造化開口は、遮断フィルタ部に設けられた開口にRフィルタ部、Gフィルタ部、Bフィルタ部のいずれかを配して構成されていた。このような構成は、撮像素子243を構成する画素に設けられた画素フィルタのいずれかの波長帯に一致させることを目的としている。これに対し、構造化開口700のフィルタ構成は、フィルタ302と補色の関係にある。
保持枠701は、中心部分が中空の円筒形を成し、フィルタ702は、保持枠701の中空部分に張設されて固定されている。保持枠701の外周部にはギア706が全周にわたって設けられている。したがって、保持枠301に代えて保持枠701を構造化開口ユニット300に適用すれば、構造化開口ユニット300の使用形態と同様の使用形態を実現させることができる。
フィルタ702は、被写体光束を透過する透過フィルタ部703、シアンの波長帯を透過させるCフィルタ部704およびイエローの波長帯を透過させるYフィルタ部705から構成される。図示するようにCフィルタ部704とYフィルタ部705は、フィルタ702の中心を通る光軸201に対して、それぞれ偏心した位置であって互いに対称となる位置に設けられている。別言すれば、透過フィルタ部703の中心に対して、それぞれ偏心した位置であって互いに対称となる位置に設けられた2つの開口に、シアンの波長帯を透過させるCフィルタ部704とイエローの波長帯を透過させるYフィルタ部705が形成されている。
シアンは赤色の補色であり、Cフィルタ部704は、被写体光束のうち赤色の波長帯を遮断するが青色と緑色の波長帯を通過させる。イエローは青色の補色であり、Yフィルタ部705は、被写体光束のうち青色の波長帯を遮断するが赤色と緑色の波長帯を通過させる。したがって、R画素フィルタが設けられた画素の出力を集めて生成される赤色画像は、Cフィルタ部704に入射する赤色の被写体光束が遮断された被写体画像であり、Cフィルタ部704の偏心位置に基づいた偏りを持った被写体画像である。同様に、B画素フィルタが設けられた画素の出力を集めて生成される青色画像は、Yフィルタ部705に入射する青色の被写体光束が遮断された被写体画像であり、Yフィルタ部705の偏心位置に基づいた偏りを持った被写体画像である。
したがって、それぞれの開口位置および遮断波長帯に対応した各深さのPSFを予め用意しておけば、図1を用いて説明したコーデッドアパーチャペアによる距離算出の手法をこれらの画像に適用することができる。一度の撮影により異なる2つの開口を通過する被写体画像をそれぞれ取得することができることは構造化開口ユニット300と同様であり、画像間に生じる被写体の動き、撮影者の手振れの影響を受けることが無く、距離情報を精度良く算出することができる。
また、緑色の波長帯は、フィルタ702のいずれの部分によっても遮断されないので、G画素フィルタが設けられた画素の出力は、本撮影画像の撮影における出力とほぼ同様である。したがって、赤色画像と青色画像と共に緑色画像も取得できるので、被写体画像としてカラー画像を形成できる。これにより、構造化開口を介しながらも一定画質の視認用画像を取得することができる。なお、緑色の補色であるマゼンタの波長帯を透過させるMフィルタ部も含めれば、構造化開口400、500の形態にもこのような補色関係にあるフィルタ部を適用することができる。
次に、構造化開口を配設する位置について説明する。上述の実施形態においては図2で示すように、構造化開口をレンズユニット210の瞳位置またはその近傍に配設した。しかし、構造化開口の配設位置はレンズユニット210の瞳位置近傍に限らない。図12は、構造化開口の他の配設位置を説明する説明図である。
一眼レフカメラ800は、レンズユニット810とカメラユニット830とから構成される。レンズユニット810の瞳位置801を通過した被写体光束は一次結像面831に結像する。一次結像面831で一旦結像した被写体光束は、さらに光学系を介して撮像素子843の受光面である二次結像面に結像する。構造化開口802は、一次結像面831と二次結像面である撮像素子843の受光面の間に位置する、瞳位置801と共役な位置に配設される。すなわち、構造化開口は、レンズユニットの瞳位置またはその近傍に限らず、これに共役な位置またはその近傍に配設しても良い。特に、一眼レフカメラのようにレンズ交換式カメラの場合、カメラユニット側に構造化開口を設ければ、レンズユニットごとに構造化開口を配設しなくても良い。
以上の実施形態においては、一眼レフカメラを例に説明したが、光学ファインダを持たないレンズ交換式カメラ、レンズユニットが一体化されたコンパクトカメラ、動画撮影を行うこともできるビデオカメラといった撮像装置に対しても適用することができる。
また、以上の実施形態においては、撮像素子としてベイヤー配列のカラーフィルタを有する単板式撮像素子を例に説明したが、他のカラーフィルタ配列であっても良く、さらには、RGBに限らず他の波長帯を透過させるフィルタが配列されていても良い。この場合、構造化開口のフィルタ部は、撮像素子のカラーフィルタの波長帯に応じて透過および遮断波長帯が選択される。また、カラーフィルタを持たず、フォトダイオードの奥行き方向に異なる感応波長帯を有する撮像素子に対しても適用できる。この場合、構造化開口のフィルタ部は、フォトダイオードの奥行き方向で分離される波長帯に応じて透過および遮断波長帯が選択される。さらには、単板の撮像素子を備えるカメラに限らず、例えばRGBのそれぞれに分けられた三板式カメラのような、入射する被写体光束を複数の波長帯に分離してそれぞれの波長帯を独立して受光する複数の撮像素子を備えるカメラに対しても適用することができる。
次に、図2等を用いて説明した、構造化開口ユニット300を適用した一眼レフカメラ200による撮影シーケンスの例を説明する。ただし、バリエーションとして説明した他の構成の構造化開口、構造化開口の配設位置、撮像素子の種類、数等についても、適宜組み合わせて適用し得る。
図13は、本撮影画像および補助撮影画像の取得フローを示す図である。撮影シーケンスが開始されると、カメラシステム制御部245は、ステップS1301で、これから行う撮影動作が本撮影画像の撮影動作か、補助撮影画像の撮影動作かを判断する。本撮影画像の撮影動作であると判断したときは、ステップS1302へ進む。
ステップS1302でカメラシステム制御部245は、ユーザにより構造化開口ユニット300が被写体光束から抜出されているか否かを判断する。抜出さているか否かは、例えば、アクチュエータ215を回転させたときに検出される負荷の大小により判断できる。または、フォトインタラプタなどのセンサを設けて判断しても良い。なお、図10を用いて説明した構造化開口500のような公転機構を採用する場合は、ステップS1302の判断処理に代えて、アクチュエータ515により全開口542を被写体光束に挿入する動作処理を実行する。
カメラシステム制御部245は、構造化開口ユニット300が抜出されたと判断したらステップS1303へ進む。抜出されるまではステップS1302で待機する。
ステップS1303では、カメラシステム制御部245は、レリーズスイッチ255のSW1がONにされるのを待って、被写体の測光を行う。具体的には、カメラシステム制御部245は、AEセンサ237から被写体像の輝度分布を取得する。カメラシステム制御部245は、被写体像の輝度分布を取得したら、ステップS1304に進み、露出値を算出する。ここで、露出値とは、撮像素子243を被写体光束に露光する露光時間、被写体光束を制限する絞り214の絞り値、および撮像素子243の読み出しゲインに対応するISO感度の3つの数値である。
露出値は、カメラメモリに予め記録されたプログラム線図によって決定される。例えば、ユーザにより絞り優先モードに設定されている場合は、カメラシステム制御部245は、ユーザが設定した絞り値はそのままにして、露光時間と撮像感度を一定のルールに即して設定されているプログラム線図上の値により決定する。
また、カメラシステム制御部245は、SW1がONにされると、測光処理の他にも合焦動作などの撮影準備処理を実行する。合焦動作は、AFセンサ240から取得された位相差情報に基づいて、レンズシステム制御部216がフォーカスレンズ212を駆動することにより実現される。
撮影準備処理が終了すると、カメラシステム制御部245は、ステップS1305へ進み、レリーズスイッチ255のSW2がONにされるのを待って、本撮影画像の取得動作を実行する。具体的には、メインミラー232およびサブミラー238を被写体光束から退避させ、決定された露出値に従って絞り214およびフォーカルプレーンシャッタ241を動作させる。さらに、フォーカルプレーンシャッタ241が開放されている間に撮像素子243の各画素に蓄積された電荷を読み出し、画像処理部246に予め設定されたフォーマットに従って画像ファイルを生成させ、当該画像ファイルを記録部に記録する。
カメラシステム制御部245は、一連の本撮影画像の撮影動作が終了したらステップS1306へ進み、引き続き補助撮影画像の撮影動作が指示されているか否かを判断する。補助撮影画像の撮影動作が指示されていなければ、一連の処理を終了する。
カメラシステム制御部245は、ステップS1301またはステップS1306で補助撮影画像の撮影動作が指示されていると判断したら、ステップS1307へ進み、ユーザにより構造化開口ユニット300が被写体光束中に装着されているか否かを判断する。カメラシステム制御部245は、構造化開口ユニット300が装着されるまでステップS1307で待機する。なお、図10を用いて説明した構造化開口500のような公転機構を採用する場合は、ステップS1307の判断処理に代えて、アクチュエータ515によりフィルタ522またはフィルタ532を被写体光束に挿入する動作処理を実行する。
カメラシステム制御部245は、構造化開口ユニット300が装着されたと判断したらステップS1308へ進む。補助撮影画像の撮影動作は、被写体光束中に構造化開口を介在させて実行するので、撮像素子243に到達する被写体光束の光学的条件が、本撮影画像の撮影動作時とは大きく異なる。簡単には、撮像素子243に到達する被写体光束が構造化開口によって制限されるので、本撮影画像の撮影条件と同じ条件では暗い画像が取得されることになる。そこで、カメラシステム制御部245は、補助撮影画像の撮影条件を、本撮影画像の撮影条件とは異ならせる。
そこで、本実施形態においては、カメラシステム制御部245は、補助撮影画像の撮影動作時にフラッシュ249を動作させて被写体を照射する。カメラシステム制御部245は、ステップS1308へ進むと、SW1がONにされるのを待って、フラッシュ249の事前照射動作であるプリ発光を行い、被写体の測光を行う。具体的には、カメラシステム制御部245は、AEセンサ237から被写体像のプリ発光時における輝度分布を取得する。
カメラシステム制御部245は、被写体像の輝度分布を取得したら、ステップS1309へ進み、露出値を算出する。このときの露出値はフラッシュ249の発光を前提とした値であり、したがって、カメラシステム制御部245は、ステップS1310へ進み、撮影動作時におけるフラッシュ249の照射量を決定する。なお、照射量の算出は、AEセンサ237から得られる輝度分布情報から行っても良いが、本撮影画像の撮影動作時にもフラッシュ249を照射させたのであれば、当該撮影動作時における照射量から、補助撮影画像の撮影動作における照射量を算出しても良い。具体的には、構造化開口を被写体光束中に介在させることによりカットされる光量は事前の実験等により把握されるので、これに応じて低下する露出段数分に相当する光量を本撮影画像の撮影動作時における照射量に足して算出する。
なお、ステップS1309における露出値の算出は、ステップS1310のフラッシュ249の照射量の決定とセットで実行されるが、露出値のうちISO感度については、ステップS1304で算出されるISO感度よりも大きく設定すると良い。すなわち、補助撮影画像における被写体のぶれは、距離情報の算出に悪影響を及ぼし精度の低下を招くので、撮像素子243に対する露光時間は短いことが好ましい。そこで、露光時間を短くすべく、ISO感度を大きく設定する。補助撮影画像はユーザの鑑賞画像ではないので、距離情報の算出に影響しない限りにおいてISO感度が大きく設定されても良い。したがって、カメラシステム制御部245が設定し得るISO感度の上限は、本撮影画像の撮影動作時の値と補助撮影画像の撮影動作時の値で異なり、補助撮影画像の撮影動作時の値の方が大きい。
このように撮影動作時における露出値と照射量が決定されると、カメラシステム制御部245は、ステップS1311へ進み、レリーズスイッチ255のSW2がONにされるのを待って、第1補助撮影画像の取得動作を実行する。具体的には、メインミラー232およびサブミラー238を被写体光束から退避させ、決定された露出値に従って絞り214およびフォーカルプレーンシャッタ241を動作させる。このとき、決定された照射量に従ってフラッシュ249を動作させ被写体を照射する。さらに、フォーカルプレーンシャッタ241が開放されている間に撮像素子243の各画素に蓄積された電荷を読み出し、画像処理部246に赤色画像および青色画像を含む補助撮影画像ファイルを生成させ、当該画像ファイルを記録部に記録する。
さらにカメラシステム制御部245は、ステップS1312へ進み、レンズシステム制御部216およびアクチュエータ215を介して構造化開口ユニット300の保持枠301を回転させ、Rフィルタ部304とBフィルタ部305の相対的な位置関係を反転させる。
そして、ステップS1313へ進み、同じ露出値と照射量で第2補助撮影画像の取得動作を実行する。具体的な処理は第1補助撮影画像の取得動作と同様である。以上により一連の処理を終了する。
なお、本フローにおいては、補助撮影画像として、Rフィルタ部304とBフィルタ部305を反転させて二度撮影動作を行った。しかし、上述のように一枚の補助撮影画像からも距離情報は算出できるので、特に精度を求めないのであれば第2補助撮影画像の取得を省いても構わない。または、第1補助撮影画像を解析して、被写体領域中に距離を算出できない領域があると判断されたときに、第2補助撮影画像の取得を実行しても良い。また、構造化開口400のように緑色画像も利用する場合には、3つのフィルタ部の相対的な位置関係を変えつつ三度の撮影動作を実行しても良い。
また、本フローにおいては、補助撮影画像の撮影動作時にフラッシュ249を照射させて構造化開口による光量低下を補った。しかし、被写体環境によってはフラッシュ249を照射させずに他の撮影条件を変更することにより光量低下を補っても良い。例えば、上述のように、ISO感度を大きな値に設定する。または、予め定められた露光時間を下限として、露光時間を長めに設定しても良い。つまり、カメラシステム制御部245は、本撮影画像の撮影条件に比較して、補助撮影画像の撮影条件を、被写体光束をより取り込む、取り込んだ光をより増幅する方向に変更すればよい。
また、本フローにおいては構造化開口ユニット300を利用することを前提に説明したが、図1を用いて説明した従来のシングルコーデッドアパーチャ、コーデッドアパーチャペアを利用する場合であっても、撮像素子243に到達する被写体光束が構造化開口によって制限されることに変わりはない。したがって、いずれの構造化開口を利用する場合であっても、カメラシステム制御部245は、補助撮影画像の撮影条件と本撮影画像の撮影条件を異ならせることが好ましい。
また、従来のシングルコーデッドアパーチャ、コーデッドアパーチャペアを利用する場合であれば、被写体を照射する照射光に赤外光を利用しても良い。赤外光を利用すれば、被写体が人物であるような場合に、まぶしいと感じさせることなく補助撮影画像を取得することができる。
次に、補助撮影画像から算出された距離情報を本撮影画像に適用する手法について説明する。上述のように補助撮影画像は構造化開口を介して取得されるので、たとえRGBのそれぞれの像を得たとしても、本撮影画像に対しては画質が劣化する。つまり、補助撮影画像は、観賞用の画像としては好ましくない。
一方で、被写体領域の距離情報として有効に利用されるのは、本撮影画像に写る被写体に対する距離情報である。したがって、本撮影画像と補助撮影画像を連続的に取得して、補助撮影画像から得られた被写体の距離情報を本撮影画像に適用することが好ましい。しかしながら、連続的に撮影する場合であっても、被写体が動いていたり、カメラを持つユーザの手が揺れていると、それぞれに写る被写体には相互にずれが生じることになる。すると、算出した距離情報をそのまま本撮影画像に適用できない。そこで、本実施形態においては、それぞれに写る被写体に生じた相互のずれを移動ベクトルとして算出し、この移動ベクトルを用いて距離情報を補正する。
図14は、補助撮影画像から本撮影画像の距離情報を算出する算出処理の説明図である。ここでは、連続撮影により取得された一枚目の第1本撮影画像、補助撮影画像、二枚目の第2本撮影画像を取り込んで、補助撮影画像から算出された距離情報を第1本撮影画像および第2本撮影画像へ適用する場合について説明する。また、ここでは、それぞれの撮影画像を取得してシーケンシャルに距離情報を算出する場合について説明する。したがって、本実施形態では具体的な算出処理は一眼レフカメラ200の距離情報算出部251が実行するが、上述のように、算出処理は、カメラ内で実行しなくても、例えばPCなどの独立した画像処理装置で実行することもできる。
連続的に撮影された第1本撮影画像、補助撮影画像、第2本撮影画像は、それぞれ時刻t1、t2、t3に撮影された撮影画像である。それぞれの撮影時刻は、ワークメモリ253でそれぞれの撮影画像に対応させて記憶されている。あるいは、それぞれの画像ファイルのタグ情報に記録されていても良い。
時刻t1に撮影された第1本撮影画像には、図示するように、移動体901と静止体902が写っている。そして、時刻t3に撮影された第2本撮影画像にも、移動体901と静止体902が写っているが、これらの相対位置は第1本撮影画像における相対位置と異なっている。そこで、それぞれの画像領域に対して小領域を設定し、互いの画像間で2次元的に走査してマッチングを行う。マッチングの高い小領域間を囲んで同一被写体と推定される被写体領域を分類すると、移動体901と静止体902を分離することができる。
移動体901として分離されたそれぞれの領域を、移動体枠910、911として示す。すると、例えば、第1本撮影画像における移動体枠910の重心位置と、第2本撮影画像における移動体枠911の重心位置の差分を計算することにより、時刻t1から時刻t3の間に移動体901が移動した移動量を取得することができる。つまり、それぞれの画像の2次元方向を座標系とする画像座標系における移動ベクトル920を算出することができる。
距離情報算出部251は、補助撮影画像からは各領域における距離情報を算出しているので、補助撮影画像における移動体901と静止体902のそれぞれの距離情報を把握している。また、補助撮影画像は時刻t2に撮影された画像であるから、時刻t1と時刻t2に対する時刻t3の内分比に応じて移動ベクトル920を分割すれば、時刻t1から時刻t2に対する移動ベクトル921と、時刻t2から時刻t3に対する移動ベクトル922を算出することができる。
移動ベクトル921と移動体枠910が算出できれば、補助撮影画像に移動ベクトル921の分だけ移動された移動体枠910を当てはめて当該領域の距離情報を取得できる。この距離情報が第1本撮影画像の移動体枠910における距離情報となる。また、静止体902に対応する領域はそのまま共通の距離情報として採用できる。なお、補助撮影画像の静止体902のうち移動体901に隠れている領域は、第1本撮影画像に対して距離情報を直接持ち得ないが、例えば周りの距離情報から補間処理を施すことにより補うことができる。
同様に、補助撮影画像から第2本撮影画像に対する移動体901の移動ベクトル922と移動体枠911を用いて、第2本撮影画像の移動体901の距離情報を算出することができる。また、静止体902に対応する領域、移動体901に隠れる領域も同様に処理できる。
なお、上述の例においては、二枚の本撮影画像の間に補助撮影画像が挟まれた場合を説明したが、例えば二枚の本撮影画像の後に補助撮影画像が取得されても良い。その場合、二枚の本撮影画像から取得された移動ベクトルを撮影時刻に応じて外分すれば良い。
以上の手順により、補助撮影画像と共に連続して撮影される本撮影画像の距離情報を取得することができる。なお、補助撮影画像は、距離情報の精度を高めたい場合には、例えばRフィルタ部304とBフィルタ部305を反転させた二枚を取得するが、その場合は、第1本撮影画像と第2本撮影画像の間に二枚の補助撮影画像が介在することになる。二枚の補助撮影画像を介在させる場合には、それぞれの撮影時刻を考慮して移動ベクトルを算出すれば良い。
ただし、被写体中に移動体が存在する場合には、本撮影画像間の時間差が大きくなるので、間に撮影される補助撮影画像を一枚にすることが好ましい。その意味において、ユーザの手作業を介する構造化開口ユニット300のような挿抜機構ではなく、フィルタ部と開口部を自動的に切り替えることのできる、例えば図10を用いて説明した構造化開口500のような構成を採用することが好ましい。
また、本フローにおいては構造化開口としていずれの構成も採用できる。すなわち、図1を用いて説明した従来のシングルコーデッドアパーチャ、コーデッドアパーチャペアを利用する場合であっても、連続して本撮影画像と補助撮影画像を取得すれば、上述のフローを再現することができる。
上述の説明においては、第1本撮影画像と第2本撮影画像の間で移動ベクトルを算出した。すなわち、構造化開口の影響を受けない画像どうしで移動ベクトルを算出することにより、移動ベクトルの精度を高めた。しかし、構造化開口の影響を無視し得れば、本撮影画像と補助撮影画像の二枚に対して同様の手法を採用できる。つまり、補助撮影画像にも移動体901は写っているので、本撮影画像との間でマッチング処理を行えば、両者間の移動ベクトルを算出することができる。算出された移動ベクトルと移動体枠を適用して、補助撮影画像の距離情報を本撮影画像の距離情報として補正できるのは、上述の処理と同様である。このように、本撮影画像と補助撮影画像間で直接的に距離情報の補正処理を実行する場合、撮影時刻による内分処理を伴わないので、それぞれの撮影時刻が記録されていなくても良い。また、当然ながら二枚の本撮影画像が取得されていなくても良い。
次に、本撮影画像と補助撮影画像の撮影シーケンスのバリエーションについて説明する。図15は、本撮影画像と補助撮影画像の撮影シーケンスについて説明する図である。カメラシステム制御部245は、ステップS1501で本撮影画像の撮影を実行すると、SW2のON、OFFに関わらず、続けて補助撮影画像の撮影を実行する。補助撮影画像の撮影の後、ステップS1503でSW2のONが継続されていれば、ステップS1504で再び本撮影画像の撮影を実行し、これを繰り返す。カメラシステム制御部245は、ステップS1503でSW2がOFFであることを検知して一連の撮影シーケンスを終了する。つまり、最初の本撮影画像の撮影後に一枚の補助撮影画像を撮影する。これにより、連続して取得される本撮影画像の距離情報を算出することができる。
図16は、本画撮影像と補助撮影画像の他の撮影シーケンスについて説明する図である。カメラシステム制御部245は、ステップS1601で本撮影画像の撮影を実行し、ステップS1602で、続けてSW2のONが検出されれば、本撮影画像の撮影を繰り返す。OFFであることが検知されればステップS1603へ進んで、SW2のON、OFFに関わらず続けて補助撮影画像の撮影を実行し、一連の撮影シーケンスを終了する。つまり、連続する本撮影画像の撮影後に一枚の補助撮影画像を撮影する。これにより、連続して取得される本撮影画像の距離情報を算出することができる。
図17は、本画撮影像と補助撮影画像の他の撮影シーケンスについて説明する図である。カメラシステム制御部245は、SW2のONが検出されると、ステップS1701でフラグmに0を代入する。そして、ステップS1702でSW2のONが継続して検出されれば、ステップS1703へ進み、まずフラグmをカウントアップする。続けてステップS1704へ進み本撮影画像を撮影する。カメラシステム制御部245は、ステップS1705へ進み、フラグmが予め定められたm0と等しいか否かを判断する。等しくなければステップS1702へ戻って本撮影画像の撮影を繰り返す。等しければステップS1706へ進み、補助撮影画像を撮影して、再びステップS1701へ戻る。ステップS1702でSW2のOFFが検出されると、カメラシステム制御部245は一連の撮影シーケンスを終了する。つまり、予め定められたm0枚の本撮影画像の撮影ごとに一枚の補助撮影画像を撮影する。これにより、連続して取得される本撮影画像の距離情報を算出することができる。
以上の撮影シーケンスは互いに組み合わせても良い。また、前回実行された補助撮影画像の撮影との間に実行された本撮影画像の撮影の回数を考慮して補助撮影を実行するか否かを決定しても良い。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。