劉 霞
(中國石油大學(華東)計算機與通信工程學院,山東 青島 266580)
在日常的生產過程中,如建筑工地、電廠等,由于場景環境較為復雜,存在著威脅人身安全的各種因素,由于頭部是人體中最易受到傷害的部位,在上述場合中工作的人員均要求佩戴安全帽[1]。智能化檢測工人是否佩戴安全帽,能有效提高監管人員對安全帽佩戴情況的監管效率,大幅度減少了人工參與,一定程度上解放了勞動力;對工人本身而言,提供了安全保障。
現有的安全帽識別技術主要有馮國臣[2]、胡恬[3]、劉曉慧[4]等基于傳統方法對安全帽進行檢測。以上方法都是基于人為主觀設計的特征,需要研究者具備豐富的實踐經驗和牢固的專業知識。人為設計特征,不但費時費力,而且泛化能力不好,不具備魯棒性。
隨著近年來深度學習方面相關技術的蓬勃發展,越來越多的研究者將深度學習技術應用到圖像分類[5]、目標識別[6]、圖像分割[7]等復雜任務上,并且都取得了相當可觀的效果。但是對于這些算法而言,目標的尺度變化仍然是一個挑戰?,F有的用以解決多尺度目標檢測的方法,如:SSD[8]、DSSD[9]、FPN[10]、ION[5]、HyperNet[11]、SNIP[12]、SNIPER[13]和TridentNet[14]等存在著網絡結構復雜,計算量大的問題。雖然精度提升了,但檢測效率低下,增加了檢測時間。
針對上述問題,文中在VGG16神經網絡的基礎上,選用Conv4_3、Conv6_2和Conv7_2卷積層;利用分辨率增強模塊,使后兩個卷積層的特征圖的大小和第一個卷積層中的特征圖的大小保持一致;然后對轉換后的特征圖進行融合,這樣融合后的特征圖既包含高層語義信息,又包含低層細節信息;最后再根據融合后的特征圖生成特征金字塔對安全帽進行檢測,實現對小尺度安全帽的高召回,對大尺度安全帽的精確定位。

圖1 SE Detection Net網絡結構
SE Detection Net網絡結構如圖1所示。它以VGG16為特征提取網絡,利用其中的Conv4_3、添加的Conv6_2、Conv7_2特征圖進行特征融合,利用融合后的特征圖生成特征金字塔,用于不同尺度的安全帽的檢測,最后利用NMS(non—maximum suppression)算法,篩除重復的候選框,得到最后的檢測結果。分辨率增強模塊包括分辨率增強層和上采樣層,分辨率增強層在不增加計算量的前提下,擴大了Conv6_2卷積層中特征圖的大小,并減少了通道數,上采樣層通過插值的方法對Conv7_2層實現了從低分辨率到高分辨率的轉化。
文中采用的特征提取網絡是VGG16[15]。根據組成網絡的層數,16層的VGG命名為VGG16。VGG16網絡結構比較規整,是由多個卷積層加上一個池化層疊加組成的結構。VGG16使用3×3小卷積核和2×2小池化核。它總共包含5組卷積,每組卷積由2個或者3個卷積層組成,后面的最大池化層用于減少參數。另外,在每組卷積中,卷積核的數量是固定的。從前往后,每組的卷積核的數量依次是64、128、256、512、512。為了提高網絡提取特征的能力,刪除了VGG16網絡中的最后一個池化層和三個全連接層,增加了兩個卷積塊,每個卷積塊都有兩個卷積層組成,最終網絡生成的特征圖的大小為10×10×512。
特征圖的分辨率問題是目標檢測中的核心問題。結合不同分辨率的特征圖,有利于多尺度目標的識別。在進行特征融合前,特征圖的尺寸需保持一致。分辨率增強模塊包含兩個部分:一部分是分辨率增強層,另一個是上采樣層。對于上采樣層,先利用1×1的卷積核把通道數從1 024減少到256,有利于訓練參數的減少,降低模型復雜度,然后利用插值方法,把特征圖從10×10擴大到38×38。
為了得到高分辨率的特征圖,還不增加額外的計算量,設計了分辨率增強層,該層對于不同分辨率的圖像的轉換非常高效,可以直接插入到VGG16模型中。假設輸入的特征圖的維度為:h×w×c×g2,其中g是上采樣因子。如圖2所示,分辨率增強層通過減少特征圖通道數對特征圖的寬度和高度進行擴大。用數學形式表示如下:

圖2 分辨率增強模塊
(1)
每個具體的轉換函數如下:
(2)
(3)
(4)

