強 華,李琦銘,周勇軍,高 驍,李 波,李 俊+
(1.中國科學院福建物質結構研究所 泉州裝備制造研究所,福建 泉州 362200;2.中北大學 電氣與控制工程學院,山西 太原 030051;3.閩南科技大學,福建 泉州 362200;4.九江武警總隊,江西 南昌 330000)
隨著人工智能技術的普及,行人檢測被廣泛應用于自動駕駛和安防視頻監控及監獄巡檢等場景中。雖然行人檢測方法因為深度學習的應用取得了長足的進步,但是由于小尺度行人檢測問題存在,檢測效果目前仍不能滿足實際工業要求,因而需要對行人檢測做進一步研究。
傳統的行人檢測方法為手工設計的特征,包括梯度直方圖(HOG)、特征描述算子(Haar特征)、局部二值模式(LBP)等方法,是滑動窗口分類器的形式,但此類方法存在計算復雜度低、特征維度高、泛化能力差等缺點。隨后從RCNN[1]開始提出了深度學習的檢測方法,但是當前基于深度學習的主流檢測器,不管是兩階段的Faster R-CNN[1-3]系列,還是單階段的SSD[4]系列,均采用鋪設錨點框的檢測方法。其本質上仍是滑動窗口分類器的形式,用于判斷預設的錨點框內是否存在行人。然而這些方法都需要針對特定數據集設計以及優化錨點框超參數,從而增加了訓練難度。另外這些方法在分類階段,由于高層卷積特征圖分辨率降低,小尺度的行人無法得到有效的描述,會降低檢測的總體性能。
為此近年來基于深度學習提出的無錨框的行人檢測方法可以有效地解決此問題。例如,YOLO[5]和DenseBox[6]采用單個卷積網絡來預測多個邊界框和類別概率,成功地拋棄了錨點框,從而實現了訓練和預測端到端的進行,縮短了訓練時間。但其特征提取方法較為粗糙(如YOLO里使用7×7大小的卷積核網格),不能精確定位行人,尤其對于小尺度的行人。接著提出的CornerNet[7]和TLL[8]通過一組對角點檢測或上下頂點檢測,實現了基于關鍵點檢測和配對的工作。通過一組對角點或上下頂點配對的方式,成功地拋棄了錨點框,從而實現了無錨框的行人檢測,但是配對方法較為復雜。隨后劉偉等提出CSP[9]行人檢測算法,實現了簡單的利用全卷積的方式預測中心點和尺度的檢測器,將行人檢測這個高層視覺任務簡化為了語義特征點檢測的問題。因此本文在CSP算法基礎上進行改進。
現有的CSP行人檢測模型雖然在行人檢測方面達到了較好的效果,但是由于卷積層的感受野范圍有較大的限制,不能根據不同尺度的行人進行自適應的變化。本文針對小尺度行人的檢測問題,對CSP行人檢測模型進行改進,提高行人檢測的精度。
在行人檢測的深度學習框架中,卷積網絡是行人檢測的主干網絡,許多方法通過提高網絡的特征提取能力來獲得更低的平均漏檢率(miss rate)。因而我們從卷積網絡入手,基于改進卷積網絡的思想,提高行人檢測的精度和速度。自從ResNet[10]殘差網絡的提出,極大程度上解決了由于網絡層數增加而產生的梯度消失和梯度爆炸問題,這是卷積網絡發展史上的一次重大轉折點。隨后ResNet[10]的各種改進方法(如ResNeXt[11]、SENet[12]、SKNet[13]、IResNet[14]、ResNetst[15])的提出,逐漸推進了卷積網絡向前發展,但是這些方法背后的共同思想集中在調整網絡體系結構來產生豐富的特征表示上,缺點是需要太多的訓練時間。而SCNet[16]則在沒有改變網絡基本架構的情況下,通過內部通信顯著擴展了每個卷積層的感受野范圍,從而增強了高層卷積特征圖的分辨率。
SCNet針對小尺度目標有定位精確的好處,可以有效區分小尺度目標和背景物,降低小尺度目標的漏檢率。小尺度行人的處理恰恰是行人檢測中重要的研究問題,可以將SCNet應用到行人檢測中,提高行人檢測的精度。因此,本文借鑒SCNet的網絡結構對CSP行人檢測模型進行改進,提出一種融合SCNet卷積網絡和CSP行人檢測模型的行人檢測方法(SC-CSP檢測算法),這種方法能有效擴大整個網絡的感受野范圍,使檢測器更好地檢測到大小不一的行人,尤其對于改善小尺度行人的檢測有更好的效果。
改進后的網絡結構如圖1所示,SC-CSP網絡結構分為3個階段:特征提取、檢測器頭部和檢測。

