多眼カメラ10は、図1に示すように、円形状の撮影開口11がカメラボディ12の前面に円周状に並べて複数設けられている。各撮影開口11の奥には、撮影レンズ(結像光学系)23、及び撮像素子(図示なし)が配されている。この例では、撮影開口11、撮影レンズ23、及び撮像素子を含む個眼撮像部を構成し、複数の個眼撮像部を一纏めにした構成を多眼撮像部としている。そして、複数の個眼撮像部は、各個眼撮像部の撮影レンズ23により形成される光学瞳が撮影光軸に直交する面内で円周上に密になるように、配設されている。なお、絞りは、図示していないが、結像光学系内に設けても良いし、結像光学系の外に設けても良い。
各撮像素子は、例えば低画素で、かつ消費電力の少ない撮像素子が用いられている。また、各撮影レンズの光軸は、略平行になっている。各撮像素子は、撮影レンズの光軸に対して撮像面が垂直になるように配されている。
多眼カメラは、カメラボディ12の上面にシャッタボタン13、及び電源スイッチ14が配されており、1回のシャッタレリーズにより、視点の異なる複数の画像データを同時に取得し、これら画像データをパラメータに応じて画像処理をすることで、奥行き毎に鮮鋭度の調整(焦点の調整)、すなわち画面内の特定の被写体を意図的にぼかす処理を行って生成する任意焦点画像、ボケの強さや配置(ボケの大きさや形状、重み付け)を調節処理して生成するボケ生成画像、及びこれらボケ生成画像と任意焦点画像との処理を組み合わせて生成する視点を付与した立体視用任意視点の任意焦点、任意ボケ生成画像を生成することも可能である。すなわち(1)「光軸方向の焦点位置」、(2)「ボケの大きさ」、(3)「視点」の3つのパラメータを自由に選択可能なカメラを構成可能である。また、複数のカメラを用いることにより多画素化が可能で、高解像度画像データ、すなわち多画素化の画像データを生成することもできる。
カメラボディ12の背後には、図2に示すように、LCD15が配されている。LCD15は、透明なタブレット34とともにタッチパネルを構成する。タッチパネルには、スルー画像(もしくは後述する合成開口法によりピント合わせを行った画像や、ボケアルゴリズムによってボケを付与させた画像)に重ねてメニューの文字や操作ボタン等の絵柄が表示され、タッチ操作により変倍操作、焦点面の指定、ボケパラメータ(仮想口径の大きさ、形状、重み付け)の選択等のパラメータ入力をする。
本発明は後述のボケアルゴリズムを用いるカメラで特に光学瞳の分布が円周状もしくは矩形状になっているカメラに関するものであり、このような光学瞳の分布とすることで光学瞳が方眼配置された図3のような多眼カメラよりもさらに美しいボケを与えることができるようにしたものである。まず図3のように光学瞳が方眼配置された通常の多眼カメラを例に、ボケアルゴリズムの説明を行い、より美しいボケを与える光学瞳の配置については図1などを用いて後述する。
図3に示す多眼カメラ9は、光学瞳が二次元状に並ぶように、つまり撮影開口11がマトリクス状に配列されている。これらの開口ひとつずつに2次元の撮像素子が装着されており、文字通り多眼カメラとなっている。撮影開口11のx方向、及びy方向の間隔は、疑似ランダム系列であるM系列に従った所定の周期パターンに設定される。この場合、M系列の自己相関関数は、デルタ(δ)関数に近く、ピーク以外では相関関数値が一定となる特徴を備えている。自己相関関数がデルタ関数的であるので、パワースペクトルがフラット(周波数に依存せずに一定)になる。このことはボケを生成する際に特定の周波数成分を強調することがなくなるので望ましい性質である。
5×5の25眼の方眼配置のカメラの場合は、[数6]により合成開口出力を計算する際に例えば[数1]、[数2]、[数3]に記載された重みを乗じてから合成開口出力としてもよい(なお、図46以降のカメラ配置で合成開口法により合成開口出力を計算する際には、各カメラの撮像素子の重みを1として[数6]により計算する)。図3で説明したM系列配置で選択した16眼の場合にはそれぞれの重みを「1」として[数6]に記載の式により合成開口出力を計算する。この場合の合成光軸は、例えば図5で説明したX=3、Y=3のカメラとする。
数列Xi(i=1〜m、(mは周期))のM系列疑似ランダム数列は、一般的に、「1」以上の整数nに対して「2n−1」の周期mを持つ「0」と「1」の2値の数列であって、1つの周期mの中の数列の数は奇数で、「0」の数と「1」の数の差が「1」となる。よって、整数nと周期mとの組み合わせ(n,m)としては、(3,7)、(4,15)、(5,31)、(6,63)等がある。
図4に示すように、例えば整数nが「2」で周期mが「3」の数列では、「1,0,1」となり、また、例えば整数nが「3」で周期mが「7」の数列では、「1,1,1,0,1,0,0」となり、さらに、例えば整数nが「4」で周期mが「15」の数列では、「1,1,1,1,0,1,0,1,1,0,0,1,0,0,0」となる。本実施形態では、例えば整数nが「3」で周期mが「7」の数列「1,1,1,0,1,0,0」を採用している。この場合には、図5に示すような二次元の配列パターンになる。このパターンは、「○」で示す位置が撮影開口11を配する位置になる。
なお、この数列の作り方は、例えば著者が磯部隆で東京大学出版会から1968年2月初版発行、1971年1月第2刷が発行された「相関関数とスペクトル−その測定と応用−」の170頁〜175頁に記載されている。
ところで、撮影開口11の二次元配列の間隔は、M系列以外に、Q系列(平方剰余系列)、Gold系列、Walsh符号等、2値の疑似ランダム系列である所定の周期パターンに設定することもできる。また、撮影開口11の2次元方向の間隔を等間隔にしてもよい。しかし、詳しくは後述するフォーカススタック前の瞳サンプリング点にゼロ点が無い方が望ましいため、二次元方向の間隔がM系列の所定の周期パターンに設定するのが望ましい。撮影開口11の個数としては、16個(16眼)に限ることはない。
各撮像素子20には、図6に示すように、AFE21、及びフレームメモリ22がそれぞれ接続されており、撮影レンズ23により結像する被写体像を撮像して画像信号をAFE21に出力する。ここで、符号40は個眼撮像部40を示す。
AFE21は、周知のCDS(相関二重サンプリング)/AGC(ゲイン・コントロール・アンプ回路)、A/D、及び信号処理回路で構成されており、CPU24とともにTGから供給されるパルスに同期して動作する(図示なし)。信号処理回路は、デジタルの画像データを取り込み、画素欠陥補正やホワイトバランス補正、ガンマ補正などの補正を行う。
CPU24は、撮像素子20の電荷蓄積時間(電子シャッタ)を各々制御し、また、特定の撮像素子20から得られる画像データに基づいて被写体の輝度を測定し、この測定結果に基づいて全撮像素子20の電子シャッタの値を一定になるように変えて露出を制御する。
AF部26は、シャッタボタンの半押し操作に応答して複数の画像データのうち少なくとも2つの画像データを取り込み、これら2つの画像データに基づいて両画像の相対的なずれ量を求め、求めたずれ量から複数の被写体に対する被写体距離を各々算出し、一つの合焦ドライバ27を制御して、被写体距離に応じた合焦位置に撮影レンズ23を移動させるとともに、残りの合焦ドライバ27を制御して、前記被写体距離に応じた合焦位置を基準として、残りの撮像レンズ23の合焦位置を、均一なボケ量でずれるように順々にずらしていく。なお、撮像素子20を移動させるか、もしくは、撮影レンズ23と撮像素子20との両方を移動させてピントをずらしても良い。
AFの必要性について見積もったところ、厚さ3mmの薄型カメラを実現するには1/8インチ以下の光学サイズの撮像センサ(撮像素子及びドライバ回路を含む)を用いることが望ましい。これは、撮像センサの撮像面の対角長を「Dg」、光路全長を「Lp」とし、十分な収差特性のレンズ設計をすると、Lp>0.9Dgとなるからである。
多眼カメラの場合、最大でカメラ数倍の多画素化が行えるので、一つ一つのカメラモジュールは、最終的なカメラとしての出力画素よりも少なくてよい。多画素化のアルゴリズムにもよるが、最寄の撮像センサの画素のデータを用いるなどのアルゴリズムを用いた場合、カメラ数の0.56倍以下の多画素化にとどめると生成画像に破綻がない。例えば6M(メガ、100万)画素出力のカメラの場合、16眼を使った場合9倍程度の多画素化は容易である。その場合6Mの1/(16×0.6)=1/9より6M×1/9=0.67M画素以上の画素数のカメラモジュールであれば良い。
1/8インチの像高の撮像センサのサイズで6Mを解像する光学系が必要である。具体的にはナイキスト波長でのMTFは最低10%以上必要である。ナイキスト波長は、この場合1.169μmとなる。このためレンズのFナンバーは、1.4以下が必要である。6M出力のカメラの厚さを5mmにおさえる場合、撮像センサの呼び寸法は1/4インチで可能でレンズのFナンバーは2.8以下でよい。
AFの有無を上記の3mm厚さ、5mm厚さのカードカメラについてレンズの収差を含めて検討したところ、カメラのピント位置を被写体までの距離2m程度に設定しておけば、被写体までの距離1mから無限遠までMTFの変化はナイキスト周波数で50%以下の変化であり、パンフォーカスとみなせることが分かった。また、フォーカス位置に応じてMTFの変化分(同時にPSFも変化する。)を補うようにデコンボリューションすることも可能である。リフォーカス(撮影後に任意の被写体距離にフォーカスすること)する際に、距離に応じてMTFの劣化を補うことが可能である。すなわち、図7に示すように、フォーカス位置ごとのPSF又はMTFを予め記憶する記憶部49と、合成開口法によりフォーカス画像を生成する時にフォーカス位置によるPSF又はMTFの変化を相殺するように画像処理を行う画像処理部41と、を備えればよい。これら記憶部49及び画像処理部41はCPU42とともにバス43で接続されており、CPU42により統括的に制御される。なお、符号44は、多眼カメラ、スキャナ、及び外部入力部等、複数の画像を取り込むための画像取得部である。このように構成しても本発明によりピントはずれの像はぼけているので、ピントはずれの像が過補正になり、像が不自然になることはない。
カメラモジュールのAF用アクチュエータは、被写体までの距離2mにフォーカスを設定する際に用いてもよい。これは1/8インチの撮像センサのサイズの像側の焦点調整がシビアでコンマ数ミクロンレベルの調整と安定性を求めるためである。
ところで、一つの撮影レンズ23のピントを測距した基準の被写体距離に合わせるとともに、残りの撮影レンズ23に対しては前記合焦位置を基準にして均一なボケ量になるようピントを順にずらしていくピントずらし制御は難しい。そこで、AF部26としては、最短撮影距離から無限遠までの撮影距離域を個眼撮像部40の数で分割し、各分割位置に応じた撮影距離にピントが各々合うように各合焦ドライバ27を制御して、各撮影レンズ23を個別に移動させるのが好適である。なお、フォーカスを撮影事後に行わない場合には、絞りと撮影レンズ23とでパンフォーカスを構成してもよい。この場合には、AF部26等を省略することができる。
ROM28は、各種プログラムやプログラムの実行に必要な設定値を予め記憶している。RAM29は、CPU24のワークメモリとして、また、各部の一時的なメモリとして使用される。これらCPU24、ROM28、RAM29、LCDドライバ33、I/F30、及び画像処理部25はバス32により接続されている。
なお、撮影レンズ23をズームレンズ、又は焦点距離切り替えタイプのレンズとしてもよい。この場合には、変倍操作に同期して全ての撮影レンズ23を同じに変倍するように構成すればよい。
CPU24には、タブレット34から各種の操作信号が入力される(図示なし)。CPU24は、1回のレリーズ操作に応答して焦点の異なる複数の画像データ(多焦点画像データ)を各フレームメモリ22に同時に取り込む。多焦点画像データは、各フレームメモリ22に個別に取り込まれた後、画像処理部25に出力される。
<3次元シフト・インバリアントな結像>
光学系による結像の点像PSFを光軸方向のデフォーカスによるボケも考慮すると、3次元のPSFを考える必要がある。物体も3次元で、アイソプラナティックな範囲ではシフト・インバリアントな結像と見なせ、物体面のどこでも同じPSFで結像を表すことができる。例えば像空間x,y,zに像点p1,p2が存在する場合、これらの点に対して、PSFがコンボリューションされた状態が結像状態となる。一般に物体は凹凸があり、図8に示すように、結像ではカメラから見える表面上の物点に対応する像点がそれぞれPSFでコンボリューションされた状態となる。同図に示す3次元のPSFは、3次元のボケカーネルと呼んでも良い。このような3次元結像状態を得る場合、通常のレンズの結像の場合、例えば図9に示すように、焦点距離5.34mm、F1.4、対角撮像範囲=像高×2=3.17mmの場合、近距離の530mmから無限遠までを結像したとしても像空間x,y,zの光軸方向zの結像位置は5.34mmと5.39mmで高々50μmの変化しか起こらず、この範囲をz方向にアイソプラナティックな範囲と見なすことができる。
x,yについても通常PSFは大きく変化することはないので、通常のレンズの結像状態で、2次元の撮像素子を像面Iに平行に移動、位置させて撮像することにより、3次元結像状態のデータを取得すること可能である。2次元撮像素子の光軸z方向のデータ取得の間隔は、等間隔とすることが信号処理の上で望ましい。なお、z minは、無限遠位置に相当する。z maxは、被写体のレンズから最近の位置を十分に含むことが望ましいが、実用的にはリフォーカスを行う可能性のある範囲で問題ない。またz minも近景のみフォーカスさせる場合は必ずしも無限遠までの2次元撮像素子のデータが必要というわけではなく、リフォーカスする範囲の奥行き方向で最も遠い点をz minとすればよい。特にマクロ撮影では、z方向のデータが増加しがちなので、適当な範囲をz min, z maxに設定することが必要となる。結像倍率は、レンズから被写体までの距離を「Z」、レンズから像点までの距離を「b」とすると、レンズの結像公式「1/f=1/Z+1/b」の式から求まる。
<合成開口法によるフォーカシング(焦点合わせ)について>
合成開口法でのフォーカス合わせ(焦点合わせ)は、図10に示すように、距離Zにフォーカスする場合、中央のカメラからの距離を「s」とすれば、視差量=カメラ間隔×結像倍率=s×b/Zだけ像をシフトさせて、中央のカメラの像とフォーカス位置にある像点が重なるように行う。
レンズの代わりにピンホールを使う場合、結像倍率は「f/Z」の式から求まる。パンフォーカスのレンズを使用する場合、レンズのピント位置はMTFの変化を計算し、最短撮影距離と無限遠のMTFの劣化が同程度になるような固定ピント設定距離を決める。例えば最短撮影距離が1mの場合、2mにピント位置を設定する。bの値はレンズの結像公式から求める。([数8])
以下の説明では視差の単位をピクセルで表現する場合が多いが、これは本発明では視差量が撮像素子のピクセルピッチの整数倍となる被写体距離での合成開口法でフォーカス画像を合成し、画像処理をおこなうことが効率的で、かつ、処理した結果も画質が良好であるためである。ピクセルピッチは撮像素子の本来の値を用いても良いし、多画素化された後の撮像素子のピッチを用いても良い。また、マクロ撮影時などフォーカス点があまりに多くなる場合は、視差量を1ピクセルずつに対応させて合成開口画像を生成する必要は無く、適宜間引きすることが可能である。間引きの割合は画像を見ながら判断する必要がある。
合成開口法でシフト・インバリアントな3次元結像状態のデータを取得することを考える。そのためには、像空間の光軸方向zを視差量で表現することが望ましい。理由は以下の説明による。
物体の座標系をX,Y,Zのリニア(等間隔)スケールで考える。光軸をZ軸方向にとる。多眼カメラの合成開口法によるフォーカス合わせ(焦点合わせ)の像空間の座標系(x,y,z)とする。多眼カメラの各カメラはピンホールカメラと同様に焦点深度が深いカメラを用い、リフォーカシング可能にするのが普通である。まず、図10に示すようにピンホールカメラを考える。
ピンホールカメラは一つ一つはZ方向の情報を持たず、いずれの距離の物体もピンホールから焦点距離fのところに位置する結像面に結像する。ところが合成開口法によって焦点合わせを行うと、カメラ配置に起因する視差=ボケを発生する。多眼カメラによるピント合わせを、図10を参照しながら説明する。
カメラは、X,Y方向に5×5の配置である。ピンホールカメラによる25眼の画像を撮影し、そこから合成開口法でフォーカシングを行うので、被写体の結像倍率は撮影時に決定し、フォーカシングに依存しない。結像倍率は被写体までの距離をZとすればピンホールカメラの倍率:f/Zである。
図10は、多眼カメラを複数のピンホールカメラとして表現しており、各カメラの視点つまりピンホールの位置は、カメラ面(瞳共役面)(s−t平面)に位置しており、瞳位置(視点位置、ピンホール位置と等価)(s,t)のカメラをD(s,t)で示す。X軸とs軸とx軸は平行。Y軸とt軸とy軸は平行とする。物体面とカメラ面は平行で、合成開口法によりカメラ面から任意の距離Zにある、物体面に合焦させる状態を表している。同図ではピンホールカメラのピンホールは3角形の頂点で表されている。また、ピンホールを表す頂点に対向する辺が撮像面を表す。
各カメラの撮像センサの撮像面の座標をxD(s,t),yD(s,t)とする。各カメラのセンサー座標の原点とピンホールは各カメラの光軸上にあり、各カメラの光軸はZ軸に平行とする。カメラ面と撮像面は平行で各カメラの光軸はこれらと直交している。この座標xD(s,t),yD(s,t)はキャリブレーション済みの誤差なしの値とする。物体面(X,Y)上の点P(X,Y,Z)はカメラ面からZの距離にあり、各カメラD(s,t)のx’D(s,t),y’D(s,t)に結像する。これは[数4]及び[数5]に記載の式で示される。またZ軸上にcam3があるとすれば、xD(0,0)=X×f/Z,yD(0,0)=Y×f/Zとなる。
ここで、[数4][数5]に記載のfD(s,t)は実測焦点距離、const_xD(s,t),const_yD(s,t)はキャリブレーション誤差追い込み用の定数である。
撮像面の画像ピクセルの出力をC(x’D(s,t),y’D(s,t))とする。距離Zにフォーカスが合った合成開口出力I(x,y,Z)は[数6]に示す式から算出することができる。合成開口法によって得られた画像、合成開口像の実質的な視点を合成視点と呼ぶことにする。合成視点は[数4]、[数5]よりs,t座標の原点となる。
ただし、合成開口出力は、任意の選択したカメラの合成出力とする。例えば25台中の16台。模式的には合成開口法による画像の合成の状況は、ピント位置に応じて画像を相対的に移動させてピント合わせ(フォーカス合わせ(焦点合わせ))を行う。
[数4]、[数5]、及び[数6]は、ピンホールカメラの例で説明した式である。しかしながら、実際にはカメラレンズ付きの多眼カメラを用いる。その場合の視差量は、[数7]、または[数8]に記載の式で示される。
視差量zが等間隔となる物体距離Zで画像を取得することが効率的であり、視差量zが決まれば被写体までの距離Zは、[数7]、または[数8]に記載の式により一義的に決まる。ピンホールカメラの場合の視差量zは、カメラ間隔(瞳面上の任意の2視点間の距離):s0と撮像倍率:b/Zの積に比例し、[数7]に記載の式で示される。従って、カメラ間隔が大きいほど視差の被写体距離に対する変化量は大きくなる。多眼配置のカメラではカメラ間の距離が最も離れた2視点の間隔:s maxで、視差の被写体距離に対する変化量は最大になる。従って、視差量のサンプリングピッチはもっとも細かく取得する場合においては、[数7]でs0=s maxとした視差量が撮像素子のピクセルピッチの整数倍に相当する視差量zにて、複数のフォーカス画像をサンプリングまたは合成してゆけばよい。
[数7]
視差量(z)=カメラ間隔(s0)×結像倍率=s0×b/Z
<視差量について>
以上見たように、視差量は、ピンホールカメラまたは、パンフォーカスレンズの場合、[数7]に記載の式で示される。一方、図9に示すように単眼レンズでピント合わせをする場合を考える。この場合、レンズの入射瞳はある程度面積を持ち、レンズの瞳面(sp)内の任意の2点間の距離:s0とする。任意の2点間の距離:s0の最大は瞳径Apである。視差量z2は、物点までの距離をZ、焦点距離をfとすると[数8]に記載の式になる。また、多眼カメラの構成で各撮影レンズのピント合わせを行う場合も、[数8]に記載の式で示される。
[数8]
視差量(z2)=結像倍率(m)×瞳面上の任意の2視点間の距離(s0)=f×s0/(Z−f)
なお、図9に示す瞳面と図10に示すカメラ面は、双方とも入射する光束を規定する入射瞳であって、等価な役割を果している。また、合成開口法の多眼カメラのレンズを被写体のピント位置ごとにレンズを繰り出してピント合わせを行う場合は、結像面とレンズの距離:bはZの関数となるので、視差は、[数8]に記載の式になる。一般的に多眼カメラを用いた合成開口法は、固定フォーカス、パンフォーカスのレンズを用いるので、視差量zは[数7]に記載の式から導く。
2つのカメラの間の視差量zはレンズを相対的に平行シフトさせたときの像の移動量であるので、ピントの合った状態からの視差量の増大はボケ量と等しい。たとえば、無限遠にピントを合わせた状態では、視差1ピクセルに相当する被写体距離にある被写体は1ピクセルのボケ半径でぼけて撮影されるということになり、視差1ピクセルの距離の被写体にピントを合わせれば無限遠の被写体は1ピクセルのボケ半径でぼけるということになる。合成開口法によるピント合わせをおこなわず、単レンズで撮像面の位置を変化させてピント合わせを行う場合の視差量zの計算は、[数8]に記載の式を用いた方が、特に近距離の視差量zの計算で誤差が少なくなるが、[数7]に記載の式で代用することができる場合もある。
任意の距離での視差量zをゼロにするという行為がピント合わせ(フォーカス合わせ(焦点合わせ))といえる。ピント合わせの行為は通常のレンズでは像面をピント位置に一致させることになる。合成開口法では複数のカメラの画像間の視差量がゼロになるように複数の画像を視差量だけシフトさせてたし合わせるという行為になる。
本発明では、光軸の奥行き方向を視差で置き換えているので、ボケを表す関数は、ボケの大きさが視差量に比例する。例えば円形開口では円錐状(コーン状)となる。
<データの取得間隔について>
x、y方向を等間隔に配したカメラから画像を取得する。これは2次元状に等間隔に配置した撮像センサによってサンプリングすることにより達成される。一方、視差量zは、2つのカメラ間に生じる視差のピクセルカウント(視差量/ピクセルピッチ(P))がリニア(等間隔)になるように分割して取得する。いいかえれば、視差量zがピクセルピッチの整数倍になるようにフォーカス位置を設定して複数の焦点状態の画像を合成開口法により合成する。これにより、計算誤差を低減することができる。ピクセルピッチは、撮像センサのピクセルピッチでも良いし、各カメラ(個眼撮像部)から出力される出力画像の画素ピッチでも良い。後者の場合、多画素化処理に本来の撮像センサの画素ピッチの整数分の「1」になっている。
<瞳面上の2点間の距離s0について>
ここで、合成開口法によるフォーカス合わせを行う回数、つまりフォーカス方向の分解能を決定する。瞳面上の2点間の距離s0を如何に決定するかを説明する。
フォーカス方向のデータ数(合成開口法により合成するフォーカス画像の枚数)を増やすには、[数7]、及び[数8]に記載の式でs0=s maxまたはs0=APとした視差量を計算し、視差量が撮像素子のピクセルピッチの整数倍となる被写体までの距離:Zにおいて得られたフォーカス画像を合成開口法によって合成してゆけばよい。この方法がもっとも多くの異なる被写体距離Zにおいてフォーカス画像を生成する方法である。しかしながら、実用的には数分の1程度に間引きを行っても支障が無いことが分かった。とくに、多眼カメラが等間隔に並んでいる場合(M系列配置を含む。)、視差量zは[数7]に記載の式でs0=隣接カメラ間の間隔とすることで、合成開口法によるフォーカス合わせ(焦点合わせ)の際にサブピクセルの画像の横ずらし(一画素以下のずらし量の横ずらし)をする必要が無くなり、画素ピッチに起因する量子化誤差を発生しないので、画素ピッチに起因するボケの発生を防止することができる。これによりデータ数が間引きされるが、例えばs×t=5×5程度のカメラ数であれば、最大データ数の1/4程度に間引きされるものの、実用上十分であることが分かった。マクロ撮影ではさらにデータ数を半分程度に間引きしてもまったく問題ないことが分かった。
<単眼レンズにおける視差量について>
単眼レンズで[数8]に記載の式で視差を決め、複数のフォーカスでの画像データを取得する際も任意の瞳上の2点間の距離:s0をAp/4程度にしてデータの間引きを行っても実用上問題ない。
視差量zの値は、距離:Z=無限遠で視差:z=0であるので視差の座標は、図11に示すようにとることが望ましい。x,yは撮像面内の2次元座標、zは視差量である。図11では2次元の方眼状に等間隔に並んだ多眼カメラを想定し、視差量zは[数7]に記載の式でs0=隣接カメラ間の間隔とした。図11に示す4つの斜めの直線は、図10で説明したカメラD(s,t)がs,t面内で等間隔かつs,t軸に平行に5×5の方眼は位置で並んでいるものとする。s=0のカメラ5つをcam1〜cam5と命名する。s,t面内に5×5の方眼配置で等間隔並んだ内の一列のcam1〜cam5のカメラの中心(s,t座標の原点)にあるcam3の上下のcam1、cam5、cam2、cam4の配置によってx,y面内で発生する視差またはボケの大きさ(3次元PSFカーネルのx,y断面の大きさ)を示している。視差量z=4においてピクセル(P)の±4倍および±8の視差をx又はyに発生することを示している。このように奥行き方向(光軸方向)の分割を視差量zが等間隔になるように分割することで、カメラ配置によるボケを表す3次元PSFカーネル(図12参照)や任意の3次元ボケカーネル(図13参照)の大きさの変化が視差量にリニアに変化することになり、3次元ボケカーネルの形状が光軸に沿った視差z軸の位置に依存して変化するというような不都合が無くなる。これにより、シフト・インバリアント、つまり、3次元のコンボリューションで表せるような3次元結像状態のデータを取得できることになる([数17]に記載の式)。
瞳面(カメラ面)上のs,t方向の任意の2点間の最大距離は、図7に示すように、cam1,cam5の距離になっており、図12、及び図13に示す視差量zは、隣接カメラ間の距離の4倍ある。つまり、3次元結像状態のデータは、s0を隣接カメラ間に設定しているので、最大のデータ数から1/4に間引きされた数になる。この数は、実用上十分なデータ数であるので問題はない。
図12は、図11の3次元PSFカーネルをz=4でフォーカスがあっている状態で書き直したものである。3次元PSFカーネルはカメラの光学ハードウェアにより決定するボケカーネルで、カメラ入射瞳形状と合成視点位置(カメラ面s-t面(入射瞳面)内の瞳面の配置を含む形状および合成視点配置)により決定する。図12はボケを表す3次元PSFカーネルの3次元的形状とx,y断面でのボケカーネルの大きさを示している。x,yは撮像面内の2次元座標、zは視差量である。図12では、図10,図11同様に2次元の方眼状に等間隔に並んだ多眼カメラを想定し、視差量zは、[数7]でs0=隣接カメラ間の間隔とした。ボケカーネルの大きさは、視差量に応じて線形に変化する。同図は、視差z=4(ピクセル)でフォーカスが合っている物体に3次元PSFカーネルBcがコンボリューションされている状態を示している。ボケカーネルのx,y断面は、x,y面内(撮像面)でボケを表す2次元の分布関数のことで、本発明では視差zの関数でもある。これを例えば[数9]に記載したように、f(x,y,z)と置けば、[数10]に記載のように、面積が1で規格化された関数になる。ピント位置でボケないような関数にするには、デルタ関数、つまり大きさゼロで面積1の関数とする。任意のボケカーネルを撮像面(x−y面)の画像にコンボリューションして2次元画像をぼかすことができる。
このように視差zに応じて(多くの場合比例)広がりが変化する分布関数を以下では3次元ボケカーネルのx、y断面または単にボケカーネル、ボケ関数、3次元PSFカーネルなどと呼ぶ。
図13は、任意のボケ量のボケカーネルz=4(ピクセル)でフォーカスが合っている物体にボケカーネルBがコンボリューションされている状態を示す。図11、図12との比較から、図13は入射瞳面での半径がs0の円形開口のレンズによるボケを表す3次元ボケカーネルということが分かる。x,yは撮像面内の2次元座標、zは視差量である。ボケカーネルの半径をゼロにすると全焦点画像が生成される。なお、ボケ生成アルゴリズムの詳しい説明は後述する。
カメラ面内に2次元の方眼状に等間隔に並んだ多眼カメラを想定し、視差量zは[数7]に記載の式でs0=隣接カメラ間の間隔とし、隣接カメラ間隔12mm、焦点距離5.34mm、ピクセルピッチP=6μmのときの視差量zと被写体までの距離Zと像面とレンズの距離bを表1に示す。レンズと像面の距離bは、レンズの結像公式1/f=1/Z+1/bにより求めた。このようにカメラが等間隔の場合、隣接カメラ間隔から視差を求め、視差がピクセルの整数倍となるような間隔で画像処理に用いる視差の値を決定すると、合成開口法によるフォーカス合わせ(焦点合わせ)の際の画像シフト量がいずれのカメラにおいても、ピクセルピッチの整数倍とすることができ、量子化誤差の発生が防止できる。bはレンズの結像作用による結像位置を示し、レンズから像までの距離である。dbはbの変化量を示す。dbは、厳密には等間隔になっていない。そこで、本発明のボケ処理を単眼カメラの画像に対して行う時も、像空間で光軸方向に等間隔に撮像センサを移動させてデータを取得する従来の方法よりも、視差量が等間隔になる被写体距離を[数7]または[数8]の式から求めて撮影することが望ましい。
一方、合成開口によるレンズの結像は、一般に、パンフォーカスレンズを用いた撮影であり、先に述べたように、結像公式と関係なくなる。ピンホールの代わりにレンズを用いると、厳密には像面の位置も被写体の位置に応じて変化する。焦点距離5.34mm、F2.8のカメラのレンズのピントを、被写体までの距離を2m程度に設定してその被写体距離に合焦するように調整し、その状態で無限遠から近距離まであまりMTFの変化は大きくない(10〜20%程度の変化)。この状態をパンフォーカスとみなして問題ない。またMTFの変化は既知であるので、予め撮影距離ごとのMTFのデータをカメラに記憶し、撮影距離ごとにMTFデータからの像ボケを補正することも可能である。
視差(z)に応じた距離Zでのフォーカス画像を合成開口法によってフォーカスする。例えば[表1]に示す20箇所(視差z=1〜20(ピクセル))での合成開口像を生成する。図11では、視差量zは[数7]でs0=隣接カメラ間の間隔とし、視差z=0〜8ピクセルの9つの視差に相当する被写体距離にフォーカスを合わせた画像を合成開口法によって合成することを表している。ピクセル以下の分解能で視差を分割することはボケ像生成の観点からは意味はない。また、間引きする場合は視差の間隔が等間隔になるように間引くことが重要である。多画素化する場合はそのピクセルピッチを用いる。
合成開口でフォーカスする場合、中央(s,t面の中心)のカメラの画像に対して周囲のカメラの画像を視差量分だけ平行にxy面内でシフトさせる。その量と[表1]の視差の量は一致する。視差がゼロの場合は無限遠であって1ピクセルのときは10.68m前方にフォーカスが合っていることになる。カメラが25個ある場合、25枚の画像を一度取り込めば、任意の視差を[表1]から選んで任意のフォーカス画像が得られる。そのようにして得られた画像を図11に示す複数の縦線で模式的に現している。
図13は、通常レンズの円形瞳によるボケの説明図である。まず、カメラ面内に2次元の方眼状に等間隔に並んだ多眼カメラを想定する。視差量zは[数7]でs0=隣接カメラ間の間隔とした。隣接レンズ間隔12mmで配置された3つのカメラcam2〜cam4によって発生するボケは、例えばz=4(ピクセル)で合成開口によりフォーカスする場合、z=4(ピクセル)で交わる光軸方向の視差量1の増減に対して、それに直交する方向に横ずれ±1ピクセルを発生する二つの直線で表される。これが3つのカメラ配置に起因する視差=ボケ量である。カメラがcam2〜cam4を直径とする円内に無数に分布していると仮定すれば、円形の通常のレンズのボケも同様に扱えることになる。すなわち、z=4(ピクセル)で交わる直線を母線とする円錐(コーン)がレンズ瞳直径24mmのレンズのボケに相当する。カメラ間隔をレンズ瞳半径に置き換えれば円形瞳のレンズのボケを考えることができる。それより大きなレンズ直径のボケ、小さなレンズ直径のボケも同様にピント位置を頂点とするコーンで与えることができる。ボケのブラーカーネルは、このコーンの各視差での直径の円で与えられる。なお、詳しくは後述するように、円形開口内の重みを均一分布、ガウス分布など任意に変更することができる。
<カメラ配置のボケ形状>
図12は、2次元の方眼状に等間隔に並んだ多眼カメラを想定し、視差量zは[数7]でs0=隣接カメラ間の間隔としたときの、カメラの配置によるボケカーネルの形状を表している。図10で表されるような等間隔の5×5の配置の場合の視差に対するボケ形状を表している。フォーカス方向は、視差が等間隔になるようにデータがあればよいので、図の黒丸がぼけ形状、又はボケカーネルを表すことになる。これをxy面内で表すと、図14に示すようになる。M系列では、図15、図16に示すようになる。これらを3次元PSFカーネルと呼ぶ。矢印は、デルタ関数的な重みを表す。焦点位置では矢印の強度は本数倍に大きくなる。これらのボケカーネルを視差方向(方向は物体の奥行き方向のZ(ラージゼット)方向と同じ。)で積分すると図17に示すようになる。これをフォーカススタックPSFカーネルと呼ぶ。
図18は、画像の取り込みから処理の流れを示す。合成開口法によりえら得られた複数枚のフォーカス像を任意ボケアルゴリズムに渡す。任意ボケアルゴリズムの中身は、図19に記載されており、複数の画像に対し、視差に比例した半径のボケカーネルをコンボリューションする。これらを加算し、光学系のPSF(カメラ配置のボケ形状)の視差に関する積分。ボケカーネルの視差に関する積分した結果でデコンボリューションを行う。
図19と式の関係を図23に示した。図20と図21は、ピント(視差)を変えて得られる画像を表している。図22、図23は、[数18]に記載の式を導くための説明図である。図22は、[数18]の式のように近似することで計算時間を短縮することが可能であることを説明している。本発明では[数18]の近似式に基づいた説明を「ボケ生成アルゴリズム」または「ボケアルゴリズム」と称す。
任意のボケを生成するボケアルゴリズムを構成するボケ処理部36は、図24に示すように、複数の多焦点画像データに対して、所望のピント位置から視差に比例したボケ半径の円形開口、又はガウシアン等の任意のボケカーネルの2次元断面(ボケを表す2次元分布関数)を用いてコンボリューション処理を行う。ここで、ピント位置から視差に比例するとは、例えば所望のピント位置からの視差に比例してボケカーネルの2次元断面の半径を大きくしてコンボリューション処理を行うということである。これは、図13に示すような3次元ボケカーネルを用いるということである。
フォーカススタック像算出部37は、ボケ処理部36で処理を行った複数の画像データの強度和画像であるフォーカススタック像を求める。なお、強度平均を求めてもよい。PSFカーネル算出部38は、合成開口の瞳サンプリング点のフォーカススタックに相当するフォーカススタックPSFカーネルを算出する(図14〜図17を参照)。
瞳サンプリング点は、多眼カメラ10の撮影レンズ23の配置を表す。ここでは、撮影レンズ23の配置は、予め決まっているので、フォーカススタックPSFカーネルを算出する必要はない。フォーカススタックPSFカーネルは、RAM29に予め記憶されており、読み出して用いる。16個の撮影レンズ23の擬似ランダム配置がM系列に従った所定の周期パターンの場合のフォーカススタックPSFカーネルを図17及び図25に示す。
画像先鋭化処理部39は、フォーカススタック像に対して予め決めたカーネルを用いたデコンボリューション処理を行う。前記デコンボリューション処理としては、フォーカススタック像算出部37で算出したフォーカススタック像に対して、RAM29から読み出したフォーカススタックPSFカーネルを用いたデコンボリューション処理を行ってインフォーカスの(フォーカスの合った)物体は先鋭な画像を保ったまま、任意のボケをアウトフォーカスの(フォーカスの合わない)物体に付与したボケアルゴリズム画像を生成する。
前記フォーカススタックPSFカーネルを用いたデコンボリューション処理は、個眼撮像部の3次元のボケ関数である3次元PSFの個眼撮像部の光軸方向の積分結果を表す、2次元分布関数であるフォーカススタックPSFカーネルと、ボケ処理部36でコンボリューション処理を行う時に用いる任意のボケカーネルのフォーカススタックに相当する、フォーカススタックボケカーネルとの2つのカーネルを用いたデコンボリューション処理となっている。
図6のCPU24は、任意のボケを付与した画像データを、I/F30を介して記録部31に記録する。なお、圧縮部を設け、任意のボケを付与した画像データを、例えばJPEG方式等の圧縮形式で記録してもよい。また、各フレームメモリ22から得られる複数の多焦点画像データを記録部31に記憶してもよい。この場合、複数の多焦点画像データを、ボケ画像を付与して生成した画像データに関連付けして記憶するのが好適である。本実施例の様に多眼構成の場合には各撮像素子20の出力した画像を保存しておけば合成開口以降の画像処理はいつ行っても良い。つまり、多眼画像の生データを保存しておく機能がカメラとしては最低限必要で、画像処理はオフラインでも可能である。また撮像した画像をクラウドコンピュータに保存してもよく、保存する画像は動画であっても静止画であっても良い。
ここで、図1に示す撮影開口11を二次元状に配置した多眼カメラ9の構成の作用を、図26を参照しながら簡単に説明する。電源スイッチ14をオンすると、いずれか一つの個眼撮像部40から得られる画像データに基づいてスルー画像を生成してLCD15に表示する。(または複数の撮像部40の画像の合成開口画像をLCD15に表示させてこれを見ながら構図とフォーカスを決めるようにしても良いし、ボケアルゴリズム画像の生成の時間が無視できるようであればボケアルゴリズム画像を用いて構図とフォーカスを決めるようにしても良い。)スルー画像を見ながら構図を決めてシャッタボタン13を半押し操作する。この半押し操作に応答してCPU24は、AE・AFを制御する。AE制御は、各個眼撮像部40で同じ露出になるように制御する。AF制御は、ピントずらし制御である。この制御は、CPU24がAF部26を制御して、各撮影レンズ23のピントが全てでずれるよう撮影レンズ23を合焦位置に各々移動させる。
そのままシャッタボタン13の全押し操作がなされると、CPU24(図6)は、各個眼撮像部40を制御して、多眼カメラの複数の画像を撮影し、合成開口法により多焦点画像を生成し、多焦点画像データ群を各フレームメモリ22に取り込み、取り込んだ複数の多焦点画像データを画像処理部25に送る。
図6、図24の画像処理部25のボケ処理部36は、多焦点画像データに対して、所望のピント位置から比例したボケ半径の円形開口、又はガウシアン等の任意の3次元ボケカーネルを用いて2次元コンボリューション処理を行う。フォーカススタック像算出部37は、ボケ処理部36でボケ処理を行った複数の画像データ毎に画素の強度和画像であるフォーカススタック像を算出する。
フォーカススタックカーネル算出部38は、RAM29から予め決められているフォーカススタックPSFカーネルとフォーカススタックボケカーネルを読み出す(またはいちいち算出しても良い)。画像先鋭化処理部39は、RAM29から読み出したフォーカススタックPSFカーネルとフォーカススタックボケカーネルを用いてフォーカススタック像算出部37で算出したフォーカススタック像をデコンボリューション処理して任意のボケを付与した画像データを生成する(図19に記載の内容の画像処理)。生成されたボケを付与した画像データは、記録部31で記録される。
ここで、本発明の画像処理の特徴を簡単に説明する。まず、複数のフォーカス状態の画像に任意のボケ処理を行ってからこれらの画像の強度和(平均)を求め強度和(平均)像とする。この段階では何のノイズの発生も無い。次に、求めた強度和(平均)像に画像先鋭化処理を行い、任意のボケを付与した画像を生成するが、画像先鋭化は合成開口の瞳サンプリング点のフォーカススタックに相当する、「フォーカススタックPSFカーネル」のデコンボリューションにより行う。このデコンボリューションカーネルには、そのフーリエ変換にゼロ点がないものを用い、復元ノイズが発生することを抑制する。これにより、写真画質の良好なボケを付与した画像を形成可能となる。フォーカススタックは、合成開口法、又は撮像素子の光軸方向の移動によりフォーカス状態を変化させながら行ってもよい。
<ボケアルゴリズム>
具体的なボケ生成の方法を多眼カメラによる合成開口法を用いる例で説明する。具体的には、撮影対象物体の3次元の強度分布をIo(X,Y,Z)とする。Z軸を撮影レンズ23の光軸方向、x,y方向を撮像素子20の横、縦方向とする。z軸は視差量(視差=カメラ間隔×焦点距離/Z、Zはレンズ瞳位置から被写体までの距離。)である。撮像センサの撮像面内の方向xyは、前述のように「x=X×f/Z,y=Y×f/Z」の式から分かるように倍率がかかって撮影される。レンズのボケ具合を表す点像強度分布の3次分布がPSFc(x,y,z)で表されるカメラで、ピント位置をカメラの光軸にそった視差zrにピントを合わせて撮影した像Ic(x,y,zr)は[数11]に記載の式に示すIc(x,y,z,zr)のx,y平面への投影で、式としては[数12]に記載の式で示される。[数11]の式にあるPSFc(x,y,z)は、例えば円形開口の場合光軸にそって円錐状の関数で円錐の頂点のピント位置が視差zr相当に来るような関数で表すことができる。ピント位置を撮影対象シーンの奥行き方向で積分した像は[数6]の式で示される。積分範囲(zmin〜zmax)は、物体の存在する領域と概ね一致させる。Io(x,y)は、シーンをボケのない理想ピンホールカメラで像面に投影された絵(全焦点画像)と等価である。
[数11]に記載の式にあるPSFc(x,y,z)は、例えば円形開口の場合、光軸にそって円錐状の関数で円錐の頂点がピント位置zrに来るような関数で表すことができる。ピント位置を撮影対象シーンの奥行き方向で積分した像は[数13]に記載の式で示される。積分範囲(z min~z max)は物体の存在する領域と概ね一致させる。Io(x,y)はシーンをボケのない理想ピンホールカメラで像面に投影された絵(全焦点画像)と等価である。
[数13]に記載の式よりIc_pn(x,y)はPSFc_pnとIo(x,y)のコンボリューションであるので、[数15]に記載の式によりIo(x,y)が求まる(Io(x,y)は本発明のボケ生成には使わないが参考のため算出している)。ここでPSFc_pnは、[数14]に記載の式で示され、PSFc(x,y,z)の視差z方向の積分されたものである。これをフォーカススタックPSFカーネルと呼ぶ。なお、添え字cはカメラの状態を示す。pnはパンフォーカスを示す。
[数14]の式に記載の積分範囲を考える。PSFcは、ピントを結ぶ位置をz軸の原点とする(例えば図27参照)。物体の範囲は、無限遠=zmin〜至近距離=z maxであるので、コンボリューションされたPSFcは、図27に示すPSFc(x,y,z)〜PSFc(x,y,z−z max)の範囲で存在しうる。フォーカススタックの積分範囲は図から無限遠の物体に対し「−z max〜0」、至近距離の物体に対して「0〜z max」となる。これらの積分の結果は、前ピンと後ピンでPSFの形が非対称な場合、例えば図15、及び図16で説明した例の場合は、これらの平均とすることが望ましく、したがって、一般のPSFに対しても[数14]の式に記載の積分範囲としておけば十分であることが実写映像によって確認された。この積分範囲は、至近距離と無限遠の中間の部分に関しては「−z max/2〜+z max/2程度が最適となるので、被写体までの距離に応じて積分範囲を可変としてもよい。また前述のように近距離撮影ではz max は被写体のうちリフォーカスの可能性のある範囲内でカメラからもっとも遠い位置としても差し支えない。
[数11]に記載の式と同様にボケ関数PSFc(x,y,z)をPSFa(x,y,z)に変更して任意のフォーカス位置に相当する視差z1にピントを合わせて撮影した像は、[数16]に記載の式で示される。[数17]に記載の式は、PSFを3次元にコンボリューションして得られる3次元の像であり、PSFcの光学条件でピント位置をシフトしながら取得できる輝度分布を示す。これは3次元のデータとなる。
[数17]の式から[数18]の式を得る。[数18]の式のうちPSFc_pn(x,y)によりデコンボリューションされる部分、つまり[数19]の式の「A」は、視差zrにピントを合わせて得られた画像にPSFa(x,y,z-zr)をコンボリューションし、さらに視差zに関して積分することを示している。これは、前述した実施例のボケ処理部36、フォーカススタック像算出部37の処理に相当する。
なお、[数18]に記載の式から[数20]に記載の式を得ることができる。このため、複数のフォーカス位置の画像Ic_p(x,y,z)を合成開口法などで撮像し、これをPSFc(x,y,z)により3次元デコンボリューションを行うことでIo(x,y,z)物体の強度分布を求め、これに任意のピント位置に相当する視差zrに設定したPSFa(x,y,z-zr)(任意の3次元ボケカーネル)を2次元コンボリューションし、その結果を視差zで積分し、x,y平面に投影することで任意のボケ像、及び任意のフォーカス位置にリフォーカスされた像を得てもよい。
この場合、ボケを付与した画像の生成手段としては、図28に示すように、3次元デコンボリューション処理部45、2次元コンボリューション処理部46、及び画像生成部47とで構成すればよい。3次元デコンボリューション処理部45は、画像取得部48から取得した、視差が等間隔になっている多焦点画像(焦点を複数の位置に合わせて撮影した画像)を3次元データとみなし、3次元デコンボリューション処理を行って物体の強度分布を求める。2次元コンボリューション処理部46は、3次元デコンボリューション処理済みの画像に対して任意の3次元ボケカーネルによる2次元コンボリューション処理を行う。画像生成部47は、2次元コンボリューション処理済みの画像に対して平面に投影して任意のボケを付与した画像を生成する。
なお、[数18]に記載の式の右辺は、計測値Ic_p(x,y,z)と装置固有のフォーカス設定値に相当する視差zrにピントが合ったときの所望の3次元ボケカーネル:PSFa(x,y,z-zr)、フォーカススタックPSFカーネル:PSFc_pn(x,y)となる。添え字のaは、カメラの状態を示す。また以下では、定数は省略している。
[数18]の式のPSFa_stk(x,y)は、[数21]の式で示される(図27参照)。[数21]記載の式の積分範囲もPSFcと同様に、図29に示す関係となり、フォーカススタックの積分範囲は、同図から「−z max〜z max」とする。これも至近距離と無限遠の中間的な距離の物体にフォーカスをあわせる際に「−z max/2〜z max/2」など、最適な範囲に変更させても良いが、一般的には「−zmax〜zmax」で問題ない。
[数21]の式は、実験的には以下のように確かめられる。PSFをガウス分布で表す場合、カメラのPSFc(x,y,z)に対して新たにボケを生成するためのPSFa(x,y,z-zr)は、それぞれ[数22][数23]の式で示される。C1(z),c2(z)は、ガウス分布の標準偏差で、[数24][数25]の式で示される。ガウス分布のボケカーネルの半径は、標準偏差に比例する。zrは任意のボケ像を生成する際の設定フォーカス位置を示し、任意の3次元ボケカーネルの光のコーンが収束する場所を示す。つまり、3次元ボケカーネルは、図30に示すように、ピントを合わせたい距離zrで光のコーン(円錐ボケ形状又はボケカーネル)が最も絞られた(収束した)点になる。
図31に示すトレース2がPSFc(x,y,z)の標準偏差c1(z)、トレース3がPSFa(x,y,z-zr)の標準偏差c2(z-zr)を示している。ここではデフォーカスに相当する視差は5ピクセルとする(例えばzr=5(ピクセル)とする)。同図に示す横軸は、光軸の方向にとった視差量zを示す。縦軸は標準偏差を示す。トレース1は、[数26]の式にあるPSFca(x,y,z,zr)の標準偏差cca(z,zr)を示す。標準偏差cca(z,zr)は、[数27]の式で与えられる。この場合、物体はz=0にある。物体は凹凸に応じてzの任意の値をとるが、[数17]の式のコンボリューションの結果として観察されるIc_p(x,y,z)では、PSFc(x,y,z)の光のコーンの中心は常に物体表面に位置することになる(図30参照)。つまり、物体表面に作用するボケ分布は、[数19]の式のコンボリューションにより、PSFca(x,y,z,zr)となる。
一方、所望のデフォーカス位置でのボケ半径を[数29]の式のボケ関数PSF3(x,y,z)とし、c3(z)=k3=一定とすると、合成ボケ半径PSFca3(x,y,z)の標準偏差は、図32のトレース4で示される。同図にPSFc(x,y,z)の標準偏差c1(z)、PSFa(x,y,z)の標準偏差c2(z)を記載した。合成ボケ半径PSFca3(x,y,z)は、[数28]に記載の式で示され、標準偏差は、[数30]に示す式となる。また、ボケ半径c3(z)=k3をトレース6として示した。
例えば、係数k1=2,k2=1,k3=5とする。図32に示すように、z=0でトレース1の値は5となる。図31のトレース3はk2=1でフォーカス5としたので、z=0での標準偏差は5である。この条件でのトレース1の最小値は約4.5で、5に対して約10%小さくなっているが、トレース1はトレース2のz方向の平行移動とみなせる。[数19]の式のz方向の積分を行った後はz方向の情報はなくなるので、トレース1とトレース2のz方向の積分結果は同じものとみなせる。これが、[数18]の式の近似を意味するものである。
以上は、PSFを表す関数をガウス関数としたが、これを、円形開口を表す関数、合成開口法の瞳サンプリングポイントを表す関数としてシミュレーションした結果、ほぼ同等の効果が得られることが分かった。つまり、本手法はさまざまなボケ関数を持つハードウェアに対して、さまざまなボケの形状の像を与えることが可能である。
このように本発明では、所望の画像を取得画像から直接得ることができる。本発明では、[数17]に記載の式で示されるように、物体の3次元輝度分布と3次元ボケ関数に基づく3次元コンボリューションモデルで3次元結像状態を表している。そのため、結局[数18]の式の2次元画像のデコンボリューション計算で所望の2次元画像を求めることができる。
多眼カメラ10は、6点法等でカメラキャリブレーションを行う。そして、レンズ中心のカメラ面内での位置(s,t)、及び各撮影レンズ23の焦点距離等の定数は、計測値を用いる。なお、カメラの光軸の倒れ等の誤差量は、カメラキャリブレーションにより除去する。光軸の倒れはディストーション成分として補正される。
図10において、撮影レンズの中心はカメラ面(s,t)に位置しており、25個(5行×5列)の個眼撮像部をD(s,t)で示す。物体面とカメラ面は平行で、合成開口法により結像面から任意の視差zに相当する距離Zにある、物体面に合焦させる。
本実施例の多眼カメラ10の撮影レンズ23の焦点深度は、深く、撮影レンズ23は、近距離から無限遠までパンフォーカスと考えてよい。撮影レンズ23が明るく焦点深度が浅く、撮影レンズ23毎のAF(通常のレンズの前後によるピント合わせ)が必要な場合は、予めピントを合わせたい被写体に撮影レンズ23毎にAFをかけてもよい。その場合にリフォーカスする際は既知のMTF、PSFデータから、MTFの劣化を補うことが望ましい。
合成開口法によらず、通常の単眼の撮影レンズ23のフォーカス調整(像空間で空間像と撮像素子20の光軸方向の相対位置を変換させる等での調整)で複数のピント位置の画像を得る場合、多眼カメラの場合に視差量を求める際に用いるレンズ間隔の代わりに瞳半径から、[数7]または[数8]に記載の式からから視差量を求め、視差量が等間隔となるようにフォーカス距離を決める。例えば35mmフルサイズカメラの場合、f=50mmでは例えばFナンバーを2として、瞳半径は、50/(2)=25mmであるが、先に述べたように、この値「25」の1/4程度とすればよい。各フォーカス位置での画像を取得し、視差量が等間隔の画像群を得れば、そのあとのボケアルゴリズムの処理は多眼カメラの合成開口法を用いた場合と同様である。(フォーカス調整は、フォーカスごとにレンズを繰り出す以外に、撮像センサの光軸方向での位置を変える、レンズの収差を換えて像面を変化させて各フォーカス位置での画像を取得する等の方法がある。)
<任意ボケ生成>
合成開口法のフォーカシングにより、複数のピント位置に合わせた多焦点画像群を用いて処理を行う点について以下に説明する。
[ボケ生成カーネル:円形開口]
ボケ生成カーネルとして円形開口のデフォーカスボケを生じさせる場合、3次元ボケカーネルPSFa(x,y,z)は、[数31]に記載の式で示される。任意に設定されるボケカーネルの半径ra(z)は、[数32]に記載の式で与えられる。定数Apaを任意に設定することで所望のボケの大きさが得られる。また、z方向にオフセット、例えばzrを与える(「z」を「z-zr」に置き換える)ことにより、任意のピント位置zrにピントを合わせることができる。
[ボケ生成カーネル:ガウス開口]
ガウスボケの場合は、[数33]に記載の式の3次元ボケカーネルPSFgss(x,y,z)を用いる。Cは定数。ガウスボケの大きさは、[数34]に記載の式によりσaを任意に設定することにより調整することができる。
[任意視点]
任意視点の3次元PSFカーネルPSFshift(x,y,z)を用いれば、図31に示すように、任意視点のオールフォーカス像が得られる。ここで、定数axs,aysを任意に設定して視点を任意に設定する。(なお、s,t座標の原点が合成視点になるのでカメラ配置を任意のs,t座標の原点に設定しなおして視差量から3次元PSFカーネルを求めても同等の効果が得られる。図14、15、16の場合はs,t座標の原点が中心のカメラ位置に相当しているケースである。)
また、フォーカススキャンして計測される像Ic_shift_p(x,y,z)は、[数17]の式に代わって[数34]に記載の式で示される。
任意のボケを示すPSF、PSFa(x,y,z)のぼかしを含めた[数35]の式の視点の視差z1にリフォーカスさせた像は、[数37]に記載の式で示される。視点をずらしたPSFのフォーカススタックは、[数38]に記載の式で示される。
多眼カメラ10のレンズ配置は、瞳サンプリング点を表す。瞳サンプリング点は、フォーカススタックした際に、フォーカススタックPSFカーネルとして作用する。フォーカススタックPSFカーネルは、[数14]に記載の式のPSFc_pn(x,y)で表される。フォーカススタック前の瞳サンプリング点は、PSFc(x,y,z)である。所望の像を[数18]に記載の式で得るので、フォーカススタックカーネルPSFc_pn(x.y)のデコンボリューションを正確に行うため、PSFc_pn(x,y)のフーリエ変換の振幅にゼロ点が無いことが望ましい。これはPSFc_pn(x,y)のフーリエ変換の逆数をかけてから逆フーリエ変換することでデコンボリューションを行えるようにするためである。[数18]に記載の式のデコンボリューションは、[数39]に記載の式で示される。
ところで、PSFa_stk(x,y),PSFc_pn(x,y)のフーリエ変換の振幅にゼロ点が無いことが望ましい。PSFa(x,y)は、円形開口やガウス関数が望ましい。PSFa(x,y)に円形開口を用いた場合、PSFa_stk(x,y)は[数41]、そのフーリエ変換は[数42]で示される。そして、u,vは、[数43][数44]で示される。
PSFc_pn(x,y)のフーリエ変換の振幅にゼロ点が無いことが必要で、撮影レンズ23の配置は、縦横M系列擬似ランダム数列を用いた所定パターンを含む多くの配置がある円周配置、矩形配置、方眼配置もこの条件を満たす。M系列ランダム配置のフォーカススタックカーネルは、前述したように例えば図25に示したものとなる。このカーネルのフーリエ変換の振幅にゼロ点は無く、[数39]の式でゼロ割による発散などの不都合は生じない。また振幅の変化も20倍程度なので特定の周波数のノイズを拾うことも無い。
[数19]に示す式の計算は、実際にはフーリエ変換を用いて[数40]に記載の式を用いる。ガウス関数のフーリエ変換は、ガウス関数、円形開口のフーリエ変換は、ベッセル関数で表せられる。
<第1実施形態>
[輪帯光学系のボケアルゴリズムへの適用]
以上、撮影開口11、及び撮影レンズ23等を二次元状に配置した多眼カメラ9に対してボケアルゴリズムを適用した例を説明したが、以下では、図1で説明したように、撮影開口11、及び撮影レンズ23等を円周状に配置した輪帯光学系を有する多眼カメラ10に対して、前述したボケアルゴリズムを適用する例を説明する。
本実施例では、ボケアルゴリズムで破綻の無いボケ、つまり、円形のボケを得る場合、対物レンズの仮想光軸を中心とした瞳の動径によるスライスが、その偏角の略80%以上でゼロ以外であれば良いことが実験的に分かった。
図33、図34において、ボケアルゴリズムに輪帯瞳のレンズを用いる場合の説明をする。図33は、二つのガウス分布の差分の強度分布を有する輪帯瞳のPSF(レンズのボケ具合を表す点像強度分布の3次元分布)を示す。zは視差量を示す。x,yはボケの大きさを示す。zは瞳上の2点間の距離に結像倍率を乗じた値で、物体までの距離の関数である。ピンホールレンズでは焦点距離f、ピンホールから物体の距離Zとする。図35はガウス分布の差分の強度分布の斜視図である。内側のガウス分布が[数45]に記載の式で表される。外側のガウス分布が[数46]に記載の式で表される。これらの差分は、輪帯状のガウス分布を示す[数47]に記載の式で表される。
このように輪帯をガウス分布と捉えても良い理由として、ボケアルゴリズムでは円形カーネルやガウスカーネルをコンボリューションすることが挙げられる。これらをコンボリューションすることで均一分布の輪帯であってもガウス分布様になるので初めからガウス分布の輪帯として考えても差し支えない。なお、ガウス分布にガウス分布や均一分布をコンボリューションしてもガウス分布と見なせる。
このように二つの分散の異なるガウス分布で輪体は構成されていると考えると、ぼけアルゴリズムの先願の時と同様に、任意のボケカーネルによるコンボリューションを容易に説明できる。
図33においてトレース(5)がガウス分布の輪体ボケの内側を示す、[数45]に記載の式に相当するプロファイル。トレース(6)がガウス分布の輪帯ボケの外側を示す、[数46]に記載の式に相当するプロファイルである。任意のボケ関数を示すプロファイルは、トレース(7)で視差zに比例してガウス分布の直径が変化するボケ関数である。任意のガウスボケは、[数33][数34]に記載の式で示される。x,y は、撮像面の2次元座標で、ここでは撮像されるボケの大きさを示す。視差zは、相対表示で、光学系のピント位置が視差=0とする。なお、光学系のピント位置が視差ゼロとは、距離Zの物体に視差=0となるようにフォーカス合わせ(焦点合わせ)を多眼カメラまたは単眼カメラで行ったという意味である。視差量の単位は、例えば撮像素子のピクセルカウントである。
図33のトレース(5),(6)に、トレース(7)をx、y面内で2次元のコンボリューションを行った結果がそれぞれトレース(3),(4)となる。トレース(1)と(2)については、図34で説明する。図34でトレース(5)は、ガウス分布の輪体ボケの内側を示す、[数46]に記載の式に相当するプロファイル。トレース(6)は、ガウス分布の輪帯ボケの外側を示す、[数46]に相当するプロファイルである。任意のボケ関数を示すプロファイルは、トレース(7)で視差zに比例してガウス分布の直径が変化するボケ関数である。この場合、視差量=5だけずれたところで最小半径となるボケ関数となっている。従ってボケアルゴリズムを用いると視差量=5に相当するフォーカス位置でピントがあった絵を得られるようなボケ関数である。このトレース(7)とトレース(5)、(6)のx,y面内の2次元コンボリューションがトレース(1),(2)である。
一方トレース(3),(4)は、図33のトレース(3),(4)に図34の「z」によらず一定の半径を持つガウスボケを示すトレース(8)をx、y面内で2次元コンボリューションした結果である。図33のトレース(3),(4)はそれぞれトレース(1),(2)をz軸に若干シフトさせるとほぼ重なることから、トレース(3),(4)の視差zに関する積分結果は、トレース(1),(2)の視差zに冠する積分の結果とほぼ同等である。すなわちトレース(7)によるボケ関数の2次元コンボリューションにより、ベストフォーカスのプロファイルである図32のトレース(3),(4)に半径一定のガウスボケを2次元コンボリューションした結果と同等のボケをフォーカス位置、視差=0のトレース(1)付近に与えたことになる。
一方、図34のトレース(7)のボケ関数によるコンボリューションでは、視差=5の位置にピントを結ぶ距離の物体はボケることが無い。この効果により、任意の視差に相当する被写体位置の物体にフォーカスさせることができる。これは先に説明した、中実のガウスボケの光学系と同様である。なお、図33、図34の光学系のプロファイルのピント位置では輪体ボケではなく一点(デルタ関数)であることに注意されたい。このため、図34のトレース(7),(8)によるコンボリューション後、視差=0つまり光学系のベストフォーカス(多眼カメラの合成開口によるベストフォーカスを含む)のところでは円盤状のガウスボケが発生することである。もちろん他の、視差zがゼロ以外では輪帯ボケのままである(フォーカススタックする前の話。フォーカススタックした後については後述)。
ここでは、輪帯光学系のボケの話であるが、基本的に輪帯のインナーとアウターの半径が二つのガウス分布で決まっていると考えれば中実と同様にボケアルゴリズムが効果を発揮することが分かる。
図35〜37は、二つのガウス関数とその差分による輪体強度分布の鳥瞰図である。ボケ関数のある視差zにおけるx,y断面強度を示す。それぞれ外側のガウス分布、内側のガウス分布、輪体ガウス分布を示す。
図38〜図44は、輪帯光学系を用いた際のボケアルゴリズムのシミュレーションである。[表2]は焦点距離を「5mm」、撮像素子のピクセルピッチを「6μm」、瞳面上の2点間の距離を「12mm」としたときの視差量z(pixel)と被写体までの距離Z(mm)の関係を示す(z=s*f/Z)。
輪帯光学系の瞳の外側の直径を48mm、内側の直径を43.2mmとして、解像力チャートを970mmの距離に置き、10.7mにフォーカスさせたときの、光学系単体の光学ボケ画像を左に、ボケアルゴリズムのボケアルゴリズム画像を右に配置している。図39は、ボケアルゴリズムのボケカーネルのサイズを瞳面上で48mm、図40は、ボケアルゴリズムのボケカーネルのサイズを瞳面上で直径36mm、図41は、ボケアルゴリズムのボケカーネルのサイズを瞳面上で直径24mm、図42は、ボケアルゴリズムのボケカーネルのサイズを瞳面上で直径12mm、図43は、ボケアルゴリズムのボケカーネルのサイズは瞳面上で直径6mmである。図44は、ボケアルゴリズムのボケカーネルのサイズを瞳面上で直径1.2mm。図45は、ボケカーネルのピント位置をチャートの位置としたボケ無しの状態のボケアルゴリズムによる像が右図である。光学系のピント位置(Z=10.7m)にチャートを置いたボケアルゴリズム使用無しの状態が左図である。これらを見て明らかなように、ボケアルゴリズムにより、円形開口特有のリングボケが完全に解消されている。ただし、図39は、ボケアルゴリズムのボケカーネルのサイズが瞳面上でφ48mmになっており、光学系と等しいのため、若干アーティファクトが出ている。しかし、それ以下であれば問題ない。このことは、光学系の設計に大きな自由度を与える。また、輪帯アパーチャの幅に制約はないので、大きなボケを得つつ、光学系を微小化することが可能となる。具体的な実施例は、後述する。図39以降の図で光学的またはアルゴリズムにより付与されたボケはシミュレーションにより計算されたボケであるが、これらはアウトフォーカスの物体に付与されたものであり、インフォーカスの物体はぼけていないことに注意されたい。シミュレーションの目的はボケ像のよしあしを判断することであるのでインフォーカスの物体のシミュレーションは省略している。
これらのボケカーネルにより発生するボケ量はs=12mmに対する瞳面上でのボケカーネルサイズの比で比例させて考えればよい。つまり、s=12mmではZ=50000mmとZ=10000mmとで、視差(z)1pixelに対し、1pixelの平行移動のボケとなる。これに対し、瞳面上直径24mmのボケでは、Z=5000mmとZ=10000mmとで、視差(z)1pixelに対し、半径1pixelのボケが発生するコーンで表されるボケカーネルとなる。瞳面上直径48mmのボケでは、Z=5000mmとZ=10000mmとで、視差(z)1pixelに対し、半径2pixelのボケが発生するコーンで表されるボケカーネルとなる。本シミュレーションでは、光学系は輪帯アパーチャとし、アパーチャ内の強度分布は均一とした。また、任意のボケ量のボケカーネルのx,y断面も均一強度とした。光学系のPSFと任意のボケカーネルを2次元コンボリューションした時点で、輪帯状の強度分布は山型になり、ガウシアンと見なせるので、これを視差zで積分した関数は、[数48]に記載の式になる。ここで、外側と内側の半径が近いとした場合の積分結果は、中実ガウンシアン開口の積分結果、フォーカススタックと同じと見なせる。つまり、レファレンスの図65〜68の円形開口ボケよりもやわらかい印象のガウスボケとなる。デコンボリューションは従来どおり光学系のPSFのフォーカス・スタック(フォーカススタックPSFカーネル)とボケカーネルのフォーカス・スタック(フォーカススタックボケカーネル)でそれぞれ行えばよい。他のパターンも考えてみる。
[表3]
光学系 ボケカーネル コンボリューション結果
輪帯ガウス分布 均一分布 ≒ガウス分布
輪帯ガウス分布 ガウス分布 ≒ガウス分布
輪帯均一分布 均一分布 ≒ガウス分布
輪帯均一分布 ガウス分布 ≒ガウス分布
[表4]
光学系 ボケカーネル コンボリューション結果
中実ガウス分布 均一分布 ≒ガウス分布
中実ガウス分布 ガウス分布 ≒ガウス分布
中実均一分布 均一分布 ≒ガウス分布〜均一分布
中実均一分布 ガウス分布 ≒ガウス分布〜均一分布
[表4]に示すように、光学系が輪体でなく、中実の場合にも同様に処理しても大きな破綻はない。なお、周波数空間(上記ボケカーネルは中実)では、[数42]に記載の式を使用することは言うまでもない。
<環状配置または開口>
輪帯開口、輪帯カメラ配置は円形に限らず、仮想的な光軸または合成光軸を取り囲むような環状の開口、もしくは環状に配置されたカメラはボケアルゴリズムでボケを2次元コンボリューションした時点で必ず環状のガウス分布様になるという前提があるので、元から(2次元コンボリューション以前に)環状のガウス分布とみなして差し支えない。環状のガウス分布は上で見たように二つの大きさの近い中実のガウス分布の差と捉えられる。環状開口、または環状カメラ配置の光学系のPSFのフォーカススタックは元の中実のガウス分布のPSFのフォーカススタックと本質的には変わらない。中実のガウス分布はボケアルゴリズムで任意のボケを生成可能であることがわかっており、結論として、任意形状の輪帯開口、輪帯カメラ配置にボケアルゴリズムを組み合わせることにより、任意のボケを生成できることがわかった。
<輪帯光学系のボケ画像のシミュレーション>
輪帯ボケのシミュレーションは次のように行った。図38において光学系のPSFはカメラ間隔またはst面上の2点の距離s=12mmとしたときの視差量をピクセルで表示している。輪帯光学系の瞳の大きさは外側直径48mm、内側直径43.2mmであるので、視差量10pixelで外側輪帯のボケ量の半径はその2倍で20pixelとなる。これが同図に示す光学系のPSFである。物体のチャートは、Z=10.7m、視差量19pixelの距離にあり、任意のボケカーネルは、円形開口で瞳上の直径36mmとした。視差量10pixelで直径ゼロから直径30pixelとなるボケカーネルとなる。視差量z=20pixelから0pixelまでに光学系のPSFのピント位置を位置させて、x,yの2次元コンボリューションを行う。実際には物体はz=19pixelにしかないので、この位置だけでコンボリューションを行えばよい。このようにして複数のピント位置に合焦した、いわゆるフォーカススイープした画像が20枚得られる。これらに任意のボケ直径を有する、任意の3次元ボケカーネルを任意のピント位置にフォーカス位置を合わせてx,y2次元コンボリューションを行う。今回は視差量z=9pixelにフォーカスさせてx,y2次元コンボリューションを行った。そのあとこれらをzで積分して。(x,y面への投影)いわゆるフォーカススタック画像を得る。フォーカススタック画像をフーリエ変換した、周波数スペクトルに[数42]に記載の式のフィルターを用いてデコンボリューション処理を行っている(フィルタリング+逆フーリエ変換)。
<多眼構成>
以下に、多眼化の可能性を検討する。図49〜図64は、方眼的配置の多眼カメラのボケ画像を示している。各図の左側の画像は、光学系のみの光学ボケ画像、右側の画像は、ボケアルゴリズムによる画像処理後のボケアルゴリズム画像を示す。各図に示すボケアルゴリズム画像を出力するカメラ配置について、以下に記載する。
[正方形の線上に瞳を配置する例]
(1)図49に示す左側の画像は、図46(4)に示すように、各光学系の瞳50を正方形の線上に隙間無く配置した多眼カメラで撮像した画像を用いて生成した合成開口ボケ画像である。瞳50は、ピッチ(p)が12mmの方眼配置で、直径(k)12mmの円形になっている。同図に示す右側の画像は、同光学系で、図46(3)に示すように、ボケカーネル51の大きさを瞳面st面上で18mmの半径(r)にした円形のボケアルゴリズム画像である。右側の画像ではボケ味に対して問題無し。
(2)図50に示す左側の画像は、図46(5)に示すように、各光学系の瞳52を直径(k)10.8mmの円形にし、かつ12mmピッチ(p)で正方形の線上に配置(方眼配置)した多眼カメラで撮像した画像を用いて生成した合成開口ボケ画像である。同図に示す右側の画像は、同光学系で、図46(3)に示すように、ボケカーネル51の大きさを瞳面st面上で18mmの半径(r)にした円形のボケアルゴリズム画像である。瞳52となる円形開口は、ピッチ(p)に対して90%の直径になっている。右側の画像のボケには、やや周期的なアーティファクトが表れている。
(3)図51に示す左側の画像は、図46(5)に示すように、各瞳52を直径(k)9.6mmの円形にし、かつ12mmピッチ(p)で正方形の線上に配置した多眼カメラで撮像した画像を用いて生成した合成開口ボケ画像である。同図に示す右側の画像は、図46(3)に示すように、同光学系で、ボケカーネル51の大きさを瞳面st面上で18mmの半径(r)にした円形のボケアルゴリズム画像である。瞳52となる円形開口は、ピッチ(p)に対して80%の直径になっている。右側の画像のボケには、やや周期的なアーティファクトが表れており、限界となっている。
以上、説明したように、正方形の線上に瞳を配置した円形開口では、図46(5)に示すように粗でなくて、同図(4)に示すように、偏角によらず密でボケ生成半径(r)が1.5p以下であればボケ生成半径が開口にかからないので破綻がない。
次に、図52〜図55は、任意のボケ生成半径でのボケ生成の例である。
(4)図52に示す左側の画像は、図46(1)に示すように、一辺の長さ(l)が12mmの正方で、かつ12mmピッチ(p)で正方形の線上に配置した各光学系の瞳53を有する多眼カメラで撮像した画像を用いて生成した合成開口ボケ画像である。同図に示す右側の画像は、同光学系で、図46(3)に示すように、ボケカーネル51の大きさを瞳面st面上で24mmの半径(r)にした円形のボケアルゴリズム画像である。右側の画像は、ボケ味に対して問題なく、ボケ量変化のシミュレーション画像である。
(5)図53に示す左側の画像は、図46(1)に示すように、一辺の長さ(l)が12mmの正方で、かつ12mmピッチ(p)で正方形の線上に配置した各光学系の瞳53を有する多眼カメラで撮像した画像を用いて生成した合成開口ボケ画像である。同図に示す右側の画像は、同光学系で、図46(3)に示すように、ボケカーネル51の大きさは瞳面st面上で18mmの半径(r)にした円形のボケアルゴリズム画像である。右側の画像は、ボケ味に対して問題なく、ボケ量変化のシミュレーション画像である。
(6)図54に示す左側の画像は、図46(1)に示すように、一辺の長さ(l)が12mmの正方で、かつ12mmピッチ(p)で正方形の線上に配置した各光学系の瞳53を有する多眼カメラで撮像した画像を用いて生成した合成開口ボケ画像である。同図に示す右側の画像は、同光学系で、図46(3)に示すように、ボケカーネル51の大きさを瞳面st面上で12mmの半径(r)にした円形のボケアルゴリズム画像である。右側の画像は、ボケ味に対して問題なく、ボケ量変化のシミュレーション画像である。
(7)図55に示す左側の画像は、図46(1)に示すように、一辺の長さ(l)が12mmの正方で、かつ12mmピッチ(p)で正方形の線上に配置した各光学系の瞳53を有する多眼カメラで撮像した画像を用いて生成した合成開口ボケ画像である。同図に示す右側の画像は、同光学系で、図46(3)に示すように、ボケカーネル51の大きさを瞳面st面上で6mmの半径(r)にした円形のボケアルゴリズム画像である。右側の画像は、ボケ味に対しては問題なく、ボケ量変化のシミュレーション画像である。
以下、図56〜図58は、正方形の線上に配置した正方開口の大きさの限界を見ている。瞳53となる矩形開口がピッチ(p)に対して80%の一辺長さまでは破綻が無い。ボケ生成半径は、矩形開口にかからない1.5pの半径(r)としている。瞳面の関係は、図46の(1)(2)(3)を参照。
(8)図56に示す左側の画像は、図46(2)に示すように、一辺の長さ(l)が10.8mmの正方で、かつ12mmピッチ(p)で正方形の線上に配置した各光学系の瞳54を有する多眼カメラで撮像した画像を用いて生成した合成開口ボケ画像である。同図に示す右側の画像は、同光学系で、図46(3)に示すように、ボケカーネル51の大きさを瞳面st面上で18mmの半径(r)にした円形のボケアルゴリズム画像である。瞳54となる矩形開口は、ピッチ(p)に対して90%の一辺長さになっている。右側の画像に対しては問題なし。
(9)図57に示す左側の画像は、図46(2)に示すように、一辺の長さ(l)が9.69mmの正方で、かつ12mmピッチ(p)で正方形の線上に配置した各光学系の瞳54を有する多眼カメラで撮像した画像を用いて生成した合成開口ボケ画像である。同図に示す右側の画像は、同光学系で、図46(3)に示すように、ボケカーネル51の大きさを瞳面st面上で18mmの半径(r)にした円形のボケアルゴリズム画像である。瞳54となる矩形開口は、ピッチ(p)に対して80%の一辺長さになっている。右側の画像ではボケ味に対して問題なし。
(10)図58に示す左側の画像は、図46(2)に示すように、一辺の長さ(l)が8.4mmの正方で、かつ12mmピッチ(p)で正方形の線上に配置した各光学系の瞳54を有する多眼カメラで撮像した画像を用いて生成した合成開口ボケ画像である。同図に示す右側の画像は、同光学系で、図46(3)に示すように、ボケカーネル51の大きさを瞳面st面上で18mmの半径(r)にした円形のボケアルゴリズム画像である。瞳54となる矩形開口は、ピッチ(p)に対して70%の一辺長さになっている。右側の画像ではボケ味に対して問題有り。
以下、各光学系の瞳を矩形線上に配置した偏りのある多眼カメラの例を説明する。矩形開口にボケ生成半径がかからず、矩形開口が密であれば破綻が無いことがわかる。図47(2)に示すように粗でなく、同図(1)に示すように密であれば良い。ボケ生成半径は、図47に示す瞳配置の場合、0.5p以下の半径(r)とする。
[各光学系の瞳を長方形の線上に配置する例]
(11)図59に示す左側の画像は、図47(1)に示すように、一辺の長さ(l)が12mmの正方で、かつ12mmピッチ(p)で縦長矩形線上に配置した各光学系の瞳55を有する多眼カメラで撮像した画像を用いて生成した合成開口ボケ画像である。同図に示す右側の画像は、同光学系で、図47(3)に示すように、ボケカーネル56の大きさを瞳面st面上で4.8mmの半径(r)にした円形のボケアルゴリズム画像である。
(12)図60に示す左側の画像は、図47(1)に示すように、一辺の長さ(l)が9.69mmの正方で、かつ12mmピッチ(p)で縦長矩形線上に配置した各光学系の瞳55を有する多眼カメラで撮像した画像を用いて生成した合成開口ボケ画像である。同図に示す右側の画像は、同光学系で、図47(3)に示すように、ボケカーネル56の大きさを瞳面st面上で6mmの半径(r)にした円形のボケアルゴリズム画像である。
(13)図61に示す左側の画像は、図47(1)に示すように、一辺の長さ(l)が9.69mmの正方で、かつ12mmピッチ(p)で縦長矩形線上に配置した各光学系の瞳55を有する多眼カメラで撮像した画像を用いて生成した合成開口ボケ画像である。同図に示す右側の画像は、同光学系で、図47(3)に示すように、ボケカーネル56の大きさを瞳面st面上で7.2mmの半径(r)にした円形のボケアルゴリズム画像である。
以下、各瞳を方形に対して45度傾けた菱形の線上に配置した45度配置(菱形配置)の矩形開口の場合には、図47(5)に示すように粗ではなく、同図(4)に示すように密であって、ボケ半径が矩形開口にかからない程度であれば破綻は少ないが、0度配置(方形配置)に比べて動径によるスライスした瞳の幅の変動が大きいので、ボケ味にアーティファクトが強めに生じる。
[正方開口、45度(菱形)配置]
(14)図62に示す左側の画像は、図47(4)に示すように、一辺の長さ(l)が12mmの正方で、かつ12mmピッチ(p)で菱形の線上に配置した各光学系の瞳58を有する多眼カメラで撮像した画像を用いて生成した合成開口ボケ画像である。同図に示す右側の画像は、同光学系で、図47(3)に示すように、ボケカーネル56の大きさを瞳面st面上で5.4mmの半径(r)にした円形のボケアルゴリズム画像である。
(15)図63に示す左側の画像は、図47(4)に示すように、一辺の長さ(l)が12mmの正方で、かつ12mmピッチ(p)で菱形の線上に配置した各光学系の瞳59を有する多眼カメラで撮像した画像を用いて生成した合成開口ボケ画像である。同図に示す右側の画像は、同光学系で、図47(3)に示すように、ボケカーネル56の大きさを瞳面st面上で6mmの半径(r)にした円形のボケアルゴリズム画像である。
以下で説明する円形開口を45度配置にした例の場合も図48(1)に示す配置の例よりもさらに開口を大きくして密に配置することで正方形配置の円形開口と同等の性能が得られる。
[円形開口、45度(菱形)配置]
(16)図64に示す左側の画像は、図48(1)に示すように、直径(k)が12×(√2)mmの円形で、かつ12mmピッチ(P)で菱形の線上に配置した各光学系の瞳60を有する多眼カメラで撮像した画像から得られる合成開口ボケ画像である。同図に示す右側の画像は、同光学系で、図47(3)に示すように、ボケカーネル56の大きさを瞳面st面上で6×(√2)mmの半径(r)にした円形のボケアルゴリズム画像である。
以上説明した各例のボケアルゴリズム画像から、円形開口の光学ボケ画像と同様なボケ画像を得るには、瞳共役面またはカメラ配置面(s,t平面)上のカメラ瞳形状が、回転方向の対象性が高いほど良く、仮想光軸を中心とした動径によるスライスが、その偏角の80%以上でゼロ以外であればよいことが分かった。
図65〜図68に示す画像は、光学系が円形開口の場合の光学ボケ画像を示す。ボケアルゴリズムの処理は行っていない。物体は、z=19pixelに位置させ、ピントはz=9pixelに合わせている。ボケの瞳面上の直径の大きさは、それぞれ48mm、36mm、24mm、12mmである。いままで説明してきたボケアルゴリズムのボケアルゴリズム画像がそん色無いものであることがこれら画像との比較から分かる。
[リファレンスとなる円形開口ボケ](理想光学系による円形ボケの例)
(1)図65に示す左側の画像は、図46(1)に示すように、一辺の長さ(l)が12mmの正方で、かつ12mmピッチ(p)で正方形の線上に配置した各光学系の瞳53を有する多眼カメラで撮像した画像を用いて生成した合成開口ボケ画像である。同図に示す右側の画像は、同光学系で、図46(3)に示すように、ボケカーネル51の大きさを瞳面st面上で36mmの半径(r)にした円形のボケアルゴリズム画像である。
(2)図66に示す左側の画像は、図46(1)に示すように、一辺の長さ(l)が12mmの正方で、かつ12mmピッチ(p)で正方形の線上にランダムで配置した各光学系の瞳53を有する多眼カメラで撮像した画像を用いて生成した合成開口ボケ画像である。同図に示す右側の画像は、同光学系で、図46(3)に示すように、ボケカーネル51の大きさを瞳面st面上で36mmの半径(r)にした円形のボケアルゴリズム画像である。
(3)図67に示す左側の画像は、図46(5)に示すように、直径(k)が6mmの円形で、かつ12mmピッチ(p)で正方形の線上に配置した各光学系の瞳52を有する多眼カメラで撮像した画像を用いて生成した合成開口ボケ画像である。同図に示す右側の画像は、同光学系で、図46(3)に示すように、ボケカーネル51の大きさを瞳面st面上で36mmの半径(r)にした円形のボケアルゴリズム画像である。
(4)図68に示す左側の画像は、図46(4)に示すように、直径(k)が12mmの円形で、かつ12mmピッチ(p)で正方形の線上に配置した各光学系の瞳50を有する多眼カメラで撮像した画像を用いて生成した合成開口ボケ画像である。同図に示す右側の画像は、同光学系で、図46(3)に示すように、ボケカーネル51の大きさを瞳面st面上で36mmの半径(r)にした円形のボケアルゴリズム画像である。
[入射瞳]
図69に示すように、入射瞳(Ent_p)は、レンズの前方の光学系(FE)による開口絞り(AS)の像である。射出瞳(Ext_p)はレンズの光学系(RE)による開口絞り(AS)の像である。同図で物体OBが像IMとして結像し、光軸OA上にレンズ前方光学系FEと後方光学系REが位置している。光軸はレンズの中心を通る光線とみなすこともでき、レンズの中心を通るため屈折されず直進する光線となる。物点が光軸上にある時、光軸が中心の光線になる。物点が有限の高さを持つときは,入射瞳の中心を通る光線が中心光線になる。これを主光線PL(principal ray またはchief ray) という。入射瞳と射出瞳は共役だから,主光線PLは像側では射出瞳の中心を通って,像面に到達する。瞳が円形である場合、光軸は瞳面の中心を通る。入射瞳の直径PDはFナンバーと焦点距離fよりPD=f/Fで求まる。入射瞳の位置は通常第1面からの距離LPで示される。入射瞳径PDは通常のカメラレンズのテッサータイプの場合、レンズ最大直径ODの80~90%程度になる。入射瞳の第1面からの距離LPは焦点距離45mmのテッサータイプのレンズの場合、LP=10mm程度となる。以下の実施例では複数のカメラレンズを配置するが、その場合カメラ面(または瞳面)に入射瞳を投影する。カメラ面と入射瞳は物体から見て等倍なので設計などに都合が良い。
[カメラレンズの配置]
複数のカメラレンズを配置する場合、カメラ面(s-t平面)に入射瞳を投影する。カメラ面と入射瞳は物体から見て等倍なので設計などに都合が良い。図70に示す例の場合、合成光軸がs-t平面の原点を通る。s-t面にカメラ1,2の入射瞳Ent_pを位置させる。各カメラの光軸は(s,t)=(0,t0)と(s,t)=(0,-t0)に位置している。原点(s,t)=(0,0)が合成視点である。
[多眼カメラの配置について]
複数のカメラを多眼配置する場合、カメラ面s−t平面の原点(0,0)を通り、s―t平面に垂直な直線を合成開口法の光軸とみなし、合成光軸と呼ぶことにする。また原点(0,0)を合成視点と呼ぶことにする。合成開口法では数式4,5,6によって合成画像を出力する。合成開口法でのボケ量はカメラ面s−t平面の原点(0,0)からのカメラ距離に比例する。したがって、輪帯状にカメラを配置しても、合成開口法によるぼけのでき方はカメラ面s−t平面の原点(0,0)つまり合成視点の選択のしかたに依存する。合わせてカメラ配置に依存して決まるボケカーネルの形状も変わる。合成視点が偏ることによってボケカーネルが変化する例を図71に示す。なお、図71に示すように、輪帯状に多眼カメラを配置する場合は、任意の合成視点を選ぶことが可能であるが、以下で説明する例の場合には、基本的な配置として、合成視点が輪帯の中心となる場合を示す。合成視点を輪帯の中心とすると、生成ボケの大きさを大きくできるというメリットがある。それは図47の(1),(2)のカメラ配置の例で顕著なように、生成ボケの大きさは光学系の輪帯瞳径と同等程度までに限られるためである。生成ボケを光学系の輪帯瞳内に収まるように視点位置と生成ボケ量を調整しても良く、そうすることで輪帯瞳内での任意の視点で見た、ボケアルゴリズム像を生成しても良い。
先に説明した図10の例ではcam3がs-t平面の原点(0,0)に位置しており、合成視点となっている。
[多眼カメラの輪帯的配置]
輪帯状の瞳形状を多眼カメラによって構成する場合、図72に示すように、半径rの円周上にカメラ配置する。カメラの撮影レンズが配置された面、または入射瞳が並んだ面をs,t平面とする。同図で撮影レンズC1〜C12の円形は入射瞳の大きさを表すとする。それぞれの対物レンズ(撮影レンズ)に2次元の撮像素子が装着されておりそれぞれカメラユニットを構成しており、これらが複数配置され、多眼カメラを構成している。(多眼カメラによる合成開口法によるフォーカス合わせ(焦点合わせ)は図10を用いて説明したとおり。合成開口出力は[数6]により各カメラの重みを1として計算。)
カメラ配置は、入射瞳が並んだ面をs,t平面とすると、図74に示すように、半径rの円周上に輪帯をなすように並置された場合、レンズにより集光される光が半径rの円弧の方向に切れ目がない方(角度で20%以下の切れ目の方)が望ましい。このため、カメラのレンズにより集光される情報がレンズCの内側いっぱいに取れることが望ましい。図73に示すように、2重にカメラレンズの入射瞳を同心円方向に配置しても良い。内外でレンズが千鳥状に配列にされている。円弧方向の切れ目が無く、均一性が高いほど良好である(詳細は、後述する図75で説明する)。実際にボケアルゴリズムによって再現するボケの大きさは任意であるが、瞳上でr(+開口幅の50%)程度の生成ボケ半径が大きい方が限界である。
図75は、輪帯瞳の例である。合成視点がst座標の原点(0,0)にあるとする。内側半径を「r2」、外側半径を「r1」とすると、光束の入射する瞳領域を「f(s,t)」とする。原点(0,0)から一方向に発し、s軸にθをなす直線s’(θ)によるスライスを考える(これを動径s’(θ)によるスライスとよぶ)。スライスとは、直線上以外をゼロとすることである。スライスした結果は、線分s”(θ)となる。この線分s”の長さを|s”(θ)|とする(受光領域が複数あり、スライスした結果が複数の線分となる場合には複数の線分合計を考える)。瞳領域内の各点の強度に関する重みが均一である場合、|s”(θ)|がθ=0〜360度の間で一定(50〜100%)であることが望ましい。逆に瞳領域内の各点の強度に関する重みが強度フィルターなどで設定可能であれば、線分の長さ(|s”(θ)|)*強度重みを一定(50〜100%)にすることで線分長さ、|s”(θ)|を設定しても良い。実験によれば瞳の断続領域つまり|s”(θ)|=0となる領域がθの角度範囲で20%以下(7.2度以下)であれば良いことがわかった。
本実施形態では、ボケアルゴリズムで破綻の無いボケを得るために、円形のボケを得る場合で、かつ、瞳領域内の各点の強度に関する重みが均一である場合、瞳共役面またはカメラ配置面上の瞳領域の形状の、合成視点から発する半径方向の直線によるスライスが、緻密、かつなるべく均一であれば良いことが図39〜図45,図49〜図68で説明した画像により明らかである。瞳の断続領域は角度で20%未満であればよい。輪帯や回転対象の多眼カメラ配置では、カメラ配置の外側程度の瞳径に相当するぼけ量でも大きな破綻は無い。しかし、長方形配置など、偏りのあるカメラ配置の場合は、カメラの合成視点を中心に、カメラ群に内接する程度のぼけ量とする必要がある。この点を考慮すると円形配置が最も効率が良いことが明らかである。しかし、本発明の効果を得るためには合成視点を取り囲むようにカメラが配置されていれば、どのようなカメラ配置でも原理的には差し支えない。つまりハードウェアとしては、瞳面もしくはその共役面上で視点を取り囲むように配置された複数の瞳領域が、同一面上の視点から発する動径によりスライスしたとき、該動径の偏角の80%以上で存在し、複数の瞳領域を通過する光束を光学系により結像させ被写体像を瞳領域ごとに個別に撮像する多眼撮像部を有していれば良い。この瞳共役面は撮像面に位置するマイクロレンズアレーによって作られた複数の瞳共役面であってももちろん良く、いわゆるライトフィールドカメラと組み合わせても良い。そのような実施例を図81、図83を用いて後述する。マイクロレンズアレーを用いた場合、瞳分割数をあげることが容易で、それぞれのピンホールカメラのピンホール径が小さくなり、ピンホールカメラの幾何学的焦点深度を深く取れるというメリットがある。
瞳面、もしくはカメラ配置面に効率よくレンズを配置するにはトリプレットタイプ、テッサータイプ、ガウスタイプなど古典的な対称形状のレンズ設計が望ましく、最近の携帯電話用の光学系は後群の径が大きく配置しにくい。これはバックフォーカスを短めに取った設計のためと思われる。しかし、入射瞳を第1面の直後に位置させたレンズ設計を行えば、瞳開口率(=入射瞳径/レンズ外形)を100%にすることも可能である。後群の直径が大きい場合、後群をミラーで折り返すような設計も可能である。
また、薄型のカメラを構成する場合、ミラーなどで適宜折り曲げて配置することも考えられる。そのほか、ロッドレンズ、イメージファイバー、セルフォックレンズ(登録商標)などを利用して瞳開口率(=入射瞳径/レンズ外形)を上げることも考えられる。多眼カメラのレンズ一つ一つの径が大きくなり、単体での焦点深度が不足する場合、キュービック関数の瞳波面収差を与えて、焦点深度を増やした、EDOF(Extended Depth of Field)レンズとして用いてもよい。しかし、後で述べるマイクロレンズの光学系を用いることが簡便である。合成開口法によりリフォーカス(撮影後に任意物体面にフォーカシングすること)することは重要な機能であるので、個々のカメラレンズは焦点深度が深い、パンフォーカスであることが望ましい。(もしくは単体のライトフィールドカメラ。)そのため個々のレンズの入射瞳を小さくするか、撮影倍率を小さくすることが望ましい。f=約4mm、F2.8、画角約50度、1/4インチセンサー用レンズの場合、2mにフォーカスさせて無限遠から1mまで5〜6Mピクセル相当のナイキスト周波数でのMTFの変化は20%程度である。この場合の入射瞳の直径は1.4mである。この程度のレンズを複数並べることになる。どちらかというと、ウェハレベルレンズでテッサータイプを構成することがよさそうである。図75のように合成視点を中心とした直線によりスライスした結果の瞳の幅を一定することが困難である場合には、瞳共役位置に濃度フィルターを設けて、瞳の光強度透過率を調整するようなフィルタリングを行っても良い。
MTFのピント位置による変化が問題となる場合、多少であれば画像先鋭化処理をピント位置に応じて適宜変えることで対応可能である。別の手段としては瞳を分割する多眼カメラの各々を無限遠から近距離までそれぞれピント位置を徐々に変えていくように初期調整しておいても良い。このように設定すると合成開口処理後の画像の合成PSFの特性がピント位置によりあまり変化しなくなる。
[表5]に示すように、50mmの瞳サイズとすれば112個の対物レンズ(カメラ)の数が必要となる。超解像処理によりおおむねカメラ数を約0.5倍した値に相当する画素数まではレンズの解像力に余裕があれば多画素化が達成可能である。また、対物レンズのピント位置をレンズごとに近距離から遠距離まで徐々に設定を変えておいて、合成開口法によるピント合わせ後のフォーカス像がいずれの場合でも同じようなPSFとなるように設定しておいても良い。
[方形開口の輪帯配置]
図76に示すように、方形開口を輪帯配置してももちろん構成可能である。この場合撮影レンズはハエの目レンズ状に接近する。C1〜C24がレンズの瞳形状を示している。図77に示すように、テッサーレンズを四角に切り出した場合、レンズ外形70に対して80〜90%程度の有効領域となる入射瞳71を得ることができ、少ないレンズで多眼カメラを構成することができる。
<第2実施形態>
第2実施形態では、多重輪帯瞳として、同時に複数のフォーカス像を得ようという発明である。光学系は屈折系、反射屈折系、反射系が考えられる。フォーカスごとに撮像センサを用意する。完全に同時に複数フォーカスの画像を取得するには、多眼配置のほか複数輪帯瞳光学系を提案する。そのほか振幅分割して複数のフォーカス位置にそれぞれ撮像センサを配置しても同時に複数のフォーカスの画像が取得可能であることはいうまでも無い。この例を図78に示す。物体Oから発する、撮影レンズObによって集光された光は、ハーフミラーp1〜p5で振幅分割され、リレーレンズOr1〜Or5で撮像素子を含む撮像センサs1〜s5の受光面に結像する。撮像センサs1〜s5はそれぞれ所望のフォーカスオフセットが与えられている。このため同時に複数のフォーカス位置での像を取得可能である。なお、非同時であってもほぼ同時に取得するにはフォーカスセンサやレンズの一部を振動的にフォーカス方向に駆動し、撮像センサs1〜s5のフォーカス位置を連続的に変化させ、時間差をあけて複数のフォーカス画像をほぼ同時に取得してもよい。
図79は、輪対瞳光学系で瞳を多重化して分割する別の実施形態である。この場合、瞳共役面近傍のミラーp1〜p3により瞳面を径の異なる輪帯で3分割し、それぞれ撮像センサs1〜s3で撮像する。この際、撮像センタs1〜s3はそれぞれ所定のフォーカスオフセットが与えられており、同時に複数のフォーカスの像を得ることができる。この実施形態では、ボケアルゴリズムでボケを形成できる上限が光学系の多重輪帯の内径APまでとなる。本実施形態のようにフォーカスごとに像側NAが変わるケースでも、PSFのフォーカス方向の積分IPSFが対象物体の深さの範囲内で事実上変化がないと見なせる範囲であれば問題ない。
ハーフミラーP1〜P5までの瞳分割を振幅分割でなく、波面分割にする際に、輪帯状に分割することが有効であるが、その他の例としてランダムパターンで分割することが考えられる。その時も、先に説明したように、合成視点を中心とした動径によるスライスが360度のうち80%程度占めるように、かつ可能であればスライス後の線分長が均一(50〜100%)となるようにランダムパターンを決定する。ランダムパターンの生成には以上の拘束条件のもとに、遺伝的アルゴリズムなどで生成する。
また、波面分割する別の実施例として、図80に示すように、撮像センサs1をひとつにして、ミラーをいわゆるDMD(デフォーマブル・ミラー・アレイ)等の空間光変調素子p1として、時分割で輪帯の選択領域をスイッチングして変化させ、輪帯の切り替えに同期して画像を取得しても良い。その場合は、撮影レンズObに球面収差等の回転対称収差を与えて、輪帯の径を選択することでフォーカスオフセットも同時に変化可能な構成とする。なお、レンズOr1は、リレーレンズである。符号「p2」はミラーである。収差は、レンズ間隔を変更して収差量を変えられるようにしておくと、球面収差をプラスにするかマイナスにするかで、前ボケを大きくしたり、後ろボケを大きくしたり等変化がつけられる。また、液晶等の空間光変調素子で収差量を変更してもよい。また球面収差量を被写体の奥行きに合わせて変化させてもよい。
[マイクロレンズアレイの利用]
次は、マイクロレンズアレイを用いる場合の実施形態を説明する。図81は、一般に知られているlight ray sensor(LLS)を有する撮像部を示す。LLSは、撮像センサsaの前に、マイクロレンズアレイMを配置している。マイクロレンズアレイMは、複数のマイクロレンズ(正レンズ)M1〜Mnを二次元状に並べて一体化したものである。撮像センサsaは、撮像面に複数の受光素子を有する。受光素子は、マイクロレンズM1〜Mnの後側に所定個ずつ配置される。このような構成では、マイクロレンズM1〜Mnが通常の撮像素子の一画素に相当する。
なお、ベイヤー配置のRGBGの4素子で一画素とする。マイクロレンズアレイMは、撮影レンズ(結像光学系)Obの瞳面を撮像センサsaの受光面上に結像させる。すなわち、撮像センサsaは、マイクロレンズM1〜Mnに相当する画素位置ごとの光強度を瞳分割して受光することになる。瞳面で分割して受光するため、これは多眼カメラと同様に、合成開口法によるフォーカスが行え、前述の多眼カメラによるボケアルゴリズムを使用できることは言うまでも無い。同図のマイクロレンズM2の画素に対応する受光素子群seg2は、s’,t‘面上でセグメントの中心にs’’,T’’座標とすると、図81(1)に示すようになる。マイクロレンズの後ろ焦点面に瞳共役面が投影され、瞳分割数に応じた2次元の画素が配置される。つまり一画素に対して複数の瞳分割素子が配置されることになる。通常は撮像素子(=瞳分割素子)の配列とマイクロレンズの配列はそれぞれ正方方眼配置とし、s,t座標とx,y座標が平行となるように、撮像素子の配列とマイクロレンズの配列も平行とする。このように配置されたカメラシステムを一般的にライトフィールドカメラと呼ぶ。本発明にも応用でき、例えば瞳分割センサーの外周付近の領域のセンサーのみを用いて、合成開口法によりフォーカシングすると、光軸の周囲に輪帯状に配置した多眼カメラで合成開口法でフォーカシングした場合と等価の像を形成できる。ライトフィールドカメラの分割数が例えば8x8の場合、図82(1)のような瞳分割センサーを形成することになる。この外周28個の瞳分割センサーを用いれば矩形領域の瞳分割となる。このように中抜けの輪帯または矩形の瞳分割センサーを利用することは特に輪帯瞳を有する反射屈折光学系との相性が良い。
球面収差または像面での段差を用いてフォーカスオフセットをつける場合、瞳分割素子の輪帯光学系に対応する部分(マトリクス状に配した受光素子群seg2のうちの輪帯状になるように選択した受光素子群)は、同心円で分けられた領域の積分で十分なので、同図(2)に示すように、初めから同心円状に配置してもよい。その場合は、複数のフォーカスの像を同時に得るために合成開口法を行えなくなる。同心円状に配した受光素子の受光面に対してフォーカス方向に段差を与えておく。または、撮影レンズObに球面収差等の回転対称収差を与えておいて、この収差によってフォーカスオフセットをつけても良い。収差は、レンズ間隔を変更して収差量を変えられるようにしておくと、球面収差をプラスにするかマイナスにするかで、前ボケを大きくしたり、後ろボケを大きくしたりなど変化がつけられる。このように、受光素子をマイクロレンズM1〜Mnにより結像する像面に対応するセグメント毎に輪帯状に配置した撮像センサを用いる場合、受光素子の数を低減することが可能である。
また、ボケ処理時に、ボケカーネルをピント位置の前後で非対称(同図(4)参照)とすることで、その非対称ボケカーネルを用いてコンボリューションをして前ボケと後ろボケとの大きさを調整(制御)してもよい。この効果と光学系の効果(球面収差をプラスにするかマイナスにするかで、前ボケを大きくしたり、後ろボケを大きくしたりなど変化がつけられる効果)を相補的に最適化しても良い。
図82(3)に示す例では、同心円状のセグメント数を増やして、ボケアルゴリズムによって付加するボケの大きさに応じて使用するセグメント数を増減させている。その場合、ボケを大きくする場合は「as1」等外側のセグメント群を用い、ボケが小さい場合は内側の「as3」を含む「as1〜as3」までのセグメントを使用する。そうすることによって感度の向上を図れる。これは、ボケが小さくてよい場合のみ有効である。また、被写体への距離に応じて、使用するセグメントを変えることもできる。その場合は像面の倍率が大きくなり、ボケが大きくなりがちな近距離撮影時に「as3」等のセグメントを使用することが望ましい。輪帯瞳の光学系は特に焦点距離が長い望遠レンズの場合、反射屈折光学系が適している。
<第3実施形態>
第3実施形態は、図83(2’)に示すように、マイクロレンズ付きの合成開口可能なカメラを複数配置する形態である。同図(1’)は、カメラ面s-t平面状に入射瞳を投影している図である。同図(1’)に示すように、センサーレンズアレイHを瞳共役位置に有する合成開口によるフォーカシングの可能なカメラCnを配置する。
このようにセンサーレンズアレイ付きのカメラを複数配置することでカメラ面s,t面内の瞳分割数を増加させることが可能である。本実施例では、カメラCn毎の瞳分割数Hは24個で、カメラCnを11個とすることで、都合264個の瞳分割カメラがあることになる。これらをすべて用いて合成開口法によりフォーカシングを行い、ボケアルゴリズムを用いて任意のボケを付与したボケアルゴリズム画像を生成できる。ボケの大きさは、本実施形態では半径r2程度になる。半径r2は、合成開口可能なカメラを11個並べた半径程度である。本実施例でも中心(0,0)を合成視点とし、ここを中心とした動径によるスライスが偏角によって途切れることなく、均一となるように瞳分割カメラを選択することが望ましくその場合、半径r2に沿ったカメラを均一の幅、例えば2列分の幅を選択することがのぞましい。瞳分割方法に関してはさらに最適化の余地がある。例えば三角形の瞳分割素子、六角形の瞳分割素子、千鳥配置の瞳分割素子など。
例えば三角形の瞳分割素子、六角形の瞳分割素子、千鳥配置の瞳分割素子など。
同図(1),(2)は瞳分割の仕方を(s,t)座標に応じて変えている。この例では各カメラの撮像素子を(s,t)座標に応じて傾けている。一方マイクロレンズはs,t座標に平行なままとする。この場合は追加で画像処理する必要がある。追加の画像処理は撮像素子を斜めにして撮像した画素から補間処理によりサブピクセルの瞳分割素子出力を生成するといった処理である。
通常の方眼配置のセンサーとマイクロレンズを利用する場合、同図(1’)、(2’)の組み合わせとなる。C1〜C11は市販のライトフィールドカメラを用いても良い。
このようにライトフィールドカメラを応用することも可能で、その場合も瞳分割素子の形状及び配置は、カメラ配置面s-t面上に投影して設計、最適化する。また、焦点合わせは瞳共役位置のセンサーアレイを入射瞳に投影したときのs,t座標を用いて合成開口法により焦点合わせを行う。合成視点、合成光軸は輪帯配置の中心Cとする。このような構成とすることで瞳分割カメラによる瞳分割サイズを小さくすることができ、各瞳分割素子の焦点深度を深くすることができる。
[球面収差の利用について]
図84では、U,V座標をカメラ座標とする。同図に示す例は、個眼撮像部を直径s1〜s5の輪帯状に配置した多眼カメラとなっている。これらを予め距離z1,z2,z3,z4,z5にフォーカスさせる。これらは、視差Z=s1*f/zが等間隔Z1になるように、例えばZ1=s1*f/z1,Z2=2*s1*f/z1、Z3=3*s1*f/z1、Z4=4*s1*f/z1、Z5=5*s1*f/z1の距離にフォーカスさせる。すなわちz2=z1/2,z3=z1/3、z4=z1/4,z5=z1/5とする。
以上は、多眼カメラの例であるが、輪帯s1〜s5のカメラは、ピント位置が異なる輪帯瞳の光学系であれば何でもよい。たとえば図85に示すように、球面収差等の対称収差を有するレンズや、輪帯状に分割されたフレネルレンズでもよい。このように瞳面を同心円状に分割する場合、分割された輪帯の幅は小さいほど好ましい。これはつまり、輪帯瞳を分割しないタイプに比べ、被写体距離によって、ボケ量が変わるためである。
他の例としては、ボケカーネルは、前ボケと後ボケで効果を変えることが可能で、図86に示すように、前ボケを大きくしたり、後ボケを小さくすることができる。また、既存のレンズの収差量をもとにボケカーネルを作ることで既存のレンズのボケをエミュレートすることができる。つまり、既存のレンズは球面収差の傾向によって前ボケの大きいレンズや後ぼけの大きいレンズがある。これをまねようというものである。本実施例は、多眼配置のカメラに任意のボケカーネルを併用する際などボケカーネルを用いるケースすべてで利用することができる。
[カメラ分割方法]
図87は、例えば22個のカメラcam1〜cam22を円周上に配置した多眼カメラを示す。図88は、各カメラcam1〜cam4の要部を示す。各カメラcam1〜cam22は、対物レンズ(撮影レンズ)の外形を4角形に加工して、s,t座標の中心から発する直線を考え、直線によるスライスした受光領域の幅(線分の長さ)(受光領域が複数あり、同一方向の線分が複数ある場合はその合計の値)の直線の偏角による変動を抑えるため(図75参照)、レンズ同士の接する辺を動径と平行にならないように分割した形態になっている。この場合、レンズ同士の接する辺と動径の方向は、常に45度程度の角度をなす。レンズ外形に対して入射瞳は、80〜90%の有効領域を有する。内径r1、外径r2の輪帯瞳の光学系に近い瞳形状となっている。図89は、同様な考えからレンズの外形を三日月状に加工してあり、s,t座標の中心から発する直線によるスライスした受光領域の幅の直線の偏角による変動が抑えられる。このようにレンズを多角形や円以外の形状とすることで受光領域の幅の偏角による変動を抑えることが可能である。また、対物レンズを一枚の光学素子に加工することも可能である。例えば、図90に示すように、ガラス基板gkに光学素子gm1,gm2を接着しても良い。またgm1,gm2は、樹脂で成型し、ハイブリッドレンズとしても良い。また、これらを一体で射出成型したガラス、又は樹脂レンズとしても良い。
以上、説明したように本実施形態では、大口径レンズと同様のボケを有する画像を、大口径レンズを用いずに小型化したカメラで撮影可能となる。また、撮影後に任意のボケ量に設定できる。さらに、輪帯瞳とマイクロレンズと輪帯状撮像セグメントを組み合わせた場合、従来のこの種のカメラより撮像素子を低減することが可能である。また、球面収差量でフォーカスオフセットをつける場合、前ボケ、後ボケの大きさを調整することが可能となる。さらに、ボケカーネルをピント位置の前後で非対称とすることで前ボケと後ろボケの大きさを調整できる。
上記実施形態では、図1で説明した多眼カメラ10を用いて一枚のボケが付与された写真の取得に必要な多焦点画像を同時に取得しているが、一般的な一眼のカメラを用いて、ピントをずらしながら時系列的に複数回の撮影を行って複数の多焦点画像を取得してもよい。
また、上記各実施形態では、電子カメラ9,10として説明しているが、本発明ではこれに限らず、図6で説明した撮影レンズ23、撮像素子20、AFE21、及びフレームメモリ22等を省略し、画像処理部のみを備えた画像処理装置又はその方法としてもよい。この場合には、予め撮像済みの複数の多焦点画像データまたは複数枚の多眼カメラ画像を取り込むための記憶部を設ければよい。
画像処理部が実行するためのプログラムは、本発明によるプログラムを構成する。このプログラムを記録する記録媒体としては、半導体記憶部や光学的、磁気的な記憶部等を用いることができる。このようなプログラム及び記録媒体を、前述した各実施形態とは異なる構成のシステム等で用い、そこのCPUで上記プログラムを実行させることにより、本発明と実質的に同じ効果を得ることができる。そこで、本発明としては、コンピュータを、前述した画像処理装置として機能させるためのプログラムとしてもよい。また、そのプログラムを記録した記録媒体としてもよい。
次に、アオリ撮影により得られる画像を、合成開口法を利用して仮想的に生成する実施形態について以下に説明する。
(1)[像面を傾けて撮影をした時に得られる画像を仮想的に生成する場合]
図91では、レンズLの光軸Zの原点がレンズにあるとして、物体空間を(X,Y,Z)で表す。像面ImpとレンズLの距離a0とを任意に設定する。像面Impと物面Obpとは共役関係になる。同図は、アオリ光学系になっており、像面Impが傾いているので物面Obpも傾いている。像面Impを傾けた時のレンズLから距離a0,a1,a2の像点I1,I2,I0を考える。像点I0,I1,I2に共役な物点O0,O1,O2までの距離b0,b1,b2をレンズの結像公式(1/a+1/b=1/f)により像点位置ごとに算出し、物点O0,O1,O2までの距離b0,b1,b2の最大値と最小値を求める。同図に示す例では距離b1が最大値、距離b2が最小値に相当する。物点O0,O1,O2までの距離の最小値b2と最大値b1の間がピントの合う範囲であるので、この間の距離を適当な間隔で分割し、分割した位置を複数のフォーカス距離として定める。なお、フォーカス距離としては、例えば前記ピントの合う範囲を等間隔に分割した位置に設定するのが好適である。次に、複数のフォーカス距離にピントを合わせた画像を、所望のボケ量でボケアルゴリズム処理を施して複数生成する。これらの画像はピントの合ったところに物体があるとボケが発生せず、ピントの合っていないところに物体があるとボケが発生した像になる。複数のフォーカス距離にピントの合った各画像から、前述した像面を傾けた時の像面Impの像点ごとのデータ(RGBの強度値。実際にはR、G、Bに対して同じ処理を別々に行うことはいうまでもない。)に基づいて、物面Obp上の共役な物点O0,O1,O2ごとの距離b0,b1,b2に対応するデータを抽出していく。このようにして一枚のアオリ写真のデータを得ることができる(アオリ撮影の場合、通常は興味の対象の物体はインフォーカス(ピントの合った状態)で撮影される。)
(2)[物面を傾けて撮影をした時に得られる画像を仮想的に生成する場合]
この場合は、傾ける面を物面Obpに設定するが、物面Obpと像面Impは共役関係であるため、どちらの面を先に設定してもその後の処理は、前述した[像面を傾けて撮影をした時に得られる画像を仮想的に生成する場合]と同じ処理を用いることで、一枚のアオリ写真のデータを得ることができる。
以上、本発明の実施形態に係る画像生成方法及び装置について詳細に説明したが、上述した構成は本発明の趣旨を逸脱しない範囲で、適宜変更が可能である。
〔付記〕
上記に詳述した発明の実施形態についての記載から把握されるとおり、本明細書は少なくとも以下に示す発明を含む多様な技術思想の開示を含んでいる。
(発明1):複数の撮影レンズにより被写体像を個別に撮像する多眼撮像部から取得する複数の合焦状態の画像に対して、予め任意のピント位置に設定した二次元フィルタを用いてボケ処理をそれぞれ行い、これらボケ処理を行った複数の画像の強度和画像であるフォーカススタック像を算出し、前記フォーカススタック像を画像先鋭化処理して任意のボケを付与した画像を生成する画像生成方法において、前記撮影レンズの瞳の仮想光軸を中心とした動径によるスライスが、その偏角の略80%以上でゼロ以外となるように前記複数の撮影レンズが配置されていることを特徴とする画像生成方法。
(発明2):発明1に記載の画像生成方法において、前記ボケ処理は、任意のボケカーネルを用いたコンボリューションをする処理を含むとともに、
前記画像先鋭化処理は、前記フォーカススタック像に対して予め決めたカーネルを用いたデコンボリューション処理を含むことを特徴とする画像生成方法。
(発明3):発明2に記載の画像生成方法において、前記任意のボケカーネルは、所望のピント位置から比例したボケ半径の円形開口、又はガウシアンを表す関数となっていることを特徴とする画像生成方法。
(発明4):発明2又は3に記載の画像生成方法において、前記カーネルを用いたデコンボリューション処理は、前記ボケ処理でコンボリューション処理を行う時に用いる前記任意のボケカーネルのフォーカススタックに相当する、フォーカススタックボケカーネルを用いたデコンボリューション処理を含むことを特徴とする画像生成方法。
(発明5):複数の撮影レンズにより被写体像を個別に撮像する多眼撮像部から取得する複数の合焦状態の画像に対して、予め任意のピント位置に設定した二次元フィルタを用いてボケ処理をそれぞれ行い、これらボケ処理を行った複数の画像の強度和画像であるフォーカススタック像を算出し、前記フォーカススタック像を画像先鋭化処理して任意のボケを付与した画像を生成する画像生成方法において、前記複数の撮影レンズの合成光軸を中心に任意方向に回転する動径による瞳領域のスライスが、その偏角の略80%以上でゼロ以外となるように前記複数の撮影レンズが配置されていることを特徴とする画像生成方法。
(発明6):[図79で説明した輪帯光学系で瞳を分割する発明]
複数の撮影レンズにより結像する被写体像を個別に撮像する多眼撮像部から取得する複数の合焦状態の画像に対して、予め任意のピント位置に設定した二次元フィルタを用いてボケ処理をそれぞれ行い、これらボケ処理を行った複数の画像の強度和画像であるフォーカススタック像を算出し、前記フォーカススタック像を画像先鋭化処理して任意のボケを付与した画像を生成する画像生成方法において、前記多眼撮像部は、前記撮影レンズの瞳の仮想光軸を中心とした動径のスライスが、その偏角の略80%以上でゼロ以外となるような複数の領域に瞳分割したことを特徴とする画像生成方法。
(発明7):[図81で説明したマイクロレンズを用いた発明]
被写体像を所定の結像面に結像させる撮影レンズと、前記結像面の近傍に二次元状に配列されたレンズアレイと、前記レンズアレイの各々に対応して前記レンズアレイの後側に所定個ずつ配置される複数の受光素子とを備え、前記各正レンズにより結像する像面に対応する領域に含まれる受光素子群のうち同心円上または矩形上の複数の受光素子から前記領域毎に取得する複数の合焦状態の画像に対して、予め任意のピント位置に設定したボケ処理をそれぞれ行い、これらボケ処理を行った複数の画像の強度和画像であるフォーカススタック像を算出し、前記フォーカススタック像を画像先鋭化処理して任意のボケを付与した画像を生成することを特徴とする画像生成方法。
(発明8):発明7に記載の画像生成方法において、前記撮影レンズは、回転対称収差を有することを特徴とする画像生成方法。
(発明9):[図82(4)で説明した前ボケと後ろボケとの大きさを制御する発明]
複数の撮影レンズにより焦点を変えて結像する被写体像を個別に撮像する多眼撮像部から取得する複数の合焦状態の画像に対して、予め任意のピント位置に設定した二次元フィルタを用いてボケ処理をそれぞれ行い、これらボケ処理を行った複数の画像の強度和画像であるフォーカススタック像を算出し、前記フォーカススタック像を画像先鋭化処理して任意のボケを付与した画像を生成する画像生成方法において、前記ボケ処理は、前記ピント位置の前後で非対称にしたボケカーネルを用いてコンボリューションをすることを特徴とする画像生成方法。