博客專欄

EEPW首頁(yè) > 博客 > SC-DepthV3來(lái)了!深度解析無(wú)監(jiān)督單目深度估計(jì)V1到V3的主要變化(1)

SC-DepthV3來(lái)了!深度解析無(wú)監(jiān)督單目深度估計(jì)V1到V3的主要變化(1)

發(fā)布人:計(jì)算機(jī)視覺(jué)工坊 時(shí)間:2022-11-19 來(lái)源:工程師 發(fā)布文章
0. 筆者個(gè)人體會(huì)

因?yàn)轫?xiàng)目原因需要用到無(wú)監(jiān)督單目深度估計(jì)網(wǎng)絡(luò),目前SC-Depth系列是非常經(jīng)典的框架,因此寫(xiě)下這篇文章記錄自己的學(xué)習(xí)經(jīng)歷。深度估計(jì)其實(shí)是一個(gè)非常早的問(wèn)題,早期方法主要是Structure from Motion (SfM)和Multi View Stereo (MVS)這兩種。SfM算法輸入是一系列無(wú)序照片,兩兩照片通過(guò)特征點(diǎn)建立匹配關(guān)系,利用三角化方法獲得稀疏點(diǎn)云,之后使用BA進(jìn)行聯(lián)合優(yōu)化,輸出是整個(gè)模型是三維點(diǎn)云和相機(jī)位姿。但此類方法獲得的是稀疏點(diǎn)云,就是說(shuō)深度圖也是稀疏的。MVS與SfM原理類似,但它是對(duì)每個(gè)像素都去提取特征并進(jìn)行匹配,最終可以獲得稠密的深度圖。相較雙目/多目深度估計(jì)而言,單目深度估計(jì)更具挑戰(zhàn)性,這是因?yàn)閱文恳曈X(jué)天生就存在致命缺陷:尺度模糊。近年來(lái)深度學(xué)習(xí)技術(shù)的發(fā)展,引發(fā)了一系列單目深度估計(jì)網(wǎng)絡(luò)的問(wèn)世。近期SC-DepthV3發(fā)表在了新一期的TPAMI上,對(duì)單目深度估計(jì)問(wèn)題又提出了一個(gè)新的解決思路。本文將分別介紹牛津大學(xué)提出的SC-Depth系列的三個(gè)網(wǎng)絡(luò),探討它們都解決了什么問(wèn)題,以及實(shí)現(xiàn)了什么效果。

1. 為什么是無(wú)監(jiān)督?

先說(shuō)答案:因?yàn)橛斜O(jiān)督太貴了!目前單目深度估計(jì)網(wǎng)絡(luò)在KITTI、NYU等數(shù)據(jù)集上的性能其實(shí)已經(jīng)非常好了,各項(xiàng)定量指標(biāo)也好,定性估計(jì)深度圖也好,看起來(lái)已經(jīng)非常完美。但任何網(wǎng)絡(luò)、任何模型歸根結(jié)底都是要落地的,只在數(shù)據(jù)集上跑一跑沒(méi)辦法創(chuàng)造實(shí)際的產(chǎn)能??墒巧疃葘W(xué)習(xí)本身就是依賴數(shù)據(jù)集的,如果想把一個(gè)訓(xùn)練好的模型拓展到實(shí)際場(chǎng)景中,往往需要在實(shí)際場(chǎng)景進(jìn)行finetune。如果是有監(jiān)督網(wǎng)絡(luò)的話,實(shí)際場(chǎng)景的微調(diào)就需要激光雷達(dá)、高精相機(jī)等昂貴傳感器提供的ground truth。這在很大程度上就限制了有監(jiān)督單目深度估計(jì)網(wǎng)絡(luò)的實(shí)際落地。我們更想實(shí)現(xiàn)的目標(biāo)是拿著一個(gè)相機(jī)(甚至手機(jī))拍一組視頻,就可獲得每幀的深度!那么怎么辦呢?無(wú)監(jiān)督單目深度估計(jì)網(wǎng)絡(luò)就可以很好得解決這一問(wèn)題!無(wú)監(jiān)督單目深度估計(jì)網(wǎng)絡(luò)不需要提供深度真值就可以進(jìn)行訓(xùn)練,可以在任何場(chǎng)景通過(guò)一組單目視頻進(jìn)行finetune,這就意味著網(wǎng)絡(luò)具備極強(qiáng)的泛化能力!最早的無(wú)監(jiān)督單目深度估計(jì)網(wǎng)絡(luò)來(lái)源于2016年ECCV論文“Unsupervised CNN for single view depth estimation: Geometry to the rescue.”。網(wǎng)絡(luò)輸入是雙目相機(jī)中的左右目圖像,但是只估計(jì)左目圖像的深度。由于左右目位姿是已知的,那么我們就可以通過(guò)左目深度圖和左右目位姿去重建左圖,之后去計(jì)算重建左圖和真實(shí)左圖之間的差異,回傳損失進(jìn)行訓(xùn)練。除這個(gè)損失外,這個(gè)網(wǎng)絡(luò)還提出了深度值的平滑損失。圖片這個(gè)網(wǎng)絡(luò)名義上確實(shí)是單目深度估計(jì)網(wǎng)絡(luò),因?yàn)橹还烙?jì)了左圖的深度。但我們更希望的是網(wǎng)絡(luò)輸入是真正的單目圖像。最早的真正只使用單目圖像的無(wú)監(jiān)督單目深度估計(jì)網(wǎng)絡(luò)是2017年CVPR論文“Unsupervised Learning of Depth and Ego-Motion from Video”。這個(gè)網(wǎng)絡(luò)與上一篇論文的原理類似,它的輸入是單目視頻序列中的前后兩幀。首先給第一幀圖像估計(jì)深度圖,同時(shí)估計(jì)兩幀圖像中的位姿,之后利用深度圖和位姿重建第一幀圖像,同樣去計(jì)算與真實(shí)圖像之間的差異。圖片之后的SOTA方法就是大家所熟知的Monodepth2,來(lái)源于2019年ICCV論文“Digging Into Self-Supervised Monocular Depth Estimation”。其原理還是利用SfM同時(shí)估計(jì)深度網(wǎng)絡(luò)和位姿網(wǎng)絡(luò)。網(wǎng)絡(luò)輸入為單目視頻的連續(xù)多幀圖片,根據(jù)深度網(wǎng)絡(luò)和位姿網(wǎng)絡(luò)構(gòu)建重投影圖像,計(jì)算重投影誤差并引入至損失函數(shù)。圖片雖然近些年也出現(xiàn)了非常多的單目深度估計(jì)網(wǎng)絡(luò),但大多都是基于Monodepth2和SC-Depth框架進(jìn)行的。因此,本文對(duì)其他網(wǎng)絡(luò)結(jié)構(gòu)不再贅述。

