謝斌紅,袁 帥,龔大立
1.太原科技大學 計算機科學與技術學院,太原 030024
2.精英數智科技股份有限公司,太原 030000
煤礦作為一個高危行業,其生產安全問題一直以來都備受各級政府高度重視。隨著數字化技術的發展和智慧礦山政策的不斷推進,深度學習技術在煤礦安全防護中具有巨大的發展潛力。將計算機視覺與傳統煤礦行業結合,在提升工作效率、改善生產環境、保障生產安全方面具有重要的研究價值和社會意義。
行人檢測作為目標檢測的一個子任務,其旨在利用計算機視覺技術識別視頻圖像中人員的精確位置。目前煤礦井下行人目標檢測主要存在遮擋嚴重和監控視頻質量低等問題。遮擋一直都是行人檢測的難點,行人目標檢測中的遮擋主要分為兩種類型:一類是被檢測行人之間的相互遮擋,另一類是待檢測的行人被干擾物體遮擋[1]。前一類行人之間的遮擋和粘連,往往會引入大量的干擾信息,導致更多的虛檢;而后一類行人被干擾物體的遮擋,會造成目標信息的缺失,進而導致漏檢。由于煤礦生產環境的特殊性,井下人員密集程度較低,遮擋問題普遍存在于待檢測行人被大型設備的遮擋,例如皮帶、鉆機和變電器等。被遮擋行人在檢測時缺少完整的特征,對檢測的精確度產生了較大的影響。
對于遮擋下的行人檢測,現階段主要有基于傳統目標檢測技術和基于深度學習的兩種解決方法。
傳統的人員目標檢測方法包含HOG+SVM法[2]、Harr特征法[3]、LBP特征法[4]和積分通道特征等,針對行人遮擋情況的處理方式,傳統檢測方法分為兩類思路:一是基于部件處理的遮擋行人檢測,對檢測目標進行分部處理,利用未被遮擋的部分來預測行人的實際位置。Wu和Nevatia[5]設計了Edgelet特征,建立了行人圖像與構建特征之間的關系,運用此特征在腿部或者其他局部被遮擋的情況下也能夠檢測到行人。二是基于特殊遮擋分類器的行人檢測,針對常見的遮擋物訓練特定的分類器,以此緩解遮擋的影響。Mathias和Benenson根據該思想提出了Franken-classifiers[6]方法,將分類器針對每種不同的遮擋物和不同的遮擋等級進行區分,該方法可有效處理形變和遮擋;Felzenszwalb等則改進HOG特征提出了DPM[7],該模型融合了密集特征圖的線性濾波器來增加對目標形變的魯棒性。
兩類傳統方法的遮擋行人檢測都能夠在一定程度上減輕遮擋對算法帶來的干擾,但前一類方法雖思想簡單,易于實現,但較難充分利用未遮擋部分的部件,且對不同區塊之間的權重占比難以把握,如何正確消除遮擋區域帶來的影響仍是難題;后一類方法實現過于復雜,訓練各類分類器費時費力,同時模型泛化能力較差,隨著場景變換其魯棒性也會有較強的波動。
借鑒傳統算法對于遮擋處理的思想,深度學習算法對遮擋問題的處理也分為兩種思路:一是將部件模型與深度學習網絡結構相結合,綜合部分檢測器分數處理遮擋。Ouyang等[8]運用此思想,將行人檢測、形變處理、遮擋處理和分類多種能力聯合在一起,提出了一種新的卷積神經網絡架構。但當有遮擋和大變形時,部分探測器難以整合分部模型的各類分數。為了解決部分探測器不完善的問題,他們又提出了基于改進受限玻爾茲曼機網絡(RBM)的概率模型[9],通過將部件可見性建模成隱變量,使其模型能在可見性得分不準的情況下得到較為準確的整體檢測;Tian等[10]則在分部檢測器的啟發之下提出了基于R-CNN的DeepParts,由不同的分布檢測器組成深度部分檢測器,增強其檢測的魯棒性;Zhang等[11]則提出使用部件檢測器結合注意力機制[12],在R-CNN的模型算法中增加了一個額外的注意力機制來處理不同的遮擋類型,引導探測器更加關注未被遮擋的身體部分。Zhou等[13]在部件檢測器上采用了多標簽的學習方法,改善部件檢測器之間的相關性以此來改進檢測器的性能。
另一類基于深度學習處理遮擋問題的思路則是基于優化函數的方式,結合神經網絡結構的特點,通過優化損失函數來減少遮擋帶來的干擾。Wang等[14]在Faster R-CNN的基礎上對損失函數進行優化,提出Repulsion Loss,使預測框對于真實目標框的距離更小,并增加周圍非目標框的距離,從而減少遮擋對行人檢測的影響。
綜上所述,盡管基于CNN的行人檢測算法在不同程度上取得較好效果,但這類算法仍存在以下局限性:(1)大多數的算法只采用了卷積神經網絡的最后一層特征,未能有效利用卷積網絡中不同層的圖像特征[15];(2)部件模型與深度神經網絡相結合的方法,其算法的提取特征工程過于復雜,且不同場景下的泛化能力較差,難以滿足實際應用場景需求;(3)基于優化損失函數方式更多適用于行人與行人之間相互遮擋的情況,對于非目標遮擋物遮擋行人的檢測場景,其提升效果不明顯。
針對當前算法存在的不足,本文將YOLOv4目標檢測算法引入到煤礦井下行人檢測復雜場景中,并借鑒殘差密集網絡提取特征過程的連續記憶(continuous memory,CM)機制[16],通過加入殘差密集塊來減少在特征提取過程中由于網絡深度增加而導致的特征信息丟失問題,利用卷積網絡中的多層特征,將更多的全局信息與局部信息融合,以此來解決因目標遮擋而導致被檢測人員特征不足的問題。
當行人被遮擋時,從全局圖像中提取的特征都無法充分表征目標,因此不論是傳統方法還是深度學習方法的遮擋行人檢測,其主要思想都試圖從未被遮擋的局部圖像中提取到更多特征信息來預測行人位置。傳統的深度學習模型網絡結構相對單一,每一層的特征輸入都來自于上一層的輸出,且會隨著網絡深度的增加導致局部信息出現丟失,進而影響對遮擋行人的預測。本文在YOLOv4算法的基礎上加以改進,針對局部信息在逐層提取過程中出現丟失的問題,在CSPDarknet-53特征提取網絡中引入了殘差密集塊(residual dense block,RDB),實現特征的跨層傳遞。整體網絡結構如圖1所示。殘差密集塊內的每一層都能夠接收到前層特征的直接傳遞,同時殘差密集塊之間也形成了特征傳遞的連續記憶機制(CM),這種機制使相鄰RDB之間的各層能夠跨模塊直接傳遞不同層級之間的特征,從信息流通角度來看,這種連續記憶機制通過將特征不斷地跨層融合,連續的連接保證了低級和高級特征信息存儲和記憶,使特征提取過程中易丟失的信息得以保留。融合全部的密集信息特征后,有效的局部特征能夠更加準確地預測被遮擋行人的信息。