圖1 SC-CSP結構
輸入圖片先經過SCNet自校準卷積網絡,對行人特征進行分層提取。在SCNet中,它使每個空間位置能夠自適應地對不同區域高低層之間的特征進行提取,使得行人與背景物更具區分性,突出行人的中心點位置。這要歸功于SCNet的SCNet Block中的異構卷積和濾波器間的通信模塊,此模塊是由多個卷積注意力模塊組合起來,用來替換ResNet的基本卷積結構。SCNet Block自校準卷積模塊在1.1.1中進行詳細介紹。網絡的輸入是圖像I,進而通過SCNet自校準卷積網絡生成了具有不同分辨率的多個特征圖,將其定義為
φi=fi(φi-1)=fi(fi-1(…f2(f1(I))))
(1)
其中,φi表示第i層輸出的特征圖,在本文的網絡中,這些特征圖的大小逐漸減小,fi(·)代表生成的特征圖,特征圖是由卷積或池化處理得到。本文將負責檢測的這些特征圖表示為φdet,負責檢測的特征圖為圖1中第1層~第4層的特征圖,表示為Layer1、Layer2、Layer3、Layer4。低層特征圖擁有較高的空間分辨率,高層特征圖則包含更多的語義信息。為了使不同層的特征圖都能很好應用在最終的檢測中,我們把低層和高層的特征圖融合為一個特征圖。具體的特征融合方法為:首先對高低層要融合的特征圖進行L2歸一化處理;其次利用反卷積將第2層~第4層特征圖的分辨率上采樣到和第1層特征圖的分辨率一致的尺度下,尺度為原圖的1/4;最后將處理后的特征圖連接起來,得到最終用于檢測的行人特征圖。具體的網絡流程在1.1.2中進行詳細論述。
1.1.1 SCNet Block模塊
SCNet Block這一概念來自SCNet中的一個模塊。在不增加額外計算量的情況下,該模塊能產生全局的感受野,可以有效擴大網絡中每個卷積層的感受野范圍,更易進行小尺度的行人檢測。如圖2所示,輸入X先通過兩個卷積分成兩個特征X1、X2。對特征X1采用平均池化,下采樣r倍(r=4),再經過F2卷積提取得到特征,對其特征進行上采樣(采用雙線性插值法),經過Sigmoid激活函數對F3卷積提取后的特征進行校準得到特征Y′1,對Y′1進行F4卷積提取特征得到輸出特征Y1;對特征X2經過F1卷積提取得到特征Y2;對兩個尺度空間輸出特征Y1、Y2進行拼接操作,得到最終輸出特征Y。可以用公式表為

