如何在視頻會議中及時視頻人物消失及修補

Topic: Real-Time Person removal

Editor:  George Wu

Resources:  Disappearing People post    Disappearing people github   

DFC-Net post   DFC-Net github    DFC-Net paper

Label:  person removal, TensorFlow.js, Optical Flow

640

大意

最近大家都在Work at home, 想像如果同事突然消失在鏡頭前面會有甚麼感覺? 這就是在Google任職的Jason Mayes做的side project ”Disappearing People Project” 可以將人從視頻中消除掉, 原理主要是基於TensorFlow.js現成的模型加上一些巧妙設計. 不過其實在之前就有一些相關研究可以更精確的將視頻人物消除或修復. 在這裡介紹商湯在CVPR 2019的 Deep Flow-guided video inpainting. 原理上就是利用光流法(Optical Flow)識別物體, 並創建一個DFC-Net根據optical flow進行遮擋及修復視頻, 將人物或物體消除並很自然的’腦補’. 這些Projects 目前也都開源了.

Disappearing People Project

其原理其實很簡單做的事情就是, 用TensorFlow.js的身體分割模型檢測出包含人體的bounding box區域, 不須重新訓練而是用現成的模型即可. 這個神經模型的結構是MobileNet, 也可以用更複雜的替代提升準確率.Person removal其實就是在視頻播放時的bounding box如果包含人體, 則用沒有人體的box替代. 如果你仔細看Jason的示範案例, 就可以明顯看到bounding box嵌合的痕跡(可轉到影片0:07或0:26). 而Jason消除這個前景背景嵌合的方式就是用一個scale參數控制, 就是放大縮小這塊bounding box區域.

1

DFC-Net

如前面提到在Jason的簡單Person removal會有些如前景背景嵌合的問題. 其實Person removal不是一項新技術也不少人在做. 在這裡以商湯在CVPR 2019的 Deep Flow-guided video inpainting微例來介紹這技術要怎麼做. 光流法(Optical Flow)是在影片tracking或registration中常用到的技術. optical flow可以理解成每個pixel在這一秒及下一秒間的位移向量. 如果沒有移動或是背景應該就是0. 所以他們的Flow-guided video inpainting的第一步就是計算optical flow, 然後找出要被替代(包含人體)的區域, 然後由訓練過的DFC-Net把這塊區域填補起來. DFC-Net包含三個不同尺度的神經網路, 訓練的方式是隨機遮擋, 然後以完整的影片進行訓練. 並結合傳統的Deepfill網路對效果不好的區域進行補強.

1

 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s