邵曉雯 帥 惠 劉青山
行人重識別指跨監控設備下的行人檢索問題,在公共安全、智能監控等領域具有廣泛的應用.具體而言,給定一張行人圖片,行人重識別用來在其他攝像頭拍攝的大型圖片庫中找出該行人的圖片.由于監控圖片的分辨率低,且不同的圖片之間存在光照、姿態、攝像頭視角等方面的差異,行人重識別目前仍是一個很有挑戰性的問題.
早期行人重識別的研究思路通常是先對行人圖片提取手工特征,如顏色直方圖、方向梯度直方圖(Histogram of oriented gradient,HOG)[1]等,然后使用相似性度量方法,如大邊界最近鄰算法(Large margin nearest neighbor,LMNN)[2]、交叉二次判別分析算法(Cross-view quadratic discriminant analysis,XQDA)[3]等來學習度量矩陣.為了克服光照、成像條件等因素影響,采用多特征分析是常用的一種方式[4-6].隨著深度學習技術的興起,深度學習廣泛應用于行人重識別任務中.目前,基于深度學習的行人重識別方法在性能上大大超過了傳統方法[7],主要有如下兩個原因:1) 手工設計的特征描述能力有限,而深度學習使用深度卷積神經網絡可以自動學習出更復雜的特征;2) 深度學習可以將特征提取和相似性度量聯合在一起,實現端到端的學習,從而得到全局最優解.
目前基于深度學習的行人重識別方法主要分為度量學習和表征學習方法[8].度量學習通過設計不同的度量損失來約束特征空間,使得同一個行人的不同圖片在特征空間上距離很近,而不同行人的距離很遠,如三元組損失(Triplet loss)[9]、四元組損失(Quadruplet loss)[10]和群組相似性學習(Group similarity learning)[11]等方法.這類方法的關鍵在于樣本對的選取,由于大量樣本對簡單易于區分,隨機采樣將會導致網絡的泛化能力有限,因而需要挑選出一些難樣本對進行訓練.Zhu 等[12]對困難和簡單的負樣本設計不同的目標函數來學習距離度量方法,以充分利用負樣本中的信息.相對于表征學習,度量學習的訓練時間更長,收斂也更困難.因此,表征學習方法得到了更加廣泛的研究.
表征學習方法在訓練網絡時將行人重識別當作身份分類任務來學習行人特征,關鍵問題是如何設計網絡以學習到更具有判別力的特征.Sun 等[13]根據人體結構的先驗知識,在垂直方向上對特征圖均勻分塊,然后提取每個區域的局部特征.還有一些方法利用額外的語義信息,例如骨骼關鍵點、分割結果等,定位行人的各個部位.Su 等[14]借助關鍵點檢測模型對人體區域定位、裁剪、歸一化后,拼接成新的圖片作為網絡的輸入.Sarfraz 等[15]將行人14個關鍵點的位置響應圖和原圖片一起輸入到網絡中,讓網絡自動地學習對齊.Kalayeh 等[16]在LIP(Look into person)[17]數據集上訓練人體解析模型來預測4 個人體部位和背景,然后在特征圖上提取這些部位的特征.
由于不同的行人可能具有相似的外觀,而同一個行人在不同的環境下存在很大差異,只從全局外觀的角度無法進行正確匹配.行人的屬性,例如性別、是否背包、頭發長短等,包含豐富的語義信息,可以為行人重識別提供關鍵的判別線索.早期的研究中,Layne 等[18]手工標注了15 種語義屬性來描述行人,包括性別、服裝種類、是否攜帶物品等,并使用支持向量機(Support vector machine,SVM)訓練屬性分類器,最后與底層特征融合得到行人圖像的最終特征描述.隨著深度學習的廣泛應用,Zhu 等[19]在一個卷積神經網絡中同時預測多個屬性,在PETA (Pedestrian attribute)[20]數據集上的屬性識別性能明顯優于基于SVM 的方法.Schumann 等[21]先在PETA 數據集上訓練屬性識別模型,然后在行人重識別模型中利用屬性預測的結果,使得網絡可以學習到與屬性互補的特征.該方法分開訓練兩個網絡,無法充分利用屬性標簽和身份標簽,導致行人重識別的性能比較低.Lin 等[22]在行人重識別數據集DukeMTMC-reID[23]和Market1501[24]上標注了行人屬性,并提出APR (Attribute-person recognition)模型實現行人重識別和屬性識別的多任務學習,同時將屬性預測的結果和全局特征一起用于行人重識別任務.該方法使用屬性的預測結果,當屬性識別錯誤時,會給行人重識別引入噪聲.Tay 等[25]提出了AANet (Attribute attention network),將行人屬性和屬性的激活區域圖集成到分類網絡中來解決行人重識別問題,得到了比較好的檢索結果.上述方法同等對待所有屬性,忽略了每個屬性對每張圖片的重要性是不同的.
針對以上問題,本文提出了融合屬性特征的行人重識別方法,主要工作如下:1) 將行人重識別和屬性識別集成到分類網絡中進行端到端的學習;2) 為了減小屬性識別錯誤對行人重識別的影響,從特征的角度利用屬性信息;3) 自適應地生成對應于每個屬性的權重,并將所有屬性特征以加權求和的方式結合起來,與全局特征一起用于行人重識別任務.在DukeMTMC-reID和Market-1501 數據集上的實驗結果表明了本文方法的有效性.
圖1 為本文的網絡結構圖,前半部分為提取圖片特征的主干網絡,后半部分分為身份分類、屬性識別和屬性特征融合三個分支.身份分類分支對行人的全局特征進行身份的預測;屬性識別分支用來預測行人的各個屬性;屬性特征融合分支首先以自適應的方式對屬性特征加權求和,得到融合后的屬性特征,然后對該特征進行身份預測.
使用ResNet-50 作為主干網絡提取圖片的特征.ResNet-50 包含1 層卷積層(conv1)和4 個殘差模塊(conv2~ conv5),每個殘差模塊包含多層卷積層、批量規范化層和線性整流激活函數(Rectified linear units,ReLU).文獻[26]提出多個相關性低甚至相反的任務一起學習時,在共享參數上會產生相互競爭甚至相反的梯度方向,從而影響所有任務的學習.為了減輕任務間的干擾,在ResNet-50 的第4 個模塊conv4 后將網絡分成兩個分支,分別學習行人的全局特征和屬性特征,即兩個分支中conv5 模塊的參數不共享.根據文獻[13],本文去除了兩個分支的conv5 模塊中的下采樣操作,以增加特征圖的大小、豐富特征的粒度.將大小為 256×128 像素的圖片輸入網絡時,可以從conv5 模塊輸出大小為 1 6×8 的特征圖.
設S={(x1,y1,a1),···,(xn,yn,an)}為訓練數據集,其中n是圖片的張數,xi表示第i張圖片,yi∈{1,2,···,N}表示該圖片的身份標簽,N是訓練集中行人的個數,表示這張圖片的屬性標簽,M是屬性的個數,對于Duke-MTMC-reID和Market-1501 數據集,M分別是10和12,指這張圖片的第j個屬性的標簽,Cj表示第j個屬性的類別個數.如圖1所示,對于 (x,y,a)∈S,將圖片x輸入到網絡,可以分別得到對應于身份分類的特征圖I ∈Rh×w×d和屬性識別的特征圖A∈Rh×w×d.
對于身份特征圖I∈Rh×w×d,先用全局平均池化(Global average pooling,GAP)對I處理得到特征z∈Rd,隨后使用全連接(Fully connected,FC)層、批量規范化層和ReLU 激活函數對特征z進行降維,得到全局特征g∈Rv.訓練時對特征g使用全連接層和Softmax 激活函數得到行人身份的分類結果,最后使用交叉熵損失函數作為目標函數.為了防止訓練時出現過擬合的問題,對身份標簽進行平滑操作(Label smoothing,LS)[27],LS 是分類任務中防止過擬合的常用方法.相應的過程如下:

