當前位置:
首頁 > 新聞 > 3D重建:硬派幾何求解vs深度學習打天下?

3D重建:硬派幾何求解vs深度學習打天下?

機器之心原創

作者:Yuanyuan Li

編輯:Hao Wang

一直以來,研究人員都希望能夠賦予機器和人類感官一樣的感知,其中就包含視覺。作為人類最重要的感官之一,人類接受到的信息中超過 70% 來源於雙眼。人的眼睛可以感知到 3D 信息,由於雙目視覺的存在,即使面對一張照片也可以比較輕易的從中獲取深度信息。然而,這對計算機來說卻是一個難點——3D 世界中形狀不同的物體可以在 2 維世界中擁有一模一樣的投影,3D 形狀的估計實際上是一個非適定性問題(ill-posed problem)。傳統研究主要利用各類幾何關係或者先驗信息,而近年來隨著深度學習的流行,對幾何方法的研究似有所忽視。

不久之前,加州大學伯克利分校馬毅教授也在微博表示,「……沒有任何工具或演算法是萬靈藥。至少在三維重建問題上,沒有把幾何關係條件嚴格用到位的演算法,都是不科學的—根本談不上可靠和準確。」

3D重建:硬派幾何求解vs深度學習打天下?

本文試圖對 3D 重建做一個簡單介紹,並對目前流行的兩類方法進行探討和對比。

術語介紹 (Terminology)

3D 重建是指對物體的真實形狀和外觀的獲取過程,其建模方法可以分為主動式(Active method)和被動式(Passive method)。

主動式(Active method):

在主動式方法中,物體的深度信息是給定的——這可以通過使用激光等光源或能量源向物體發射信號,然後解析返回的信號來獲得——重建主要是利用數值近似來還原物體的 3D 輪廓。其中幾種主要的方法有:

  1. 莫爾條紋法:這是由 Andrew P. Witkin 在 1987 年提出的一種方法,當時他還在 SRI international 的 AI 中心工作。莫爾條紋法依賴的是柵欄狀條紋重疊下所產生的干涉影像。該方法的優點是精度高,比較穩健,但是對物體的要求很高——表面必須具有規則紋理。
  2. 結構光法:結構光法對物體本身的顏色和紋理穩健,它使用投影儀將被編碼的結構光投射到被拍攝物體身上,然後由攝像頭進行拍攝。由於被拍攝物體上的不同部分相對於相機的距離和方向不同,結構光編碼的圖案的大小和形狀也會發生改變。這種變化可以被攝像頭捕獲,然後通過運算單元將其換算成深度信息,再獲取三維輪廓。根據編碼方式的不同,可以分為直接編碼(direct coding)、時分復用編碼(time multiplexing coding)和空分復用編碼(spatial multiplexing coding)。結構光法實現簡單,目前已經大量運用在工業產品中,比如微軟的 Kinect,蘋果的 iPhone X。但是該方法受強光影響比較大,也受到投影距離的限制。
  3. 三角測距法:該方法以三角測量原理為基礎,實際上大量運用了幾何中相似三角形的原理。三角測距法要求測量系統包含一個激光發射器和一個 CCD 圖像感測器。激光發射器發射的一束激光被物體反射後被圖像感測器檢測到,通過對比在物體發生位移後圖像感測器檢測到的激光的偏移,可以求解出發射器與物體之間的距離。這種方法的精度較高,成本也低,因而被廣泛運用在民用和商用產品中,比如掃地機器人。

被動式(Passive method):

被動式方法在 3D 重建過程中不會與被重建物體產生任何「交互」,主要是利用周圍環境獲取圖像,然後通過對圖像的理解來推理物體的 3D 結構。可以分為三類:

單目視覺法(Monocular stereo vision)