2. SC-DepthV1做了什么?

至此,開(kāi)始引入本文真正的主角:SC-Depth系列。之前的單目深度估計(jì)網(wǎng)絡(luò)的重投影損失,更多的是利用前后幀的顏色誤差進(jìn)行約束,得到了比較精確的結(jié)果。但它們基本上都有一個(gè)共性問(wèn)題:深度值不連續(xù)!連續(xù)幾張圖像之間的深度值不連續(xù)!也就是說(shuō),在不同的幀上產(chǎn)生尺度不一致的預(yù)測(cè),因?yàn)樗鼈兂惺芰嗣繋瑘D像的尺度不確定性。這種問(wèn)題這不會(huì)影響基于單個(gè)圖像的任務(wù),但對(duì)于基于視頻的應(yīng)用至關(guān)重要,例如不能用于VSLAM系統(tǒng)中的初始化。因此,SC-DepthV1為解決此問(wèn)題提出了尺度一致性約束。具體來(lái)說(shuō),就是給前后兩幀圖像都預(yù)測(cè)深度,利用兩張圖像的深度和位姿投影到3D空間中,進(jìn)而去計(jì)算尺度一致性損失。這種方法確保了相鄰幀之間尺度的一致性,如果每連續(xù)兩幀圖像的尺度都是一致的,那么整個(gè)視頻序列的深度序列也就是連續(xù)的。圖片此外,SC-DepthV1還使用了一種Mask,對(duì)應(yīng)視頻上出現(xiàn)不連續(xù)的區(qū)域。作者認(rèn)為這就是動(dòng)態(tài)物體,通過(guò)去除這種Mask可以使得網(wǎng)絡(luò)具備一定的動(dòng)態(tài)環(huán)境魯棒性。圖片定量結(jié)果顯示,SC-DepthV1取得了與Monodepth2相持平的結(jié)果。但SC-DepthV1估計(jì)出的深度圖具有連續(xù)性,因此還是SC-DepthV1更勝一籌。圖片值得一提的是,SC-DepthV1在論文里除了介紹自己的定量結(jié)果外,還將單目深度估計(jì)結(jié)果引入到了ORB-SLAM2中,構(gòu)建了一個(gè)偽RGB-D SLAM系統(tǒng)。在一些序列中,Monodepth2+ORB-SLAM2的系統(tǒng)由于深度不連續(xù)問(wèn)題,很快跟丟。而SC-DepthV1+ORB-SLAM2的組合可以獲得較好的跟蹤結(jié)果。圖片圖片一句話總結(jié):SC-DepthV1解決了深度連續(xù)性問(wèn)題。


*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。



關(guān)鍵詞: AI

相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