羅麗潔,韓華,金婕,黃麗
(上海工程技術大學 電子電氣工程學院,上海 201620)
行人重識別技術是指通過利用一張查詢圖像,從一個大規模的圖像集中準確地找出屬于同一個人的所有圖像,其中查詢圖像和圖像集中的圖像是來自不同相機拍攝到的沒有重疊部分的圖片。但是由于拍攝的攝像機參數設置存在著差異,行人出現的地點也不相同,還有不同的光影變化、行人姿態的改變、行人換衣、部分遮擋等一系列的問題,造成拍攝到的同一個行人圖片之間會存在些許的差異,為行人重識別的研究帶來了諸多的挑戰,對行人重識別模型性能的提升帶來影響。
為了能夠解決上述的問題,已陸續提出了基于度量學習[1-2]的方法、針對樣本不平衡[3]方法等。近年來,基于深度學習的行人重識別方法得到了越來越多的關注,相較于傳統的基于手工特征的方法,用卷積神經網絡[4]可以提取到圖像中更為顯著、豐富的行人特征。通常,卷積神經網絡對提取到的全局特征具有魯棒性,因為全局特征對外觀變化和空間位置變化并不敏感,但上述的全局特征卻容易忽略掉人體潛在的相關信息和細粒度特征。為了使得網絡能夠學習到更加顯著的特征,部分研究加入了注意力機制[5-6],產生的效果是十分明顯的。通過注意力機制可以使網絡更加專注于行人圖像中有用的信息,同時,能夠減少圖像中背景噪聲帶來的干擾。此外,又相繼研發出各種基于局部特征的方法,這些方法采用的策略大都是將身體劃分為幾個水平部分[7-9],從而允許網絡能夠更多地聚焦到局部特征和細粒度特征上,以便減少因行人姿勢的變化給網絡特征提取帶來的影響。文獻[10]中提出了DropBlock 方法,通過去除相關區域的特征,讓網絡加強學習其他區域的特征。與DropBlock 的思想不同,Batch DropBlock[11]采用的方法是通過在網絡訓練的過程中隨機地丟棄掉一批特征圖中的同一塊區域,令網絡加強對特征圖其余部分的學習。
雖然上述的方法在行人重識別問題上均已取得了不錯的成績與效果,但是卻在一定程度上增加了模型整體的復雜性,而且還會耗費更多的計算成本和時間成本。因此,本文提出了一個基于OSNet(Omni-scale Network)[12]的多分支網絡結構,OSNet是一個全尺度輕量級的Re-ID 模型,可將標準卷積分解為點卷積和深度卷積,能夠有效減少參數量,OSNet 參數與基于ResNet50[13]的模型相比,至少要降低一個數量級,但卻能表現出更好的性能,所以在保證模型性能的前提下,基于OSNet 的網絡更加輕量,不僅減少了訓練時間,還提高了訓練效率。而多分支的網絡結構相比單一的網絡則可以學習到更加豐富、更細粒度的特征信息,有利于提升模型的性能。本文的網絡包含了全局分支、局部分支、通道分支和頂端擦除分支四個部分,能夠從多個維度進行特征提取,提取到的特征也更趨多樣化。
本文提出了一種基于OSNet 的多分支網絡結構,如圖1 所示,其中包含了全局分支(Global branch)、局部分支(Local branch)、頂端擦除分支(Top erased branch)和通道分支(Channel branch)四個部分。相較于單一的網絡結構,多分支網絡結構可以提取到更加細粒度、更具顯著性的特征。