在分辨率增強層中,Conv7_2的特征圖的大小為19×19×1 024,取上采樣因子g=2,因此特征圖的大小從19×19×1 024轉換成38×38×256,然后再通過大小為1×1的卷積核,對變化后的特征圖進行特征的整合,生成38×38×256的特征圖。經過轉化后的三處特征圖在通道數維度上進行融合,隨后通過BatchNorm[16]層正則化融合后的特征圖,最終生成的特征圖大小為:38×38×768。
對融合后大小為38×38×768的特征圖進行卷積操作后,生成特征金字塔。然后SE Detection Net使用兩個卷積核大小為3×3的卷積層對特征金字塔中每一層進行卷積。其中一個卷積層輸出每個區域候選框的種類作為類別的預測結果,另一個則輸出每個區域候選框的位置偏移量,再根據每個區域候選框的置信度排序,利用NMS算法去除多余的框,留下最有可能存在目標的框,根據預測出的偏移量調整候選框的形狀和位置,最后生成最終的檢測結果。
這個數據集總共有3個種類:藍色安全帽、紅色安全帽和黃色安全帽。訓練集總共有20 500張,測試集有1 000張。其中藍色安全帽數據集共6 500張,紅色6 500張,黃色6 500張。
選用在ImageNet[17]數據集訓練得到的VGG16為初始模型,然后開始訓練此網絡。模型輸入的圖像尺寸為:300×300,由于GPU顯存的限制,訓練時的batch_size:28,總共的訓練次數為100個epoch,在前30個epoch的學習率為10-3,在以后的迭代中,學習率依照余弦函數進行衰減[18],在第100次epoch時,學習率下降為0。
在收集的安全帽數據集上評價此網絡,采用mAP分數[19]作為評價檢測性能的指標。在整個測試集中,紅色安全帽大部分是大尺度,藍色安全帽各個尺度都有,黃色安全帽小尺度居多。
表1展示了在安全帽測試集上的檢測結果。在這些算法中,SSD沒有融合高低層的特征,僅利用不同層次的單一層進行檢測。從表中可以看出,SE Detection Net相較于SSD對這三種類別的安全帽都有提升,表明SE Detection Net采用融合后的特征圖生成特征金字塔,促使了低層的特征圖含有了語義信息,高層的特征圖包含了細節信息。其中,黃色安全帽提升最大,提高了7.6%,說明SE Detection Net對小目標的檢測效果提升明顯。另外,Faster RCNN雖然使用RPN網絡(region proposal network)進行候選框的選擇,但只使用頂端的一個特征圖進行檢測,而SE Detection Net使用多個特征圖進行檢測,提高了各個尺度的安全帽的檢測效果,從表中可以看出,SE Detection Net相比于Faster RCNN在類別上的提升分別為:1.5%、0.7%、3.9%。從表中可以得出,在這三種方法中SE Detection Net的檢測效果最好,提高了安全帽檢測的精度。

表1 各個模型的檢測結果
為了更加直觀地觀察SE Detection Net的檢測效果,文中在黃色安全帽和紅色安全帽測試集上做了SSD和SE Detection Net的對比實驗,檢測效果如圖3所示。SSD由于只使用單一特征圖做預測,低層特征圖缺乏語義信息,高層特征圖缺少細節信息,對于小尺度的黃色安全帽沒有檢測出來,存在漏檢現象;對于大尺度的紅色安全帽雖然檢測出來,但是定位沒有SE Detection Net精確。SE Detection Net由于有效的特征融合,使低層的特征圖含有語義信息,高層的特征圖包含細節信息,提高了小尺度的安全帽的召回率和大尺度安全帽的置信度,并且定位更加精準。

圖3 檢測效果對比
為了測試SE Detection Net的速度,測試了整個測試集的檢測時間,然后計算了每秒的幀數(fps)。把batch_size設置為1,并在GPU為1080Ti的機器上測試速度。
表2顯示了基于安全帽測試集SE Detection Net和其他算法關于速度和精度的比較。從表中可以看出,SE Detection Net實現了精度和速度的均衡。它融合了三個特征圖的信息,增加了時間的開銷,雖然沒有SSD的檢測速度快,但精度提高了4.1%。Faster RCNN是二階段檢測器的代表,它先由RPN網絡生成區域候選框,再進行分類和回歸,因此它的檢測時間較長。SE Detection Net利用卷積操作直接進行分類和回歸,實現了比Faster RCNN更理想的檢測效果,且識別速度增加了一倍。

表2 基于測試集速度與精度的比較
為了解決安全帽檢測問題,提出了分辨率增強檢測網絡(SE Detection Net)用于多尺度安全帽的識別。SE Detection Net先由VGG16提取安全帽的特征,然后利用分辨率增強模塊把需要融合的低分辨率特征圖轉化到高分辨特征圖,再通過融合后的特征圖生成特征金字塔,最后利用金字塔中的特征圖實現安全帽的檢測。實驗結果表明SE Detection Net的效果優于SSD和Faster RCNN,對各個尺度的安全帽的檢測效果都有提升,其中,小尺度安全帽的提升效果較為明顯。檢測效率也能達到實時性的要求,實現了檢測精度和速度的平衡。