光場相機重聚焦之二——Lytro Illum記錄光場


上一節中大概講述了光場相機和光場的參數化表示,這一節就說一下光場相機內部是如何記錄光場以及實現重聚焦的。

博主用的是Lytro Illum,所以就以Illum為例來說了,Illum的功能還是挺多的,上手使用的童靴需要相機使用手冊可以上網找一下,都有的。

切入正題

首先,說一下Lytro Illum的一些基本信息:Illum的Senser一共有4000萬個像素左右,得到的傳感器圖像(光場圖像)尺寸為7728*5368,就是4148 3904個像素;Illum的微透鏡陣列個數為541*434個,每一個微透鏡后面對應的像素個數為15*15=225個;illum傳感器得到的圖像為拜爾格式,排布為'gbgr'。

博主以三個小問題開頭,這也是我剛開始研究Lytro Illum時的疑問:

1.光場相機內部如何記錄光線的方向?

有了上一節所說的微透鏡結構,光場相機就可以實現光線的方向和強度的記錄。如下圖所示,不同方向的光線經過主鏡頭進入相機內部,匯聚到微透鏡陣列上不同的微透鏡上,經過微透鏡后又發散成若干條光線分別到達傳感器的感光元件上。這里每一個微透鏡視為一個宏像素,每一個(宏像素)微透鏡后面對應15*15個元像素(感光單元)。這15*15個元像素的亮度總和為最終宏像素的亮度,即宏像素的亮度為其對應所有元像素的積分。而每一個元像素對應通過前面微透鏡的一條光線,在Lytro illum中,15*15個元像素就可以記錄225條通過前面微透鏡的不同方向的光線,所以Lytro illum一共可以記錄的光線條數為N*225, N 為微透鏡個數。

2.Lytro illum中光場如何參數化表示?

根據4D光場原理,光場用表示,在Lytro illum中, , 其中s, t分別表示微透鏡(宏像素)陣列行數和列數。,其中 u, v 分別表示每一個微透鏡后面元像素的行數和列數。而每一個宏像素處的亮度為其對應所有元像素的積分,用下式表示:

在光場 中,如果固定s, t, 即選定某一個微透鏡,遍歷u,v,就可以得到該微透鏡下15*15個元像素圖像,如下左圖所示;如果固定u, v,即選定每一個微透鏡下某一處元像素,遍歷s, t,就可以得到一幅主鏡頭的子孔徑圖像,一共可以得到225幅子孔徑圖像, 如下右圖所示為其中一幅。在如果你使用的是Matlab工具包,得到的光場數據保存在一個5D的數組中,比四維多出的一維是通道數。即LF(u,v,s,t,c),獲取單個微透鏡下((300,300)為例)的圖像可以使用這條語句Img=squeeze(LF(:,:,300,300, 1:3)),而獲取某一個子孔徑圖像((5,5)為例)可以使用這條語句Img=squeeze(LF(5,5, :, :, 1:3))。

每個微透鏡單元后同一位置的像元均是主鏡頭同一子孔徑的投影,由這些像元可共同組成一幅子孔徑圖像。不同的子孔徑圖像是不同方向的光線成像得到,因此在視角上會有區別。

 

                        

 

 3.Lytro illum如何實現重聚焦?

 重聚焦就是將采集到的光場重新投影到新的像平面進行積分。以二維情況為例,L(u, s)為采集到的光場,U 和S分別表示主鏡頭孔徑所在的平面和微透鏡陣列所在平面,兩個平面之間的距離為L。選擇新的對焦平面S’,與U平面的距離為L’,令L’=α*L。S’平面上所成的像等於U-S’之間光場的積分,即:

對於同一條光線而言,應該有:

同時根據光線與各平面的交點坐標可以得到如下關系;

令, 變換后得到:

 

將其代入上式,得到:

推廣到四維情況,可以得到如下的重聚焦公式:

從式中可以看出,重對焦就是對光場在位置維度進行平移后在方向維度進行積分的過程。

光場相機的理論研究差不多就這樣了,想更深入研究的可以看關於光場相機的論文,其實看我上一篇列出來的就可以了。

下一節主要講一下如何使用matlab光場工具包解碼Lytro Illum拍攝得到的光場文件以及一些處理,並且展示一下重聚焦的效果,今天就到此。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM