周大可, 宋 榮,楊 欣
(1.南京航空航天大學 自動化學院, 南京 211100; 2.江蘇省物聯網與控制技術重點實驗室(南京航空航天大學), 南京 211100)
行人檢測作為目標檢測領域的一個重要研究方向,一直受到研究者們的普遍關注,目前已經對智能交通、智能輔助駕駛和視頻監控等領域產生了深入的影響[1]。傳統的行人檢測方法,如HOG(histogram of oriented gradient)[2]、DPM(deformable parts model)[3]和ACF(aggregate channel feature)[4]等,都是通過手工設計或特征聚合來獲得行人特征。隨著2012年AlexNet[5]在圖像分類任務中的重大突破,利用卷積神經網絡CNN(convolutional neural networks)自主學習特征提取過程從而代替傳統手工設計是目前的主要研究方向[6]。根據檢測機制的不同,基于卷積神經網絡的目標檢測方法主要分為兩類:一是兩階段方法,以Faster R-CNN[7]為例,其主要思路是采用級聯的方式,在生成候選目標區域的基礎上進一步判斷邊界框的類別和位置。另一類則是單階段方法,以YOLO(you only look once)[8]和SSD(single shot multibox detector)[9]為例,其思路是用一個卷積神經網絡直接回歸出邊界框的位置和類別。
卷積神經網絡的引入提升了行人檢測算法性能,但遮擋問題仍然是行人檢測中的一個主要難點[10-13]。文獻[10]通過一種聯合學習方式建模不同的行人遮擋模式,但其檢測框架復雜且無法窮盡所有的情況;文獻[11]設計新的損失函數,使預測框在不斷逼近目標真實框的同時遠離其他的真實框,這種方法對遮擋的處理更為靈活,實現也更加簡單;文獻[12]將前述的兩種思路相結合,提出部件遮擋感知單元和聚集損失函數來處理行人遮擋問題;文獻[13]通過引入新的監督信息(行人可見區域邊界框)來處理遮擋,其思路是用兩個分支網絡分別回歸行人的全身框和可見區域的邊界框,最終融合兩個分支的結果來提升檢測性能。
注意力機制源于對人類視覺的研究,在計算機視覺的各種任務(如圖像分類、檢測和分割等)中均有廣泛的應用[14]。常見的注意力機制有兩種類型:一是空間注意力機制[15],即通過網絡學習來自適應地調節特征圖中每個元素的權重;二是通道注意力機制[16],即利用網絡來調節特征圖中不同通道的權重。利用注意力機制可以加強網絡對行人可見區域特征的關注,進而改善算法的遮擋處理能力。文獻[17]利用預訓練的行人姿態估計模型生成的部件熱圖作為監督信息指導通道注意力機制的學習,有效提高了遮擋行人的檢測效果,但其僅使用了單一的通道注意力機制且需要額外的網絡來生成監督信息,檢測框架復雜。
本文以基于回歸的檢測方法RetinaNet[18]為基礎,針對行人檢測的兩個子任務(分類和定位),在不同的支路分別采用空間和通道注意力機制,同時引入行人邊界框作為監督信息,簡單有效地指導兩種注意力機制的學習。此外,利用行人可見區域邊界框設計新型的可感知遮擋的回歸損失函數,進一步提高了算法對遮擋的魯棒性。
本文方法的基本框架采用RetinaNet,主要由3個部分組成,分別是Resnet[19]主干網絡、FPN[20](feature pyramid network)特征金字塔融合模塊、以及結合雙重注意力機制的卷積預測模塊,網絡整體結構如圖1所示。

圖1 本文算法整體網絡結構示意
Resnet是目前主流的特征提取主干網絡之一,其通過“捷徑”將前后層直接相連,從而使網絡更加容易擬合恒等映射。Resnet可以改善網絡深度增加帶來的模型訓練困難、性能提升較小的問題,即“退化”現象。本文提取特征的主干網絡采用Resnet50,其具體結構參數見表1。
FPN是一種U型網絡結構,其通過融合生成的特征金字塔,有效結合深淺層不同維度的特征表達,并且在不同層獨立預測不同尺度的行人。如圖1所示,自上至下的卷積層c5、c4、c3分別在采樣之后與下層逐層融合,得到p5、p4、p3。p6和p7即c6和c7,在c5的基礎上分別通過一次和兩次3×3卷積得到。多層預測可以更好地處理行人遠近導致的尺度問題。