主要使用一台攝像機拍攝一張照片來進行 3D 重建。其中又分為:

  1. 陰影恢復法 (Shape From Shading,SFS):利用圖像的陰影來估計物體的輪廓特徵,要使用幾種不同光照條件來對比圖像的明暗程度和得到的陰影,來估計物體的深度信息。可以想到,SFS 要求光源參數準確,因而在具有複雜光線的場景下無法使用。
  2. 紋理恢復形狀法 (Shape From Texture,SFT):SFT 主要研究紋理在經過透視等變形後在圖像上的變化——如使用魚眼鏡頭拍攝的棋盤格子照片,照片邊緣的格子會被拉扯變形——並通過這種變形來逆向計算深度數據。該方法要求對畸變信息的了解,同時對物體表面的紋理也有很多限制,很少運用在實際產品中。

雙目視覺法(Binocular stereo vision)

在這種方法中,圖像是由兩個處在不同位置的相機同時對物體進行拍攝而獲取的,或者由一個相機不斷移動到不同的視點對物體進行拍攝。顯然,這一方法試圖模擬人類利用雙眼感知圖像視差而獲取深度信息的情況。雙目視覺法依賴於圖片像素匹配,可以使用模板比對或者對極幾何法。

立體視覺法(Multi-view stereo,MVS)

立體視覺法最初是由上述兩個研究自然發展而來的,立體視覺法將多個相機設置於視點,或用單目相機在多個不同的視點拍攝圖像以增加穩健性,見圖 1 示例。在發展的過程中,這一研究領域遇到了許多新的問題——比如,計算量暴增——並演變成一種不同類型的問題。目前這一研究領域十分活躍。

3D重建:硬派幾何求解vs深度學習打天下?

圖 1:使用單目相機在不同視點拍攝多張照片用於 3D 重建。圖源:Multi-View 3D Reconstruction https://vision.in.tum.de/research/image-based_3d_reconstruction/multiviewreconstruction

早期的立體視覺研究主要在實驗室環境中進行,所以相機參數都是已知的。但隨著研究者越來越多的使用網路上下載的照片等非實驗室環境下獲取的圖像,在重建工作之前必須首先求得相機位置和 3D 點來估計相機參數。

術語「相機參數」是指描述相機配置的一組值,即,由位置和方向組成的相機姿勢信息,以及諸如焦距和像素感測器尺寸的相機固有屬性。目前有許多不同的方法或「模型」來參數化這種攝像機配置,一般最常用的是針孔攝像機模型。

這些參數是必須的,因為相機將拍攝的 3D 世界的物體投影到 2D 圖像上,而現在我們需要用 2D 圖像反推 3D 世界信息。可以說,相機參數是確定物體的世界點和圖像點之間相互關係的幾何模型的參數。

目前計算攝像機參數主要使用的演算法是 Structure from Motion(SfM),MVS 發展成功也在很大程度上依賴於 SfM 的成功。與 SfM 齊名的還有 VSLAM 演算法,兩者都依賴於圖片像素匹配以及場景是剛性的假設。SfM 最常用於計算無序圖像集的相機模型,通常是離線的,而 VSLAM 專門從視頻流計算攝像機的位置,通常是實時的。

Structure from Motion

大概在初中的物理課上,我們接觸過小孔成像的原理。以圖 2 為例,我們考慮如何將物體 X 投影到圖像上的 x 點。投影中心是 c——又稱為相機中心(camera center)——以此為原點可以畫出相機坐標系,則物體 X 的坐標為(X,Y,Z)。經過相機中心,並垂直於圖像平面的中心線被稱為主軸(principle axis),也就是圖 2 中的 Z 軸。主軸和相機平面的交點被稱為 principal point,並成為圖像坐標系的原點 p。p 點和相機中心 c 點的距離為 f,也就是焦距。

3D重建:硬派幾何求解vs深度學習打天下?

圖 2:針孔攝像機模型。圖源:Richard Hartley and Andrew Zisserman. Multiple view geometry in computer vision. Cambridge university press, 2003.

根據相似三角形原理(圖 2 右側),我們可以輕易得出相機坐標系和圖像坐標系的關係:Z/f = Y/y = X/x