圖2 SCNet Block結構
T1=AvgPoolr(X1)
(2)
對T1使用卷積核K2進行特征變換
X′1=UP(F2(T1))=UP(T1*K2)
(3)
其中,UP(·)表示線性插值操作,從而實現中間參考量從小尺度空間到原始特征空間的映射。現在自校準操作可以表現為
Y′1=F3(X1)·σ(X1+X′1)
(4)
其中,F3(X1)=X1*K3,σ表示sigmoid函數,以及符號“·”表示逐元素乘運算,X′1被用作殘差項來建立權重用于自校準。自校準后的最終輸出可以寫成
Y1=F4(Y′1)=Y′1*K4
(5)
SCNet相比傳統的ResNet的優點在于,SCNet將一個標準卷積拆成4個小卷積F1、F2、F3、F4,首先在不增加額外計算量的情況下,增加了圖像中小尺度行人特征的信息提取能力;其次SCNet考慮到了行人特征圖通道間的信息和行人局部信息的增強,空間上的每一點都有附近區域和通道上的交互信息,使卷積層產生全局感受野,提高小尺度行人的定位精度;最后K1、K2、K3、K4為自校準卷積模塊中的卷積核,每個部分負責不同的功能,這使得自校準卷積避免了背景信息的干擾,提高行人檢測的速度。
1.1.2 SC-CSP的網絡流程
本文在CSP的基礎上,將CSP原有的主干網絡ResNet換成了SCNet,不但擴大了網絡的感受野范圍,而且達到了降低網絡參數的目的。結合圖3簡述SC-CSP的網絡流程,以輸入尺寸為640×1280,3通道的圖像為例。階段一:圖像依次經過Conv、BN、Relu、MP層,尺寸變為(160,320,64)。階段二:進入SCB(SCNet Block)自校準卷積模塊。SCB模塊分為4層特征圖處理,每一層分別處理相對應尺度大小的行人。經過Layer1特征圖尺寸變為(160,320,256),經過Layer2特征圖尺寸變為(80,160,512),經過Layer3特征圖尺寸變為(40,80,1024),經過Layer4特征圖尺寸變為(20,40,2048),這里設置4層特征圖的作用是可以緩解多尺度行人的檢測問題,相比CSP行人檢測算法的Layer4來說,CSP中的Layer4特征圖尺寸是原輸入圖像尺寸的1/16與Layer3特征圖尺寸一致。而我們的SC-CSP行人檢測算法將其特征圖尺度下采樣到原圖的1/32,這樣做的好處在于使多尺度行人的檢測范圍更廣,提升小尺度行人的檢測精度。階段三:首先對所有要融合的特征圖進行L2歸一化,其次將第2層~第4層特征圖反卷積到第1層的尺寸下。階段四:進行不同層之間的特征融合。最終將得到的特征圖送入檢測器頭部進行行人檢測,本文主要檢測的是行人的中心點和尺度。

圖3 網絡流程
基于以上提取得到的特征圖,首先附加一個3×3的卷積層將其通道數減小到256。其次添加兩個并聯的1×1卷積層,用于生成行人中心點特征圖和行人尺度特征圖,這樣極大地簡化了檢測器模塊。然而,本文在特征提取過程中采用的是下采樣的方法來產生特征圖,這樣會造成定位不佳的問題。因而,我們需要稍微調整行人的中心位置,來緩解下采樣方法的局限性。最后我們再額外附加一個2×2的卷積層,用于生成行人偏差特征圖。
在SC-CSP檢測器中,僅對一組特征圖φdet進行檢測,表示為
Dets=H(φdet)={cls(φdet),regr(φdet)}
(6)
其中,Η(·)代表檢測器的頭部,通常Η(·)包含兩個元素cls(·)、regr(·),cls(·)預測分類器分數,regr(·)預測邊界框的尺度和偏差。
在測試過程中,SC-CSP只是涉及FCN的單個轉發,并帶有多個預測機制,將保留中心點熱圖中置信度高于0.01的位置及其在比例圖中的相應比例。然后會自動生成邊界框,每個邊界框都需要預測5個參數(x、y、wide、height、置信度),其中(x、y)為邊界框左上角的坐標、wide為邊界框的寬、height為邊界框的高。接著將其重新映射到原始圖像大小。最后使用非極大值抑制算法(NMS)去除多余的窗口,其閾值為0.5,最終找到最佳的行人檢測位置。
1.4.1 真實值

1.4.2 損失函數
對于行人的中心點預測,本文首先通過交叉熵損失將其轉化為分類任務,這樣做還存在不足,比如很難確定更為精確的中心點;其次由于正負樣本的模糊性會導致訓練過程很難進行。為了減少正樣本附近負樣本的模糊性,本文應用了二維高斯掩模G(·),并以每個正樣本的位置為中心。可以用公式表示為
(7)
(8)

(9)