圖1 RDB-YOLOv4網絡結構圖Fig.1 Structure diagram of RDB-YOLOv4 network
YOLOv4模型由Bochkovskiy等[17]提出,其網絡結構如圖2所示,該模型在保持原有YOLO目標檢測結構的基礎上使用了多種優化策略,在特征提取網絡中采用CSPDarknet-53結構,將基礎層的特征提取過程分割為兩部分,分割形成的梯度流豐富了其梯度組合,減小特征提取過程中的計算量。特征融合階段使用SPP模塊和PAN的方式進一步提高特征融合的能力,損失函數則采用CIOU_Loss進一步將預測框與目標框之間的長寬比、重疊面積和中心距離等因素考慮在內。

圖2 YOLOv4算法結構Fig.2 Structure of YOLOv4 algorithm
更深層的卷積神經網絡,具有更強的特征表達和逐層學習的能力,但深層網絡帶來的梯度不穩定和計算量驟增的問題嚴重影響其網絡性能。對此CSPDarknet-53在Darknet-53的基礎上融合了CSPNet跨階段局部網絡的特點,通過跨階段的分層結構將梯度流進行分割,從而達到豐富梯度流,減小計算量的目的。CSPDarknet-53由5個CSP模塊共同構成主干結構。單個CSP模塊(交叉階段部分連接)結構如圖3所示。CSP模塊將基礎層的特征映射劃分成了兩部分,通過分開梯度流,使梯度流在不同的網絡路徑中進行傳播,再通過跨階段層次結構將這兩部分拼接。經過上述變換后,傳播的梯度信息產生較大的相關差異,在減少計算量的同時能保持準確性。