整理後可以得到:

x = f*X/Z

y = f*Y/Z

z = f

即點(X,Y,Z)在圖像坐標系中對應的坐標是(fX/Z,fY/Z,f)。這個映射關係對坐標 Z 來講是非線形的,我們需要通過擴展坐標維度對其線性化,從而進行矩陣運算:

3D重建:硬派幾何求解vs深度學習打天下?

上式中我們使用的圖像坐標系以成像平面的中心為原點,實際上我們一般會使用圖像的一個角——一般是左上角——作為原點,以水平線為 x 軸,垂直線為 y 軸。因此我們需要對成像坐標系進行縮放和平移,來吻合像素的實際坐標。將圖像坐標繫上的點在 x 和 y 軸方向上分別縮放 m_x 倍和 m_y,在分別平移 p_x 和 p_y 個點,調整後的矩陣變為:

3D重建:硬派幾何求解vs深度學習打天下?

其中 f_x = f*m_x,f_y=f*m_y,有時也寫作alpha_x,alpha_y。

上式中,等式右邊的第一個矩陣就是相機的內參矩陣 K:

3D重建:硬派幾何求解vs深度學習打天下?

s 是相機的 skew parameter,一般都設置為 0。

接下來,我們需要考慮在上述過程中物體的坐標是如何確定的——實際上,它的坐標是以相機為原點計算的。但相機的位置是可以隨時移動的,物體在相機坐標系中的位置也會隨之移動,我們需要將物體的坐標轉換到世界坐標系中,來獲得穩定的坐標位置。

3D重建:硬派幾何求解vs深度學習打天下?

圖 3:相機坐標繫到世界坐標的轉換。圖源:Richard Hartley and Andrew Zisserman. Multiple view geometry in computer vision. Cambridge university press, 2003.

同樣,相機坐標系和世界坐標系之間的轉換可以通過縮放和平移來達到,寫作:

X_cam = RX + t

其中 X_cam 和 X 分別是一點在相機坐標系和世界坐標系下的坐標表示,R 為 3x3 的旋轉矩陣,t 為 3x1 的平移向量。為了統一運算方式,我們將上式也改寫為矩陣形式:

3D重建:硬派幾何求解vs深度學習打天下?

將相機內外參矩陣結合起來,我們就可以獲得完整的物體從 3D 世界中被投射到 2D 圖像中的坐標轉換關係:

3D重建:硬派幾何求解vs深度學習打天下?

完整的相機矩陣可以總結為:

3D重建:硬派幾何求解vs深度學習打天下?

相機外參負責世界坐標繫到相機坐標系的轉化,內參則負責接下來從相機坐標繫到 2D 圖像坐標系的轉換。

SfM 演算法可以在給定一組圖像的情況下,直接輸出每張圖像的相機參數,以及圖像中可見的一組 3D 點,一般被編碼為 tracks。

3D重建:硬派幾何求解vs深度學習打天下?

圖 4:SfM 演算法一般流程。圖源:Chippendale, Paul & Tomaselli, Valeria & D"Alto, Viviana & Urlini, Giulio & Modena, Carla & Messelodi, Stefano & Mauro Strano, Sebastiano & Alce, Günter & Hermodsson, Klas & Razafimahazo, Mathieu & Michel, Thibaud & Farinella, Giovanni. (2014). Personal Shopping Assistance and Navigator System for Visually Impaired People. 10.1007/978-3-319-16199-0_27.

SfM 演算法的第一步是從圖片中抽取一系列特徵(feature detector),一般使用尺度不變特徵轉換 (Scale-invariant feature transform 或 SIFT)。SIFT 通過對圖像使用連續高斯模糊來獲得不同的圖像尺度並在其上尋找可能的關鍵點,然後捨棄掉其中不明顯的關鍵點。SIFT 演算法檢測到的關鍵點通常對光線、視角等變化相當穩健,甚至受視線遮蔽的影響也不大。SIFT 演算法的另外一個優點就是計算速度非常快,基本可以滿足實時運算。

