基於深度學習的視覺三維重建研究總結

2021-10-04 04:26:43 字數 2941 閱讀 8786

三維重建作為環境感知的關鍵技術之一,可用於自動駕駛、虛擬實境、運動目標監測、行為分析、安防監控和重點人群監護等。現在每個人都在研究識別,但識別只是計算機視覺的一部分。真正意義上的計算機視覺要超越識別,感知三維環境。我們活在三維空間裡,要做到互動和感知,就必須將世界恢復到三維。所以,在識別的基礎上,計算機視覺下一步必須走向三維重建

常規的3d shape representation有以下四種:深度圖(depth)、點雲(point cloud)、體素(voxel)、網格(mesh)

1.深度圖

深度圖其每個畫素值代表的是物體到相機xy平面的距離,單位為 mm。

2.體素

體素是三維空間中的乙個有大小的點,乙個小方塊,相當於是三維空間種的畫素。

3.點雲

點雲是某個座標系下的點的資料集。點包含了豐富的資訊,包括三維座標x,y,z、顏色、分類值、強度值、時間等等。在我看來點雲可以將現實世界原子化,通過高精度的點雲資料可以還原現實世界。萬物皆點雲,獲取方式可通過三維雷射掃瞄等。

4.三角網格就是全部由三角形組成的多邊形網格。多邊形和三角網格在圖形學和建模中廣泛使用,用來模擬複雜物體的表面,如建築、車輛、人體,當然還有茶壺等。任意多邊形網格都能轉換成三角網格。

三角網格需要儲存三類資訊:

(1)頂點:每個三角形都有三個頂點,各頂點都有可能和其他三角形共享。.

(2)邊:連線兩個頂點的邊,每個三角形有三條邊。

(3)面:每個三角形對應乙個面,我們可以用頂點或邊列表表示面

根據採集裝置是否主動發射測量訊號,分為兩類:基於主動視覺理論和基於被動視覺的三維重建方法。

主動視覺三維重建方法:主要包括結構光法和雷射掃瞄法。

被動視覺三維重建方法:被動視覺只使用攝像機採集三維場景得到其投影的二維影象,根據影象的紋理分布等資訊恢復深度資訊,進而實現三維重建。

其中,雙目視覺和多目視覺理論上可精確恢復深度資訊,但實際中,受拍攝條件的影響,精度無法得到保證。單目視覺只使用單一攝像機作為採集裝置,具有低成本、易部署等優點,但其存在固有的問題:單張影象可能對應無數真實物理世界場景(病態),故使用單目視覺方法從影象中估計深度進而實現三維重建的難度較大。

這篇**思路很簡單,算是用深度學習做深度圖估計的開山之作,網路分為全域性粗估計和區域性精估計,對深度由粗到精的估計,並且提出了乙個尺度不變的損失函式。

總結:(1)採用深度學習從2d影象到其對應的3d voxel模型的對映,模型設計為encoder+3d lstm + decoder。

(2)既適用單檢視,也適用多檢視。

(3)以體素的表現形式做的三維重建。

(4)缺點是需要權衡體素解析度大小(計算耗時)和精度大小。

要想學習物體的高解析度資訊(細節資訊)作為下游模型的先驗知識,我們只需要在原圖的基礎上剔除細節資訊,將原圖縮放成小圖,並訓練模型根據小圖重構原圖。這種策略在 image superresolution 任務中很常見。

現有工作一般使用雙線性差值對影象進行縮放,得到原圖和其對應的小圖(縮圖)。

學習高解析度資訊 step 1:在原圖的基礎上剔除細節資訊

之後使用 gan 模型,將小圖作為輸入重構高解析度影象。在訓練時,將重構的高解析度影象與原圖的 mse(l2 距離)、內容損失(content loss)和對抗損失作為生成器的損失函式,將二分類損失作為判別器的損失函式,將生成器和判別器進行對抗訓練。

在訓練過程中,生成器能夠掌握影象中物體的細節資訊,生成逐漸清晰的影象;判別器能夠掌握一張的細節資訊是否準確,判別生成影象和原圖的差異。生成器和判別器都可以用在下游任務中取得較好的效果。

在訓練 cnn 時,樣本間的關聯關係往往會被忽視,但是在影象檢索等領域這些關聯關係卻對提高任務精度為重要。在魔改損失函式時,我們可能會用到 metric learning;

在魔改網路結構時,我們會使用 gcn 計算節點之間的相似度進行圖卷積。而在自監督學習中,我們可以顯式地讓模型學習這些資訊。

現有工作一般使用聚類演算法先對影象進行聚類,記錄聚類結果並將樣本標註上對應簇的標籤;(當然也可以理解為剔除相關樣本帶來的簇資訊)並訓練模型根據影象**樣本所屬的簇。

相比於任務相關的類別標籤,簇所指向的標籤更符合資料本來的特徵(例如真假人臉分類可能會聚簇為男女),粒度可能也更細(例如貓狗分類可能會聚簇成不同顏色的貓狗等)。

學習樣本間的資訊 step 1:對影象進行聚類並記錄聚類結果作為標籤

之後使用 cnn-based 的分類器(cfn),影象作為輸入,**影象所屬的簇。在訓練時,使用多分類損失作為損失訓練分類器學習樣本間的模式差異。

視覺幾何(三維重建)

射影平面之齊次座標 老闆是搞三維重建的,最近跟著學了些數學知識。做一些筆記,以備查詢。第一點,為什麼需要齊次座標?簡單地說明一下,在一維空間中的一條線段上取一點x,然後我們想轉移x的位置,那我們應該是x x k,但我們能使用一維的矩陣來表示這變換嗎?不能,因為此時一維的矩陣只能讓x點伸縮。但如果變成...

基於slam的三維重建 SLAM 三維重建相關資源

有人問不知道去 找slam 三維重建相關資源,1 跟蹤slam前沿動態 更新的很頻繁 track advancement of slam 2 很全視覺slam資料大全,包括 the list of vision based slam visual odometry open source proje...

深度相機三維重建

筆者近日學習kinect開發,需要得到指定物體的三維座標,在查閱了眾多資料之後,也有了一點點自己的看法。由於kinect是一款rgb d相機,能夠很容易獲得相應的深度資訊,而至於深度資訊,推薦一篇知乎專欄 然後應該如何處理得到的深度資訊呢,筆者覺得主要有三個步驟 1.首先應該將深度相機的深度影象和色...