(10)
其中,Pij∈[0,1]是網絡的估計概率,指示位置(i,j)中是否存在行人的中心,yij∈{0,1} 是真實值的標簽,其中yij=1表示正樣本的位置,aij和γ是聚焦超參數,我們的實驗設置γ=2。為了減少正樣本附近負樣本的模糊性,使用高斯掩模M的aij來減少負樣本的模糊性,其中超參數β控制懲罰,實驗中β=4可以獲得最佳性能,對于正樣本aij設置為1。
對于行人的尺度預測,我們使用L1平滑損失將其轉化為回歸任務
(11)
其中,sk和tk分別代表網絡的預測和每個正樣本的真實值。
如果附加了偏移預測分支,類似Smooth L1損失,表示為Lo。
綜上,對目標函數的優化是
L=λ1Lc+λ2Ls+λ3Lo
(12)
其中,λ1、λ2、λ3分別表示中心分類損失、尺度回歸損失和偏移回歸損失的權重,通過實驗分別設置為0.01、1和0.1。
1.4.3 數據增強
為了增加本算法訓練數據的多樣性,本文采用了標準數據增強技術。首先,將輸入圖片在[0.4,1.5]范圍內隨機縮放。其次,通過零填充對圖片進行裁剪和擴展,以使寬度具有固定數量的像素(對于CityPersons為640,Caltech為336),在此過程中將保持圖像的長寬比。
2.1.1 數據集
為了驗證所提出方法的有效性,本文對兩個最大的行人檢測基準進行了評估,即CityPersons[17]數據集和Caltech[18]數據集。選擇這兩個數據集的原因是它們通過中心體線標注和標準化長寬比來提供邊界框,這種標注過程有助于保證框體與行人中心的良好對齊。CityPersons數據集是一個大規模行人檢測數據集,我們用2975幅圖像在官方訓練集上訓練模型,并用500幅圖像在驗證集上進行測試。Caltech數據集是由加州理工學院等高校組成的視覺小組整理的,他們從10小時的車載攝像頭視頻中選取了137分鐘(約250 000張圖像),2300個行人,標注了350 000個邊界框。其次Caltech數據集標注了小尺度行人的情況,這有利于進一步研究小尺度的行人檢測問題。
2.1.2 評價標準
為了檢驗本文提出的SC-CSP方法的性能,對于City-Persons數據集,選用平均漏檢率(average miss rate)作為檢驗的綜合指標。對于Caltech數據集,選用ROC(receiver operating characteristic)曲線作為評價標準,ROC曲線的橫、縱坐標軸分別對應的是log尺度下的每幅圖像的平均誤檢率(false positive per image,FPPI),其范圍為[10-2,100]和對數平均漏檢率,我們將其評價指標表示為MR-2。所有的檢測結果圖都利用Caltech數據集提供的工具箱得到,我們還利用了該工具箱中提供的其它行人檢測方法的實驗結果作為對比方法。
2.1.3 訓練細節
我們在PyTorch中實現了該方法,卷積網絡是在ImageNet上預訓練得到的SCNet-50網絡。對于CityPersons數據集,我們在4個GPU上優化網絡,每個GPU上有兩個圖像用于一個小批量,學習率設置為2×10-5。對于Caltech數據集,我們同樣在4個GPU上優化網絡,設置每個GPU上有16個圖像用于一個小批量,學習率設置為1×10-4。
在本節中,我們在CityPersons數據集上對大小為(1024×2048)的原始圖像進行測試。
2.2.1 不同卷積網絡在CSP框架下的對比實驗
為了驗證本文所提出的SC-CSP網絡結構的性能,選取近兩年的CVPR會議文章中4種最新的卷積神經網絡:ResNest、IresNet、VovNet、ResNet與SCNet卷積網絡作對比,對比實驗結果見表1,實驗結果表明在合理遮擋、嚴重遮擋、少量遮擋的情況下SCNet均達到了最低的平均漏檢率,分別為10.97%、47.84%和7.57%。只有在部分遮擋情況下SCNet的平均漏檢率為10.13%,略大于IresNet的平均漏檢率,卻低于CSP原框架的主干網絡ResNet及ResNest和VovNet的平均漏檢率。如表2所示,行人在不同尺度的情況下所做的對比實驗,在合理尺度、小尺度、中尺度、大尺度的情況下SCNet均達到了平均漏檢率最低、速度最快的效果。通過實驗結果與其余4種卷積網絡對比,發現SCNet對行人的特征提取效果更好,因此我們選擇SCNet作為CSP框架的主干網絡。

