張宇翔,吳天昊,鮮 明,張洪江
(1 國防科技大學電子科學學院,長沙 410073; 2 安康學院電子與信息工程學院,陜西 安康 725000)
圖像記錄了光的信息,也是人類記錄三維世界的手段。 縱覽人類歷史,實際上也是人類對于光學信息的研究發展史,從簡筆繪畫到精美的寫實畫,從手工繪制地圖到如今的數字實景地圖。 然而目前的相機成像技術仍依賴于針孔成像模型,是使用傳感器記錄空間中某一平面的光強二維分布,是對七維全光函數進行二維采樣的過程。 在傳統成像技術的基礎上,計算攝影學從記錄多維光學信息的角度,克服了傳統成像方法的以下局限:
(1)景深和光圈大小的局限性。 傳統光學成像的鏡頭光圈限制成像的景深[1]。 光圈越大,鏡頭對光信號的采集能力越強,成像質量越好。 但與之同時出現的問題是景深范圍小,不利于全場景成像。
(2)二維采樣的局限性。 針孔成像模型中的圖片為三維世界坐標系的點在二維上的投影,因此傳統成像模型無法采集深度信息。
(3)鏡頭成本的局限性。 傳統相機要想獲得更好的成像質量,需要更大體積、更大光圈的鏡頭,費用較為高昂[1]。
在計算攝影學中,近十多年逐漸成熟的光場成像(Light Field Imaging)已經成為現代光學成像的新興領域。 光場成像設備可以同時記錄光線的強度和方向,人們利用這一點可以提取出場景的三維信息。利用三維信息,光場數據可以生成場景深度圖。 深度圖像是三維場景重建的基礎,利用此信息可以實現更多復雜算法。 此外,光場成像還可以實現光場重聚焦[2-3]、光場超分辨等功能。
在計算機視覺中,可靠的數據是算法訓練的基礎。 目前,知名的公開光場數據集有斯坦福大學利用真實陣列相機建立的光場數據集STF-gantry,Lytro 官網公開的數據集EPFL 以及INRIA。 這些數據集都具有場景內容豐富、成像質量高的特點。 真實數據集的優勢在于拍攝的場景全部源于真實世界,但是真實數據集依賴于現實條件,例如昂貴的相機設備、還有拍攝的環境需要仔細選擇,否則成像質量難以保證。 而HCI 數據集提供了一種新思路,利用現在成熟的3D 建模技術,在電腦中先構建虛擬場景,再通過渲染方式生成光場圖片。 由于在虛擬場景中生成圖片是嚴格按照針孔成像模型進行3 維到2 維的映射,這種方式得到的光場圖片免去了繁瑣的校正步驟,而且由于整個場景的人工搭建,還可以渲染出深度圖作為深度的真值,這是真實場景數據集做不到的。
然而,目前主流的仿真數據集還有一個未能實現的功能是調節陣列相機基線,因此本文基于3dsMax 建模軟件構建了一個基線可變的原創光場數據集—BVSL-34,還開創性加入了對于同一場景的可變基線的功能,并且后文對于光場算法的實現也將基于此數據集進行。
陣列相機的原理是在四維光場中,在多個位置放置相機對四維光場進行二維切片,相當于對光場進行多角度的二維采樣。
文獻[4]設計了一個8×8 的陣列相機。 這種設備的特點是能夠對運動的光場進行感知。 文獻[5]設計了一個6×8 的光場成像設備,可以渲染不在6×8 視角位置的視角圖像。 就是通過對各子相機位置視角進行重排列,通過這種手段獲得更優的成像品質。 文獻[6]制作了一個8×12 的陣列相機,并且將獲取的光場數據制作成公開數據集。 各種體制陣列相機如圖1 所示。

圖1 各種體制陣列相機Fig. 1 Various institutional array cameras
來自西北工業大學的研究團隊,研制了一種8×8 的相機陣列[7],見圖1(a)。 他們基于這種陣列相機在相機校正[8]等課題進行了深度研究。 以上提到的陣列相機均為大型的光場成像設備,價格昂貴。另一方面,隨著相機逐漸向小型化發展,也有團隊將陣列相機的小型化作為目標。 PiCam 是一款超薄4×4 的陣列成像設備,整體體積與硬幣相當,由Venkataraman 的團隊研制[9],見圖1(c)。 綜上,陣列相機具有如下特點:
(1)陣列相機可以瞬時獲取光場。
(2)陣列相機可以大型化、也可以小型化,并且在成像設備集成度越來越高的情況下,小型化的陣列相機也有不俗表現。
3D Studio Max,常簡稱為3d Max 或3ds MAX,是Discreet 公司開發的(后被Autodesk 公司合并)基于PC 系統的3D 建模渲染和制作軟件。 其前身是基于DOS 操作系統的3D Studio 系列軟件,在設計3D 模型的2D 橫截面形狀中發揮著巨大作用。
3ds Max 軟件由一些重要的要素組成,包括主工具欄、命令面板、Maxscript 編輯器、視口、材質編輯器和渲染框窗口。 主工具欄位于窗口頂部,包括選項和工具;命令面板位于窗口界面的右側,包括了操作者需要的所有命令;Maxscript 編輯器作用是對腳本、實用程序和插件進行編碼操作;視口是從上、左、前、透視圖這4 個不同角度顯示場景的視圖框,通過視口使得操作3ds Max 工作更加輕松快捷;材質編輯器的作用是對場景對象單元進行紋理處理,并實現有關對象單元的材質和貼圖操作;渲染框窗口是查看最終渲染場景的視窗圖,支持用戶使用材質和照明查看其場景。 由于3ds Max 具有一套便捷實用的命令、工具以及內置基礎形狀,例如圓錐形、橢球形、立方體、茶壺形、金字塔形等,極大地提升了建模效率和操作體驗。 同時,3ds Max 加入了對頭發、皮膚、毛皮和衣服的仿真,這些內置工具減少了角色建模所需的時間并增強了細節。 另外,3ds Max還支持NURBS 功能,使操作者可利用數學公式進行平滑建模。
3ds Max 是一種三維建模軟件,具有建模速度快、功能豐富的特點,并且結合主流渲染器V-ray,可以做到照片級渲染,在城市渲染圖和建筑仿真制作中應用廣泛。 而3ds Max 可以做到場景搭建、模擬真實光照以及場景內多視角觀測,使得3ds Max更加適合用來制作陣列相機的光場仿真圖像。 本文使用該軟件進行仿真數據集制作,制作流程如圖2所示。

圖2 數據集制作流程圖Fig. 2 Flow data set production
本文提出的制作方法共分為5 個步驟:
(1)在3ds Max 軟件中進行特定三維場景建模,定義出所有物體單元的形狀與尺寸。
(2)對場景中的物體單元進行配置,賦予各個場景中單元材質與物理屬性。
(3)在已構建場景中添加光照并進行參數調節。
(4)在已構建場景中的不同位置架設虛擬相機,并且搭建不同基線的虛擬相機陣列。
(5)利用已搭建完畢的虛擬陣列相機進行渲染成像,以實現光場仿真圖像的制作。
以下將對各個步驟進行闡述。
首先需要在3ds Max 中搭建三維場景,此過程要精確搭建每一個三維物體的空間配合關系,并且指定物體的長寬高等基本空間物理屬性,一次搭建即可以實現三維場景的多次快速復用。 圖3 展示了在3ds Max 軟件中搭建場景的界面。

圖3 三維場景建模Fig. 3 3D scene modeling
場景構建完畢后,需要對三維場景中的物體單元進行貼圖操作,同時為每個物體單元賦予相關材質和物理屬性,包括物體反射系數、折射系數、顏色等固有屬性。 圖4 展示了場景單元參數配置的相關操作。

圖4 場景單元參數配置Fig. 4 Scene unit parameter configuration
為了更貼近現實世界,在模擬三維環境中添加光照調節是關鍵的步驟之一,圖5 展示了在已構建的三維場景中進行光照參數調節的相關操作。 通過設置光源的位置、形狀、指向、光照強度等一系列參數以添加光源,同時可以便捷、快速地進行參數調整以滿足符合特定環境要求的光照條件。

圖5 場景光照參數調節Fig. 5 Scene lighting parameter adjustment
場景構建及相關配置完畢后,需要在虛擬場景中的不同位置放置用于成像的虛擬陣列相機。 根據場景光場圖像成像的要求,在指定位置搭建不同基線的虛擬陣列相機。 圖6 展示了在3ds Max 中搭建虛擬陣列相機的界面,圖中白色陣列結構即為虛擬陣列相機。

圖6 建立虛擬陣列相機Fig. 6 Build a virtual array of cameras
場景中的虛擬陣列相機搭建完畢后,就可開始進行光場圖像的渲染成像,這是整個制作過程中的核心步驟。 在不同基線情況下,對場景進行渲染,本質是對于每一個陣列相機的子相機獲得的場景進行渲染,渲染的過程實際上是仿真相機成像的過程。最后得到所需的光場仿真圖像。 圖7 展示了基線為5 mm 的一組場景,圖片的排布與實際陣列相機的分布一致。