表1 Resnet50結構
卷積預測模塊包含分類支路和回歸支路,分類支路主要負責區分前景與背景,其通過多個卷積核大小為3×3,輸出通道數為256的卷積層對p3~p7進行卷積,最終以通道數為K×A的3×3卷積輸出類別概率。其中K為類別數目,本文中設為2,即僅前景和背景兩個類別,A表示輸出特征圖中每個網格的先驗邊界框數目,本文中為9?;貧w支路除了尾部輸出卷積層以外結構均與分類支路相同,在此不再贅述。尾部輸出卷積層需輸出預測框相對于預設框的偏移程度,通過通道數為4A的3×3卷積實現,4表示框的偏移量dx、dy、dw、dh。
本文在RetinaNet的基礎上對卷積預測模塊的分類支路和回歸支路分別增加注意力機制子網絡,同時引進行人可見框信息對傳統的回歸損失函數進行優化,如圖1所示。除了以上兩點改進之外,本文網絡所有參數設定均保持與基準方法相同。
本文通過注意力機制指導網絡重點關注行人未被遮擋的區域,增加行人關鍵部位的特征權重,從而避免背景遮擋等干擾信息的影響。針對檢測問題中分類和定位兩個方面采用不同的注意力機制:在定位支路采用空間注意力機制,在分類支路采用通道注意力機制。同時,利用數據集中提供的行人標簽中的全身邊界框和可見邊界框來為空間注意力機制提供監督信息,從而更加有效地指導網絡學習。
1.2.1 空間注意力機制
空間注意力機制的基本思想是通過網絡生成一個與原始特征圖相同尺寸的掩膜,掩膜中每個元素的值代表特征圖對應位置像素的權重,經過學習不斷調整各個權重,其本質是告訴網絡應該關注的區域。本文的空間注意力機制子網絡的結構如圖2所示。首先通過4個大小為3×3、通道數均為256的卷積核對回歸分支進行卷積,再利用一個通道數為1的3×3卷積將特征圖壓縮成掩膜。為了保留原本的背景信息,以exp(掩膜參數)乘到原來的特征圖上,從而調節原本特征圖各個位置的權重。本文為了指導空間注意力機制的學習,使用行人的監督信息生成一個像素級的目標掩膜作為空間注意力機制的標簽:將行人的全身邊界框和可見邊界框區域像素值分別設為0.8和1,其余背景區域像素值設為0。這樣的標簽將會指導空間注意力機制關注圖片中行人區域,同時更加關注行人的可見區域。

圖2 空間注意力子網絡結構
1.2.2 通道注意力機制
通道注意力機制基于對卷積神經網絡的一個基本認識:卷積特征圖的不同通道編碼了物體不同部位的特征。文獻[16,21]發現一些通道的特征圖對行人的特定部位如頭、上身和腳等有極高的響應。通道注意力機制的基本思想就是通過網絡生成一個長度等于通道數目的向量,向量中的每個元素對應特征圖每個通道的權重,通過學習不斷調整各通道的權重,其本質是告訴網絡應該關注的行人部位。因此本文在分類支路加入通道注意力機制,其網絡結構如圖3所示,與文獻[16]中的結構類似:首先對分類支路進行池化;將池化后的權重向量送入全連接層FC1和FC2,對其進行“壓縮”和“拉伸”操作;然后通過sigmoid函數將向量的分量限制在0~1之間,并將兩個向量相加融合為最終的權重向量。不同于文獻[16]中僅使用平均池化,本文同時采用全局池化和最大池化,這樣可以在保留每個通道平均特征的同時突出其主要特征,使得網絡更加關注行人的可見部位。

圖3 通道注意力子網絡結構
1.3.1 算法整體損失函數

λ2La(m,m*)
(1)

1.3.2 遮擋感知的回歸損失函數
在通用目標檢測中,經典的回歸損失函數為smoothL1函數,其形式為

