十三 發自 凹非寺
量子位 報道 | 公衆号 QbitAI
在2D圖像中做3D目标檢測很難?
現在,拿着一部手機就能做到,還是實時的那種。
這就是谷歌AI今天釋出的MediaPipe Objectron,一個可以實時3D目标檢測的pipeline。
分開來看:
MediaPipe是一個開源的跨平台架構,用于建構pipeline來處理不同模式的感覺資料。
Objectron在移動裝置上實時計算面向對象的3D邊界框。
日常生活中的物體,它都可以檢測,來看下效果。

它可以在移動端裝置上,實時地确定物體的位置、方向和大小。
這個pipeline檢測2D圖像中的物體,然後通過機器學習模型,來估計它的姿态和大小。
那麼,它具體是怎麼做到的呢?
擷取真實世界中的3D資料
我們知道,3D資料集相對于2D來說,非常有限。
為了解決這個問題,谷歌AI的研究人員使用移動增強現實(AR)會話資料(session data),開發了新的資料pipeline。
目前來說,大部分智能手機現在都具備了增強現實的功能,在這個過程中捕捉額外的資訊,包括相機姿态、稀疏的3D點雲、估計的光照和平面。
為了标記groud truth資料,研究人員建構了一個新的注釋工具,并将它和AR會話資料拿來一起使用,能讓注釋器快速地标記對象的3D邊界框。
這個工具使用分屏視圖來顯示2D視訊幀,例如下圖所示。
左邊是覆寫的3D邊界框,右邊顯示的是3D點雲、錄影機位置和檢測平面的視圖。
注釋器在3D視圖中繪制3D邊界框,并通過檢視2D視訊幀中的投影來驗證其位置。
對于靜态對象,隻需要在單幀中注釋一個對象,并使用來自AR會話資料的ground truth錄影機位姿資訊,将它的位置傳播到所有幀。
這就讓該過程變得非常高效。
AR合成資料生成
為了提高預測的準确性,現在比較流行的一種方法,就是通過合成的3D資料,來“填充”真實世界的資料。
但這樣往往就會産生很不真實的資料,甚至還需要大量的計算工作。
谷歌AI就提出了一種新的方法——AR合成資料生成 (AR Synthetic Data Generation)。
這就允許研究人員可以利用相機的姿勢、檢測到的平面、估計的照明,來生成實體上可能的位置以及具有與場景比對的照明位置 。
這種方法産生了高品質的合成資料,與真實資料一起使用,能夠将準确率提高約10%。
用于3D目标檢測的機器學習pipeline
為了達到這個目的,研究人員建立了一個單階段的模型,從一個RGB圖像預測一個物體的姿态和實體大小。
模型主幹部分有一個基于MobileNetv2的編碼器-解碼器架構。
還采用一種多任務學習方法,通過檢測和回歸來共同預測物體的形狀。
對于形狀任務,根據可用的ground truth注釋(如分割)來預測對象的形狀信号;對于檢測任務,使用帶注釋的邊界框,并将高斯分布拟合到框中,以框形質心為中心,并與框的大小成比例的标準差。
檢測的目标是預測這個分布,它的峰值代表了目标的中心位置。
回歸任務估計邊界框8個頂點的2D投影。為了獲得邊界框的最終3D坐标,還利用了一個成熟的姿态估計算法(EPnP),可以在不知道物體尺寸的前提下恢複物體的3D邊界框。
有了3D邊界框,就可以很容易地計算出物體的姿态和大小。
這個模型也是非常的輕量級,可以在移動裝置上實時運作。
在MediaPipe中進行檢測和跟蹤
在移動端裝置使用這個模型的時候,由于每一幀中3D邊界框的模糊性,模型可能會發生“抖動”。
為了緩解這種情況,研究人員采用了最近在“2D界”釋出的檢測+跟蹤架構。
這個架構減少了在每一幀上運作網絡的需要,允許使用更大、更精确的模型,還能保持在pipeline上的實時性。
為了進一步提高移動pipeline的效率,每隔幾幀隻讓運作一次模型推斷。
最後,這麼好的項目,當然已經開源了!
戳下方傳送門連結,快去試試吧~
傳送門
GitHub項目位址:
https://github.com/google/mediapipe/blob/master/mediapipe/docs/objectron_mobile_gpu.md
谷歌AI部落格:
https://ai.googleblog.com/2020/03/real-time-3d-object-detection-on-mobile.html
作者系網易新聞·網易号“各有态度”簽約作者