圖7 基線為5 mm 的一組光場仿真圖像Fig. 7 A set of light field simulation images with a baseline of 5 mm
BVSL-34:基線可變化的仿真光場數據集(Baseline-variable simulated lightfield-34)有以下特點:
(1)陣列相機參數一致性完全可控。 為了陣列相機成像質量的穩定性,往往需要陣列中的每個子相機具備完全相同的參數,顯然在現實世界中,這種絕對意義上的精準與相同是無法達到的。 但是利用本文提出的方法,在構建場景中搭建的虛擬陣列相機可以實現嚴格意義上的精準,子相機的等距陣列分布以及相機參數都可以做到完全相同。
(2)理想化渲染成像。 在3ds Max 中構建的場景中,通過搭建的虛擬陣列相機可實現理想化的渲染成像。 由于虛擬陣列相機成像模型完全按照理想針孔成像模型進行渲染成像,相比于現實世界中的陣列相機,省去了相機校正和去畸變的過程,提高了光場圖像的成像質量,在后續進行算法驗證時減少了預處理操作,提供了更加快捷的方式,提升了整體效率。
(3)相機基線可調節。 相較于傳統光場圖像制作方式,該方法最突出的優勢是開創性加入了對于相同場景下可變基線的成像功能,可以實現場景中同一角度的陣列相機基線可變地成像,滿足了場景基線可變化的需求。 圖8 很好地展示了該方法對于仿真場景如何實現基線變化,圖8 中使用3×3 的陣列相機作為展示,其中不同基線的陣列相機使用不同的顏色進行標注。

圖8 陣列相機場景基線可變示意圖Fig. 8 Schematic diagram of the variable baseline of the array camera scene
(4)具備深度圖渲染能力。 該方法同時具備深度圖渲染能力,可同時生成場景圖與對應的深度圖,如圖9 所示,其中深度圖可作為深度的真值圖像使用。 與傳統光場深度圖制作方式需要進行深度估計不同,該方法制作深度圖的原理是直接基于對三維場景的深度采樣得到。 這是因為在進行三維建模時,所有物體的三維信息都是精確確定的,并且在場景中均可直接觀測到。 圖9(a)和圖9(b)對比表明,生成的深度圖與原場景完全貼合,并且具備顯示深度全部細節的能力。

圖9 場景圖與對應深度圖Fig. 9 Scene graph and corresponding depth map
本數據集具有34 個場景、覆蓋3 大類,每個場景均進行了多基線的渲染,具有多種基線可供選擇。3 個大類分別為:自然風景、微距物體、室內場景,大類的選擇是依據盡可能覆蓋生活中拍攝可能出現的典型深度。 自然風景為大場景、最遠深度可達百米;微距物體則是小場景范圍、最遠深度在1~2 m;室內場景則為二者折中。 圖10 依據場景展示了該數據集的部分數據。

圖10 部分數據集展示Fig. 10 Part of the dataset
下面是針對本數據集和其他主流光場數據集的質量對比,對比范圍選取BRISQUE、NIQE、CEIQ 和ENIQA 指標。 本數據集和其他主流光場數據集特點對比結果見表1。本數據集和其他主流光場數據集關鍵指標對比結果見表2。 由表1 和表2 可知,本文的數據集具有良好的性能表現,表2 中的加粗數據為最優結果。

表1 本數據集和其他主流光場數據集特點對比Tab. 1 Comparison of the characteristics of this dataset and other mainstream light field datasets

表2 本數據集和其他主流光場數據集關鍵指標對比Tab. 2 Comparison of key indicators between this dataset and other mainstream light field datasets
可見,本數據集在4 個數據指標中有3 個領先、1 個次優,在各種功能綜合表現上也處于全面領先,場景數量多,具有深度數據,能進行基線變化。
重聚焦是光場相機對比傳統成像設備的特有功能,重聚焦技術是指光場成像設備獲取光場數據后,利用重聚焦算法,將成像的圖片調焦到場景中的任意位置,利用重聚焦技術可以實現“先拍照后聚焦”的功能,顛覆了傳統的拍照成像模式。 因此,本節將利用光場圖像具備重聚焦這一特性,采用基于重投影的陣列相機重聚焦實驗來對數據集仿真圖像進行測試,驗證本數據集的光場圖像是否符合光場圖像處理任務的需求。
(1)基于重投影的陣列相機重聚焦方法。 2000年,文獻[10]提出的動態參數法可以將光場數據聚焦到不同的深度。 2004年,文獻[11]基于單應性方法提出:在相機校正得到外參數的前提下,將光場圖像反投影到人為指定的參考平面上,對參考平面上的子圖像重投影到參考相機平面進行平移重疊相加,獲取聚焦在指定深度參考平面上的重聚焦圖像。
該方法流程及原理如圖11 所示。 利用重投影思想將光場圖像反投影到一個指定深度的參考平面上,對參考平面上的子圖像重投影到參考相機平面進行平移重疊相加,獲取聚焦在指定深度的重聚焦圖像。 在聚焦過程中,對于沒有嚴格對齊的像素位置采取一次插值方法獲取插值圖像。 相較于多次插值方法,一次插值可以盡可能減少插值產生的誤差。