圖1 多分支網絡結構圖Fig.1 Multi-branch network structure diagram
注意力模型通常用于各種深度學習的任務中,其本質是通過權重參數加強網絡對重要信息的學習,抑制無關的信息,在行人重識別領域中得到廣泛使用。為了能夠更好地學習到有價值的圖像特征,本文提出的網絡結構與一般的OSNet 網絡相比,在OSNet 網絡的conv2和conv3 層中加入了注意力模塊,分別為空間注意力模塊(Spatial Attention Module,SAM)和通道注意力模塊(Channel Attention Module,CAM)。從圖1 中可以看到,先由空間注意力模塊處理特征,然后經由通道注意力模塊,再到各個分支網絡分別進行處理。
1.1.1 空間注意力模塊
空間注意力模塊更加關注于空間維度內的相關特征,能夠更好地聚合空間域中與語義相關像素,如圖2 所示。圖2中,輸入維度為H×W×C的特征圖x,H、W、C分別表示高度、寬度和通道數,經過卷積后得到2 個維度為的特征圖a和b。特征圖a被重塑為D ×C的張量,特征圖b被重塑為C× D的張量,其中D=H ×W。經過Softmax函數后,再進行批量歸一化處理,得到空間注意力張量。

圖2 空間注意力模塊Fig.2 Spatial attention module
1.1.2 通道注意力模塊
通道注意力模塊用于探尋不同通道間的特征映射關系,使得網絡能夠更好地關注具有價值的特征,提取到更具顯著性的特征。通道注意力模塊(CAM)如圖3 所示。本文的通道注意力模塊是基于壓縮-激發塊(Squeeze-and-Excitation block)[14],而與文獻[14]不同的是,刪除了初始block 中的全局平均池化(Global Average Pooling,GAP),有助于將空間信息保留到注意力block 中。

圖3 通道注意力模塊Fig.3 Channel attention module
圖3中,輸入維度為H × W × C的特征圖,經過第一個卷積后維度變為再經過第二個卷積后維度變為H×W×C,接著經過Softmax函數,得到通道注意力張量。
全局分支的優勢主要體現在學習行人圖像的整體信息方面,但對一些細粒度特征的區分度并不大。本文的全局分支是由OSNet 網絡的conv4層和conv5 層組成的,輸入的圖像特征經過一個全局最大池化(Global Max Pooling,GMP)層后生成了一個512 維的向量。在局部分支中采用的是平均池化(Average Pooling,AP),而在全局分支中采用全局最大池化,主要是為全局分支和局部分支機構提供了彼此間的功能多樣性。
相較于全局分支,局部分支更擅長提取細粒度特征,減少因行人姿態帶來的變化,能夠彌補全局分支的不足。局部分支采用與全局分支較為相似的層結構,但使用平均池化代替了全局最大池化。為了實現特征的多樣化,將特征圖水平分成4 個條帶,并將4 個512 維的特征向量連接起來,生成一個2 048維的特征向量,與PCB(Part-based Convolutional Baseline)網絡采用多個ID 預測損失、并且每個部件都具有獨立的ID 預測損失不同的是,本文的局部分支只使用一個ID 預測損失。
卷積神經網絡往往只關注圖像中最具辨別力的部分,如圖4 所示。高激活區域大都集中在圖像的上半部分,這會導致網絡不能夠很好地學習到圖像其他部分的特征,所以本文采用頂端(高激活區域)擦除的方式、而不是隨機擦除,讓網絡可以關注到其他區域。根據BDB(Batch DropBlock)網絡中提出的擦除大小為特征圖像高度的三分之一、且寬度相同的區域效果為最好,故本文也采用了這種方法。

圖4 激活圖與頂端擦除Fig.4 Activation map and top erased map
每個訓練批次輸入行人圖像,經過神經網絡,輸出特征圖F,根據文獻[15]提出的定義,可以將特征圖像F轉換為激活圖A,即:

其中,Fi表示每個大小為H×W的張量,c表示通道數。
在A的基礎之上,將每個條帶rj的相關性R定義為第j行上值的平均值,對此可表示為:

再將rj值最大的行歸零。
加入通道分支可以使得網絡提取到關于通道的更多信息,豐富整個網絡提取到特征的多樣性。首先,通過卷積的方式生成一個512 維的向量,然后將這個向量劃分為2 個長度為256 維的向量,再使用1×1 的卷積對特征進行縮放,得到2 個512 維向量分別為c1和c2。這里,1×1Conv的參數在2 個通道部分之間共享,可以減少參數的數量,節約計算時間。
為了使模型能夠得到更好的訓練,總的損失函數為每個分支的損失函數之和,包括了三元組損失Ltriplet,ID 損失Lid和中心損失Lcenter,數學表達式為:

