摘要:我們使用了一種稱爲 “AR 合成數據生成 (AR synthetic data generation)” 的新方法將虛擬對象放置到具有 AR 會話數據的場景中,從而能夠利用相機姿態、檢測到的平面和預估照明來生成現實中可能存在且光線情況與場景匹配的物體放置。3D 對象檢測的實際數據標註:右:3D 邊界框使用檢測到的表面和點雲在 3D 環境中完成標註。

文 / Google Research 軟件工程師 Adel Ahmadyan 和 Tingbo Hou

對象檢測是計算機視覺中一個被廣泛研究的課題,但是大多數研究主要集中於討論 2D 對象預測。 雖然 2D 預測僅提供 2D 邊界框,但通過將預測擴展到 3D,我們可以 捕獲物體在現實世界的大小、位置和方向信息,從而實現在機器人技術、自動駕駛汽車、圖像檢索和增強現實中的多種應用。

2D 對象檢測技術已相對成熟,並且已在業內得到廣泛應用。但是由於數據缺乏,且單個類別中物體的外觀和形狀千變萬化,通過 2D 圖像進行 3D 對象檢測仍然面臨挑戰。

今天,我們宣佈發佈 MediaPipe Objectron,一種用於日常對象的移動端實時 3D 對象檢測流水線。 Objectron 可檢測 2D 圖像中的對象,並通過在新創建的 3D 數據集上進行訓練的機器學習 (ML) 模型來估計其姿勢和大小。Objectron 源於開源跨平臺框架 MediaPipe,該框架用以構建流水線以處理不同模態的感知數據,因此 Objectron 可以在移動設備上實時計算物體的方向 3D 邊界框。

對單個圖像進行 3D 對象檢測:MediaPipe Objectron 可實時檢測移動設備上日常對象的位置、方向和大小

獲取真實世界的 3D 訓練數據

由於依賴於 LIDAR 等 3D 捕獲傳感器的自動駕駛技術研究的日益普及,現在已有大量街道場景的 3D 數據,然而針對更精細的日常物體的地面實況 3D 有標籤標註數據集卻極爲有限。

爲克服此問題,我們使用移動增強現實 (AR) 會話數據開發出一種新的數據流水線。隨着 ARCore 和 ARKit 的推出,上 百萬智能手機現已具備 AR 功能,並且能夠在 AR 會話期間捕獲其他信息,包括相機姿態、3D 點雲稀疏性、預估照明和水平表面等。

爲標記地面實況數據,我們構建一種新型標註工具,以結合 AR 會話數據使用,該標註標註工具可幫助數據標註標註員快速標記對象的 3D 邊界框。此工具使用分屏視圖來展示,在左側顯示 2D 視頻幀與疊加的 3D 邊界框,同時在右側顯示 3D 點雲、相機位置,以及檢測到的平面。標準員在右側 3D 視圖中繪製 3D 邊界框,並通過檢查在 2D 視圖中的投影來驗證是否標記正確。對於靜態對象,我們只需在單個幀中標註對象,然後使用來自 AR 會話數據的地面實況相機姿態信息將其位置推廣到所有幀,從而提高繪製過程的效率。

3D 對象檢測的實際數據標註:右:3D 邊界框使用檢測到的表面和點雲在 3D 環境中完成標註。左:已標註的 3D 邊界框的投影疊加在視頻幀的頂部,方便驗證標註

AR 合成數據生成

爲提高預測準確性,用合成數據補充現實數據的做法很流行。但是,這種方法往往會產生質量較差且不真實的數據,或者,在進行真實感渲染時,需要花費大量的精力和計算量。

我們使用了一種稱爲 “AR 合成數據生成 (AR synthetic data generation)” 的新方法將虛擬對象放置到具有 AR 會話數據的場景中,從而能夠利用相機姿態、檢測到的平面和預估照明來生成現實中可能存在且光線情況與場景匹配的物體放置。這種方法可生成高質量的合成數據:渲染的對象符合場景的幾何結構特點,還能夠無縫擬合至現實背景中。通過將現實數據與 AR 合成數據結合,精度提升約 10% 左右。

AR 合成數據生成示例:將虛擬的白色和棕色麥片盒渲染至真實場景中,旁邊是一本真實的藍色書

用於 3D 對象檢測的 ML 流水線

我們 構建一個單階段模型,以從 RGB 圖像預測對象的姿態和物理大小。

