陶 飛,成科揚,張建明,湯宇豪
(江蘇大學 計算機科學與通信工程學院,江蘇 鎮江 212013)
行人再識別是智能圖像視頻分析領域的研究熱點。近年來,人臉識別技術的快速發展使得機器辨別人臉的能力遠超人類[1],其在“智慧城市”“平安城市”的構建等多個領域得到了廣泛的應用[2]。但在實際應用的場景中,攝像頭并非在任何情況下都可以拍攝到清晰的人臉,并且一個攝像頭往往無法覆蓋所有區域,而多個攝像頭之間一般也沒有重疊。因此,用人的整體特征信息來對行人進行識別就變得愈發重要。由此,計算機視覺領域針對行人再識別的研究工作應運而生。
行人再識別是指對行人進行重新識別。由于行人數量不斷增加,在監控攝像頭下僅依靠人工對海量數據進行排查時工程量浩大,不僅耗費大量的人力,而且效率低,容易產生很多遺漏。因此,深度學習方法在行人再識別中得到了有效的運用。深度學習方法是借鑒人腦信息處理的分層級聯方式[3],可以自動地學習數據的深層特征以適應各種復雜的情形。深度學習方法使行人再識別有了更多的解決方案,但是由于人體的非剛性和各種客觀條件,如光照、姿態、視角以及尺度的變化,會嚴重影響對行人圖像的分辨,因此行人再識別技術的識別精度仍然有待進一步提高。
本文提出一種行人再識別方法,通過研究行人姿態的粗、細粒度屬性,將行人姿態關節點圖像融入姿態信息學習模型,對已有行人屬性進行補充。在此基礎上,使行人屬性學習過程并行化,根據行人語義屬性劃分行人身體結構,并在梯度下降過程中進行梯度交換以獲取更優參數,加快網絡訓練速度。
行人特征的表示是行人再識別的關鍵。行人的視覺外觀相對容易提取,也不會在短時間內發生巨變,可以對行人再識別的特征表示方法進行不斷改進以有效區分行人。
低層視覺特征主要包括顏色、紋理、梯度以及它們的組合。顏色特征不依賴于圖像本身的尺寸、視角等因素,具有較高的魯棒性。文獻[4]結合行人局部與全局外貌特征,采用色調飽和值(Hue Saturation Value,HSV)表示圖像全局特征,提高了行人識別率。文獻[5]將繪畫結構應用于行人再識別,以更好地適應人體結構,對每個部分提取更精確的顏色特征。紋理是一種反映圖像中同質現象的視覺特征,其基于多個像素點區域進行統計,避免了局部偏差,具有較大的區域優勢。梯度特征使得許多容易受到行人自身姿態信息變化、視覺相似性影響的生物特征得以改進和提高[6]。通過計算和統計圖像局部區域內的梯度大小和梯度方向,將圖像分成若干細胞單元,對每個單元的像素進行梯度采集并組合成特征,這樣即使行人圖像受到了光照等的影響,也仍然能夠獲得較好的識別效果。
上述單個特征提取方法都存在著一定缺陷。顏色特征受外在因素影響較大,比如光照、天氣都會導致圖像色彩失真。紋理特征會受監控攝像頭的抖動等因素影響。梯度特征沒有考慮到物體遮擋等問題。因此,文獻[7]提出一種將身體不同部位的整體色彩含量、顏色空間排列、局部圖案紋理進行加權的行人再識別方法,提高了低分辨率、遮擋和姿態、光照變化等情況下算法的魯棒性。
在行人再識別過程中,還需要更多富含語義信息的中層語義特征,比如發型、鞋子、襯衫等屬性信息。因為在一段時間內行人的屬性變化較小,對行人外觀進行屬性分析較為合理,這樣不僅可以避免外部因素對行人再識別結果的影響,而且語義特征更切合人們的思維,貼近日常生活。
文獻[8-9]研究了自然場景下的屬性識別,提出可以通過概率模型來分析低層次屬性,如條紋、格子。文獻[10]定義了15種語義屬性用來描述行人,包括衣著種類、發型、是否攜帶物品等,最后對選擇的中級語義特征進行加權,避免了低層特征完全依賴特征統計,并且只能有限地區分行人視覺外觀等影響。文獻[11]提出將二進制屬性嵌入連續低秩屬性空間,利用共享信息來提高再識別準確性,使得語義屬性具有更好的匹配能力。
深度學習通過對低層特征的學習,得到表示屬性類別或特征的更高層特征。在網絡模型訓練過程中,隨著若干卷積、匯合操作的堆疊,從各層得到的深度特征逐漸從泛化特征(如邊緣、紋理等)過渡到中層屬性特征(軀干、頭部等模式),自動學習行人屬性特征及其之間的關系。文獻[12]基于卷積神經網絡提取行人屬性特征進行行人再識別,通過在VIPeR數據集上標注行人的衣著及與各項軟生物特征相關的17個二進制屬性,將其輸入分類器進行行人屬性學習。
目前基于屬性的行人再識別方法多數通過建立深層次的模型,很少有對屬性研究影響最多的缺失、誤檢等問題產生的原因,即行人姿態信息,進行詳細研究,更鮮有對行人特有姿態信息加以學習、分析和利用。
2.1.1 行人再識別中的姿態
行人圖像在視覺上的復雜性挑戰,部分是由于行人姿態信息在實際場景中的變化導致的。因此,結合人體姿態信息對行人屬性特征進行擴充描述,有利于對行人身份的判別。
在行人再識別領域中,多數姿態學習方式都基于局部信息,例如對人臉姿態進行估計[13]。文獻[14]將姿態分為細粒度姿態和粗粒度姿態,如圖1所示。細粒度姿態學習是將行人按照人體關節點劃分定位,如圖1(a)所示。粗粒度姿態學習是將行人按照姿態信息劃分為前、后、側3種視角,如圖1(b)所示。

