張金鑫,陳毅,尤鳴宇
(同濟大學電子與信息工程學院,上海 201800)
隨著現(xiàn)代社會的高速發(fā)展,社會公共安全得到了人們的重點關注。尤其是在商場、學校、醫(yī)院、地鐵站等人群密集并且容易發(fā)生公共安全事件的場所,大量的監(jiān)控攝像系統(tǒng)得到應用[1]。行人是監(jiān)控視頻中的主體,對于行人圖片的分析可以應用于刑偵取證、行人追蹤等方面,這對社會安全、城市建設有著重要的意義。不同于較成熟的人臉識別技術,行人再識別技術面對如下挑戰(zhàn):①所識別的圖片從監(jiān)控攝像頭下獲得,圖片中行人的分辨率較低、局部信息模糊;②不同攝像頭的拍攝角度不同,行人在不同攝像頭下姿態(tài)也會發(fā)生變化。
深度學習正在受到廣泛關注,神經(jīng)網(wǎng)絡也被應用到了多個領域[2]。行人再識別的特征主要有:①低層的視覺特征:常見的顏色特征,如顏色直方圖、紋理特征,如尺度不變特征(Scale-invariant feature transform ,SIFT)[3]等。②中層語義特征:如行人的發(fā)型、服裝類型等。Perina A[4]等人提出通過基于人身體對稱性的特征提取方法。③深層特征:主要是指通過深度神經(jīng)網(wǎng)絡提取的特征。Michael Jones[5]等人建立一個深度神經(jīng)網(wǎng)絡結構,將行人再識別問題看作是分類問題,通過計算輸入圖像和樣本特征圖的差異,判斷兩個圖像是否是同一個行人。
在行人再識別重排序方面,Zhong等人[6]提出了基于k階導數(shù)編碼的方式,對需要檢測的候選集(gallery)中的圖片進行重排序,使得識別結果有所提升。Wang等人[7]通過結合文本特征和視覺特征,在線下學好語義特征,然后通過比較語義特征的距離來進行重排序操作。
本文主要工作如下:
(1)提出了基于殘差神經(jīng)網(wǎng)絡(Residual Network,ResNet)和特征歸一化模塊(Feature Normalization,FN)的新型行人再識別模型,并對網(wǎng)絡結構進行詳細介紹。
(2)通過語義分割網(wǎng)絡(Refinement Network,RefineNet)自動裁剪行人上衣,計算上衣RGB顏色直方圖相似度后,對原有行人排序結果進行微調(diào)。
(3)通過實驗對模型的識別性能進行評估,實驗證明,本文提出的算法可以達到更好的識別效果。
本文模型結構將50層殘差神經(jīng)網(wǎng)絡(ResNet50)和特征歸一化(FN)模塊相結合。其中,ResNet50包括5個卷積模塊,每個卷積模塊包含不同個數(shù)的殘差單元。結合特征歸一化(FN)模塊后,本論文提出的模型結構如圖1所示。
隨著深度學習的發(fā)展,神經(jīng)網(wǎng)絡模型的深度不斷增加。實驗結果證明,單純地增加網(wǎng)絡深度會帶來梯度消失或爆炸和準確率下降等問題。對于梯度消失或爆炸,可以使用歸一化來解決,對于準確率退化,可使用殘差神經(jīng)網(wǎng)絡(ResNet)來解決[8]。
ResNet是由殘差模塊(Residual block)構建的,該模塊中增加了恒等映射(identity mapping)。假定輸入是x,輸出的實際映射是H(x),若通過堆疊的多層非線性網(wǎng)絡層去擬合映射關系F(x)=H(x)-x,那么實際的映射H(x)即可表達為F(x)+x,而F(x)+x可以通過“捷徑連接(shortcut connections)”的向前神經(jīng)網(wǎng)絡實現(xiàn)。淺層的殘差模塊如圖2所示。
圖1 本論文提出的模型結構Fig.1 Structure of the model in this paper
圖2 淺層殘差模塊Fig.2 Shallow residual block
淺層的殘差模塊由兩層組成,即
其中σ表示非線性函數(shù)ReLU,之后輸入與輸出進行元素依次(element-wise)疊加,這個簡單的加法不會增加額外參數(shù)和計算量,卻可以大大增加模型訓練速度。期望輸出:
相比于利用堆疊的多層非線性網(wǎng)絡層去擬合恒等映射H(x),該模塊旨在使殘差F(x)最小化,這樣整個ResNet只需要學習輸入、輸出差別部分,簡化了學習難度。
批量歸一化(BatchNormalization,BN)是由Google于2015年提出,這是一個深度神經(jīng)網(wǎng)絡訓練的技巧,它不僅可以加快模型的收斂速度,更重要的是緩解了深層網(wǎng)絡中“梯度彌散”的問題,從而使得訓練深層網(wǎng)絡模型更加容易和穩(wěn)定。而特征歸一化(FN)是BN的特殊形式[9]。
在模型訓練過程中,一旦網(wǎng)絡某一層的輸入數(shù)據(jù)的分布發(fā)生改變,那么該層就將學習新的數(shù)據(jù)分布。訓練過程中,網(wǎng)絡各層輸入數(shù)據(jù)的分布一直在發(fā)生變化,并且每一層所需要的學習率不一樣,通常需要使用最小的那個學習率才能保證損失函數(shù)有效下降,而學習率過小將影響網(wǎng)絡的訓練速度。BN算法就是將每一層的數(shù)據(jù)都歸一化為均值μ為0、方差為1的分布,數(shù)據(jù)分布也更加穩(wěn)定,因此可以使用較大的學習率進行訓練,使網(wǎng)絡加快收斂,提高訓練速度。
FN是BN的特殊變體。在深層神經(jīng)網(wǎng)絡中,經(jīng)過多層卷積網(wǎng)絡操作后,尤其是經(jīng)過最后一層池化層(Pooling)之后,特征的分布可能會改變。因此,為了減小在損失計算階段未歸一化特征的影響,本文引入特征歸一化。
行人再識別模型可以分為驗證模型(verification model)和識別模型(identificationmodel)兩種。驗證模型(即辨別兩張圖片是否為同一個人)顯式考慮了兩張圖片樣本之間的相似度,但沒有充分利用所有的標簽信息。而對于識別模型來說,僅僅著重考慮了類間差異。
為了保證類內(nèi)數(shù)據(jù)在高維空間的相似性,以及區(qū)分類間數(shù)據(jù)彼此間的差異,本論文提出的模型將驗證損失和識別損失相結合。在賦予不同的權重值之后,兩者在反向傳播時一同更新網(wǎng)絡權值參數(shù),如圖3所示。
驗證損失函數(shù)(verification lossfunction)的公式為:
其中s是驗證類別(同/不同人),是網(wǎng)絡輸出判斷為同一人的概率,如果輸入兩張圖片為同一人,則q1=1,q2=0,否則q1=0,q2=1。
圖3 本論文模型的損失函數(shù)Fig.3 Loss function of the model
識別損失函數(shù)(identification lossfunction)公式為:其中t是身份標簽(ID),是網(wǎng)絡輸出某一ID概率,若圖片與目標ID匹配,則=1,否則為0。
本文使用的損失函數(shù)是驗證損失與識別損失(identification loss)的融合。損失函數(shù)為:
本文在實驗中設置權重參數(shù)β=0.5,α=1,兩者在反向傳播時一同更新網(wǎng)絡權值參數(shù)。
圖像由許多像素(pixel)組成,語義分割將像素按照圖像中表達語義的不同進行分割(segmentation)。圖像語義分割實際上就是預測每個像素點的類別,本質(zhì)上也可以認為是稠密的像素點分類(需要預測每個像素點的類別)。
由于行人的姿態(tài)多變、衣服形狀不規(guī)則,因此傳統(tǒng)的圖像處理方法并不能將上衣分割出來。為了能準確將不規(guī)則上衣裁剪出來,本文考慮使用語義分割模型來完成。
Lin等人[15]提出了精煉神經(jīng)網(wǎng)絡(Refinement Network, RefineNet)來實現(xiàn)高精度的語義分割任務,該模型目前在PASCAL VOC數(shù)據(jù)集上取得了最好的效果。該論文提出的網(wǎng)絡模型可以分為兩部分。其中向下的通道以ResNet為基礎,逐步降采樣的同時提取語義特征,向上的通道使用了新提出的RefineNet作為基礎,通過逐步上采樣特征恢復細節(jié)信息?;镜目蚣苋鐖D4所示。
RefineNet包含了三個組成部分:殘差卷積單元(Residual Conv Unit)、多尺度融合(Multi-resolution Fusion)、鏈式殘差池化(Chained Residual Pooling)。具體結構如圖5所示。
圖4 語義分割模型結構Fig.4 The structure of semantic segmentation model
圖5 RefineNet架構Fig.5 The structure of Refinenet
其中,殘差卷積單元是從殘差網(wǎng)絡中提取出來的單元結構。多尺度融合通過對較低分辨率特征進行上采樣操作,來融合多分辨率特征。鏈式殘差池化通過步幅為1、大小為5×5的重復池化層來獲取背景信息。
顏色特征描述了圖像區(qū)域所對應的景物的表面性質(zhì)。最常用的顏色空間是RGB顏色空間,它以R(Red)、G(Green)、B(Blue)三種基本色為基礎。顏色直方圖是最常用的表達顏色特征的方法,其優(yōu)點是對圖像旋轉(zhuǎn)和平移變化具有較強魯棒性。同時,結合歸一化模塊,能夠進一步降低其對圖像尺度變化的敏感程度。
顏色直方圖能簡單描述不同色彩在整幅圖像中所占的比例,特別適用于描述自動分割的上衣圖像、其優(yōu)點在于不需要考慮物體的空間位置。將行人的上衣裁剪后,本文對每個人上衣的顏色特征進行統(tǒng)計,得到各自的上衣RGB顏色直方圖,每張圖片對應唯一一幅RGB顏色直方圖。
在計算顏色直方圖時,本文按照0-255像素值將顏色空間劃分成256個小區(qū)間,之后統(tǒng)計每個小區(qū)間中像素個數(shù),并進行歸一化操作,從而形成R、G、B通道上3個1*256的向量。計算兩張圖片顏色直方圖的歐氏距離,獲得新的排序,歐氏距離越小,相似度越高,兩張圖片越相似。
圖6 重排序流程Fig.6 The process for re-ranking
算法2:重排序算法
輸入:ResNet50模型得到的list_resnet,上衣圖像RGB直方圖
輸出:最終行人再識別結果list_final
過程:
(1)對于query和test中所有圖片計算RGB顏色直方圖
(2)RGB直方圖轉(zhuǎn)化為向量,依次獲得相似度k
(3)根據(jù)k從大到小重新排序得到新列表list_RGB
(4)對于原先的list_resnet進行微調(diào)(若list_RGB中A圖片與query相似度較高,則將list_resnet中的A圖片排序向前進1位)
(5)返回list_final
Market1501數(shù)據(jù)集[16]是目前最大的基于圖像的行人再識別數(shù)據(jù)集,包含1501人的32668幅行人樣本,由6個不同視角的攝像頭拍攝得到。這些行人圖像由可變形的部件模型( Deformable Part Model, DPM)檢測器檢測得到。數(shù)據(jù)集分成訓練集和測試集2部分。訓練集包含751人,共12936幅圖像。測試集包含750人,共19732幅圖像。
CUHK03數(shù)據(jù)集[17]是行人再識別中使用最為普遍的數(shù)據(jù)集,是目前較大型的基于圖像的公開行人再識別的數(shù)據(jù)集。該數(shù)據(jù)集被分為訓練集和測試集兩部分,訓練集中包含767人,測試集中包含700人。該數(shù)據(jù)集提供 detected 和labeled 兩套數(shù)據(jù)集,detected 數(shù)據(jù)集由 DPM 檢測器檢測得到,會含有一些誤檢和錯檢的目標,較貼近真實生活,而 labeled 數(shù)據(jù)集較理想。
在行人再識別研究中,本文對所有的數(shù)據(jù)集采用兩種評價指標,即匹配準確率rank-k(k一般為1、5、10)和中間平均準確率mAP。行人再識別任務類似于圖像檢索問題,行人再識別任務就是要將查詢集(query)中每一張圖片,在候選集(gallery)中找到最相似的圖片。rank-k就表示查詢集的行人圖片在候選集中相似度最高的前k張圖片中包含該查詢行人的概率。
中間平均準確率mAP則反應了算法在整個測試集上的平均性能。計算公式為
其中,R表示召回率,P(R)表示在召回率為R時的準確率。mAP同時考慮了準確率和召回率,因而是一個更加綜合的評判標準。
本論文全局特征提取模型在深度學習框架Caffe上搭建,通過語義分割模型裁剪上衣的工作,在深度學習框架Matconvnet上完成。
3.3.1 模型搭建
假設輸入是224×224的圖片,ResNet50網(wǎng)絡每層的輸出特征大小和卷積核大小見表1。
在ResNet50中,采用的殘差卷積單元是三層殘差模塊,將兩層殘差模塊中的兩個1×1卷積層替換為1×1、3×3、1×1卷積層,首端和末端的1×1卷積主要用來降低和恢復維度。
在全連接層(fc)前添加FN模塊后,本文的網(wǎng)絡結構如表2所示:
表1 ResNet50網(wǎng)絡結構Table1 Structure of ResNet50
表2 本論文網(wǎng)絡結構Table 2 Structure of our model
3.3.2 結果分析
在使用本文模型對輸入圖片進行特征提取之后,需要對query圖片特征和test圖片特征進行距離的度量,計算相似度之后獲得初始相似度排名。本文在實驗中將使用歐氏距離Euclidean Distance(Eu)、KISSME[18]、XQDA(Cross-view Quadratic Discriminant Analysis)[19]三種距離度量算法。在 Market1501、CUHK03(detected)、CUHK03(labeled)數(shù)據(jù)集上的結果如表3、表4、表5所示。
表3 Market1501上結果(%)Table 3 Results on Market1501
表4 CUHK03 detected結果(%)Table 4 Results on CUHK03 detected
表5 CUHK03 labeled上結果(%)Table 5 Results on CUHK03 labeled
從表格中可以看到,本文提出的加入特征歸一化模塊的模型,取得了比ResNet50初始模型更高的識別準確率。
而在通過語義分割得到上衣圖片后,本文以上衣RGB顏色直方圖為依據(jù),對全局信息獲得的初始序列進行調(diào)整。圖7展示了重排序之后的實際效果。
圖7 重排序效果展示Fig.7 The display of re-ranking results
對于A行人,在測試集中原先檢出的正確圖片序號為1、3、4,在使用重排序算法微調(diào)后,正確檢出圖片序號為1、2、3、4。尤其對于錯檢的2號圖片,其上衣顏色特征與A行人有著細微差別,重排序算法準確識別出來并將其匹配位置向后移動一位。對于B行人,在測試集中原先檢出的正確圖片序號為2、3、5,在使用重排序算法微調(diào)后,正確檢出圖片序號為1、3、4。很顯然重排序算法有助于更準確地在gallery數(shù)據(jù)集中找到與query匹配的圖片。
之后本文在Market1501和CUHK03數(shù)據(jù)集上的實驗,再次驗證重排序算法的有效性,實驗結果如表6、表7、表8所示。
表6 Market1501上重排序后結果(%)Table 6 Results on Market1501 after re-ranking
表7 CUHK03 detected上重排序結果(%)Table 7 Results on CUHK03(detected) after re-ranking
表8 CUHK03 labeled上重排序結果(%)Table 8 Results on CUHK03(labeled) after re-ranking
從上述表格中可以看到,本文模型+KISSME度量方法取得了最優(yōu)準確率。將本文實驗結果與其他行人再識別論文實驗結果進行對比,可以進一步驗證本論文算法的優(yōu)越性能。對比結果如表9、表10所示。
本文提出一種基于殘差神經(jīng)網(wǎng)絡(ResNet50)和特征歸一化(FN)的行人再識別模型,能夠提取顯著性的行人特征。同時,分離出的上衣部分可有效降低背景和姿態(tài)變化對行人的影響,利用其顏色直方圖進行重排序,可進一步提高識別精度。本文對后續(xù)行人再識別工作具有一定的啟發(fā)作用,即可以從全局和局部兩方面進行信息提取,提高識別精度。未來的研究工作將結合更多行人局部信息,將重排序算法嵌入神經(jīng)網(wǎng)絡模型中,實現(xiàn)端到端的訓練和測試,進一步提高識別準確率。
表9 Market1501上其他論文結果 (%)Table 9 Other results on Market1501
表10 CUHK03上其他論文結果 (%)Table 10 Other results on CUHK03