趙恩銘,楊 松,羅 創(chuàng),劉光宇,朱曉亮
(1.大理大學(xué)工程學(xué)院,云南大理 671003;2.浙江工商大學(xué)信息與電子工程學(xué)院,杭州 310018)
目前我國正處在高速發(fā)展階段,人們生活水平的提高與工業(yè)基礎(chǔ)建設(shè)息息相關(guān),工業(yè)建設(shè)無疑需要更多的施工人員。施工人員的工作環(huán)境通常較為復(fù)雜,具有很多潛在的安全隱患。在疫情期間施工,安全帽能有效抵御外來物體的撞擊,一定程度上減少物體撞擊的力度,口罩能夠有效降低疫情傳播的風(fēng)險與施工作業(yè)時灰塵的吸入〔1〕。以人工的方式對施工人員進行監(jiān)管耗時耗力,且長時間的監(jiān)管可能會出現(xiàn)一定程度上的紕漏,因此采用深度學(xué)習(xí)技術(shù)輔助人工進行安全帽與口罩佩戴檢測,實現(xiàn)安全防護自動化,對保障施工單位安全生產(chǎn)具有重要意義。
口罩與安全帽檢測屬于目標檢測范疇,從2013年開始,隨著圖形處理器(graphics processing unit,GPU)和大數(shù)據(jù)的不斷發(fā)展〔2〕,迎來了基于深度學(xué)習(xí)的目標檢測時代。在深度學(xué)習(xí)中,摒棄了手工設(shè)計特征的方式,采用卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)〔3〕自主學(xué)習(xí)目標更深層次的特征,獲得了更好的目標分類效果,此時典型目標檢測算法有YOLO(You Only Look Once)系列〔4〕。截至目前,深度學(xué)習(xí)技術(shù)在安全帽與口罩的佩戴檢測方面已經(jīng)取得了許多的成功,但將深度學(xué)習(xí)應(yīng)用在具體施工作業(yè)現(xiàn)場輔助人工進行實時安全帽、口罩佩戴檢測的研究還比較少。為實現(xiàn)施工場所安全監(jiān)管自動化,本研究首先采用基于YOLOv5s算法的施工人員安全帽、口罩佩戴檢測方法,輔助監(jiān)管人員進行施工安全保障,達到了保障施工人員生命安全的目的;其次完成算法在嵌入式平臺Jetson Nano上的部署,方便設(shè)備在不同需求場合下進行安裝;最后通過TensorRT技術(shù)有效提升算法在嵌入式平臺上的檢測幀率。
1.1 YOLOv5s算法原理 本研究通過Netron工具進行YOLOv5s算法網(wǎng)絡(luò)架構(gòu)可視化,其結(jié)構(gòu)見圖1。按照算法的網(wǎng)絡(luò)架構(gòu)可以分為輸入端(Input)、Back Bone、Neck和預(yù)測(Prediction)4個部分〔5〕,主要組成模塊包含卷積層、池化層、BN層、激活層和全連接層。
圖1 YOLOv5s結(jié)構(gòu)
1.1.1 輸入端 輸入端主要進行以下數(shù)據(jù)處理:(1)采用Mosaic4數(shù)據(jù)增強方法,豐富了數(shù)據(jù)集場景,同時加強模型對小目標檢測的能力;(2)添加自適應(yīng)錨框計算,用來預(yù)測不同尺寸目標;(3)圖像自適應(yīng)縮放,在模型推理時使用圖像自適應(yīng)縮放減少圖像空白區(qū)域色調(diào)填充量,提高目標推理效率〔6〕。
1.1.2 Back Bone模塊與Neck模塊Focus結(jié)構(gòu)是YOLOv5算法的獨有結(jié)構(gòu),會將圖像進行切片,在保留原信息的情況下進行下采樣,起到了減小尺寸、增加網(wǎng)絡(luò)深度和降低計算量的作用〔7〕。
Neck部分主要由CSP2_X、FPN(feature pyramid networks)和PAN(path agreegation network)結(jié)構(gòu)組合而成。FPN與PAN構(gòu)成了雙重特征金字塔結(jié)構(gòu)〔8-9〕,加強網(wǎng)絡(luò)對不同尺寸特征的檢測。自上而下的特征金字塔是FPN結(jié)構(gòu)的特色,通過上采樣的方式將高層信息向下傳遞,進行特征融合。
1.1.3 輸出端 預(yù)測部分主要包含激活函數(shù)、非極大抑制、優(yōu)化器和損失函數(shù)的設(shè)置。YOLOv5s算法中間層和分類層的激活函數(shù)采用Leaky ReLU函數(shù)和Sigmoid函數(shù),非極大抑制階段采用DIOU_nms代替?zhèn)鹘y(tǒng)的NMS(non-maximum suppression)算法,優(yōu)化器選擇SGD(stochastic gradient descent),損失函數(shù)使用GIOU_Loss函數(shù)。
YOLOv5算法包含YOLOv5x、YOLOv5l、YOLOv5m、YOLOv5s 4個版本,各版本的區(qū)別是網(wǎng)絡(luò)的深度和寬度依次遞減,其不同算法的深度與寬度見表1。
表1 YOLOv5不同算法的網(wǎng)絡(luò)結(jié)構(gòu)
1.2 TensorRT加速算法原理TensorRT加速算法原理主要是利用層間融合與數(shù)據(jù)精度校準來實現(xiàn),其默認精度為FP32。TensorRT首先會將沒有用到的輸出層刪除,隨后進行垂直優(yōu)化與水平優(yōu)化。在垂直優(yōu)化階段,將卷積層、激活層等經(jīng)常使用的層合并為CBR(convolution,bias and ReLu);在水平優(yōu)化階段,原理與垂直優(yōu)化相同,同層同時運行的架構(gòu)則直接合并,在輸出時做分割,輸出到不同層去。本研究使用參數(shù)為:網(wǎng)絡(luò)批次處理量設(shè)置為2,轉(zhuǎn)換精度設(shè)置為FP16,類別總數(shù)設(shè)置為3,輸入圖像尺寸設(shè)置為640×640。
2.1 總體結(jié)構(gòu) 本研究包括數(shù)據(jù)集處理、檢測模型的構(gòu)建、嵌入式計算平臺的搭建3個部分,總體結(jié)構(gòu)見圖2。數(shù)據(jù)集的質(zhì)量對模型訓(xùn)練起到主導(dǎo)作用,本研究通過自建數(shù)據(jù)集獲得更好的目標檢測效果,并按照8∶2互斥拆分得到訓(xùn)練集和驗證集。模型構(gòu)建階段用來構(gòu)建安全帽、口罩佩戴檢測算法,同時采用標簽平滑訓(xùn)練技巧。嵌入式計算平臺的搭建階段方便設(shè)備在不同的地點進行部署,并同時采用TensorRT技術(shù)對模型進行優(yōu)化,優(yōu)化后的模型具有更高的目標檢測幀率,能夠更好地完成視頻流檢測任務(wù)。
圖2 總體結(jié)構(gòu)
2.2 硬件平臺 嵌入式平臺能夠方便安全帽、口罩佩戴檢測算法在多種實際場景下進行部署,具有成本低廉和實用性高等特點。硬件平臺見圖3,其中包含Jetson Nano開發(fā)板、免驅(qū)USB攝像頭和7寸顯示器各1個。安全帽、口罩佩戴檢測算法在Jetson Nano開發(fā)板上部署,通過對攝像頭采集的視頻流進行目標檢測,并將檢測結(jié)果反饋在小型顯示器上。
圖3 硬件平臺
2.3 數(shù)據(jù)集的構(gòu)建 大量的數(shù)據(jù)樣本能夠幫助神經(jīng)網(wǎng)絡(luò)進行更好的訓(xùn)練,本研究使用人工拍攝和互聯(lián)網(wǎng)下載等方式收集并篩選得到10 798張目標圖像,包含佩戴安全帽、佩戴口罩和無安全防護設(shè)備佩戴情況。使用LabelImg工具對每張圖像進行標簽標定后,獲得安全帽與口罩自建數(shù)據(jù)集,部分數(shù)據(jù)集可視化見圖4。在本研究自建數(shù)據(jù)集中,安全帽防護類別共3 241張圖像,占比為30.0%;口罩防護類別共3 217張圖像,占比為29.8%;無安全防護類別共4 340張圖像,占比為40.2%。
圖4 部分數(shù)據(jù)集可視化
3.1 實驗條件Jetson Nano定制系統(tǒng)為Ubuntu 18.04,選擇Python 3.6作為編譯器,采用Pytorch框架。GPU為NVIDIA Maxwell,擁有128個CUDA(compute unified device architecture)核心,處理器為四核Cortex-A57 64位處理器,并采用TensorRT技術(shù)對算法進行優(yōu)化。
3.2 評價方法 查準率用來描述數(shù)據(jù)集被預(yù)測為正樣本數(shù)據(jù)中實際預(yù)測正確的數(shù)據(jù)量占比。查全率又被稱為召回率,用來描述數(shù)據(jù)集所有正類別中被正確檢測出來的比率。
查準率的表達式如下:
其中,NTP是被判定為正確的個數(shù);NFP是被判定為錯誤的個數(shù)。
查全率一般指的是某類目標對應(yīng)的識別率,其表達式為:
其中,NFN為漏檢的個數(shù)。
平均精度(average precision,AP)屬于綜合類指標,它綜合了查準率和查全率兩項指標,是多分類模型中較為常用的評價指標。mAP為AP的平均值,表征一系列查全率下查準率的均值。
AP的表達式如下:
其中,P、r代表查準率和查全率。mAP的表達式如下:
其中n表示類別,N表示實驗總類別數(shù)。
F1分數(shù)的含義是查準率與查全率的調(diào)和平均值,其表達式為:
其中Precision、Recall分別表征查準率與查全率。
3.3 實驗結(jié)果與分析 圖5為模型的AP值和F1分數(shù)隨置信度變化曲線,能夠詳細展示數(shù)據(jù)集中各類別的分類效果。圖5(a)反映的是數(shù)據(jù)集中各類別的AP值和模型的mAP值,可以看出當(dāng)交并比(intersection over union,IOU)被設(shè)置為0.5時,佩戴安全帽類別的AP值為0.950、佩戴口罩類別的AP值為0.922、無任何防護設(shè)備佩戴類別的AP值為0.967,模型的mAP值為0.946。圖5(b)反映的是模型F1分數(shù)值與置信度的關(guān)系,當(dāng)置信度被設(shè)置為0.426時,模型取得最高的F1分數(shù)值為0.92。綜合上述指標可以得出,本次訓(xùn)練的模型能夠很好地完成安全帽、口罩佩戴檢測任務(wù)。
圖5 數(shù)據(jù)集的AP值與F1分數(shù)
YOLOv5s算法使用TensorRT技術(shù)加速后在簡單背景下對目標進行多組實驗的檢測效果見圖6。轉(zhuǎn)換得到的TensorRT模型采用FP16精度,置信度的值同樣設(shè)置為0.426,其中數(shù)字0代表正確佩戴安全帽,數(shù)字1代表無任何防護設(shè)備佩戴,數(shù)字2代表正確佩戴口罩??梢钥闯鯰ensorRT技術(shù)加速后算法在簡單背景下的目標檢測效果較好,包括將圖6中左下角的遮擋目標圖像檢測出來,使用TensorRT技術(shù)加速后算法的檢測幀率有大幅度提升,綜合幀率為12.83 FPS,滿足本次研究針對視頻流實時檢測需求。
圖6 使用TensorRT技術(shù)加速后模型簡單背景下檢測效果
本研究進一步驗證YOLOv5s算法使用TensorRT技術(shù)加速后在復(fù)雜背景下的檢測效果,結(jié)果見圖7。從圖7可以看出,當(dāng)目標處在非虛化背景中,算法依舊能夠很好地檢測出目標,檢測幀率為12.08 FPS。當(dāng)目標處在虛化背景中,可能會出現(xiàn)部分目標漏檢的情況,根本原因是背景虛化嚴重識別難度較大且圖像中出現(xiàn)的目標數(shù)過多,算法可能會出現(xiàn)部分漏檢的情況。由于實際場景拍攝中的虛化情況并不多見,所以模型滿足本研究對安全帽和口罩的檢測需求。
圖7 使用TensorRT加速后模型復(fù)雜背景下檢測效果
表2為不同結(jié)構(gòu)的YOLOv5算法在同一數(shù)據(jù)集上的識別效果,幀率為算法在Jetson Nano平臺上測得的近似值。從表2中可以看出,YOLOv5x算法具有最高的mAP值為0.956,幀率為0.52 FPS,權(quán)重大小為175.1兆,不利于后續(xù)算法的實時信息讀取。YOLOv5s算法mAP值為0.946,與其他算法非常接近,幀率為4.04 FPS,權(quán)重大小為13.8兆,算法的讀取速度最快,更加適合本研究對目標檢測算法實時性的需求。
表2 不同算法在同一數(shù)據(jù)集上的識別效果
本研究基于YOLOv5s算法實現(xiàn)安全帽、口罩佩戴檢測并采用標簽平滑訓(xùn)練技巧。通過實驗驗證,YOLOv5s算法能夠很好地滿足安全帽、口罩佩戴檢測任務(wù),mAP值達到0.946,使用TensorRT技術(shù)能夠有效提高算法在Jetson Nano上的檢測幀率,將算法檢測幀率從4.04 FPS提升至12.83 FPS,對實際應(yīng)用中的安全保護檢測具有重要意義。