其中,N為訓練集中行人的個數,W(id)∈RN×v和b(id)∈RN分別是全連接層的權重矩陣和偏差向量,為輸出的行人身份的預測概率.式(2)表示對身份標簽y進行LS 操作,ε是一個數值較小的超參數,文中ε=0.1 .Lid為網絡的身份分類損失.
在屬性識別分支中,與身份分類類似,先用GAP 對屬性特征圖A∈Rh×w×d處理,得到特征f ∈Rd,然后使用M層全連接層對特征f進行提取,得到M個屬性特征{h1,h2,···,hM}.對于每一個屬性特征hk∈Rv,使用全連接層和Softmax激活函數得到對應的屬性分類結果,最后使用交叉熵損失作為目標函數.相應的過程如下:

對于第k個屬性,Ck表示它的類別個數,和分別是對應的全連接層的權重矩陣和偏差向量,為該屬性的預測結果,Lk為第k個屬性的分類損失.
由于屬性各個類別的樣本比例不平衡,并且為了降低大量簡單樣本在訓練中所占的權重,對于每個屬性使用加權的焦點損失(Focal loss)函數[28],更改后的屬性損失函數如下:

如果直接應用屬性的預測結果,當屬性預測錯誤時,很容易給行人重識別任務引入噪聲,因此從特征的角度對屬性加以利用.屬性特征更關注于行人圖片的某個區域,因而可以融合所有屬性的特征和全局特征互相補充.直接想法是將提取到的M個屬性特征{h1,h2,···,hM}以相加或相連等方式進行融合,但是對于每張圖片,每個屬性的重要性是不同的,如果簡單地對每個屬性分配相同的權重,最終可能會降低屬性信息帶來的益處.因此,對于每張圖片,網絡都會自適應地生成每個屬性對應的權重,用來融合屬性特征.具體方法如下:對于圖片x得到的特征f∈Rd,首先使用一層全連接層和Sigmoid 激活函數得到對應于每個屬性特征的權重,具體表示為

