你們還在做2D的物體檢測嗎?Google已經開始玩轉 3D 了
物體檢測作為計算機視覺領域最廣泛的研究主題之一,雖然2D 物體檢測已在工業界得到了比較成熟的應用,然而實現 3D 物體檢測目前還困難重重。
一方面是由於現有的3D 數據非常匱乏,另一方面則是因為單個類別下的物體外觀和形狀本身就非常多樣化。
在當前條件下,如何基於現有的 2D 圖像數據來做3D 檢測呢?
日前,Google發佈了一個針對日常物體的移動實時 3D 物體檢測管道——MediaPipe Objectron。
該管道可以檢測2D圖像中的物體,然後通過機器學習模型估計物體的姿勢和大小,再在Google最新開發的3D數據集上對模型進行訓練。
其中,MediaPipe 是一個開源跨平台框架,用於構建管道來處理不同模式的感知數據,而Objectron則是在MediaPipe中實現,能夠在移動設備中實時計算面向檢測物體的3D 邊框。
(雷鋒網(公眾號:雷鋒網))
單個圖像的 3D 物體檢測。MediaPipe Objectron在移動設備上實時確定日常對象的位置、方位和大小。
獲取現實世界 3D 訓練數據
隨着依賴於激光雷達等 3D 捕獲傳感器的自動駕駛汽車研究工作的日益普及,目前已有大量的街道場景 3D 數據,然而針對更細粒度的日常物體的帶有真實 3D 標註的數據集極度有限。
為了解決這一問題,Google使用移動增強現實會話數據開發了一個新的數據管道。隨着ARCore 、ARKit等工具的出現,數億部智能手機現在具備了AR 功能,能夠在 AR會話期間捕捉到額外的信息,包括攝像機姿勢、稀疏的3D點雲、估計的照明和平面。為了標註真實數據,Google還開發了能夠與AR會話數據一同使用的新標註工具,讓標註者可以快速地給物體標註 3D 邊框。
該工具使用分屏視圖顯示 2D 視頻幀,其中左側放置3D邊框,右側顯示3D點雲、攝像機位置和檢測到的平面視圖。標註者以3D 視圖來繪製3D 邊框,並通過查看其在2D 視頻幀中的投影來檢驗其位置。
針對靜態物體,只需要在單個幀中標註物體,然後利用AR 對話數據中真實的攝像機姿勢信息將其位置傳送到所有幀中,從而提高整個流程的效率。
(雷鋒網)
3D物體檢測的真實世界數據標註。右圖:使用檢測到的平面和點雲在3D 世界中標註3D邊框。左圖:標註的3D 邊框的投影覆蓋在視頻幀的頂部,從而使得驗證標註變得更簡單。
AR 合成數據生成
在提高預測準確性方面,現在常用的一種方法是使用合成數據來補充現實世界的數據。然而這種做法往往會產生質量差、不現實的數據,而在真實渲染的情況下,則需要進行大量的嘗試和消耗計算成本。
Google提出的新方法,叫做AR 合成數據生成(AR Synthetic Data Generation),將虛擬物體放置到已有 AR 會話數據的場景中,可以利用攝像機姿勢、檢測到的平面以及估計的照明情況來生成物理世界中可能存在以及照明條件能夠與場景匹配的位置。
這種方法可以生成高質量的合成數據,並且渲染的物體不僅順應場景幾何體,還能夠無縫匹配適應現實場景。通過結合現實世界的數據和 AR 合成數據,能夠提高約10%的準確度。
(雷鋒網)
AR合成數據生成的例子。虛擬的白棕色麥片盒被渲染到真實場景中,挨着一本真實的藍色書。
一個針對3D目標檢測的機器學習Pipeline
Google建立了一個單級模型,能夠從RGB圖像中預測物體的姿態和物理大小。具體而言,模型的主幹包含基於MobileNetv2構建的編解碼器體系結構,並採用多任務學習方法通過檢測和迴歸聯合預測目標的形狀。形狀預測依賴數據標註的質量,如果數據中沒有形狀的標註,那麼此選項可以不選。
對於檢測任務,使用標註好的邊界框,並用高斯擬合。其中,中心在框的中間,標準差與框的大小成正比。檢測的目標就是預測這種概率分佈,其概率分佈的峰值表示目標的中心位置。
為了獲得邊界框的最終3D座標,Google利用了一種完善的姿勢估計算法(EPnP),這個算法能夠在無需了解目標大小的情況下,恢復目標的3D 邊界框,只要有了3D邊界框,就可以輕鬆計算目標的姿勢和大小。
下圖是模型的網絡架構和後處理,經驗證模型可以輕鬆的在移動設備上實時運行,例如在Adreno 650移動GPU上為26FPS。
圖注:3D目標檢測的網絡結構和後處理
(雷鋒網)
圖注:網絡樣本結果:左邊是帶有估計邊界框的原始2D圖像,中間是基於高斯分佈的目標檢測。右邊是預測分割掩碼。
在MediaPipe上檢測和跟蹤
讓模型實際應用時,由於針對的是移動設備捕獲的每一幀,而這些幀的3D邊界框可能是模糊的,所以模型可能會被幹擾。為了解決這一問題,Google借鑑了其之前2D目標檢測的方案,也即使用了之前的檢測+跟蹤框架。
此方案能夠減少模型在每一幀上運行網絡的需要,允許重複使用,同時保持pipeline移動設備上的實時更新。此外,還能跨幀保留目標屬性,確保預測在時間上一致,從而。減少抖動為了提高移動設備pipeline,每隔幾幀只運行一次模型推理。
另外,所採用的預測方法是實時運動跟蹤和運動靜止跟蹤的結合,當做出新預測時候,會將檢測結果和跟蹤結果合併。為了鼓勵研究、開發人員使用Google的pipeline建模,其將在MediaPipe Objectron上發佈基於設備的實時3D目標檢測的pipeline,內容包括端到端的demo移動應用,以及兩類訓練模型,這兩類訓練模式是鞋子和椅子。
項目已經開源,下面附上Github地址和博客:
https://github.com/google/mediapipe/blob/master/mediapipe/docs/objectron_mobile_gpu.md
https://ai.googleblog.com/2020/03/real-time-3d-object-detection-on-mobile.html
雷鋒網原創文章,未經授權禁止轉載。詳情見轉載須知。
資料來源:雷鋒網
作者/編輯:蔣寶尚