圖1 行人姿態信息示意圖
2.1.2 行人姿態特征提取
通常根據識別任務的場景需要選擇合理的姿態信息類別。下面分別介紹針對細粒度姿態和粗粒度姿態的特征選擇和提取模型。
在細粒度姿態學習過程中,將人體定義為14個關節點[15],通過級聯卷積神經網絡來獲取關鍵點特征,將每個行人圖像輸入到網絡中進行回歸,每一個關節點都使用整個圖像。將人體的姿態信息用14個人體關節點來表示,整個人體表示為如下向量:
本文以x表示圖像,y表示該圖像的標簽,則yi表示該圖像的第i個關節點的坐標。將最終檢測到的細粒度姿態信息圖表示為B=(bl,bw,bh),其中,bl表示關節點的位置,bw表示圖像寬度,bh表示圖像的高度。采用N(·)方法標準化圖像中的所有關節點,即將坐標原點移到圖像的中心位置,N(x,B)就是用B獲取圖像x的對應部分,并對B的每一個節點都進行標準化處理。
N(y,B)=(N(y1,B)T),N(y2,B)T,…,N(y14,B)T)
其中,fB是一個強映射函數。

y*=N-1(φ(N(x);θ))
對訓練集進行標準化處理:
DN={N(x);N(y)|(x,y)∈D}
最終的模型通過損失函數計算,寫為:
粗粒度姿態信息,通過網絡對行人圖像的姿態信息進行粗略檢測,與原始的圖像所提取的行人特征相融合。通過預訓練姿態信息模型對目標行人數據集提取姿態信息,作為行人中層語義屬性特征的標簽之一,賦予行人更完善的語義屬性,針對行人的視角變化、部分遮擋等問題,如圖2所示的行人由于粗粒度姿態變化導致行人背包、Logo等屬性缺失,從而造成的漏檢或誤檢,進行了合理有效的解決。

圖2 姿態對行人屬性的影響
在行人再識別研究中,姿態信息的變化會導致行人屬性的大量缺失,這會對目前基于行人屬性的識別方法準確性產生較大的影響。此外,對人體的關鍵點定位所刻畫出的人體關節點,更適用于行人姿態信息變化較大的識別,因為行人動作幅度大,變化多,有效信息難以截取。因此,針對這2種粒度的姿態特征,對行人再識別進行優化,具有實際意義。
2.2.1 屬性劃分
為了更有針對性地學習行人的屬性特征,本文將行人的身體進行分割,通過相互重疊的劃分方法,避免圖像由于分割造成的屬性缺失和不完全,這樣有重疊的學習也有利于參數的交換。
本文選擇在行人領域比較有區分度的屬性,并根據屬性的設定來標注預訓練數據集和目標數據集。對于每一張行人圖像,將具有該屬性的標注為1,不具有該屬性的標注為0。
將行人屬性學習中的每一個串行獨立網絡設計為9層結構,分別為1個輸入層、3個卷積層、3個子采樣層、2個全連接層。將輸出結果輸入屬性分類器,最終根據分類器所得結果進行概率計算。
行人屬性類別的判定,需要通過屬性-類別映射表對標注的行人屬性和類別進行統計后生成。分配粗粒度屬性A={a1,a2,…,am}和細粒度屬性B={b1,b2,…,bn}2個分類器,利用所有屬性進行訓練,得到粗、細2種屬性類別器。每個屬性會通過后驗概率公式計算,得出行人判定。
在屬性-類別映射表中列出具有A類屬性的概率zi以及具有B類屬性的概率zj。因此,一個具有粗粒度屬性k的最終概率和具有細粒度屬性t的最終概率分別表示為:
其中,x表示行人圖像,p(zi|Ak)表示屬性與類別之間的概率關系,計算公式為:

