游 雙, 張著洪,2
(1 貴州大學 大數據與信息工程學院, 貴陽 550025; 2 貴州大學 貴州省系統優化與科學計算特色重點實驗室, 貴陽 550025)
隨著中國社會經濟的快速發展和科技水平的快速提升,行人檢測在智能監控、人臉識別、自動駕駛等各方面具有廣泛的應用和重要的研究價值。由于行人圖像受背景遮擋、姿態及拍攝角度等影響,給行人檢測增加了難度。目前,行人檢測主要包括傳統檢測法和深度學習法兩類。傳統檢測法是在確定輸入圖像中目標所在候選區域基礎上提取目標特征,并依據目標分類器對目標進行識別和類別劃分[1]。大致可分為基于全局特征的檢測法和基于運動檢測的方法,前者采用圖像的靜態特征,如邊緣、形狀、紋理等,通過分類器對圖像的目標進行識別和類別劃分,但在出現分辨率低、目標遮擋和擁擠情形時,分類準確率低[2];后者由背景建模法和分類器兩部分組成,其中背景建模法利用當前幀與前一幀獲取運動目標,其檢測速度快,但目標檢測易于受光照、陰影等影響,導致目標分類準確率低[3-5]。例如,Gong等[6]提出一種基于高斯背景建模、方向梯度直方圖和支持向量機的分類算法,通過前景分割、特征降維和信息更新3個步驟進行行人檢測,具有較強的實時性和高檢測準確率,但計算效率低,易于產生過多冗余窗口,進而導致檢測速度慢且檢測精度低。
深度學習法通常利用卷積神經網絡(Con-volution neural network, CNN)提取圖像特征,利用大樣本圖像訓練網絡參數,進而對行人進行檢測[7]。其能克服傳統檢測法易于出現檢測速度慢、魯棒性弱等缺陷,且能滿足實時性與準確性的要求[8]。涉及的主要方法包括候選區域選擇法和邏輯回歸法,候選區域選擇法首先利用滑動窗口獲取參考運動目標,利用CNN提取運動目標的特征,進而利用分類器對特征進行分類,該方法雖能高精度地檢測行人,但檢測速度較慢,實時性較差[9-10]。例如,任少卿等[11]利用區域生成網絡(Region proposal network, RPN)生成感興趣區域,進而與CNN結合,獲得能提高檢測速度的Fast R-CNN目標檢測模型,但檢測效率有待提高。邏輯回歸法利用圖像卷積提取特征,并通過回歸獲得目標對象所在邊框和類別信息,其目標檢測速度快、實時性強且應用范圍廣,但存在計算量較大,占用內存大等問題[12-13]。例如,劉建國等[14]將局部二值模式表示的紋理特征作為YOLOv3的前置模塊,獲得改進型YOLOv3,有效提高行人檢測的準確率,但特征提取能力較差且耗時較長;黃鳳琪等[15]利用K-means++算法重構目標錨框,并將其與YOLO算法融合,獲得的DCD-YOLO算法,能提高小目標行人檢測精度,但實時檢測速度較慢,占用內存較大。
綜上,傳統檢測算法存在檢測精度低、魯棒性弱等缺點,難以滿足實時性要求,而深度學習與行人檢測的結合,能高效率檢測視頻序列中的行人。為此,本文針對密集場景中行人檢測問題,在傳統YOLOv3基礎上,借助梯度下降法并結合通道注意力機制和空間金字塔模型,嘗試性地提出一種改進型YOLOv3(Improved YOLOv3, IYOLOv3)行人檢測模型,并應用于密集場景的重疊行人檢測。
Joseph Redmon等于2018年提出一種適用于行人檢測的端對端CNN,即YOLOv3。以尺度為M×M的灰度圖為輸入,經CNN輸出圖像中行人所在矩形框的中心位置(x,y)、寬ω及高h,即4維向量(x,y,ω,h)。經由邏輯回歸獲取邊界框的位置,利用特征金字塔網絡(Feature Pyramid Networks, FPN)以及不同尺度圖像框提取行人的特征,最終實現對行人的檢測[16],其網絡結構如圖1所示。

