秦子豪, 雷鳴*, 宋文廣, 張維
(1.長江大學城市建設學院, 荊州 434023; 2.長江大學計算機科學學院, 荊州 434023)
工程施工現場通常具有許多安全隱患,容易發生高空墜物、重物傷人等安全事故。安全帽作為一種防護裝備能夠減輕甚至避免作業人員在遭遇事故后所受到的傷害。但是實際工程現場面積往往較為寬廣,且人員的軌跡也十分分散,因此給安全帽佩戴的監管帶來了較大的難度[1]。
機器視覺作為一種替代人眼對圖像進行分析的技術,成為工程上常用的一種手段。傳統的機器視覺方法通常與機器學習相結合,通過人工提取特征進行模型的學習。李琪瑞[2]基于特征向量機對圖片進行分類,以此分析安全帽的佩戴情況。劉曉慧等[3]通過人體頭部的部分特征對分類器進行了訓練,得到了安全帽檢測的模型。Haar特征與霍夫變換相結合的技術路線[4]也被引入安全帽檢測任務中。但在施工現場中各方面情況較為復雜,受光照、視角以及遮擋等方面的因素影響,傳統算法的效果并不是令人滿意。
近年來,隨著計算機技術的飛速發展,新興的深度學習技術蓬勃發展。卷積神經網絡(convolutional neural networks, CNN)是深度學習領域中一種廣泛應用于目標檢測任務的方法,典型算法主要有YOLO系列[5-7]SSD[8-9]系列的單階段算法,這種算法往往檢測速度快,更適合于實際應用。Ren[10]提出經典的雙階段方法Faster R-CNN,這類方法通過生成一系列候選框,再對其進行分類與回歸,這一做法提升了檢測精度,但也造成更慢的檢測速度。
卷積神經網絡往往擁有龐大的計算量(floating point operations, FLOPs)和參數量(parameters, Params),因此其通常依賴于強算力的硬件,如GPU來完成訓練和推斷過程,但在施工場地中往往不會擁有高性能的計算硬件,而額外的購置會給生產企業帶來不必要的經濟負擔[11]。因此,設計一種輕量化的安全帽檢測模型對于實際的施工工程管理至關重要。CNN模型的輕量化成為近幾年研究的熱點,分組卷積[12]大大降低了卷積過程中所需要的計算量與參數量。深度可分離卷積(depthwise separable convolution, DSC)[13]在分組卷積的基礎上引入點卷積的操作提升了模型性能?;煜床僮鱗14]同樣在分組卷積的操作上增強了通道間的信息交流?,F將目前先進的輕量化方法引入Tiny-YOLO v3網絡中,并根據任務具體特點對網絡結構進行了優化,最終提出一種LT-YOLO網絡,該網絡在維持高性能基礎上,實現了極低的模型復雜度,為實際工程管理提供可用的卷積神經網絡模型。
Tiny-YOLO v3網絡作為YOLO v3的輕量化版本,有著較為簡單的特征提取結構,具體包含13個卷積層與6個最大池化層,同時Tiny-YOLO v3使用了兩個不同尺度的特征圖進行預測,網絡詳細結構如圖1所示。

圖1 Tiny-YOLO v3網絡結構Fig.1 The network structure of Tiny-YOLO v3
Tiny-YOLO v3網絡最終在所提取到的特征圖上通過映射關系,將輸入圖像劃分為S×S個網格。每個網格均預測3個預選框,同時輸出每個框所對應的類別概率和置信度,具體表示為
c=Pr(object)IOU
(1)
式(1)中:c為目標的置信度;Pr(object)為預選框包含目標的概率,若包含目標則Pr(object)=1,否則為0;交并比(intersection over union,IOU)為標注框標簽與預選框的交并比。最終每個網格預選框針對某一種類別的概率為
Pr(classi|object)×Pr(object)IOU=Pr(classi)IOU
(2)
式(2)中:Pr(classi|object)為對應網格的目標屬于某一類別的得分。最后Tiny-YOLO v3將預選框的各類別得分進行閾值篩選和排序,并最終采用非極大值抑制算法[15]得到最后的檢測結果。
盡管Tiny-YOLO v3是一種輕量化的網絡模型,但其模型大小仍然超過了30 MB,且因其網絡結構設計較為簡單,因此仍然有進一步輕量化和優化的空間?;赥iny-YOLO v3設計了一種新型的LT-YOLO網絡,LT-YOLO網絡在網絡結構和卷積方式上對Tiny-YOLO v3均進行了優化,最終在精度和輕量化之間取得了優良的平衡。
Tiny-YOLO v3的輸出層由兩部分組成,分別為13×13和26×26的最終特征圖,分別被應用于檢測大尺寸目標和中等尺寸目標,但由圖2可知,在實際工程所獲得的圖像數據里,工人及所佩戴的安全帽的尺度較為復雜,同時存在小、中、大尺寸,因此兩條支路的輸出層并不完全適用于安全帽檢測的工程管理任務。故在此基礎上,針對Tiny-YOLO v3增加了52×52的小目標檢測層,增強了其對工地復雜場景的應對能力。
Tiny-YOLO v3中所使用的卷積方式為標準卷積,會產生較為龐大的計算量和參數量,從而生成“臃腫”的卷積神經網絡模型。深度可分離卷積作為一種輕量化的卷積方式,由分組卷積和逐點卷積組成,其能夠大大降低模型的時間和空間復雜度。


