自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

這項(xiàng)開源視頻摳圖技術(shù)火了!換背景的方法著實(shí)真假難辨

新聞 人工智能
綠幕是影視劇中摳圖、換背景的利器,但如果不在綠幕前拍攝,我們還能完美地轉(zhuǎn)換背景嗎?華盛頓大學(xué)的研究者最近就上傳了這樣一份論文,不在綠幕前拍攝也能完美轉(zhuǎn)換視頻背景,讓整個(gè)世界都變成你的綠幕。

綠幕是影視劇中摳圖、換背景的利器,但如果不在綠幕前拍攝,我們還能完美地轉(zhuǎn)換背景嗎?華盛頓大學(xué)的研究者最近就上傳了這樣一份論文,不在綠幕前拍攝也能完美轉(zhuǎn)換視頻背景,讓整個(gè)世界都變成你的綠幕。

從作者給出的 demo 可以看到,他們的方法效果非常驚艷,即使視頻中的人瘋狂甩頭發(fā)也沒有影響合成效果:

做各種動(dòng)作也沒有「穿幫」:

即使人物和背景不好區(qū)分、手持鏡頭稍微晃動(dòng)時(shí)摳圖效果也不賴:

目前,這篇論文已被 CVPR 2020 大會(huì)接收。

  • 論文鏈接: https://arxiv.org/pdf/2004.00626.pdf

  • GitHub鏈接: https://github.com/senguptaumd/Background-Matting

在論文中,研究者提出了一種創(chuàng)建蒙版(matting)的新方法。多數(shù)現(xiàn)有的蒙版方法都需要以綠幕為背景,或者手工創(chuàng)建一個(gè)三元圖(trimap)。當(dāng)然,也有些自動(dòng)方法不需要三元圖,但效果會(huì)很差。本文提出的這個(gè)蒙版方法也不需要三元圖,但摳圖、換背景效果要更好。

當(dāng)然,達(dá)到這么好的效果是有條件的。除了原始圖像/視頻之外,研究者還要求拍攝者多拍一張不帶人物的背景圖。這一過程要比創(chuàng)建三元圖節(jié)省很多時(shí)間。研究者用對抗損失訓(xùn)練了一個(gè)深度網(wǎng)絡(luò),用來預(yù)測蒙版。他們首先利用帶有 ground truth 的合成數(shù)據(jù)訓(xùn)練了一個(gè)具有監(jiān)督損失的蒙版網(wǎng)絡(luò)。為了在不加標(biāo)記的情況下縮小合成圖像與真實(shí)圖像的差距,他們在第一個(gè)網(wǎng)絡(luò)的指導(dǎo)下訓(xùn)練了另一個(gè)蒙版網(wǎng)絡(luò),并通過一個(gè)判別器來判斷合成圖像的質(zhì)量。研究者在諸多圖像和視頻上測試了他們提出的新方法,發(fā)現(xiàn)這一方法顯著優(yōu)于之前的 SOTA。

在關(guān)于這一論文的討論中,我們可以看到很多潛在的應(yīng)用場景,比如 vlog(云旅游)、視頻會(huì)議等。

對于廣大「煙酒僧」來說,如果導(dǎo)師下次再讓你發(fā)一段在實(shí)驗(yàn)室工(摸)作(魚)的視頻,或許也能用得上呢。

方法

系統(tǒng)的輸入是一張圖像或一個(gè)視頻,圖像/視頻中的人站在靜態(tài)的自然背景前,此外還需輸入一張純背景圖。背景圖的獲取很簡單,只需要讓人物走出取景區(qū)域,然后操作曝光、焦距都已固定的相機(jī)進(jìn)行拍攝(如智能手機(jī)相機(jī))。對于手持相機(jī),研究者假設(shè)相機(jī)的移動(dòng)幅度很小,利用單應(yīng)性(homography)將背景與給定的輸入圖像對齊。從輸入中,研究者還提取了目標(biāo)人物的軟分割。對于視頻輸入,可以添加臨近的幀來輔助生成蒙版。

圖 2:方法概覽。