模型的主幹包含基於 MobileNetv2構建的編碼器-解碼器架構。我們採用多任務學習方法,通過將檢測和迴歸聯合來預測對象的形狀。形狀任務根據可用的地面實況標註標註(如分割)來預測對象的形狀信號。如果訓練數據中沒有形狀標註,則可以選擇不進行此操作。

對於檢測任務,我們使用了已標註的邊界框,對該框進行高斯擬合(中心位於該框的中間,標準差與框的大小成正比)。檢測的目標是預測峯值表示物體的中心位置的分佈情況。迴歸任務是估計八個邊界框頂點的 2D 投影。

爲確定邊界框的 3D 座標,我們利用一種較完善的姿態估計算法 ( EPnP)。此算法可在無需提前獲取物體的尺寸信息的情況下, 復原 物體的 3D 邊界框。只要有了 3D 邊界框,我們就可以輕鬆計算物體的姿態和大小。下圖所示爲我們的網絡架構和後處理。此輕量級的模型足以滿足在移動設備上實時運行的需求(在 Adreno 650 移動 GPU上爲 26 FPS)。

3D 對象檢測的網絡架構和後處理

模型的樣本結果 — [左側]:帶預估邊界框的原始 2D 圖像,[中間]:基於高斯分佈的對象檢測,[右側]:預測分割掩碼

在 MediaPipe 中檢測和追蹤

當模型應用到移動設備捕獲的每一幀時,由於這些幀預估的 3D 邊界框可能比較模糊,所以模型會抖動。爲解決這一問題,我們採用近期在 2D 對象檢測和追蹤解決方案中發佈的檢測+追蹤框架。此框架可降低模型在每幀運行時對網絡的需求,允許重複使用從而獲得更高精度,同時流水線在移動設備上也能保持實時運行。此外,還能跨幀保留物體標識,確保預測在時間上的一致性,減少抖動。

爲進一步提高我們移動流水線上的效率,我們每隔幾幀運行一次模型推理。接着,我們使用之前文章中所述的 實時運動追蹤和 Motion Stills 相結合的方法隨時間發展進行預測和追蹤。在做出新預測時,我們會根據疊加區域將檢測結果與追蹤結果合併。

爲了鼓勵研究和開發者使用我們的流水線進行實驗和原型設計,我們將在 MediaPipe 中發佈基於設備的 ML 流水線,其中包括 端到端演示移動應用,以及我們用於兩類物品( 鞋子和 椅子)開發的訓練模型。通過與廣泛的研究和開發社區共享我們的解決方案,我們希望能激發出更多新的用例、應用和研究。未來,我們計劃將這一模型擴展到更多類別,並進一步提高設備上運行性能。

野外 3D 對象檢測示例

致謝

這篇博文所述的研究由 Adel Ahmadyan、Tingbo Hou、Jianing Wei、Matthias Grundmann、Liangkai Zhang、Jiuqiang Tang、Chris McClanahan、Tyler Mullen、Buck Bourdon、Esha Uboweja、Mogan Shieh、Siarhei Kazakou、 Ming Guang Yong、Chuo-Ling Chang 和 James Bruce 共同完成。我們感謝 Aliaksandr Shyrokau 和標註團隊對高質量標註的辛勤付出。

如果您想詳細瞭解 本文討論 的相關內容,請參閱以下文檔。這些文檔深入探討了這篇文章中提及的許多主題: 2D 對象預測 https://ai.googleblog.com/2017/06/supercharge-your-computer-vision-models.html百萬智能手機 https://arinsider.co/2019/05/13/arcore-reaches-400-million-devices/構建一個單階段模型 https://arxiv.org/abs/2003.03522MobileNetv2 https://ai.googleblog.com/2018/04/mobilenetv2-next-generation-of-on.htmlEPnP https://www.epfl.ch/labs/cvlab/software/multi-view-stereo/epnp/實時運動追蹤 https://ai.googleblog.com/2018/02/the-instant-motion-tracking-behind.htmlMotion Stills https://ai.googleblog.com/2016/12/get-moving-with-new-motion-stills.html端到端演示移動應用 https://github.com/google/mediapipe/blob/master/mediapipe/docs/objectron_mobile_gpu.md鞋子 https://github.com/google/mediapipe/blob/master/mediapipe/models/object_detection_3d_sneakers.tflite椅子 https://github.com/google/mediapipe/blob/master/mediapipe/models/object_detection_3d_chair.tflite

相關文章