其中,λ1,λ2,λ3為權重參數,實驗中的取值分別為λ1=1,λ2=1,λ3=0.005。
進一步地,給出ID 損失公式具體如下:

其中,N表示樣本的數量;pi表示預測行人ID為i的概率;qi表示真實的標簽。三元組損失分別從每一個batch中抽取P個行人的K張圖片,推導得到的公式為:

為了能夠提高網絡對特征的鑒別能力,對類內距離進行約束,采用中心損失作為特征提取的依據,中心損失的數學定義公式可寫為:

其中,m表示mini-batch 大小;xi表示樣本特征;表示第yi個類別的特征中心。
本文的實驗是在Market-1501[16]、CUHK03[17]、DukeMTMC-reID[18]三個公開數據集上進行的。表1中的數據為這3 個數據集的基本信息。表1中,Market-1501 數據集是通過6 個攝像頭采集到的1 501個行人的圖片。DukeMTMC-reID 數據集用8個攝像頭采集到1 812 個行人的圖片,下文由DukeMTMC 表示。CUHK03 是通過5 對攝像頭采集到的1 467個行人的圖片,其中CUHK03-L 的行人框由人工進行標注,而CUHK03-D 的行人框則由機器進行標注。

表1 數據集信息Tab.1 Dataset information
上述的數據集分別采集于不同地點、不同季節、不同時間段,采集圖片的設備包含了高清攝像頭和低清攝像頭。數據集中的行人圖片有著復雜的背景、明顯的光照變化、不同的清晰程度,貼近現實場景。
本文采用2 個常用的評價指標:首位命中率(rank1)和平均精度值(Mean Average Precision,mAP)來對行人重識別模型的性能進行評價。其中,rank1 表示的是與每張查詢圖片所對應的返回的圖片集中排在第一張是準確的概率,而mAP表示的是返回查詢圖片結果平均精度(Average Precision,AP)的平均值。
本文實驗是在PyTorch 1.7.1 上展開,編程語言選用了Python 3.8,硬件設備為配有一塊NVIDIA RTX 3090 GPU 的服務器,系統是Ubuntu 20.04 版本。
將輸入圖像調整為256×128 像素,訓練期間使用隨機水平翻轉和擦除[19]作為數據增強方式,采用Adam[20]作為優化器。訓練批量大小為48,一個批量由8 個樣本組成,其中每個樣本包含6 個行人的身份。訓練時使用WarmUp 策略,一共進行110個epoch的訓練,初始學習率設置為6e-04,到第50個epoch的時候學習率降為6e-05;到第80個epoch的時候,學習率降為6e-06;最后,到第110個epoch的時候,學習率下降到6e-07。
加入多分支會在一定程度上增加模型的參數、增加計算成本,因此,必須有充分理由,才可增加網絡分支。為探究多分支網絡各個分支對模型性能的影響,在Market-1501 和CUHK03-D 兩個數據集上進行消融實驗。表2 顯示的是網絡在不同分支組合下的性能。表2中,G 表示全局分支,P 表示局部分支,T 表示頂端擦除分支,C 表示通道分支。結果表明,使用多分支的結構相比于單分支有所提升,在CUHK03-D 上表現比較明顯,rank1 有3.1 個百分點的提升,mAP有4.1 個百分點的提升。從實驗結果可以看出,每增加一個網絡分支在一定程度上對網絡的性能都有所提升,多個分支在網絡結構中起到了互補的作用。在二分支網絡中,全局加上局部分支的效果最好。這樣一來,全局分支用以提取圖像的一般特征,加上局部分支后,改進了網絡對細粒度特征的學習。在三分支的網絡結構中,全局加局部、再加頂端擦除分支的組合效果是最好的,頂端擦除分支的加入可以令網絡關注到容易被忽略的低信息區域,學習到更加豐富的特征。因此,實驗結果表明,多分支的網絡結構可以相互彌補不足,加強彼此之間對復雜特征的學習,增強網絡對特征的提取能力。

