NeurlPS 2023 | 擴散模型對光流和單目深度估計的驚人有效性!
作者:泡椒味的口香糖 ?| 來源:3D視覺工坊
在公眾號「3D視覺工坊」后臺,回復「原論文」可獲取論文pdf和代碼鏈接。
添加微信:dddvisiona,備注:三維重建,拉你入群。文末附行業(yè)細分群。
0. 筆者個人體會
擴散模型這兩年在圖像/視頻的生成、編輯、恢復,還有文本驅(qū)動上應(yīng)用越來越多,以Stable Diffusion為代表的AI繪畫更是火出天際。
那么擴散模型能不能擴展到其他領(lǐng)域呢?最近,NeurlPS 2023的一篇文章就探索了擴散模型在光流估計和單目深度估計方向的應(yīng)用,而且效果非常好。整篇文章其實沒有提出什么新架構(gòu)或新方法,但是得出了一個很重要的結(jié)論:"即便不使用光流和深度估計的專用架構(gòu)和損失函數(shù),只使用一個簡單的擴散模型也可以取得很好的效果"。個人感覺這篇文章的最大意義在于促進多模態(tài)融合,比如擴散模型是不是也可以用在其他任務(wù)上?不同領(lǐng)域的模型和損失函數(shù)是不是可以交換?這種思考是很有意思的。這里也推薦「3D視覺工坊」新課程基于深度學習的三維重建MVSNet系列 [論文+源碼+應(yīng)用+科研]
1. 效果展示
先來看看模型的具體效果,也就是文章所提的擴散模型對光流和深度估計的價值。
這篇文章提出的模型DDVM,對于高反射表面、半透明、動態(tài)物體這些挑戰(zhàn)性場景的光流和深度估計格外好使。
這篇文章還提出了一個由粗到精的優(yōu)化策略(主要是為了加速),優(yōu)化后的結(jié)果在細節(jié)和模糊區(qū)域效果更好。
效果很好,不幸的是文章并沒有開源,但是這種思想很有借鑒意義。
2. 摘要
去噪擴散概率模型以其令人印象深刻的保真度和多樣性改變了圖像生成。我們表明,它們在估計光流和單目深度方面也很出色,令人驚訝的是,沒有針對這些任務(wù)的特定任務(wù)架構(gòu)和損失函數(shù)。與傳統(tǒng)的基于回歸的方法的點估計相比,擴散模型還能夠進行蒙特卡羅推斷,例如,光流和深度的不確定性和模糊性。通過自監(jiān)督的預訓練、用于監(jiān)督訓練的合成和真實數(shù)據(jù)的組合使用、用于處理有噪聲的不完整訓練數(shù)據(jù)的技術(shù)創(chuàng)新(填充和逐步展開去噪擴散訓練)以及簡單形式的由粗到細的細化,可以訓練用于深度和光流估計的最新擴散模型。大量的實驗集中在相對于基準的定量性能、消融、模型捕捉不確定性和多模態(tài)的能力,以及估算缺失值。我們的模型DDVM(去噪擴散視覺模型)在室內(nèi)NYU基準上獲得了0.074的最先進的相對深度誤差,在KITTI光流基準上獲得了3.26%的Fl-all異常率,比最好的公開方法好大約25%。這里也推薦「3D視覺工坊」新課程基于深度學習的三維重建MVSNet系列 [論文+源碼+應(yīng)用+科研]。
3. 算法解析
還是先解釋一下什么是擴散模型。
擴散模型也是一種生成模型,包括兩個過程:前向過程(擴散過程)和反向過程。擴散過程是不停對圖像添加高斯噪聲,直至圖像完全變成隨機噪音。相對的,反向過程就是去噪,如果知道反向過程的每一步的真實分布,逐漸去噪就能生成一個真實的樣本,所以反向過程也就是生成數(shù)據(jù)的過程。擴散模型就相當于把VAE的向量編碼過程改變?yōu)樘砑釉肼?,把VAE的解碼變?yōu)槿ピ?。因此,擴散模型既不會涉及GAN中復雜的對抗訓練,又比VAE更強大一點。
傳統(tǒng)的光流估計和單目深度估計網(wǎng)絡(luò)有什么問題?
模型本身是沒有問題的,但是整個網(wǎng)絡(luò)和損失函數(shù)的設(shè)計過程,需要涉及到這兩個方向的大量特定架構(gòu)。比如現(xiàn)在自監(jiān)督單目深度估計的框架基本就固定,就是pose網(wǎng)絡(luò)+depth網(wǎng)絡(luò)的組合。
有沒有一種簡單且通用的模型來替代呢?
這也是這篇文章的核心思想,不針對光流和單目深度估計設(shè)計任何特定架構(gòu),而是使用一個簡單且通用的模型直接完成兩個任務(wù)!
具體是怎么實現(xiàn)的呢?
整個擴散模型(DDVM)的輸入是目標圖像的噪聲版本(深度+光流)以及調(diào)節(jié)信號(一個RGB圖像用于深度,兩個RGB圖像用于光流)。在給定RGB圖像、噪聲標簽和時間步長的情況下,訓練MLP來模擬噪聲的條件分布。而且,可以在訓練期間選擇性地展開去噪步驟(停止梯度),以彌補yt的訓練和推理之間的分布差距。
既然沒有使用兩個任務(wù)的專用框架,那么訓練數(shù)據(jù)的選擇就變得至關(guān)重要。對于光流和深度估計這種稠密估計任務(wù)來說,帶真值的數(shù)據(jù)很少,因此作者使用了大量的合成數(shù)據(jù)集。
對于光流任務(wù)來說,作者本來只使用了AutoFlow這個一個合成數(shù)據(jù)集。但因為擴散模型自身的表征能力很大程度上分給的光流的形狀估計,而不是求解對應(yīng)關(guān)系。因此,僅在AutoFlow上訓練模型遠遠不夠。因此,作者還使用了FlyingThings3D(FT)、Kubric(KU)、TartanAir(TA)這三個數(shù)據(jù)集。
對于深度估計任務(wù)來說,分成室內(nèi)和室外兩個模型分別訓練。室內(nèi)模型在ScanNet和SceneNet RGB-D混合數(shù)據(jù)集上訓練,室外模型在Waymo開放數(shù)據(jù)集上訓練。
最后,由于直接訓練高分辨率模型很慢,并且需要占用大量顯存。因此DDVM還提出了一個Coarse-to-fine的優(yōu)化策略,也就是先粗略估計光流場,然后分patch進行細化。
整個方法的pipeline其實沒有太多可以談的點,更多的是這種跨模態(tài)融合的思想!
4. 實驗結(jié)果
去噪模型的backbone直接使用了預訓練的Efficient UNet網(wǎng)絡(luò)。注意,由于擴散模型的輸入輸出是[-1,1],因此還需要對深度和光流進行歸一化。對深度估計實驗來說,是現(xiàn)在Waymo預訓練,然后在NYU v2上進行驗證。對于光流估計實驗來說,是在KITTI和Sintel上進行zero-shot泛化。評估指標就還是光流和深度估計的通用指標。
實驗結(jié)果,先看深度估計,在NYU v2上實現(xiàn)了0.074的SOTA絕對相對誤差,這個效果非常好。
光流估計也是,取得了SOTA效果。為了公平比較,還在AF+FT+KU+TA這個混合數(shù)據(jù)集上重新訓練了RAFT模型。
DDVM還在AutoFlow、FlyingThings、HD1K、KITTI、Sintel、VIPER這幾個數(shù)據(jù)集上進行了微調(diào)。在Sintel和KITTI上與SOTA光流方法對比,DDVM明顯優(yōu)于所有現(xiàn)有的光流方法(甚至包括使用雙目輸入的場景流方法)。DDVM實現(xiàn)了一個3.26%的Fl-all。
由粗到精訓練策略的效果對比,極大地改善了估計的光流場的細粒度。
最后這個實驗很有意思,驗證所提模型的深度估計和深度補全(不是空洞補全)的效果。首先使用一個文本-圖像模型生成臥室圖像,使用DDVM估計深度并采樣,將點投影到3D點云中。然后移動相機,從這個點云中迭代地渲染圖像和深度圖(有洞),并填補圖像空洞(還是使用一個現(xiàn)有的圖像修復模型),最后使用DDVM來計算缺失的深度并進行投影。感覺這個實驗很好驗證了兩次深度估計的一致性,因為很多模型兩次投影的結(jié)果要么尺度不一致,要么非常不連續(xù)。這里也推薦「3D視覺工坊」新課程基于深度學習的三維重建MVSNet系列 [論文+源碼+應(yīng)用+科研]。
5. 總結(jié)
今天分享的這篇文章介紹了擴散模型在光流估計和單目深度估計的應(yīng)用,很有意思的是這篇文章直接使用了最簡單的擴散模型,沒有針對兩個任務(wù)設(shè)計特定的架構(gòu)或損失函數(shù),最后效果也非常好。個人認為這篇文章最大的意義在于,提出了擴散模型可能是稠密視覺任務(wù)的一個簡單且通用的框架。將擴散模型進一步擴展到其他任務(wù),應(yīng)該也是一個可以嘗試的方向。