朱玉華,杜金月,劉洋,頡永鵬
(沈陽工業大學 化工過程自動化學院,遼寧遼陽, 111003)
安全一直以來是建筑行業、工業生產中永恒的話題。根據大量數據統計,建筑行業大量事故的發生,通常是人為因素造成的。建筑行業中最危險的來源是高空墜物,安全帽可以承受外物的撞擊,減少因高空墜物而造成的頭部受傷,對施工人員的安全起著極其重要的作用。在建筑工地上,通常采用人工監督的方法判斷工人是否佩戴安全帽,因而存在施工人員作業范圍廣、易造成在施工現場不能及時追蹤和管理所有工人等問題[1]。因此采用自動監控的方法代替人工監視,有利于減少疏漏,提高檢測效率,減少人工浪費。
目標檢測結合了目標定位和目標識別[2]。近幾年來,目標檢測在工業質檢、行人檢測、航空航天等各個領域應用廣泛根據其網絡結構不同可分為兩類,一類是兩階段目標檢測模型如R-CNN[3]、Fast R-CNN[4]、Faster R-CNN[5]等,其特點是檢測精度高但檢測速度慢;一類是單階段目標檢測模型如YOLO[6]、SSD[7]等,其特點是檢測速度快但檢測精度不高,且對小目標的檢測效果較差。
小目標具有分辨率低、語義信息匱乏、攜帶信息少等特點。針對目標檢測中的小目標檢測問題不高的問題,近年來國內外大量學者提出了一系列對小目標檢測的研究。趙文清等[8]將SENet和Faster R-CNN相融合,解決了定位不高的問題,根據絕緣子的尺寸大小,對區域建議網絡RPN生成anchor的尺度進行調整,但是人為的調節anchor寬高比不具有普適性;熊俊濤等[9]提出了一種改進的YOLO v3算法,通過增加三次殘差網絡塊提取特征,對于小目標、遮擋圖像的檢測精度高。張炳力[10]等人在RetinaNet的基礎上對損失函數進行全面優化。構造了關聯交并比的分類損失函數,利用負樣本交并比使網絡注重于訓練難分類負樣本,在定位損失函數方面,改進了傳統L1損失的歸一化方式,提高了小目標檢測能力。王芋人等[11]證明了當anchor和標注框面積和比例相同時,交并比最大,然后用GMM算法分別對小目標數據集中的標注框的寬高比和面積進行聚類,在Faster R-CNN模型中設計出對標注框適應性更強的anchor。
本文針對小目標安全帽的檢測,提出了一種基于Faster R-CNN的改進方法,為了解決主干網絡VGG16訓練時間長,深度大,小目標檢測精度差等問題,將ResNet101[12]與FPN特征金字塔進行特征融合替代VGG16,以此來提高小目標的檢測精度。根據安全帽尺寸的大小,對anchor尺寸進行調整,使之覆蓋所有大小的安全帽。
Faster R-CNN模型是在Fast R-CNN基礎上設計出了RPN候選框,極大提升了region proposal質量,同時提高了模型的檢測精度,降低了網絡的冗余,能夠讓目標適應在不同的場景。Faster R-CNN網絡結構,由四部分組成:(1)利用特征提取網絡VGG16對輸入進行特征提取產生feature map[13]。(2)將產生的feature map傳入RPN網絡產生建議框,利用全連接層對每個anchor做二分類和位置修正,輸出精確的proposals。(3)采用ROI Pooling使用最大值池化將特征圖上ROI固定為特定大小的特征圖;(4)對候選區域特征圖進行分類和回歸,得到物體種類和位置。
針對現有模型對小目標檢出精度不高、魯棒性差等問題,對Faster R-CNN模型進行改進。特征提取網絡采用ResNet101與FPN特征融合代替VGG16,增強網絡對小目標的檢測能力,提升不同大小檢測目標的檢出精度,并根據安全帽的尺寸設計anchor的大小,改進后的網絡結構如圖1所示。

圖1 改進的Faster R-CNN模型結構
傳統算法采用VGG16網絡作為特征提取網絡,VGG16網絡的泛化性很好,但是在小目標的檢測中容易出現梯度消失、網絡深度大、訓練時間長、部署耗時大等問題[14]。針對此問題本文引用ResNet網絡,其殘差模塊很好地解決了在訓練過程中網絡退化的問題[15]。計算效率高,ResNet有不同的網絡層次,常用的有50-layer,101-layer,152-layer。本文選用ResNet101,其網絡結構如圖2所示。

