三維重建(3D Reconstruction)技術一直是電腦圖形學和電腦視覺領域的一個重點研究領域。
簡單地說,三維重建就是基於二維影像,恢復三維場景結構。
據說,林志穎出車禍後,他的臉部重建方案就用到了三維重建。
#其實,三維重建技術已在遊戲、電影、測繪、定位、導航、自動駕駛、VR/AR、工業製造以及消費品領域等方面得到了廣泛的應用。
隨著GPU和分散式運算的發展,以及硬體上,微軟的Kinect,華碩的XTion以及因特爾的RealSense等深度相機逐漸成熟,三維重建的成本已經呈現降低的趨勢。
從操作上講,3D重建的過程,大體可以分成五個步驟。
第一步,影像取得。
由於三維重建是相機的反向操作,因而需要先用攝影機取得三維物件的二維影像。
這一步不容忽視,因為光線條件、相機的幾何特性等對後續的影像處理造成很大的影響。
第二步,攝影機標定。
這一步,是利用攝影機所拍攝的影像來還原空間中的物件。
通常會假設,攝影機所拍攝到的影像與三維空間中的物體之間存在線性關係,求解線性關係的參數的這個過程,就稱為攝影機標定。
第三步,特徵提取。
特徵主要包括特徵點、特徵線和區域。
大多數情況下,都是以特徵點為匹配基元,特徵點以何種形式提取與用何種匹配策略緊密聯繫。
因此在進行特徵點的提取時需要先確定要用哪一種匹配方法。
第四步,立體匹配。
立體匹配是指根據所提取的特徵來建立影像對之間的一種對應關係,也就是將同一物理空間點在兩個不同影像中的成像點進行一一對應起來。
第五步,三維重建。
有了比較精確的配對結果,結合攝影機標定的內外參數,就可以恢復出三維場景資訊。
這五步,環環相扣,只有每個環節的都做得精度高,誤差小,才能設計出一個比較精確的立體視覺系統。
在演算法上,三維重建大體可分為兩類,一個是基於傳統多視圖幾何的三維重建演算法。
另一個是基於深度學習的三維重建演算法。
目前,由於CNN在影像的特徵匹配上有著巨大優勢,越來越多的研究人員,開始將目光轉向基於深度學習的三維重建。
不過,這種方法多是監督學習方法,對資料集依賴程度很高。
而資料集的收集和標註一直是監督學習的問題來源,因而,基於深度學習的三維重建,多在體積較小的物體重建方向上研究較多。
另外,基於深度學習的三維重建固然保真度高,在精度方面有較好的性能。
但訓練模型要花費大量的時間,而用於三維重建的3D卷積層是非常昂貴的。
因而,有研究者開始重新檢視傳統的三維重建方法。
傳統的三維重建方法固然性能上有不足,但技術相對成熟。
那麼,將兩種方法進行一定的融合,也許會有更好的結果。
#來自倫敦大學、牛津大學、Google和Niantic(從Google拆分出來的研究AR的獨角獸公司)等機構的研究人員,探索出一條不用3D卷積的3D重建方法。
他們提出了一個簡單的最先進的多視圖深度估計器。
此多視圖深度估計器有兩點突破。
一是精心設計的二維CNN,可以利用強大的影像先驗,以及並可以得到平面掃描特徵量和幾何損失;
二是能將關鍵影格和幾何元資料整合到成本量中,從而實現知情的深度平面計分。
據研究人員介紹,他們的方法在深度估計方面比目前最先進的方法有明顯的領先優勢。
並且在ScanNet和7-Scenes上進行3D重建時接近或更好,但仍允許線上即時低記憶體重建。
而且,重建速度非常快,每幀只用約73ms。
研究人員認為,這使得透過快速深度融合進行精確重建成為可能。
據研究人員介紹,他們的方法是用圖像編碼器從參考圖像和來源圖像中提取匹配特徵,然後輸入到cost volume,再使用2D卷積編碼/解碼器網路處理cost volume的輸出結果。
該研究使用PyTorch來實現,並用ResNet18進行匹配特徵提取,還使用兩塊40GB A100 GPU ,經過36小時完成全部工作。
此外,雖然模型不使用3D卷積層,但在深度預測指標上卻優於基準模型。
這顯示精心設計和訓練的2D網路足以進行高品質的深度估計。
有興趣的讀者,可以閱讀論文原文:
#https://nianticlabs.github.io/simplerecon /resources/SimpleRecon.pdf
不過,要提醒的是,閱讀這篇論文有專業門檻,有些細節可能不容易會注意到。
我們不妨看看外國網友從這篇論文中發現了什麼。
一位網名為「stickshiftplease」網友說,「雖然A100上的推理時間約為70毫秒,但這可以透過各種技巧來縮短,並且記憶體需求不必為40GB,最小的模型運行2.6GB的記憶體」。
另一個名為「IrreverentHippie」的網友則指出,「請注意,這項研究仍然是基於LiDAR的深度感測器進行採樣。這就是這種方法獲得如此好的品質和準確性的原因」。
還有一個名為「nickthorpie」的網友的評論比較長,他說,「ToF相機的優缺點有據可查。ToF解決了困擾原始影像處理的各種問題。其中,兩個主要問題是可擴展性和細節。ToF總是難以識別諸如桌子邊緣或細桿之類的小細節。這對於自主或半自主應用程序至關重要。
此外,由於ToF是一種主動感測器,因此當多個感測器一起使用時,例如在擁擠的十字路口或自建倉庫中,圖片品質會迅速下降。
顯然,你在一個場景中收集的數據越多,你所創造的描述就越準確。許多研究人員更喜歡研究原始圖像數據,因為它更靈活」。
以上是幫林志穎修臉的3D重建,用兩塊A100加二維CNN就可以實現!的詳細內容。更多資訊請關注PHP中文網其他相關文章!