圖1 YOLOv3網絡結構
YOLOv3由兩部分構成,即主干特征提取網絡Darknet-53和多尺度檢測網絡。Darknet-53由5個殘差結構組成,依次包含1、2、8、8,4個殘差模塊。每個殘差結構經由3×3圖像框進行下采樣,即依次對輸入圖片進行5次下采樣,使得每一次圖像框的大小壓縮一半,但通道數翻倍。每個殘差塊(Res Block, RB)由卷積塊(Convolutional Batch Normalization Leaky ReLU, CBL)和殘差網絡(Res Net, RN)構成;每個殘差網絡由2個CBL和1個快捷鏈路層堆疊而成。在此,每個CBL主要由特征提取的卷積層、特征歸一化處理的批量歸一化層(Batch Nor-malization)、激活函數層(Leaky ReLU)構成;另外,多尺度檢測網絡由3個輸出層、上采樣層、若干卷積層和Concat層組成。
YOLOv3以Darknet-53作為基礎網絡提取特征,利用FPN網絡融合不同層級的特征信息,進而在3個不同的尺度上進行行人檢測。以416×416尺寸的輸入圖像為例,圖中輸出1是將Darknet-53的第五個殘差結構輸出的特征圖經過一系列卷積后,以13×13的維度進行目標檢測;輸出2是通過Darknet-53中第五個殘差結構輸出的特征圖,并經由上采樣后與第四個殘差結構輸出的特征圖融合,按26×26維度進行目標檢測;輸出3是將第三個殘差結構的特征圖與后兩個殘差結構輸出的特征圖融合,按52×52維度進行目標檢測。如此3種輸出分別對應深層、中層和淺層特征,其中深度特征圖具有尺寸小、感受野大的特點,有利于大尺度行人的檢測。反之,淺層特征圖則便于小尺度行人的檢測。因此,該模型既可以檢測大行人目標,也可以檢測小行人目標。

另一方面,YOLOv3作用于第j個子圖,經由尺度分別為13×13、26×26、52×52的特征圖、權值矩陣W、閾值向量b,輸出包含行人的圖像框的中心位置、寬度、高度,即(xij,yij)、寬ωij及高hij,進而經由梯度下降法求解式(1)優化問題:

(1)
盡管YOLOv3用于行人目標檢測具有檢測速度快、通用性強等優勢,但其自身存在的固有缺陷使得目標檢測效果仍需作進一步改善。主要表現如下:
(1) 主干特征網絡(Darknet-53)的多尺度檢測能力不足,導致網絡難以提取遠距離小目標及重疊行人的特征;
(2) 金字塔結構的多尺度特征層所包含的語義信息匱乏,感受野較窄,直接影響后續行人的檢測效果;
(3) 在相互遮擋場景下,行人的先驗預測框與真實框互相重疊,將對網絡損失函數值計算造成誤差;
(4) 在檢測階段,非極大值抑制(Non-max-imun suppression, NMS)模型容易將被遮擋的行人先驗預測框判定為虛假預測框,使得網絡無法識別被遮擋的行人,從而出現漏檢現象,導致檢測精度降低。
基于以上因素,在此提出IYOLOv3網絡結構,并用于解決YOLOv3存在行人檢測精度低、定位目標的誤差大和漏檢嚴重等問題,如圖2所示。
IYOLOv3由3部分構成,即基于注意力機制中壓縮與激勵(Squeeze and Excitation, SE)與Darknet-53中殘差網絡ResNet的SE-ResNet、空間金字塔池化(Spatial pyramid pooling, SPP)及改進型非極大值抑制模型(Improved nonmaximum suppression, INMS)。對比圖1和圖2獲知,IYOLOv3是在YOL-Ov3基礎上增加SPP、INMS及Concat+CBM×3。在圖2中,SE-ResNet被用于增強特征提取和表示能力。與YOLOv3的主干特征提取網絡的區別原ReLU激活函數被Mish函數取代,同時原殘差模塊(Res Block)被擴展為含通道注意力機制的SE-Res Block,進而獲得改進型主干網絡SE-Darknet-53;另外,SPP由尺度不同的3個最大池化層構成,是一個經由3個卷積塊(CBM)與主干網絡(SE-Darknet-53)連接的空間金字塔池化模塊,將池化后獲得的特征圖傳遞給通道拼接層(Concat+CBM×3),擴大主干特征接收范圍,提升上下文的特征分離能力,提取的特征圖經由通道拼接層處理后傳送給INMS檢測層。

