


關鍵詞:NeRF算法;神經網絡;圖形渲染;三維模型重建
0 引言
通過圖像特征點對圖像進行合成是一個重要問題。通過對三維物體拍攝圖片,并基于特征點合成三維模型,該模型包含幾何形狀、顏色等特征。通過合成模型,可以觀察到未拍攝到的點的特征,并經過mesh網格化處理,最終得到打印物體的模型文件。相比傳統的逆向工程成型,此方法僅需少量照片即可生成較為真實的模型文件。
經過多年的研究,已有多項相關成果。最初,通過圖片拼接形成三維圖像,但此方法對拍攝要求高且合成效果欠佳[1]。隨后,光線追蹤方法出現,該方法在物體中選擇大量像素點,通過像素點發射光線投影至虛擬三維空間,并通過從與幾何體的交點遞歸投射新光線來模擬反射和折射[2]。最近,隨著神經網絡算法的快速發展,通過神經網絡訓練模型,使用訓練好的模型對圖像進行三維渲染[3]。通過深度學習訓練的模型,提高了合成模型的準確性。NeRF是一種用于3D 重建和視圖合成的深度學習方法,其基本思想是使用深度神經網絡來表示場景的體積密度和顏色,然后通過這個表示來合成新的視角圖像。
1 基于NeRF 算法的三維重建
NeRF 算法的本質其實就是對圖形進行三維渲染,通過將神經隱式場表示,可以對模型產生新的視角和光照效果等[4]。采用回歸方法,可以將模型邊緣圖像化,并且通過一個距離函數對三維模型進行表示,將復雜的問題變為一個二分類問題[5]。這種方法能夠連續表示三維模型的邊緣,即使對于形狀復雜的模型也能有效建模。利用圖像邊緣像素進行曲線擬合,可生成物體的輪廓模型。原始模型如圖1所示。
通過將原始模型文件導入圖形中,將實際模型作為訓練模型的監督。通過實際與原本模型文件的誤差直接對神經網絡模型進行訓練。NeRF通過多層感知機方法表達出了一個五維向量模型[6],可以描述模型的密度函數表示是否透光、顏色以及描述點的坐標值,最終通過輸入空間某一點的位置向量,得到以位置密度以及該位置顏色的RGB數值。通過梯度下降算法,對預測圖像與真實圖像進行擬合[7]。
2 發展現狀
鑒于NeRF算法結構簡單且合成效果優良,眾多研究者致力于對其進行優化與提升。通過對NeRF方法中的位置特征進行重新編碼,可以顯著提升原有精度。Schwarz K等人[8]通過引入基于圖形特征的合成器,成功合成了高分辨率圖像,僅需少數幾張圖片即可實現,從而增強了渲染內容的分辨率。
在生成實體模型并進行網格化處理時,模型所生成的環境模型也是一個干擾因素。Niemeyer M等人[9]通過NeRF算法,將物體與背景分別分為兩個部分,這樣可以隨意將背景與物體隨意組合,生成一個全新的訓練集進行訓練。這種方法能夠改變場景中物體的相對位置,生成全新的圖像,并允許對模型的形狀和外觀進行調整,從而豐富了訓練集數據,提升了訓練精度。
Barron J T等人[10] 針對NeRF算法在不同分辨率下觀察場景內容時,單個光線采樣可能導致的渲染模糊或鋸齒問題進行了研究。傳統解決方法通過增加每個像素的光線數量進行超采樣,但渲染每條光線需多次查詢多層感知器,對NeRF而言效率較低。Mip-NeRF引入了一種類似于多級漸進紋理映射(mipmap) 的方法擴展NeRF,有效處理了抗鋸齒問題。該方法通過在不同尺度上表示場景,使NeRF能夠更高效地處理不同分辨率下的場景內容,提高了渲染質量,減少了模糊和鋸齒現象。兩種的算法區別如圖2所示。
苗源等人[11] 通過神經網絡模型提高了光場數據的角度分辨率,進而改善了三維重建的質量,使其分辨力得到顯著提升。研究中采用雙平面參數化光場數據來訓練NeRF模型。NeRF模型能夠隱式地表達光場場景,并為高分辨率的四維光場擬合出準確的隱式函數。通過位置編碼,輸入變量被映射到其傅里葉特征,使模型能夠有效處理場景中的高頻紋理信息。該方法的主要優勢在于能夠通過NeRF隱式地表示光場場景,避免了圖像采集過程中可能引入的誤差和噪聲。此外,該方法還提高了后續三維重建的準確性和質量。
范騰等人[12]發現,在多尺度視圖合成任務中存在模糊和鋸齒問題,這主要是由于NeRF在每個像素上僅對一束光線進行采樣,導致在渲染不同尺度的場景時出現信號混疊和視覺質量問題。為此,他們提出了一種多尺度神經輻射場(MS-NeRF) 框架,利用多級小波卷積神經網絡提取不同尺度目標視圖的特征,并將這些視圖特征作為先驗信息對網絡合成目標場景視圖進行監督。同時,擴大視點相機發出的光線在目標視圖像素點上的采樣面積,以避免渲染結果產生模糊和鋸齒。在訓練過程中,加入不同尺度的視圖特征和視點特征,提升了網絡合成不同尺度視圖的泛化能力,并利用漸進式結構的深度神經網絡擬合視圖特征和視點特征到目標視圖的映射關系。
3 發展趨勢
3.1 基于NeRF 的多模態融合
多模態融合是指將來自不同傳感器或不同類型數據源的信息結合起來,以獲得比單一模態更加豐富和準確的結果。在計算機視覺、機器學習和人工智能領域,多模態融合被廣泛應用于圖像識別、語音識別、自然語言處理等方面。
在NeRF的背景下,多模態融合利用不同光譜敏感性的傳感器信息,獲得統一的跨光譜場景表示。這種方法允許對任何單一觀測點進行查詢,獲取跨光譜的圖像信息。在利用不同光譜敏感性的傳感器信息時,需要處理不同傳感器間分辨率、視場(FoV) 等差異,并隨時獲取任意相機圖像用于訓練NeRF的確切相機姿態[13]。
3.2 基于NeRF 的動態場景的三維重建
由 NeRF 的原理可知,它是通過多張圖像上擁有相同的特征元素來對模型進行重建。當場景是動態場景時,很難對幾何物體進行合成。所以,對動態場景的表達也是一個重要的研究方向。在視頻拍攝過程中,隨著相機移動,場景中的物體也在移動,目標是通過視頻合成得到任意時刻、任意視點的圖像。最直接的方法是將視頻劃分為小的時間段進行處理[14]。然而,由于短時間內場景觀察角度有限,理論上每小段視頻都能生成重建模型,導致模型數量龐大。為此,一種解決方案是對視頻每一幀進行深度估計,以此對NeRF進行約束。但這種方法依賴于顯式的深度圖,需先訓練動態場景深度估計網絡,且結果受深度圖估計準確性的影響。
針對動態場景,Fridovich-Keil S等人[15]提出了KPlanes算法,該算法是一個在任意維度上對輻射場進行顯式表示的模型。其算法利用d-choose-2平面來表示一個d-維場景,使模型能夠從靜態場景(d=3) 無縫過渡到動態場景(d=4) ,并且能夠在空間、時間和外觀上精確捕捉和表現場景的變化。K-Planes模型的特點是其平面分解方法,這種方法不僅簡化了時間平滑性和多分辨率空間結構,而且還實現了場景中靜態和動態成分的自然分解。所以K-Planes模型能夠更有效地處理隨時間變化的復雜場景外觀。K-Planes 模型還通過線性特征解碼器和學習到的顏色基礎來產生類似的視覺效果,進一步增強了在處理空間、時間和外觀變化方面的能力。K-Planes模型為輻射場的表示提供了一種新的方法,特別是在處理動態場景和復雜外觀變化方面展現了極大的潛力和優勢。
3.3 基于交互式和實時渲染的三維重建
基于NeRF的交互式與實時渲染是當前計算機圖形學與計算機視覺領域的研究熱點。為實現實時渲染,須優化NeRF算法以減少渲染時間和計算資源消耗。這包括改進神經網絡結構、采用高效采樣策略以及利用多尺度表示和層次細節技術來加速渲染過程。動態場景的處理是NeRF面臨的挑戰之一,特別是在如何實時更新和渲染動態變化的三維場景以適應實時交互需求方面。隨著云計算技術的發展,將NeRF 渲染部署于云端并通過流式傳輸至用戶設備,可減輕用戶硬件負擔,同時提供高質量的渲染體驗。基于NeRF的交互式與實時渲染技術正朝著更快、更真實、更易于交互的方向發展。
3.4 基于NeRF 大規模場景重建發展趨勢
基于NeRF(Neural Radiance Fields) 的大規模場景重建是近年來三維視覺領域的研究熱點。為處理大規模場景,研究者們提出了多尺度和多分辨率的處理方法。例如,在預訓練階段使用特征網格對目標場景進行建模,捕捉場景的幾何形狀和外觀,然后在聯合學習階段利用NeRF分支網絡進行更精細的抽樣和渲染。這種方法有效處理了大規模城市場景,同時保持了高保真度的渲染效果。隨著硬件性能的提升和算法的優化,基于NeRF的大規模場景重建將更加注重交互式與實時渲染的能力。這將使用戶能夠在虛擬現實、增強現實等應用中實時與三維場景交互,提供更加沉浸式的體驗。
4 結束語
隨著NeRF技術的不斷進步,將其與三維重建相結合,極大地加速了模型文件逆向工程的速度。借助神經網絡強大的能力,通過對大量照片數據的深入分析和學習,隨著輸入照片數量的增加,模型的學習效果顯著提升。并且,隨著新算法與硬件的不斷涌現,基于NeRF的三維重建技術將持續優化,為未來的三維重建領域帶來更多創新與突破。