羅文劼,倪 鵬,張 涵,田學(xué)東
河北大學(xué) 網(wǎng)絡(luò)空間安全與計(jì)算機(jī)學(xué)院,河北 保定 071002
人體解析任務(wù)需要對圖像中每個(gè)像素進(jìn)行精確的分類,識(shí)別出人體語義部位。目前人體解析已經(jīng)應(yīng)用在很多領(lǐng)域,例如人體重識(shí)[1]、人體行為分析[2]、自動(dòng)化推薦[3]、姿態(tài)估計(jì)[4]等。與傳統(tǒng)的語義分割任務(wù)相比,人體解析是一種更加精細(xì)化的分割任務(wù),它與姿態(tài)估計(jì)任務(wù)不同,在姿態(tài)估計(jì)任務(wù)中需要定位人體的關(guān)節(jié)點(diǎn),而人體解析任務(wù)需要定位人體的各個(gè)部位。人體解析目前面臨的主要困難有人體多變的姿態(tài)、奇異的服裝和復(fù)雜的場景等。早期存在的方法包括結(jié)構(gòu)圖模型[4]和概率圖模型[5-8]。這些方法雖然有很大的進(jìn)步,但需要手動(dòng)地設(shè)計(jì)特征提取器,處理過程相對復(fù)雜。同時(shí)還存在識(shí)別區(qū)域不連續(xù)、過度識(shí)別、錯(cuò)誤識(shí)別等問題,影響識(shí)別精度。
卷積神經(jīng)網(wǎng)絡(luò)具有強(qiáng)大的特征學(xué)習(xí)能力,能夠有效地進(jìn)行端到端的學(xué)習(xí)。最近基于卷積神經(jīng)網(wǎng)的方法在人體解析任務(wù)中獲得了很大的成功,如文獻(xiàn)[9-13],這些方法直接對原始圖像進(jìn)行卷積操作并輸出解析結(jié)果。但在持續(xù)的池化操作與不斷卷積過程中,特征圖分辨率下降與低維特征的不足,導(dǎo)致圖像局部細(xì)節(jié)無法準(zhǔn)確識(shí)別。在姿態(tài)估計(jì)任務(wù)中hourglass 網(wǎng)絡(luò)[14]采用編碼解碼網(wǎng)絡(luò)結(jié)構(gòu),通過上下采樣,能夠?qū)W習(xí)更加細(xì)節(jié)的特征信息,保留更加原始的特征信息。與其類似的還有特征金字塔模型[15]能夠自底向上、自上而下地學(xué)習(xí)不同尺度特征。在語義分割領(lǐng)域空洞卷積被廣泛使用,通過向卷積核嵌入值為零的參數(shù)來增大感受野,使其能夠?qū)W習(xí)更大尺度的特征信息。
基于編碼解碼網(wǎng)絡(luò)與空洞卷積的優(yōu)點(diǎn),本文提出一種雙路網(wǎng)絡(luò)MTCnet,該網(wǎng)絡(luò)由三個(gè)子網(wǎng)組成,分別是兩個(gè)特征提取子網(wǎng)和一個(gè)融合改進(jìn)子網(wǎng)。其中一個(gè)特征提取子網(wǎng)使用hourglass網(wǎng)絡(luò),另一個(gè)子網(wǎng)使用空洞卷積網(wǎng)絡(luò),同時(shí)設(shè)計(jì)了融合改進(jìn)子網(wǎng),其目的是將兩種類型網(wǎng)絡(luò)提取的人體語義特征信息進(jìn)行融合學(xué)習(xí),并輸出整合后的結(jié)果。MTCnet通過首尾相連的級聯(lián)方式進(jìn)行多階段的學(xué)習(xí),每個(gè)階段學(xué)習(xí)的結(jié)果會(huì)作為下一個(gè)階段的輸入,多階段的優(yōu)化學(xué)習(xí)結(jié)果,最終達(dá)到最優(yōu)的輸出結(jié)果。本文堆疊六個(gè)MTCnet其整體結(jié)構(gòu)如圖1所示。中間監(jiān)督的訓(xùn)練方法在文獻(xiàn)[16]和文獻(xiàn)[14]已經(jīng)得到了很好的應(yīng)用,該方法能夠有效訓(xùn)練多階段的網(wǎng)絡(luò)模型,在每個(gè)階段應(yīng)用分類器并結(jié)合損失函數(shù)進(jìn)行學(xué)習(xí),可以提升模型的整體表現(xiàn),本文使用這種方法對網(wǎng)絡(luò)進(jìn)行訓(xùn)練。本文主要工作如下:提出一種可以進(jìn)行多模塊堆疊多階段預(yù)測的人體解析網(wǎng)絡(luò)MTCnet。在MTCnet 中加入了一種空洞卷積網(wǎng)絡(luò),并與編碼解碼網(wǎng)絡(luò)相結(jié)合進(jìn)行人體語義特征提取。訓(xùn)練階段應(yīng)用中間監(jiān)督方法去訓(xùn)練網(wǎng)絡(luò)模型。
圖1 本文方法的整體結(jié)構(gòu)圖
從AlexNet[17]在ImageNet圖像分類比賽大放異彩開始,卷積神經(jīng)網(wǎng)絡(luò)迅猛發(fā)展。在訓(xùn)練Alexnet 網(wǎng)絡(luò)時(shí)引入dropout 方法[18]能夠防止數(shù)據(jù)過擬合,而后VGG[19]網(wǎng)絡(luò)增加了網(wǎng)絡(luò)的深度,GooleNet[20]不僅深度更深同時(shí)也拓展了網(wǎng)絡(luò)的寬度,同時(shí)使用批量正則化[21]加快收斂。ResNet[22]解決了網(wǎng)絡(luò)達(dá)到一定深度后,效果下降問題。DenseNet[23]擁有更密集的連接,更好地關(guān)注網(wǎng)絡(luò)前后多層的特征,減輕了梯度消失問題。
在人體解析方面非卷積神經(jīng)網(wǎng)絡(luò)的方法有,文獻(xiàn)[2,5,7]基于條件隨機(jī)場的方法進(jìn)行人體解析,這些方法雖然取得了一些成功,但依然存在多變的人體形態(tài)、奇異的人體著裝帶來的識(shí)別錯(cuò)誤問題。Chen 等人[8]將SVM與CRF 結(jié)合,先執(zhí)行人體姿態(tài)估計(jì),然后執(zhí)行人體解析。文獻(xiàn)[4]使用一種與或圖結(jié)構(gòu)的框架用人體姿態(tài)估計(jì)結(jié)果去指導(dǎo)人體解析,這種與或圖結(jié)構(gòu)能夠處理一些由于人體姿勢、著裝等原因造成的較大的人體外觀變化。此后基于卷積神經(jīng)網(wǎng)絡(luò)的方法具有更高的精確度,能夠應(yīng)對更復(fù)雜的場景。文獻(xiàn)[13]提出將人體解析作為一種活動(dòng)模板回歸問題,并使用超像素平滑方法去改進(jìn)解析結(jié)果。Liang 等人[10]基于卷積神經(jīng)網(wǎng)絡(luò)的方法提出多尺度上下文模型整合多尺度人體部位特征與語義邊界特征進(jìn)行人體解析。Liu 等人[24]將卷積網(wǎng)絡(luò)與聚類算法相結(jié)合提出了一種卷積神經(jīng)網(wǎng)絡(luò)KNN 非參數(shù)模型。文獻(xiàn)[25]將人體解析與姿態(tài)估計(jì)任務(wù)一起進(jìn)行操作,并設(shè)計(jì)了一種轉(zhuǎn)換解析結(jié)果去輔助姿態(tài)估計(jì)的網(wǎng)絡(luò)。文獻(xiàn)[9]引入了更有挑戰(zhàn)的更多樣性的人體解析數(shù)據(jù)集Look Into Person(LIP)彌補(bǔ)了大數(shù)據(jù)集的缺失。
在其他領(lǐng)域Wei 等人[16]提出多階段預(yù)測逐步提升結(jié)果的卷積姿態(tài)機(jī),這種方法在實(shí)際應(yīng)用中具有非常好的魯棒性。文獻(xiàn)[26]使用空洞卷積和一種全連接的CRF 的方法進(jìn)行語義分割。文獻(xiàn)[27]使用雙分支網(wǎng)絡(luò)進(jìn)行姿態(tài)估計(jì),該方法能夠提取不同的特征進(jìn)行相互輔助。目前人體解析比較好的方法是將人體解析與其他任務(wù)相結(jié)合,相互進(jìn)行輔助操作如文獻(xiàn)[25,28],如果在只有人體語義部位標(biāo)注信息的情況下,將無法進(jìn)行訓(xùn)練。本文提出的方法可直接進(jìn)行人體解析操作而不需要其他任務(wù)的輔助,減少了網(wǎng)絡(luò)的訓(xùn)練時(shí)間,避免了額外的開銷。接下來的部分將會(huì)詳解介紹本文設(shè)計(jì)的網(wǎng)絡(luò)模型。
MTCnet 網(wǎng)絡(luò)的結(jié)構(gòu)如圖2。模型的輸入為一張h×w×3 的圖像,在這里h是圖像的高度,w是圖像的寬度,3為通道數(shù)。其目標(biāo)是輸出人體解析結(jié)果P={pij},其中pij代表第i個(gè)像素為第j類。MTCnet 首尾相連可堆疊多個(gè),每個(gè)MTCnet相當(dāng)于一個(gè)學(xué)習(xí)階段,每個(gè)階段都會(huì)進(jìn)行分類學(xué)習(xí)。MTCnet 由三部分組成,一個(gè)是編碼解碼網(wǎng)絡(luò)用于提取多尺度融合的特征,一個(gè)是空洞網(wǎng)絡(luò)用于提取更加關(guān)注整體的上下文特征,最后是一個(gè)融合調(diào)節(jié)網(wǎng)絡(luò)用于融合調(diào)節(jié)兩個(gè)特征。為了更加關(guān)注低維特征,在使用多個(gè)MTCnet 時(shí)會(huì)將每個(gè)預(yù)測的結(jié)果以及之前輸入的特征相結(jié)合作為下一個(gè)階段的輸入。下面將具體介紹各個(gè)部分細(xì)節(jié)。
圖2 MTCnet結(jié)構(gòu)圖
編碼解碼網(wǎng)絡(luò)使用hourglass網(wǎng)絡(luò),這里做了一些改變,將編碼階段與解碼階段對應(yīng)的特征相連接而不是之前的直接相加,下采樣和上采樣各進(jìn)行三次,其結(jié)構(gòu)如圖3所示。每次下采樣之前會(huì)分成上下兩路,上路用于保存當(dāng)前尺度信息,下路進(jìn)行下一步的下采樣操作。每次上采樣后會(huì)和對應(yīng)尺度的上路特征圖相連接。為了保證上下兩路特征擁有不同的權(quán)重,在每次相連接前對上下兩路進(jìn)行一次1×1 的卷積操作。每次下采樣之前和上采樣之后都會(huì)進(jìn)行卷積操作,這里的卷積操作使用兩層ResNet網(wǎng)絡(luò)來實(shí)現(xiàn),下采樣使用平均池化,上采樣使用雙線性插值的方法。其整體表達(dá)式為:
其中,ht是第t階段被提取的特征,Gt為第t階段網(wǎng)絡(luò)的函數(shù)表達(dá)式,It-1為上一個(gè)階段輸出特征,為其需要學(xué)習(xí)的參數(shù)。
圖3 編碼解碼網(wǎng)絡(luò)結(jié)構(gòu)
空洞卷積在語義分割網(wǎng)絡(luò)DeepLab 中得到了很好的應(yīng)用,空洞卷積在不增加學(xué)習(xí)參數(shù)的情況下可以擴(kuò)大卷積核,使其能夠增大感受野,學(xué)習(xí)更大尺度的上下文信息??斩淳W(wǎng)絡(luò)以ResNet 網(wǎng)絡(luò)模型為基礎(chǔ),增加了一條空洞卷積分支,結(jié)構(gòu)如圖4所示。其表達(dá)式為:
圖4 空洞網(wǎng)絡(luò)基礎(chǔ)層結(jié)構(gòu)圖
其中,zn和zn+1代表每層的輸入特征和輸出特征,p(zn)為恒等映射,q(zn+1)代表普通卷積操作,k(zn)代表擴(kuò)張率為2的空洞卷積操作。c()代表連接操作??斩淳W(wǎng)絡(luò)一共有七層,每層的通道數(shù)量相同,特征尺寸大小相同??斩淳W(wǎng)絡(luò)的表達(dá)式為:
其中,Jt是第t階段被提取的特征,At()為第t階段網(wǎng)絡(luò)的函數(shù)表達(dá)式,It-1為上一個(gè)階段輸出特征。
融合調(diào)節(jié)網(wǎng)絡(luò)結(jié)構(gòu)如圖5 所示。在得到編碼解碼網(wǎng)絡(luò)和空洞網(wǎng)絡(luò)輸出的特征后,融合調(diào)節(jié)網(wǎng)絡(luò)將提取的兩種特征相連接,進(jìn)行調(diào)節(jié)融合,并輸出每個(gè)階段調(diào)整后的結(jié)果,融合調(diào)節(jié)網(wǎng)絡(luò)使用普通的ResNet網(wǎng)絡(luò),擁有三層,其表達(dá)式為:
其中,pt為第t階段輸出的總體特征,ht和Jt分別為第t階段編碼解碼網(wǎng)絡(luò)特征和空洞網(wǎng)絡(luò)提取的特征,為其學(xué)習(xí)到的參數(shù)。得到輸出pt后,然后使用分類器去預(yù)測語義部位概率圖,這里使用1×1的卷積去實(shí)現(xiàn)這個(gè)分類器。
圖5 融合調(diào)節(jié)網(wǎng)絡(luò)結(jié)構(gòu)圖
在訓(xùn)練網(wǎng)絡(luò)時(shí),每個(gè)階段應(yīng)用像素級別的分類損失函數(shù)即多分類交叉熵?fù)p失函數(shù),其表達(dá)式為:
其中,Lt為第t階段的交叉熵?fù)p失,分別為第i張圖片預(yù)測結(jié)果和真實(shí)標(biāo)注結(jié)果。
在每個(gè)中間階段,為了更加關(guān)注低維特征,保留圖像局部細(xì)節(jié),將上一個(gè)階段的輸入特征與輸出特征相結(jié)合作為下一個(gè)階段的輸入特征。
LIP數(shù)據(jù)集一共包含50 462張圖像。其中30 462張用于訓(xùn)練的圖片,10 000 張用于測試,10 000 張用于驗(yàn)證。包括背景在內(nèi)一共有20種用于人體解析的標(biāo)注信息。該數(shù)據(jù)集從真實(shí)場景收集,具有非常高的人體遮擋,多變的外表,尺度不一的分辨率,還有不同的視角和多樣姿態(tài)等。本文使用LIP數(shù)據(jù)集進(jìn)行對比實(shí)驗(yàn),來驗(yàn)證本文方法的有效性。
在訓(xùn)練階段,輸入網(wǎng)絡(luò)的圖像被調(diào)整為相同的大小,這里使用256×256 的圖像大小,同時(shí)在-10°到10°之間隨機(jī)旋轉(zhuǎn)圖片,在0.8 到1.5 比率之間隨機(jī)進(jìn)行縮放,在-10 px到10 px之間隨機(jī)裁剪平移。
本文使用Pytoch 實(shí)現(xiàn)MTCnet 網(wǎng)絡(luò),操作系統(tǒng)為Linux,顯卡為Nvidia GTX1080ti。使用標(biāo)準(zhǔn)差為0.001的高斯分布初始化網(wǎng)絡(luò)參數(shù)。使用RMSProp算法進(jìn)行參數(shù)優(yōu)化。初始化學(xué)習(xí)率為0.000 5。在LIP 數(shù)據(jù)集迭代200 次訓(xùn)練MTCnet 模型。輸入MTCnet 網(wǎng)絡(luò)的特征圖分辨率均為64×64,通道數(shù)為256。在測試階段移除損失函數(shù),在進(jìn)入網(wǎng)絡(luò)之前圖片會(huì)被調(diào)整到256×256大小,輸出的結(jié)果會(huì)被還原到原始的尺寸。
在LIP 數(shù)據(jù)集上分別計(jì)算平均交并比mIoU、像素精度PA、均像素精度MPA 三種人體解析評價(jià)指標(biāo)。在LIP 驗(yàn)證集的結(jié)果如表1。從表中可以看到MTCnet 相比較于其他模型mIoU達(dá)到41.8%,PA達(dá)到82.9%,MPA達(dá)到了52.1%。比較DeepLab模型PA提高了0.2個(gè)百分點(diǎn),MPA提高了0.5個(gè)百分點(diǎn),mIoU提高了0.2個(gè)百分點(diǎn)。
表1 在LIP驗(yàn)證集下不同方法的結(jié)果 %
圖6展示了不同方法可視化后的解析結(jié)果,SegNet解析結(jié)果出現(xiàn)大范圍的解析區(qū)域不連續(xù),并且識(shí)別錯(cuò)誤與未能識(shí)別問題嚴(yán)重。SegNet采用編碼解碼的結(jié)構(gòu),解碼器將低分辨率特征圖還原為高分辨特征圖,這樣還原出來的特征圖很難保留局部細(xì)節(jié)信息。而FCN-8s對整體輪廓有較好的識(shí)別效果,但解析結(jié)果相對粗糙,其通過多次pooling,雖然間接增大了接受域,但導(dǎo)致特征圖分辨率下降,特征信息保留不足。DeepLab 方法采用ASPP池化能夠進(jìn)行多尺度學(xué)習(xí),但從解析結(jié)果看,依舊存在解析區(qū)域不連續(xù)、細(xì)節(jié)處理不足等問題。從圖6中可以看出本文方法與其他方法相比能有效改善解析區(qū)域不連續(xù)問題,擁有更好的細(xì)節(jié)處理能力,解析結(jié)果更接近標(biāo)注圖像。圖7 展示了不同方法隨epoch 增加時(shí)mIoU 的變化情況,從中可以看出本文方法比其他方法收斂更快,精確度更高,并隨著epoch次數(shù)的增加其結(jié)果相對平穩(wěn)。
圖6 不同方法解析結(jié)果可視化
圖7 不同方法mIoU變化情況
在實(shí)驗(yàn)中,MTCnet 堆疊不同數(shù)量的模塊結(jié)果會(huì)不同,其結(jié)果如表2。實(shí)驗(yàn)中分別使用2、4、6階段,隨著模塊數(shù)量的增加,結(jié)果也得到提升。在使用2 階段時(shí),mIoU為33.4%,PA為80.3%,MPA 42.2%,在使用4階段時(shí)mIoU 為37.7%,PA 為81.6%,MPA 為48.1%,相比較使用2 階段各個(gè)結(jié)果都得到提升,尤其mIoU 與MPA 提升特別明顯,分別達(dá)到了4.3 個(gè)百分點(diǎn)和5.9 個(gè)百分點(diǎn),當(dāng)使用6 階段時(shí)其mIoU 達(dá)到41.8%,PA 到達(dá)82.9%,MPA達(dá)到52.1%。
表2 在LIP驗(yàn)證集下對比實(shí)驗(yàn)結(jié)果%
此外,由于堆疊數(shù)量的增加會(huì)造成額外時(shí)間和顯存的開銷,當(dāng)模塊堆疊超過6 個(gè)時(shí),其結(jié)果并沒有得到明顯提升。綜合考慮其最佳結(jié)果為堆疊6個(gè)模塊。
為了比較雙路網(wǎng)絡(luò)與單路網(wǎng)絡(luò)的性能,在實(shí)驗(yàn)中只使用hourglass網(wǎng)絡(luò)進(jìn)行訓(xùn)練與驗(yàn)證,其結(jié)果展示在表2,從中可以看到在堆疊2、4、6個(gè)不同數(shù)量的模塊時(shí),其結(jié)果均不及使用雙路網(wǎng)絡(luò),說明雙路網(wǎng)絡(luò)特征提取能力優(yōu)于單路網(wǎng)絡(luò)。
對MTCnet 的解析結(jié)果進(jìn)行可視化如圖8 所示,第一列為輸入圖像,第二列為圖像真實(shí)標(biāo)注,第三列為4階段預(yù)測結(jié)果,第四列為6階段預(yù)測結(jié)果。可以看到在不同階段MTCnet 的輸出結(jié)果存在差異,與真實(shí)標(biāo)注圖像對比可以發(fā)現(xiàn)隨著階段數(shù)增加解析結(jié)果得到了改善。
圖8 可視化人體解析結(jié)果
本文提出一種多階段雙路人體解析網(wǎng)絡(luò),該網(wǎng)絡(luò)將編碼解碼網(wǎng)絡(luò)與空洞卷積網(wǎng)絡(luò)相結(jié)合,使用雙路特征提取結(jié)構(gòu),能夠融合學(xué)習(xí)多尺度特征信息,相比單一的特征提取網(wǎng)絡(luò),能夠提取更加豐富的特征信息。不同于一般的方法,本文方法需要進(jìn)行多階段學(xué)習(xí),通過不斷優(yōu)化輸出結(jié)果最終達(dá)到最優(yōu)的人體解析結(jié)果,其擁有更高的精準(zhǔn)性。通過實(shí)驗(yàn)也驗(yàn)證了本文方法在特征提取能力和精確性方面擁有更好的效果。