圖2 IYOLOv3網絡結構
2.1.1 SE-ResNet
鑒于Darknet-53較難提取視覺圖像中模糊或者較小行人目標,在此將SE與Darknet-53中的殘差網絡ResNet結合,獲得的基于SE的殘差網絡(SE-ResNet)更加關注行人特征,使得YOLOv3的行人特征判別能力得到增強,SE模塊示意圖如圖3所示。SE-ResNet是一種注意力機制下的深度學習方法,通過壓縮與激勵操作得到一組權重,然后對各通道產生的特征圖加權。即通過壓縮與激勵操作獲得各特征圖所述特征通道的重要程度,增強有用信息所述特征通道的輸出能力,以便提升特征提取能力。

圖3 SE模塊示意圖
圖3中,對于第m通道的特征圖X,經由n個卷積Ftr變換獲得尺度為H×W的n個特征圖Uci,1≤i≤n;隨后,依次經由壓縮、激勵、加權3步確定特征圖的權重。
首先,借助全局平均池化及特征壓縮操作Fsq(·),依據式(2)將第i個H×W特征圖退化為一個實數,用于表征第i特征通道上響應的全局分布。
(2)
其次,經由式(2)將i個大小為H×W的特征圖變成C個實數構成的向量表示為Zc。激勵操作包含兩個全連接層及ReLU激活函數和Sigmoid函數。利用兩個全連接層對特征圖降維與升維;第一個全連接層將特征維度降低到原來的C/r倍,再利用Relu激活函數實現對輸入特征的非線性表達,其中r為縮放系數,一般設置為16;第二個全連接層用來恢復特征圖的維度,進而經過Sigmoid激活函數獲得歸一化權重向量,Ac為特征激勵后得到的權重向量,即每個特征圖Uci經激勵后得到的重要程度構成的向量,其計算過程如式(3):
Ac=Fex(Zc,W)=ρ(W2δ(W1Zc))
(3)
其中,Fex(·)表示壓縮操作;W1表示第一個全連接層的權重矩陣;δ(·)表示ReLU激活函數;W2表示第二個全連接層的權重;ρ(X)表示向量X中每個分量經由Sigmoid函數作用后獲得的向量。
最后,對Ac中的分量作歸一化處理,得到的第i個分量作為第i個特征圖Uci所在通道的權重。
2.1.2 空間金字塔池化(SPP)
復雜場景中行人目標尺度變化大,YOLOv3的多尺度預測側重于多尺度卷積層的全局特征串聯,忽略了同一卷積層上多尺度局部特征的融合。在Darknet-53的最后一個特征層增加空間金字塔池化(Spatial Pyramid Pooling, SPP)模塊,SPP模塊結構如圖4所示。SPP通過不同尺度的最大池化操作融合全局、局部特征通道,獲取特征圖中不同尺度的感受野,增強特征圖的表達能力。