在 Adobe 數(shù)據(jù)集上進(jìn)行監(jiān)督訓(xùn)練

研究者首先在 Adobe Matting 數(shù)據(jù)集(只用不透明物體的圖像)上訓(xùn)練了一個(gè)深度蒙版網(wǎng)絡(luò)。該網(wǎng)絡(luò)將帶有人物的圖像 I、純背景圖像 B』、人物 S、相鄰幀的時(shí)間堆棧 M(可選)的軟分割作為輸入,輸出則是一個(gè)前景圖 F 和一個(gè)前景蒙版α。為了生成 S,研究者應(yīng)用了人物分割、腐蝕(erode)、膨脹(dilate)以及高斯模糊。在處理視頻時(shí),他們將 M 設(shè)為 I 前后相連的兩幀。設(shè)兩幀間隔為 T,則選取的相鄰幀為 {I−2T , I−T , I+T , I+2T }。這些圖像被轉(zhuǎn)換為灰度圖,以忽略顏色,更加專注于運(yùn)動(dòng)信息。如果輸入中沒有視頻,研究者就將 M 設(shè)定為 {I, I, I, I},這些圖像也轉(zhuǎn)化為灰度圖。將輸入集合表示為 {I,B′,S,M},權(quán)重參數(shù)為θ的網(wǎng)絡(luò)的運(yùn)算可表示為:

研究者提出了一個(gè)語境轉(zhuǎn)換塊(Context Switching block,CS block)網(wǎng)絡(luò),以根據(jù)輸入圖像更有效地結(jié)合所有輸入信息的特征(見上圖 2)。舉個(gè)例子,當(dāng)人物的一部分背景相似時(shí),網(wǎng)絡(luò)應(yīng)該更加關(guān)注該區(qū)域的分割線索。該網(wǎng)絡(luò)有四個(gè)編碼器,分別產(chǎn)生 256 個(gè)通道的特征圖,然后通過應(yīng)用 1x1 卷積、BatchNorm 和 ReLU 將來自 I 的圖像特征分別與 B '、S 和 M 的結(jié)合起來,為這三對中的每一對生成 64 通道特征。最后,他們通過 1x1 卷積、BatchNorm 和 ReLU 將這三組 64 通道特征與最初的 256 通道特征相結(jié)合,得到編碼后的特征并將其傳給網(wǎng)絡(luò)的其他部分,包括殘差塊和解碼器。研究者觀察到,上述 CS 塊架構(gòu)有助于網(wǎng)絡(luò)從 Adobe 數(shù)據(jù)集泛化到實(shí)際數(shù)據(jù)。

研究者在 Adobe 數(shù)據(jù)集上用監(jiān)督損失訓(xùn)練網(wǎng)絡(luò) G_Adobe ≡ G(·; θ_Adobe):

其中,(F, α) = G(X; θ_Adobe),梯度項(xiàng)α 可以鼓勵(lì)模型生成更高銳度的圖像。

在無標(biāo)記真實(shí)數(shù)據(jù)上進(jìn)行對抗訓(xùn)練

雖然研究者提出的 CS 塊在結(jié)合了數(shù)據(jù)增廣后,顯著縮短了真實(shí)圖像與使用 Adobe 數(shù)據(jù)集合成的圖像之間的差距。然而,該方法在處理真實(shí)圖像時(shí)仍然存在以下困難:

  • 在手指、手臂、頭發(fā)附近的背景被復(fù)制到蒙版中;

  • 圖像分割失??;

  • 前景重要部分的顏色與背景顏色相似;

  • 圖像與背景之間沒有對齊。

為解決以上問題,研究者提出用一種自監(jiān)督學(xué)習(xí)方法從未標(biāo)注的真實(shí)數(shù)據(jù)中訓(xùn)練模型。

該方法的主要思路是:蒙版估計(jì)中的主要誤差會(huì)導(dǎo)致在新背景下合成的圖片失真。例如,不好的蒙版可能會(huì)包含一些原圖像背景,當(dāng)在與新背景合成時(shí)會(huì)將之前背景的一部分內(nèi)容復(fù)制到新背景下。于是,研究者訓(xùn)練了一個(gè)對抗判別器來區(qū)分合成圖像與真實(shí)圖像,以此提高蒙版網(wǎng)絡(luò)的性能。