(2)
(3)
其中:A為所有參與計算的行人檢測框,tin為檢測的第n個行人框,ti*n則為其真實坐標,x、y、w、h分別為真值框的中心點坐標以及寬高。
為了進一步處理遮擋問題,本文提出一種可以依據遮擋程度自主調整檢測框權重的回歸損失函數。其基本思路是:在計算回歸損失函數時,通過預測行人邊界框與數據集提供的行人可見區域邊界框的IOG(intersection over ground truth)作為每個正樣本產生損失函數的權重,即若預測的正樣本邊界框與行人可見區域重疊較多,那么它產生的損失更為可信,分配較高的權重,反之則分配較低的權重?;谶@個直觀的想法,設計出的改進回歸損失函數具體形式為
(4)
(5)
其中:n為第n個預測框,bpred為判定為前景的行人預測框,bgtvis為其對應的行人可見區域邊界框。
采用IOG而不是IOU的原因在于,期望的權重在0~1之間,而即使是完全正確的預測框,其與可見區域的IOU也可能是一個較小的數值,因此使用IOG更為合適。文獻[13]中同樣利用行人可見區域與預測框的重疊程度改善遮擋問題,做法是當預測框與行人全身邊界框和可見區域邊界框的IOU同時大于一個固定的閾值時,才判定此預測框為正樣本。這種做法有兩個不足之處:一是閾值的大小不好設定,二是判定條件過嚴可能導致有真實框沒有對應的預測框。本文提出的新型回歸損失函數則有效地解決了這兩個問題,更加靈活地利用行人可見框來指導網絡的學習。
2.1.1 數據集
實驗是在Caltech和CityPerson兩個行人數據集上進行的。Caltech數據集[22]是目前最為常用的公開數據集之一,原始圖片為640×480像素,提供行人全身邊界框和可見區域邊界框標簽。預先劃分好訓練集4 250張,測試集4 024張。CityPerson是目前較新的公開行人檢測數據集,由文獻[23]于2017年提供,其包含了5 000張德國各地的實拍圖片。相比于Caltech數據集,其行人遮擋問題更加嚴重。數據集預先將2 975張作為訓練集,1 525張作為測試集,圖片為2 048× 1 024像素,提供行人全身邊界框和可見部分邊界框。
2.1.2 先驗邊界框的設置
本文算法在5個不同的特征層進行預測,所以需要設計各特征層上的預設邊界框,預設邊界框的好壞直接影響到回歸的速度與精度。文獻[6,9]手工設計幾個固定尺寸和比例的邊界框,但其不夠靈活且效果稍差。文獻[24]提出了一種更為靈活的方法,通過對訓練集進行聚類來確定預設邊界框的尺寸和比例。
本文采用聚類的思想來設計預設邊界框,與文獻[24]不同的是,本文算法在5個特征層進行預測,所以需要根據不同特征圖的尺寸合理安排不同大小的預設邊界框。具體做法是:首先獲得訓練集中所有真實框的寬高ball={b1,b2,…,bn},為了避免聚類中心被數據量最大的中等尺寸的框主導,預先按框的高度h從小到大將所有框劃分為5份,然后利用k-means聚類基于每份邊界框生成9個預設的邊界框,最終共生成45個不同大小與比例的預設邊界框,分別配置到不同尺度的預測特征層上。聚類中,考慮輸出行人邊界框的目的,距離度量采用如下形式:
d(box,ci)=1-IOU(box,ci)
(6)
(7)
其中:box為訓練集中的行人邊界框,ci為第i個聚類中心代表的邊界框。
2.1.3 訓練細節
利用水平翻轉、裁剪等操作實現數據增強,增加訓練樣本集的豐富程度。為了保證圖片放縮過程中物體不會變形,通過加padding縮放操作將Caltech和CityPerson數據集的輸入圖片尺寸分別調整為1 200×900像素和1 400×700像素,兼顧性能和速度。通過Adam算法對網絡各部分參數進行優化,學習率的初始值設為0.000 1,如果連續3個epoch整體損失函數值不發生明顯變化,學習率衰減為原來的1/10,總訓練epoch數為80。主干網絡ResNet50采用在ImageNet上訓練好的模型。batch大小為2,訓練平臺為英偉達RTX 2080。
2.1.4 評估指標
對數平均漏檢率(log-average miss rate)[22]是評估行人檢測算法最為常用的指標之一。同時為了更好地體現算法對遮擋問題的處理能力,利用數據集提供的行人可見邊界框和全身邊界框的比值(可見度,Vis)來衡量遮擋程度,將測試集按遮擋程度分為以下3類:1)輕微遮擋, Vis>0.65;2)嚴重遮擋,0.20
本文以RetinaNet為基本框架,分別添加雙重注意力機制子網絡和可感知遮擋的優化回歸損失函數,其余參數值均保持和RetinaNet相同。消融實驗結果見表2、3。其中k-means_anchor、attention、weightloss分別表示是否用聚類預測邊界框、是否加入注意力機制子網絡以及是否使用改進的回歸損失函數。

表2 Caltech數據集上消融實驗結果