通過對粗粒度屬性和細粒度屬性結果進行綜合,得出粗粒度屬性貢獻值和細粒度屬性貢獻值β,進而做出最終的行人判別。結合屬性-類別映射表以及后驗屬性概率分布[16],得出各個行人的概率:
p(z|x)=αp(zi|x)+βp(zj|x)
取上述計算得到的概率分布最大值作為行人樣本最終的概率用以匹配行人:
2.2.2 并行化過程
本文根據卷積神經網絡的特點以及行人屬性粗、細粒度的劃分,設計了一種行人分割結構,如圖3所示。根據行人的34種屬性,對行人圖像進行標注。將行人圖像分為5個部分,與原圖像同時輸入,對所有分塊進行并行化訓練。根據訓練后的行人分塊特征圖,將每個分塊對應的屬性再并行輸入相應的屬性分類器進行分類訓練。

圖3 行人分割示意圖
屬性學習通過對行人原始圖像及其相關聯的分塊圖像進行訓練,避免了全局特征中的局部屬性缺失,將其融入到原始行人圖像訓練中,綜合得出較好的屬性分類結果。本文設計一種6層并行的框架,包含6個獨立卷積神經網絡,每個并行的分支網絡結構獨立且具有級聯特性,從而提高行人再識別研究的識別準確性。
圖4給出了本文的并行化結構,根據數據集中行人粗、細粒度屬性將其分割為5個互相重疊的模塊,將訓練數據分割成5個子集,并將原圖像也作為其中一個子集,從而提高參數的可靠性。為梯度下降算法設置1個主參數服務器和6個從節點進行參數交換,并將子集數據輸入到各個節點。每個節點并行利用本地訓練子集分批計算參數梯度,當本地的各個從節點參數梯度Δw計算完畢之后傳輸到主節點,并獲取主節點目前的參數w,主節點接收到梯度值后,利用梯度值進行參數運算w′=w-ηΔw,并更新全局參數值。

