MobilePose: Real-Time Pose Estimation for Unseen Objects with Weak Shape Supervision

MobilePose: Real-Time Pose Estimation for Unseen Objects with Weak Shape Supervision

谷歌最新論文:從圖像中進行3-D目標檢測
https://arxiv.org/pdf/2003.03522.pdf
轉自知乎 https://zhuanlan.zhihu.com/p/112836340
大家都看到谷歌博客的介紹,最新開源工作,手機端的實時3-D目標檢測。這裏看一下這個軟件的論文,即3月7日上載arXiv的論文“MobilePose: Real-Time Pose Estimation for Unseen Objects with Weak Shape Supervision“。

在這裏插入圖片描述
在這裏插入圖片描述
摘要:本文解決的是從RGB圖像中檢測出沒見過的目標並估計其3D姿態的問題。包括兩個移動端友好網絡:MobilePose-Base和MobilePose-Shape。前者用於只進行姿勢監督的情況,而後者用於形狀監督,甚至是較弱的情況。回顧一下之前人們使用的形狀特徵,包括分割和座標圖(coordinate map)。然後解釋了什麼時候以及爲什麼像素級形狀監督可以改善姿態估計。因此,在MobilePose-Shape中將形狀預測添加爲中間層,並讓網絡從形狀中學習姿勢。其模型在混合真實數據和合成數據上進行訓練,並做弱和含噪的形狀監督。模型非常輕巧,可以在現代移動設備上實時運行(例如Galaxy S20上爲36 FPS)。與以前的單樣本學習解決方案相比,該方法具有更高的準確性,使用的模型也要小得多(模型大小或參數數量僅僅佔2-3%)。

實例-覺察(instance-aware)方法從一組已知目標中學習姿勢,並有望在相同實例上工作。模型-覺察(model-aware)的方法在後期處理中需要目標的3D CAD模型。深度-覺察(depth-aware)方法除RGB圖像外還需要深度圖像用於姿勢估計。檢測-覺察(detection-aware)的方法依賴於現有的2D檢測器來找到目標邊框或ROI。

形狀特徵已被用於估計姿勢,採用的方法在後處理中而不是在網絡中使用形狀預測。 也就是說,它們首先通過CNN推斷形狀特徵,然後使用多視角幾何的PnP或點雲ICP將其與3D模型對齊。實時解決方案使姿態估計技術更接近於應用,只是這些模型必須輕巧才能實時運行,最好是單次運行。

首先,MobilePose-Base作爲基準網絡,它可以檢測到無錨點的未見目標,並採用單樣本估計目標姿勢。這種主幹網設計爲流行的編碼器-解碼器體系結構。爲了構建一個超輕量級的模型,選擇MobileNetv2 來構建編碼器,該編碼器被證明可以在移動設備上實時運行,並且勝過YOLOv2。 MobileNetv2建立在倒殘差塊上(inverted residual blocks),其中快連接(shortcut connections)放在薄的瓶頸層之間。塊中使用了ES(expansion-and-squeeze)方案。爲使模型更輕,移除了瓶頸處某些帶較大通道的塊,減少了一半的參數。

在這裏插入圖片描述
如圖所示,藍色和紫色框分別是卷積和反捲積塊。橙色框代表反向殘差塊。圖中所示的塊數及其尺寸在實現中完全相同。輸入是大小爲640×480×3的圖像。編碼器以卷積層開始,然後是五級倒殘差塊。瓶頸處使用了四個128-通道塊,而不是MobileNetv2的四個160-通道塊和一個320-通道塊。解碼器由一個反捲積層、一個和編碼器相同尺度層跳連接(skip connection)的連接層和兩個倒殘差塊組成。

在主幹之後附加兩個頭:檢測和迴歸。 檢測頭(detection head)的想法來自2D目標檢測中的無錨(anchor-free)方法。 將目標建模爲圍繞它們中心的分佈,檢測頭輸出40×30×1的熱圖(heat map),最終損失函數使用了簡單的L2(均方誤差)。

