0. 筆者個(gè)人體會(huì)
提問:給你一張2D圖像,要求獲得完整的三維模型,你會(huì)怎么做?
我第一反應(yīng)是拿SolidWorks自己畫一個(gè)~
最近就看到了這樣的一項(xiàng)開源工作Wonder3D,可以直接從2D圖像生成3D模型,感覺很神奇。讀了讀文章,發(fā)現(xiàn)這項(xiàng)工作是基于擴(kuò)散模型實(shí)現(xiàn)的,這里也不得不感嘆擴(kuò)散模型確實(shí)在AI繪畫和圖像生成領(lǐng)域有無限前景。今天筆者也將帶領(lǐng)讀者閱讀一下這項(xiàng)工作,當(dāng)然筆者水平有限,如果有理解不當(dāng)?shù)牡胤綒g迎大家一起探討,共同學(xué)習(xí)。
1. 效果展示
Wonder3D僅需2~3分鐘即可從單視圖圖像重建高細(xì)節(jié)紋理網(wǎng)格。Wonder3D首先通過跨域擴(kuò)散模型生成一致的多視法線圖與相應(yīng)的彩色圖像,然后利用一種法線融合方法來實(shí)現(xiàn)快速和高質(zhì)量的重建。這里也推薦「3D視覺工坊」新課程《徹底搞透視覺三維重建:原理剖析、代碼講解、及優(yōu)化改進(jìn)》。
對(duì)不同風(fēng)格的圖像也都適用。
甚至對(duì)各種小動(dòng)物也適用:
代碼已經(jīng)開源了,而且他們的官方主頁(yè)還放上了Live Demo的鏈接,感興趣的讀者可以上傳自己的圖像來嘗試,下面展示一下筆者自己的測(cè)試結(jié)果。
原始圖像:
生成的多視角圖像:
2. 摘要
在這篇文章中,我們介紹了Wonder3D,一種從單視圖圖像中高效生成高保真紋理網(wǎng)格的新方法?;诜?jǐn)?shù)蒸餾采樣(SDS)的最近方法已經(jīng)顯示出從2D擴(kuò)散先驗(yàn)恢復(fù)3D幾何形狀的潛力,但是它們通常遭受每個(gè)形狀優(yōu)化的耗時(shí)和不一致的幾何形狀。相比之下,某些作品通過快速網(wǎng)絡(luò)推理直接產(chǎn)生3D信息,但其結(jié)果通常質(zhì)量較低且缺乏幾何細(xì)節(jié)。為了從整體上提高圖像到3D任務(wù)的質(zhì)量、一致性和效率,我們提出了一種跨域擴(kuò)散模型來生成多視圖法線貼圖和相應(yīng)的彩色圖像。為了確保一致性,我們采用了一種多視圖跨域關(guān)注機(jī)制,該機(jī)制有助于跨視圖和模態(tài)的信息交換。最后,我們介紹了一種幾何感知法向融合算法,從多視圖2D表示中提取高質(zhì)量的表面。我們的大量評(píng)估表明,與先前的工作相比,我們的方法實(shí)現(xiàn)了高質(zhì)量的重建結(jié)果、魯棒的泛化以及相當(dāng)好的效率。
3. 算法解析
先讓我們重新審視一下這個(gè)問題:
給定單張圖像,繪制其三維模型。
傳統(tǒng)方法會(huì)怎么做呢?
使用SLAM或SfM?單張圖像做初始化都不夠。
使用MVS方法?沒有多視角圖像就沒有視差圖。
用NeRF?最吃數(shù)據(jù)了,視角大一點(diǎn)都不行。
直接訓(xùn)模型學(xué)習(xí)?思路上可以,實(shí)操起來效果非常差。
這個(gè)任務(wù)本身就非常反人類,因?yàn)橹挥幸粋€(gè)視角,沒有先驗(yàn)信息誰也不知道完整的三維模型長(zhǎng)什么樣。
那怎么做呢?
這篇文章的思路很巧妙,沒有像NeRF那樣直接從2D圖像生成3D模型,而是先用擴(kuò)散模型生成多個(gè)視角的2D圖像和法線圖,再融合生成3D模型。
這么做有啥好處呢?
最大的好處就是可以直接利用Stable Diffusion這種經(jīng)過數(shù)十億張圖像訓(xùn)練過的2D擴(kuò)散模型,實(shí)際上相當(dāng)于引入了非常強(qiáng)的先驗(yàn)信息。而且法線圖可以表征物體的起伏和表面幾何信息,進(jìn)而計(jì)算3D模型的高保真幾何元素。
這樣,整個(gè)任務(wù)就變?yōu)榱私⒁粋€(gè)馬爾科夫鏈,然后從中采樣顏色和法線信息的過程。
其中p代表高斯噪聲,n代表法線圖,x代表RGB圖,K代表圖像數(shù)量。
不太對(duì),擴(kuò)散模型只能處理一個(gè)域,怎么出來RGB和法線兩個(gè)域了?
的確是這樣,最直觀的改動(dòng)思路就是給擴(kuò)散模型添加一個(gè)頭,重新訓(xùn)練模型,直接輸出RGB和法線信息,這也是前兩年多任務(wù)網(wǎng)絡(luò)的常用做法。但是實(shí)際操作過程中會(huì)發(fā)現(xiàn)收斂很慢,而且泛化性差。
另一個(gè)思路是直接訓(xùn)練兩個(gè)擴(kuò)散模型,但這樣不光增加了計(jì)算量,還會(huì)導(dǎo)致性能下降。
Wonder3D的做法是設(shè)計(jì)了一個(gè)域轉(zhuǎn)換器(Domain Switcher),實(shí)際上是一個(gè)標(biāo)注域信息的一維向量。域轉(zhuǎn)換器先做位置編碼,聚合時(shí)間embedding信息,再把它也輸送給擴(kuò)散模型,就可以讓擴(kuò)散模型同時(shí)處理兩個(gè)域的信息。
這一點(diǎn)可以先放一個(gè)定性對(duì)比圖來觀察:
還有問題,RGB和法線是獨(dú)立生成的,多視角的RGB圖也未必就幾何一致。
在這里,Wonder3D引入了一個(gè)注意力機(jī)制,分別處理多個(gè)時(shí)間RGB幾何不一致的問題,以及RGB和法線圖的關(guān)聯(lián)問題。
到這里,Wonder3D具體的Pipeline就出來了:
輸入一幅圖像,Wonder3D取原始圖像、CLIP產(chǎn)生的文本embedding、多視角相機(jī)參數(shù),以及一個(gè)域轉(zhuǎn)換器作為條件,生成一致的多視點(diǎn)法線圖和彩色圖。隨后,Wonder3D借助法線融合算法,將2D表征重建為高質(zhì)量的3D幾何圖形,產(chǎn)生高保真的紋理網(wǎng)格。
最后再看看這個(gè)幾何融合是怎么做的:
Wonder3D是優(yōu)化神經(jīng)隱式SDF場(chǎng),來從匹配的RGB和法線圖中提取完整的三維信息。
剛才不是說NeRF需要稠密的圖像序列嗎?
如果直接做NeRF-SDF重建的話,誤差非常大,并且會(huì)一直累計(jì)下去。Wonder3D的做法是引入了一系列損失函數(shù)來約束優(yōu)化:
4. 實(shí)驗(yàn)
訓(xùn)練數(shù)據(jù)集是LVIS子集,batch size是512,在8塊A800上訓(xùn)練了3天(果然普通人還是玩不起)。從2D圖像生成3D模型的方法還是用的Instant NGP(論NeRF在各個(gè)領(lǐng)域的入侵haaaaa)。評(píng)估使用Google Scanned Object數(shù)據(jù)集。評(píng)估指標(biāo)方面,3D重建用Chamfer Distances (CD)和Volume IoU,生成圖像質(zhì)量用PSNR、SSIM、LPIPS這幾個(gè)常見指標(biāo)。對(duì)比的方案也都是目前的SOTA,包括Zero123、RealFusion、Magic123、One-2-3-45、Point-E、Shap-E、SyncDreamer這些。
新視點(diǎn)合成對(duì)比,Zero 123缺乏多視圖一致性,SyncDreamer對(duì)輸入圖像的仰角比較敏感,但是Wonder3D生成具有語(yǔ)義一致性和幾何一致性的圖像。這里也推薦「3D視覺工坊」新課程《徹底搞透視覺三維重建:原理剖析、代碼講解、及優(yōu)化改進(jìn)》。
新視點(diǎn)合成的定量對(duì)比。
3D重建質(zhì)量的對(duì)比,Shape-E的重建結(jié)果不完整且扭曲。SyncDreamer的重建結(jié)生成圖像大致對(duì)齊,但紋理質(zhì)量不好。相比之下Wonder3D實(shí)現(xiàn)幾何和紋理上最高的重建質(zhì)量。
3D重建的定量對(duì)比。
最后3D生成模型中各項(xiàng)損失函數(shù)的消融實(shí)驗(yàn),驗(yàn)證損失函數(shù)的必要性:
還是一個(gè)消融實(shí)驗(yàn),驗(yàn)證多視圖幾何一致性和RGB-法線對(duì)其的注意力機(jī)制的作用:
5. 總結(jié)
本文為各位讀者介紹了Wonder3D,可以從單張圖像直接生成完整的三維模型,整個(gè)模型的設(shè)計(jì)思路很巧妙,而且也開源。渲染速度也達(dá)到了2~3分鐘,這項(xiàng)工作的應(yīng)用也很廣泛,建圖、VR、AR、動(dòng)畫、影視等等都可以用。感覺Wonder3D還是很神奇的,有點(diǎn)長(zhǎng)見識(shí)了。
-
3D
+關(guān)注
關(guān)注
9文章
2852瀏覽量
107276 -
圖像
+關(guān)注
關(guān)注
2文章
1079瀏覽量
40375 -
模型
+關(guān)注
關(guān)注
1文章
3116瀏覽量
48661
原文標(biāo)題:上線一周就2.1k star!單張圖像直接轉(zhuǎn)為3D模型!
文章出處:【微信號(hào):3D視覺工坊,微信公眾號(hào):3D視覺工坊】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論