圖4 并行化結構示意圖
主參數服務器是由多個圖形處理器(Graphics Processing Unit,GPU)組成的集群,采用Between-graph模式進行數據并行。將訓練的參數保存在參數服務器中,行人圖像數據直接分塊保存在各個計算從節點中,無需分發,對每個從節點計算其梯度變化,將需要更新的參數傳遞給主參數服務器。數據不分發模式,適用于本文劃分好的行人分割圖像數據,可以節省大量的時間。
為驗證本文提出的基于姿態與并行化屬性的方法有效性,實驗在RAP[17]行人數據集上進行模型的預訓練,獲取行人姿態信息分類標簽,最終在VIPeR[18]行人數據集上進行測試,并與其他方法的識別率進行對比驗證。
RAP數據集通過26個攝像機,共采集了41 585個行人樣本,每個樣本都注明了72個屬性以及遮擋、身體部位等信息。該數據集經過長期在購物中心收集行人圖像,對所收集樣本不僅標注了細粒度行人屬性,還包含了行人的姿態信息。注釋前、后、左、右4種類型的姿態信息視角,如果圖像被嚴重遮擋,則不會對其進行注釋。圖像大小統一縮放為128像素×48像素的RGB圖像。
VIPeR數據集包含了632個不同行人的圖像,共有圖像1 264張。該數據集采用2個攝像頭進行拍攝,每個攝像頭對一個行人只提供一張圖像。圖像拍攝歷時數月,且拍照選擇的光線、角度和行人姿態信息不同,可以更好地衡量行人再識別方法的有效性。在該數據集中,每個行人圖像被標注了視角,圖像大小統一縮放為128像素×48像素的RGB圖像。
由于VIPeR數據集中的行人圖像數據量較少,難以使網絡訓練充分,因此本文采用RAP數據集進行預訓練。RAP數據集環境、背景因素、視點、遮擋和身體部位信息豐富且全面,可以有效提高模型的特征提取能力,通過微調也能在目標數據集上達到較好的效果。
本次實驗的軟硬件設置在Ubuntu 16.04版本的服務器集群上,計算機處理器配置為Intel Xeon E5-2630V4 10核/ 2.2 GHz/ 25 MB緩存/ 20線程,內存為Samsung 16 GB DDR4 2 400 MHz ECC REG(共128 GB),GPU計算卡是NVidia P100 16 GB,GPU加速版本是CUDA8.0。
將RAP數據集中圖像大小不一的所有行人圖像統一成實驗所需要的規模,并對實驗中需要的和原本數據集標注有誤差的數據進行標簽的修改,具有相應屬性標簽的標注為1,不具有以及被遮擋的都設置為0,并統計屬性-類別映射表。在實驗中,通過對RAP數據集中的行人樣本圖像進行訓練,初始化學習率為0.001,迭代次數為1 000次,得到有效的姿態信息分類和屬性分類模型。將該模型應用在目標數據集進行模型的微調,將數據集分為均等的兩部分,一部分用于網絡的訓練,剩下的用于網絡性能的測試。由于目標數據集圖像數量較少,為使模型更加穩定,微調后的初始化學習率為0.001,迭代次數不變。
3.3.1 參數選擇
本節實驗所涉及的參數選擇主要是對行人粗、細粒度屬性和貢獻值的選擇。行人粗、細粒度屬性和貢獻值的選擇,關系到對行人的識別率,但是有些屬性對行人識別過程影響不大,反而會使模型產生冗余。通過對屬性對應的行人圖像數量進行統計,發現有一些屬性雖然有較明顯的特征,但是圖像數量太少,難以達到訓練需求,最終,針對已有文獻對本文目標數據集的研究,選取了日常較為常見的34個屬性(其中粗粒度屬性有16個,細粒度屬性有18個)。粗粒度屬性有:性別、帽子、長發、短發、長袖、短袖、無袖、外套、上衣紋理、有Logo、長下裝、短下裝、下裝紋理、背包、攜帶配飾、鞋;細粒度屬性有:無發、盤發、馬尾、長披發、齊肩發、不規則紋理、橫條紋、豎條紋、長褲、長裙、短褲、短裙、雙肩包、單肩包、手提包、靴子、單鞋、涼鞋。
行人屬性粗、細粒度的貢獻值,是兩種粒度對于最終識別率的體現。貢獻值越大,該粒度屬性在最終的模型準確性中起到的作用也越大。由于α+β=1,本文取α∈{0.0,0.1,0.2,0.3,…,0.9,1.0}在預訓練數據集和目標數據集上進行逐個實驗,結果如圖5所示。從圖5可以看出,當α=0.6,β=0.4時,在預訓練數據集RAP和目標數據集VIPeR上模型均獲得最好的識別準確率。由于目標數據集行人圖像數據少,模型魯棒性不足,因此結果沒有預訓練結果好,但兩者差距不大。

圖5 不同α對應的識別準確率
3.3.2 網絡模型
細粒度姿態學習就是對于給定的行人圖像,將人體14個主體關節點位置作為行人姿勢的細粒度表示。14個關節點位置分別為頭部、頸部、左肩、右肩、左臂中間關節、右臂中間關節、左手、右手、左腿、右腿、左腿膝蓋、右腿膝蓋、左腳、右腳。為了獲得關節點信息,本文使用現有的Deepcut[19]模型。在獲取的行人姿態信息圖像中,行人不同的姿勢可能導致身體部位各個關節點位于圖像的不同位置。如圖6所示的細粒度姿態信息網絡結構,針對14個具有身體代表性的關節點部分提取通道特征圖,與行人整體關節點圖像,共15個通道一起輸入卷積神經網絡中,對全身的姿態信息進行特征學習,獲得姿態信息模型。通過姿態學習,對目標數據集的行人圖像進行姿態信息標注,增大行人圖像之間的類內差異。

