虚拟背景背后的技术:直播时各种背景是怎么实现的?
作者|羿川
審校|泰一
虛擬背景依托于人像分割技術(shù),通過(guò)將圖片中的人像分割出來(lái),對(duì)背景圖片進(jìn)行替換實(shí)現(xiàn)。根據(jù)其使用的應(yīng)用場(chǎng)景,大體可以分成以下三類:
直播場(chǎng)景:用于氛圍營(yíng)造,例如教育直播、線上年會(huì)等;
實(shí)時(shí)通訊場(chǎng)景:用于保護(hù)用戶隱私,例如視頻會(huì)議等;
互動(dòng)娛樂(lè)場(chǎng)景:用于增加趣味性,例如影視編輯、抖音人物特效等。
實(shí)現(xiàn)虛擬背景需要用到哪些技術(shù)?
實(shí)時(shí)語(yǔ)義分割
語(yǔ)義分割旨在對(duì)圖像的每個(gè)像素進(jìn)行標(biāo)簽預(yù)測(cè),在自動(dòng)駕駛、場(chǎng)景理解等領(lǐng)域有著廣泛的應(yīng)用。伴隨移動(dòng)互聯(lián)網(wǎng)、5G 等技術(shù)的發(fā)展,如何在算力受限的終端設(shè)備進(jìn)行高分辨率的實(shí)時(shí)語(yǔ)義分割,日益成為迫切的需求。上圖列舉了近年來(lái)的實(shí)時(shí)語(yǔ)義分割方法,本小節(jié)將對(duì)其中的部分方法進(jìn)行介紹。
BiSeNet:Bilateral Segmentation Network for Real-time Semantic Segmentation
先前的實(shí)時(shí)語(yǔ)義分割算法通過(guò)限定輸入大小、減少網(wǎng)絡(luò)通道數(shù)量、舍棄深層網(wǎng)絡(luò)模塊來(lái)滿足實(shí)時(shí)性的需求,但是由于丟棄過(guò)多空間細(xì)節(jié)或者犧牲模型容量,導(dǎo)致分割精度大幅下降。因此,作者提出了一種雙邊分割網(wǎng)絡(luò)(BiseNet,ECCV2018),網(wǎng)絡(luò)結(jié)構(gòu)如上圖所示,該網(wǎng)絡(luò)由空間路徑(Spatial Path)和語(yǔ)義路徑(Context Path)組成,分別用于解決空間信息缺失和感受野縮小的問(wèn)題。
空間路徑通過(guò)通道寬、深度淺的網(wǎng)絡(luò)來(lái)獲取高分辨率特征,保留豐富的空間信息;而語(yǔ)義路徑則是采用通道窄、深度深的輕量骨干模型,通過(guò)快速下采樣和全局平均池化提取語(yǔ)義信息。最后利用特征融合模塊(FFM)對(duì)兩個(gè)路徑的特征進(jìn)行融合,實(shí)現(xiàn)精度和速度之間的平衡。該方法在 cityscapes 測(cè)試集上的 MIOU 為 68.4%。
升級(jí)版 BiseNetV2 延續(xù)了 V1 版本的思想,網(wǎng)絡(luò)結(jié)構(gòu)如上圖所示,V2 版本去除了 V1 空間路徑中耗時(shí)的跳躍鏈接(skip connection),增加雙向聚合層(Aggregation Layer)增加兩個(gè)分支之間的信息聚合,并提出了增強(qiáng)訓(xùn)練策略進(jìn)一步提升分割效果,在 cityscapes 測(cè)試集上的 MIOU 提升到了 72.6%,在使用 1080Ti 的 TensorRT 上 FPS 可以達(dá)到 156。
DFANet:Deep Feature Aggregation for Real-Time Semantic Segmentation
DFANet(CVPR2019)設(shè)計(jì)了子網(wǎng)聚合和子階段聚合兩種特征聚合策略來(lái)提升實(shí)時(shí)語(yǔ)義分割的性能。DFANet 的網(wǎng)絡(luò)結(jié)構(gòu)如上圖所示,包含 3 個(gè)部分:輕量骨干網(wǎng)絡(luò)、子網(wǎng)聚合和子階段聚合模塊。輕量骨干網(wǎng)絡(luò)采用了推理速度較快的 Xception 網(wǎng)絡(luò),在其頂層加入全連接注意力模塊增大高層特征的感受野;子網(wǎng)聚合通過(guò)重用先前骨干網(wǎng)絡(luò)提取的高層特征,將其上采樣后作為下一個(gè)子網(wǎng)的輸入,增大感受野的同時(shí),細(xì)化預(yù)測(cè)結(jié)果;子階段聚合模塊則是利用不同子網(wǎng)相應(yīng)階段的特征融合多尺度結(jié)構(gòu)細(xì)節(jié),增強(qiáng)特征的判別能力。最后通過(guò)輕量的解碼器,融合不同階段輸出的結(jié)果,從粗到細(xì)地生成分割結(jié)果。在 Cityscapes 測(cè)試集上 MIOU 為 71.3%,FPS 為 100。
Semantic Flow for Fast and Accurate Scene Parsing
受到光流的啟發(fā),作者認(rèn)為由同一張圖片生成的任意兩個(gè)不同分辨率的特征圖之間的關(guān)系,也可以用每個(gè)像素的流動(dòng)表示,提出了 SFNet(ECCV2020),網(wǎng)絡(luò)結(jié)構(gòu)如上圖所示。
因此,作者提出了語(yǔ)義流對(duì)齊模塊(Flow Alignment Module (FAM))來(lái)學(xué)習(xí)相鄰階段特征的語(yǔ)義流,然后通過(guò) warping 將包含高層語(yǔ)義的特征廣播到高分辨率的特征上,從而將深層特征的豐富語(yǔ)義高效傳播到淺層的特征,使得特征同時(shí)包含豐富語(yǔ)義和空間信息。作者將 FAM 模塊無(wú)縫插入到 FPN 網(wǎng)絡(luò)中融合相鄰階段的特征,如上圖所示。SFNet 能在實(shí)時(shí)分割的情況下(FPS 為 26),在 Cityscapes 可以達(dá)到 80.4% mIoU。
人像分割
人像分割是語(yǔ)義分割的子任務(wù),目標(biāo)是將圖片中的人像從背景中分割出來(lái),屬于二類分割。相比于語(yǔ)義分割,人像分割相對(duì)簡(jiǎn)單,一般應(yīng)用于手機(jī)端等端側(cè)設(shè)備,目前的研究目標(biāo)大體可以分為兩類,一是通過(guò)改進(jìn)網(wǎng)絡(luò)設(shè)計(jì)輕量高效人像分割模型,二是增強(qiáng)人像分割的細(xì)節(jié)。
Boundary-sensitive Network for Portrait Segmentation
BSN(FG2019)主要關(guān)注于提升人像的邊緣分割效果,主要通過(guò)兩種邊緣損失進(jìn)行實(shí)現(xiàn),分別是針對(duì)每幅人像的邊緣 Individual Kernel 和針對(duì)人像數(shù)據(jù)集計(jì)算的平均邊緣 Global Kernel。Individual Kernel 與之前的方法類似,通過(guò)膨脹、腐蝕操作獲取人像邊緣標(biāo)簽,不同的地方在于,它將邊緣作為區(qū)分于前景、背景的第三種類別,用 soft label 表示,從而將人像分割轉(zhuǎn)變?yōu)?3 類分割問(wèn)題,如上圖。Global Kernel 的標(biāo)簽則是通過(guò)統(tǒng)計(jì)人像數(shù)據(jù)集邊緣平均值得到,通過(guò) Global Kernel 告訴網(wǎng)絡(luò)人像大致所在位置的先驗(yàn)信息。同時(shí),為了提供更多的人像邊緣先驗(yàn),作者增加了區(qū)分長(zhǎng)短發(fā)邊緣的二分類分支,與分割網(wǎng)絡(luò)進(jìn)行多任務(wù)協(xié)同訓(xùn)練。BSN 在 EG1800 人像分割測(cè)試集的 MIOU 為 96.7%,但在速度上并無(wú)優(yōu)勢(shì)。
PortraitNet:Real-time Portrait Segmentation Network for Mobile Device
PortraitNet(Computers & Graphics 2019)基于深度可分離卷積設(shè)計(jì)了一個(gè)輕量的 u-net 結(jié)構(gòu),如上圖所示,為了增加人像邊緣的分割細(xì)節(jié),該方法通過(guò)對(duì)人像標(biāo)簽進(jìn)行膨脹、腐蝕操作生成人像邊緣標(biāo)簽,用于計(jì)算邊緣損失(Boundary loss)。同時(shí),為了增強(qiáng)對(duì)光照的魯棒性,該方法提出了一致性約束損失(Consistency constraint loss),如下圖,通過(guò)約束光照變換前后圖片的人像分割結(jié)果保持一致,增強(qiáng)模型的魯棒性。PortraitNet 模型參數(shù)大小為 2.1M,在 EG1800 人像分割測(cè)試集的 MIOU 為 96.6%。
SINet:Extreme Lightweight Portrait Segmentation Networks with Spatial Squeeze Modules and Information Blocking Decoder
SINet(WACV2020)則側(cè)重于在提升人像分割網(wǎng)絡(luò)的速度,由包含空間壓縮模塊(spatial squeeze module)的編碼器和包含信息屏蔽機(jī)制的解碼器(information blocking scheme)組成,網(wǎng)絡(luò)框架上圖所示。空間壓縮模塊(如下圖)在 shuffleNetV2 模塊的基礎(chǔ)上,在不同路徑上使用不同尺度的池化操作壓縮特征空間分辨率,提取不同感受野的特征來(lái)應(yīng)對(duì)不同尺度的人像,減少計(jì)算延時(shí)。信息屏蔽機(jī)制則是根據(jù)深層低分辨率特征預(yù)測(cè)的人像置信度,在融合淺層高分辨率特征時(shí),屏蔽高置信度區(qū)域,只融合低置信度區(qū)域的淺層特征,避免引入無(wú)關(guān)的噪聲。SINet 在 EG1800 人像分割測(cè)試集的 MIOU 為 95.3%,但模型參數(shù)大小只有 86.9K,和 PortraitNe 相比減少 95.9% 的參數(shù)。
人像摳圖
一張圖像可以簡(jiǎn)單的看成是由兩部分組成,即前景(Foreground)和背景(Background),圖片摳圖,就是將一張給定圖像的前景和背景區(qū)分開來(lái),如上圖所示。由于圖片摳圖是一個(gè)欠約束問(wèn)題,傳統(tǒng)摳圖算法和早期的基于深度學(xué)習(xí)的算法方法,主要通過(guò)輸入額外的語(yǔ)義信息作為約束,最常見的是由前景、背景和不確定區(qū)域組成的 trimap,如下圖所示。摳圖算法的精度受 trimap 的精度影響很大,當(dāng) trimap 較差時(shí),基于 trimap 的算法的預(yù)測(cè)結(jié)果下降嚴(yán)重。trimap 的獲取主要通過(guò)其他算法生成(如語(yǔ)義分割)或人工標(biāo)注生成,但是通過(guò)其他算法生成的 trimap 一般較為粗糙,而人工標(biāo)注精確的 trimap 則費(fèi)時(shí)費(fèi)力。trimap-free 的摳圖算法逐漸進(jìn)入人們的視野,本小節(jié)將主要對(duì)近期的 trimap-free 的人像摳圖算法進(jìn)行介紹。
Background Matting: The World is Your Green Screen
Background Matting(CVPR2020)嘗試通過(guò)引入靜態(tài)的背景信息來(lái)提升人像摳圖的效果,相比于使用人工精細(xì)標(biāo)注的 trimap,獲取前景所在的靜態(tài)背景要相對(duì)容易,該方法的操作流程如上圖所示,首先獲取場(chǎng)景的兩張圖片,一張包含前景,另一張不包含,然后使用深度網(wǎng)絡(luò)預(yù)測(cè) alpha 通道,進(jìn)而進(jìn)行背景合成,因此,這個(gè)方法主要針對(duì)的場(chǎng)景是靜態(tài)背景下只有輕微相機(jī)抖動(dòng)的人像摳圖。
該方法的模型結(jié)構(gòu)如上圖所示,模型處理流程大體如下:給定輸入圖片和背景圖片,首先通過(guò)分割模型(如 deeplab)獲取前景圖片的粗分割結(jié)果,然后同 Context Switching Block 模塊,對(duì)不同的輸入信息的組合進(jìn)行選擇,隨后輸入到解碼器中同時(shí)預(yù)測(cè)前景和 alpha 通道。訓(xùn)練過(guò)程分成兩個(gè)階段,首先在 Adobe 的合成數(shù)據(jù)集上進(jìn)行訓(xùn)練,為了降低合成圖片和真實(shí)圖片的 domain gap 造成的影響,使用 LS-GAN 在無(wú)標(biāo)簽的真實(shí)圖片和背景圖片上進(jìn)行第二階段的對(duì)抗訓(xùn)練,通過(guò)拉近預(yù)測(cè)的 alpha 通道合成的圖片和真實(shí)圖片的距離,提升摳圖的效果。當(dāng)背景變換較大或與前景差異較大時(shí),該方法的效果不佳。
Boosting Semantic Human Matting with Coarse Annotations
這篇文章(CVPR2020)認(rèn)為影響人像摳圖算法效果的原因主要來(lái)自兩個(gè)方面,一是 trimap 的準(zhǔn)確性,二是獲取人像精確標(biāo)注的成本高、效率低,導(dǎo)致人像摳圖數(shù)據(jù)集圖片數(shù)量較少,因此這篇文章提出了一種只需部分精細(xì)標(biāo)注數(shù)據(jù)(上圖 (b))結(jié)合大量粗標(biāo)數(shù)據(jù)(上圖 (a))提升人像摳圖效果的方法。
該方法的網(wǎng)絡(luò)結(jié)構(gòu)如上圖所示,由 3 個(gè)模塊組成:MPN,粗 mask 預(yù)測(cè)網(wǎng)絡(luò);QUN:mask 質(zhì)量統(tǒng)一網(wǎng)絡(luò);MRN,matting 細(xì)化網(wǎng)絡(luò),coarse-to-fine 地逐步優(yōu)化分割的結(jié)果。訓(xùn)練時(shí),首先使用粗標(biāo)數(shù)據(jù)和精標(biāo)數(shù)據(jù)同時(shí)訓(xùn)練 MPN,獲取粗 mask,然后使用精標(biāo)數(shù)據(jù)訓(xùn)練 MRN,細(xì)化分割結(jié)果。但是文章作者發(fā)現(xiàn),由于粗標(biāo)數(shù)據(jù)和精標(biāo)數(shù)據(jù)的標(biāo)注差異,導(dǎo)致兩者 MRN 預(yù)測(cè)預(yù)期存在較大的 GAP,從而影響性能,因此,作者提出了 QUN,對(duì)粗 mask 的預(yù)測(cè)結(jié)果進(jìn)行質(zhì)量統(tǒng)一。
實(shí)驗(yàn)效果如上圖所示,相比于只使用精標(biāo)數(shù)據(jù)訓(xùn)練,結(jié)合粗標(biāo)數(shù)據(jù)對(duì)于網(wǎng)絡(luò)語(yǔ)義信息的提取有較大的幫助。同時(shí),結(jié)合 QUN 和 MRN,可以對(duì)已有數(shù)據(jù)集的粗標(biāo)數(shù)據(jù)進(jìn)行細(xì)化,降低精細(xì)標(biāo)注的獲取成本。
Is a Green Screen Really Necessary for Real-Time Human Matting?
現(xiàn)有的人像摳圖算法,或需要額外輸入(如 trimap、背景), 或需要使用多個(gè)模型,無(wú)論是獲取額外輸入的開銷還是使用多個(gè)模型的計(jì)算開銷,使得現(xiàn)有方法無(wú)法實(shí)現(xiàn)人像摳圖的實(shí)時(shí)應(yīng)用。因此,文章作者提出了一種輕量的人像摳圖算法,只使用單張輸入圖片即可實(shí)現(xiàn)實(shí)時(shí)人像摳圖效果,在 1080Ti 上處理 512x512 大小的圖片,可以到達(dá) 63FPS 的效果。
如上圖所示,本文的方法可以分為 3 個(gè)部分,首先是在標(biāo)注數(shù)據(jù)上通過(guò)多任務(wù)監(jiān)督學(xué)習(xí)的方式訓(xùn)練人像摳圖網(wǎng)絡(luò),然后通過(guò) SOC 自監(jiān)督策略在無(wú)標(biāo)注的真實(shí)數(shù)據(jù)上進(jìn)行微調(diào),增強(qiáng)模型泛化能力;在測(cè)試時(shí),使用 OFD 策略提升預(yù)測(cè)結(jié)果的平滑性,下面會(huì)對(duì)這 3 個(gè)部分進(jìn)行詳細(xì)介紹。
MODNet 的網(wǎng)絡(luò)結(jié)構(gòu)如上圖所示,作者受到基于 trimap 的方法的啟發(fā),將 trimap-free 的人像摳圖任務(wù)分解成了 3 個(gè)相關(guān)連的子任務(wù)進(jìn)行協(xié)同訓(xùn)練,分別是語(yǔ)義預(yù)測(cè)、細(xì)節(jié)預(yù)測(cè)和語(yǔ)義 - 細(xì)節(jié)融合。通過(guò)低分辨率的語(yǔ)義分支捕捉人像主體,通過(guò)高分辨率的細(xì)節(jié)分支提取人像邊緣細(xì)節(jié),最后通過(guò)融合語(yǔ)義、細(xì)節(jié)得到最終的人像分割結(jié)果。
當(dāng)應(yīng)用到新場(chǎng)景的數(shù)據(jù)時(shí),3 個(gè)分支產(chǎn)生的結(jié)果可能會(huì)有差異,因此作者提出了利用無(wú)標(biāo)注的數(shù)據(jù)的 SOC 自監(jiān)督策略,通過(guò)讓語(yǔ)義 - 細(xì)節(jié)融合分支預(yù)測(cè)結(jié)果在語(yǔ)義上和語(yǔ)義分支預(yù)測(cè)結(jié)果保持一致,在細(xì)節(jié)結(jié)果上和細(xì)節(jié)分支預(yù)測(cè)結(jié)果保持一致,增強(qiáng)不同子任務(wù)之間預(yù)測(cè)結(jié)果一致性約束,從而增強(qiáng)模型的泛化能力。
直接對(duì)視頻的每幀圖片進(jìn)行單獨(dú)預(yù)測(cè)會(huì)導(dǎo)致相鄰幀預(yù)測(cè)結(jié)果存在時(shí)序上的不一致,從而出現(xiàn)幀間跳閃的現(xiàn)象。作者發(fā)現(xiàn),跳閃的像素點(diǎn)是可能可以通過(guò)相鄰幀的預(yù)測(cè)結(jié)果進(jìn)行糾正,如上圖所示。因此,作者提出,當(dāng)前一幀和后一幀的像素預(yù)測(cè)結(jié)果小于一定閾值,同時(shí)當(dāng)前幀預(yù)測(cè)結(jié)果和前后幀的預(yù)測(cè)結(jié)果大于一定閾值時(shí),則可以用前后幀的預(yù)測(cè)結(jié)果的平均作為當(dāng)前幀的預(yù)測(cè)結(jié)果,從而避免不同幀預(yù)測(cè)結(jié)果時(shí)序上的不一定導(dǎo)致的幀間跳閃現(xiàn)象。
Real-Time High-Resolution Background Matting
現(xiàn)有的人像摳圖算法雖然可以生成比較精細(xì)的摳圖結(jié)果,卻無(wú)法做到實(shí)時(shí)地處理高分辨率的圖片,例如 Background Matting 在 GPU 2080Ti 上每秒只能處理約 8 張 512x512 大小的圖片,這無(wú)法滿足實(shí)時(shí)應(yīng)用的需求。文章作者發(fā)現(xiàn),對(duì)于高分辨率的圖片,只有少部分區(qū)域是需要精細(xì)分割(如上圖所示),大部分區(qū)域只需粗分割即可,如果讓網(wǎng)絡(luò)只對(duì)需要精細(xì)分割的少部分區(qū)域進(jìn)行進(jìn)一步的分割優(yōu)化,就可以節(jié)省大量的計(jì)算。作者借鑒了 PointRend 的思路,基于 Background Matting,提出了一種實(shí)時(shí)處理高分辨率圖片的雙階段人像摳圖網(wǎng)絡(luò),在 2080Ti 上處理高清圖片(分辨率為 1920x1080)可以達(dá)到 60FPS,對(duì)于 4K 圖片 (分辨率為 3840x2160),可以達(dá)到 30FPS。
本文提出的雙階段網(wǎng)絡(luò)框架如上圖所示,由基礎(chǔ)網(wǎng)絡(luò)和細(xì)化網(wǎng)絡(luò)組成。第一階段的基礎(chǔ)網(wǎng)絡(luò)采用了類似 DeeplabV3+ 的 encoder-decoder 結(jié)構(gòu),用于生成人像粗分割結(jié)果、前景殘差、錯(cuò)誤預(yù)測(cè)圖和包含全局語(yǔ)義的隱藏特征。第二階段的細(xì)化網(wǎng)絡(luò),利用第一階段產(chǎn)生的錯(cuò)誤預(yù)測(cè)圖,挑選出需要進(jìn)行分割細(xì)化的前 k 個(gè)圖片塊,進(jìn)行進(jìn)一步分割優(yōu)化,最后將細(xì)化后的分割結(jié)果和直接上采樣放大的粗分割結(jié)果進(jìn)行融合,得到最終的人像分割結(jié)果。和其他方法的對(duì)比,本文方法在速度和模型大小上均有明顯的提升,如下圖所示。
視頻人像分割
視頻目標(biāo)分割(Video Object Segmentation,簡(jiǎn)稱為 VOS),旨在從視頻每一幀獲得興趣目標(biāo)的像素級(jí)分割結(jié)果。相比于單幀圖像分割,視頻分割算法主要依托于多幀間的連續(xù)性,從而實(shí)現(xiàn)分割結(jié)果的高平滑和高精度。目前,VOS 任務(wù)可以分為半監(jiān)督(seme-supervised,one-shot)分割與無(wú)監(jiān)督(unsupervised,zero-shot)兩類。前者在運(yùn)行時(shí)需要輸入原始視頻和視頻首幀分割結(jié)果,而后者只需輸入原始視頻。現(xiàn)有半監(jiān)督 VOS 算法很難達(dá)到精確且實(shí)時(shí)的分割,研究重心一般側(cè)重于兩者之一,現(xiàn)有 VOS 算法效果 [12] 如下圖所示。
虛擬背景技術(shù)在視頻會(huì)議中的應(yīng)用
視頻會(huì)議作為日常辦公中高頻場(chǎng)景,伴隨著居家辦公的火熱,對(duì)用戶隱私的保護(hù)提出了更高的需求,視頻會(huì)議虛擬背景功能踏浪而來(lái)。相比于云端的高性能服務(wù)器,個(gè)人場(chǎng)景的視頻會(huì)議載體主要是各色的筆記本電腦,不同型號(hào)筆記本電腦性能參差不齊,而視頻會(huì)議對(duì)實(shí)時(shí)性要求較高,會(huì)議背景不一,這對(duì)端側(cè)算法的性能提出了更嚴(yán)苛的需求。
實(shí)時(shí)性需求決定了端側(cè)人像分割模型要做到足夠輕量化,而小模型對(duì)一些困難場(chǎng)景(例如人像邊緣與背景相似等)的處理能力較弱,同時(shí)對(duì)于數(shù)據(jù)比較敏感,這易導(dǎo)致背景錯(cuò)分為人像、人像邊緣模糊等,針對(duì)這些問(wèn)題,我們分別在算法和數(shù)據(jù)工程上,進(jìn)行了一些針對(duì)性地調(diào)整和優(yōu)化
算法探索
1) 優(yōu)化邊緣:
第一種優(yōu)化邊緣的方法構(gòu)造邊緣損失,參考 MODNet,通過(guò)對(duì)人像標(biāo)簽進(jìn)行膨脹腐蝕操作,得到人像邊緣區(qū)域標(biāo)簽,通過(guò)對(duì)邊緣區(qū)域計(jì)算損失來(lái)增強(qiáng)網(wǎng)絡(luò)對(duì)邊緣結(jié)構(gòu)的提取能力。
第二種優(yōu)化邊緣方法是使用 OHEM 損失,相比于人像主體區(qū)域,人像邊緣區(qū)域往往容易錯(cuò)誤分類,在訓(xùn)練時(shí),通過(guò)對(duì)人像分割的預(yù)測(cè)結(jié)果進(jìn)行在線難例挖掘,可以隱性地優(yōu)化人像邊緣區(qū)域。
2) 無(wú)監(jiān)督學(xué)習(xí):
第一種無(wú)監(jiān)督學(xué)習(xí)方法通過(guò)數(shù)據(jù)增強(qiáng)實(shí)現(xiàn),參考 PortraitNet,對(duì)于給定的一張輸入圖片圖片,對(duì)其顏色、高斯模糊和噪聲組成的數(shù)據(jù)增強(qiáng)處理后得到變換后的圖片圖片,雖然圖片相對(duì)圖片在外觀上發(fā)生了變化,但變化前后兩張圖片對(duì)應(yīng)的前景人像是一樣的,因此,可以通過(guò) KL Loss 約束數(shù)據(jù)增強(qiáng)前后圖片預(yù)測(cè)結(jié)果保持一致,從而增強(qiáng)網(wǎng)絡(luò)對(duì)光照、模糊等外界條件變化的魯棒性。
第二種無(wú)監(jiān)督學(xué)習(xí)方法是通過(guò)利用無(wú)標(biāo)簽的真實(shí)圖片和背景圖片進(jìn)行對(duì)抗訓(xùn)練實(shí)現(xiàn),參考 Background Matting,在模型訓(xùn)練時(shí),通過(guò)引入額外的鑒別器網(wǎng)絡(luò),判斷輸入鑒別器的圖片是由網(wǎng)絡(luò)預(yù)測(cè)的人像前景和隨機(jī)背景合成的,還是真實(shí)的圖片,減少人像預(yù)測(cè)結(jié)果中存在的 artifact。
3) 多任務(wù)學(xué)習(xí)
多任務(wù)學(xué)習(xí)通常是指增加與原任務(wù)相關(guān)的子任務(wù)進(jìn)行協(xié)同訓(xùn)練,提升網(wǎng)絡(luò)在原任務(wù)上的效果,例如 Mask-RCNN 中檢測(cè)和分割任務(wù)。人像分割的難點(diǎn)之一是當(dāng)視頻中的人像做出一定動(dòng)作時(shí)(例如揮手等),對(duì)于手臂等部位的分割效果較差。為了更好的捕捉人體的信息,我們嘗試在模型訓(xùn)練引入人體姿勢(shì)信息進(jìn)行多任務(wù)訓(xùn)練,參考 Pose2Seg,通過(guò)解析人像姿勢(shì)來(lái)更好地的捕捉肢體動(dòng)作信息。在測(cè)試時(shí),只需使用訓(xùn)練的人像分割分支進(jìn)行推理,能在提升分割的準(zhǔn)確率的同時(shí),兼顧了性能。
4) 知識(shí)蒸餾
知識(shí)蒸餾被廣泛的用于模型壓縮和遷移學(xué)習(xí)中,通常采用 teacher-student 學(xué)習(xí)策略。首先事先訓(xùn)練性能較強(qiáng)的 teacher 模型(例如 DeeplabV3+),在訓(xùn)練 student 模型時(shí),利用 teacher 模型生成的軟標(biāo)簽作為監(jiān)督信息,指導(dǎo) student 模型訓(xùn)練。相比于原始的 one-hot 標(biāo)簽,teacher 模型預(yù)測(cè)的軟標(biāo)簽包含了不同類別數(shù)據(jù)結(jié)構(gòu)相似性的知識(shí),使得 student 模型訓(xùn)練更易收斂。
5) 模型輕量化
針對(duì)業(yè)務(wù)場(chǎng)景的需要,我們選用了基于 mobilenet-V2 網(wǎng)絡(luò)的 U-net 結(jié)構(gòu),根據(jù) mnn 算子的特點(diǎn),對(duì)模型進(jìn)行優(yōu)化裁剪,以滿足實(shí)際業(yè)務(wù)性能需求。
6) 策略優(yōu)化
在實(shí)際開會(huì)場(chǎng)景中,不少參會(huì)人員在很多時(shí)候是保持不動(dòng)的。在這種狀態(tài)下,用實(shí)時(shí)幀率去做人像分割,存在一定的浪費(fèi)資源。針對(duì)這種場(chǎng)景,我們?cè)O(shè)計(jì)了一種邊緣位置幀差法,基于相鄰幀人像邊緣區(qū)域的變化,對(duì)人像是否移動(dòng)進(jìn)行準(zhǔn)確判斷,同時(shí)該方法能夠有效去除人物說(shuō)話、表情變化、外部區(qū)域變化等干擾。邊緣位置幀差法可以有效降低參會(huì)人員靜止時(shí)人像分割算法的頻率,從而大大降低了能耗。
數(shù)據(jù)工程
人像分割對(duì)于數(shù)據(jù)較為依賴,現(xiàn)有的開源數(shù)據(jù)集與會(huì)議場(chǎng)景有較大差異,而分割數(shù)據(jù)的標(biāo)注獲取費(fèi)時(shí)費(fèi)力,為了降低數(shù)據(jù)獲取成本、提升已有數(shù)據(jù)的利用率,我們嘗試在數(shù)據(jù)合成、自動(dòng)化標(biāo)注上做了一些嘗試。
1) 數(shù)據(jù)合成
在數(shù)據(jù)合成時(shí),我們利用已有模型篩選出部分較好的子數(shù)據(jù)集,利用平移、旋轉(zhuǎn)、薄板變換等方式,增加人像姿態(tài)和動(dòng)作的多樣性,然后與會(huì)議場(chǎng)景的不同背景進(jìn)行融合,擴(kuò)充訓(xùn)練數(shù)據(jù)。在數(shù)據(jù)變換時(shí),若人像標(biāo)簽與邊界相交,則利用坐標(biāo)關(guān)系,在合成新圖片時(shí),保持標(biāo)簽和邊界的原有相交關(guān)系,避免人像與邊界分離、浮空等現(xiàn)象,讓生成的圖片更加真實(shí)。
2) 自動(dòng)化標(biāo)注、清洗
通過(guò)利用現(xiàn)有多種開源的檢測(cè)、分割、matting 算法,設(shè)計(jì)了一套高效的自動(dòng)化標(biāo)注、清洗工具,進(jìn)行數(shù)據(jù)的快速自動(dòng)化打標(biāo)和清洗質(zhì)檢,降低數(shù)據(jù)標(biāo)注獲取成本(標(biāo)注有效數(shù)據(jù) 5W+)。
算法成果
目前該算法已在內(nèi)部上線使用。
1) 技術(shù)指標(biāo)
2) 效果展示
照片換背景場(chǎng)景
除了實(shí)時(shí)通訊場(chǎng)景,我們利用人像分割算法在互動(dòng)娛樂(lè)場(chǎng)景也進(jìn)行了一些嘗試,例如照片換背景,效果如下圖所示。
參考文獻(xiàn)
原文鏈接:https://developer.aliyun.com/article/785934?
版權(quán)聲明:本文內(nèi)容由阿里云實(shí)名注冊(cè)用戶自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,阿里云開發(fā)者社區(qū)不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。具體規(guī)則請(qǐng)查看《阿里云開發(fā)者社區(qū)用戶服務(wù)協(xié)議》和《阿里云開發(fā)者社區(qū)知識(shí)產(chǎn)權(quán)保護(hù)指引》。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,填寫侵權(quán)投訴表單進(jìn)行舉報(bào),一經(jīng)查實(shí),本社區(qū)將立刻刪除涉嫌侵權(quán)內(nèi)容。總結(jié)
以上是生活随笔為你收集整理的虚拟背景背后的技术:直播时各种背景是怎么实现的?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 浅谈如何成为技术一号位
- 下一篇: 1 分钟 Serverless 部署掌上