研究者使用 LS-GAN 框架來訓(xùn)練生成器 G_{Real} 與判別器 D,最小化以下目標(biāo)函數(shù)來訓(xùn)練生成器:

其中,(F, α) = G(X; θ_{Real}),\bar{B} 為判別器用于生成合成圖像的給定背景。研究者將λ設(shè)置為 0.05,并在訓(xùn)練過程中每兩個(gè) epoch 將其減少一半,以使判別器起到重要作用。研究者給 alpha 損失函數(shù)設(shè)置了較高的權(quán)重來鼓勵(lì)模型生成更高銳度的圖像。

研究者使用如下目標(biāo)函數(shù)訓(xùn)練判別器:

其中,θ_{Disc} 代表判別器網(wǎng)絡(luò)的權(quán)重,同時(shí) (F, α) = G(X; θ_{Real})。

實(shí)驗(yàn)結(jié)果

研究者將該方法與其他方法進(jìn)行了比較,包括幾種在基準(zhǔn)上表現(xiàn)良好的深度蒙版算法,比如 Bayesian Matting、Context-Aware Matting、Index Matting 和 Late Fusion Matting。

在 Adobe 數(shù)據(jù)集上的結(jié)果

研究者首先使用 2.69 萬個(gè)樣本來訓(xùn)練 GAdobe,在 100 個(gè)隨機(jī)背景上合成 269 個(gè)目標(biāo),加上背景的擾動(dòng)版本作為網(wǎng)絡(luò)輸入,使用 Adam 優(yōu)化器進(jìn)行訓(xùn)練,批處理大小為 4,學(xué)習(xí)率為 1e。

實(shí)驗(yàn)比較了 Adobe Dataset 中 220 種合成素材的結(jié)果,如下圖所示:

表 1:Adobe Dataset 上的 Alpha 蒙版錯(cuò)誤,數(shù)值越低代表性能越好。

真實(shí)數(shù)據(jù)上的結(jié)果

此外,研究者使用智能手機(jī) iPhone 8 在室內(nèi)和室外分別在手持和固定攝像機(jī)的情況下拍攝了視頻。

圖 3:(a-e)是自然背景下手持相機(jī)拍攝視頻所呈現(xiàn)的 alpha 通道和前景,(e)是一個(gè)動(dòng)態(tài)背景下的失敗案例。

除此之外,研究者針對用戶群體進(jìn)行了調(diào)查,結(jié)果包括測試視頻的評(píng)分總和。分?jǐn)?shù)證明本論文所提出的方法優(yōu)于其他方法,尤其是在攝像機(jī)拍攝的場景下,但手持拍攝的視頻中,由于非平面背景導(dǎo)致的視差,還是會(huì)出現(xiàn)一些蒙版錯(cuò)誤。

表 2:在 10 個(gè)真實(shí)世界視頻中的用戶研究結(jié)果(固定攝像機(jī))。

表 3:在 10 個(gè)真實(shí)世界視頻上的用戶研究(手持相機(jī))。

開源代碼使用簡介

環(huán)境配置

將項(xiàng)目克隆到本地:

  1. git clone https://github.com/senguptaumd/Background-Matting.git 

作者提供的代碼需要在 Python 3 環(huán)境下運(yùn)行,并在 Pytorch=1.1.0,Tensorflow=1.14,cuda10.0 版本下測試通過。接下來我們創(chuàng)建 conda 虛擬環(huán)境并安裝依賴項(xiàng):

  1. conda create --name back-matting python=3.6 
  2.  
  3. conda activate back-matting 

確保 CUDA 10.0 為默認(rèn)的 cuda。如果電腦上 CUDA 10.0 安裝在/usr/local/cuda-10.0 目錄下,運(yùn)行如下命令:

  1. export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64 
  2.  
  3. export PATH=$PATH:/usr/local/cuda-10.0/bin 