其中,W(weight)∈RM×d和b(weight)∈RM分別表示全連接層的權重矩陣和偏差向量,得到的屬性權重向 量w=[w1,w2,···,wM],wi∈(0,1).然后 對每個屬性特征以加權求和的方式,即得到融合后的屬性特征hw∈Rv.隨后以額外監督的方式對特征hw進行行人的身份分類,具體與上述的分類過程相同,使用全連接層和Softmax 激活函數得到分類結果,最后根據身份標簽使用帶有LS 的交叉熵損失函數作為優化目標,得到損失函數Llocal.訓練時Llocal可以監督屬性權重和屬性特征的生成,Llocal表示為

總的損失函數包括全局特征、屬性融合特征的身份分類損失和屬性分類損失,具體表示為

其中,α和β是平衡三個損失的權重因子.測試時,將全局特征g和融合后的屬性特征hw相連得到行人總的特征e=[g;hw]∈R2v,并使用余弦距離計算特征間的距離,排序后得到檢索結果.
本文的實驗基于行人重識別的主流數據集DukeMTMC-reID和Market-1501 進行評測,并與PCB-RPP (Part-based convolutional baseline and refined part pooling)、PDC (Pose-driven deep convolutional)、ACRN (Attribute-complementary re-id net)等相關方法進行了對比.使用Pytorch 框架搭建整個網絡,圖片的大小縮放為 2 56×128 像素,僅使用水平隨機翻轉作為數據增強的方法.訓練時使用Adam 優化器更新梯度,初始學習率設為0.0003,weight_decay 為0.0005.batch size 設為32,總共訓練60 個epoch,每隔20 個epoch,所有參數的學習率降為之前的0.1 倍.使用ImageNet[29]上的預訓練參數對網絡初始化,在前10 個epoch中,使用ImageNet 初始化的參數保持不變,僅更新隨機初始化的參數.降維之后的特征維度為512,即v=512 .
DukeMTMC-reID 數據集共有1 404 個行人,分為訓練集16 522 張圖片包含702 個行人,測試集17 661 張圖片包含另外的702 個行人和408 個干擾行人,另外有2 228 張圖片作為待檢索的行人圖片.Lin 等[22]對數據集中的每個行人標注了23 個屬性,本文使用了所有的屬性,并把8 個上衣顏色的屬性作為1 個類別數是8 的屬性,同樣將7 個下衣顏色的屬性作為1 個類別數是7 的屬性,最后得到10個屬性.
Market-1501 數據集共有1 501 個行人,分為訓練集12 936 張圖片包含751 個行人,測試集19 732張圖片包含750 個行人,另外還有3 368 張圖片作為待檢索的行人圖片.Lin 等[22]對數據集中的每個行人標注了27 個屬性,本文使用了所有的屬性,對上衣顏色和下衣顏色采取上述的組合方式,最后得到12 個屬性.
對于行人重識別任務,使用標準的評估指標:平均精度均值(Mean average precision,mAP)和累計匹配特性(Cumulative match characteristic,CMC)曲線.對于屬性識別任務,本文對每個屬性使用分類準確率進行評估,同時計算了所有屬性的平均分類準確率.
表1 是本文在DukeMTMC-reID和Market-1501 數據集上與當前相關方法的比較.PCB-RPP對特征圖均勻分塊,未考慮行人圖片沒有對齊的情形,而且沒有去除背景的干擾.PDC和PSE (Posesensitive embedding)利用額外的姿態估計模型,SPReID (Semantic parsing for re-identification)利用額外的人體解析模型,來定位行人的各個部位,這種方法由于不能端到端地學習,訓練好的部件定位模型在行人圖片上定位錯誤時將會引入噪聲,最終影響行人重識別的結果.表1 中的下面3 種方法利用屬性標簽輔助行人重識別,ACRN 在屬性數據集PETA 上訓練屬性識別模型,APR和AANet-50 沒有考慮行人重識別和屬性識別之間的關系,直接使用同一個網絡提取兩個任務的特征.此外,它們對所有屬性同等對待,忽略了各個屬性對行人描述的重要性是不同的.在考慮了以上問題后,本文的方法在DukeMTMC-reID 上,mAP和Rank-1值分別達到了74.2%和87.1%,超過了AANet-50的結果1.6%和0.7%,在Market-1501 上,mAP 值超過AANet-50 1.0%,Rank-1 值降低0.3%,可見我們的方法對mAP 影響更大.而且相比于AANet-50 使用CAM (Class activation maps)[30]定位屬性激活區域,本文的方法更加簡單有效.

