張云佐,李文博,郭 威,宋洲臣
(石家莊鐵道大學 信息科學與技術學院,河北 石家莊 050043)
行人檢測一直以來都是計算機視覺領域的研究熱點,快速、準確是行人檢測的重要目標,然而在現實應用中,多元場景交錯、行人姿態各異、檢測環境異常復雜給行人檢測帶來了極大的挑戰。
傳統方法通常結合手工特征與機器學習分類器來檢測行人,如Yadav 等人[1]采用方向梯度直方圖作為行人特征描述子,然后在特征分類器SVM 的作用下實現像素級分割,進而得到行人檢 測 區 域。 Sabzmeydani 等 人[2]提 出 了 一 種Shapelet 特征描述子用以解決靜止圖像中的行人檢測問題,利用行人圖像的局部信息和低級梯度信息構建Shapelet 特征,并通過Adaboost 算法訓練分類器得到行人檢測結果。此類方法以顏色、紋理、邊緣等特性為主,檢測結果易受檢測環境干擾,檢測精度不佳。
近年來,深度學習憑借其強大的表征能力吸引了眾多研究者的關注,行人檢測方法也隨之取得了重大進展[3]。基于尺度感知的方法常被用于檢測不同尺度的行人目標,通過使感受野與目標尺度相匹配來提高行人尤其是小尺度行人的檢出率。如Cai 等人[4]提出了從多個網絡輸出層檢測行人,即具有較小感受野的淺層網絡用于小目標,而具有較大感受野的深層網絡用于大目標。Yang 等人[5]提出了一種多尺度全卷積網絡用于檢測不同尺度的行人,并采用局部感興趣區域增加行人可視區域的置信度分數,以減少行人漏檢與誤檢的情況。基于注意力引導的方法通過增強行人特征、抑制背景特征的方法,提升網絡對行人可視區域的關注程度。如鄒等人[6]提出了一種融合通道與空間注意力機制的行人檢測方法,從通道和空間兩個維度依次增強行人的空間特征和語義特征,但該方法忽視了不同維度中特征信息的關聯性。基于特征融合的方法通過將深淺層特征或時序特征等進行融合,以獲得更多的上下文信息和語義信息。如Wu 等人[7]提出了一種自適應特征聚合網絡,將視頻行人的時序特征以及行人的局部特征進行融合,該方法對檢測被嚴重遮擋的行人具有重要作用。
基于深度學習的行人檢測模型在訓練過程中學習了大量的魯棒特征,在一定程度上弱化了姿態變化、環境干擾等因素對行人檢測結果的影響,但多數檢測模型的參數動輒數十兆字節,依然存在模型體積大、運算量高,難以在計算資源有限的可移動平臺上部署等問題。對于計算資源有限的可移動平臺,減少其部署模型的計算成本和存儲空間至關重要,尤其是在自動駕駛、實時檢測等實時性要求較高的任務中。行人檢測作為自動駕駛中行為預判、行人防撞等關鍵技術的基礎環節,通過定位和分類行人實例,實時為車載平臺提供周圍的行人信息,以便于車輛采取正確的控制與狀態處理決策。在處理過程中,車載平臺不僅僅需要實時處理與分析車載前置攝像頭的行人視頻數據,還包括其他車載傳感器所獲取的數據[8],使得原本有限的計算資源更加緊缺。此外,車載平臺上部署著大量算法,每種算法可分配的存儲空間也十分有限。
基于以上分析,考慮到多元場景的復雜性和計算資源的有限性影響,本文以YOLOX[9]為基礎框架提出一種面向多元場景的輕量級行人檢測方法。
本文算法的總體結構設計如圖1 所示。首先設計和優化行人檢測模型以增強網絡的特征提取能力,并在訓練過程中,采用遷移學習訓練策略獲得高精度的基準模型;然后利用剪枝策略裁剪基準模型中的冗余通道,生成輕量級的緊湊模型。此外,在檢測階段采用自適應Gamma 的方式對行人圖像進行矯正,以減少光照等外界因素對檢測器的影響,從而實現多元場景下高效、精確的行人檢測。