3D重建:硬派幾何求解vs深度學習打天下?

圖 5:SIFT 演算法示例。圖源:維基百科 URL:https://en.wikipedia.org/wiki/Scale-invariant_feature_transform

確定特徵後,一般需要使用 K-D Tree 演算法對不同圖像中的特徵最近鄰匹配(matching)。匹配完畢後還需要去除重複匹配和不滿足幾何約束的匹配,否則誤匹配會造成較大的誤差,一般使用採樣一致性演算法 RANSC 八點法來計算幾何約束。

3D重建:硬派幾何求解vs深度學習打天下?

圖 6: 特徵匹配示例。圖源:CS 6476: Computer Vision Project 2: Local Feature Matching URL:https://www.cc.gatech.edu/~hays/compvision/proj2/

通過篩選的匹配會被合併為 tracks 用於求解相機參數,估算相機參數場景的稀疏結構。

由於演算法對估計的相機模型的準確性非常敏感,因此通常還需要用 bundle adjustment 優化估計結果,主要思想是將求得的 3D 點反向投影到圖像中,與初始坐標進行對比並根據誤差容忍度進行刪減,然後重新調整相機參數。

SfM 有它的缺陷,一個最重要的問題就是由於 SfM 依賴於特徵可以跨視圖匹配的假設,如果這個假設不滿足 SfM 就完全無法工作了。比如如果兩張圖片之間的視點差距太大(一張從正面一張從側面)或者局部被遮擋,建立特徵匹配是極其成問題的。此外,SfM 由於要通過捆綁調整進行優化,整個演算法的運算速度極慢,且速度還會隨著圖像的增加而大幅下降。

深度學習

使用深度學習,研究者實際上希望能夠跳過特徵抽取、特徵匹配、相機參數求解等手動環節,直接由圖像——有時僅需一張——模擬 3D 物體的形狀。同時,神經網路應該不僅學習可視部分的結構,同時也能夠推理被遮擋部分的結構。

前面提到,3D 物體的表示方法一般有深度圖 (depth), 點雲 (point cloud), 體素 (voxel), 網格 (mesh) 四種。所以深度學習也可以依次分為學習圖像到深度的表示、圖像到體素的表示等,不過也有研究試圖融合多種表示。由於對輸出數據形式有要求,大部分研究使用了 decoder-encoder 結構的神經網路,比如 3D-R2N2 網路 [1](見圖 7)。該網路由三個部分組成:2D 卷積神經網路(2D-CNN)組成的 encoder,3D 卷積 LSTM(3D-LSTM)作為中間架構,以及 3D反卷積網路(3D-DCNN)組成的 decoder,能夠將輸入圖像轉化為 3D 物體的體素表示。

3D重建:硬派幾何求解vs深度學習打天下?

圖 7:3D-R2N2 模型結構。圖源:C. B. Choy, D. Xu, J. Gwak. (2016). 3D-R2N2: A Unified Approach for Single and Multi-view 3D Object Reconstruction. ECCV.

給定來自任意視點的對象的一個或多個圖像,2D-CNN 首先將輸入圖像 x 編碼為低維特徵 T(x)。然後,根據給定的編碼輸入,3D-LSTM)單元選擇性的更新它們的單元狀態或維持原狀態。最後,3D-DCNN 解碼 LSTM 單元的隱藏狀態並生成 3D 概率體素重建。[1] 指出使用基於 LSTM 的網路的主要原因是這樣的網路可以有效應對物體被遮擋的情形,因為網路僅更新對應於物體可見部分的單元。如果後續視圖顯示先前被遮擋的部分,且這部分與網路預測不匹配,則網路將更新先前被遮擋的部分的 LSTM 狀態,但保留其他部分的狀態。