表1 與相關方法的性能比較(%)Table 1 Performance comparison with related methods (%)
表2 是DukeMTMC-reID 上使用不同損失函數得到的檢索結果,使用Lid相當于只訓練身份分類的單支網絡,可以作為基準模型,Lid+βLatt指身份分類和屬性識別的多任務學習網絡,Lid+αLlocal+βLatt指在多任務網絡的基礎上,加入了對屬性特征進行身份監督的任務,即本文使用的網絡.由表2 可以得出以下結論:基準模型得到了比較好的結果,mAP和Rank-1 值分別達到70.5%和84.1%;多任務網絡比基準模型在mAP和Rank-1值上分別提高0.6%和1.7%,說明加入的屬性識別對行人重識別起到了促進的作用,此時網絡不光要正確預測行人的身份,還需要預測出各個屬性,從而提高了網絡的泛化性能;當利用屬性特征時,mAP和Rank-1 值分別進一步提高3.1%和1.3%,說明融合的屬性特征可以補充全局特征,最終形成了更具有判別力的特征.另外,指身份分類和屬性識別雙支網絡中conv5 模塊的參數共享時的結果,相比于不共享時,mAP和Rank-1 值分別降低1.2%和1.1%,說明這兩個任務在提取特征的目標上并不完全相同,參數共享的模型使得兩者在訓練時相互影響,導致網絡無法收斂至最優解.本文使用的網絡結構減小了屬性識別對行人重識別的干擾,并以自適應的方式利用屬性特征,最終有效提高了行人的檢索結果.Lid(no LS) 是在基準模型中沒有對身份標簽采用LS 平滑操作的結果,相比基準模型,mAP和Rank-1 值分別降低3.7%和0.8%,可見LS 操作有效提升了模型的性能.

表2 使用不同損失函數的性能比較(%)Table 2 Performance comparison using different loss functions (%)
表3 是對屬性特征使用不同融合方式的性能比較.將所有屬性的特征相加后,直接引入到第一支網絡中與全局特征相連,對特征進行身份分類,而不進行額外的監督,該方法記為var1.在var1 的基礎上,對所有屬性特征以自適應加權求和的方式進行融合,而不是直接相加,即,該方法記為var2.第3 種方法與本文方法類似,區別是生成權重的方式不同,從全局的角度生成對應于每個屬性的權重,記為var3,具體如下:將第一支網絡中的全局特征z ∈Rd作為輸入,使用全連接層和Sigmoid 激活函數輸出權重w.由表3 可知,var2 相比var1,mAP和Rank-1 值分別提高0.9%和1.1%,可見自適應地對每個屬性賦予不同的權重是有作用的,對于每張圖片,網絡可以自動調整各個屬性的重要性.我們的結果相比于var2,mAP和Rank-1 值分別提高1.7%和1.4%,說明對融合后的屬性特征進行額外的身份分類任務可以進一步提升性能,主要有兩個原因:1)可以對屬性特征和屬性權重有更強的監督信息;2)由于沒有加入到第一支網絡中,從而不會干擾全局特征的學習.我們的方法相比于var3,mAP和Rank-1 值分別提高0.1%和0.8%,說明從屬性的角度生成權重,這種類似于自注意力機制的方法可以得到更好的結果.另外從直覺上講,將屬性的特征作為輸入,輸出對應于每個屬性的權重,這種方式也更加合理.
表3 的最后兩行表示在訓練完最終模型后,分別使用全局特征g和屬性融合特征hw進行檢索的結果.當只使用g測試時,mAP 值為72.4%,Rank-1 值為86.1%,只使用hw測試時,mAP和Rank-1值分別為71.8%和85.1%,兩者均超過了基準模型的結果.而將g和hw相連后測試時,mAP和Rank-1 分別達到了74.2%和87.1%,可見全局特征和屬性特征相互補充,可以對行人進行更全面的描述.