圖2 實際工地圖像的目標分布Fig.2 Object distribution of actual site image
為了解決上述問題,設計了一種如圖4所示的R-DSC模塊。該模塊首先包含“DSC-Maxpool-DSC”的特征提取結構,同時第一個經過DSC處理后的特征圖通過插值進行上采樣,并復制一份特征圖后與自身在通道上進行疊加,最終與經過第二個DSC處理的特征圖完成殘差操作。

x為輸入特征圖圖3 殘差操作Fig.3 Residual operation

C為特征圖的深度圖4 R-DSC模塊結構Fig.4 The structure of R-DSC module
基于上述設計,提出了輕量化的安全帽檢測網絡LT-YOLO,其網絡結構如圖5所示。LT-YOLO由本文所提出的R-DSC模塊作為主要的特征提取結構,用于在盡量保證精度的前提下,降低網絡模型的復雜度。同時LT-YOLO網絡在增加了一條小尺寸目標檢測層的基礎上,將Tiny-YOLO v3中所有的3×3卷積均替換為了深度可分離卷積,此操作能夠極大地降低模型的參數量與計算量,提升網絡的輕量化程度,加快LT-YOLO在實際工地管理中的應用。

R-DSC3_DSW1代表第三個R-DSC結構中的第一個深度可分離卷積圖5 LT-YOLO網絡結構Fig.5 The network structure of LT-YOLO

f為使用一個全連接層的神經網絡結構圖6 SPP模塊和SE模塊Fig.6 SPP module and SE module
為了進一步增強網絡的性能,同時引入了空間金字塔池化(spatial pyramid pooling,SPP)模塊[17]和壓縮激活(squeeze-and-excitation,SE)模塊[18],它們的結構如圖6所示。SPP模塊通過利用不同大小的最大池化操作對輸入特征圖分別進行操作,且最終將結果在通道方向上進行堆疊。所設置的池化大小為5×5、9×9和13×13,步長均設置為1。SPP模塊通過構成一種空間上的池化金字塔實現了局部特征和全局特征的結合,更好地提高了特征圖的表達能力,使得特征圖所攜帶的信息更為豐富。SE模塊是一種注意力機制結構,輸入特征圖首先經過全局平均池化,并通過線性變換f得到一個加權張量,該張量最終與輸入特征圖基于廣播機制進行元素級別的相乘,最終實現特征圖每個通道的權重分配,使得特征圖各通道參數分配更為合理。SPP模塊與SE模塊的引入在空間和通道兩個方向上都提高了特征圖的表達能力,進一步增強了LT-YOLO網絡對工地安全帽佩戴情況的檢測性能。
為了驗證本文所提出的輕量化安全帽檢測網絡的可行性與實用性,本節介紹了數據集的來源,實驗的評價指標,以及實驗結果與分析。實驗環境如下:CPU為Intel(R) Core(TM) i7-8700K CPU@ 3.70 GHz,顯卡GTX1070Ti,Ubuntu 18.04操作系統,使用Pytorch深度學習框架。
采用公共數據集Hard Hat Workers,數據集中包含5 000張圖片,標簽分為“Helmet”和“Head”兩類,每張圖片按照PASCAL VOC格式進行了包圍框和類別的標注。本文將數據集中的圖片按照9∶1的比例隨機分為訓練集與測試集,最終訓練集4 500張圖片,測試集500張圖片。
為了定量分析各個網絡的性能,主要使用以下指標進行衡量。
(1)召回率(Recall):表示正確的預測框與真實標簽的比值,其計算公式為

(1)
式(1)中:TP為預測正確的樣本的數量;FN表示本來為正樣本、但預測為負樣本的數量;FP表示本來為負樣本、但預測為正樣本的數量。
(2)多類別平均精度mAP (mean average precision):mAP用來衡量網絡對所有目標類別的通用預測效果。當mAP的值越大時,則說明網絡模型的性能更加全面和先進,其計算公式為