表1 不同遮擋情況下的不同卷積網絡在CSP框架下的平均漏檢率
2.2.2 SC-CSP算法與現有技術的比較
我們在CityPersons數據集上與現有技術進行比較。除了合理情況,還在具有3個不同遮擋水平的情況下評估了此方法。并且還在行人的大中小3個不同尺度范圍的情況下進行實驗。如表3所示,本文提出的SC-CSP方法的平均漏檢率低于專門針對遮擋處理的RepLoss[19]和OR-CNN[20]方法,可見SC-CSP在沒有任何遮擋處理策略的情況下表現良好。在合理的情況下,精度相比原CSP算法提升了0.6%,在相同的運行環境下,速度較快,每張圖片檢測速度為0.33 s,相比CSP檢測方法每張圖片的檢測速度提高了0.05 s。如表4所示,我們在行人的大中小3個不同尺度范圍的情況上與現有最新技術進行對比實驗,在各個尺度范圍上,行人的平均漏檢率均有提升,尤其是在小尺度范圍上,行人的平均漏檢率相比CSP方法提升了1.1%。

表4 SC-CSP算法與現有技術在尺度方面的比較情況
在本節中,我們在Caltech數據集上對大小為(480×640)的原始圖像進行測試。繼Caltech舊標注之后,所有實驗均在最新提出的Caltech新標注上進行。使用42 782幅圖像在官方訓練集上訓練模型,并用4024幅圖像在測試集上進行測試。所提方法在合理和全部遮擋的情況下與現有技術進行了廣泛的比較。如圖4所示,圖4的橫坐標為每幅圖像被錯誤地分類為正樣本的負樣本數量,縱坐標為漏檢率,分類器所漏檢的正樣本數占所有正樣本數的比例。正樣本是包含行人的圖像,負樣本是不包含行人的圖片,如圖4(a)所示,我們的方法SC-CSP在合理遮擋情況下ROC曲線達到了最低,為4.3%的MR-2, 比最具競爭力的CSP行人檢測算法的4.7%降低了0.4%。顯而易見,如圖4(b)所示,在嚴重遮擋情況下,我們的方法ROC曲線也達到了最低。ROC曲線越低代表行人檢測的準確度越高。
在Caltech數據集上的對比方法包括:FasterRCNN、RPN+BF、ALFNet、Hyperlearner、RepLoss、CSP等都是行人檢測領域最新的算法。從圖4可以看出我們的方法SC-CSP在所對比的檢測算法中取得了最低的平均漏檢率。圖4中虛實線條沒有特殊含義的區分,均代表漏檢率和被錯誤分類為正樣本的負樣本數量的關系曲線。

圖4 SC-CSP方法在Caltech數據集上與最新技術的比較情況
圖5給出了SC-CSP算法與CSP算法在Caltech數據集中部分測試圖像的檢測結果對比,圖5(a)為CSP算法檢測結果,圖5(b)為SC-CSP算法的檢測結果。箭頭指示的是漏檢的行人,顯而易見小尺度行人不易被檢測到。針對小尺度問題這個難點,SC-CSP方法仍然能表現出較好的魯棒性。同時SC-CSP方法在漏檢方面得到了很好的控制。從漏檢的結果可以看出,漏檢主要出現在光線較暗,行人尺度較小以及遮擋嚴重的情況下。

圖5 SC-CSP方法與CSP算法在Caltech數據集中部分測試圖像的檢測結果對比
為了解決小尺度行人的檢測問題,本文基于CSP和SCNet提出一種自校準卷積網絡的行人檢測模型,有效擴大了網絡的感受野范圍;利用特征融合技術,融合了高低層的行人特征信息,使小尺度行人信息得到充分的描述。通過無錨框檢測方法直接預測出行人的尺度大小進而判斷出行人的具體位置。在公開行人檢測數據集CityPersons和Caltech上對SC-CSP網絡模型進行了訓練和測試,并通過一系列的對比實驗。得出本文SC-CSP算法與CSP行人檢測模型相比,在合理情況下平均漏檢率降低了0.6%,尤其在小尺度的行人方面平均漏檢率降低了1.1%,同時在檢測速度上每張圖片提高了0.05 s。實驗結果表明,本文提出的SC-CSP方法在改善小尺度行人檢測上具有很強的優勢。然而,由于行人檢測中光線對比度差,小尺度行人的檢測問題以及行人的遮擋問題還沒有完全得到解決。因此,通過解決上述問題從而進一步提升檢測精度將是下一步的研究重點。