表2 各個分支對網絡性能的影響Tab.2 The influence of each branch on the network performance
使用注意力機制可以令網絡提高行人重識別模型的性能,加強網絡對重要信息的學習,抑制無關信息。因此,在這部分的消融實驗中,在Market-1501上評估了注意力模塊對網絡的影響。注意力模塊對網絡性能的影響見表3。

表3 注意力模塊對網絡性能的影響Tab.3 The influence of attention modules on the network performance
從表3 的實驗結果可以看出,注意力模塊有助于網絡抑制無用信息,與未加入注意力模塊相比,加入后模型的rank1 提升了0.6 個點,mAP提升了1.4個點。
為了驗證頂端擦除(Top DropBlock)的方式要比隨機擦除(Random DropBlock)的方法更加優越,在Market-1501 和DukeMTMC 上進行了消融實驗。頂端擦除對網絡性能的影響見表4。

表4 頂端擦除對網絡性能的影響Tab.4 The influence of top DropBlock on the network performance
從表4 的實驗結果可以看出,頂端擦除要比隨機擦除在2 個數據集上的表現更好。頂端擦除可以提高網絡對低信息區域的關注,提取到更為豐富的信息,相比隨機擦除更加具有針對性。
將本文的網絡與先進方法在3 個數據集上進行比較,實驗結果均未使用Re-ranking 方法,取3 次實驗的平均值。其中,BoT(Bag of Tricks)[21]是一個加入了很多訓練技巧的基線網絡;OSNet(Omniscale Network)[12]是一個輕量級的行人重識別網絡;MHN(Mixed High Order Attention Network)[22]讓網絡學習混合高階注意力;BDB(Batch DropBlock Network)[11]對特征圖進行了隨機擦除;ABD(Attentive But Diverse Network)[23]結合了通道和位置注意力;Pyramid[24]是一個學習不同粗細粒度特征的金字塔模型;SCSN(Salience-Guided Cascaded Suppression Network[25]挖掘圖像中潛在的顯著性特征;SCR(Spatial and Channel Partition Representation Network)[26]是一個對全局和局部特征進行聯合訓練的網絡。
表5 是本文所提出的方法在Market-1501 和DukeMTMC 兩個公開的數據集上與最近幾年在行人重識別領域中先進方法的比較結果。從表5 中可以看出,同樣使用OSNet 作為主干網絡,本文的方法在Market-1501 數據集上比OSNet的rank1 高出1.3 個百分點,mAP高出6.3 個百分點;在DukeMTMC 數據集上比OSNet的rank1 高出2.9 個百分點,mAP高出9.6 個百分點。與采用隨機擦除策略的BDB網絡相比,在Market-1501 數據集上本文的方法比BDB的rank1 高出0.8 個百分百點,mAP則高出4.5個點;在DukeMTMC 數據集上比BDB的rank1 高出2.5個百分點,mAP高出4.5 個百分點。和采用特征金字塔的方法(Pyramid)、挖掘潛在圖像顯著特征的方法(SCSN)、對全局特征和局部特征進行聯合訓練的方法(SCR)等先進方法相比,本文提出的方法也有著更佳的表現。

表5 Market-1501 和DukeMTMC 上與最先進方法比較Tab.5 Comparison of state-of-the-arts on Market-1501 and DukeMTMC
表6 是本文的方法在CUHK03-D 和CUHK03-L 上與先進方法的比較。由表6 可知,同樣與OSNet網絡相比,本文的方法在CUHK03-D 上有著更好的表現,rank1 高出11.2 個百分點,mAP高出12.9 個百分點,在CUHK03-L 上OSNet 沒有實驗數據。與BDB 網絡相比,本文的方法在CUHK03-D上,rank1高出了7.1 個百分點,mAP高出7.2 個百分點;并且在CUHK03-L上,rank1 高出6.1 個百分點,mAP高出6.8 個分點。與其他的先進方法相比,本文的方法在CUHK03-D 上比SCSN在rank1 上低了1.2 個百分點,mAP上低了0.3 個百分點,而在CUHK03-L上,比SCSN在rank1 上低了1.3 個百分點,在mAP上低0.5 個百分點。結果表明,本文提出的方法在CUHK03-D 和CUHK03-L 數據集上,雖然沒有能夠在rank1和mAP兩項性能評價指標上都達到最佳,但在行人重識別問題上仍然有著不錯的性能表現。

表6 CUHK03-D 和CUHK03-L 上與最先進方法比較Tab.6 Comparison of state-of-the-arts on CUHK03-D and CUHK03-L
通過在行人重識別領域3 個公開數據集上與其他的先進方法進行比較發現,本文提出的多分支網絡在性能上有著一定的優越性,尤其是在Market-1501 和DukeMTMC 兩個數據集上,rank1和mAP都有著最佳的性能,在CUHK03 數據集上雖然沒有都達到最佳性能,但也有著不錯的表現。相比于單一的網絡結構,多分支網絡可以挖掘出行人圖像中更多的具有相關性的特征,也豐富了特征的多樣性,更加適合行人重識別任務。加入注意力模塊后,可以令網絡更多地關注到有用的信息,抑制一些不具有效信息的區域、如圖片的背景,減少對網絡進行特征提取的干擾。
圖5 是本文的模型在一次訓練的過程中rank1、rank3、rank5、rank10和mAP隨著epoch迭代的變化趨勢。從圖5 中可以看出,各項指標都在隨著epoch次數的增加逐漸地上升,前80個epoch的上升趨勢比較明顯,后30個epoch上升趨勢比較緩慢。根據本文實驗的設置,到第80個epoch的時候降低網絡的學習率,模型逐漸開始收斂,到第100個epoch的時候,各項評價指標逐漸趨于平穩,所以本文的實驗一共取110個epoch,對實驗結果進行分析。

圖5 rank1、rank3、rank5、rank10和mAP 隨著epoch 的變化Fig.5 rank1、rank3、rank5、rank10 and mAP change with epochs
激活圖與查詢圖像檢索結果如圖6 所示。從圖6 中可以看到,正確的結果以綠色框突出顯示,而不正確的結果以紅色框突出顯示,行人圖像中紅色越深的部分代表激活的程度越高,越藍的部分代表激活程度越低。本文使用Top DropBlock,對高激活區域進行擦除、而不是隨機的DropBlock,可以使激活的部分更加分散到行人身上,這有助于提取到更好的特征表示。而加入注意力模塊可以令網絡更多地關注到行人身上,減少背景對提取特征時的干擾,可以使得網絡更加關注到圖像的有效區域。

圖6 激活圖與查詢圖像檢索結果Fig.6 Activation map and query image retrieval results
從圖6 中看到,模型根據查詢圖像檢索到的匹配圖片中,對于一些與查詢圖片十分相似的負樣本,模型在判斷上仍會出現錯誤,負樣本困難也一直是行人重識別研究的難題,但排在前面的大都是正確結果,說明模型還是具有不錯的性能。
本文提出了一種基于輕量多分支網絡結構的方法,用于解決行人重識別特征提取的問題。使用輕量級網絡OSNet 作為主干網絡,主要由全局分支、局部分支、頂部擦除分支和通道分支四個部分構成。其中,全局分支提取行人的一般特征;局部分支將特征圖進行分割,學習更細粒度的特征;頂部擦除分支通過丟棄特征圖的高激活區域使得網絡更加關注于激活性較差的區域,能夠學習到更加豐富的信息;通道分支用于獲取更多的通道信息。使用多分支的網絡結構能夠使網絡學習到更具多樣性、且區分度更高的特征。通過在3 個公開數據集上的仿真實驗證明,本文提出的輕量多分支網絡模型在行人重識別領域有著優秀表現,并且與更加復雜的SOTA 方法相比性能更加優越。