(2)
式(2)中:AP為平均精度;其計算公式為

(3)

(4)
式中:p為精確率(precision);r為召回率;C為總類別;c為當前計算類別。
(3)預測速度(frames per second, FPS):每秒可以預測的圖像數量。
使用優化器SGD(stochastic gradient descent)進行訓練,初始學習率為0.001,動量設置為0.937,權重衰減為0.000 5,使用LambdaLR學習率調整策略。在訓練過程中,每完成一個epoch后將在測試集上進行一次預測。
圖7展示了本文所提出的LT-YOLO網絡在訓練過程中的loss值曲線,從圖7中可知網絡整體訓練過程優良,loss值逐漸下降,且在250個epoch后基本趨于穩定。圖8展示了LT-YOLO在完成每輪訓練后在測試集上的mAP值和Recall值,初期網絡因為訓練效果欠佳,故性能有限,但隨著訓練輪數的增加,在150個epoch后網絡的檢測能力逐步收斂,并維持在一個較高的水平。

圖7 LT-YOLO訓練loss曲線Fig.7 The loss curve of LT-YOLO during training

圖8 LT-YOLO訓練過程中測試集的mAP與Recall曲線Fig.8 The mAP and Recall curves of LT-YOLO on test dataset during training
為了驗證針對LT-YOLO所使用模塊的必要性,首先設計了如表1所示大量的消融實驗。從表1中可以看出,當R-DSC模塊、SE模塊、SPP模塊和三層輸出設計同時采用時,網絡在輕量化程度和性能之間取得了最好的平衡,mAP達到了59.3,Recall為59.4%。盡管只采用后三種策略時網絡的檢測性能最好,mAP和Recall分別為60.4和60.5%,但因為沒有應用本文所提出的R-DSC輕量化模塊,其FLOPs和Params分別為最高的13.1 G和10.3 M,模型大小更是達到了41.4 MB,相比較本文所提出的網絡,分別為其相應指標的3.9倍、3.0倍和2.9倍。僅僅使用R-DSC模塊時,模型達到了最低的計算量和參數量,但其精度有較大的犧牲,mAP和Recall分別低于本文網絡1.5個點和1.1%。不采用三層輸出設計時的模型復雜度與本文模型相當,但mAP和Recall均有下降。因此大量的消融實驗證明,本文所采用的網絡設計策略均缺一不可,使得模型最終在維持高檢測性能的基礎上,擁有較低的時間和空間復雜度,使得其能夠更好地部署在實際工程管理應用中。
為了進一步驗證LT-YOLO的性能,將其與其他經典的卷積神經網絡進行了對比,包含同樣為輕量化網絡的Tiny-YOLO v3,以及經典的單階段模型SSD300和雙階段模型Faster R-CNN,對比結果如表2所示,網絡名括號內表示模型所采用的骨干網絡。

表1 消融實驗

表2 與經典網絡性能對比
從表2可知,本文所提出的LT-YOLO在性能上達到甚至超過了已有的先進網絡,同時在模型的參數量和計算量上遠遠優于它們。Tiny-YOLO v3和Faster R-CNN的mAP值分別高于LF-YOLO網絡0.9個點和1.6個點,但其模型大小分別為LT-YOLO 的2.5倍和11.8倍,FLOPs分別為其2.9倍和26.8倍。與SSD網絡相比,LT-YOLO的模型大小雖然僅為其14.6%,但mAP仍優3個點。與先進網絡相比,本文的LT-YOLO在輕量化程度上有非常大的優勢,同時在檢測性能上也有較強的競爭力,最終LT-YOLO的部分檢測結果如圖9所示。從圖9可知,LT-YOLO在面對各種工程場景時都能較好地實現檢測目標,在目標較小,或較為密集,以及有遮擋的情況下,均有令人滿意的檢測效果。

helmet為檢測到安全帽;head為未戴安全帽;數值表示預測的置信度圖9 LT-YOLO部分檢測結果Fig.9 The prediction results of LT-YOLO
提出了一種針對在施工現場中工程管理任務的LT-YOLO網絡,主要用于檢測施工人員安全帽的佩戴情況。經過理論分析和實驗驗證,得到以下結論。
(1)所提出的R-DSC特征提取模塊在提取有效特征圖的基礎上,能夠極大地降低模型地參數量與計算量。
(2)基于R-DSC所提出的LT-YOLO網絡在公共數據集Hard Hat Workers取得了59.3 mAP和59.4% Recall的成績,在計算量與參數量分別為Tiny-YOLO v3的35%和40%的前提下取得了幾乎一致的結果。
(3)LT-YOLO網絡能夠降低工程管理中的硬件成本預算,更具有實際工程應用價值。