表3 CityPerson 數據集上消融實驗結果
由表2、3的消融實驗結果可以看出,與基準方法RetinaNet相比,增加注意力機制子網絡和感知遮擋的新型回歸損失函數在不同遮擋程度子集上均會帶來一定的性能提升,尤其是對于嚴重遮擋的子集,性能提升更加顯著。在Caltech的嚴重遮擋子集上二者分別提高了6.22%和7.35%,在CityPerson上分別提高了3.29%和3.37%。相較于基本框架RetinaNet,本文方法在Caltech和CityPerson的嚴重遮擋子集上分別提高了12.03%和4.56%,充分表明該方法對復雜交通場景下的遮擋問題具有很好的處理能力,本文方法的整體性能與RetinaNet相比,同樣有較大的提升。此外,利用聚類生成預設行人邊界框會給整體性能帶來一定提升,但對于遮擋問題效果不明顯。
圖4展示了Caltech數據集下基準方法RetinaNet與本文方法的檢測效果,可以看出,基準方法無法檢出一些被汽車、草叢等遮擋的行人,而本文方法可以檢出這些目標;對于一些行人之間相互遮擋的現象,基準方法只會給出一個大的邊界框,本文方法能分別將每個行人框出,表明本文方法對于類內遮擋和類間遮擋均具有較好的魯棒性。

圖4 Caltech數據集上檢測效果圖
在中國的街道場景中,行人更加密集,極易發生遮擋現象,尤其是類內遮擋較為普遍。本文方法對于類內遮擋的魯棒性結論在國內智能交通領域具有較高的應用價值。
2.3.1 檢測效果
表4對比了本文方法和其他8種方法(包括傳統的HOG[2]和ACF[4],基準RetinaNet[18],新近提出的AdaptFasterRCNN[23]等)的檢測效果??紤]到CityPerson數據集較新,目前尚未有充足方法在其上進行測試,且其Benchmark并未給出其他方法的原始檢測文件,難以客觀地與其對比算法性能。因此對比實驗只在Caltech上進行.
從表4中可以看出,本文方法在整體數據集上的平均對數漏檢率最低,僅為18.72%,與其他方法相比具有一定的優勢。在輕微遮擋子集上,本文方法的檢測效果也處于前列,平均漏檢率為9.97%,略高于AdaptFastRCNN等4種方法,這可能是本文方法側重于遮擋問題而導致一些小尺寸行人的漏檢。但在嚴重遮擋子集上,本文方法的性能十分突出,其平均對數漏檢率僅為45.69%,比其他方法小12%以上,遠遠領先其他方法。這表明本文針對遮擋問題專門設計的雙重注意力機制和遮擋感知的新型回歸損失函數非常有效。從表4中還可以看出,對于行人檢測這樣的非剛體、背景復雜且存在遮擋的檢測問題,包括本文方法在內的基于卷積神經網絡的方法遠遠好于傳統的手工設計特征的方法。

表4 Caltech數據集上與其他8種方法對比結果
圖5進一步給出了嚴重遮擋子集上幾種方法的漏檢率隨著每張圖誤檢數目變化的曲線圖,曲線下方的面積越小,行人檢測算法的性能更強。同樣可以看出,隨著每圖誤檢數量的變化,本文方法的漏檢率都處于最低水平,相比于其他行人檢測方法,整體優勢明顯。

圖5 Caltech嚴重遮擋子集上的檢測效果對比
2.3.2 檢測速度
本文方法在Caltech(縮放至1 200×900像素)和CityPerson數據集(縮放至1 400×700像素)上的檢測速度分別為11.8幀/s(frames per second)和10.0幀/s,實現了準實時的行人檢測。此外,也比較了本文方法和其他4種精度較高的檢測方法(包括RPN+BF[25], SA-FastRCNN[26]等)的檢測效率,實驗在Caltech數據集上進行。為進行公平的比較,類似于文獻[28],本文對比了各方法在單位算力(TFLOPS,每秒萬億次單精度浮點計算)下的檢測速度,結果見表5(GPU計算能力來自NVIDIA官網)。

表5 5種方法的檢測速度
從表5中可以看出,本文方法的檢測速度略慢于RetinaNet,比其他3種方法的快1倍以上。主要原因在于:本文方法采用單階段的檢測框架,可以實現端到端的快速檢測;而SA-FastRCNN等3種方法采用雙階段的檢測框架,需要通過網絡生成候選區域然后再進行檢測;此外,由于注意力機制子網絡帶來了附加的計算量,因此本文方法的檢測效率略低于RetinaNet。
提出一種結合雙重注意力機制的遮擋感知方法來提高行人檢測算法在嚴重遮擋情況下的性能,降低遮擋對檢測造成的影響。該方法通過引入空間/通道雙重注意力機制,以及遮擋感知的新型損失函數,能夠有效地處理遮擋問題,在Caltech和CityPerson數據集上分別取得18.72%和41.95%的平均漏檢率,優于RetinaNet等8種先進的行人檢測算法;尤其在Caltech嚴重遮擋子集上,其平均漏檢率僅為45.69%,低于其他方法12%以上。并且,該方法可以實現準實時的行人檢測,在Caltech和CityPerson上的檢測速度分別為11.8幀/s和10.0幀/s。