趙 勇,巨永鋒
ZHAO Yong1,2,JU Yongfeng1
1.長安大學 電子與控制工程學院,西安 710064
2.西安郵電大學 自動化學院,西安 710121
1.School of Electronic and Control Engineering,Chang’an University,Xi’an 710064,China
2.School of Automation,Xi’an University of Posts and Telecommunications,Xi’an 710121,China
人是各種社會活動的主體,因此人體動作行為識別一直都是計算機視覺領域一個非常熱門的研究方向,在視頻監控、人機交互、虛擬現實和視頻檢索等方面都有著非常廣泛的應用。人體是由頭部、軀干、四肢、手和腳等多個部位通過關節相互連接而成的,人類的各種動作和行為都是靠人體部位來完成,人體動作不同,人體部位的姿態也不同。因此若能確定人體各部位的定位位置,將給人體動作行為的識別打下良好的基礎。人體姿態估計就是這樣一種自動確定頭部、軀干和四肢等人體部位,或肩、肘、腕、膝和踝等關節在靜態圖片或視頻幀圖像中的定位位置的過程[1],是人體動作行為識別的一個基礎問題,受到了眾多研究人員的關注,并且已經提出了多種人體姿態估計算法[1-13]。
現有人體姿態估計算法主要可分為基于整體和基于模型的兩大類。基于整體的人體姿態估計算法將人體視為一個整體并用圖像特征來描述,通過回歸分析或樣例比較的方式來確定人體部位或關節的定位位置。基于模型的人體姿態估計算法將人體視為多個存在關聯的個體,其中每個個體為一個部位或關節,或者連在一起的多個人體部位或關節,利用圖像特征對個體建立外觀模型來代替其真實外觀,并根據人體部位或關節間外觀和空間的相互關聯情況建立人體模型,通過優化由人體模型構造的能量函數來確定部位或關節的定位位置。
基于模型的人體姿態估計算法的研究主要集中在部位或關節外觀模型和人體模型的建立兩方面。近幾年來,部位或關節外觀模型的研究主要集中在深度學習方向,與傳統外觀模型利用諸如邊緣、顏色、形狀等手工設計的圖像特征[1-6]相比,深度學習可以獲取表達和區分能力更強的抽象特征,能更準確地表征真實人體部位或關節的外觀特征。卷積神經網絡(Convolutional Neural Network,CNN)是目前建立部位或關節外觀模型時應用最成功的深度學習模型[8-13],Jain等[8-9]將訓練后的CNN作為關節外觀模型,網絡輸出即為關節可能定位與外觀模型的相似度,并考慮到關節間空間定位的先驗分布,提出了一種基于空間先驗的人體模型;Chu等[10]在傳統CNN的卷積層引入幾何變換核表征關節間的依賴關系,將改進后的CNN用來建立關節外觀模型,并將樹形圖結構人體模型集成進CNN進行人體姿態估計;Lifshitz等[11]將兩個CNN級聯起來作為關節外觀模型,第一個為傳統CNN結構,用于計算圖像中每個像素對關節定位的權重系數,第二個在傳統網絡中添加了一個反卷積層,用于計算關節可能定位與外觀模型的相似度,并在樹形圖結構模型中添加了投票因子并將其作為人體模型,投票系數由第一個CNN計算出的權重系數來確定;Chu等[12]利用CNN提出了一種多情境注意力機制網絡,通過設計的3種多尺度、多語義和全局-局部注意力機制模型來學習圖像上下文信息,在考慮到關節間關聯的前提下利用條件隨機場模型建立了人體模型,并將其集成進CNN進行人體姿態估計;Ning等[13]對關節間的先驗知識進行學習,并將其映射進CNN結構,提出了一種知識導向的深度學習網絡,并用于人體姿態估計。
人體姿態估計中人體部位或關節定位位置的估計除了要考慮可能定位與外觀模型的相似度之外,還需要考慮部位或關節之間的外觀和空間位置的約束。雖然文獻[8-9]在建立人體模型時同時考慮了關節可能定位與關節外觀模型的相似度和關節間的先驗定位分布,但卻將基于同樣先驗分布建立的人體模型用于不同待處理圖片進行人體姿態估計,并沒有考慮到不同圖片中關節的實際定位對先驗分布服從程度的不同,而實際上,對于服從程度高的圖片,關節間的先驗分布會對關節的準確定位提供有效的幫助,但對于服從程度較低的圖片,關節間的先驗分布反而可能會對關節的準確定位造成消極的影響。為此,本文提出了一種基于條件先驗的人體模型,并將其用于人體姿態估計。
本文的貢獻主要有兩方面:(1)設計了一種計算關節間空間先驗分布的方法;(2)提出了一種基于條件先驗的人體模型,在基于空間先驗的人體模型中添加了一個自適應調節參數,用來調節關節間空間先驗分布在計算關節定位概率時所起作用的大小,參數值根據關節可能定位與外觀模型的相似度的大小來確定。
由于圖像內容的復雜多變性,以及關節外觀模型并不一定能完全準確描述關節的真實外觀特征,在進行人體姿態估計時,除了考慮與關節外觀模型的相似度之外,還要考慮關節之間的相對定位位置。雖然關節間的定位會滿足一定的先驗分布,但不同圖片中相連關節的實際定位情況并不相同,對關節間定位先驗分布的服從程度可能差別很大,如果對每幅待處理圖片都采用相同的關節間定位先驗分布的話,服從先驗分布程度較低圖片的估計結果可能較差。為解決這個缺陷,本文提出了一種基于條件先驗的人體模型,根據圖片的實際情況自適應調節關節間空間先驗分布在計算關節定位概率時所起作用的大小。
人體是由頭、軀干、四肢以及手腳等部位通過肩、肘、腕、膝和踝等關節連接而成的,但不同關節之間有著不同的連接和相對定位關系。例如肩關節和臉部雖然沒有直接連接,但卻具有相對固定的定位關系,肩關節和肘關節相互連接,而且具有相對固定的定位關系,肩關節和膝關節互不相連,而且沒有相對固定的定位關系。
定位關系相對固定的關節之間的空間先驗分布的學習可由4個步驟來完成,圖1以左肩關節相對于臉部中心的空間先驗分布為例給出了學習過程。
(1)在訓練圖像中標注左肩關節和臉部中心,利用人體上半身檢測器[14]檢測出人體上半身正方形框,如圖1(b)所示。
(2)根據人體上半身的正方形框尺寸與標準尺寸(本文設置為120×120像素)的比例對左肩關節和臉部中心同時進行縮放,并以左肩關節為中心標注出64×64大小的左肩區域,如圖1(c)所示。
(3)將所有訓練圖像都按照步驟(2)進行縮放和標注,然后將標注出的左肩關節區域都投影到同一坐標系下,即可得到左肩關節相對于人體上半身的先驗定位區域,如圖1(d)所示。

圖1 關節間空間先驗分布概率學習示意圖
(4)將所有訓練圖像經過縮放后得到的如圖1(c)所示的左肩關節和臉部中心都投影到同一坐標系,其中所有臉部中心均投影到中心位置。根據投影到每個位置的左肩關節的多少即可計算空間先驗分布概率,如圖1(e)所示,顏色越深定位概率越低,計算公式如式(1)所示。

其中,n為投影到x上的左肩關節個數;N為訓練圖像總個數。
采用相同的方法,所有定位關系相對固定的關節間的空間先驗分布概率都可以學習確定,如圖2所示。出于對稱的原因,將左肘相對于左肩的先驗分布旋轉180°即可得到左肩相對于左肘的先驗分布概率。其他的類,如右肩相對于右肘、左右肘相對于左右腕、左右胯相對于左右膝、左右膝相對于左右踝的空間先驗分布可采用同樣方法得到。

圖2 關節間空間先驗分布
考慮到相鄰關節的空間先驗分布,文獻[8-9]提出了一種空間先驗人體模型。在計算關節定位概率時除了考慮關節可能定位與關節外觀模型的相似度之外,還將與相鄰關節的空間先驗對關節的影響也考慮進來。該模型可較為有效地剔除掉相似度雖然很高但與相鄰關節間的空間定位與空間先驗分布嚴重不符的關節可能定位,從而可以更好地確保估計出的各關節定位更符合真實人體情況。

其中,p′i(x)為關節定位在像素點x時的定位概率;pi(x)為關節定位在像素點x時與關節外觀模型的相似度;U為與關節i的定位關系相對固定的關節集合;bu為U中關節u對關節i的消息,類似于置信傳播算法中的局部消息。

其中,pi|u=0為關節i位于x,而關節u位于y,并將其視為圖像中心時,根據2.1節學習得到的先驗分布而確定的先驗概率;pu(y)為關節u定位在y時與外觀模型的相似度。
不同人體關節的定位具有很大的隨機性,關節間的真實定位可能恰好處于空間先驗分布概率較低的相對位置,但文獻[9]將關節可能定位和外觀模型的相似度與關節間的空間先驗分布對關節的影響同等對待,從而使得計算得到的關節真實定位概率可能并不是很高。為解決這個缺陷,本文在文獻[9]所提基于空間先驗的人體模型中引入自適應調節參數來調節關節間空間先驗分布在計算關節定位概率時所起的作用,如式(4)所示。通過自適應調節參數,可以使得在計算具有較高相似度的關節定位概率時相似度起更大的作用,而對于相似度較低的關節定位,在計算關節定位概率時關節間的空間先驗起的作用更大。

其中,μ為自適應調節參數,如式(5)所示,參數取值示意圖如圖3所示。


圖3 自適應調節參數示意圖
其中,T1和T2為相似度閾值;a1、a2、θ1、θ2均為調節因子。據前所述,當關節可能定位的相似度較小(小于T1)時,在計算關節定位概率時關節間的空間先驗所起的作用更大,而且相似度越小,關節間空間先驗所起的作用越大。為此本文將參數θ1的取值范圍設置為θ1>1,從而使得相似度在[0,T1]范圍內變化時,μ逐漸從1+a1減小至1,但為防止過于強化關節間空間先驗所起的作用,本文將a1的取值范圍設置為[0,2]。當關節可能定位的相似度較大(大于T2)時,在計算關節定位概率時關節間的空間先驗所起的作用較小,而且相似度越大,關節間空間先驗所起的作用越小。為此本文將參數θ2的取值范圍設置為(0,1),從而使得相似度在[T2,1]范圍內變化時,μ逐漸從1減小至1-a2,但為防止過于弱化關節間空間先驗的作用,本文將a2的取值范圍設置為[0,0.6]。上式中的參數T1、T2、a1、a2、θ1和θ2可根據訓練集中關節定位準確度的最大化準則來確定:

其中,p為對訓練集中所有圖片的關節定位準確度。
對式(4)進行自然對數變換,即可得到關節定位概率的計算公式。人體上半身的左肩、左肘、左腕、左胯、左膝和左踝關節的計算公式分別如式(6)~(8)所示,右肩、右肘、右腕、右胯、右膝和右踝關節的計算公式與此類似。

卷積神經網絡在人臉檢測中已經取得了良好的效果,具有很高的檢測效率。為此,本文在計算人臉定位概率時僅利用臉部可能定位與外觀模型的相似度,并不考慮人臉與肩部關節的空間先驗分布,實驗結果也證明了考慮人臉與肩部關節的空間先驗分布反而會降低人臉檢測準確度。
CNN是目前建立部位或關節外觀模型時應用最成功的深度學習模型,主要包括卷積層和池化層,卷積層為特征提取層,池化層是特征統計層。卷積層通常包含多個卷積核,每個卷積核提取一種特征,采取局部感知和權值共享的方式來減少參數數量。
現有利用CNN建立的關節外觀模型大都僅利用最后一個池化層的輸出視為圖像特征,類似于人類利用整體輪廓來進行目標識別,而這與人類在識別物體時往往同時利用局部細節和整體輪廓的特性并不相符。為此,本文同時采用最后一個卷積層和最后一個池化層的輸出合在一起視為圖像特征,卷積層輸出用于表達局部細節特征,池化層輸出用于表達整體輪廓特征。采用的卷積神經網絡結構如圖4所示,由3個卷積層、3個池化層和3個全連接層組成,具體參數如表1所示。

圖4 卷積神經網絡結構

表1 卷積神經網絡結構參數
本文從訓練圖像中剪切以關節為中心的64×64圖像塊,并將其作為網絡訓練正樣本,將從訓練圖像任意剪切出的同樣大小圖像塊作為網絡訓練負樣本。在將圖像塊引入CNN前,先對圖像塊進行局部響應歸一化[15]操作,此舉可有效提高CNN的泛化能力。
網絡3個卷積層和前兩個全連接層中的神經元采用具有很強防過擬合能力的修正線性單元(ReLU)[16]作為激活函數,全連接層3的一個神經元采用logistic函數作為激活函數,神經元的輸出即為關節的定位概率。

本文采用隨機梯度下降算法作為卷積神經網絡的訓練算法,設置目標函數為:

其中,W為網絡權值矩陣;N為樣本個數;fi(W)為CNN全連接層輸出;di為樣本標簽,正、負樣本分別為1和0。
將建立的關節外觀模型和基于條件先驗的人體模型用于人體姿態估計,主要包含以下幾個步驟,圖5以左肩關節的定位為例給出了定位過程示意圖。
(1)用人體上半身檢測算法[14]檢測人體上半身,并按照其與標準大小(120×120像素)的比例縮放待處理圖像,然后利用基于CNN的人臉模型檢測人臉,并標注出人臉中心,如圖5(a)所示。
(2)根據前面學習的左肩關節相對于人體上半身的先驗定位標注出左肩關節的定位區域,如圖5(b)所示。
(3)對于左肩關節的定位區域,通過滑窗的方式計算每個關節可能定位與關節外觀模型的相似度,如圖5(c)所示,顏色越黑表示相似度越高。
(4)利用基于條件先驗分布的人體模型計算關節的定位概率,如圖5(d)所示。
(5)定位概率最大的即為關節最終定位,如圖5(e)所示。

圖5 人體姿態估計過程示意圖
為方便比較,本文采用人體姿態估計領域常用的FLIC圖像集[4]和LSP圖像集[17]構造訓練和測試圖像集。FLIC數據集是從多部影視作品截取的視頻幀圖像組成,LSP數據集由各種運動員的運動照片組成,兩個圖像集中的人體姿態和背景都是復雜多變的,尤其是LSP圖像集中的人體姿態更加復雜多變。將FLIC圖像集中的3987張圖片和LSP圖像集中的1000張圖片合在一起構造訓練圖像集,將FLIC圖像集中剩余的1016張圖片和LSP圖像集中剩余的1000張圖片合在一起構造測試圖像集。為增加卷積神經網絡的訓練樣本數量,本文將訓練圖像集中的圖片在3°~7°范圍內按順時針和逆時針分別隨機旋轉兩個角度,從而將訓練圖像數量擴大為原來的5倍。由于不同訓練圖像中人體尺寸大小的不同,在從訓練圖像中獲取關節樣本時,本文首先檢測人體上半身,然后根據其大小與標準大小120×120的比例來縮放圖像,最后從縮放后的訓練圖像中剪切出以關節為中心的64×64的圖像塊作為訓練CNN的正樣本,將從訓練圖像隨機剪切出的同樣大小的圖像塊作為CNN的負樣本。仿真實驗在英偉達Tesla M40 GPU硬件平臺上進行,模型訓練時間約為1.5天。
圖6給出了文獻[9]和本文算法對圖5中待處理圖片的左肩關節定位結果。如圖6(a)所示,圖中人體左肩關節實際定位區域與外觀模型的相似度很高,但由于左肩關節處于其相對于人臉的先驗分布概率較小的位置,而文獻[9]對任一待處理圖像采用的都是基于相同空間先驗的人體模型,從而導致計算出的左肩關節實際定位區域的定位概率并不是最大,計算出的定位概率如圖6(b)所示,出現了定位錯誤。而利用本文所提的基于條件先驗分布的人體模型計算左肩關節的定位概率時,雖然實際定位區域的先驗分布概率較小,但由于大幅弱化了空間先驗分布的作用,仍然得到了很大的定位概率,如圖6(c)所示,從而實現了正確定位。

圖6 左肩關節定位比較
圖7給出了利用本文基于條件先驗的人體模型對幾幅圖片進行人體姿態估計的結果,圖中圓點表示關節定位位置。從圖7可以看出,將本文所提基于條件先驗的人體模型用于人體姿態估計時,處于不同背景和場合下的人體都取得了良好的估計結果。
表2和表3分別給出了將本文基于條件先驗的人體模型用于人體姿態估計和其他一些經典人體姿態估計算法的估計準確度比較結果。從兩個表可以看出,將本文基于條件先驗的人體模型用于人體姿態估計時,人體各個部位的估計準確度都得到了一定程度的提高。

圖7 人體姿態估計示例

表2 LSP數據集估計準確度比較 %

表3 FLIC估計準確度比較 %
本文針對當前部分人體模型在利用部位或關節空間定位的先驗分布建立時并沒有考慮到不同圖片中部位或關節的實際定位對先驗分布服從程度的不同,提出了一種基于條件先驗的人體模型,添加自適應調節參數來調節先驗分布在計算關節定位概率時所起作用的大小。如何進一步完善基于條件先驗的人體模型及將其集成進CNN將是今后的研究內容。