博客專欄

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

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

        發(fā)布人:計算機(jī)視覺工坊 時間:2022-11-19 來源:工程師 發(fā)布文章
        0. 筆者個人體會

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

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

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

        2. SC-DepthV1做了什么?

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


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



        關(guān)鍵詞: AI

        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 原平市| 松江区| 兴安盟| 岳阳县| 乌兰察布市| 长宁区| 西安市| 遂昌县| 宣城市| 康定县| 图木舒克市| 清河县| 七台河市| 沙洋县| 南丹县| 乡城县| 大竹县| 隆昌县| 开平市| 广德县| 泽州县| 墨脱县| 洛隆县| 山东省| 普洱| 罗田县| 阜平县| 比如县| 五常市| 延川县| 靖宇县| 兴仁县| 武安市| 苍梧县| 石嘴山市| 封丘县| 弥勒县| 大兴区| 武陟县| 瑞丽市| 潞西市|