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