但使用體素表示帶來的一個挑戰是模型的計算量會隨著解析度增高指數級的增長,如果解析度限制到了 32*32*3 以下以降低對內存的要求則會使得輸出結果丟失很多細節。有些研究通過對輸出空間進行分層劃分,以實現計算和存儲效率 [2, 3, 4],其中 Maxim Tatarchenko 等學者提出的 Octree 網路 [4] 取得了顯著的解析度的提高,甚至可以達到 512^3。

在計算量上,使用神經網路學習深度圖會更有優勢。以 D. Eigen 等學者的研究 [5] 為例,他們可以僅使用卷積層,同時試圖將更高的解析度顯式的編碼進神經網路的結構中。

D. Eigen 等學者提出的神經網路分為兩部分:全局粗粒度網路和局部細粒度網路(見圖 8)。粗粒度網路的任務是使用場景的全局視圖來預測整個深度圖結構。該網路的上層完全連接,因此在其視野中可以包含整個圖像。粗粒度網路包含五個卷積和最大池的特徵提取層,後面是兩個全連接層。輸入,特徵映射和輸出大小也在下圖中給出。與輸入相比,最終輸出會被下採樣 4 倍。細粒度網路會接收到粗粒度網路的預測和輸入圖片,以完成對粗略預測和局部細節的對齊。細粒度網路除了用於連接輸入圖像和粗略預測的串聯(concatenation)層以外,只包含卷積層。

3D重建:硬派幾何求解vs深度學習打天下?

圖 8:D. Eigen 等學者提出的神經網路模型結構。圖源:D. Eigen, C. Puhrsch, and R. Fergus. (2014). Depth map prediction from a single image using a multi-scale deep network. NIPS.

這個模型在當時取得了 state-of-art,但實際上預測還是十分粗糙的,有時模型的預測只能看出物體的大概輪廓。為了進一步提高解析度,D. Eigen 等學者此後也對模型進行過一些改進。包括將網路從兩部分擴展到三部分,從而提高一倍解析度,但仍然只有輸入圖像解析度的一半。

將神經網路應用在剩餘的兩種數據形式——點雲和網格——上的話,還要額外面對一個困難:點雲和網格不是規則的幾何數據形式,無法直接使用。稍早一點的研究,比如 D. Maturana 和 S. Scherer. Voxne 提出的 Voxnet [6] 以及 Z. Wu 等學者提出的 3D shapenets [7] 都是先將數據轉化為體素形式或者圖像表示,然後在體素化的數據上進行訓練。但這會極大的增加計算負擔,同時還可能模糊數據。此後有一些研究試圖令神經網路學習網格的幾何特徵,比如 Jonathan Masciy 等學者提出的 Geodesic convolutional neural networks [8]。

總的來看,如果需要從四種表現形式中選擇一個的話,使用體素的重構精度一般是最高的,使用深度圖最容易將重建任務遷移到深度學習上。目前的 state of the art 是由 Stephan R. Richter 和 Stefan Roth 提出的 Matryoshka Networks [9],該網路使用由多個嵌套深度圖組成的形狀表示。

損失函數方面,由於數據的形式不一,目前沒有統一使用的損失函數,常用的有 scale-invariant error 和交叉熵等。衡量精度使用的標準則以 RMSE 和 IoU 居多。

幾何方法對比深度學習方法

Maxim Tatarchenko 等學者 [10] 認為,實際上目前表現最好的深度學習演算法實際上學習到的是圖像分類,而非圖像重建。他們設計了幾個簡單的基線演算法,一個為 K-means 演算法,將訓練集中的形狀聚類為 500 個子類別;一個 retrieval 演算法將數據集中的形狀投射到低維空間中求解和其他形狀的相似度;還有一個最近鄰演算法(Oracle NN)根據 IoU,為測試集中的 3D 形狀找到與訓練集最接近的形狀。這個方法不能在實踐中應用,但可以給出檢索方法應對這一任務所能取得的表現的上限。