圖1 總體結構設計Fig.1 Design of overall structure
YOLOX 檢測模型在原有系列網絡的理論基礎上融入了無錨機制、標簽分配、解耦頭等性能優化策略,具有較好的性能表現。為此,本文以高性能檢測器YOLOX 為基礎框架,融合遷移學習、多尺度特征融合以及注意力引導等強化網絡的方法,構建了具有高精度的行人檢測模型,其網絡結構如圖2 所示,圖中ECA(Efficient Coordinate Attention)為注意力模塊,m為檢測層的整合通道數。該網絡由主干網絡(Backbone)、特征融合網絡(FPN)、檢測頭(Head)三部分組成。

圖2 網絡結構示意圖Fig.2 Schematic diagram of network structure
遷移學習的訓練策略可有效降低權值初始化的不確定性,避免因隨機權值所導致的特征提取能力不足問題。因此,所提模型保留了YOLOX 中的Backbone,從而確保訓練模型和預訓練模型網絡結構的一致性。將預訓練模型中Backbone 的權值作為訓練模型的初始化權值,并以此提升主干網絡的特征提取能力以及訓練模型的收斂速度。
主干特征提取網絡用于挖掘行人目標的淺層紋理特征與深層語義特征,特征融合網絡實現淺層紋理信息和深層語義信息的互補,但隨著網絡層數的不斷加深,行人的紋理信息逐漸丟失,并且網絡對小目標的敏感度也逐漸降低,使得檢測模型容易出現漏檢、誤檢的問題。為此,網絡中使用ECA 注意力引導模塊構建特征融合網絡,并增加尺寸為160×160 的輸出層,以獲得更為有效的行人特征信息,弱化背景特征信息,從而提升模型在多元場景下的前景、背景識別能力。此外,160×160 的檢測層更有利于小尺度行人的檢測,可有效避免漏檢情況的發生。
注意力模型被廣泛應用于行人檢測任務中,根據關注區域的不同,通常可分為通道域、空間域以及混合域的注意力模型,不同作用域的注意力模型所具有的引導作用也有所差異。通道注意力通常采用全局處理的方式為通道賦予權重,但忽略了空間內的信息交互。空間注意力通過對原始圖片中的空間信息進行轉換,為空間內的像素生成權重掩膜,但該過程忽略了通道間的信息交互。混合域注意力則是通道域和空間域的結合體,但往往存在體量大,結構復雜的問題。為 此,基 于Coordinate attention[10]進 行 改 進 并 提出了更適合檢測行人的ECA 注意力模型,采用跨維度全局處理的方式為整個特征圖賦予權重掩膜,從而保留了通道間、空間內的交互信息,并利用最大池化操作保留行人的邊緣特征,提升模型對行人區域的關注程度。ECA 的結構如圖3 所示,圖中AP、MP 分別為平均池化和最大池化。

圖3 ECA 結構示意圖Fig.3 Schematic diagram of ECA
ECA 注意力模型同時沿著水平、垂直兩個方向分別捕獲張量(C,W)和(C,H)之間的依賴關系,以跨維度的方式推斷注意力權重掩膜,最終與殘差邊相乘完成輸出特征的自適應修飾。在生成權重掩膜過程中,首先采用最大池化和平均池化沿兩個方向聚合特征,其中最大池化用以保留行人的邊緣信息,而平均池化則用于彌補最大池化所丟失的特征信息。然后通過共享網絡MLP 進行非線性運算,經sigmoid 回歸獲得注意力權重系數:

最終將不同維度的注意力權重系數與殘差邊相乘,獲得賦予權重的輸出特征圖,輸出結果為:

