葉正喆,蒼巖
哈爾濱工程大學 信息與通信工程學院,黑龍江 哈爾濱 150001
在計算機視覺與目標檢測領域中,行人檢測始終都是近些年來的研究熱點之一。行人檢測主要是利用圖像處理和機器學習的方法來對圖像中的行人進行定位[1-2],準確地預測出每個行人的大致位置。一個較為準確的行人檢測模型也是后續(xù)如追蹤、重識別、檢索等圖像智能分析的先驗條件之一[3-4]。隨著目標檢測技術的高速發(fā)展,目前常用的行人檢測算法在對簡單場景下的行人已經能取得較好的檢測效果,但在現實生活如街道、商場這類大量人群聚集的場景下,行人檢測的性能仍然有著較大的提升空間[5]。
相比于簡單場景下的行人檢測,復雜場景下的行人檢測有著行人遮擋、行人尺度不一等難點和挑戰(zhàn)。其中遮擋問題也一直都是行人檢測領域中的難點與重點[6],而遮擋又可分為行人間的類內遮擋和非目標物體對行人的遮擋。行人間的類內遮擋即多個行人互相遮擋,非目標行人會對目標行人產生遮擋,同時目標行人間的檢測框會相互抑制,導致目標行人的后處理閾值敏感[7];非目標物體對行人的遮擋則是車輛、路障等非檢測目標會對行人產生遮擋現象,使得人體部分特征損失從而產生漏檢現象[8]。而行人尺度不一的問題則是人體的外觀差異較大,且同一個場景下的行人可能會呈現出站立、行走、騎車等不同的姿態(tài)[9],同時一張圖像中,近視角與遠視角行人的大小差異也較大,這些都給行人檢測帶來了巨大挑戰(zhàn)。針對行人遮擋問題,Zhang 等[10]提出OR-CNN算法,通過對Faster R-CNN 算法損失函數的改進以及對目標候選框的二次分類操作,提高了遮擋行人的檢測效果;Pang 等[11]則提出mask-guided attention network(MGAN)算法,從引導注意力機制的角度提高了遮擋行人的檢測效果。針對行人小尺度的問題,Liu 等[12]提出ALFNet 算法,用多段漸進的定位思想改善了多尺度行人的檢測效果;同時Liu 等[13]又提出無錨點檢測網絡center and scale prediction(CSP),將行人檢測問題轉換成了高級語義特征檢測,其主要思想是先對輸入圖像進行中心點熱力圖預測和目標尺寸預測,然后提取兩者的坐標信息并將其映射為目標檢測框,在一定程度上提高了小尺度行人的檢測效果。
CSP 網絡與CornerNet[14]、CenterNet[15]等網絡同屬于近年來熱門的無錨點目標檢測算法,利用特征圖信息來進行相應的分類以及位置回歸。相比于傳統(tǒng)的基于錨點框架的行人檢測算法,CSP 算法對不同的數據集都具有較強的魯棒性[13],對小尺度的行人目標也較少產生漏檢現象,但同時該算法對遮擋下的行人沒有針對性的設計。因此,本文通過在CSP 網絡的特征提取模塊與檢測頭模塊中加入CBAM[16],用以強調目標區(qū)域的特征圖,并在檢測頭模塊后添加基于分數融合機制的分類器模塊,提出AS-CSP 行人檢測網絡,進一步解決小尺度行人和遮擋行人的檢測問題。本文首先介紹AS-CSP 網絡的總體結構,而后詳細介紹CBAM 模塊以及分類器模塊,最后通過實驗對AS-CSP 算法的各個模塊進行定量和定性分析。
本文加深了CSP 行人檢測網絡的特征提取骨干網絡,同時引入卷積塊注意力模塊CBAM 來增強小尺度行人中心點的特征表達;針對行人類內遮擋的問題添加了基于分數融合機制的分類器模塊,最終得到一種能提高通用行人、小尺度行人以及遮擋行人檢測效果的行人檢測算法AS-CSP。
本文提出的行人檢測算法AS-CSP 整體結構如圖1 所示。輸入的待檢測圖像X進入特征提取模塊,由基于ResNet-101 的特征提取網絡進行L2 歸一化和反卷積后,融合出相應尺寸的特征圖F1,從而將不同分辨率的特征映射連接成一個,F1經過CBAM 被重新定義,定義后的新特征圖將增加其中小尺度行人的特征表達,新特征圖進入檢測頭模塊,由預測的中心熱力圖和尺寸圖得到初步的檢測結果后,經過基于分數融合公式的分類器模塊得到最終的行人檢測結果。
圖1 本文提出的行人檢測整體流程
為了進一步解決小尺度行人漏檢、錯檢的問題,本文從特征圖入手,希望能夠得到更多的高層語義信息來進行后續(xù)模塊的設計。本文的改進思路是將CSP 采用的主干網絡由ResNet-50 加深為ResNet-101。特征骨干網絡的加深使得更改后的網絡結構可以提取到更多的高級語義特征,從而增加對細節(jié)的關注。同時,圖像中遠視角下的行人尺度較小,而卷積塊注意力模塊CBAM 是一種強調目標區(qū)域并且能降低背景部分值的特征圖重建機制,通過增強行人尤其是遠視角小尺度行人中心點特征的表達,使得改進后的行人檢測網絡更關注行人的中心點特征并抑制其他不重要特征。因此,本文將該模塊加入到CSP 的主干網絡的特征提取模塊和檢測頭模塊之間,為特征提取模塊輸出的特征圖創(chuàng)建一個特征映射,該特征映射可以賦予中心點更高的權重。本算法中卷積塊注意力模塊的嵌入位置為ResNet-101 第一層卷積和最后一層卷積的殘差模塊中,因為這樣可以不用改變ResNet-101 中間的網絡結構,在之后的訓練中也可以繼續(xù)使用原有的預訓練參數。添加后的新殘差模塊如圖2 所示,其中藍色部分為CBAM的內部結構以及添加位置。
圖2 添加CBAM 后的ResNet 殘差模塊
CBAM 可分為通道注意力模塊和空間注意力模塊,其中通道注意力模塊主要對輸入特征圖中的種類進行關注,空間注意力模塊則更偏向于關注輸入特征圖的位置信息,CBAM 將從這2 個模塊分別計算注意力特征圖,2 個模塊的計算公式如式(1)和式(2)所示。
行人檢測領域中的另一大難點就是遮擋行人的漏檢現象。遮擋就是背景或其他行人會對待檢測行人的某些部位進行掩蓋,使得檢測器無法將其判定為常規(guī)意義的行人,從而產生漏檢、誤檢現象。這一問題的實質是行人檢測時,檢測框對于行人的置信度不夠高以及對背景的置信度不夠低,引起的檢測頭模塊對行人和背景的區(qū)分度不夠高。因此本文在上一節(jié)得到網絡模型中添加基于分數融合機制(score fusion, SF)的分類器模塊,將原網絡初步分類回歸產生的較為精確的行人檢測框作為候選框進行二次分類,并利用分數融合公式對檢測分數進行更新,得到AS-CSP 算法網絡,從而可以在一定程度上解決目前存在的遮擋行人漏檢問題以及行人置信度不精確問題。
分類器模塊的主要網絡結構如圖3 所示,其中A-CSP 為添加了卷積塊注意力機制的CSP 算法。該模塊借鑒了Faster R-CNN 網絡的分類層[17],在該模塊中,將AS-CSP 網絡中經由特征提取模塊和卷積注意力機制模塊重新定義的特征圖作為輸入,經過一個3×3×256 的卷積層形成新的特征圖,接著再將由AS-CSP 網絡生成的行人檢測框與新的特征圖一起作為輸入,連接一個1 通道的1×1 卷積網絡進行二次分類,而后再通過分數融合公式對行人置信度進行更改,最后保留一定閾值以上的行人檢測框,即可得到最終的檢測結果。其中對行人檢測的二次分類可視作為一個簡單的二分類問題,并且將上一步中含行人檢測框的標簽設為1,不含行人檢測框的標簽則設為0,之后可以忽略掉不含行人的檢測框并得到含行人檢測框的新的行人置信度分數。而分數融合機制的流程如圖4 所示。
圖3 分類器模塊結構圖
圖4 分數融合機制的流程
分數融合機制則是對行人的置信度分數進行更新,即利用AS-CSP 網絡中檢測頭模塊和分類器模塊得到的分數來達到提高行人置信度分數、降低背景置信度分數的目的。SF 的具體規(guī)則為:當分類器模塊以高于某一閾值的值將目標判定為行人時,適當提高其檢測分數;反之當分類器模塊以低于某一閾值的值將目標判定為背景時,則相應地降低其檢測分數;其他情況下,置信度分數則為兩者的均值。分數融合計算公式為
本文采用的數據集是CityPersons 數據集,該數據集是目前流行的行人檢測數據集,是城市街景數據集CityScapes 的一個子集,它有行人框、可見行人框和語義分割圖三種標注標簽,且部分圖片中有很多相互遮擋的行人,相比其他數據集更加具有多樣性。此外,CityPersons 數據集的Reasonable 測試子集可用于評估算法對通用行人檢測性能,人體可見比例在0.65 以上;而Heavy-Occlusion 測試子集則主要用于評估算法對遮擋行人的檢測效果,人體可見比例在0.2~0.65;同時還有特別標注的Small 測試子集可用于評估算法對小尺度行人的檢測性能。
2.2.1 實驗環(huán)境和設置
本文的整體環(huán)境配置參數如下:操作系統(tǒng),Ubuntu 18.04;顯卡,NVIDIA GTX 2080;內存,16 GB;CPU,I7-8700K;框架,PyTorch。其中實驗在基于深度學習框架PyTorch 中實現,PyTorch 也是深度學習模型常用的研發(fā)框架。同時模型訓練時的輸入圖片分辨率大小為640 ×1 280,并選用Adam 算法作為模型的優(yōu)化算法。在測試中,只將最終置信度大于0.5 的檢測框識別為有效行人目標。
2.2.2 行人檢測評價指標
式中:NTP、NFN分別表示實際類別和預測類別都為正類的樣本數、實際類別為正類預測類別為負類的樣本數。
式中k=1,2,…,8。
2.2.3 小尺度行人對比實驗
為了評估本文提出的算法在小尺度行人檢測上的性能,同時為了證明卷積注意力機制模塊設置的合理性,本文設置了小尺度行人的對比實驗。該實驗選用的數據集是CityPersons 數據集的驗證子集,同時在CityPersons-Reasonable 上驗證通用行人的檢測性能,在CityPersons-Small 上驗證小尺度行人的檢測性能,并使用對數平均漏檢率以及 MR-FPPI曲線作為算法的評價指標。
同時為了充分檢驗算法的性能,本次實驗選用了在小尺度行人上有優(yōu)異檢測效果的ALFNet[12]和CSP[13]算法作為對照算法,其中ALFNet、CSP 算法選用其原文文獻中的檢測結果,而本文提出的AS-CSP 算法則使用CityPersons 數據集的train 子集作為訓練集重新進行行人檢測的模型訓練。該算法在訓練中使用一個2080 顯卡來訓練模型,且模型的主干是在ImageNet 上預訓練的ResNet-101,并使用了Adma 來優(yōu)化模型。其中輸入圖像的批數為8 張,學習率為 2×10-4,訓練的輪次數設定為150 次,每輪迭代2 000 次。訓練的損失函數(Loss)曲線如圖5 所示。
圖5 AS-CSP 算法訓練時的Loss 曲線
而小尺度行人對比實驗的實驗結果如表1 所示。由表1 可以看出,本文提出的A-CSP 算法在通用行人場景和小尺度行人場景下的檢測性能都略優(yōu)于CSP 算法以及其他常用行人檢測算法,因為卷積塊注意力模塊會在特征提取時使檢測器更加注重小尺度行人的特征,從而證明了該算法在小尺度行人檢測中的優(yōu)越性,也證明了卷積塊注意力模塊設置的合理性。圖6 為待檢測圖像在經過AS-CSP 算法中CBAM 前后的特征圖。通過對比這2 張圖,我們可以看到圖6(a)還有一些背景的輪廓信息,圖6(b)則降低了部分背景的特征值而增加了行人中心特征點的表達。
表1 小尺度行人對比實驗 %
圖6 特征圖
同時,圖7 和圖8 分別為CSP 算法與ASCSP 算法對同一圖片的小尺度行人的可視化檢測結果。由可視化檢測結果可知,本文提出的ASCSP 算法在小尺度行人的檢測性能上優(yōu)于原CSP 算法,部分遠視角的小尺度行人能被ASCSP 算法檢測出來,這得益于卷積塊注意力機制模塊對小尺度行人特征表達的提升。
圖7 CSP 算法對小尺度行人的檢測效果
圖8 AS-CSP 算法對小尺度行人的檢測效果
2.2.4 遮擋行人對比實驗
為進一步探究AS-CSP 算法在遮擋行人場景下的檢測性能,同時為了證明分類器模塊設置的合理性,本文設置了遮擋行人的對比實驗。本次實驗同樣選用CityPersons 數據集的驗證子集作為測試集,但與小尺度行人對比實驗不同的是,本次實驗在CityPersons-Reasonable 上評估通用行人的檢測性能,在CityPersons-Heavy-Occlusion 上評估遮擋行人的檢測性能,且同樣使用對數平均漏檢率以及MR-FPPI 曲線作為算法的評價指標。不同于小尺度行人的對照組,本次實驗選用了在遮擋行人上有優(yōu)異表現的OR-CNN[10]、MGAN[11]等算法作為AS-CSP 算法在遮擋行人上的對照算法,用以評估AS-CSP 算法在遮擋行人上的檢測性能,其中AS-CSP 算法的模型設置與2.2.3 節(jié)中設置一致,其他算法的檢測結果則同樣選用其原文文獻中的結果。此外,在AS-CSP 算法的分類器模塊中,行人閾值TH、 背景閾值TG分別設為0.5 分、0.1 分。遮擋行人的對比實驗結果如表2 所示。
表2 遮擋行人對比實驗 %
由表2 可以看出本:文提出的AS-CSP 算法在通用行人場景和遮擋行人場景下的檢測性能都略優(yōu)于原CSP 算法;同時也優(yōu)于其他遮擋行人檢測算法,證明了分類器模塊設置的合理性以及ASCSP 算法在遮擋行人場景下的有效性。
而圖9 為在普通行人和遮擋行人的情況下,AS-CSP 算法的各個模塊進行檢測時的置信度分數效果圖。
圖9 各模塊置信度分數效果
由圖9 可以看出AS-CSP 算法中分數融合公式的有效性,該公式可以提高行人尤其是遮擋行人的置信度分數,且最終的置信度分數又由2 個分類器進行綜合判定,從而可以進一步提高檢測器的行人檢測性能。
2.2.5 AS-CSP 算法性能分析
AS-CSP 算法的網絡層數相比CSP 算法有所增加,因此本文使用CityPersons 的測試集進行2 種算法的檢測速度對比實驗。該測試集有500 張圖片。實驗結果表明CSP 算法在對測試集進行檢測時共需156 s,而本文提出的AS-CSP 需要173 s,檢測時間略微增加,但平均一張圖片的檢測時間為0.35 s,仍然符合行人檢測實時性的要求。而圖10 和圖11 分別為CSP 算法、AS-CSP 算法對該測試集部分圖像的可視化檢測結果。
圖10 CSP 算法可視化檢測結果
由上述可視化檢測結果可以看出,CSP 算法對遠距離小尺度行人的檢測效果不好,同時在對重疊的行人檢測時通常只能檢測出一名行人;而改進后的AS-CSP 則能通過注意力機制模塊解決遠距離小尺度行人的漏檢問題,且可以通過分類器模塊對重疊行人進行分離而檢測出多個行人,在遮擋行人和小尺度行人的檢測效果上都優(yōu)于CSP 算法。但本算法也存在著一定缺點,比如檢測時行人的寬高比被固定設為0.41,這就導致了有些檢測框無法將行人全身包括進去,如圖11(c)最右邊的行人所示。而能隨行人特征而變化的行人寬高比也是未來值得研究的一個方向。
本文針對行人的具體特征,對CSP 網絡結構進行了修改,加深了其特征提取骨干網絡,并引入了卷積塊注意力模塊和分類器模塊,從注意力機制和分數融合的角度提高了CSP 網絡對小尺度行人以及遮擋行人的檢測效果,最終得到的ASCSP 算法對通用場景、小尺度場景以及遮擋場景下的行人都能進行有效的檢測,有利于實際的應用。但同時該算法在行人寬高比的設定上仍有著研究和改動的空間,這也是未來所要探索的一個方向。