論文解讀:2019-CVPR-Google-Learning the Depths of Moving People by Watching Frozen People

該論文從視頻中重建了移動對象的景深圖。即使拍攝相機和人物同時在運動,也能很好重建景深圖。

和傳統方法最大的改進在於,谷歌的新方法可以用深度學習,從數據中學習人體姿態和形狀的先驗知識,避開了直接的3D三角測量。

構建數據集:
選取了YouTube上關於#假人挑戰#(Mannequin Challenge)話題的數據,在這種類型的視頻中,被拍攝者需做出一個定格動作,且要表現與人體模型一樣靜止不動,並由攝影師透過移動鏡頭的技巧進行拍攝。
再利用多視角立體( Multi-View Stereo,MVS)算法,就可以獲取到包含其中人物在內整個場景的(稀疏)深度圖了。
 

構建稠密的景深圖:
計算了視頻中每一幀和其他幀之間(取2幀)的2D光流(2D optical flow),用來表示兩幀之間的像素位移。

爲了在測試時處理移動的人物,採用了人像分割網絡( human-segmentation network)來掩蓋初始深度圖中的人類區域。整個網路的完整輸入包括:
RGB圖像
人物mask
來自視差的mask深度圖(由光流的視差計算得到的初始深度圖,其中掩蓋了人物區域)

此外,通過學習人類姿態和人體形狀的先驗(MVS深度圖),細化了景深圖中各種細節(補全人物區域的深度,得到稠密的景深圖)。
 

預測移動人物的深度:
但新的問題產生了,人體模特挑戰視頻里人物是靜止的,想要處理移動鏡頭下的移動人物,如何解決?

一個可能的解決方案:從視頻的每一幀來單獨推斷深度值,即僅將單個幀輸入模型。這種方案所訓練的模型的確優於現有的最佳單圖像深度預測方法,但考慮多幀圖像提供的信息,模型是否會進一步提升呢?

研究者引入了每兩幀畫面之間的 2D 光流圖,即兩幀圖像間像素位移信息,來輔助深度預測。

相機位置是已知的(利用視覺慣性測距得到),故可以得到靜態場景的初始深度值(通過移動相機,得到靜態場景的深度)

但人物同時也在運動,所以在得到初始深度圖時,人物會產生噪音,利用人體切割模型,將人物區域掩去,剩下的就是靜態的場景深度信息。

故模型輸入爲 RGB 圖像、人物掩蔽圖,和利用 SfM(structure-from-motion) 對光流圖計算出的掩蔽人物後的深度圖。

最終模型:
根據運動視差(Motion Parallax)的原理,成功的訓練出了一個深度學習的沙漏模型,有效地解決了移動鏡頭下移動人物的深度預測問題。

研究人員最終採用了沙漏模型(hourglass network)的一個變種作爲模型結構

這個模型可以預測有移動人類場景的深度,細化其他地方的深度,實現移動人物的去除。由於人體有着大概一致的形狀和物理維度,所以可以通過訓練數據來先驗地學習到這些信息。

這個模型也可以用於將單目鏡頭視頻變成立體視頻。

整個數據集約有 2000 個視頻,涵蓋各種真實場景下的各種造型各種姿勢的人類。

光流視差計算的深度圖只對場景中靜態的部分有效,爲了還能處理移動的人,增加了一個人物分割網絡,把人從初始深度圖中遮蔽掉。

網絡的任務就是補上有人的區域的深度圖,以及對整幅畫面的深度圖做一些完善。由於人體有較爲固定的形狀和尺寸,網絡可以很容易地從訓練數據中學到這些先驗,並給出較爲準確的深度估計。在訓練完畢後,模型就可以處理攝像頭和人物動作都任意變化的自然拍攝視頻了。

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