王 欣,王美麗,2,3,邊黨偉
1.西北農(nóng)林科技大學(xué) 信息工程學(xué)院,陜西 咸陽(yáng) 712100
2.農(nóng)業(yè)農(nóng)村部農(nóng)業(yè)物聯(lián)網(wǎng)重點(diǎn)實(shí)驗(yàn)室,陜西 咸陽(yáng) 712100
3.陜西省農(nóng)業(yè)信息與智能服務(wù)重點(diǎn)實(shí)驗(yàn)室,陜西 咸陽(yáng) 712100
4.西北機(jī)電工程研究所,陜西 咸陽(yáng) 712100
圖像分割是計(jì)算機(jī)視覺(jué)領(lǐng)域的重要熱門之一,其在醫(yī)學(xué)、農(nóng)業(yè)、軍事等諸多領(lǐng)域都得到了廣泛的關(guān)注。圖像分割是根據(jù)圖像的內(nèi)在性規(guī)則,如像素點(diǎn)之間的明暗關(guān)系、圖像紋理、像素灰度級(jí)等來(lái)將圖像劃分為若干個(gè)子圖像區(qū)塊的過(guò)程,以使得每個(gè)區(qū)塊具有特定特征,與其他區(qū)塊形成顯著對(duì)比。
人像分割是圖像分割的一項(xiàng)重要研究?jī)?nèi)容,人像分割在自動(dòng)駕駛、行人檢測(cè)、智能搜救、醫(yī)學(xué)影像等領(lǐng)域應(yīng)用十分廣泛并發(fā)揮了極其重要的作用。人像分割方法分為傳統(tǒng)的人像分割方法[1]和基于深度學(xué)習(xí)的人像分割方法[2]。傳統(tǒng)的人像分割方法主要利用了視覺(jué)層的圖像低級(jí)語(yǔ)義信息,如圖像的顏色、形狀、紋理等信息作為分割依據(jù),典型方法有基于閾值的分割方法、基于邊緣的分割方法等。基于閾值的分割方法[3-5]是依據(jù)計(jì)算得到的灰度閾值,按照?qǐng)D像像素灰度值與閾值的大小關(guān)系,將像素點(diǎn)進(jìn)行分類,然而若人物和背景的像素值差異并不大,邊界信息往往容易丟失?;谶吘壍姆指罘椒╗6]利用不同的微分算子[7]來(lái)進(jìn)行邊緣檢測(cè),但噪聲對(duì)算子影響較大,所以基于邊緣的分割方法只適合低噪聲且構(gòu)圖簡(jiǎn)單的圖像。真實(shí)場(chǎng)景拍攝的人像通常有著龐雜的背景信息,所以該算法一般不適用于人像分割[8]。
由于傳統(tǒng)方法存在分割噪點(diǎn)、邊緣粗糙等問(wèn)題,難以勝任精細(xì)分割的任務(wù),研究人員提出了基于深度學(xué)習(xí)的人像語(yǔ)義分割技術(shù)。該人像分割技術(shù)主要利用了深度學(xué)習(xí)的相關(guān)理論,通過(guò)卷積神經(jīng)網(wǎng)絡(luò)從大量已標(biāo)注的人像數(shù)據(jù)中提取出圖像特征并且挖掘出每個(gè)像素的語(yǔ)義信息進(jìn)行分類。何冀軍等[9]提出了一種用于人像提取及半身像合成的生成對(duì)抗網(wǎng)絡(luò)算法,利用生成對(duì)抗網(wǎng)絡(luò)進(jìn)行標(biāo)準(zhǔn)的人像證件照合成,該算法具有良好的適應(yīng)性。Shen等[10]設(shè)計(jì)了一種基于全卷積神經(jīng)網(wǎng)絡(luò)的人像分割算法,能夠有效地分離人物與背景,并且可以較好地處理人物頭發(fā)邊緣,取得了良好的分割效果。但是以上分割網(wǎng)絡(luò)往往為了追求分割效率以及精度需要龐大的計(jì)算資源和較強(qiáng)的硬件設(shè)備,不利于網(wǎng)絡(luò)的遷移使用。Sandler等[11]設(shè)計(jì)的輕量級(jí)網(wǎng)絡(luò)MobileNetv2解決了上述問(wèn)題,MobileNetv2利用Linear Bottleneck和Inverted Residuals既可以提取到圖像足夠多的信息又能夠提升整體的計(jì)算速度,使得模型在保持輕量級(jí)時(shí)速度與精度也能得到保證。另外,張航等[12]在進(jìn)行嬰兒腦部MR圖像分割時(shí)發(fā)現(xiàn),分別使用FCN、2D FCN、3D FCN比U型網(wǎng)絡(luò)分割效果差,證明了U型網(wǎng)絡(luò)結(jié)構(gòu)相較于普通全卷積結(jié)構(gòu)來(lái)說(shuō),具備更好的特征學(xué)習(xí)能力以及復(fù)原圖像細(xì)節(jié)的能力。因此,本文引入U(xiǎn)net網(wǎng)絡(luò)的encoder-decoder(編碼器-解碼器)結(jié)構(gòu)[13]并與輕量級(jí)MobileNetv2網(wǎng)絡(luò)相結(jié)合以獲得更好的算法魯棒性、更強(qiáng)的泛化能力和更精細(xì)的人像分割效果。為了解決深度卷積神經(jīng)網(wǎng)絡(luò)難以訓(xùn)練的難題,Ioffe等[14]在2015年提出了BN層(batchnormalization layer),BN層用于減少內(nèi)部協(xié)變量漂移(ICS)現(xiàn)象,該現(xiàn)象指的是層層疊加的神經(jīng)網(wǎng)絡(luò),在低層向高層傳遞和更新參數(shù)時(shí),高層參數(shù)變化十分劇烈,導(dǎo)致訓(xùn)練者必須十分謹(jǐn)慎地設(shè)定初始化權(quán)重、學(xué)習(xí)率等。另外,Hinton等[15]提出Dropout層可以使模型具有更好的泛化能力,不過(guò)分依賴局部特征,能夠有效防止過(guò)擬合的出現(xiàn)。卷積核通常是在局部感受野上聚合多尺度空間信息以及特征通道信息,然而任一通道都無(wú)法利用上下文信息并從全局信息入手學(xué)習(xí)到各個(gè)特征通道的重要程度。Hu等[16]提出一種基于通道的注意力機(jī)制模塊SE block,該模塊關(guān)注特征通道之間的內(nèi)在聯(lián)系,顯式地表達(dá)各個(gè)特征通道的重要影響程度,針對(duì)訓(xùn)練者提出的不同任務(wù)進(jìn)行加強(qiáng)或抑制不同的通道,有助于從全局角度學(xué)習(xí)有效特征。此外人像由半人體及其背景組成,適合二分類處理方式。原始Unet使用的分類交叉熵?fù)p失函數(shù)和輸出層激活函數(shù)softmax均適合多分類模式,會(huì)給模型訓(xùn)練造成不必要的算力開(kāi)銷,不利于模型最終對(duì)像素點(diǎn)的分類結(jié)果。在實(shí)際分割時(shí),由于樣本類別分布不均衡造成目標(biāo)人物周圍像素點(diǎn)粘連的情況。Dice loss[17]廣泛應(yīng)用于醫(yī)學(xué)影像分割,能夠有效抑制目標(biāo)像素以及背景像素的類別不平衡問(wèn)題。但是若單獨(dú)使用Dice loss則會(huì)由于其數(shù)學(xué)形式,造成反向傳播時(shí)梯度形式不優(yōu)導(dǎo)致訓(xùn)練的穩(wěn)定性極低的問(wèn)題。BCE loss(binary cross entropy loss)[18]具有極優(yōu)的梯度形式,彌補(bǔ)了Dice loss的不足,使用Dice loss與BCE loss組成的混合損失函數(shù)[19]使得模型能更好地優(yōu)化,解決了上述問(wèn)題。
本文在保留U型編碼器-解碼器結(jié)構(gòu)的基礎(chǔ)上,通過(guò)將MobileNetv2作為編碼器部分用于特征提取,使用特征拼接連接上采樣與下采樣,增加注意力機(jī)制,使用混合損失函數(shù)等方式提出一種融合MobileNetv2和注意力機(jī)制的輕量級(jí)人像分割算法對(duì)人像進(jìn)行精細(xì)分割,該模型同時(shí)支持在安卓平臺(tái)上使用。
傳統(tǒng)Unet網(wǎng)絡(luò)是由傳統(tǒng)FCN網(wǎng)絡(luò)變化而來(lái)的典型編碼器-解碼器類的U型網(wǎng)絡(luò)結(jié)構(gòu),Unet可以在數(shù)據(jù)集較小的情況下,對(duì)目標(biāo)進(jìn)行有效的分離。傳統(tǒng)Unet網(wǎng)絡(luò)[20]結(jié)構(gòu)如圖1所示。該網(wǎng)絡(luò)有5層,在編碼時(shí)經(jīng)歷4次下采樣,每次下采樣都要經(jīng)過(guò)3×3卷積,再經(jīng)過(guò)2×2池化到下一次下采樣;經(jīng)過(guò)中間層后,進(jìn)入解碼,經(jīng)過(guò)4次上采樣輸出分割結(jié)果,每次上采樣都要經(jīng)過(guò)特征圖融合和3×3卷積,再經(jīng)過(guò)反卷積-卷積到下一次的上采樣,最終形成了U型結(jié)構(gòu)。Unet采用分類交叉熵?fù)p失函數(shù)+輸出層激活函數(shù)softmax的組合形式,有利于多分類情況的圖像分割。
圖1 原始Unet模型示意圖Fig.1 Figure of original Unet
本文在Unet網(wǎng)絡(luò)[20]編碼器-解碼器類的U型網(wǎng)絡(luò)結(jié)構(gòu)的啟發(fā)下構(gòu)建輕量級(jí)的人像分割網(wǎng)絡(luò),以獲得更高的人像分割精度和良好的人像分割效果。
詳細(xì)分割流程圖,見(jiàn)圖2,本文算法以人像半身圖作為輸入,隨后進(jìn)行圖片預(yù)處理,其中包括數(shù)據(jù)增強(qiáng)、尺寸縮放和歸一化處理,最終輸入模型并輸出該人像圖片對(duì)應(yīng)的分割掩膜。
圖2 本文算法流程示意圖Fig.2 Flow chart of proposed algorithm
本文在保留U型編碼器-解碼器結(jié)構(gòu)的基礎(chǔ)上,將輕量級(jí)MobileNetv2網(wǎng)絡(luò)作為U型結(jié)構(gòu)的編碼器部分;MobileNetv2網(wǎng)絡(luò)具備極強(qiáng)的特征提取能力,沒(méi)必要在中間層使用卷積層進(jìn)行特征傳遞與提取,取消中間層結(jié)構(gòu);解碼器部分有四次特征拼接,每次特征拼接后都經(jīng)過(guò)反卷積-卷積-注意力機(jī)制到下一次上采樣。特征拼接增加了相關(guān)語(yǔ)義特征信息的提取,另外使用注意力機(jī)制利用全局信息選擇性的增強(qiáng)有益特征的學(xué)習(xí),有利于圖像的還原過(guò)程;針對(duì)目標(biāo)像素點(diǎn)存在樣本不均衡導(dǎo)致難以進(jìn)行分類的問(wèn)題,引入混合損失函數(shù)來(lái)更好的適應(yīng)訓(xùn)練集的訓(xùn)練過(guò)程。本文設(shè)計(jì)的人像分割算法網(wǎng)絡(luò)結(jié)構(gòu)圖具體如圖3所示。
圖3 本文算法網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.3 Structure figure of proposed algorithm
原始Unet網(wǎng)絡(luò)層數(shù)是5,最大特征融合維度數(shù)是1 024,模型總參數(shù)量為31.38 MB,體量過(guò)大。具體模型參數(shù)見(jiàn)表1。為了降低模型體量使其具有可移植性,便于后期移植到移動(dòng)端(移動(dòng)端使用.h5文件轉(zhuǎn)換后的.tflite模型文件),在保留U型結(jié)構(gòu)的基礎(chǔ)和保證模型精度與速度的情況下盡量減少模型的體量。本文將MobileNetv2作為編碼器部分的骨干網(wǎng)絡(luò),設(shè)定輸入圖像大小為256×256。MobileNetv2提出了一種具有線性瓶頸的倒殘差結(jié)構(gòu),有助于模型學(xué)習(xí)到更精細(xì)的特征并且保證了模型的運(yùn)行速率。由于輕量級(jí)MobileNetv2保證了下采樣已經(jīng)提取到足夠多的特征,并不需要中間層使用層層疊加的卷積核來(lái)進(jìn)行特征的二次提取與傳遞,本文對(duì)中間層結(jié)構(gòu)進(jìn)行剪枝操作。在decoder部分分別用17個(gè)linear bottlenecks中第1個(gè)、第3個(gè)、第6個(gè)、第13個(gè)的輸出結(jié)果對(duì)維度數(shù)為512、256、128、64的卷積核進(jìn)行特征融合,特征融合后經(jīng)過(guò)一個(gè)反卷積-卷積-注意力機(jī)制到下一次特征融合,4次維度拼接后經(jīng)過(guò)反卷積-卷積-注意力機(jī)制恢復(fù)到256×256的圖片分辨率,形成了一個(gè)5層的U型結(jié)構(gòu)。
表1 模型參數(shù)表Table 1 Parameters of model
BN層用于減少ICS現(xiàn)象、防止梯度彌散和加速模型的訓(xùn)練。Dropout層可優(yōu)化模型訓(xùn)練過(guò)程,避免模型過(guò)擬合情況的發(fā)生。BN層和Dropout層疊加可應(yīng)用于模型decoder部分中任意卷積層后、激活函數(shù)ReLU6[11]前。本文算法在上采樣卷積層后引入了BN層和Dropout層,有助于模型學(xué)習(xí)策略的制定和提高模型訓(xùn)練速度。
采用激活函數(shù)ReLU6,見(jiàn)公式(1),導(dǎo)數(shù)見(jiàn)公式(2)。該函數(shù)作為非飽和激活函數(shù)類的代表,在防止梯度消失方面有無(wú)可替代的優(yōu)勢(shì)。原始Unet使用ReLU函數(shù),隨著激活函數(shù)的發(fā)展,ReLU6表現(xiàn)出了更好的性能優(yōu)勢(shì)[20]。ReLU6可用在Dropout層之后,在防止梯度消失同時(shí)還可保持模型的可移植性。
公式(1)和(2)中,x代表輸入,f(x)代表輸出,f(x)范圍在0到6之間,f′(x)范圍在0到1之間。
本文將注意力機(jī)制融入到U型網(wǎng)絡(luò)的decoder部分,用于每次反卷積-卷積模塊后和輸出前,可以有效地學(xué)習(xí)到有益特征通道的信息,有利于模型的學(xué)習(xí)訓(xùn)練過(guò)程。
注意力機(jī)制模塊SE block依據(jù)所構(gòu)建的特征通道間的相互依賴關(guān)系,從全局角度構(gòu)建特征通道間的重要性關(guān)系網(wǎng)。它主要由兩部分組成:壓縮部分(squeeze)和激勵(lì)部分(excitation)。squeeze見(jiàn)公式(3),全局平均池化,將每個(gè)通道的信息濃縮為一個(gè)標(biāo)量,得到全局信息。excitation見(jiàn)公式(4),利用全局特征建立通道關(guān)系模型,全面捕獲通道依賴性。該操作具體為全連接層-relu-全連接層,由于ReLU6性能更優(yōu)越[11],本文采用ReLU6函數(shù),精度提升1.2%,交并比提升0.9%。利用各通道重要性逐通道加權(quán)到先前的特征上,得到最終特征,見(jiàn)公式(5)。詳細(xì)流程圖如圖4所示。
圖4 CE block流程圖Fig.4 Flow chart of CE block
公式(3)中,U k(i,j)表示上一個(gè)卷積核輸出的c維矩陣U c中第k維矩陣第i行j列的元素,W和H分別表示U k的寬和高,Z k表示第k維通道的壓縮值。
公式(4)中,Zc表示squeeze操作得到的c維特征圖,和,r為16[11],f表示ReLU6激活,σ表示sigmoid激活,S c表示c維通道重要性權(quán)值。
公式(5)中,?表示c維最終特征(Xc表示c維原始特征)。
2.4.1 原始Unet網(wǎng)絡(luò)損失函數(shù)
原始Unet采用分類交叉熵?fù)p失函數(shù),見(jiàn)公式(6)。模型輸出層運(yùn)用softmax激活函數(shù)進(jìn)行多分類,計(jì)算像素點(diǎn)的分類概率[20]。
公式(6)中,n是樣本數(shù),m是類別數(shù),指的是第i個(gè)樣本在第一類的類別,指的是第i個(gè)樣本在第一類的概率,最終得到n個(gè)樣本的loss值。
2.4.2 混合損失函數(shù)
本文在二分類場(chǎng)景下對(duì)目標(biāo)人物進(jìn)行分割,引入適合二分類的混合損失函數(shù)和輸出層激活函數(shù)sigmoid來(lái)解決部分圖片人物邊緣難以分割和正負(fù)樣本像素點(diǎn)不均衡的問(wèn)題。該混合損失函數(shù)[19]由Dice loss[17]和BCE loss[18]兩部分組成,解決了直接使用Dice loss會(huì)對(duì)模型訓(xùn)練時(shí)反向傳播造成不利影響使得訓(xùn)練的穩(wěn)定性降低的問(wèn)題,有利于模型的收斂與訓(xùn)練。
混合損失函數(shù)見(jiàn)公式(10);Dice loss(LDL)見(jiàn)公式(8)。Dice loss是在Dice系數(shù)的基礎(chǔ)上取得的,Dice系數(shù)(s)具體形式見(jiàn)公式(7),公式(7)中A表示預(yù)測(cè)掩模人物像素區(qū)間,B表示真實(shí)標(biāo)定人物像素區(qū)間。BCE loss(LBCE)具體形式見(jiàn)公式(9),公式(9)中,p表示該像素點(diǎn)的預(yù)測(cè)概率值,y表示該像素點(diǎn)的類別。
實(shí)驗(yàn)硬件平臺(tái)是2塊RTX 2080 GPU,共48 GB顯存,Intel至強(qiáng)處理器,共96核,2 TB內(nèi)存。軟件環(huán)境是ubuntu18.04、python3.6、tensorflow1.14。本文算法最佳超參數(shù)如表2所示。表2中,變量Epoch代表訓(xùn)練迭代次數(shù);Batchsize表示每小輪訓(xùn)練時(shí)輸入模型的圖片數(shù);優(yōu)化器代表用來(lái)調(diào)整影響模型訓(xùn)練的網(wǎng)絡(luò)參數(shù);Lr表示學(xué)習(xí)率;Factor表示訓(xùn)練精度不再提升時(shí),學(xué)習(xí)率衰減的比率。
表2 本文算法最佳超參數(shù)Table 2 Best hyper-parameter of proposed algorithm
本文訓(xùn)練數(shù)據(jù)集通過(guò)爬取網(wǎng)絡(luò)人像半身照并且手工標(biāo)注mask標(biāo)簽的方式進(jìn)行采集,采集的人像半身照共3 900張。為了檢驗(yàn)網(wǎng)絡(luò)的通用性,在Human_Matting[22]數(shù)據(jù)集和EG1800[10]數(shù)據(jù)集上分別進(jìn)行測(cè)試,測(cè)試圖像均為.jpg格式下的RGB圖像。本文算法及對(duì)比算法均在訓(xùn)練過(guò)程中采用十折交叉驗(yàn)證的方式,最后使用測(cè)試集對(duì)最優(yōu)模型進(jìn)行評(píng)估測(cè)試。
本文采用的數(shù)據(jù)增強(qiáng)方式是在送入模型學(xué)習(xí)之前,在小批量(min-batch)上采用圖片隨機(jī)轉(zhuǎn)動(dòng)、顏色變換、水平翻轉(zhuǎn)、垂直翻轉(zhuǎn)、亮度增強(qiáng)、裁剪等方式進(jìn)行數(shù)據(jù)增強(qiáng)。
模型評(píng)價(jià)指標(biāo)采用分割模型常用的像素準(zhǔn)確率PA和IOU(交并比)指標(biāo)。像素準(zhǔn)確率PA指的是預(yù)測(cè)類別正確的像素點(diǎn)數(shù)占總像素點(diǎn)數(shù)的比例。IOU指標(biāo)[23]指的是預(yù)測(cè)掩模人物像素區(qū)間占真實(shí)標(biāo)定人物像素區(qū)間的比例,見(jiàn)公式(11)。
其中,A表示預(yù)測(cè)掩模人物像素區(qū)間,B表示真實(shí)標(biāo)定人物像素區(qū)間。
本文算法保持了U型結(jié)構(gòu),通過(guò)將輕量級(jí)網(wǎng)絡(luò)MobileNetv2作為骨干網(wǎng)絡(luò)、中間層剪枝、精簡(jiǎn)上采樣過(guò)程等方式來(lái)優(yōu)化模型結(jié)構(gòu)和模型訓(xùn)練過(guò)程,通過(guò)調(diào)參來(lái)優(yōu)化訓(xùn)練過(guò)程和實(shí)驗(yàn)結(jié)果。模型結(jié)構(gòu)消融實(shí)驗(yàn)性能變化情況如表3所示。
表3 模型結(jié)構(gòu)變化情況Table 3 Changes of model structure
根據(jù)表3可知,在U型網(wǎng)絡(luò)中通過(guò)增加BN層、ReLU6有利于模型收斂和訓(xùn)練;引入混合損失函數(shù)之后解決了樣本分布類別不均的問(wèn)題,模型精度和IOU指標(biāo)有較為明顯的提升;使用MobileNetv2有助于模型學(xué)習(xí)到更豐富的特征;去掉中間層不影響特征的傳遞和學(xué)習(xí);精簡(jiǎn)上采樣之后對(duì)模型的影響并不大;添加注意力機(jī)制后,通過(guò)特征分配,加強(qiáng)了有效特征的學(xué)習(xí),精度和IOU指標(biāo)有一定的提升。模型在訓(xùn)練與驗(yàn)證精度變化曲線分別如圖5所示。
圖5 本文模型訓(xùn)練精度變化圖Fig.5 Variation diagram of model training accuracy in this paper
本文算法指標(biāo)IOU優(yōu)于周鵬等[24]于2020年文獻(xiàn)中92.29%的IOU值,指標(biāo)PA優(yōu)于楊堅(jiān)偉等[25]于2020年文獻(xiàn)中95.57%的準(zhǔn)確率。
在Human_Matting數(shù)據(jù)集上設(shè)計(jì)了一組對(duì)比實(shí)驗(yàn),本文算法與模型FCN[26]、Enet[27]、Segnet[13]、Fusionnet[28]、PortraitNet[29]、DeepLabv3+[30]進(jìn)行對(duì)比,實(shí)驗(yàn)結(jié)果詳見(jiàn)表4。
表4 分割算法比較(Matting)Table 4 Comparison of segmentation algorithms(Matting)
圖6和圖7直觀地展示了對(duì)比算法的掩膜分割效果。每組圖第一層是人像分割掩膜,第二層是相應(yīng)的細(xì)節(jié)放大圖。FCN、Enet在兩組人像中背景誤判現(xiàn)象較為嚴(yán)重;Segnet在圖6(d)人像頸部邊緣的粘連較多,在圖7(d)人像肩部及手指尖端有輕微的背景誤判現(xiàn)象;Fusionnet對(duì)人物掩膜邊緣的處理較柔和,但仍然存在人物邊緣漏分情況;PortraitNet在圖6(f)人物右腋下孔洞未分離出,圖7(f)分割效果較好,所需分割用時(shí)較少;DeepLabv3+在圖6(g)人物左右腋下具有背景誤判現(xiàn)象,圖7(g)人物左肩上方有較小孔洞出現(xiàn);本文算法能較為精細(xì)地處理人物細(xì)節(jié)信息,能分離出6(h)人物右腋下的背景,同時(shí)也能較好的識(shí)別7(h)人物手指尖端。
圖6 算法分割掩膜第一組效果圖Fig.6 First group of segmentation mask of algorithms
圖7 算法分割掩膜第二組效果圖Fig.7 Second group of segmentation mask of algorithms
為了更加客觀地評(píng)價(jià)本文算法,在EG1800數(shù)據(jù)集上設(shè)置了一組對(duì)比實(shí)驗(yàn)。本文算法與模型FCN[26]、Enet[27]、Segnet[13]、Fusionnet[28]、PortraitNet[29]、DeepLabv3+[30]進(jìn)行對(duì)比分析,實(shí)驗(yàn)結(jié)果詳見(jiàn)表5。
表5 分割算法比較(EG1800)Table 5 Comparison of segmentation algorithms(EG1800)
為了更直觀地觀察分割效果,對(duì)比算法的分割掩膜效果圖,見(jiàn)圖8~10。圖8~10中,每組圖第一層是人像分割掩膜,第二層是相應(yīng)的細(xì)節(jié)放大圖。FCN的人像效果存在嚴(yán)重的背景誤判現(xiàn)象,耗時(shí)較長(zhǎng);Enet在三組人像上有部分粘連,用時(shí)較FCN少;Segnet效果較前兩個(gè)對(duì)比算法好,人像粘連較少,但是粘連或缺失部分仍然可以很清楚地辨別,平均分割用時(shí)與Enet相近;Fusionnet在圖8(e)男性頭頂與背景有部分粘連,在圖9(e)肩部劃分有誤判,但是頭發(fā)邊緣細(xì)節(jié)分割效果較好,在圖10(e)人臉左邊有部分缺失;PortraitNet在圖8(f)人像頭頂頭發(fā)與背景有部分粘連,圖9(f)人像左部耳朵有大部分缺失,圖10(f)人物左邊發(fā)型部分有孔洞;DeepLabv3+在圖8(g)人像左耳下半部分有缺失,圖9(g)人物左耳外耳廓有背景誤判現(xiàn)象,圖10(g)分割效果較好,但在人物頭發(fā)邊緣處理不夠平滑;本文算法在三組圖中表現(xiàn)良好,能較好地將圖像中人物與背景分離,同時(shí)分割用時(shí)最短。通過(guò)以上分析可知,本文提出的算法可以有效地用于常見(jiàn)的人像前景背景二分類處理場(chǎng)景。
圖8 算法分割掩膜第一組效果圖Fig.8 First group of segmentation mask of algorithms
圖9 算法分割掩膜第二組效果圖Fig.9 Second group of segmentation mask of algorithms
圖10 算法分割掩膜第三組效果圖Fig.10 Third group of segmentation mask of algorithms
本文算法在Human_Matting和EG1800數(shù)據(jù)集上并不是所有的圖片都完美的將人物與背景分離,抽取兩數(shù)據(jù)集失敗樣例進(jìn)行分析,分別見(jiàn)圖11和圖12。
圖11 失敗樣例分割掩膜效果圖(Matting)fig.11 Segmentation mask of failed examples(Matting)
圖12 失敗樣例分割掩膜效果圖(EG1800)Fig.12 Segmentation mask of failed examples(EG1800)
本文算法在Human_Matting數(shù)據(jù)集樣例1中人物手中托舉的水果未能良好地同人物一起分離開(kāi),樣例2中人物右臉頰與肩部之間的空隙有背景粘連情況;EG1800數(shù)據(jù)集樣例1中小女孩左半部分效果良好,但在右部手以下部分有背景誤判現(xiàn)象,樣例2中人物手部邊緣部分未能準(zhǔn)確地進(jìn)行識(shí)別并分離,并由于頭發(fā)蓬松,在頭發(fā)邊緣的處理也不夠精細(xì)。由此可見(jiàn),本文算法雖已達(dá)到輕量級(jí),但是也同樣由于輕量級(jí)過(guò)于精簡(jiǎn)使得本文算法在人物手部特別是小指指尖,頭發(fā)邊緣等部位的精細(xì)分割上有所欠缺,在人物之外的干擾物體的影響下也有漏分的情況出現(xiàn)。
本文采用融合MobileNetv2和注意力機(jī)制的輕量級(jí)人像分割算法對(duì)自行收集標(biāo)注的人物半身像數(shù)據(jù)集進(jìn)行訓(xùn)練。通過(guò)設(shè)置MobileNetv2為encoder部分、精簡(jiǎn)中間及上采樣部分、增加注意力機(jī)制、結(jié)合混合損失函數(shù)等一系列操作,提升了模型分割效率,得到了具有一定通用性的人像分割網(wǎng)絡(luò)。本文通過(guò)與其他算法進(jìn)行分割指標(biāo)和人物半身像分割效果圖的對(duì)比,證明本文算法具有較好的分割效果,可有效用于人物目標(biāo)檢測(cè)、綠幕摳圖等人物圖像處理階段。但本文算法同樣存在人物指尖及頭發(fā)邊緣處理不夠精細(xì)的情況,仍需要對(duì)上采樣卷積核特征提取和還原部分進(jìn)行一定的改進(jìn)。