其中,Yc(i,j)為輸出特征圖。
ECA 注意力模型在關注通道間交互信息的同時,還在空間上引導模型關注行人所在區域的特征信息,以增強網絡對行人可視區域的特征學習能力,在檢測過程中促使檢測器更加關注行人的存在區域,提高行人檢測器的準確性。
剪枝作為模型壓縮的主要手段之一,在訓練過程中通過去除網絡模型中冗余的連接與參數,從而獲得可在移動端部署的緊湊型模型。依據剪枝原理的不同,模型剪枝可分為結構化剪枝和非結構化剪枝,但由于非結構化剪枝需要特定軟、硬件的支持,因此本文采用結構化剪枝策略[11]。首先選擇性能最優的行人檢測模型作為基礎模型,然后對網絡模型進行稀疏化訓練,選擇網絡中的非重要通道進行剪枝,最后利用微調回升精度[12]。
批歸一化層(Batch Normalization,BN)具有抑制內部協變量偏移的作用,進而降低網絡模型對參數初始值的敏感程度,得以有效提升模型的收斂速度。BN 層可以表示為:

其中:zin和zout分別為BN 層的輸入與輸出數據;B為當前小批次;μB和σB分別為B批次所輸入數據的均值和標準差;γ和β分別為訓練過程中可學習的縮放參數與平移參數;ε為一個小量,其作用是防止出現分母為0 的情況。由上式可知,每個通道的激活值zout和具有通道級縮放作用的可學習參數γ呈正相關,即參數γ的大小直接影響該通道信息的重要性,故將參數γ作為衡量通道重要性的量化指標,也稱縮放因子。通常情況下,BN 層所輸出的激活值呈正態分布且多數不趨近于0,為此引入L1 正則約束,縮小通道重要性量化指標γ的值,以便于進行稀疏化訓練,稀疏化訓練的損失函數為:

其 中:Lbaseline為基礎模型的損失函數為L1 正則約束項,其中g(γ)=|γ|;λ為懲罰因子,用于平衡損失項。稀疏化訓練需根據BN 層權重分布情況和平均精度調整懲罰因子并選擇合適的學習率,獲得精度略微損失的高稀疏模型。在稀疏化訓練后將對模型進行剪枝,剪枝過程如圖4 所示。

圖4 剪枝流程圖Fig.4 Flow chart of pruning
BN 層中的縮放因子會整體趨近于0,其中γ越接近0 的通道越不重要,基于此對所有通道的縮放因子進行排序,并設置合適的剪枝比例。剪枝比例對模型的體積和精度有著直接影響,剪枝比例越大,裁剪的通道數越多,則模型的體積越小,但模型的精度也會隨之降低,為此在模型剪枝后通過微調回升精度。
在實際應用中,光照不均、陰影干擾等環境因素會隱藏圖像信息進而導致行人檢測精度降低[13],為減少環境因素對行人檢測器檢測效果的影響,采用自適應Gamma 矯正的方法對輸入圖像進行處理。Gamma 矯正包括以下幾個步驟:
Step 1:歸一化處理,將灰度圖像的像素值轉換為0~1 之間的實數;
Step 2:預補償,通過指數運算對像素值進行預補償;
Step 3:反歸一化,將預補償后的像素值還原至0~255 的實數。
該過程可用公式表示為:

其中:A(x,y)為輸入圖像,B(x,y)為輸出圖像,γ為Gamma 值。
為了使檢測器在不同的環境下都能夠擁有不錯的矯正效果,在Gamma 值的設置上舍棄了人工設置定值的方法,而是采用自動設置Gamma[14]的方式進行:

其 中:γ為Gamma 值,X為 像 素 歸 一 化 后 的 平 均值。γ值的設置由輸入圖片的像素值確定,從而實現了自適應矯正輸入圖像,矯正效果如圖5 所示。通過觀察可以發現,自適應Gamma 矯正可有效調節圖像的對比度,減少了圖像中光照不均、局部陰影的問題。此外,為更直觀地體現矯正效果,采用灰度級范圍進一步衡量。灰度級范圍是圖像對比度的衡量指標,灰度級范圍越大代表圖像的對比度越高,給人的視覺效果也會更清晰。灰度直方圖中可直觀體現圖像的灰度級范圍,圖5 中各場景矯正前后圖像的灰度直方圖如圖6 所示。