在這裏插入圖片描述
錨點圖、分割圖和分佈圖
如上圖比較了單樣本(single shot)姿勢估計中使用的不同檢測方法。 基於錨點(anchor-based)的方法在網格單元處設置錨,並在正的錨點(綠點)處迴歸邊框。 臨時分配多個錨點可處理同一網格單元的多個目標。 分割方法通過分割實例查找目標。 對同一類別的多個目標,需要實例分割以區分不同目標。 目標建模爲高斯分佈,並通過峯值搜索進行檢測。 爲了更好地說明,圖中使用了高分辨率,而模型的實際分辨率爲(40×30)。

上圖中多個目標的位移場(Displacement fields)根據它們的熱度可合併在一起。迴歸頭(regression head)輸出一個40×30×16的張量,其中每個矩形頂點貢獻兩個位移通道。 在圖中,只顯示了兩個位移場。 爲了容忍峯值提取的誤差,帶明顯熱度的那些像素位移參與迴歸。 爲此,該頭使用L1-損失(平均絕對誤差)函數,更爲穩健。

反過來,看看形狀。即使是薄弱的監督,MobilePose- Shape可以預測中間層的形狀特徵。其思想是引導網絡學習與姿勢估計有關的高分辨率形狀特徵。 其實,在沒有監督的情況下簡單引入高分辨率特徵不會改善姿勢估計,這是因爲邊框頂點的迴歸是在低維空間。 在無監督情況下,網絡可能會在小尺度上過擬合特定於目標的特徵。 此問題對於實例-覺察的姿勢估計方法無效,但不包括這裏的未知目標情況。

與先前的方法相似,選擇座標圖和分割作爲類內(intra-category)形狀特徵。座標圖具有三通道,分別對應於3-D的座標軸。 如果訓練數據有目標的CAD模型,則可以使用歸一化座標作爲顏色來渲染座標圖。 座標圖是像素級信號的強大特徵,但是,它需要目標的CAD模型和姿勢,而這些模型和姿勢很難獲取。 因此這裏將分割作爲另一個形狀特徵添加。 爲簡單起見,使用語義分割,在形狀監督中增加了一個通道。 分割是姿勢估計的弱項,僅僅給定未見目標的分割,不足以確定其姿勢。 但是,也不需要目標的CAD模型和姿勢,而且更容易獲得。

在這裏插入圖片描述
有了形狀特徵,用解碼器中的高分辨率層和形狀預測層來修改網絡。如上圖所示,在解碼器中組合了多尺度特徵。 在解碼器的末尾添加一個形狀層,以預測形狀特徵。 然後將其與解碼器連接起來,在下采樣後連接姿勢頭(pose heads)。 具體來說,用四個倒殘差塊來降低分辨率,並最終連接檢測頭和迴歸頭。 形狀頭(shape head),大小160×120×4,具有四個具有L2-損失(均方誤差)的通道。 在計算該損失時,將跳過沒有形狀標籤的訓練示例。 通過實驗,發現即使在監督不力的情況下,通過引入高分辨率形狀預測也可以改善姿勢估計。

儘管模型很輕巧,但後處理對移動應用程序也是至關重要的組件。 昂貴的算法是不考慮的,比如RANSAC,大規模PnP和ICP。 這裏將後處理簡化爲兩個便宜的操作:峯提取和EPnP。

爲了計算3D邊框的投影頂點,提取檢測輸出的峯值,即40×30熱圖。

給定投影的2D邊框頂點和相機標定的內參數,採用EPnP算法來恢復3D邊框的大小。 該算法具有恆定的複雜度,可以解決12×12矩陣的特徵分解,它不需要已知目標的大小。