圖4 SPP模塊結構
為了增強多尺度特征的適應性,SPP模塊由3個尺度分別為5×5、9×9、13×13的最大池化層和Concat通道組成;Concat接收此3個池化層輸出的特征圖,并經處理后得到3個具有相同尺度的特征圖。SPP使具有不同尺度的特征圖融合,可增強網絡對圖像幾何空間信息的表達能力,提高小目標行人的檢測精度。
2.1.3 改進型非極大抑制(INMS)
非極大值抑制模型應用于冗余行人檢測框的剔除時,經由式(4)刪除行人檢測框:
(4)
其中,bi及si分別表示第i個檢測框及其得分;M表示當前得分最高的框;σ為設定的閾值。
交并比(Intersection over Union,IoU)表示真實框和網絡生成的預測框的重疊度,式(5):
(5)
其中,A為預測框,B為真實框。
兩個不同目標所在檢測框相互重疊時,因抑制因素,得分較低的框直接被刪除,從而導致漏檢,造成被遮擋的行人難以被檢測。為能檢測到被遮擋的行人,在式(4)中引入懲罰和漸進抑制思想,由式(6)確定檢測框的得分:
(6)
其中,r為高斯系數。
給定第k幅尺度為M×M的輸入圖像,IYOLOv3的損失函數值為檢測框的位置均方誤差(Mean Square Error, MSE)及置信度損失值之和。
2.2.1 改進型MSE函數
雖然MSE的求導較易,但卻將檢測框的中心位置坐標和寬與高視為獨立變量,忽略了兩者之間的關系,從而易導致檢測框與真實框的位置差距較大。因此,由式(7)度量檢測框與真實框在重疊面積、中心點距離、長、寬方面的差異。

(7)
其中,W和b分別是IYOLOv3的權值矩陣和閾值向量;A和B分別表示預測框與真實框;(Actr,ω,h)及(Bctr,ωgt,hgt)分別為預測框、真實框的中心點位置、高及寬;λ為常數;dist(·)為歐氏距離函數;c為Actr及Bctr的對角線長度中的最小值。
2.2.2 改進型置信度損失函數
檢測框中是否存在行人由置信度判斷,若存在行人,則置信度值為1,否則為0。為此,IYOLOv3產生的誤檢損失由式(8)計算:

(8)

在給定的K幅輸入圖像下,IYOLOv3的批量損失誤差函數由式(9)確定:
(9)
結合IYOLOv3的結構與模塊設計,其算法描述如下:
(1)參數設置:圖像尺寸M×M,學習率η,最大迭代次數T,卷積核大小Q及數量N;
(2)輸入尺度為M×M、規模為K的灰度圖像集P;
(3)置n←1,隨機初始化W和b;
(4)置k←1;
(5)計算損失函數值:由SE-Darknet-53提取圖像集P中第k幅圖的特征;通過SPP、FPN層對獲得的特征信息進行融合;由INMS層計算第k幅圖產生的損失值;若k≤K,則k←k+1;否則,計算P產生的損失值;
(6)在給定的學習率η下,由式(10)和式(11)更新網絡的權值和閾值:
(10)
(11)
(7)n←n+1;若n≤T,則返回(3);否則,則結束。
IYOLOv3的計算復雜度主要由(4)~(6)步確定。(4)~(5)步的計算量由IYOLOv3的輸入圖像大小M×M確定;(6)步的計算復雜度由灰度圖像訓練集規模K以及卷積核大小Q和數量N確定。因此,IYOLOv3的計算效率主要依賴于M,K、Q及N。
在Windows11(CPU/i5-12500H 3.10 GHz,RAM/ 16 GB)/ Python 3.7環境下展開數值實驗。為測試IYOLOv3檢測行人的有效性,選取兩階段目標檢測模型(Faster R-CNN)、單階段目標檢測模型(SDD、YOLOv2和YOLOv3)參與比較,各自的最大迭代次數均為93 750。IYOLOv3的參數設置:訓練輪數epoch取100,學習率η為0.001,批處理數據batch size是16,動量參數momentum取0.9。選取Crowdhuman數據集中人群密度大、人群遮擋較為突出的15 000幅圖像按9:1的比例隨機選取圖像,構成訓練集和測試集,圖像種類只有1個行人類別,圖像大小裁剪為416×416。
選取準確率 (Precision,P)、召回率(Recall,R)、準確率與召回率綜合評估指標F1、平均精度(AveragePrecision,AP)作為模型的評價指標。P為評估模型的全局準確程度;R表示被正確預測為正樣本的概率;F1越大,說明試驗方法越有效。P、R及F1經由下式確定,式(12)~式(14):
(12)
(13)
(14)
其中,TP為將正樣例預測為正樣例的個數,即真正例;FP表示假正例的個數;FN為將正樣本預測為負樣例的個數,即假反例。
AP是以召回率為橫坐標、準確率R為縱坐標形成的P-R曲線與坐標軸圍成的面積,其值越大,則模型的檢測效果越好。
情形1IYOLOv3的性能測試
為了獲知IYOLOv3中各模塊的性能優劣,將YOLOv3中的Darknet53、MP、損失函數LIoU逐次用SE-Darknet53、SPP及改進型損失函數LCIoU取代,由此獲得的模型依次記作YOLOv3-I、YOLOv3-II、YOLOv3-III;隨后,將YOLOv3、IYOLOv3及此3種模型均作用于CrowdHuman行人測試圖像集,功能模塊的性能測試結果見表1。