在 ShapeNet 數據集上的測試顯示,沒有任何一個神經網路演算法可以超過最近鄰演算法(Oracle NN)的表現,也就是說,測試結果中 mean IoU 最高甚至還不超過 0.6。

3D重建:硬派幾何求解vs深度學習打天下?

圖 9:模型在測試數據上的表現示例。圖源:M. Tatarchenko, S. R. Richter, R. Ranftl, Z. Li, V. Koltun, T. Brox. (2019). What Do Single-view 3D Reconstruction Networks Learn? arXiv:1905.03678v1.

圖 9 給出了幾個模型在一些測試數據上的表現,可以看到作者設計的基線模型的表現基本與神經網路相同。每個樣本右下角的數字表示 IoU,基線模型通過搜索相似的形狀可以保證整體形狀的正確性,但細節可能不正確。

另外一個令人驚訝的發現是,如果將各個對象類的 IoU 分數的直方圖可視化的話,會發現神經網路和兩個基線方法的類內分布十分相似。然而,這兩個基線方法本質上是圖像識別方法。

作者對 55 個類和所有測試方法的直方圖進行了 Kolmogorov-Smirnov 檢驗。該檢驗的原假設是兩個分布沒有表現出統計學上的顯著差異。圖 10 中的右側給出了三個例子,左側的熱圖(heat map)中的每個單元顯示了統計測試不允許拒絕原假設的類的數量,即 p 值大於 0.05。可以看到,絕對大多數類都不能拒絕深度學習方法和兩個基線方法的直方圖分布一樣的原假設。而最近鄰方法則和其他方法有比較明顯的不同。

3D重建:硬派幾何求解vs深度學習打天下?

圖 10:測試方法的 IoU 直方圖對比及 Kolmogorov-Smirnov 檢驗結果。圖源:M. Tatarchenko, S. R. Richter, R. Ranftl, Z. Li, V. Koltun, T. Brox. (2019). What Do Single-view 3D Reconstruction Networks Learn? arXiv:1905.03678v1.

即便我們忽略深度學習到底在訓練中習得了什麼這一問題,而僅關注神經網路的重建表現,D. Eigen 等學者的研究 [1] 中所展現出來的結果也是十分值得討論的。作者使用了 4 種不同類別的高質量 CAD 模型,通過手動編輯紋理將其紋理強度增強到低,中和高,並且渲染出了不同視角。比較用的 MVS 演算法是 Patch-Match,通過 global SfM 估計相機位置。重建效果由體素表示,用 IoU 衡量,由於 Patch-Match 生成的 3D 物體是由網格表示的,還需要將其體素化用於比較,最終輸出大小為 32×32×32。

3D重建:硬派幾何求解vs深度學習打天下?

3D重建:硬派幾何求解vs深度學習打天下?

圖 11:測試數據示例和比較結果。圖源:C. B. Choy, D. Xu, J. Gwak. (2016). 3D-R2N2: A Unified Approach for Single and Multi-view 3D Object Reconstruction. ECCV.

上圖第一行給出了使用的測試數據的例子,從左到右依此為具有各種視點的圖像和紋理水平從高到低的圖像。測試結果很有意思——3D-R2N2 和 Patch-Match 演算法的優缺點幾乎是完全相反的。從上圖 a)中可以看出當 Patch-Match 方法遇上低紋理水平的物體,預測精度會大大下降。另一方面,在滿足 Patch-Match 演算法的假設的情況下(物體紋理水平較高),Patch-Match 演算法的精度遠遠大於 3D-R2N2,即便輸出數據的大小僅有 32x32x32。在學習深度的神經網路研究中我們也有看到,神經網路的預測還是以輪廓為主,細節上面有缺失。作者認為這主要是因為訓練數據有偏置,大部分都是紋理級別較低的數據,因為實際上 3D-R2N2 在紋理級別增高以後表現下降了。上圖 b)則展示了當視點不足的時候,Patch-Match 演算法完全無法運行,而 3D-R2N2 則不受這個影響。但 Patch-Match 演算法的精度可以隨著視點的增多而得到提升,3D-R2N2 無法重建一樣多的細節。