圖2 ResNet101網絡結構圖
為了保證高維度特征,信息不丟失,以及更加突出低維度特征,特征提取網絡采用ResNet101與FPN特征融合代替VGG16,該網絡結構圖如圖3所示,圖中的C1,C2,C3,C4,C5分別對應ResNet101網絡Conv1_x~Conv5_x卷積塊,隨后采用1×1卷積橫向連接與之求和生成新的特征圖M2~M5,最后在合并的新圖上進行3×3卷積以生成最后的特征圖,最終的特征圖記作P2,P3,P4,P5。

圖3 特征提取網絡圖
在Faster R-CNN模型訓練中,RPN中anchor尺寸設計對檢測精度的影響非常大。原始Faster R-CNN對于每個滑動窗口生成3種長寬比{1:1,2:1,1:2}和3種縮放尺度{128×128,256×256,512×512}兩兩組合生成9種不同尺寸的anchor。為了確保模型對于不同位置、大小的識別準確度。本文將采用{16×16,32×32,64×64,128×128,256×256}作 為anchor的尺寸,長寬比不變。RPN共生成15種尺寸的目標框,可以覆蓋安全帽檢測中所有尺寸的目標區域。
本文所需的小目標數據集,部分來自建筑工地現場采集,部分來自網絡爬蟲。使用訓練集訓練網絡之前,先對數據預處理,通過反轉、加噪聲等方式增強模型的泛化能力,得到5000張圖片。部分圖片如圖4所示,采用Lableme軟件對每張圖片進行數據標注,最終形成我們的小目標安全帽數據集,且訓練集、驗證集、測試集三者的比例為8:1:1。

圖4 數據集部分圖像
本文實驗環境配置如表1所示,pytorch是在2017年發布的簡潔靈活的主流深度學習框架。pytorch設計簡潔,代碼易于理解,在很多模型上容易實現,且支持GPU,提高了代碼的運行速度。因此本文選擇pytorch框架。

表1 實驗環境配置表
本文實驗采用平均精度(AP)和平均精度均值(mAP)作為評價指標。為了更好地比較在傳統Faster RCNN 基礎上改進前后的識別效果,驗證ResNet101+FPN作為特征提取網絡的性能,并確定合適的網絡層數。分別采用ResNet50+FPN、ResNet101+FPN、VGG16作為特征提取網絡進行訓練。得到檢測結果如表 2 所示。
由表2測試集的對比結果可以看出,Faster RCNN模型中引入ResNet50+FPN結構,安全帽的識別平均精度達到90.9%,平均精度均值達到90.35%,采用ResNet101與FPN進行融合后,識別效果得到明顯提升,平均精度達到90.9%,平均精度均值達到90.9%,相比于傳統VGG16,平均精度提升了6.7%,平均精度均值提高了6.55%,說明提出的ResNet101與FPN融合作為特征提取網絡,提升了特征表達能力,改進的算法是有效的。
在Faster RCNN訓練過程中,將動量參數設為0.9,權重衰減參數設為0.0001,學習率設為0.02,訓練16000次。其訓練總體損失,RPN邊框回歸、分類損失如圖5所示,從圖中可以看出loss曲線在訓練初期下降快,迭代16000次后逐漸趨于平緩,并最終穩定在0.1附近,說明模型已經基本收斂。

圖5 訓練損失變化
圖6和圖7為安全帽樣本進行測試的結果示例圖,圖中紅框為帶有類別和概率信息的檢測結果框。通過對比識別結果可以看出,本文改進的算法識別出安全帽的精確度更高,定位更加準確,并且能夠識別出背景復雜、遮擋、尺寸較小的安全帽。

圖6 傳統Faster R-CNN識別結果

圖7 改進后模型的識別結果
針對小目標安全帽檢測精度低,提出了一種基于改進Faster R-CNN的小目標安全帽檢測目標檢測算法。特征提取網絡采用ResNet101與FPN進行特征融合;根據安全帽尺寸大小的特點,對區域建議網絡生成anchor尺度進行調整,提高了模型的檢測精度,改善小目標識別的準確率。實驗表明安全帽目標檢測的平均精度達到90.9%,平均精度均值(mAP)達到90.9%,相比于傳統VGG16,平均精度提升了6.7%,平均精度均值提高了6.55%,且模型有一定泛化能力和魯棒性。