圖6 細粒度網絡模型結構
本文將行人姿態信息呈現出的視角位置,作為行人的粗粒度姿態信息,其主要分為正、側、背3種。粗粒度姿態學習就是通過對原始行人圖像的全身姿態信息進行分類標簽,然后輸入到網絡中進行訓練,獲得粗粒度姿態信息分類模型,將該模型用在目標數據集上,為目標數據集生成粗粒度屬性標簽,減少類間差異。該方法使用原始圖像作為輸入與圖6模型進行對比。
本節實驗結果與分析包括:在姿態學習中,粗粒度和細粒度模型在行人再識別上的不同效果;本文所提姿態與并行化屬性學習的方法對屬性分類的效果;最終行人再識別識別率的提升。
姿態學習的粗、細粒度模型的選擇,通過姿態學習模型在預訓練數據集上訓練后,將訓練完畢的模型放在目標數據集上進行實驗。獲得姿態信息分類的結果如圖7和圖8所示。可以看出,本文模型的正面識別率為79.5%,側面識別率為67.8%,背面識別率為82.1%;粗粒度模型的正面識別率為68.7%,側面識別率為58.6%,背面識別率為79.9%。顯然,通過輸入細粒度姿態信息,在每一姿態信息視角上都產生了較好的結果。

圖7 本文模型各個姿態信息的識別率和損失
Fig.7 Recognition rate and loss of each attitude information of the proposed model

圖8 粗粒度模型各個姿態信息的識別率和損失
Fig.8 Recognition rate and loss of each attitude information of coarse-grained model
本文采用交叉驗證,將整個數據集分為不完全相同樣本的訓練集和測試集,重復實驗10次并取10次實驗的平均值作為實驗結果。本文最終將細粒度姿態學習方式納入到屬性學習。通過姿態學習模型訓練得到姿態信息分類器,將其用于對目標數據集進行姿態信息屬性標記,可以顯著提高一些被部分遮擋的屬性的識別率,并且采用行人行走姿態信息視角的分類,使本文方法在行人屬性分類的效果較好。將實驗得到的屬性分類結果與UCHA-PR[16]和OAR[17]在相同或相似屬性上獲得的分類結果進行對比,部分結果如表1所示。從表1可以看出,相比傳統的將低層次特征作為屬性分類器輸入的OAR方法,以及通過CAE訓練提取的特征訓練屬性分類器的UCHA-PR方法,本文方法對各個屬性的分類準確率均有一定程度的提高,尤其是在手提包、雙肩包、短發、長發等由于姿態信息變換容易導致屬性缺失或遮擋的屬性上,優勢尤為明顯。
表1 部分相同或相似屬性的準確率對比
Table 1 Accuracy comparison of some identical or similar attributes

%
為證明本文方法在行人再識別過程中的有效性,使用累積匹配(Cumlative Matching Characteristic,CMC)曲線作為實驗的主要評價標準。圖9為在CMC標準下,不同行人再識別方法從Rank-1到Rank-25的準確率,可見本文方法與已有方法[10,16,20-24]相比,其識別準確率明顯提高。在VIPeR數據集上當Rank-25時,本文方法的準確率可達到90%,這是因為該方法基于行人屬性、姿態信息,豐富了行人的語義表述。此外,本文通過對行人屬性學習的并行化過程,使得在整個模型訓練中,準確率的誤差基本可以忽略。

圖9 本文方法與其他方法在CMC曲線中的比較結果
Fig.9 Comparison results of this method and other methods in CMC curve
綜上所述,雖然數據集中的行人圖片背景比較復雜,尤其上半身區域對應背景中常有樹木、建筑等干擾圖像的識別,且行人圖像數量較小,但是將本文方法應用于目標數據集,仍然取得了較好的結果。
本文提出一種基于姿態的并行化屬性學習模型。通過提取行人身體結構中部分關節點圖像和行人整體關節點圖像作為輸入,進行細粒度姿態特征的學習。在此基礎上,對比粗、細粒度的行人姿態輸入,獲得模型在目標數據集上的姿態分類效果,并選擇合適的姿態粒度作為最終姿態學習模型的輸入,對行人屬性進行補充。此外,利用卷積神經網絡對行人的多樣屬性進行學習,避免由于姿態導致的屬性誤檢和漏檢,提高了行人再識別準確率。下一步嘗試將底層視覺特征(如顏色、輪廓等)與本文方法相結合,進一步提高該方法對行人的篩選能力。