陳 柳,陳明舉,薛智爽,羅仕勝
四川輕化工大學 人工智能四川省重點實驗室,四川 自貢643000
隨著電子信息技術的發展,機器視覺技術已逐漸應用到社會生產生活的各個領域。在電力生產、施工現場以及交通等領域,未正確佩戴安全帽是造成安全事故的主要因素之一。通過機器視覺技術能實現對施工作業現場安全帽的檢測與識別,減少安全事故的發生。
近年來,一些科研人員采用機器視覺技術進行安全帽識別,并獲得了一些有效的研究成果。在傳統機器學習算法研究方面,主要通過安全帽的形狀與顏色特性進行識別。如Park 等人[1]利用顏色直方圖與空間關系匹配實現對安全帽的檢測。李琪瑞等人[2]通過ViBe 運動目標檢測,并結合SVM的特征分類算法,以判斷是否佩戴安全帽。劉曉慧等人[3]通過頭部區域的Hu 矩特征進行訓練得到分類器,從而實現對安全帽的判斷。傳統的基于機器學習的安全帽檢測算法,檢測速度較快,但嚴重依賴人為特征設計和選取,同時由于特征單一,泛化能力較差,無法對復雜施工環境下的目標進行有效檢測,導致檢測準確率較低。
基于深度學習的卷積神經網絡技術在圖像處理中表現出較好的性能,越來越多的科研人員將卷積神經網絡應用于圖像的分類識別中,并取得了較好的識別效果。基于神經網絡的目標檢測主要分為兩階段網絡方法和單階段網絡方法。兩階段網絡通過區域提取和分類兩個階段去實現識別,具有較高的檢測精度,但由于檢測過程存在大量的數學計算,從而導致檢測速度較慢[4-5]。單階段網絡使用目標的高級特征直接進行識別,避免復雜的特征提取與檢索算法,大大減少了運算時間[5],但由于單階段網絡對各級網絡特征單獨進行預測,底層特征缺少語義與全局信息,造成小物體漏檢的情況發生[6]。
由于生產作業的場景錯綜復雜,采用單階段卷積神經網絡對作業人員是否佩戴安全帽進行識別,存在漏檢現象。采用兩階段網絡進行識別的運算時間長,無法滿足實時性的要求。為滿足對作業場景佩戴安全帽識別的精度和速度的要求,本文以單階段檢測網絡RFBnet[7]為基礎,引入多尺度特征金字塔結構增強對小目標的檢測能力,并輕量化網絡模塊,提高檢測效率。實驗中采用SCUT-HEAD數據集進行訓練和測試,將本文改進的輕量化RFBnet網絡與RFBnet-300[7]、RFBnet-512[7]、YOLO-v3[8]三種檢測方法進行對比實驗,結果表明,本文改進的RFBnet 檢測方法能夠保持較快的檢測速度,同時能夠實現較高的檢測精度。
強大的特征提取能力在目標檢測網絡中變得至關重要,提取精確的目標特征需要增加卷積神經網絡的層數,然而性能的不斷提高帶來的卻是高額的計算成本,導致模型檢測速度降低。受人類視覺系統中感受野(Receptive Filed,RF)結構的啟發而誕生的RFBnet網絡是一種簡單而高效的目標檢測網絡。
RFBnet目標檢測網絡以VGG-16網絡[9]作為提取特征的主干網絡,將VGG-16網絡最后的三個全連接層采用空洞卷積層Conv6 和Conv7 進行替換,并對池化層Pool5 的步長和大小進行改變,實現在不增加網絡運算量的前提下使卷積層能夠提取到更多的特征信息,實現圖像語義信息準確分割[10]。另外,為了更好地增強淺層卷積神經網絡的特征表示能力,有效提取目標的特征,RFBnet 模擬人類淺層視網膜圖中的群體感受野(population Receptive Field,pRF),構建以多分支卷積模塊與膨脹卷積層為組件的RF Block,以提取目標更精細的特征[7]。RFBnet 在Conv4_3 層連接小群體感受野的RF Block,在Conv7層之后連接多個RF Block,如圖1所示。根據網絡輸入圖片的大小,RFBnet又有RFBnet-300和RFBnet-512兩個版本,以適用輸出特征圖不同分辨率的要求。

