人類的視覺神經是一套神奇的系統。
作為三維生物的視覺系統,我們可以輕易地把三維空間的二維投影(照片/視頻)在大腦里重新還原成三維空間。換句話說,當我們看到一個平面上的兩個物體時,我們知道這兩個物體并非重疊,而是一前一后。我們甚至可以估算出這兩者之間的大致距離。
對于試圖超越人類視覺能力的計算機視覺技術來說,重建三維空間時的深度預測這一技能卻是一個繞不開的難題。畢竟,機器的輸入只是一個二維平面上的像素分布數據,而利用兩個觀測點進行三角測量卻需要多相機陣列或對象保持靜止。面對“人機皆動”的動態場景,當下的計算機視覺算法就無能為力了。
當然,任何技術突破需要的只是時間。這不,GoogleAI 的研究人員根據運動視差(MotionParallax)的原理,成功的訓練出了一個深度學習的沙漏模型,有效地解決了移動鏡頭下移動人物的深度預測問題。
圖 |輸入鏡頭和人物都在自由移動的普通視頻(左)得到深度圖(右),此深度圖中越亮表示離相機越近。(來源:Tali Dekel,et al./Google AI)
我們的世界并不是二維平面,雖然人類視覺系統可以輕易地將看到的 2D 圖像轉化為 3D,但機器該如何知曉深度呢?目前的主流方法是利用三角測量(Triangulation),三角測量理論是通過兩點觀測來確定對象的位置,即兩個觀測點和對象處于同一平面,通過兩個觀測點的距離和兩個夾角來計算對象的位置。完成三角測量需要有多個相機組成陣列,如 Google’sJump,若一個鏡頭的話,就要在鏡頭移動的時候對象保持靜止。
而在鏡頭和場景里的對象都在自由移動的情況下,不確定的位置使三角測量算法感到迷惑迷茫甚至絕望,于是大多現存的深度預測方法就會開始“瞎算”,要么過濾掉移動對象,將他們視為噪音,直接標記為 0,要么假裝目標沒有移動,計算出不正確的深度值。
圖 | 傳統立體測量場景是利用同時的兩點觀測數據,即目標物靜止(左);鏡頭和對象在同時移動的測量場景,三角測量理論無法適用(右)。(來源:Tali Dekel,et al./Google AI)
面對這種不科學的做法,GoogleAI 的研究人員創造了首個針對于鏡頭和人體同時移動情況的深度學習模型,并不是傳統針對靜止對象的深度預測模型,無需 3D 三角測量,僅利用鏡頭和人物都在移動的普通視頻數據,完美輸出深度圖(一種三維場景的信息表達方式,圖的像素值反映場景中物體到相機的距離)。這與現實世界大多數物體都在運動的情況契合,并且模型表現優于現有最佳深度預測模型,能真實還原移動人物的位置,如此,一些視頻里動態人物的扣除、遮擋鏡頭的還原,一些 3D 效果渲染,都不在話下。
訓練數據的收集
此深度預測模型利用有監督的方式進行訓練,即需要自然場景下的有移動鏡頭的視頻,并且有精準的深度數據。那么如何得到有標注的訓練數據集呢?這就要從 2016 年 11 月開始風靡互聯網的 YouTube 人體模特挑戰(Mannequin Challenge)說起了。
在這個挑戰中,人靜止于各種姿勢,如同模特,鏡頭移動過整個場景拍成視頻,素材里整個場景靜止,只有相機在移動,所以基于三角測量的一些 3D 重建方法,如 multi-view-stereo (MVS),可以精準地計算出整個場景包括人物的深度,從而得到深度標注。整個數據集約有 2000 個視頻,涵蓋各種真實場景下的各種造型各種姿勢的人類。
畢竟,如果合成數據的話需要大量的各種場景和人類動作進行逼真的模擬和渲染,不太現實,并且這種模擬數據所訓練出來的模型可能也難以遷移到真實場景;如果換用 RGBD(RGB+depth)相機,如 Microsoft 的 Kinect,來記錄真實場景產生數據,也會受到深度相機本身限制,比如物體材質影響反射導致深度值缺失,并且深度相機一般也受限于室內場景。
故,風靡一時的 Mannequin Challenge 視頻,在此將做出卓越的貢獻。
圖|YouTube 上人體模特挑戰的視頻,視頻中人物以各種姿勢造型靜止,鏡頭劃過整個靜止場景,傳統 3D 重建算法 MVS 計算出所有視頻中的深度值作為訓練數據集的標注(來源:Tali Dekel,et al./Google AI)
預測移動人物的深度
但新的問題產生了,人體模特挑戰視頻里人物是靜止的,想要處理移動鏡頭下的移動人物,如何解決?
一個可能的解決方案:從視頻的每一幀來單獨推斷深度值,即僅將單個幀輸入模型。這種方案所訓練的模型的確優于現有的最佳單圖像深度預測方法,但考慮多幀圖像提供的信息,模型是否會進一步提升呢?
這就是運動視差。由于透視,從不同位置觀察靜止畫面時,近處物體比遠處物體有更大視差,這種視差信息可以判斷深度信息。因此,研究者引入了每兩幀畫面之間的 2D 光流圖,即兩幀圖像間像素位移信息,來輔助深度預測。光流(opticalflow)是指空間運動物體在觀察成像平面上的像素的瞬時速度,利用圖像序列中像素在時間上的變化以及相鄰幀之間相關性,根據視差原理可以計算出相鄰幀物體的運動信息。
光流一般是由于目標本身的移動、相機的移動或兩者共同運動產生,所以場景深度、相機的相對位置自然會影響光流圖,相機位置是已知的(利用視覺慣性測距得到),故可以得到靜態場景的初始深度值,但人物同時也在運動,所以在得到初始深度圖時,人物會產生噪音,利用人體切割模型,將人物區域掩去,剩下的就是靜態的場景深度信息。故模型輸入為 RGB 圖像、人物掩蔽圖,和利用 SfM 對光流圖計算出的掩蔽人物后的深度圖。
圖|深度預測網絡模型的輸入輸出,模型的輸入包括:一張 RGB 圖像(Framet),一張掩去人物的圖像,和一張計算得到的無人物初始深度圖;模型的輸出是 Framet 圖像的深度圖。訓練集的深度圖標注是 MVA 方法計算的深度值。(來源:Tali Dekel,et al./Google AI)
最終模型
研究人員最終采用了沙漏模型(hourglass network)的一個變種作為模型結構,將最近鄰上采樣層變為雙線性上采樣層。沙漏模型一般結構如下,相同顏色的方塊為相同結構的網絡,H是卷積核 3x3 的卷積網絡,所有其他網絡結構是 Inception Module,Inception Module 是一種區別于傳統將卷積層串聯,而將 1x1、3x3以及5x5的卷積層進行并聯的結構。
圖 |沙漏模型(hourgalss network)具體結構。(來源:WeifengChen,et al./University of Michigan)
這個模型可以預測有移動人類場景的深度,細化其他地方的深度,實現移動人物的去除。由于人體有著大概一致的形狀和物理維度,所以可以通過訓練數據來先驗地學習到這些信息。因此,這個深度預估模型可以實現對任意移動人類和任意移動相機情況下的深度預測。
和一些業界現有最佳深度預測模型相比,此模型效果優越,輸出的深度圖十分完美。
圖 |深度預測網絡模型表現對比:上層的 DORN 和 Chen 等人設計的模型都為單圖深度預估方法,下層的 DeMoN 為基于立體視覺的方法(來源:Tali Dekel,et al./Google AI)
該深度預測模型可以在一些視頻中形成3D感知的效果,比如合成散焦。下圖是利用模型將普通視頻合成散焦。
圖 |產生散景視頻特效,視頻由Wind Walk Travel Videos提供。(來源:Tali Dekel,et al./Google AI)
這個模型也可以用于將單目鏡頭視頻變成立體視頻,或者將場景中插入合成的 CG(ComputerGraphics)對象,或者實現一些被遮場景、缺失場景的填充。如下圖,通過利用視頻的其他幀出現的內容,模型實現了相機擺動時演員身后領域的填充。
圖 | 填充被遮擋的視頻。(來源:Tali Dekel, et al./Google AI)
這么強大的模型,這么優秀的思路,在增強現實、3D 渲染等一些計算機視覺領域自然有其用武之地。
-
機器視覺
+關注
關注
162文章
4389瀏覽量
120449 -
AI
+關注
關注
87文章
31155瀏覽量
269491 -
計算機視覺
+關注
關注
8文章
1698瀏覽量
46033
原文標題:計算機視覺領域又一大突破!谷歌 AI 實現對移動鏡頭下移動人物的深度預測
文章出處:【微信號:deeptechchina,微信公眾號:deeptechchina】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論