圖5 自適應Gamma 矯正效果Fig.5 Adaptive Gamma correction effect

圖6 矯正前后圖像的灰度直方圖Fig.6 Gray histograms of images before and after correction
通過對比矯正前后的灰度直方圖可以發現,左側場景矯正前的灰度級主要集中在5~80 之間,而矯正后主要集中在20~130 之間,且各灰度級的像素數量分布比較均勻;右側場景矯正前的灰度級主要集中在5~55 之間,而矯正后主要集中在15~110 之間,并且低灰度級的像素數量明顯減少。比較矯正前后圖像的灰度級范圍可以發現,經過矯正后的圖像具有更大的灰度級范圍,且不同灰度級的像素分布比較均勻,從而增大了原有圖像像素間的差異性,降低了模型對圖像中昏暗區域的學習難度,使所提模型在多元場景下具有更強的抗干擾性。
實驗條件:處理器為Intel(R)Xeon(R)Gold 6226R CPU@2.90 GHz,內 存188 G,顯 卡 為Tesla V100S-PCIE-32 GB,操作系統為Centos7。
評價指標:實驗采用平均精度(Average Precision)作為檢測器精度的評價指標,用以衡量行人檢測器在復雜場景下對行人實例的檢測效果;采用每秒處理圖像的幀數(FPS)來衡量檢測器的檢測速度,依此判斷檢測器的計算復雜度;參數量(Parameters)和模型體積(Size)是判斷模型是否輕量的直觀評價指標,用來衡量檢測模型的大小。
實驗數據:本實驗的訓練集和測試集選自于自動駕駛數據集KITTI 中的2D object detection left color image of object data。將數據集的Pedestrian、Person_sitting、Cyclist 類融合為1 個Person 類。
本文分別以YOLOX-L 和YOLOX-S 為基礎框架構建本文方法,即本文方法L 和本文方法S,并基于所提方法開展實驗。實驗分為三個階段進行,依次為基準模型訓練階段、剪枝模型訓練階段以及微調模型訓練階段,實驗流程如圖7所示。

圖7 實驗流程Fig.7 Flow chart of experiment
所提算法在基礎模型訓練階段使用了遷移學習,將YOLOX 基于COCO 數據集的訓練參數作為初始化權值,用以引導模型確定訓練方向,從而加速收斂速度。實驗分別以本文方法L 和本文方法S 的基準模型展開訓練,訓練過程分為凍結訓練和解凍訓練兩部分。在凍結訓練過程中,對基礎模型主干部分的網絡層進行凍結,即本文方法L 模型的前234 層以及本文方法S 模型的前125 層,凍結網絡層的初始化權值為預訓練模型對應網絡層的參數。在解凍訓練過程中,解除了對模型參數的限制,使網絡朝著更適合本文應用場景的方向學習。凍結訓練中迭代次數設置為100,學習率設為0.001;解凍訓練中迭代次數設置為200,學習率設為0.000 1,批量大小為16。
在稀疏化訓練中,將基準模型的權重參數作為初始化權值,懲罰因子設為0.001,學習率設為0.000 1,批量大小為16,迭代次數為100,根據縮放因子的分布情況,為避免嚴重損失精度,采用65%的剪枝率。
剪枝完成后通過對模型進行微調使精度回升,該過程采用warm-up 的學習率優化方法,訓練初期使用較小的學習率避免造成過擬合現象,隨著迭代次數增加逐步減小學習率以加快模型的收斂速度,最后當模型的訓練趨于穩定時,使用較小的學習率訓練,以免破壞模型的穩定性。
為了驗證本文改進算法的有效性,將本文所提算法模型以及與其相關的中間模型分別與YOLOX-L 和YOLOX-S 進行對比,實驗結果分別如表1 和表2 所示。

