2013年5月11日土曜日

ヘビでもわかるライトフィールドカメラの原理 その2.2 ライトフィールド記録の原理

前回で絞りの働きによって光線の方向が記録されることが分かった。
今回はそれを応用してライトフィールドを記録する基本原理を説明する。


その1.2で説明した2Dライトフィールドを思い出そう。
レンズのところにu面、センサーのところをx面としていたが、
今回はx面に小さな絞りを、センサーはその後ろに配置することにする。
センサーはわかりやすくピクセルごとに分割して図示してある。




















すると①のピクセルに到達する光線は、x座標とu座標が一意に決まることが分かる。
つまり、絞りによってx座標が限定され、その後どのピクセルに到達するかによってu座標が決定するのである。前回の説明したように、絞りによって光線を選択している訳である。
これを応用して、複数の絞りを設けることによって様々なx座標を通る光線について調べることができる。そうすると各ピクセルに固有の(x,u)座標が紐付けされ、ライトフィールドを記録することができる。




















この図は、レンズの結像面に複数のピンホールカメラをおいて光線を選択していると見ることができる。これが100年くらい前に考案されたライトフィールド取得のアイデアである。非常にシンプルなアイデアである。(本質がちゃんとわかっている人はこういうのがすぐに思いつくんやろなー…)
ライトフィールドの歴史についてはTedor Georgevさんのページに少し資料がある。
http://www.tgeorgiev.net/Lippmann/index.html

実際にはLytroのライトフィールドカメラではピンホールでなくレンズ(マイクロレンズアレイ)が置かれる。

ピンホールではなぜいけないのか?次回はレンズの働きについて少し考えてみたい。






ヘビでもわかるライトフィールドカメラの原理 その2.1 絞りのはたらき

前回、リフォーカスを行うには光線の角度情報も記録する必要があることがわかった。
ちょっとウォーミングアップとして絞りの働きについて考えておこう。

絞りとは英語で "stop" とも言う。つまり光をそこで止めてしまうのである。
なぜ止めるのか?

カメラをやっている人は分かると思うが、絞りを開くとシャッタースピードを速くすることができる。
逆に閉じるとシャッタースピードは遅くなり、露光時間は長くなる。
しかし、シャッタースピードをコントロールするためだけに絞りを開閉するのではない。
実は絞りには光線を選択するという効果がある
僕もただの穴にそんな効果があることはなかなか想像できなかった。


では、光線が空間を縦横無尽に飛び回っている状態を想像してほしい。
センサー面では、どこから来たかわからない光線が到達する。
これでは画像なんて形成できん。





ではここに小さな絞りを配置してみよう。



光線がすっきり。
絞りの開口部からの光のみセンサーに到達するようになった。
これがピンホールカメラである。
光線は少なすぎると暗くなるが、多過ぎても良いわけでもない。
1点から出た光が再び1点へ集まる、そういう光線のみセンサーに導かなくてはならない。
そう、絞りには光線を選択するという大事な働きがあるのである。

例えば絞りを置いた面を以前と同様にu面としよう。
絞りを小さくしてピンホールのようになったとき、
センサー面(x面)に届く光線のu座標は、そのピンホール座標一点に限定される。
つまりピンホールを置くことで光線の角度も決定される、という訳である。

光線を選択する道具としてピンホールがあることがわかった。
次回はこれを使って、ライトフィールドカメラが如何に光線の角度を記録しているかを説明する。









2013年5月10日金曜日

ヘビでもわかるライトフィールドカメラの原理 その1.2 リフォーカスの原理

前回ライトフィールドとはなんぞやを説明した。
空間を飛び回る光は様々なパラメータで表されるが、それを光線の進行方向のみの4Dで表すこととして簡略化するところまで話した。

ライトフィールドカメラではこの4D light fieldたるものを取得することになっている。
ではこの4D light fieldとは何かを具体的に説明しよう。

4D light fieldの表し方には2つの方法がある。
1.2-plane方式
2.Location-angle方式

2-plane方式は2つの面を定義して光線Lが横切る4つ座標を、
Location-angle方式は1つの平面を定義して、光線Lが横切る座標qと角度pをパラメータとする。
Ngさんの論文では前者を採用しているのでここでもそれに従う。

更にヘビでも分かるくらい簡単にするために2Dにまで落とす。すなわち2つの面の内xとuの2つのみを考える。
では単レンズを用いたカメラ内2Dライトフィールドがどのようなものか見ていこう。


この図はある1点でた光がレンズで再び1点へ結像する様子である。

それではまず2つの面を定義する。
一つはレンズの位置にu面を、
もう一つは結像する位置にx面を定義する。普通のカメラではx面に撮像素子(センサー)が置かれる。

この光線の状態を(x,u)空間にプロットしてみよう。
赤い光線はx座標は変化しておらず、u座標が変化している。
すなわちセンサーの同じ場所に到達する光線だが、レンズのどこを通ったかが異なる。
このときxはセンサー上の場所を表すが、uはxにどの「角度」で入ってくるかを表しているとも言える。
実際には赤い光線以外にも別のxに結像する光もある。(水色で表現)



センサーのあるピクセルの値はどのようになるだろうか?
これはある座
標xに入ってくる光を、すべて足し合わせれば良い。
すなわちピクセル値はセンサー上の点xにおいて、光強度を角度uに関して積分したものである。
このように積算された信号が絵として読み出されるわけである。




続いてフォーカスがずれた場合についてのライトフィールドを見てみよう。
光線は1点に集まるもののセンサーの手前で結像してしまっている場合を考える。
図の一番上の光線に着目する。
u面上は先ほどと同じ位置を通るがx面では少し下側に到達する。
これをプロットすると下図のようになる。
つまりフォーカスがずれた場合にはライトフィールドは斜めに傾くことになる。
フォーカスのずれ具合によって傾きが変わってくるのである。


この時センサーの出力はどうなるだろうか?
センサーは否応なしに、そこへ到達する様々な角度からの光線を積分するので、
やはり今回も先ほど同様、u方向に積分した値になる。
本来ピントがあっていれば隣の画素に到達するであろう光線も積分してしまうので
ピンぼけ画像はぼやけてしまうのである。

普通のカメラは場所xでどれくらい光が入って来るかは記録するが、
それがどんな角度から入ってくるかまでは記録していないのである。

言い換えれば否応無しに積分されてしまって角度uの情報が失われてしまっている。


ヘビより感の良い人はもうライトフィールドのカメラの原理が分かったかも知れない。
もし上のプロットにおいて積分する方向を自由に選択できるとしたらどうだろうか?
それはすなわちピント位置を自由に変化させることに相当する。

光線がどこを通ってどこに到達するか(すなわちxとu)を記録しておき、
それをデジタルで自由に操作することによって、リフォーカスする(ピント位置を自由に変える)ことができるのである。
これがライトフィールドカメラの原理である。


ではどのように角度情報を記録するのだろうか?
実は100年も前にアイデアは出されてあったようだ。
次はその原理について説明しよう。