SPPR閱讀筆記:單張圖片的3D平面重建

目的

  • 輸入一張圖片,得到圖片上爲平面的部分,並給出平面的三維信息(單位法向)。

大致過程

這是一個二階段的學習。第一階段爲從單張圖片中得到不同平面的分割,第二階段爲對不同的分割估計平面方程。但兩個階段是一起訓練的,因此也是end-to-end manner。訓練時,需要包含每張圖片每個像素所屬平面區域和像素單位法向信息。

分割

  1. 統一encode到embedding的特徵。
  2. 判斷每一像素是否爲平面。採用了segmentation decoder(第一個decoder)模型,對每個像素估計一個概率,判斷它是不是平面。
  3. 對同一平面像素進行聚類。採用了embedding decoder(第二個decoder)模型,對同一平面點的embedding feature進行吸引,對不同平面點的embedding feature進行排斥。
  4. 綜合上述兩步,對通過第一個decoder像素的embedding feature進行聚類(由於像素點非常多,因此使用了Efficient Mean Shift Clustering的算法,得到圖片到不同平面的分割。

估計

  1. 對每一像素上的法向和Ground Truth進行擬合。採用了parameter decoder(第三個decoder)模型,對每個像素估計概率,然後計算和Ground Truth之間的L1損失。
  2. 由於是平面,因此我們也需要每個像素上的法向儘可能朝向一致。對第三個decoder的法向,我們加權(權重來自聚類)求和,得到平面法向,然後計算平面法向和每個像素上法向的點積與1的差作爲損失。
  3. 因此,總損失爲四個損失(分割兩個,估計兩個)相加。

疑問

  • 兩階段在訓練時不分開有什麼好處嗎?感覺許多分兩階段的在訓練時仍然放一起訓練,難道不更難收斂嗎?而且如果一起訓練效果更好,那不是說明了分兩階段的解釋其實沒有那麼強?

相關的思考

  • 這篇paper其實並不是很相關,但它體現了我們可以如何人爲地添加一些條件(比如平面)來幫助神經網絡認識世界。但它的方法僅適用於平面,無法很好地拓展到其他情況,比如球體、圓柱體,乃至旋轉性、對稱性等等。另一些paper,用於人造機械的識別,因爲機械會有大量的軸對稱、旋轉對稱,因此會有專門的結構來識別或重建它們,但要形成一個統一的約束條件感覺很難。
  • 有一些結果還是挺神奇的,比如光照下的,一個平面被分成了有陰影和沒有陰影的兩塊,這時它們的樣子看起來還是差別挺大的,而且有明顯的分界線,但有些結果仍能將它們識別爲同一平面。還有一些牆上掛着畫,它也能將畫看做是牆的一部分。但如果有時是一個凸出的平面,則又能分開,有一點意思。

參考文獻

Yu, Zehao, et al. “Single-Image Piece-wise Planar 3D Reconstruction via Associative Embedding.” arXiv preprint arXiv:1902.09777 (2019).

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