上圖(c)到(h)則給出了分別給定 20,30 和 40 個視點的高紋理飛機模型時,3D-R2N2 和 Patch-Match 的表現。其中(c-e)是 Patch-Match 的重建結果,(f-h)是 3D-R2N2 的重建結果。可以看到 3D-R2N2 的預測的確差別不大,而 Patch-Match 則從完全無法辨認的預測提升到了流暢、精細的重建結果。

筆者看到這一結果的時候,感覺這幾乎完全是 no free lunch theory 重現。由於深度學習演算法僅用一張圖像作為輸入,可以使用的信息減少了,在適用性增大的同時帶來的一定是最優表現的下降。Yasutaka Furukawa 在他的書中 [11] 也有強調,「An MVS algorithm is only as good as the quality of the input images and camera parameters」。

另外,目前深度學習的研究還存在兩個問題——如何衡量模型表現以及使用什麼訓練數據。

前文提到,平均 IoU 通常用作基準單視圖重建方法的主要量化指標。但將其用唯一指標可能是有問題的,因為只有 IoU 足夠高時,才能表示預測形狀的質量。低到中等分數表明兩種形狀之間存在顯著差異。例子見下圖。

3D重建:硬派幾何求解vs深度學習打天下?

圖 11:不同生成結果的 IoU。圖源:M. Tatarchenko, S. R. Richter, R. Ranftl, Z. Li, V. Koltun, T. Brox. (2019). What Do Single-view 3D Reconstruction Networks Learn? arXiv:1905.03678v1.

針對第二個問題,目前深度學習使用的訓練集主要是 ShapeNet 數據集。然而,該數據集的測試集中的形狀與訓練集中的形狀非常相似。以 ShapeNet 為數據集訓練出的重建模型可以很輕易的找到捷徑——它只需要從訓練集中檢索類似的形狀。在 Maxim Tatarchenko 等學者的研究中我們也看到了這一現象。

至此,我們已經討論了目前常用的一些演算法,筆者在表一中對這些演算法的各方面表現進行了總結。

3D重建:硬派幾何求解vs深度學習打天下?

未來方向

可以看到,幾何演算法和深度學習方法的優缺點完全不一樣。在條件不允許的時候,用一張圖片恢復 3D 結構是有價值的;但當更多數據可獲取的時候,儘可能的利用信息一定是更好地選擇。並且專註於從單張圖像恢復 3D 結構的深度學習研究實際上是假設單張單目圖像可以檢測到三維信息的,而這從理論上來講應該是不可能的,這也是為什麼大部分生物都有兩隻眼睛。

此外,在產品化上,如何與具體應用結合——比如如何將三維視覺應用於 AGV、無人駕駛上——是十分值得探索的。這個過程也一定會帶來更多的挑戰,包括但不限於:

  • 演算法的部署、嵌入,嵌入式 SLAM 已經得到了很多的研究,但在 SfM 領域這方面的關注還不足
  • 計算速度的提高,嵌入式系統對演算法運算速度的要求是極高的,如何優化目前 SfM、深度學習等計算量巨大的演算法,使其滿足實時運行的要求
  • 感測器的融合,就像目前無人駕駛汽車的視覺系統往往會部署相機、雷達等多種感測器一樣,三維重建走向工業界後一定也需要收集多類數據來應對複雜的視覺環境,這必然要求三維重建系統可以應對不同類型的數據並對其進行綜合分析

面對實際運用演算法時的將所處複雜環境,幾何演算法和深度學習方法實際上可以是互補的,並不一定要做二選一的決定。以幾何方法做主導,用深度學習強大的特徵表達能力來補充幾何方法不適用的情況是一種發展趨勢。

資源

