楊 雪 陳 剛
中通服咨詢設計研究院有限公司
近年來,隨著我國基礎設施的大量建設,工地上工人的安全問題也日益凸顯。據(jù)統(tǒng)計,在工地安全事故中,由于工人未正確佩戴安全帽,高空墜物撞擊引起的死傷事故時有發(fā)生。為改善這一情況,在工地上對工人進行安全帽的檢測,對保障工人的生命安全具有重要意義。
目前,許多專家學者提出各種方法對工地上工人是否佩戴安全帽進行檢測。有人提出基于ResNet50-SSD的安全帽佩戴狀態(tài)檢測,但該方法精度欠缺,誤報率較高。有人提出的基于改進Tiny-yolov3方法能對工人是否佩戴安全帽進行識別,但是受人體復雜運動的影響,導致檢測率也較低。還有人提出基于改進Yolov4-Tiny網(wǎng)絡模型的安全帽檢測,但受光線、目標大小因素影響較大,準確率同樣有所欠缺。且以上系統(tǒng)都不具備便于移動的特點。
針對以上問題,考慮到施工環(huán)境的復雜性,本設計提出一種基于YOLOv4的移動端安全帽檢測系統(tǒng),在公開數(shù)據(jù)集上訓練YOLOv4網(wǎng)絡,將訓練好的權重網(wǎng)絡移植到嵌入式移動端平臺,最終實現(xiàn)安全帽的佩戴檢測。
YOLOv4相較于YOLO系列的前幾代版本,其速度更快,精度更高。這得益于YOLO網(wǎng)絡結(jié)構(gòu)的不斷優(yōu)化與改進。YOLO目標檢測算法衍生到第四代版本YOLOv4,其網(wǎng)絡結(jié)構(gòu)主要由主干特征提取網(wǎng)絡(CSPDarknet53),空間金字塔池(SPP),路徑聚合網(wǎng)絡(PANet),YOLOv3檢測頭組成。
(1)CSPDarknet53
CSPDarknet53是在YOLOv3主干提取網(wǎng)絡Darknet53基礎上,借鑒CSPNet(Cross Stage Paritial Network)的經(jīng)驗而形成的新的網(wǎng)絡結(jié)構(gòu)。該結(jié)構(gòu)共有72層卷積層。包含5個CSP模塊,每個CSP模塊前面的卷積核大小都是3*3,步長為2。因此可以起到下采樣作用。CSPNet模塊結(jié)構(gòu)如圖1所示?;A層的特征映射按照通道維度拆分為兩部分,然后通過跨階段層次結(jié)構(gòu)進行拼接。該結(jié)構(gòu)可以獲取更豐富的梯度融合信息以增強網(wǎng)絡的學習能力,同時在保證精度的情況下降低計算量。
圖1 CSP模塊
(2)空間金字塔池
空間金字塔池(SPP)結(jié)構(gòu)能夠?qū)崿F(xiàn)局部特征和全局特征的融合,有效增加感受野,豐富最終特征圖的表達能力。YOLOv4的SPP結(jié)構(gòu)如圖2所示,在輸入圖像大小為608*608的情況下,經(jīng)過CSPDarknet53特征提取網(wǎng)絡,得到最終特征圖大小為19*19。對該特征圖層進行最大池化(maxpool),卷積核大小分別為13*13、9*9,5*5、1*1。池化時采用padding操作,移動步長為1,以保證池化后的特征圖大小仍為13*13。然后將不同池化大小得到的特征圖進行拼接。
圖2 SPP結(jié)構(gòu)
(3)路徑聚合網(wǎng)絡
YOLOv4中采用路徑聚合網(wǎng)絡(PANet)替換YOLOv3中的特征金字塔網(wǎng)絡(FPN)進行多通道特征融合。FPN算法中,淺層的特征傳遞到頂層要經(jīng)過幾十甚至一百多個網(wǎng)絡層,顯然路徑太長會丟失部分淺層特征。在PANet中,淺層信息從P2沿著自下而上的路徑增強傳遞到頂層,該自下而上的路徑增強的層數(shù)不到10層,極大縮短較低層與頂層之間的信息路徑,能較好地保留淺層特征信息,使得網(wǎng)絡學習到更加復雜以及具有不變性的特征。如圖3所示。
圖3 PANet結(jié)構(gòu)
圖片輸入到網(wǎng)絡后會分成S*S個網(wǎng)格,每個網(wǎng)格產(chǎn)生B個候選框,每個候選框最終會得到相應的bounding box。在這過程中,需要利用損失函數(shù)確定具體的bounding box計算誤差更新權重。YOLOv4的損失函數(shù)LOSS由回歸損失Lciou,置信度損失Lconf,分類損失Lclass三部分構(gòu)成,具體如公式(1)所示。
數(shù)據(jù)集采用roboflow上的開源安全帽數(shù)據(jù)集,該數(shù)據(jù)集是由東北大學提供,共包含7035張圖片。均在工地拍攝采集。本設計只區(qū)分工作場所中遵守安全規(guī)則的工人和不遵守安全規(guī)則的工人,因此標注安全帽(helmet)和人頭(head)兩類標簽。訓練集圖片劃分5628張,測試集圖片劃分1407張。該數(shù)據(jù)集的示例如圖4所示。
圖4 示例圖片
該YOLOv4網(wǎng)絡模型的訓練采用Darknet深度學習框架,訓練平臺為GPU。GPU配置信息為GeForce GTX 1080 Ti,擁有11GB GDDR5X顯存。網(wǎng)絡訓練輸入圖片大小為416*416,每次迭代訓練圖片64張,分16批次。網(wǎng)絡其他參數(shù)配置如表1所示,在網(wǎng)絡達到訓練次數(shù)為20000次時,學習率調(diào)整為0.0001,在達到訓練次數(shù)為30000時,學習率為0.00001。
表1 網(wǎng)絡模型訓練參數(shù)配置表
將安全帽數(shù)據(jù)集制作完成與網(wǎng)絡參數(shù)配置完成后,在Darknet深度學習框架下訓練YOLOv4網(wǎng)絡。將訓練過程中的日志保存,根據(jù)保存的日志信息繪制損失值變化。損失值是衡量預測值與真實值之間的距離,損失值計算如公式(1)所示,其值越小,表示網(wǎng)絡的預測值越接近真實值。訓練過程損失值變化如圖5所示。隨著網(wǎng)絡迭代次數(shù)的增加,損失值不斷減少,在網(wǎng)絡迭代到35000次后,損失值穩(wěn)定在0.3左右,模型已經(jīng)開始收斂,直至迭代到38000次,并保存迭代38000次后的網(wǎng)絡權重值。最終網(wǎng)絡的mAP為88.2%。
圖5 訓練過程損失函數(shù)
Jetson Nano嵌入式平臺是NVIDIA公司發(fā)布的一款主打低功耗的人工智能計算機。該平臺采用CPU+GPU異構(gòu)結(jié)構(gòu),CPU為四核Cortex-A57,GPU采用規(guī)模最小的Maxwell架構(gòu)顯卡,擁有128個CUDA單元。同時該平臺還擁有4GB LPDDR4內(nèi)存。該嵌入式平臺可以提供472 GFLOPS的浮點運算能力,能并行運行神經(jīng)網(wǎng)絡,因此,該平臺可以運用到圖像分類、目標識別、分割、語音處理等領域。為了快速構(gòu)建AI項目,NVIDIA公司為該平臺提供一套開發(fā)者套件JetPack,該套件中包括Ubuntu18.04操作系統(tǒng)和TensorRT。可以根據(jù)開發(fā)者需要安裝Darknet、Caffe等深度學習框架進行AI項目的開發(fā)。
將訓練完之后的網(wǎng)絡權重文件部署到Jetson Nano移動端平臺上,配置該平臺深度學習環(huán)境。進行安全帽識別的實驗,如圖6所示。
圖6 在Jetson Nano嵌入式平臺實現(xiàn)場景
圖7展示了安全帽部分測試集在Jetson Nano移動端平臺的檢測效果,選取的場景包含檢測角度不佳、目標過小、目標密集等不同的復雜場景。從檢測效果來看,YOLOv4網(wǎng)絡在嵌入式平臺表現(xiàn)出良好的檢測性能,能夠準確區(qū)分工人是否正確佩戴安全帽,預測一幀圖片也只需0.33s,能夠滿足工地實時性要求。
圖7 檢測結(jié)果
本設計提出的基于Yolov4的檢測方法mAP達88.2%,相較于文獻提出的基于ResNet-SSD算法的mAP,本方法mAP提高了9.7%;相較于文獻提出的基于改進yolov3-Tiny算法的mAP,本方法mAP提高了44%;相較于文獻提出的基于改進yolov4-Tiny算法的mAP,本方法mAP提高了8.7%,準確率達到一定的提升,結(jié)果如表2所示。且其他文獻提出的安全帽檢測系統(tǒng)都是基于PC端實現(xiàn),不能較好落地,本設計不僅在PC端實現(xiàn)安全帽檢測,也成功移植嵌入式平臺,實現(xiàn)每幀圖像0.33s的檢測速度,也為后續(xù)目標識別算法的移植提供參考。
表2 各算法檢測結(jié)果比較
本設計提出一種基于嵌入式平臺的安全帽檢測系統(tǒng),便于移動與裝卸。試驗結(jié)果表明,YOLOv4網(wǎng)絡的損失值穩(wěn)定在0.3左右,mAP達到88.2%。將網(wǎng)絡部署在Jetson Nano嵌入式平臺上,該平臺能夠準確實時地識別工人是否佩戴安全帽。該系統(tǒng)可用于施工場地工人安全帽佩戴情況的檢測。