圖11 重聚焦算法流程示意圖Fig. 11 Flow diagram of refocusing algorithm
(2)重聚焦。 重聚焦是光場成像方式中一種基本方法。 核心是使用“三維空間中不同位置的物體在不同位置的子相機成像中產生的視差(disparity)信息偏差”理論。 將光場圖像投影到一個參考平面上,對參考平面上的子圖像進行不同位置的位移后求和,取均值獲取聚焦在指定深度的重聚焦圖片。圖12 展示了雙目相機對同一物體的不同視角的視差區別及聚焦和虛化原理。

圖12 雙目重聚焦原理示意圖Fig. 12 The schematic of binocular refocusing principle
圖12 中,雙目相機從2 個視角獲取的圖像信息具有視差,處于聚焦平面的物體在2 個視角的圖片中視差為0,即是聚焦。 而不在聚焦平面上的點,由于具有視差,在圖像疊加過程中就會產生模糊,也就是攝影學中常說的虛化效果。
(3)重投影。 重投影是將每個相機投影在聚焦面上的三維點重新投影到其他相機(通常是中心參考相機)的像平面上。 設三維點坐標仍為(xw,yw,zw),那么該點代入第r個相機的成像模型中,在第r個相機像平面上的像素坐標為(ur,vr),可得:
得到了每個相機重新投影到中心參考相機像平面的重投影圖像,聚焦就是將這些重投影圖像進行疊加取均值。 為此可推得:
對于在聚焦平面上的點,所有相機的反投影點都在同一點,經過重投影仍然匯聚在同一個像素點;對于不在聚焦平面的點,所有相機的反投影點并不重合,因此重投影會形成一個模糊的范圍,也就是焦外虛化。 經過求均值,最終便得到光場圖像的重聚焦圖像。
使用基于重投影的陣列相機重聚焦方法進行驗證,實驗數據采用按照本文方式制作的光場仿真圖像,進行不同相機基線場景下的重聚焦算法測試與結果分析。
圖13 展示了理論上不同基線對重投影像斑的影響。 圖13 中,△m2為非聚焦平面上的點在重聚焦時產生的重投影像斑的直徑,對于同一個點M2,大基線陣列相機產生的重投影像斑大于小基線陣列相機產生的重投影像斑。

圖13 不同基線對重投影像斑的影響Fig. 13 Effect of different baselines on reprojected image spots
實驗選擇2 組不同基線的光場仿真圖像進行重聚焦實驗,實驗結果如圖14 所示,展示了同一場景下不同基線的重聚焦結果。

圖14 相機基線對于光場重聚焦結果的影響Fig. 14 Effect of camera baseline on light field refocusing results
實驗結果表明,2 組光場仿真圖像重聚焦后均聚焦在床架上,在相機基線為2.5 mm 時,重聚焦的景深范圍較大,前后景略有虛化;在相機基線為5 mm時,景深范圍比2.5 mm 場景小,前后景虛化比2.5 mm 更明顯,實驗結果與理論預期一致。
整個實驗過程及結論表明,本文提出的基于3ds Max 三維重建的光場圖像仿真制作方法所生成的光場仿真圖像具備光場圖像的特有屬性,完全符合光場圖像實驗要求。 同時,與傳統方法相比,實際的相機獲取的光場數據在進行光場算法實驗時需要考慮畸變,而通過本文方法制作的光場數據在實驗過程中完全不必考慮這一復雜的畸變處理過程。 另外,本方法還實現了同一場景中陣列相機基線可變地成像,滿足了同一場景基線可變化的實驗需求,且圖像質量均衡、自動化程度高,能夠有效提高特定場景下光場圖像的制作效率。
本文構建了一個基線可變的仿真光場數據集BVSL-34,包含3 個大類,共計34 個場景,534 個實例,并詳細介紹了數據集的制作方法,該方法解決了傳統光場圖像制作中存在的過于依賴現實世界條件、成像質量難以保證、陣列相機基線不可變等難點問題,極大地拓寬了光場圖像的應用場景。 與現有主流數據集HCInew[12]、HCIold[13]、STFgantry[14]相比,BVSL-34 數據集具有相機參數穩定,成像基線可變,同時呈現深度圖等優勢特點,對比顯示,本數據集在成像質量以及各項相關指標上均表現優異。最后,基于重投影的陣列相機重聚焦實驗驗證了BVSL-34 數據集仿真圖像具備光場數據的特性,整體制作與實驗流程效果較傳統方法有顯著的優勢,結果驗證了BVSL-34 數據集功能全面且質量優異,可以將該方法應用于相關光場圖像處理任務中。