圖3 CSP模塊結構圖Fig.3 Structure diagram of CSP module
Zhang等[16]針對圖像超分辨率問題,提出殘差密集網絡(residual dense net)來利用原始圖像的分層特征為重構提供更多線索。本文借鑒了殘差密集網絡中提取多層特征的方式,采用多個殘差密集塊(RDB)來改進原特征提取網絡,使圖像的有效特征能夠在特征提取過程中直接傳遞至深層并融合,改善了層與層之間的信息交流方式,減少了特征提取過程中的信息丟失問題。
殘差密集塊結構示意圖如圖4所示。每個殘差密集塊內包含密集連接和局部的殘差連接,使得塊內的每一個卷積層都可以直接訪問所有的后續層,有效信息直接傳遞,同時不同于密集網絡(DenseNet)中將每一個密集塊的輸出直接拼接,在RDB中利用1×1的卷積層自適應地融合不同層的特征,形成局部特征融合(LFF)。第a個殘差密集塊的表達式為:

圖4 殘差密集塊結構圖Fig.4 Structure diagram of residual dense block

其中,Fa0為殘差密集塊的初始輸入,Fa1,Fa2,…,Fan為該殘差塊內不同層的特征,σ為ReLU激活函數,W則表示卷積層的權重,Fan,LF表示為1×1卷積處理后融合的局部特征。公式(1)表達了不同層特征密集連接的過程。公式(2)則將局部特征融合后與淺層特征進行殘差連接,得到該殘差密集塊的最終特征。殘差密集塊與塊之間的特征也遵循這樣連接方式,上一個RDB的輸出可以直接訪問下一個RDB的各層,傳遞需要保留的信息,形成狀態的連續傳遞。最終將多個殘差密集塊輸出的結果用1×1的卷積層自適應融合,利用3×3的卷積層做進一步的特征提取,得到該尺度下的特征信息。
整個RDB-YOLOv4特征提取網絡模型共分為5組CSP卷積層模塊。以608×608圖像大小為例。在原網絡中,YOLOv4針對76×76、38×38、19×19三個分辨率進行多尺度預測。由于深層網絡中包含較豐富的語義信息,提取到的特征更具有代表性,同時為了避免大量殘差密集連接帶來的計算復雜度,故本文只對38×38和19×19兩個分辨率大小的卷積過程改進為殘差密集塊。原始圖像以RGB三通道圖像輸入至RDB-YOLOv4網絡模型中,利用3×3步長為2的卷積核對其進行卷積操作。將卷積后的特征圖依次送入5個CSP模塊中,其中對304×304、152×152、76×76圖像大小進行卷積拼接操作的為原YOLOv4的CSP模塊,每個CSP模塊中殘差塊的數量分別為1、2、8,卷積層之間呈線性連接;38×38、19×19圖像大小的特征圖則進入改進后的CSP殘差密集模塊,其數量分別為8、4,殘差密集塊內的不同卷積層通過1×1卷積自適應的保存密集連接后的信息,以此來提取局部密集特征。再將融合后的局部密集特征與淺層特征進行殘差連接,輸出得到該殘差密集塊的最終特征信息。
淺層卷積特征感受野較小,缺乏足夠的語義信息,但通常包含較多的位置信息,而深層特征雖然對位置信息不夠敏感,但因其感受野較大,蘊含了豐富的語義信息。為了克服采用單一尺度特征預測帶來的局限性,YOLOv4中采用SPP+PANet結構對深、淺層特征進行融合,使其融合深淺層后的語義信息特征和空間信息特征都得到表達。
本文基于YOLOv4算法模型,將提取到的低、中、高三個層次的特征信息采用PANet[18]的結構來進行多尺度特征融合:高層次的特征圖通過卷積操作將512個通道數減少為3×(4+1+類別數),即18個;同理中、低層次的特征圖也分別對其通道數減少至18個,相同通道數的高、中、低層次特征圖融合后在此基礎上進行回歸,計算預測框與真實框的IOU(交并比)并通過Soft-NMS[19](軟非極大抑制)刪除低于閾值的預測框,實現對井下行人的預測。
本文在Keras(Tensorflow backend)框架下完成對RDB-YOLOv4網絡模型訓練和驗證。基于64位的Windows操作系統,開發語言為Python3.6版本。硬件環境:CPU處理器為Intel?Core?i7-8565 CPU@3.4 GHz,內存8.00 GB,GPU處理器為GeForce RTX 1080Ti的獨立顯卡。
為了驗證RDB-YOLOv4網絡結構的可行性及對井下有遮擋行人檢測方面性能的有效性,本文采用了兩類數據集進行實驗:(1)標準數據集VOC2007;(2)煤礦井下行人數據集。兩種數據集的具體數量如表1所示。