表3 使用不同特征融合方式的性能比較(%)Table 3 Performance comparison using different feature fusion methods (%)
圖2 是在DukeMTMC-reID 上分別設置不同的α和β得到的結果,圖2(a) 中β=0.2,圖2(b)中α=0.5 .由圖2(a)可知,對屬性融合特征進行過多或者過少的監督,效果都有所降低,當α為0.5時,可以得到最好的結果.由圖2(b)可知,當β取值比較小時,結果有所提高,同時為了不影響屬性識別的準確率,將β取為0.2.在所有實驗中,對α和β均進行如上設置.

圖2 設置不同的 α和β 的結果Fig.2 Results setting different α and β
圖3 是模型訓練完成之后,使用Grad-CAM(Gradient-weighted class activation mapping)[31]得到的各個屬性的可視化結果,10 個屬性依次為gender,hat,boots,length of upper-body clothing,backpack,handbag,bag,color of shoes,color of upper-body clothing,color of lower-body clothing.可視化結果下方的數字表示網絡生成的對應于該屬性的權重.上方是DukeMTMC-reID 檢索庫中的一張圖片,下方的圖片是由屬性融合特征hw檢索出的第1 張圖片,匹配正確,即這兩張圖片屬于同一個行人.

圖3 各個屬性的可視化結果及對應的權重值Fig.3 Visualization result and corresponding weight value of each attribute
由可視化結果可以看出,每個屬性的激活區域基本都是落在行人區域內,可見利用屬性的特征可以減少背景的干擾.此外,帽子、靴子、鞋子顏色、上衣顏色、下衣顏色等屬性的激活范圍基本符合對應的屬性區域.由生成的權重值可知,對于這兩張圖片,帽子、靴子、背包等屬性的重要性很大.這兩張圖片由于姿態、光線等差異,在外觀上并不相似,但網絡通過自適應地融合屬性特征,關注頭部、腳部、書包等區域,最終可以正確檢索出來.
圖4 是使用不同特征檢索到的圖片,其中匹配錯誤的樣本用粗線條的框表示.對于每個行人,后面三行分別是使用全局特征g、屬性融合特征hw和總的特征e得到的檢索結果.由第1 個行人的結果可知,全局特征只關注上衣和褲子,找出的10 張圖片中只有5 張匹配正確,而融合特征包含對于這個行人很重要的書包信息,檢索出了10 張正確的圖片.對于第2 個行人,融合特征通過帽子這個屬性,正確找出了被遮擋的圖片.相比于關注整體外觀的全局特征,融合后的屬性特征包含很多細節信息,這對于區分外觀相似的行人是很重要的.對于第3 個行人,全局特征檢索出的多為行人的背面圖片,而融合特征檢索出許多側面圖片,這兩個結果中均有錯誤,但當這兩個特征相連后,可以找出10張正確的包含各個視角的圖片,說明全局特征和屬性特征包含不相同的信息,可以互相補充促進最后的檢索結果.

圖4 使用不同特征檢索到的圖片Fig.4 Images retrieved by different features
表4和表5 分別表示DukeMTMC-reID和Market-1501 上各個屬性的識別準確率,Avg 指所有屬性的平均準確率,B2 表示只訓練屬性識別的單支網絡.由表中結果可知,屬性識別和行人重識別的多任務網絡促進了屬性識別的過程,本文方法相比于B2,平均準確率分別提高了0.32%和0.59%.此外,與APR、AANet-50 的結果比較也體現了本文方法的競爭力.

表5 Market-1501 上屬性識別的準確率(%)Table 5 Accuracy of attribute recognition on Market-1501 (%)
針對行人外觀存在類內差異大、類間差異小的問題,本文提出了一種融合屬性特征的行人重識別的深度網絡方法.實驗結果表明,該方法能夠通過加入的屬性信息豐富行人的特征描述,提升識別性能.后續工作將考慮屬性之間的依賴關系,進一步研究如何在行人重識別任務中更好地利用屬性標簽,實現行人共有屬性的特征匹配.