楊清翔,呂晨,馮晨晨,王振宇
(1.山西中煤華晉能源有限責任公司 王家?guī)X煤礦, 山西 河津 043300;2.中國礦業(yè)大學 信息與控制工程學院, 江蘇 徐州 221116)
基于計算機視覺的行人檢測方法采用攝像裝置獲取視頻圖像,通過圖像處理算法對目標信息進行檢測和分析,并用于后續(xù)跟蹤任務[1],在智能視頻監(jiān)控[2]、無人汽車駕駛[3]、智能機器人[4]等領域發(fā)揮了重要作用。在智能化礦井建設中[5],采用計算機視覺技術對長距離膠帶沿線、封閉巷道入口、斜巷等危險區(qū)域進行行人檢測,對于提高煤礦安全生產(chǎn)管理水平、防范人身傷亡事故具有重要的意義。但井下光照不均勻、行人特征與背景的相似度高[6]等問題導致基于計算機視覺的行人檢測技術在井下應用面臨很大挑戰(zhàn)。
鑒于基于深度學習的行人檢測方法在復雜環(huán)境下的應用優(yōu)勢[7],本文采用Faster RCNN(Region Convolutional Neural Networks,區(qū)域卷積神經(jīng)網(wǎng)絡)[8]進行煤礦井下行人檢測(Faster RCNN行人檢測),并通過池化因子設計了一種動態(tài)自適應池化方法,實現(xiàn)了針對不同池化域的自適應池化操作,從而提高了檢測準確性。實驗結果驗證了Faster RCNN行人檢測算法針對不同環(huán)境下圖像中的行人均具有較好的檢測效果。
基于深度學習的行人檢測算法主要思想是利用卷積和池化等操作對行人圖像進行處理,獲取卷積特征,采用全連接層作為分類器完成分類檢測。Faster RCNN行人檢測算法引入RPN(Region Proposal Network,區(qū)域建議網(wǎng)絡)生成候選區(qū)域,采用Fast RCNN[9]檢測目標,如圖1所示。采用卷積層提取圖像特征,在特征提取過程中進行動態(tài)自適應池化操作。RPN通過柔性最大值傳輸函數(shù)softmax判斷錨點屬于前景還是背景,再利用邊框回歸修正錨點,以獲取精確的候選區(qū)域。感興趣區(qū)域池化層根據(jù)輸入的特征圖和候選區(qū)域,采用動態(tài)自適應池化方法提取候選特征圖并將其送入分類器(全連接層)。分類器計算候選區(qū)域類別,再次使用邊框回歸獲得檢測框作為檢測結果。
圖1 Faster RCNN行人檢測算法
Faster RCNN行人檢測算法中RPN和Fast RCNN可共享卷積層,大幅提高了網(wǎng)絡訓練和檢測速度,同時采用動態(tài)自適應池化方法,提高了行人檢測準確性。
Faster RCNN行人檢測算法中RPN目標是實現(xiàn)與Fast RCNN共享卷積層,主要思想為將輸入圖像轉換為矩形目標建議框集合,并計算各框得分,該過程建模通過全卷積網(wǎng)絡完成。
RPN只含有卷積層,最后一層輸出的卷積特征為圖像特征圖。對其進行窗口滑動,在每個位置滑動時利用錨點機制按照3種尺寸和3種比例要求生成9種不同的錨點,并根據(jù)邊框回歸機制對位置進行修正。針對每個候選區(qū)域,RPN為其設置置信度,表明其可檢測到行人目標的概率,并根據(jù)置信度選擇合理的候選區(qū)域輸入分類器進行分類檢測。
RPN與Fast RCNN是獨立訓練的,卷積層修改方法不同。本文提出學習RPN和Fast RCNN的共享卷積層,而不是分別學習網(wǎng)絡。在學習共享卷積層時采用交替訓練算法,步驟如下。
(1) 對RPN進行訓練。采用ImageNet預訓練模型初始化RPN。RPN訓練中采用端到端的微調(diào)。
(2) 利用RPN生成的矩形目標建議框,通過Fast RCNN訓練得到檢測網(wǎng)絡。該網(wǎng)絡采用步驟(1)中方法生成,但獨立于RPN。此時RPN和檢測網(wǎng)絡未建立共享卷積層。
(3) 使用檢測網(wǎng)絡初始化RPN訓練。此時不修改共享卷積層,只對RPN中獨有的層進行微調(diào)。之后便可實現(xiàn)RPN和Fast RCNN共享卷積層。
(4) 在不改動RPN和Fast RCNN共享卷積層前提下,對Fast RCNN獨有的層進行微調(diào)。之后RPN和Fast RCNN構成一個統(tǒng)一網(wǎng)絡。
對于一幅行人圖像,對可能包含行人的區(qū)域提取特征時,通常會對所獲取的特征進行分析統(tǒng)計,以獲取區(qū)域總體特征。圖像中這個特定區(qū)域叫做池化域,對其進行的操作為池化。池化后得到的特征圖維度與分辨率都有所下降,可有效避免過擬合現(xiàn)象發(fā)生。常用的池化方法有平均池化和最大池化。平均池化即計算池化域的像素平均值,并把該值作為子采樣樣本的特征值;最大池化即選取池化域中像素最大值作為特征值。
設F為輸入圖像特征圖中大小為c×c的子采樣池化域,其偏移量為b。在池化操作過程中核的每一次移動步長為c,則采用平均池化和最大池化得到的子采樣特征圖分別如式(1)、式(2)所示。
(1)
Sm=maxfij+b
(2)
式中fij為F中(i,j)處像素。
常用的平均池化和最大池化操作對所有的池化域采用相同池化方式,缺乏靈活性。本文提出一種動態(tài)自適應池化方法,根據(jù)特定區(qū)域的特征圖動態(tài)自適應調(diào)整池化操作過程,同時根據(jù)每個池化域內(nèi)容,對相應的池化權值進行自適應調(diào)整。如果池化域中只有1個值或所有值相同,則將該值作為該池化域的特征表示。設池化因子為μ,則采用動態(tài)自適應池化方法得到的子采樣特征圖為
Sd=μmaxfij+b
(3)
可見動態(tài)自適應池化方法是在最大池化基礎上,通過池化因子μ對提取的子采樣特征圖進行優(yōu)化,從而更加精確地表達圖像的高層次抽象特征。
(4)
式中:ρ為特征系數(shù);α為池化域中去除最大值后,其他像素的平均值;fmax為池化域中像素最大值,fmax=maxfij;θ為誤差矯正項。
(5)
式中ne為訓練過程中迭代次數(shù)。
根據(jù)式(3)—式(5)可知,如果確定了池化域大小,并保持迭代次數(shù)不變,就可根據(jù)池化域的不同特點,自適應選取當前池化域的池化因子,從而獲得最佳檢測性能。如果存在池化域相同的情況,可通過調(diào)節(jié)迭代次數(shù)動態(tài)調(diào)節(jié)池化因子,最大程度上達到檢測性能最優(yōu)。池化因子取值范圍為(0,1),這樣可包含平均池化和最大池化,保證池化域含有較明顯的像素最大值時輸出準確結果,且在對其他池化域進行池化操作時提高最大池化提取特征信息時的準確度。
采用Caltech數(shù)據(jù)集,將本文算法與ACF[10],DeepCascade[11],SCF+AlexNet[12],Katamari[13],SpatialPooling+[14],TA-CNN[15],ACF++[16],LDCF[17],MS-CNN[18]算法的檢測性能進行比較。
設置標準環(huán)境下圖像中行人高度均超過50像素,沒有或有少部分遮擋,采用不同算法時實驗結果如圖2所示。根據(jù)行人檢測評價原則,將誤檢率為0.1時對應的漏檢率和平衡點作為評價標準。圖2各算法中的數(shù)值為其漏檢率或平衡點。
(a) 漏檢率-誤檢率曲線
(b) 精確度-查全率曲線
從圖2可看出,本文算法漏檢率最低,僅為9%,較基于卷積神經(jīng)網(wǎng)絡的TA-CNN和MS-CNN算法分別降低了12%和1%;平衡點最大,為87%,說明本文算法的查全率和精確度均優(yōu)于其他算法。另外,本文算法的精確度-查全率曲線向右上角凸起的程度較其他算法大,說明本文算法的檢測效果最優(yōu)。
為驗證本文算法針對不同背景的檢測效果,選取6種參數(shù)環(huán)境進行實驗,分別為部分遮擋(遮擋范圍為1%~35%)、嚴重遮擋(遮擋范圍為35%~80%)、大尺寸(行人高度大于80像素)、中小尺寸(行人高度為30~80像素)、標準寬高比和非標準寬高比,實驗結果如圖3所示。
從圖3可看出,對于遮擋范圍較小、尺寸較大的圖像,各算法的檢測效果較好,而對于遮擋嚴重、尺寸較小的圖像,各算法的檢測效果急劇下降,這與實際情況一致;在6種參數(shù)環(huán)境下,本文算法的漏檢率均最低,證明本文算法對于不同遮擋范圍、尺寸、寬高比情況的圖像均能有效檢測出行人。
煤礦井下行人檢測算法即Faster RCNN行人檢測算法采用RPN生成候選區(qū)域,并與Fast RCNN共享卷積層,提高了網(wǎng)絡訓練和檢測速度;采用動態(tài)自適應池化方法對不同特點的池化域進行自適應池化操作,提高了檢測準確性。通過Caltech數(shù)據(jù)集驗證了該算法對于不同環(huán)境下圖像中行人均具有較好的檢測效果。
(a) 部分遮擋
(b) 嚴重遮擋
(c) 大尺度
(d) 中小尺度
(e) 標準寬高比
(f) 非標準寬高比