表1 實驗數據集Table 1 Experimental data set
標準數據集VOC2007:VOC2007數據集中圖像具有較為復雜的背景,能夠表示現實中的真實場景。VOC2007數據集包含20個類別,而本實驗只針對行人目標進行檢測,故通過數據清洗提取了該數據集中所有標注類別為Person類的標注圖像作為數據集。
煤礦井下行人數據集:該數據集取自某煤礦井下監控視頻,符合煤礦井下實際工作狀況。受大型設備遮擋、拍攝角度局限等影響,井下員工在不同工作場景下均具有難以檢測的問題,以此作為實驗數據集更能凸顯本文網絡在檢測精確度和檢測效率上的優越性。
煤礦井下行人數據集采用YOLO_Mark標注工具進行標注。目前主流的訓練方法是在Imagenet數據集[20]進行模型的預訓練,然后再在PASCAL VOC或其他數據集上進行微調。由于預訓練過程需要耗費大量的時間,本文直接加載RDB-YOLOv4模型在PASCAL VOC數據集和井下行人數據集上,并通過兩階段的訓練方式進行訓練。整個訓練過程初始輸入圖像大小為608×608,第一階段凍結模型前249層網絡層,初始學習率為0.000 1,訓練輪次(epoch)為80次,batch_size設置為4。第二階段訓練所有的網絡層,初始學習率為0.000 01,輪次設置為60次,batch_size保持不變。兩階段訓練過程均采用學習率衰減函數和提前終止機制(early stopping),學習率衰減為余弦退火衰減法下降方式,并輔以提前終止機制(early stopping)防止訓練過擬合,使損失值始終保持在全局最小值區域。
為了驗證改進模型檢測效果的有效性和可行性,本文在VOC行人數據集中進行了Repulsion Loss[14]算法、CenterNet-Keypoint[21]算法、CenterNet-Triplets[22]算法、CenterPoint-3D[23]算法和YOLOv4算法實驗,并參考了其他文獻[24]在VOC行人數據集上的檢測結果,將RDBYOLOv4與當前優異的目標檢測算法進行測試比較,結果表明本文算法與當前主流目標檢測算法相比,其平均精度(AP)有所提高,具體結果如表2所示。

表2 PASCAL VOC行人數據集實驗結果Table 2 Experimental results of PASCAL VOC 2007 pedestrian data set
本文算法的平均精確度(AP)普遍高于對比的單階段和雙階段算法。Faster R-CNN平均精確度為79.1%,SSD512是基于高斯金字塔結構的單階段目標檢測算法,其平均精確度為80.2%,兩種算法平均精確度均低于本文算法。Repulsion Loss是基于優化損失函數的方式解決行人間自遮擋問題的檢測算法,由于VOC行人數據集中也存在大量行人間遮擋現象,所以本文算法平均精確度相較于Repulsion Loss提升不明顯,Repulsion Loss平均精確度為93.97%,本文的算法較其提高0.3個百分點。CenterNet-Keypoint、CenterNet-Triplets、YOLOv4都是基于回歸思想的最新檢測算法,RDB-YOLOv4整體的平均精度對比CenterNet-Keypoint提高3.21個百分點,比CenterNet-Triplets提高了1.23個百分點,比YOLOv4算法提高了約2.74個百分點,同時雖然增長了對單幅圖像的處理速度,但依然滿足實時監測的要求。CenterPoint-3D是延續CenterNet-Keypoint思想的3D目標檢測算法,檢測效果依賴于深度信息和旋轉角度的有效學習,本文的算法較其提高了2.14個百分點。
圖5為RDB-YOLOv4和YOLOv4在VOC行人數據集中的實驗效果對比圖。第一組對比實驗中,與YOLOv4預測效果相比,RDB-YOLOv4模型能夠檢測出更多目標數量。第二組對比實驗中,由于汽車對檢測行人造成了嚴重遮擋,YOLOv4在檢測過程中只檢測出了1位行人,出現了漏檢情況,而RDB-YOLOv4檢測出所有目標行人,表明改進后的模型能有效改善因遮擋物而導致的行人漏檢問題。

圖5 兩種模型檢測效果對比圖Fig.5 Comparison in detection effects of two models
使用煤礦井下行人數據集在相同實驗環境下,重新對各類算法進行訓練實驗,并通過相同的測試集對其模型進行評估。本文提出的RDB-YOLOv4模型在煤礦井下行人數據集上檢測效果P-R曲線如圖6所示,測試集平均精確度AP50為98.56%。

圖6 RDB-YOLOv4 P-R曲線圖Fig.6 P-R curve of RDB-YOLOv4
各算法的實驗結果如表3所示,為保證預測框的精準性,井下行人數據集采用不同IOU閾值的平均精度AP50、AP75作為其評價指標,其中AP50為常用指標,而在工程應用中通常要求IOU達到0.75,即AP75為嚴格測試指標。

