摘要
目前基于3D傳感器的數(shù)據(jù)集及其缺陷:
- NYU:只有室內(nèi)的照片
- Make3D:訓練集小
- KITTI:稀疏采樣
論文中的數(shù)據(jù)集:
基于對運動中獲取的結(jié)構(gòu)和多視點立體(MVS)進行建模來處理多視點網(wǎng)絡圖片——任意數(shù)據(jù)源,基于此方法產(chǎn)生一個叫Megadepth的規(guī)模很大的深度圖片數(shù)據(jù)集。
來自MVS數(shù)據(jù)的挑戰(zhàn):包含噪聲和不可重構(gòu)的實體,因此本文中提出了一種新的數(shù)據(jù)清洗的方法
在本文提出的數(shù)據(jù)集——Megadepth上訓練的模型表現(xiàn)出了很強的泛化性能(即使在在Make3D、KITTI和DIW等舊的數(shù)據(jù)集(訓練中并沒有用到)上也有好多額表現(xiàn))
介紹
相對于預測場景實體的3D形狀,單點深度估計是一個不受約束的問題,采用深度學習的方法解決的話需要大量的訓練數(shù)據(jù),然而RGB-D圖像對的采集非常困難,現(xiàn)有方法存在著嚴重的缺陷,例如:
- RGB-D傳感器:被限制在室內(nèi)使用
- Laser scanners:基于此技術的典型數(shù)據(jù)集有Make3D和KITTI,但是這種設備操作相當麻煩,同時產(chǎn)生的只是稀疏的深度映射(LIDAR),此外Make3D和KITTI都是特定場景下的數(shù)據(jù)集(分別是大學校園、汽車上)
本文中采用幾乎沒有人合法限制的數(shù)據(jù)源構(gòu)建數(shù)據(jù)集來解決上面的問題(有重復視點的網(wǎng)絡圖片),這樣采用從運用中獲取結(jié)構(gòu)和多視點立體技術可以自動地產(chǎn)生稠密的深度圖片。用以上的系統(tǒng)的輸出作為機器學習方法的輸入來解決單點深度估計問題。
本文的貢獻:
- 第一次采用Internet SFM+MVS數(shù)據(jù)來解決單點深度估計問題。
- 構(gòu)建并提出了一個無限制數(shù)據(jù)源、大容量的深度圖像數(shù)據(jù)集——Megadepth
- 針對MVS圖片,提出了新的數(shù)據(jù)清洗的方法
- 基于Megadepth訓練模型的新的損失函數(shù)
相關工作
- 單點深度估計:一個標準的方法是收集RGB-D圖像對,然后訓練模型,訓練好的模型就可以用來估計RGB圖像的深度信息。這些模型一般在比較小的訓練集上訓練(NYU、Make3D、KITTI)
Novotny等人基于從視屏中利用SfM+MVS構(gòu)建的3D模型訓練了一個網(wǎng)絡來學習單個實體的3D形狀。
通過視圖合成,多視點場景也可以作為單點深度估計模型訓練的潛在數(shù)據(jù)源,但它僅僅是一個深度信息的替代,往往不能產(chǎn)生高質(zhì)量的深度信息。 - 相對深度估計:獲取圖像深度信息的另一個方法是人工標注圖像深度,但是人工標注絕對深度是一個挑戰(zhàn),人類比較擅長標注相對深度。相對深度對于估計深度順序是有用的(因此文中也從圖片中自動集成了相對深度信息),但是僅僅通過相對深度學習的深度信息估計歐氏深度的精確度很有限。
- 估計網(wǎng)絡圖片的深度信息:SfM和MVS技術的發(fā)展推動了此項任務的進步。已經(jīng)有人通過檢索和SfM從單張圖片中構(gòu)建3D模型,也有人利用以上技術注冊一張圖片到現(xiàn)有的3D模型中來推導深度信息。但是前人的工作中需要或者提前在每個位置有詳細的3D模型或者運行時構(gòu)建它們。在本文的工作中采用SfM+MVS訓練網(wǎng)絡去產(chǎn)生新的位置和場景。
MegaDepth數(shù)據(jù)集
- 從Flickr下載網(wǎng)絡圖片——拍照效果非常好的地標
- 采用最先進的SFM和MVS方法重構(gòu)地標為3D模型,這將為張圖片產(chǎn)生SfM模型和稠密深度映射,但這些深度映射有大量的噪聲和奇異值。
針對以上問題的處理:1)2)通過語意分割產(chǎn)生相對深度數(shù)據(jù)
圖片校準和重構(gòu)
通過COLMAP為收集的每張圖片構(gòu)建3D模型。COLMAP是最先進的SfM系統(tǒng)——重構(gòu)相機位姿和稀疏點云,和MVS系統(tǒng)——稠密深度映射。COLMAP可以為每張重構(gòu)的圖片I產(chǎn)生一個深度映射D和諸如:相機參數(shù)、稀疏SfM點、camera visibility
改善深度映射
COLMAP產(chǎn)生的原始深度映射包含很多奇異值(產(chǎn)生原因:移動實體、噪聲深度不連續(xù)、背景深度融合進前景實體),因此需要進行深度映射的改善
- 首先,采用在深度估計上更穩(wěn)定的基于COLMAP的改善的MVS算法。COLMAP迭代地計算深度信息,每次迭代中,盡量保證相鄰像素深度映射的幾何穩(wěn)定性。保證該穩(wěn)定性的一個方法是給背景預測一致的深度,一個壞的影響就是背景深度會吃掉前景實體。為了克服這個影響,COLMAP的每次迭代中,比較每個像素值更新前后的深度值,并選擇最近(最?。┑纳疃戎?,接著采用中值濾波器刪除掉不穩(wěn)定的深度值(平滑)。
- 然后,采用語意分割的方法強化和過濾(實體感知過濾器)深度映射,并且產(chǎn)生額外的相對深度數(shù)據(jù)。
通過語意分割進行深度強化
MVS方法在有多個種類的實體的當場景中有不好的表現(xiàn),但是如果可以知道圖像中的語意分布,則可以減小多實體的影響,或者至少可以確定有問題的像素位置,而深度學習在語意分割中具有良好的表現(xiàn)。
語意分割在構(gòu)建我們提出的數(shù)據(jù)集過程中有三個主要的作用1)移除前景區(qū)域中的偽MVS深度;2)通過分割作為區(qū)分每張圖片是提供絕對深度信息或者相對深度信息的指標;3)通過組合語意信息和MVS深度自動地標注相對深度關系,標注的這些數(shù)據(jù)有助于訓練MVS不能夠重構(gòu)的區(qū)域。
- 語意過濾:對于每張圖片,采用PSPNet進行語意分割,并把像素按語意分為三個子集:
1)前景實體:包括一些經(jīng)常出現(xiàn)在前景中的實體,有靜態(tài)前景和動態(tài)前景。
2)背景實體:包括建筑、山等。
3)天空:在深度過濾中填空需要特殊處理
語意分類后,為了克服移動實體(人)造成的偽深度,文中對圖片中每個連通區(qū)域進行處理:如果<50%的像素有重構(gòu)的深度信息,將移除該區(qū)域中的所有深度信息。此外為了克服填空的影響,文中還去掉了在填空區(qū)域中的重構(gòu)深度。
- 絕對深度 VS 相對深度
雖然每類3D實體有上千種場景圖,但它們深度圖的質(zhì)量是不一樣的,因此將訓練數(shù)據(jù)集限制在一個具有該質(zhì)量深度圖的子集內(nèi)是有用的。具體的,考察一張圖片,如果>30%的像素由可靠的深度值組成,則保留它作為學習絕對深度信息的訓練數(shù)據(jù)集樣本,這個評價指標將保留那些沒有大的移動前景實體的樣本。不被用作學習絕對深度訓練集的樣本將有另一個的用途:自動生成學習相對深度關系的訓練集。 - 自動相對深度標注:
來自網(wǎng)絡的圖片中,如果包含一些移動的實體、不易被MVS重構(gòu)的實體,如果我們僅僅采用前文構(gòu)建的數(shù)據(jù)集訓練模型,將會缺少這些實體的的ground truth深度。為了解決這個問題,我們采用了一個新的基于3D幾何信息和語意分割的方法為我們的訓練圖片(不屬于絕對深度模型訓練集的圖片)自動地提取相對深度標簽,具體方法如下:
對于上面提到的每張圖片,計算兩個區(qū)域:F_ord(前景:基于語意信息)、B_ord(背景:基于3D幾何信息, 也包含在整張圖片深度范圍的后四分位數(shù)以上深度可靠深度信息),F(xiàn)_ord中的每個像素一定比B_ord中的每個像素更接近相機。
創(chuàng)建數(shù)據(jù)集
數(shù)據(jù)集中包含了有稠密3D重構(gòu)的世界各地地標的200個模型,同時呈現(xiàn)了15萬的重構(gòu)圖片。過濾后保留了13萬張可用圖片,在這13萬張圖片中有大約10萬為絕對深度數(shù)據(jù),3萬張為相對深度數(shù)據(jù)。再加上A. Knapitsch, J. Park等人用過的數(shù)據(jù)集,構(gòu)成了完整的Megadepth
深度估計網(wǎng)絡
網(wǎng)絡結(jié)構(gòu):對比了VGG,“hourglass” network,和ResNet,最后確定了使用hourglass作為深度預測模型
- 損失函數(shù)
SFM+MVS確定的的深度的尺度是不確定的,所以并不能直接拿預測深度和ground truth進行比較。但是深度對的相對深度的尺度是確定的(此處也可以是對數(shù)域中的利率,就是估計的深度先取對數(shù),再進行成對比較,比值的尺度是確定的)?;谏厦娴目紤],文中處理的是對數(shù)域的深度,并且用一個不隨尺度改變(深度對的比率)的損失函數(shù)進行訓練。
尺度不變部分(data term):在線性時間內(nèi)計算所有對數(shù)深度對之間區(qū)別的均方誤差。
這里用表示預測對數(shù)深度、用
表示對數(shù)ground truth深度。
和
表示i位置對應的對數(shù)深度值。這里定義
,并且定義:
上式中n表示ground truth深度數(shù)據(jù)中合法深度的個數(shù)。
多尺度、尺度不變梯度匹配部分(grad term):為了在訓練過程中在獎勵更平滑的梯度變化的同時懲罰更尖銳的深度不連續(xù)性,文中用了一個多尺度、尺度不變的梯度匹配子作為損失函數(shù)的一部分,其定義為:預測和ground truth深度數(shù)據(jù)之間對數(shù)深度的梯度區(qū)別的
懲罰項:
上式中:是對數(shù)深度區(qū)別矩陣中位置為i尺度為k的值,由于損失是在多尺度下計算的,
可以捕獲不同尺度圖像的深度梯度。文中使用的尺度有4個尺度。
具有魯棒性的相對深度損失(ord term):相對深度損失部分,捕獲的是前文中自動生成的相對深度關系誤差。
對于相對深度數(shù)據(jù)集中的每張圖片,在訓練過程中,文中選取單個像素對(i, j),其中i像素和j像素或者在前景中或者在
中,
的設計如下,它對少數(shù)的不正確的相對深度關系對是魯棒的。
其中,
就是前文中自動標注的i和j之間的相對深度關系, 如果
則i像素比j像素離鏡頭更遠,否則
,c是一個常數(shù),它的作用是是
是連續(xù)的。訓練過程中對于一張圖片,如果文中的自動標注方法認為圖中的一個像素對有相似的深度順序,則
鼓勵該點對之間的深度差最大(并且是有序的),在訓練過程中,基于交叉驗證,文中設定
。
評估
評估的目的是回答下面的三個問題:
- 在MD數(shù)據(jù)集上訓練的模型怎樣泛化到新的訓練中沒有用到過的網(wǎng)絡照片中。
- 文中提出的深度數(shù)據(jù)處理的重要性,文中的損失函數(shù)的各部分的重要性。
- 在MD數(shù)據(jù)集上訓練的模型在其他數(shù)據(jù)集上的泛化能力如何好
要回答以上的三個問題,文中設計了多個實驗內(nèi)容——在一個數(shù)據(jù)集上訓練,在其他數(shù)據(jù)集上測試,以此來展示MD數(shù)據(jù)集訓練的網(wǎng)絡的強大的泛化能力。
實驗過程中也說明了文中提出的深度數(shù)據(jù)強化策略在實現(xiàn)泛化能力上的必要性;同時說明了文中提出的損失函數(shù)在預測的數(shù)量和質(zhì)量上都提高了預測表現(xiàn)。
實驗設計:從MD數(shù)據(jù)集的200個重構(gòu)模型中,隨機選擇46個作為測試集,在剩余的154個重構(gòu)模型中,隨機的將每個模型的所有圖片分成訓練集和驗證集,其中訓練集占96%,測試集占4%,在驗證過程中設置、
。實驗時采用pytorch實現(xiàn)模型,采用Adam算法調(diào)參,以32的批量大小訓練了20個epochs
為了比較的公平性,在所有的實驗中訓練和驗證都采用MD作為數(shù)據(jù)集,文中通過MD數(shù)據(jù)集一共訓練了4個模型并計算了平均錯誤率。
在MD測試集上模型的簡化測試和評估
下面介紹在MD數(shù)據(jù)集上測試通過MD數(shù)據(jù)集訓練的模型的實驗過程。
評價指標:為了量化估計,采用了兩個尺度不變的錯誤度量方法(SfM不具有尺度特性)。
第一個是:scale-invariant RMSE,公式如下:
第二個是:SDR——SfM Disagreement Rate,公式如下:
上式中的是像素對(有用于比較的SfM深度的像素對)的集合,n是滿足條件像素對的個數(shù),ord(.,.)是一個可以表示三種深度關系(更遠、更近、同樣深度)的映射,具體如下:
文中也定義了和
分別為
和
的反對(預測深度關系和SfM深度關系不同)率。文中的實驗中設置
來容忍SfM深度點中深度的不確定性。為了提高效率文中只在所有的SfM深度數(shù)據(jù)集中采樣一個子集來計算誤差。
不同的網(wǎng)絡和損失函數(shù)對實驗結(jié)果的影響:文中共嘗試了三種主流的網(wǎng)絡來預測深度,分別為VGG、hourglass、ResNet ,來測試文中提出的損失函數(shù)在三種網(wǎng)絡中和現(xiàn)有損失函數(shù)(Eigen el al)的比較結(jié)果。
文中還以他們提出的損失函數(shù)中的單個部分的組合為損失函數(shù)分別訓練了神經(jīng)網(wǎng)絡,最終的結(jié)果顯示,以文中提出的損失函數(shù)(data_term+grad_term+ord_term)訓練的網(wǎng)絡的泛化能力最強。并且在不同的組合中,hourglass網(wǎng)絡和其他網(wǎng)絡相比,效果最好。
值得一提的是:損失函數(shù)中增加部分可以很大程度上提高
和
實驗結(jié)果表明文中提出的損失函數(shù)可以有效地保護深度數(shù)據(jù)中的原始結(jié)構(gòu),同時可以有效地捕獲距離較近實體(人和電線桿)之間的深度差距。
文中還通過在KITTI、Make3D、DIW三個數(shù)據(jù)集上測試來比較在MD數(shù)據(jù)集上訓練的模型在采用和不采用文中提出的深度強化方法時的預測表現(xiàn)。實驗結(jié)果表明,在原始的MVS數(shù)據(jù)集上訓練的模型泛化能力并不是特別好,證明了文中提出的深度強化方法的有效性。