大家好~這一個月以來,我從0開始學習和實現「深度學習」的技術。
現在與大家分享下我的學習經歷,以及我瞭解到的深度學習在渲染中的應用方向,希望對大家有所幫助!謝謝!
其實我以前在實現與路徑追蹤相關的降噪演演算法時,就瞭解到可以基於深度學習來實現降噪,並且發現這方面的論文近年來越來越多。所以我初步判定深度學習是降噪領域中的發展方向。
但因為深度學習跟圖學是完全不同的學科,跨學科學習的成本太高,需要從0開始,所以我那時候沒有采用深度學習的方法,而是採用更偏向於圖學的方法來實現降噪(比如SVGF/BMFR演演算法)。
那為什麼我現在下決心從0開始學習深度學習了呢?這要感謝今年參加我開的「離線渲染(二期)」培訓課的同學的反饋意見~他們表示希望多學習下實時渲染的技術,或者是能夠將課程的離線渲染技術(如路徑追蹤)應用到實時渲染中。
經過我的研究,我發現了有兩個可行的方案:
1、基於DDGI以及衍生的技術方案(如SDFDDGI)
2、路徑追蹤+降噪+SDF
第一個方案屬於工業上的成熟方案,但是也有很多限制(如只支援漫反射表面),工程上也不易維護(因為是混合了光柵化和光追渲染,比較複雜);
第二個方案而是隻用光追渲染,工程上容易維護;並且也支援高光反射、透明物體等材質。
所以我決定採用第二個方案。這個方案的技術難點就是降噪(路徑追蹤我已經實現了),所以我決定優先實現它。
前面已經提到了我知道深度學習在降噪中很有前景,所以我下定決心從0學習深度學習!
使用深度學習來降噪的相關論文資料:
AI影象降噪
ISO隨便開!神經網路學習降噪演演算法解析
【每週CV論文】深度學習影象降噪應該從閱讀哪些文章開始
可復現的影象降噪演演算法總結
本來我學習深度學習是一心為了用在降噪中,但是我在QQ群裡與同學分享我在深度學習方面的實現進展後,有個同學提到了NeRF,說這個最近很火。
我初步研究了下,發現它使用了神經網路,用於從2D影象中重建3D渲染的。我認為我還是需要3D->2D,而不是2D->3D。也就是說,我是要渲染3D模型為2D影象的。所以我認為我目前暫時不需要用到NeRF。
但是,後來我在微信朋友圈中,看到有人分享了「谷歌地圖」的釋出會,它基於NeRF實現了3D地圖。
然後我又在QQ群裡看到有同學再一次分享了「谷歌地圖」的這個釋出會,於是我就再次調研了下相關的技術。
相關的視訊:
用AI建模?谷歌3D地圖的背後技術
通過調查後,我還是很看好這個技術!NeRF屬於「神經渲染」領域,有希望取代目前傳統的基於幾何模型的渲染!因為它只需要幾張圖片,就可以渲染出3D畫面了,而不再需要幾何模型!
使用NeRF得到的3D渲染還可以進行風格變換,以及各種光照變換!
NeRF相關資料:
NeRF:用深度學習完成3D渲染任務的躥紅
神經渲染最新進展與演演算法(二):NeRF及其演化
NeRF目前主要用在靜態場景中,我還不清楚如何將其用在動態場景中。
不過對於NeRF的其它的缺點,已經有相關的論文對其改進:
提高訓練速度
NeRF訓練時間太長,相關的改進資料如下:
神經渲染最新進展與演演算法(二):NeRF及其演化 -> NeRF的加速
FastNeRF: High-Fidelity NeuralRendering at 200FPS
Baking Neural Radiance Fields for real-Time View Synthesis
AutoInt: Automatic Integration for Fast Neural Volume Rendering
不可思議!英偉達新技術訓練NeRF模型最快只需5秒
還有人提出了不用神經網路的方法,資料如下:
本科生新演演算法打敗NeRF,不用神經網路照片也能動起來,提速100倍
只要一張圖片
NeRF需要多個角度下的圖片。
有論文提出了只要一張圖片的方法:
一張照片就能生成3D模型,GAN和自動編碼器碰撞出奇蹟
將體素渲染轉換為真實渲染
把「我的世界」的體素風格轉換為真實渲染:
GANcraft :將玩家變成 3D 藝術家
支援透明物體
有論文提出了支援透明物體的方法:
Dex-NeRF: Using a Neural Radiance Field to Grasp Transparent Objects
支援超大場景
這個就是谷歌地圖實現的技術了,他們還發表了論文:
Block-NeRF: Scalable Large Scene Neural View Synthesis
編輯場景內容
NeRF方法僅能從已有的固定的場景生成渲染影象,無法直接按照主觀意圖編輯場景內容
改進的論文如下:
GRAF: Generative Radiance Fields for3D-Aware Image
GIRAFFE: RepresentingScenes as Compositional Generative Neural Feature Fields
黑暗中的高光渲染
NeRF in the Dark: High Dynamic Range View Synthesis from Noisy Raw Images
用於降噪
NeRF甚至可以用在降噪中,不過我沒有具體研究。
相關論文如下:
NAN: Noise-Aware NeRFs for Burst-Denoising
因為我是Web3D領域的開發者,我知道深度學習的Web後端可以為:CPU、WebGL、WebGPU(我不考慮WebAssembly)
我也瞭解到nvidia顯示卡有專門的神經網路硬體,但我不清楚如何使用它!
通過群裡同學的提醒,我通過研究瞭解到現在的硬體除了CPU、GPU,還有NPU,而這個NPU是專門為深度學習設計的硬體
NPU相關介紹:NPU的發展概況
那麼在Web上能使用NPU硬體嗎?答案是有的!目前Web上已經制定了Web Neural Network API標準(簡稱WebNN),通過該API即可呼叫NPU硬體!
目前Chrome瀏覽器正在實現中,貌似還沒有釋出計劃,所以暫時不能使用!
看到有人進行了測評,它的效能比WebGPU快數倍!
參考資料為:
WebNN API - 將硬體加速的深度學習帶入開放式 Web 平臺