圖1 RFBnet-512結構Fig.1 Structure of RFBnet-512
由上分析可知,RFBnet采用空洞卷積層與RF Block模塊,實現以較少的層數增強淺層卷積神經網絡的特征表示能力,然而RFBnet強調同層之間特征表示,忽略了高層特征與底層特征之間的相互聯系,使得淺層特征表示能力有限,從而造成復雜環境下小目標的漏檢。
針對施工環境的復雜性,為達到安全帽檢測精度的要求,本文在檢測效果更佳的RFBnet-512 的基礎上進行改進。為了更好地利用不同層次特征之間的聯系,有效地增強淺層特征,將特征金字塔網絡(Feature Pyramid Networks,FPN)模塊引入到RFBnet 中。同時保持網絡特征提取能力不變的情況下減少計算量,本文構建一種輕量化模塊代替網絡中的部分卷積模塊,從而建立一種實現安全帽檢測的輕量化高精度卷積神經網絡。
在目標檢測網絡中,RFBnet 由于卷積層和池化層的不斷堆疊,導致深層特征圖分辨率較低,不能對小目標進行有效檢測。FPN 模塊[11]通過深層特征進行上采樣,然后將上采樣得到的特征與次一級特征圖進行融合,實現高層特征向淺層特征融合,使淺層特征也具有較強的語義信息,并且在多個融合尺度上進行預測,增強對小目標的檢測能力[11],其網絡結構如圖2所示。

圖2 FPN網絡Fig.2 FPN network
為了實現適用于復雜環境下多形態安全帽的檢測,并降低安全帽漏檢的概率,本文將FPN 模塊引入到RFBnet結構中。RFBnet網絡層數較大的深層特征圖不含有小目標信息,在過小的特征圖上進行上采樣融合,反而會使目標的檢測效果變差,影響整個網絡的識別能力。本文針對施工環境安全帽圖像的特性,在RFBnet中輸出8×8 特征圖的特征層處添加自上而下的FPN 結構,通過上采樣生成16×16的特征圖,然后與低一層16×16 的特征圖進行對應融合,依次自上向下融合直到Conv4_3層。改進后的FP-RFBnet結構如圖3所示。

圖3 FP-RFBnet網絡Fig.3 FP-RFBnet network
由于引入FPN 模塊的FP-RFBnet 網絡增加了網絡的結構復雜性,從而導致檢測速度變慢,為了提高網絡的檢測速度,同時保持檢測性能不變的情況下,提出一種SG(SE+Ghost)模塊來對FP-RFBnet網絡進行輕量化。
SE注意力模塊通過學習自動獲取每個特征通道的重要程度,然后根據該重要程度去提升有用的特征并抑制表達能力不強的特征。SE 模塊首先對特征進行壓縮,得到一個多維的全局感受野的特征,然后通過自動學習確定每一維度特征的權重,最后通過將學習到的特征逐通道加權到先前的特征上,實現對原始特征的重新標定[12]。在RFBnet 網絡中,卷積存在大量的浮點運算并產生大量的冗余特征圖,而這些冗余的特征對于目標檢測等任務是至關重要的[13-14]。Ghost 模塊由兩個卷積塊構成,首先通過較小卷積核生成少量的原始特征,然后對原始特征通過“廉價”的線性運算來產生大量的冗余特征,從而實現花費很小的計算代價達到普通卷積實現的效果[15]。
將SE 模塊和Ghost 模塊組合得到SG 模塊(SEGhost),SG 模塊不僅實現RFBnet 網絡中冗余特征圖的提取,且提取的特征圖體現特征通道重要程度,SG模塊的結構如圖4所示。

圖4 SG結構Fig.4 Structure of SG
在SG 結構中,首先將Ghost 模塊輸出的特征經過Squeeze 全局平均池化得到壓縮特征;然后將特征維度降低到輸入的1/16,經過激活函數后通過兩個全連接層FC將維度提升到原來的水平;接著通過Sigmoid激活函數將每個特征層的權重歸一化到[0,1]之間;最后通過Scale 操作將歸一化后的權重加權到每個通道的特征上,得到具有特征通道重要程度信息的特征層。
為了減小網絡的參數量與計算量,用構建的輕量高效的SG模塊替換FP-RFBnet主干網絡中的部分卷積模塊,使其能夠聚合不同感受野的特征和不同特征層之間的相關性,使得改進后的網絡更好地實現對較小目標的檢測,在提取安全帽特征時更加高效。另外,FP-RFBnet在Conv7之后連接了4個RF Block,由于深層特征分辨率較低,同時RF Block相較于普通卷積運算量較大,為了進一步輕量化網絡,用普通卷積替換FP-RFBnet中最后兩個RF Block。改進后的FP-RFBnet網絡命名為SGFP-RFBnet,其主干結構如圖5所示。