表1 功能模塊的性能測試結果
由表1可知,隨著YOLOv3的Darknet53、MP、IoU、NMS逐次被SE-Darknet53、SPP、CIoU、INMS取代,獲得的YOLOv3-I、YOLOv3-II、YOLOv3-III及IYOLOv3相比于YOLOv3在平均精度AP方面,依次提升6.31%、9.82%、11.53%及13.17%;說明隨著YOLOv3中的模塊逐漸被本文設計的模塊取代,模型得到的平均精度逐漸提升,因此SE-Darknet53、SPP、CIoU及INMS均有助于提升YOLOv3的性能,尤其是IYOLOv3的行人檢測平均精度達到70.12%。
情形2模型的性能比較
基于Crowdhuman行人數據測試集,依據以上評價指標,各模型獲得的實驗結果見表2。

表2 模型的評價指標值比較
由表2可知,IYOLOv3相較于參與比較的模型,準確率P、召回率R、綜合評估準確率與召回率指標F1及平均精度均值AP均有明顯提升。相較于YOLOv2及IYOLOv3,IYOLOv3的(AP,F1)值依次提升(17.29%, 8.23%)及(9.33%, 5.01%);相較于SSD,AP、F1值依次提升16.79%及12.05%。特別地,相比于Faster R-CNN,其AP、F1值依次提升25.49%及19.04%,表明注意力機制、空間金字塔池化以及改進型非極大值抑制模型能強有力地提升YOLOv3的行人檢測性能,使得IYOLOv3的AP達到70.12%且F1值為65.42%。另外,YOLOv3相比于其它參與比較的3種模型,其行人檢測性能有明顯提升。
情形3實際場景下檢測結果的可視化
為測試模型的泛化能力,將YOLOv3與IYOLOv3作用于測試集中3種實際場景的事例,各自的檢測效果如圖5所示。

圖5 行人檢測效果比較
圖5(a)表明,Darknet-53難以提取遠距離的小目標行人的特征,進而導致YOLOv3對于較遠處以及互相遮擋的行人出現漏檢現象,檢測效果欠佳。另外,圖5(b)表明, IYOLOv3能克服YOLOv3存在漏檢小尺度或遮擋行人目標的問題,能顯著地降低漏檢率,且對于背景遮擋、光照變化等干擾,IYOLOv3也具有較好的穩定性。因此,IYOLOv3極大地改善了行人檢測的性能。
針對YOLOv3存在行人檢測漏檢及檢測準確率低的問題,本文在其模型結構基礎上,利用注意力機制改進其主干網絡,并引入空間金字塔池化層增強模型的特征提取能力,同時引入懲罰和漸進抑制思想改進非極大值抑制模型,獲得能有效提升YOLOv3模型的行人檢測能力的改進型IYOLOv3模型。模型比較證實,IYOLOv3應用于密集場景下行人的檢測問題,能有效回避漏檢現象且檢測精度高。進一步的工作中,將展開IYOLOv3的靈敏度及檢測效率研究,以便其適應于各種復雜場景的行人檢測。