表1 YOLOX-L 及其改進算法性能比較Tab.1 Performance comparison of the YOLOX-L and its improved algorithms
從表1 中數據可知,基準模型的檢測精度最佳為72.08%,但相比于YOLOX-L,模型的參數量增加了13.2%,體積增加了11.6%,檢測速度下降了4.4%,可見基準模型檢測精度的提升是以犧牲檢測速度為代價的。基準模型經過剪枝處理后,模型的體量得到了大幅度縮減,但同樣伴隨著精度損失的問題,檢測精度下降了3.55%。通過微調使檢測精度有所回升,檢測精度達到71.56%。相比于基準模型,微調模型的體積減少了79.7%,檢測速度提升了29.2%,雖然檢測精度略微下降,但并不影響檢測效果。
從表2 中數據可知,基于YOLOX-S 所訓練得到的微調模型在模型參數量、模型體積以及檢測速度上都有著不錯的表現,模型體積大約為10 MB,檢測速度高達93 幀每秒。

表2 YOLOX-S 及其改進算法性能比較Tab.2 Performance comparison of the YOLOX-S and its improved algorithms
為驗證所提算法的性能表現,將所提算法與目前主流的行人檢測算法以及輕量級算法在KITTI 數據集上進行比較,實驗結果如表3所示。
從表3 中的結果可知,相較于其他行人檢測算法,本文方法在模型體量和檢測速度方面具有明顯優勢,滿足行人檢測對準確性以及實時性的要求。

表3 不同算法的性能比較Tab.3 Performance comparison of different algorithm
相比于雙階段檢測算法Faster-RCNN,單階段的YOLO 系列的檢測算法具有更好的表現,作為目前YOLO 系列表現最佳的YOLOX 取得了69.47%的檢測精度,但模型體積高達207 MB,本文方法L 在檢測精度以及模型體積上都有明顯優勢;相比于基于Mobilenet、Ghostnet 改進的輕量化方法以及YOLOX 輕量化效果最好的版本YOLOX-tiny,本文方法S 平均精度高達68.13%,模型體積約為10 MB,檢測速度達到每秒93 幀,在各方面都有著最優的表現;相比于目前主流的行人檢測方法,本文方法L 的平均精度與最優方案相當,即PAMS-FCN 方法的71.44%,但在檢測速度上具有明顯優勢,大約是該方法的3 倍。此外,雖然本文方法S 的檢測精度只有68.13%,但基本可以實現多元場景下行人的準確檢測,且參數量較低便于移動端部署,更適合實際應用。
為直觀的體現所提算法的有效性以及自適應Gamma 矯正的作用效果,在對比實驗中抽取輕量級算法YOLOX-tiny 與本文方法S 對矯正前后的圖像進行檢測,并進行可視化結果比較,實驗結果如圖8 所示。圖中包含三種常見的多元場景,即行人尺度差異大、光照不均勻、人群密集等場景,其中每個場景左、右兩側分別為YOLO-tiny 與本文方法S 的檢測結果,在每一側包含對矯正前后圖像的檢測結果。通過比較不同場景下的檢出行人,可以發現本文方法S 對遠處的小目標、遮擋目標以及陰影下的目標都有著較強的檢出能力。此外,通過觀察矯正前后的檢測結果可以發現,自適應Gamma 矯正在光照均勻的場景下對檢測器的性能提升并不明顯,但在昏暗的場景下卻有著重要作用,由圖8(b)可以發現經矯正后的圖像有著更好的檢測效果。可見自適應Gamma 矯正提升了算法對不同場景的適應性,使本文方法更適用于多元場景的行人檢測。

圖8 KITTI 數據集上的檢測結果對比Fig.8 Results comparison on KITTI dataset
本文提出了一種面向多元場景的輕量級行人檢測方法,該方法使用提出的跨維特征引導注意力模塊構建多層特征融合網絡,并利用遷移學習的訓練方法使得網絡模型具備較高的檢測精度。獲得高精度模型后,經剪枝優化將模型體積壓縮至10 MB,檢測速度提升至93 Frame/s,并在檢測階段采用自適應Gamma 矯正圖像以減小光照等因素對檢測器性能的影響,在KITTI 數據集上取得了68.13%的檢測精度,所提方法具有精度高、體積小、抗干擾性強的優點,更符合實際應用的需求。