3D 生成重建013-ProlificDreamer將SDS拓展到VSD算法進行高質量的3D生成
文章目錄
- 0論文工作
- 1論文方法
- 2效果
0論文工作
**分數蒸餾采樣(SDS)**通過提取預先訓練好的大規模文本到圖像擴散模型,在文本到3d生成方面顯示出了巨大的前景,但存在過飽和、過平滑的問題g和低多樣性問題。在這項工作中,作者提出將三維參數建模為一個隨機變量,而不是像SDS中那樣的一個常數,并提出了變分分數蒸餾(VSD),一個有原則的pa基于粒子的變分框架來解釋和解決上述文本到3d生成中的問題。作者表明,SDS是VSD的一種特殊情況,會導致采樣結果較差且CFG系數很大,這和過飽和關聯密切。相比之下,VSD對不同的CFG權重作為擴散模型的祖先采樣效果很好,同時使用共同的CFG權重提高了多樣性和樣本質量。
論文經典的套路,證明某個解法是我們算法的一個特例,我們提出的算法是更一般的更泛化的方案。不過這個論文的效果和對理論的擴展確實很獨到的視角和很深刻的理論拓展。幾乎是這兩年看到對sds解釋最全面的三篇文章了,Dreamfusion和SJC。更加詳細的解釋可以在作者論文中找到更詳細的公式介紹。這是一個提升優化方法生成質量的一個答案,當然還有很多不同的角度去理解并緩解其中存在的問題。當我們從不同視角去看一個問題,得到的結論不同,也會有不統計解決思路。
ProlificDreamer
參考知乎
1論文方法
我們首先從2d圖像生成理解這個問題,文本生成圖像的時候,要在多樣性和生成質量之間有一個權衡,這個開關用CFG系數來控制。CFG在2d的時候一般是10以內。這個系數越小我們對文本的依賴小生成結果會越多。越大的話就是生成結果越確定。通常要有一個權衡。
現在回到3d問題,那么每個視圖怎么和原來文本保持盡可能的一致,就需要一個很大的CFG系數。這也是dreamfusion 過飽和比較嚴重的一個原因。cfg確實能支持整體風格的一致,但是在差不多1000次的優化步驟中,還是無法保證每次的生成結果朝著完全一致的方法,這就導致最終結果是在很多個優化方向中找一個中間狀態,即缺乏細節,因為細節在平均過程中被相互抵消了。
接下來看一看ProlificDreamer作者的分析
? θ L SDS ( ? , x ) = g ( θ ) ? E t , ? [ w ( t ) ( ? ^ ? ( Z t ; y , t ) ? ? ) ? x ? θ ] \nabla_{\theta} \mathcal{L}_{\text{SDS}}(\phi, x) = g(\theta) \triangleq \mathbb{E}_{t,\epsilon} \left[ w(t) \left( \hat{\epsilon}_\phi(Z_t; y, t) - \epsilon \right) \frac{\partial x}{\partial \theta} \right] ?θ?LSDS?(?,x)=g(θ)?Et,??[w(t)(?^??(Zt?;y,t)??)?θ?x?]
對于一個用 θ \theta θ進行參數化的3D表示,給定文本 y ,通過對隨機采樣的視角下渲染的2D圖像,優化SDS loss,就能讓3D越來越逼真。
SDS 的更新方向有兩個來源。首先,預訓練的圖像擴散模型引導渲染出的二維圖像趨向真實。具體來說,擴散模型預測噪聲大小,經線性變換后得到分布的 score,即似然函數的梯度(這部分與 SJC 從得分函數角度解釋 DreamFusion 中 SDS 的方式一致)。此過程旨在最大化渲染圖像的likelihood。而這種持續增大似然函數的行為,也稱為“mode seeking”,本質上是在尋找似然函數的峰值。
SDS 的目標是在概率密度函數中尋找具有高似然度的模式。然而,在生成模型中,高似然度并不總是等同于高質量的生成結果。以高維高斯分布為例。高維高斯分布的典型樣本和似然度最高的樣本存在顯著差異。對于一個 d d d 維的高斯分布 N ( 0 , I d ) N(0, I_d) N(0,Id?),大部分概率密度集中在距離原點半徑為 d \sqrt{d} d? 的球面上,其樣本類似于“雪花噪聲”。然而,高維高斯分布的似然函數在原點 (全零向量) 處達到最大值,對應的樣本是一張純色圖像,這顯然不符合我們對高斯噪聲樣本的預期。高維高斯分布的典型樣本與似然最大的樣本很不一樣。我們希望采到灰色圓環上的typical sample。
如下圖所示,SDS的優化過程會讓樣本都偏離“典型樣本”。并且由于不同的起始點可能都會收斂到同一個mode,所以還會導致多樣性比較差。SDS的優化過程會讓樣本都偏離“典型樣本”,并且還會導致多樣性比較差。
為了解決上面提到的SDS的問題,VDS對SDS進行了一些小改動。我們同時優化多個樣本,我們把樣本們視為一個變分分布。如下圖所示,把SDS更新方向的第二項由零均值的高斯換成了變分分布的Score。
額外的變分分布的score可以讓樣本收斂到圖中灰色圓環上的典型樣本,同時增大樣本多樣性。
這個變分分布在優化過程中會不斷地變化,需要不斷地更新對于變分分布score的建模。在這里作者用了LoRA,可以快速的學習變分分布。同時因為LoRA有一些先驗知識,所以我們能夠用很少量的樣本就學到一個不錯的score。
這個是論文結構圖,用lora來學習變分分布。