吳春梅,胡軍浩,尹江華,3
1.廣西科技師范學(xué)院 數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院,廣西 來賓546199
2.中南民族大學(xué) 數(shù)學(xué)與統(tǒng)計(jì)學(xué)學(xué)院,武漢430074
3.內(nèi)蒙古大學(xué) 數(shù)學(xué)科學(xué)學(xué)院,呼和浩特010021
從靜態(tài)圖像中進(jìn)行姿態(tài)估計(jì)實(shí)際上是一個(gè)對人體部位中標(biāo)志性位置的定位過程。精確的人體姿態(tài)估計(jì)是人類活動(dòng)識別、計(jì)算行為分析、人員重新識別和人機(jī)交互等任務(wù)中的基本步驟。由于存在姿態(tài)變化、清晰度低和重疊等現(xiàn)象,在無約束條件下估計(jì)2D姿態(tài)很困難。
近些年,一些學(xué)者在提高人體姿態(tài)估計(jì)精度方面進(jìn)行了相關(guān)研究。傳統(tǒng)方法往往采用人工生成特征和圖形技術(shù)來表達(dá)身體部位的可能關(guān)系。這些方法在解決諸如服飾的變化、部分身體被遮擋和光照變化等問題上發(fā)揮了重要作用。如文獻(xiàn)[1]中提到的自適應(yīng)融合特征提取方法,文獻(xiàn)[2]中描述的多模整體模型和星型模型以及文獻(xiàn)[3]中的時(shí)空特征。但這些方法在不同的姿態(tài)或有較大遮擋的圖像中,其在精確的姿態(tài)識別方面表現(xiàn)得并不是很理想。隨著深度卷積神經(jīng)網(wǎng)絡(luò)(Deep Convolution Neural Network,DCNN)的出現(xiàn),由人工生成特征正在慢慢轉(zhuǎn)變到基于深度卷積神經(jīng)網(wǎng)絡(luò)的方法,文獻(xiàn)[4]中第一次引入了用于人體姿態(tài)估算的深度神經(jīng)網(wǎng)絡(luò),并稱之為“深度姿態(tài)(DeepPose)”,可以直接從輸入圖像估算人體關(guān)節(jié)位置。文獻(xiàn)[5]也提到,人體姿態(tài)識別已經(jīng)受到這種轉(zhuǎn)變的影響。而到目前為止,研究人員已經(jīng)開發(fā)了多種深度網(wǎng)絡(luò)來解決更多難點(diǎn)(例如文獻(xiàn)[6-8]中提到的較大遮擋和姿態(tài)發(fā)生較大形變等難點(diǎn)),從而提高在姿態(tài)識別基準(zhǔn)數(shù)據(jù)集中的準(zhǔn)確性。
身體部位的精確定位需要能夠辨別身體特征以及處理身體部位的成對關(guān)系。文獻(xiàn)[9]和[10]中提出了利用兩個(gè)后續(xù)網(wǎng)絡(luò),文獻(xiàn)[11]中提到了學(xué)習(xí)外觀特征的深度網(wǎng)絡(luò)以及用于身體部位之間的變換參數(shù)的顯式內(nèi)核來實(shí)現(xiàn)這一需求。此外,文獻(xiàn)[12]中提到如何通過使用堆疊的深度網(wǎng)絡(luò)來構(gòu)建其他網(wǎng)絡(luò)模型,其中堆疊網(wǎng)絡(luò)和內(nèi)層之間是跳躍連接的。正如文獻(xiàn)[13]和[14]中提出的對抗網(wǎng)絡(luò),通過生成器學(xué)習(xí)外觀特征,并通過判別器對身體部位的結(jié)構(gòu)信息進(jìn)行編碼。以上兩種方法可以有效地預(yù)測身體所有部位的位置,但預(yù)測部位(例如手腕和腳踝)如果存在較大形變則無效,因?yàn)檫@種位置比預(yù)測不易形變的部位(例如頸部或臀部)更復(fù)雜。
文獻(xiàn)[15]中引入了一種基于編碼器和解碼器的網(wǎng)絡(luò),被稱為堆疊沙漏,以從不同尺寸的輸入圖像中捕獲人體姿勢特征。他們使用上采樣層來解碼不同尺寸的外觀特征,并在卷積層和上采樣層之間使用跳躍連接,這樣可以編碼部位之間的空間關(guān)系。同時(shí)研究人員將這些基于沙漏的網(wǎng)絡(luò)進(jìn)行堆疊,并從輸入圖像中推斷出人體姿勢,這種方法在人體姿態(tài)識別方面取得了重大進(jìn)展。在本文中,設(shè)計(jì)提出的新型對抗網(wǎng)絡(luò)的生成器也遵循堆疊沙漏的結(jié)構(gòu),即基于對抗網(wǎng)絡(luò)堆疊多個(gè)沙漏來捕捉各個(gè)身體部位的外觀特征。而且,本文還對每個(gè)堆棧進(jìn)行了優(yōu)化設(shè)計(jì),以便進(jìn)一步對人體部位的層次結(jié)構(gòu)進(jìn)行編碼。這樣對于編碼身體部位之間的空間以及層次關(guān)系是有幫助的,并能實(shí)現(xiàn)端到端學(xué)習(xí)。
在文獻(xiàn)[16]中提到了,利用硬關(guān)鍵點(diǎn)挖掘,根據(jù)估計(jì)的關(guān)鍵點(diǎn)的置信度對其進(jìn)行排序,然后僅在關(guān)鍵點(diǎn)丟失的情況下對估計(jì)值進(jìn)行懲罰,這些關(guān)鍵點(diǎn)是用高損失值(即低得分)估計(jì)的。這種方法有助于估算人員專注于對這些重要關(guān)鍵點(diǎn)的挖掘。本文提出的方法為這種需求提供了一個(gè)通用框架,其中重要關(guān)鍵點(diǎn)挖掘可以被視為所提出方法中的特例。在本文方法中,首先,將級聯(lián)結(jié)構(gòu)用于具有中間監(jiān)督的網(wǎng)絡(luò)。這將導(dǎo)致后續(xù)網(wǎng)絡(luò)隱式地處理得分較低的關(guān)鍵點(diǎn),并對整個(gè)關(guān)鍵點(diǎn)的估計(jì)進(jìn)行細(xì)化。其次,使用顯式層次結(jié)構(gòu),將網(wǎng)絡(luò)劃分為親本部分和子本部分,將明顯迫使估計(jì)運(yùn)算更加注意子本部分,這些子本部分的置信度大多低于父部分。
本文提出了一個(gè)生成對抗網(wǎng)絡(luò),以解決部分身體部位會發(fā)生大形變的問題,同時(shí)還考慮了身體部位具有不同層次的復(fù)雜性。雖然文中所提出的新型網(wǎng)絡(luò)受到文獻(xiàn)[13]和[14]的啟發(fā),但是生成器和判別器的內(nèi)部結(jié)構(gòu)已經(jīng)被優(yōu)化,它可以模擬身體部位之間的層次關(guān)系。還在目標(biāo)函數(shù)中引入了層次感知術(shù)語以規(guī)范親本和子本之間的關(guān)系,分層對抗網(wǎng)絡(luò)(包括分層生成網(wǎng)絡(luò)和分層判別網(wǎng)絡(luò))有助于準(zhǔn)確地估算身體各個(gè)部位的位置,特別是形變程度較大或高度閉塞的身體部位,如圖1 所示,左圖為姿態(tài)識別樣本結(jié)果。右圖是身體標(biāo)志的等級順序,大點(diǎn)是指預(yù)期的親本,小點(diǎn)代表他們的子本,虛線指的是身體部位之間的等級關(guān)系。
圖1 姿態(tài)識別示意圖
本文在多個(gè)具有挑戰(zhàn)的姿態(tài)識別基準(zhǔn)數(shù)據(jù)集上測試了所提出的網(wǎng)絡(luò),與使用這些數(shù)據(jù)集的其他最新方法進(jìn)行比較,效果相當(dāng)。
根據(jù)文獻(xiàn)[17],生成對抗網(wǎng)絡(luò)(Generative Adversarial Network,GAN)的核心思想是“二元零和博弈”,目標(biāo)函數(shù)如式(1):
GAN 模型主要有由部分組成:第一部分是生成圖像的生成網(wǎng)絡(luò)Generator,通過輸入一組無序隨機(jī)的噪聲z 來生成一張圖像;第二部分是判別圖像真?zhèn)蔚呐袆e網(wǎng)絡(luò)Discriminator,通過不斷學(xué)習(xí)真實(shí)圖像x 的各種特征來加強(qiáng)對某一類圖像的鑒別能力。
深度卷積生成對抗網(wǎng)絡(luò)(Deep Convolution Generative Adversarial Network,DCGAN)將卷積神經(jīng)網(wǎng)絡(luò)(Convolution Neural Network,CNN)引入到了生成模型和判別模型當(dāng)中,使得網(wǎng)絡(luò)的生成能力有了質(zhì)的提升,以至于后來很多工作都在該網(wǎng)絡(luò)的基礎(chǔ)上進(jìn)行改進(jìn)。該網(wǎng)絡(luò)結(jié)構(gòu)的幾個(gè)設(shè)計(jì)要點(diǎn)為:(1)將卷積網(wǎng)絡(luò)中的池化層用相應(yīng)步長的卷積層代替;(2)在生成模型和判別模型中都使用了Batch Normalization 層;(3)去掉了網(wǎng)絡(luò)中的全連接層;(4)在生成模型中采用ReLU 激活函數(shù);(5)在判別模型中采用LeakyReLU 激活函數(shù)。深度卷積生成網(wǎng)絡(luò)相對于一般的生成對抗網(wǎng)絡(luò)而言具有更強(qiáng)大的生成能力,同時(shí)訓(xùn)練起來更加穩(wěn)定、容易,生成樣本更加多樣化。目前,生成對抗網(wǎng)絡(luò)在圖像上應(yīng)用廣泛,如文獻(xiàn)[18]中利用改進(jìn)生成對抗網(wǎng)絡(luò)對有遮擋的人臉圖像進(jìn)行表情識別,文獻(xiàn)[19]中利用生成對抗網(wǎng)絡(luò)對由于相機(jī)抖動(dòng)、物體運(yùn)動(dòng)等產(chǎn)生的運(yùn)動(dòng)模糊進(jìn)行圖像復(fù)原,除此之外,文獻(xiàn)[20-21]也將生成對抗網(wǎng)絡(luò)應(yīng)用在圖像補(bǔ)全和圖像修復(fù)上。文獻(xiàn)[22]首次使用GAN 來做隱寫,去搜索一張圖像中的隱寫位置,設(shè)計(jì)一個(gè)自己的框架ASDL-GAN。
深度卷積網(wǎng)絡(luò)的基本構(gòu)成單元為殘差網(wǎng)絡(luò),如圖2,主要包括三個(gè)卷積層,它們的卷積核大小不盡相同,第一層的大小為1×1,第二層的大小為3×3,第三層的大小為1×1。在通過每個(gè)卷積層之前都將通過一層Batch Normalization 層和ReLU 激活層,網(wǎng)絡(luò)通過主路的卷積層提取出高層次的特征。支路為跳躍層,由核大小為1×1 的卷積層構(gòu)成,主要作用是保留原層次上的特征、增加模型的非線性、降低計(jì)算量。在殘差網(wǎng)絡(luò)中,只改變圖像的通道數(shù),所有卷積層的步長都為1。若輸入圖像的通道為M ,輸出圖像的通道為N ,則主路的第一層與第二層卷積層核個(gè)數(shù)為N/2,第三卷積層核的個(gè)數(shù)為N 。
圖2 殘差網(wǎng)絡(luò)
在殘差網(wǎng)絡(luò)的基礎(chǔ)上仿照其結(jié)構(gòu)組建一階沙漏網(wǎng)絡(luò)。如圖3,主回路和支路都包括若干個(gè)殘差網(wǎng)絡(luò)。其中,支路通過跳躍層在原尺寸下進(jìn)行特征提取,該層能很好地保留圖片上各關(guān)節(jié)的空間信息;主路首先通過最大池化層將尺寸變?yōu)樵却笮〉囊话?,再進(jìn)行特征提取,通過該方法使網(wǎng)絡(luò)在不同分辨率下提取出關(guān)節(jié)點(diǎn)特征,最后通過最近鄰插值將尺寸恢復(fù)到原大小并和支路輸出相加。將圖像x 通過一階沙漏網(wǎng)絡(luò)輸出的特征定義為,則:
其中,f(x)M→N為殘差網(wǎng)絡(luò)的輸出特征。
圖3 一階沙漏模型
將一階沙漏網(wǎng)絡(luò)中虛線內(nèi)部的殘差網(wǎng)絡(luò)替換成一階沙漏網(wǎng)絡(luò)就可以得到一個(gè)二階的沙漏網(wǎng)絡(luò)。同理,在三階沙漏網(wǎng)絡(luò)中進(jìn)行替換,就能得到一個(gè)四階的沙漏網(wǎng)絡(luò),如圖4,關(guān)節(jié)點(diǎn)檢測網(wǎng)絡(luò)中采用堆疊四階沙漏網(wǎng)絡(luò)作為檢測網(wǎng)絡(luò)。其中,每次通過最大池化層之前都分出支路以保留圖片上關(guān)節(jié)之間的空間信息;每次下采樣之后使用三個(gè)殘差模塊進(jìn)行特征提取,所以4階沙漏網(wǎng)絡(luò)就能提取原始尺寸、1/2、1/4、1/8 尺寸上的關(guān)節(jié)點(diǎn)特征;每次提取特征后通過上采樣使圖像恢復(fù)到原始大小;與原尺寸特征進(jìn)行相加后,再通過一個(gè)殘差網(wǎng)絡(luò)進(jìn)行特征提取。所以該網(wǎng)絡(luò)不改變圖像的尺寸,只改變特征的通道數(shù)。將圖像x 通過四階沙漏網(wǎng)絡(luò)的輸出特征定義為,則可簡述為:
圖4 四階沙漏網(wǎng)絡(luò)
四階沙漏網(wǎng)絡(luò)中,每個(gè)沙漏網(wǎng)絡(luò)都是通過池化層進(jìn)行下采樣、近鄰插值進(jìn)行上采樣,這種自頂而下和自底而上的設(shè)計(jì)使得網(wǎng)絡(luò)在每個(gè)尺度上都能提取關(guān)節(jié)點(diǎn)特征。沙漏之間采用跳躍連接,使得每個(gè)像素下的關(guān)節(jié)點(diǎn)空間信息都能很好地保存。該方法不僅能提取到像手腕等局部區(qū)域的特征,還可以保留關(guān)節(jié)與關(guān)節(jié)之間的空間關(guān)系。文獻(xiàn)[15]通過實(shí)驗(yàn)證明了對兩個(gè)四階沙漏網(wǎng)絡(luò)進(jìn)行堆疊能達(dá)到很好的識別效果,所以本文中采用四階沙漏網(wǎng)絡(luò)。
由于原始大小的圖像檢測需要消耗大量時(shí)間,所以首先通過卷積層和池化層將像素降為64×64,中間使用殘差網(wǎng)絡(luò)進(jìn)行特征提取,結(jié)構(gòu)如下:
步驟1 將256×256 像素的RGB 圖像I 通過64 個(gè)7×7 大小、步長為2 的卷積核變成128×128 像素,同時(shí)I的通道數(shù)變?yōu)?4。其中,s(?)為ReLU激活函數(shù),li代表第Li層的輸出,則:
步驟2 通過殘差網(wǎng)絡(luò),其輸入通道為64、輸出通道為128。
步驟3 進(jìn)行最大池化,進(jìn)一步將數(shù)據(jù)像素128×128降為64×64,并且不改變通道數(shù)。
步驟4 同理,下采樣之后使用三個(gè)連續(xù)的殘差網(wǎng)絡(luò),其中前兩個(gè)網(wǎng)絡(luò)的輸入輸出通道都為128,最后一個(gè)輸出通道為256:
本文所提出的模型為DCGAN,該模型包括兩部分:生成器和判別器。如圖5 所示,生成器和判別器的基礎(chǔ)結(jié)構(gòu)是由文獻(xiàn)[17]中描述的基于沙漏的網(wǎng)絡(luò)組成,這是一個(gè)帶跳躍連接和上采樣層的編碼器和解碼器網(wǎng)絡(luò),在捕捉人體姿態(tài)的多樣性的同時(shí)可以適應(yīng)不同尺寸的圖像。利用殘差和線性塊對沙漏網(wǎng)絡(luò)的輸入和輸出進(jìn)行預(yù)處理和后處理,以提取特征并估算的身體部位位置,得到有價(jià)值的置信度得分圖。其中,每個(gè)棧的結(jié)構(gòu)如圖6所示。
圖5 提出的DCGAN框架
圖6 每個(gè)堆棧的內(nèi)部結(jié)構(gòu)
RGB 圖像通過生成器,可以估算16 個(gè)身體部位的置信映射。這些置信映射中的每個(gè)值代表該像素坐標(biāo)是否是特定身體部位的可能性。判別器具有與生成器類似的結(jié)構(gòu)。與傳統(tǒng)的GAN 一樣,它可以區(qū)分實(shí)際和生成的身體姿態(tài)。判別器允許網(wǎng)絡(luò)根據(jù)先前的結(jié)構(gòu)隱式地編碼生成姿態(tài)的結(jié)構(gòu)。
人體的肢體關(guān)節(jié)位置(例如手腕、肘部、膝蓋和腳踝)屬于鉸接結(jié)構(gòu),這就導(dǎo)致肢體在做動(dòng)作時(shí)會有明顯的形變,而在大多數(shù)情況下軀干上的關(guān)節(jié)(例如肩部和臀部)形變程度則比較小。所以對于人體肢體部位這些具有較大形變的部位進(jìn)行姿態(tài)估算更具挑戰(zhàn)性,需要大量不同的訓(xùn)練樣本作為支撐。為了解決這些問題,本研究對文獻(xiàn)[13-14]中生成器和判別器網(wǎng)絡(luò)的結(jié)構(gòu)進(jìn)了行設(shè)計(jì)優(yōu)化,新的設(shè)計(jì)使用了堆疊沙漏網(wǎng)絡(luò),它們可以連接起來用于建立人體部分的空間層次結(jié)構(gòu)。此外,本研究還引入了新的損失函數(shù)術(shù)語用來規(guī)范親本與子本之間的關(guān)系。分層對抗網(wǎng)絡(luò)(Hierarchical Adversarial Network,HAN)的設(shè)計(jì)和新的層次感知損失則有助于準(zhǔn)確地估算身體各個(gè)部位的位置,特別針對那些形變程度較大的或高度閉塞的身體部位。
生成器的作用其實(shí)可以看作是姿態(tài)估算器,它利用身體部位的分層結(jié)構(gòu)來估算身體關(guān)節(jié)的位置。然而,受到遮擋物、光照條件變化和圖像清晰度水平的影響,在估算人體姿態(tài)中還需要區(qū)別其中容易估計(jì)或較難估計(jì)的姿態(tài)。本文所提出的方法中使用判別器網(wǎng)絡(luò)的原因有以下幾點(diǎn):(1)對一些不太可能是自然身體姿態(tài)的情況就無需進(jìn)行估算;(2)防止生成器僅聚焦在具有足夠外觀特征的明顯姿態(tài)上,還需要集中在高度遮擋的姿態(tài)上。這兩個(gè)特征結(jié)合使用可以減少對抗損失,以在訓(xùn)練生成器時(shí)提高性能。
生成器是一個(gè)完全卷積網(wǎng)絡(luò)(Fully Convolution Network,F(xiàn)CN),其在給定輸入圖像的情況下可以推斷出身體部位的置信映射。該生成器由多個(gè)基于堆疊沙漏的網(wǎng)絡(luò)組成,而且是順序連接的。
網(wǎng)絡(luò)可以接收大小為256×256像素的輸入圖像I 。然后,預(yù)處理步驟的執(zhí)行包括使用CNN,殘差模塊和最大采樣層來提取早期特征。這一步會將提取到的特征圖像的大小降低到64×64像素。接下來,這些特征會變成第一沙漏網(wǎng)絡(luò)的輸入值,用來估算親本部分的置信圖。其次,后處理步驟包括殘差模塊、線性激活層和CNN 模塊,它們將從沙漏網(wǎng)絡(luò)提取的外觀特征編碼成具有相同數(shù)量的親本部分的置信圖。
由于本文提出親本與子本分層的思想,故采用兩個(gè)堆疊沙漏進(jìn)行識別,使用第一個(gè)沙漏網(wǎng)絡(luò)作為親本項(xiàng)來估算第一部分,再使用第二個(gè)沙漏網(wǎng)絡(luò)作為子本項(xiàng)估算之前的這些部分。親本部分的選擇源于以下原因,連接到人體軀干區(qū)域的部分變形較小并且可以只利用比較少數(shù)量的采樣層進(jìn)行提取,這些部位包括肩部、臀部和頸部。之后,利用不同的模塊處理這些置信圖,并與網(wǎng)絡(luò)中提取的早期特征連接,使用第二個(gè)沙漏估算子本的位置。沙漏網(wǎng)絡(luò)的輸出連接并傳遞到網(wǎng)絡(luò)中的下一個(gè)堆棧。最后一個(gè)堆棧的輸出即為最終生成的映射,可以用于訓(xùn)練判別器。
生成器G:RM→RN將輸入圖像I 分別映射到親本和子本的置信映射Cpa和Cch中??梢酝ㄟ^學(xué)習(xí)函數(shù)Fi來執(zhí)行映射,如下所示:
然后將親本部分和子本部分的置信映射連接到每個(gè)堆棧生成器的輸出。可以使用以下等式推斷預(yù)測姿態(tài):
通過對所有順序連接堆棧的置信度映射求和并在連接映射的置信度得分上使用soft-argmax 選擇x 和y位置來估算預(yù)計(jì)姿勢Y? 。使用soft-argmax 代替hardargmax 可以便于計(jì)算反向傳播過程中的梯度。這使得整個(gè)流程可以進(jìn)行端到端的訓(xùn)練:
生成器網(wǎng)絡(luò)本身沒有對抗分支,只能通過最小化以下?lián)p失函數(shù)來進(jìn)行訓(xùn)練:
它由四個(gè)部分組成:前兩個(gè)部分分別代表親本和子本部分的估算置信度映射和基本真值之間的差異。第三和第四部分代表親本和子本之間的層次感知損失值。其中,第一部分的計(jì)算是由第一個(gè)沙漏網(wǎng)絡(luò)(親本項(xiàng))來進(jìn)行,第二部分的計(jì)算是由第二個(gè)沙漏網(wǎng)絡(luò)(子本項(xiàng))來進(jìn)行。這兩個(gè)部分考慮了親本和子本最大得分的情況下位置的距離D 和角度Θ ,并將這些與實(shí)際映射進(jìn)行比較。新添加的層次感知損失部分有助于規(guī)范子本部分在預(yù)期位置的大形變。先將不易發(fā)生形變的部位看作親本點(diǎn)先進(jìn)行估算,這限制了子部件相對于親本部件位置的搜索空間,再估算易發(fā)生形變的子本部位,這樣分兩部分進(jìn)行估算可以提高估算的效率和效果。例如先估算出不易發(fā)生形變的頸部親本點(diǎn),則限制了對于易發(fā)生位置變化的頭部子本點(diǎn)的尋找,即只需在頸部親本點(diǎn)附近估算頭部子本點(diǎn)的位置即可,無需全局尋找,大大提高了效率。從效果上來看,在頸部親本點(diǎn)附近尋找頭部特征會大大降低從全局尋找頭部特征時(shí)找錯(cuò)的概率,其最終結(jié)果質(zhì)量也將提升,其他親本與子本點(diǎn)的估算也同理。等式(11)的損失值是由計(jì)算訓(xùn)練樣本m 和堆棧數(shù)n 的平均值得到的。
判別器D:RN→RN具有與生成器網(wǎng)絡(luò)類似的結(jié)構(gòu),具有基于堆疊沙漏的堆棧網(wǎng)絡(luò)。其中一個(gè)堆??梢杂糜谥亟ㄓH本部分的置信映射,另一個(gè)堆棧可以用于重建子本部分的置信映射。將判別器網(wǎng)絡(luò)的結(jié)構(gòu)劃分為兩個(gè)層次可以使判別器在重構(gòu)輸出圖時(shí)考慮身體部分的層次結(jié)構(gòu)。
受文獻(xiàn)[13]的啟發(fā),判別器在其中的作用是為了區(qū)分假姿態(tài)和真姿態(tài)的。具體而言,由于生成的姿態(tài)中存在遮擋或較大變形,鑒別網(wǎng)絡(luò)可以被分成兩部分,即Dpa和Dch。其中Dpa部分負(fù)責(zé)區(qū)分親本部件的假姿態(tài)與相應(yīng)的真姿態(tài)。 Dch部分則是在子本部分中扮演著同樣的角色。這兩個(gè)判別器的重構(gòu)映射被連接在一起以表示鑒別網(wǎng)絡(luò)的輸出。
訓(xùn)練判別器是非常重要的步驟,因?yàn)橄啾葟纳傻淖藨B(tài)中重建判別器,更傾向于從真實(shí)姿態(tài)中重建,這使得判別器不能區(qū)分所產(chǎn)生的姿態(tài)是真是假。為了解決這個(gè)問題,本文通過在重建真實(shí)姿態(tài)和生成姿態(tài)之間使用平衡策略。使用以下?lián)p失函數(shù)來訓(xùn)練判別器:
其中,kt是平衡項(xiàng),Lreal和Lfake分別是真實(shí)姿態(tài)和生成姿態(tài)的損失項(xiàng),其計(jì)算方法如下:
其中D(?,I)是判別器的輸出,其應(yīng)用于與真實(shí)或生成的置信映射連接的輸入圖像I 。為了控制生成器的輸出和判別器輸出之間“博弈”的平衡,平衡項(xiàng)kt∈[0,1]在每個(gè)訓(xùn)練步驟t 的更新如下:
其中λk是平衡項(xiàng)k 的學(xué)習(xí)速率,它是k 隨時(shí)間的比例增益。多樣的γ 值對于實(shí)現(xiàn)平衡方面起著關(guān)鍵作用,如果γ 值較高,則會使判別器更多地關(guān)注生成的姿態(tài),而如果γ 值較低,則會導(dǎo)致判別器更多地關(guān)注于對真實(shí)姿態(tài)的自動(dòng)編碼,為了保持這種平衡,且大部分學(xué)者對其γ 值的取值都為0.5,為了與他們能夠比較,在實(shí)驗(yàn)中令γ=0.5。
其中λG是突出對抗損失權(quán)重的超參數(shù),相當(dāng)于是Lfake。訓(xùn)練步驟如算法1所示。
算法1 分層對抗訓(xùn)練的步驟
輸入:{I},{Cpa,Cch}
while:在驗(yàn)證集中,Y?仍在改進(jìn)do:
在{Cpa,Cch}上應(yīng)用判別器網(wǎng)絡(luò);
利用式(13)計(jì)算Lreal;
將Lreal的梯度反向傳播到判別器中;
在輸入圖像上應(yīng)用生成器網(wǎng)絡(luò);
利用式(14)計(jì)算Lfake;
將Lfake的梯度反向傳播到判別器中;
利用式(12)計(jì)算loss后更新判別器參數(shù);
利用式(16)計(jì)算LG;
利用LG的梯度更新生成器的參數(shù);
利用式(10)提取Y?
End
在本章中,為了驗(yàn)證提出網(wǎng)絡(luò)的性能,將利用三個(gè)具有挑戰(zhàn)性的人體姿態(tài)估算數(shù)據(jù)集進(jìn)行實(shí)驗(yàn)并得到相應(yīng)結(jié)果。(1)文獻(xiàn)[6]中提到的LSP數(shù)據(jù)集及其擴(kuò)展版本,這里包含12 000張圖像,其中11 000張圖像將用于訓(xùn)練,另外1 000 張用于測試,部分實(shí)驗(yàn)圖像如圖7(b)所示;(2)文獻(xiàn)[7]中的MPII數(shù)據(jù)集,該數(shù)據(jù)集包含25 000張圖像以及40 000張人類動(dòng)作的圖像,部分實(shí)驗(yàn)圖像如圖7(a)所示;(3)文獻(xiàn)[8]中的人群觀察(LIP)數(shù)據(jù)集,包含50 000 張圖像,其中有16 個(gè)關(guān)鍵注釋用于人體姿態(tài)估算,部分實(shí)驗(yàn)圖像如圖7(c)所示。該數(shù)據(jù)集是從具有各種姿態(tài)和視圖的真實(shí)場景中收集的,還包含許多具有較大遮擋和低分辨率的圖像。
將MPII 和LSP 數(shù)據(jù)集中的訓(xùn)練數(shù)據(jù)融合在一起,并將本文所提出的模型訓(xùn)練250個(gè)周期。對于LIP數(shù)據(jù)集,將已經(jīng)在兩個(gè)數(shù)據(jù)集中訓(xùn)練過的模型再次放入該數(shù)據(jù)集中并另外進(jìn)行50 個(gè)周期的微調(diào)訓(xùn)練。受文獻(xiàn)[15]的啟發(fā),輸入圖像的尺寸被裁剪為256×256 像素大小。數(shù)據(jù)增強(qiáng)除了用于增加訓(xùn)練模型的泛化能力還需要防止過擬合。將模型放在Titan X GPU中進(jìn)行訓(xùn)練,其中所有訓(xùn)練模型的最小批量數(shù)為3。使用RMSProp 來優(yōu)化生成器網(wǎng)絡(luò)和判別器網(wǎng)絡(luò)的參數(shù)。生成器網(wǎng)絡(luò)的學(xué)習(xí)速率以2.5×10-4作為初始值,然后在第101和第151周期分別減少10倍。對于判別器網(wǎng)絡(luò),使用1×10-4作為初始學(xué)習(xí)率。平衡項(xiàng)kt的初始值為0,并且需要用權(quán)重參數(shù)λk進(jìn)行迭代,λk如式(15)中所示,其中在所有實(shí)驗(yàn)里λk=0.001。式(16)中的對抗損失的權(quán)重λG在所有實(shí)驗(yàn)中被設(shè)定為0.000 1。
圖7 各數(shù)據(jù)集樣本結(jié)果
(1)LSP數(shù)據(jù)集使用正確的關(guān)鍵點(diǎn)的百分比(PCK)在LSP數(shù)據(jù)集上評估本文提出的方法,為了能與其他方法比較,將容忍度(r)設(shè)為0.2。
結(jié)果如表1所示,對于本文提出的模型正確關(guān)鍵點(diǎn)的百分比能達(dá)到94.2%,這一結(jié)果要優(yōu)于文獻(xiàn)[23]和文獻(xiàn)[24]中的結(jié)果,這兩種方法也被認(rèn)為是與本文提出的方法最接近的可比方法。盡管文獻(xiàn)[23]和文獻(xiàn)[24]可以對人體的結(jié)構(gòu)信息進(jìn)行較準(zhǔn)確的估計(jì),但本文提出的模型在人體的肘部、手腕、膝蓋和腳踝等具有挑戰(zhàn)性的身體部位上進(jìn)行姿態(tài)估算有更好的效果。這說明了所提出的網(wǎng)絡(luò)既能達(dá)到估算人體姿態(tài)方面的有效性,同時(shí)還考慮了各身體部位的層次結(jié)構(gòu)。
表1 LSP數(shù)據(jù)集中r=0.2 時(shí)正確關(guān)鍵點(diǎn)的百分比(PCK)%
(2)LIP數(shù)據(jù)
表2給出了該方法的PCKh結(jié)果并與先前方法的結(jié)果進(jìn)行了對比。PCKh與普通PCK相同,區(qū)別在于容忍度的大小是根據(jù)頭部而不是軀干來計(jì)算的。本文提出的模型優(yōu)于利用訓(xùn)練這些數(shù)據(jù)集來做姿態(tài)估計(jì)的其他成果,并獲得了PCKh得分為87.5%的最新結(jié)果。同樣,本文模型著重考慮了人體結(jié)構(gòu)的層次關(guān)系,可以在容易發(fā)生較大形變的關(guān)鍵部位檢測得更好,在手腕部位與文獻(xiàn)[14]中的方法對比準(zhǔn)確率實(shí)現(xiàn)0.7%的增長就可說明這點(diǎn)。Hybrid Pose Machine和Pyramid Stream Network通常被認(rèn)為是在LIP數(shù)據(jù)集上訓(xùn)練的經(jīng)典方法,本文將此兩種方法作為對比,結(jié)果表明,本文方法更優(yōu)。這也肯定了所提出方法的有效性以及將層次結(jié)構(gòu)編碼到模型中的重要性。
表2 LIP數(shù)據(jù)集中r=0.5 時(shí)正確關(guān)鍵點(diǎn)的百分比(PCKh)%
(3)MPII數(shù)據(jù)集
MPII數(shù)據(jù)集代表了人體姿態(tài)估算中最具挑戰(zhàn)性的基準(zhǔn)數(shù)據(jù)集,因?yàn)樗S多進(jìn)行不同活動(dòng)的人的各種姿態(tài)的變化。在表3中,利用MPII數(shù)據(jù)集的測試集中顯示了PCKh 結(jié)果,所有結(jié)果均以0.5 作為容忍度。與文獻(xiàn)[14]和[24]這些未考慮層次結(jié)構(gòu)的方法相比,本文方法對大多數(shù)身體部位的估算都能顯示出更好的結(jié)果(見表3)。
表3 MPII數(shù)據(jù)集中r=0.5 時(shí)正確關(guān)鍵點(diǎn)的百分比(PCKh)%
本文方法的PCKh 值對所有部位的平均值以及手腕和腳踝部位上的值優(yōu)于其他方法的結(jié)果。這再次證明了本文所提出的方法在估算有難度的身體部位姿態(tài)時(shí)的魯棒性。
由于MPII 數(shù)據(jù)集在人體姿態(tài)估計(jì)中最具挑戰(zhàn)性,所以本文針對該數(shù)據(jù)集,以不同的容忍度進(jìn)行對比實(shí)驗(yàn)。圖8 所示為MPII 數(shù)據(jù)集上平均PCKh 值。從曲線中可以看出,本文方法在低容忍度([0.125,0.3])下,效果優(yōu)于現(xiàn)有方法。
圖8 不同容忍度下平均PCKh曲線(MPII)
本文提出了一種基于堆疊沙漏的生成對抗的網(wǎng)絡(luò),該網(wǎng)絡(luò)可以隱式地推斷身體各部位的結(jié)構(gòu)和層次。本文所提出的網(wǎng)絡(luò)顯示了學(xué)習(xí)估算身體部位空間關(guān)系的能力。它經(jīng)過端到端的訓(xùn)練,并在三個(gè)不同的基準(zhǔn)數(shù)據(jù)集上進(jìn)行了測試。該網(wǎng)絡(luò)已經(jīng)顯示出估算身體部位的能力,這些身體部位在很大程度上存在大變形并且高度被遮擋。而本文所提出的方法能夠克服這些障礙并實(shí)現(xiàn)較好的性能,還在多種數(shù)據(jù)集上獲得最新的實(shí)驗(yàn)結(jié)果,并與其他相關(guān)數(shù)據(jù)集上的結(jié)果對比。此外,本文所提出的網(wǎng)絡(luò)還可以擴(kuò)展并對相鄰身體部位之間的其他關(guān)聯(lián)特征進(jìn)行編碼。而且,該網(wǎng)絡(luò)還適用于處理身體部位之間的多個(gè)等級層次。