表3 井下行人數據集平均精確度(AP)Table 3 Mean accuracy of underground pedestrian data set(AP)
由表3實驗結果可知,RDB-YOLOv4模型在平均精度(AP)這一評價指標上相較于其他對比算法有所提升。在IOU閾值為0.75時,RDB-YOLOv4平均精度為90.36%,分別高于目標檢測算法CenterNet-Keypoint、CenterNet-Triplets和YOLOv4平均精度4.97個百分點、2.44個百分點、1.63個百分點,高于處理行人自遮擋的檢測算法Repulsion Loss平均精度0.62個百分點,高于CenterPoint-3D平均精度4.86個百分點;當IOU閾值為0.5時,RDB-YOLOv4算法平均精度為98.56%,較CenterNet-Keypoint、CenterNet-Triplets、YOLOv4提高了4.73個百分點、3.16個百分點、3.5個百分點,較Repulsion Loss提高了2.4個百分點,較CenterPoint-3D提高了4.54個百分點。實驗表明本文模型綜合殘差密集網絡能夠提取到更豐富的行人基本結構特征,對井下被大型設備遮擋的行人具有較好的檢測效果。同時,由于融合了殘差密集塊的YOLOv4網絡增加了特征提取的復雜程度和計算代價,檢測速度較CenterNet-Keypoint、CenterNet-Triplets和YOLOv4算法減慢了約0.03~0.04 s/frame,平均檢測速度為0.12 s/frame。但對比Repulsion Loss算法,由于主干網絡的差異,RDB-YOLOv4檢測速度上仍遠快于Repulsion Loss。CenterPoint-3D因加入了3DCNN模塊,同時要對旋轉角度和深度信息進行學習,RDB-YOLOv4算法對比其檢測速度仍具有領先性。綜合而言,在略微犧牲檢測速度的情況下,RDB-YOLOv4模型對比當前主流目標檢測模型在平均檢測精度上具有優勢,從而驗證了本文模型在提升檢測精度的同時沒有造成過多的時間成本代價,具備對井下有遮擋行人檢測的有效性和應用價值。
對比在公開數據集進行的實驗,RDB-YOLOv4在煤礦井下行人數據集中測試的平均精度更高,其主要原因為兩點:(1)井下行人數據集為特定工作場景,多數訓練集和測試集均取自同一工作地點,其圖像背景更為單一。在淺層特征提取時,相似的紋理和圖案信息減少了檢測過程中誤識別的概率。(2)井下行人數據集由于其場景的特殊性,出現人與人之間互相遮擋而造成的誤檢和漏檢情況要遠少于VOC2007數據集。
為了更直觀地展示本文算法的實驗效果,圖7挑選了4組改進前后的YOLOv4算法在井下行人數據集中的實驗結果。從第一組對比實驗可以看出,與YOLOv4算法相比,本文算法在行人被設施嚴重遮擋后依然可以檢測出圖中行人;在第二組對比實驗中存在目標與目標之間遮擋、目標與非目標之間遮擋的干擾情況,YOLOv4算法雖檢測出被設備部分遮擋的行人,卻漏檢了被他所遮擋住的行人,本文算法提取到相互遮擋的兩人之間不同的特征,完整檢測出圖中的兩個人;第三組和第四組對比實驗均為不同場景下多檢測目標,YOLOv4算法在被遮擋人只露出部分特征的情況下均出現了漏檢情況,而RDB-YOLOv4算法能檢測出的目標數量更完整,這表明本算法在實際應用中具有可行性,達到了預期效果。

圖7改進的YOLOv4與YOLOv4檢測效果對比Fig.7 Comparison of improved YOLOv4 and YOLOv4 detection results
以YOLOv4算法為基礎,RDB-YOLOv4算法利用殘差網絡和密集網絡在特征提取上的特點,淺層與深層特征的直接結合以形成連續的記憶機制(CM),以此來減少特征提取中由于網絡深度增加而導致的逐層信息丟失的問題。實驗結果表明,RDB-YOLOv4算法在VOC2007數據集和井下行人數據集中的平均檢測精度(AP)均有提升且較為穩定。該算法能有效減少井下被遮擋行人在目標檢測中易出現漏檢、誤檢的問題,在實際應用中具有良好的檢測效果和使用價值。但本文算法針對目標之間相互遮擋的檢測不夠精準,同時在井下光照環境復雜情況下,檢測效果也有待提高。后續研究將著眼于這些不足,進一步進行算法優化,提高模型的魯棒性。