圖5 SG-FP-RFBnet主干網絡Fig.5 Backbone network of SG-FP-RFBnet
在服務器上搭建進行訓練所需要的環境,服務器硬件配置為CPU(Intel Xeon)、GPU(Nvidia TITAN Xp)、主板(超微X10DRG-Q)、內存(鎂光256 GB)、硬盤(2 TB);軟件配置為Windows10 專業版操作系統、CUDA、Anaconda、Pytorch 等。實驗數據采用開源的安全帽SCUTHEAD 數據庫(https://github.com/njvisionpower/Safety-Helmet-Wearing-Dataset),該數據集下有6 878 張圖片,其中6 328張作為訓練集,550張作為測試集。為了提高SG-FP-RFBnet 的魯棒性并防止模型過擬合,對訓練樣本圖片進行隨機裁剪和放大、亮度和鏡像變換等操作。為了說明SG-FP-RFBnet 網絡的有效性,在相同的實驗環境下采用相同的學習參數與數據集對RFBnet-512、RFBnet-300、YOLO-v3 分別進行訓練,得到相對應的訓練模型。
選取復雜施工環境的樣本圖片用上述網絡模型進行測試,并對測試結果進行對比分析。圖6(a)給出了不同遮擋、干擾和大小的4 幅代表性測試圖像。圖6(b)、(c)、(d)、(e)分別是測試樣本在YOLO-v3、RFBnet-300、RFBnet-512 和SG-FP-RFBnet 方法檢測下得到的結果。從圖中可以看出,RFBnet-300 的檢測效果最差,在4 幅圖中都存在弱小安全帽的漏檢,這是由于其提取圖像特征信息的能力較弱造成的。YOLO-v3網絡尺度表示和特征提取能力有限,對圖1、圖2中的弱小安全帽存在漏檢。相比YOLO-v3 與RFBnet-300 網絡,RFBnet-512 檢測準確率有一定的提高,但在圖3中出現了遠處弱小安全帽的漏檢。在所有算法中,本文的SG-FP-RFBnet 實現了圖中所有安全帽的準確檢測,取得最好的檢測效果,說明了建立的SG-FP-RFBnet 網絡有效地實現了圖像多尺度語義信息的表示與圖像特征的提取,從而提高了弱小目標的提取能力。

圖6 模型對比結果Fig.6 Model test comparison results
為了從客觀指標上說明SG-FP-RFBnet 網絡的性能,本文從檢測精度、速度以及模型參數量等方面來驗證改進的效果。利用SCUT-HEAD 測試數據集分別對上文中的四種檢測方法進行測試,識別率結果如圖7和表1所示。圖7給出了四種檢測方法在SCUT-HEAD測試數據集上的平均準確率(Average Precision,AP)和平均準確率均值(Mean Average Precision,MAP)。SGFP-RFBnet在安全帽(hat)和人臉(person)檢測中獲得的AP 與MAP 值最高,相較于YOLO-v3、RFBnet-300 和RFBnet-512,MAP 分別提高了1.60 個百分點、3.62 個百分點和0.98 個百分點,說明SG-FP-RFBnet 網絡中的特征金字塔網絡模塊可以有效地提高安全帽檢測的精度。表1給出了四種檢測方法的速度與參數量,可以看出SG-FP-RFBnet雖然每秒檢測的幀數相較于FRBnet-512略有下降,但達到20 frame/s,具有一定的實時性。模型存儲參數量得到了極大的降低,相較于YOLO-v3、RFBnet-300 和RFBnet-512 分別減少了183.5 MB、77.5 MB 和80.5 MB,可以節省大量的存儲空間。

圖7 模型精度對比Fig.7 Model accuracy comparison

表1 參數對比結果Table 1 Parameter comparison results
綜述,本文將特征金字塔網絡模塊引入到RFBnet網絡中,使神經網絡融合淺層和深層語義信息,實現了復雜施工環境下安全帽的精確識別。采用SE-Ghost 模塊,對網絡的主干網絡結構進行輕量化,大幅度降低了網絡的存儲空間。建立的SG-FP-RFBnet實現了高精度安全帽的識別,并滿足實時性的要求。
本文針對工業復雜環境下的安全帽佩戴檢測問題,構建FPN結構來增強網絡對于小目標檢測的能力,采用SG 模塊對網絡進行輕量化,從而建立輕量化高精度的安全帽佩戴檢測網絡SG-FP-RFBnet。通過實驗證明,該網絡在復雜施工場景下,能有效地實現安全帽佩戴識別,極大地縮小網絡的存儲空間,運算速度滿足實時要求,識別準確率相對其他網絡有一定的提高。因此,本文提出的SG-FP-RFBnet網絡具有較大的學術參考與應用價值。