這真是太不可思議了!
現在只需打幾個字就能輕鬆地創造出精美而高品質的3D模型了?
這不,國外一篇部落格引爆網絡,把一個叫MVDream的東西擺到了我們面前。
用戶只要寥寥數語,就可以創造出一個栩栩如生的3D模型。
而且和之前不同的是,MVDream看起來是真的「懂」物理。
下面就來看看這個MVDream有多神奇吧~
小哥表示,大模型時代,我們已經看到太多太多文字生成模型、圖片產生模型了。而且這些模型的性能也越來越強大。
我們後來也親眼目睹了文生視訊模型的誕生,當然還有今天要提到的3D模型
想像一下,只需輸入一句話,就能生成一個彷彿真實世界中存在的物體模型,甚至還包含所有必要的細節,這樣的場景有多酷啊
而且這絕對不是一件簡單的事,尤其是使用者需要產生的模型所呈現的細節要夠逼真。
先來看看效果~
在同在一個提示下,最右邊展示的是MVDream的成品
肉眼可見5個模型的差距。前幾個模型完全違背了客觀事實,只有從某幾個角度看才是對的。
例如前四張圖片,生成的模型居然有不只兩隻耳朵。而第四張圖片雖然看起來細節更豐滿一點,但是轉到某個角度我們能發現,人物的臉是凹進去的,上面還插著一隻耳朵。
誰懂啊,小編一下就想起了之前很火的小豬佩琪正面視圖。
這是一種情況,從某些角度來看是向你展示的,但絕對不能從其他角度去看,會有生命危險
可最右邊MVDream的生成模型顯然不一樣。無論3D模型怎麼轉動,你都不會覺得有任何反常規的地方。
這也就是之前提到的,MVDream對物理常識瞭如指掌,不會為了確保每個視圖都有兩隻耳朵而製造一些奇怪的東西
小哥指出,判斷3D模型是否成功的關鍵在於觀察其不同視角是否逼真且品質是否高
而且還要保證模型在空間上的連貫性,而不是像上面多個耳朵的模型。
產生3D模型的主要方法之一,就是將攝影機的視角模擬,然後產生某一視角下所能看到的東西。
換個詞,這就是所謂的2D提升(2D lifting)。就是將不同的視角拼接在一起,形成最終的3D模型。
出現上面多耳的情況,就是因為生成模型對整個物體在三維空間的樣態資訊掌握的不充分。而MVDream恰恰就是在這方面往前邁了一大步。
這個新模型解決了先前一直存在的3D視角下的一致性問題
這種方法稱為分數蒸餾採樣(score distillation sampling),是由DreamFusion開發的
在開始學習分數蒸餾採樣技術之前,我們需要先了解一下該方法所採用的架構
換句話說,這其實只是另一個二維影像擴散模型,類似的還有DALLE、MidJourney和Stable Diffusion模型
更具體地說,一切的一切都是從預先訓練好的DreamBooth模型開始的,DreamBooth是一個基於Stable Diffusion生圖的開源模型。
改變來了,這意味著事情發生了轉變
##研究團隊後續所做的是,直接渲染一組多視角影像,而不是只渲染一張影像,這一步需要有各種物件的三維資料集才可以完成。
在這裡,研究人員從資料集中獲取了三維物件的多個視圖,利用它們來訓練模型,再使其向後產生這些視圖。
具體做法是將下圖中的藍色自註意區塊改為三維自註意區塊,也就是說,研究人員只需要增加一個維度來重建多個影像,而不是一個圖像。
在下圖中,我們可以看到每個視圖的模型中都輸入了攝影機和時間步(timestep),以幫助模型了解哪個影像將用在哪裡,以及需要生成的是哪個視圖
現在,所有圖像都連接在一起,生成也同樣在一起完成。因此它們就可以共享訊息,更好地理解全局的情況。
首先,將文字輸入模型,然後透過訓練模型從資料集中準確地重建物件
##而這裡也就是研究團隊應用多視圖分數蒸餾採樣過程的地方。現在,有了一個多視圖的擴散模型,團隊可以產生一個物件的多個視圖了。
接下來,我們需要使用這些視圖來重建一個與真實世界一致的三維模型,而不僅僅是視圖
這裡需要使用NeRF(neural radiance fields,神經輻射場)來實現,就像前面提到的DreamFusion一樣。
在這一步驟中,我們的目標是凍結之前訓練好的多視角擴散模型。換句話說,我們在這一步驟中只是使用上面各個視角的圖片,而不再進行訓練
#在初始渲染的指導下,研究人員開始使用多視角擴散模型生成一些帶有噪聲的初始圖像版本
為了讓模型了解到需要生成不同版本的圖像,研究人員添加了噪聲,但同時仍然能夠接收到背景資訊
#接下來,可以利用這個模型進一步生成更高品質的圖像
添加用於生成該圖像的圖像,並移除我們手動添加的噪聲,以便在下一步中使用該結果來指導和改進NeRF模型。
為了在下一步中產生更好的結果,這些步驟的目的是更好地理解NeRF模型應該集中在圖像的哪個部分
不斷重複這個過程,直到產生一個令人滿意的3D模型
首先,他們比較了用於建立跨視角一致性模型的注意力模組的選擇。
這些選項包括:
(1)在視訊擴散模型中廣泛使用的一維時間自註意;
#(2)在現有模型中增加全新的三維自註意模組;
(3)重新使用現有的二維自註意模組進行三維注意。
為了準確展示這些模組之間的差異,在這項實驗中,研究人員採用了8幀的90度視角變化來訓練模型,以更貼近視訊的設定 #在實驗中,研究團隊同時保持了較高的影像分辨率,即512×512作為原始的標清模型。如下圖所示,研究人員發現,即使在靜態場景中進行瞭如此有限的視角變化,時間自註意力仍然會受到內容偏移的影響,無法保持視角的一致性 ##團隊假設,這是因為時間注意力只能在不同幀的相同像素之間交換訊息,而在視點變化時,對應像素之間可能相距甚遠。 另一方面,在不學習一致性的情況下,增加新的三維注意會導致嚴重的品質下降。 研究人員認為,這是因為從頭開始學習新的參數會消耗更多的訓練資料和時間,而對於這種三維模型有限的情況並不適用。他們提出了重新使用二維自註意機制的策略,以實現最佳的一致性而不降低生成質量 團隊也注意到,如果將圖像大小減小到256 ,視圖數減小到4,這些模組之間的差異會小得多。然而,為了達到最佳一致性,研究人員在以下實驗中根據初步觀察做出了選擇。 此外,研究人員在threestudio(thr)庫中實現了多視角的分數蒸餾採樣,並引入了多視角擴散的引導。該庫在一個統一的框架下實現了最先進的文本到三維模型的生成方法 研究人員使用threestudio中的隱式容積(implicit-volume)作為三維表示的實作方式,其中包括多解析度的雜湊網格(hash-grid) 在研究攝影機視圖時,研究人員採用了與渲染三維資料集時完全相同的方式對攝影機進行了倆採樣 在此之外,研究人員還對3D模型進行了10000步的優化,使用了AdamW優化器,並將學習率設置為0.01 在分數蒸餾取樣中,最初的8000步驟中,最大和最小時間步長分別從0.98步降至0.5步和0.02步 #渲染的起始解析度是64×64,經過5000步逐漸增加至256×256 以下是更多的案例: 研究團隊利用二維文字到圖像模型,進行多重視角合成,並透過迭代的過程,創建了文本到3D模型的方法 這種新方法目前還存在一些局限性,最主要的問題是生成的圖像分辨率只有256x256像素,可以說非常低了 此外,研究人員也指出,執行這項任務的資料集的大小在某種程度上一定會限制這種方法的通用性,因為資料集的太小的話,就沒辦法更逼真的反應我們這個複雜的世界。
以上是文生3D模型大突破! MVDream重磅來襲,一句話生成超逼真三維模型的詳細內容。更多資訊請關注PHP中文網其他相關文章!