缺乏訓練數據是6自由度(DoF)姿勢估計仍然存在的挑戰。 先前大多數方法都是實例-覺察方法,由一個小數據集進行監督訓練。 爲了解決未見目標的問題,這裏開發了一個流水線來收集和註釋由AR移動設備記錄的視頻片段。

尖端AR解決方案(例如ARKit和ARCore)可以用視覺-慣性-里程計(VIO)實時估算攝像機的姿勢和稀疏3D特徵。這種設備能夠以可承受且可擴展的方式生成3D訓練數據。

數據流水線的關鍵是高效,準確的3D邊框標註。這裏構建了一個記錄序列顯示2D和3D視圖的可視化工具。註釋者在3D視圖繪製3D邊框,在整個序列的多個2D視圖進行驗證。基於AR估計的相機姿態,繪製的邊框將自動填充到序列中的所有幀。

實際結果是,對1800個鞋子的視頻進行了剪輯和添加註釋。在各種環境下,不同鞋子的視頻片斷有幾秒鐘。只爲一個或一雙鞋子接受一個視頻片斷,因此,每個片斷的目標完全不同。在這些剪輯中,隨機選擇了1500個用於訓練,其餘300個用於評估。最後,考慮到同一剪輯中的相鄰幀非常相似,隨機選擇了10萬個圖像進行訓練,並選擇1000個圖像進行評估。如下表數據集(一共包括三個,即真實數據、合成3D數據和合成2D數據)所示,真實數據僅具有3D邊框標籤,這是因爲,逐幀註釋像素級的形狀標籤非常昂貴。
在這裏插入圖片描述

爲了提供形狀監督並豐富現有的實際數據集,也生成了兩組合成數據。 第一個合成3D數據具有3D標籤。收集只有背景的場景AR視頻剪輯,並將虛擬目標放置到場景中。 具體來說,在場景檢測的平面上,例如桌子或地板,以隨機的姿勢渲染虛擬目標。 重用估計的燈光在AR會話(AR Session)進行照明。 AR 會話數據的度量單位爲公制。 因此,其一致地渲染虛擬目標與周圍的幾何形狀。 收集了100個常見場景的視頻片段:家庭、辦公室和室外。 對每個場景,通過渲染50個隨機姿勢的鞋子來生成100個序列,每個序列包含許多鞋子。 從生成的圖像隨機選擇8萬進行訓練。下圖展示一些合成的視頻例子。

在這裏插入圖片描述
儘管合成3D數據具有準確的標籤,但是目標和背景的數量仍然有限。 因此,還從互聯網上抓取圖像來構建合成2D數據集。 這裏抓取了透明背景下的鞋子圖像7.5萬個和背景(例如辦公室和家庭)圖像4萬個。 濾除有微小錯誤(例如無透明背景下的)的鞋子圖片。 按Alpha通道(channel)對鞋子進行細分,然後將它們隨機粘貼到背景圖像中。 如上圖所示,生成的圖像不真實,標籤噪聲很大。 粗略估計大約有20%的圖像有輕微的標籤錯誤(例如,小缺失部分和陰影),約10%的圖像有嚴重的標籤錯誤(例如,非鞋子物體和較大的額外背景區域)。

整個訓練流程在TensorFlow中實現。 使用Adam優化器在8個GPU上訓練批量(batch)大小爲128的網絡。 初始學習率是0.01,在30個時期(epochs)內逐漸下降到0.001。 爲了在移動設備上部署經過訓練的模型,將它們轉換爲TFLite模型。 轉換時將刪除一些層,例如批處理歸一化(batch normalization),推理時它們是沒有用的。 基於MediaPipe框架(注:它是一個跨平臺框架,即安卓、IOS 、網頁和邊緣設備等各種平臺,用於構建多模態應用機器學習流水線,詳細內容見網頁https://mediapipe.dev),這裏構建了一個可以在各種移動設備上運行的應用程序。

最後,看看一些實驗定性結果例子:

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章