圖片來源: 

Google

Google發表了最新的電腦視覺研究,現在他們能夠使用深度學習,良好地推測出一般影片中人物與場景深度資訊,而這個深度資訊能夠進一步應用在合成影片中,產生像是散焦影片,或是加入搖擺鏡頭等特效。Google提到,之前雖然有其他研究對影片場景深度進行預測,但這項研究是第一個,能夠處理攝影機以及物體同時移動的影片。

人類的眼睛與大腦可以從2D投影回推3D世界,即便在多個移動物體的場景,也能夠理解物體幾何形狀的變化以及深度排序(Depth Ordering),而過去在電腦視覺發展的過程,人類以2D圖像資料重建3D場景幾何結構,試圖讓電腦也擁有相同的能力,但是在部分的案例上,依然很難取得足夠穩定的成果,Google提到,特別是在場景的物體以及攝影機都在移動的時候,電腦特別難以正確計算深度。

因為基於三角量測的3D重建演算法前提,同一物體至少要被兩個不同的視點觀察到,而要滿足這樣的條件,需要使用攝影機陣列,如果只使用單一攝影機拍攝,則需要且只能移動攝影機,並保持其他場景物體靜止。不過,無論什麼方法,對於場景中移動的物體,現有的演算法皆無法良好的處理。

Google最新研究成果的特別之處,在於他們使用深度學習,讓模型習得人類的姿勢與形狀,由模型填補人物區域的深度值,避免進行直接3D三角量測而導致錯誤的結果,Google表示,這篇論文之所以針對人物研究,是因為人是增強實境與3D影像效果的重要主題。

研究人員使用YouTube上影片,他們找到兩千個以手持攝影機,拍攝人類以各種靜止姿勢,模仿衣服模特兒假人的影片,讓模型進行監督式學習,習得人類各種靜止的自然姿勢,且由於整個場景都是靜止的,只有攝影機在移動,因此Google可以取得包括人物在內,整個場景精確的深度資訊。

Google提到,要以監督式的方法訓練深度模型,需要提供模型場景影片以及精確的深度圖(Depth Map),除了要取得自然的人類行為,還要將真實的場景納入考量,以虛擬建模後渲染,以取得大量訓練資料有其困難度,而使用像是Kinect這類RGBD感測器,通常僅限於室內場景,並且該領域還有其他待解決的3D重建挑戰,因此Google最終考量,還是使用YouTube影片。

計算訓練資料深度資訊由兩個步驟組成,先找出靜態的深度,再算出動態的部分。Google使用運動視差,就能從兩個視點觀測單一靜態物體,以取得深度資訊,Google計算了不同時間的兩個影格像素位移量(2D Optical Flow),而決定該位移量的變數有場景的深度,以及相機的相對位置,而由於相機位置為已知資訊,因此模型就能推算出初始的深度圖。

而初始的深度圖僅包含靜止的部分,為了要處理影片中移動的人物,Google會先將初始深度圖的人物以遮罩遮掉,作為輸入資訊的一部分,完整輸入回歸網路的資料,包含RGB圖像、人物遮罩,以及用遮罩處理過的視差深度圖,而該回歸網路的工作,就是用來修復人物區域的深度值,Google提到,由於人物具有大同小異的形狀以及尺寸,因此網路經過樣本學習後,就能推測出人物的深度資訊。

經過訓練之後的模型,可以處理相機與人物隨意運動的影片,而找出人物和場景的深度值,就能為影片加入3D感知的特效,像是為影片加入景深,合成散焦特效,也能進一步重置為立體的影片,或是將CG物件放到影片中,而結合不同影格的圖像資訊,還能做出搖擺攝影機的功能(下圖)。


Advertisement

更多 iThome相關內容