安裝 PyTorch 和 Tensorflow 以及相關(guān)依賴項(xiàng):

  1. conda install pytorch=1.1.0 torchvision cudatoolkit=10.0 -c pytorch 
  2.  
  3. pip install tensorflow-gpu=1.14.0 
  4.  
  5. pip install -r requirements.txt 

在樣本圖像上運(yùn)行推斷程序

(1)準(zhǔn)備數(shù)據(jù)

為實(shí)現(xiàn)對人物摳圖的綠幕效果,我們需要以下數(shù)據(jù):

  • 帶有人物的圖像(擴(kuò)展名為_img.png)

  • 沒有人物的背景圖像(擴(kuò)展名為_back.png)

  • 需要插入人物的目標(biāo)背景圖像(存放在 data/background 文件夾下)

我們也可使用 sample_data/文件夾進(jìn)行測試,并參考它準(zhǔn)備自己的測試數(shù)據(jù)。

(2)預(yù)訓(xùn)練模型

從作者提供的云盤中下載預(yù)訓(xùn)練模型,并將其放在 Models/目錄下。

  • Pre-processing

  • Segmentation

  • Background Matting needs a segmentation mask for the subject. We use tensorflow version of Deeplabv3+.

(3)預(yù)處理

作者使用 TensorFlow 版的 Deeplabv3+來生成用于人物摳圖的分割 mask:

cd Background-Matting/

git clone https://github.com/tensorflow/models.git

cd models/research/

export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slimcd ../..

python test_segmentation_deeplab.py -i sample_data/input

當(dāng)然,我們也可以使用其他任何一種圖像分割網(wǎng)絡(luò)來替代 Deeplabv3+。將分割后的結(jié)果保存成擴(kuò)展名為_masksDL.png 的文件。

之后,我們需要對圖像進(jìn)行對齊預(yù)處理,即將背景與輸入圖像進(jìn)行對齊。需要注意的是,在拍攝圖像時(shí)我們需要關(guān)閉自動(dòng)對焦與自動(dòng)曝光功能。運(yùn)行 python test_pre_process.py -i sample_data/input 即可對圖像進(jìn)行預(yù)處理。它會(huì)自動(dòng)地對齊背景圖片,并調(diào)節(jié)偏置與增益來匹配輸入圖像。

(4)人像摳圖

運(yùn)行如下代碼即可實(shí)現(xiàn)背景替換。對于使用了三腳架來拍攝的圖片,選擇 -m real-fixed-cam  可得到最好的效果。選擇 -m syn-comp-adobe  會(huì)讓我們使用在 Adobe 合成數(shù)據(jù)集上訓(xùn)練的模型,而不是真實(shí)的數(shù)據(jù)(效果最差)。

  1. python test_background-matting_image.py -m real-hand-held -i sample_data/input/ -o sample 

 

責(zé)任編輯:張燕妮 來源: 機(jī)器之心
相關(guān)推薦

2017-03-28 09:37:48

科技新聞早報(bào)

2009-06-19 08:40:21

Windows 7微軟操作系統(tǒng)

2011-03-11 11:12:52

NoDoWindows Pho

2017-04-01 10:49:31

miui小米MIUI

2011-07-27 14:41:15

2024-04-01 09:39:59

自動(dòng)駕駛數(shù)據(jù)

2022-07-25 09:56:49

AIDeepfake

2023-04-03 10:19:49

AI合成圖像

2024-09-03 13:30:00

2024-03-27 15:44:32

2023-05-05 10:16:39

2023-10-23 12:27:51

AI模型

2011-05-23 14:03:42

掃描儀評(píng)測

2018-01-03 10:00:39

深度學(xué)習(xí)摳圖消除背景

2023-07-07 14:30:49

2021-01-06 20:38:09

VRARMR

2022-02-23 18:36:11

釣魚郵件數(shù)據(jù)泄露網(wǎng)絡(luò)攻擊

2021-03-23 17:27:55

區(qū)塊鏈數(shù)字化轉(zhuǎn)型幣圈

2021-09-02 15:25:54

技術(shù)視頻摳圖

2021-09-23 11:46:27

框架AI開發(fā)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)