軟體庫:

  • PCL(Point Cloud Library,點雲庫)(http://pointclouds.org (http://pointclouds.org/))
  • Meshlab: the open source system for processing and editing 3D triangular meshes.(http://www.meshlab.net/)
  • Colmap: a general-purpose Structure-from-Motion (SfM) and Multi-View Stereo (MVS) pipeline with a graphical and command-line interface.(https://colmap.github.io/)

教材:

  • Multi-View Stereo: A Tutorial Yasutaka Furukawa(https://www.nowpublishers.com/article/Details/CGV-052)
  • Richard Hartley and Andrew Zisserman. Multiple view geometry in computer vision. Cambridge university press, 2003.(https://www.robots.ox.ac.uk/~vgg/hzbook/)
  • D. Scharstein, R. Szeliski. (2001). A Taxonomy and Evaluation of Dense Two-Frame Stereo Correspondence Algorithms. Proceedings IEEE Workshop on Stereo and Multi-Baseline Vision (SMBV 2001). (http://vision.middlebury.edu/stereo/taxonomy-IJCV.pdf)
  • NYU course slide Lecture 6: Multi-view Stereo & Structure from Motion (https://cs.nyu.edu/~fergus/teaching/vision_2012/6_Multiview_SfM.pdf)

數據集:

  • Shapenet dataset(https://www.shapenet.org/about)

文本作者為機器之心分析師 Yuanyuan Li。她幾次轉行,本科國際貿易,研究生轉向統計,畢業後留在歐洲,選擇從事機械研發工作,主要負責圖像處理,實現計算機視覺演算法的落地。欣賞一切簡單、優雅但有效的演算法,試圖在深度學習的簇擁者和懷疑者之間找到一個平衡。希望在這裡通過分享自己的拙見、思想的碰撞可以拓寬自己的思路。

機器之心個人主頁:https://www.jiqizhixin.com/users/a761197d-cdb9-4c9a-aa48-7a13fcb71f83

參考文獻:

[1] C. B. Choy, D. Xu, J. Gwak. (2016). 3D-R2N2: A Unified Approach for Single and Multi-view 3D Object Reconstruction. ECCV.

[2] C. Hane, S. Tulsiani, and J. Malik. (2017). Hierarchical surface prediction for 3D object reconstruction. 3DV.

[3] G. Riegler, A. O. Ulusoy, H. Bischof, and A. Geiger.(2017). OctNetFusion: Learning depth fusion from data. 3DV.

[4] M. Tatarchenko, A. Dosovitskiy, and T. Brox. (2017). Octree generating networks: Efficient convolutional architectures for high-resolution 3D outputs. ICCV.

[5] D. Eigen, C. Puhrsch, and R. Fergus. (2014). Depth map prediction from a single image using a multi-scale deep network. NIPS.

[6] D. Maturana; S. Voxne. (2015). VoxNet: A 3D Convolutional Neural Network for Real-Time Object Recognition. IROS.

[7] Z. Wu, S. Song, A. Khosla, F. Yu, L. Zhang, X. Tang and J. Xia. (2015). 3D ShapeNets: A Deep Representation for Volumetric Shape Modeling. CVPR.

[8] J. Masci, D. Boscaini, M. M. Bronstein, P. Vandergheynst. (2015). Geodesic convolutional neural networks on Riemannian manifolds. arXiv:1501.06297.

[9] S. R. Richter and S. Roth. (2018). Matryoshka networks: Predicting 3D geometry via nested shape layers. CVPR.

[10] M. Tatarchenko, S. R. Richter, R. Ranftl, Z. Li, V. Koltun, T. Brox. (2019). What Do Single-view 3D Reconstruction Networks Learn? arXiv:1905.03678v1.

[11] Y. Furukawa and C. Hernández. (2015). Multi-View Stereo: A Tutorial. Foundations and Trends? in Computer Graphics and Vision. 9(1-2):1-148.

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器之心 的精彩文章:

商湯科技入駐DoraHacks第四次工業革命黑客馬拉松
為損失函數定個框架,碼隆CVPR 2019提出圖像檢索新範式

TAG:機器之心 |