王 灃
(福建省建筑科學(xué)研究院有限責(zé)任公司/福建省綠色建筑技術(shù)重點實驗室,福建 廈門 361000)
疫情期間,在特定環(huán)境下進行建筑施工或建筑檢測作業(yè),作業(yè)人員佩戴安全帽和口罩是標(biāo)配。比如在密閉的門窗幕墻施工和檢測現(xiàn)場,如果沒有佩戴安全帽和口罩,將會造成嚴(yán)重的安全隱患和疫情的傳播風(fēng)險。使用監(jiān)控攝像頭,通過人工智能算法實時監(jiān)控現(xiàn)場作業(yè)人員的安全帽和口罩佩戴情況具有很大意義和價值。
近年來,很多研究學(xué)者發(fā)布了大量基于人工智能的目標(biāo)識別檢測模型。比如R-CNN、Fast R-CNN 和Faster R-CNN 作為最為常見的Two-Stage 算法模型,最早是Ross Girshick 發(fā)布的。這種模型首先從基于特征提取的基礎(chǔ)上,采用一個神經(jīng)網(wǎng)絡(luò)生成候選區(qū)域,然后再對候選區(qū)域回歸來確定目標(biāo)的類別和位置,檢測速率可以達(dá)到5f/s。由Redmon 等提出的YOLO 方法,Liu 等提出 SSD 方法,是 One-Stage 算法,檢測速度達(dá)到了45 f/s。
2019 年施輝采用Image Pyramid 通過提取多種尺度的特征圖,結(jié)合YOLO v3 進行安全帽佩戴的檢測。2020 年王兵使用新的Target識別函數(shù)和GIoU 計算方法來改進YOLO v3 算法,訓(xùn)練檢測模型。
本文使用門窗幕墻實驗室監(jiān)控錄像數(shù)據(jù),以及網(wǎng)絡(luò)收集的口罩佩戴數(shù)據(jù)集和安全帽佩戴數(shù)據(jù),制作了安全帽和口罩佩戴的檢測數(shù)據(jù)集?;赮OLO v5 模型為主體,將多尺度的特征進行融合,用于進行類別判斷和位置識別;然后用數(shù)據(jù)集對Anchor 框進行統(tǒng)計,增加Anchor 框的個數(shù),通過預(yù)測偏移量,基于Anchor 框和gird 的sigmoid 偏移量;最后,采用多個分辨率的圖片進行模型訓(xùn)練,在預(yù)測的時候,輸入大尺寸的圖片或大分辨率的流媒體數(shù)據(jù),保證多尺寸的訓(xùn)練效果。試驗表明,改進的 YOLO v5 算法,不但有效提高了檢測速率,同時也能夠保證檢測精度。
傳統(tǒng)目標(biāo)檢測方法:滑動窗口分類法,耗時,操作復(fù)雜,需要手動生成大量樣本,檢測性能依靠的是分類器的性能和遍歷的性能。因此yolov1 實現(xiàn)了通過直接擬合坐標(biāo)位置x,y,物體寬和高w,h,置信度的算法。存在很明顯的缺陷坐標(biāo)位置x,y 可以任意值,也可以為沒有意義的負(fù)值,降低了訓(xùn)練速度和預(yù)測的準(zhǔn)確率。
因此,yolov2 改為偏移量預(yù)測:采用了anchor 機 制 (location prection) 局 部 預(yù) 測, 也就是坐標(biāo)位置x,y 是通過gird 預(yù)測,然后寬和高w,h 是依據(jù)anchor 的寬和高預(yù)測。yolov2 的 backbone 改 為 了 darknet19, 訓(xùn) 練 不同epoch 后的調(diào)整訓(xùn)練圖,也就是Multi-Scale Training,連接檢測頭部分取消了FC 的連接方式,改為卷積層??墒莥olov2 還是存在小目標(biāo)預(yù)測不準(zhǔn)確的問題。
隨著殘差網(wǎng)絡(luò)resnet 對backbone 性能的提升,yolov3 又有了新的性能提升。首先是因為resnet 出現(xiàn)了,網(wǎng)絡(luò)可以做的更深了,backbone更改為darknet53,然后檢測頭也更改為多尺度,統(tǒng)計數(shù)據(jù)得來的9 個尺度,32 倍下采樣,16 倍下采樣,8 倍下采樣,分別用3 個檢測頭來預(yù)測。
到 yolov4 在 bakbone 更 改 為 采 用CSPDarknet53,同時采用了一些技巧進行提升性能,首先數(shù)據(jù)增強采用了cutmix and mosaic,class label smoothing,Mosaic 就 是 合 并 4 張圖,起到了跨越上下進行標(biāo)檢測的作用,同時相當(dāng)于minibatch 的數(shù)量擴大了4 倍,同樣的GPU 內(nèi)存訓(xùn)練提升了性能。損失函數(shù)改為mish。網(wǎng)絡(luò)結(jié)構(gòu)采用了SPP、PAN、SAM 的網(wǎng)絡(luò),DropBlcok CmBN。Yolo v1-v3 (location prection)因為激活用的sigmod 區(qū)間是(0,1)開區(qū)間,yolov4 對此進行了改進。在sigmod乘上1.01。
Yolov5 按照網(wǎng)絡(luò)深度大小和特征圖寬度大小分為 Yolov5s、 Yolov5m、Yolov5l、Yolov5,本文采用了yolov5s 作為使用模型。Yolov5 的結(jié)構(gòu)分為input,backbone,Neck,預(yù)測層。
(1)在輸入端使用了Mosaic 的數(shù)據(jù)增強方式,隨機調(diào)用4 張圖片,隨機大小和分布,進行堆疊,豐富了數(shù)據(jù),增加了很多小目標(biāo),提升小物體的識別能力??梢酝瑫r計算4 張圖片,相當(dāng)于增加了Mini-batch 大小,減少了GPU 內(nèi)存的消耗。Yolov5 首先也可以通過聚類設(shè)定anchor大小,然后還可以在訓(xùn)練過程中,在每次訓(xùn)練時,計算不同訓(xùn)練集中的ahchor值。然后在預(yù)測時使用了自適應(yīng)圖片大小的縮放模式,通過減少黑邊,提高了預(yù)測速度。
(2)在Backbone 上的主要是采用了Focus 結(jié)構(gòu),CSPnet 結(jié)構(gòu)。
(3)在Neck 上采用了FPN 結(jié)構(gòu)和PAN結(jié)構(gòu)。
(4)在損失函數(shù)則使用了GIOU_Loss。
Yolov5 中 采 用 其 中 的 GIOU_Loss 做Bounding box 的損失函數(shù)。GIOU_Loss 中,增加了相交尺度的衡量方式,解決了無法反應(yīng)兩個框距離的遠(yuǎn)近,此時loss 函數(shù)是不可求導(dǎo)的,GIOU_Loss 就無法計算兩個框沒有交集的情況。但是無法解決預(yù)測框在目標(biāo)框內(nèi)部且預(yù)測框大小一致的情況,因為這時預(yù)測框和目標(biāo)框的差集都是相同的,因此,這三種狀態(tài)的GIOU 值也都是相同的。因此更改為采用效果更好的CIOU_Loss,考慮了邊界框中心點距離的信息,同時考慮邊界框?qū)捀弑鹊某叨刃畔ⅰ?/p>
非極大值抑制nms,用于推理過程中的預(yù)測框的選擇,yolov5 算法中,采用普通的nms的方式。本文將其更改為Diou_nms。使得NMS 得到的結(jié)果更加合理和有效。
本文的實驗數(shù)據(jù),是針對安全帽和口罩同時佩戴檢測的數(shù)據(jù),由于沒有的公開數(shù)據(jù)集,本文制作了一套安全帽和口罩佩戴的數(shù)據(jù)集,制作數(shù)據(jù)集主要包含了四個步驟:數(shù)據(jù)采集和整理、數(shù)據(jù)的預(yù)處理、數(shù)據(jù)的篩選和數(shù)據(jù)集標(biāo)注。
圖1 圖像標(biāo)記示意圖
本數(shù)據(jù)集的數(shù)據(jù)來源一個是建筑檢測實驗室的視頻監(jiān)控數(shù)據(jù)和工地施工現(xiàn)場視頻監(jiān)控數(shù)據(jù),以及網(wǎng)絡(luò)上采集的圖片數(shù)據(jù)。主要使用福建省建筑工程質(zhì)量檢測中心有限公司實驗室門窗幕墻檢測過程中,工人安裝門窗幕墻的視頻監(jiān)控數(shù)據(jù)。從監(jiān)控中分幀得到的圖片數(shù)據(jù),很多沒有檢測實體,將這些數(shù)據(jù)通過算法刪除。然后使用labelimg 工具對圖像進行標(biāo)記,標(biāo)注類別為佩戴口罩,佩戴安全帽,人臉三類,如圖1 所示。
選取20000 張標(biāo)注的圖片作為訓(xùn)練樣本,不同分辨率和大小的樣本均分,以確保不同尺寸的圖片都能得到充分的訓(xùn)練;另外選取1000 張圖片作為是測試數(shù)據(jù)集。
為了加快訓(xùn)練速度,快速達(dá)到訓(xùn)練收斂的目的。本次訓(xùn)練采用了網(wǎng)絡(luò)上的算力平臺。系統(tǒng)配置為GeForce RTX 2080 Ti x4 GPU,Intel(R)Core(TM) i7-9800X CPU,內(nèi)存16G,操作系統(tǒng)Ubuntu 19.10 5.3.0-42-generic GNU/Linux,CUDA 10.2。
第 3 節(jié)提出的 yolov5 改進算法,Ciou 和Diou_nms 對檢測效果有很大的提升,為了對比改進效果,按照檢測目標(biāo)的大小分為大中小三類,圖2 中列出了原始算法和yolov5 改進算法對三類圖片的檢測效果。
由圖2 可以看出,采用Ciou 和Diounms 算法的檢測準(zhǔn)確率均比原始算法檢測精度更高。
因為Yolov5 的模型大小僅為28m,可以方便的部署在小型嵌入式設(shè)備中,本文將其部署在jet nano 上便攜可移動。Nano 支持高分辨率攝像頭,可同時處理多個傳感器,支持常見的框架,如yolov5 模型使用的pytorch 框架。本文最終設(shè)備如圖3 所示。包含了攝像頭,無線網(wǎng)卡,主板,風(fēng)扇,sd 卡。檢測效果如圖4所示。
圖4 檢測效果示意圖
因此,改進 YOLO v5 算法能夠滿足高檢測速率和高準(zhǔn)確率。同時將模型部署在nano上是可行的。
綜上所述,本文提出了識別安全帽和口罩佩戴的基于改進YOLO v5 的檢測算法。使用門窗幕墻檢測實驗室現(xiàn)場和施工現(xiàn)場監(jiān)控視頻作為主要數(shù)據(jù)來源進行檢測試驗,通過Ciou,Diou_nms 等方法改進 YOLO v5 網(wǎng)絡(luò),并將其部署于nano 設(shè)備上,能夠滿足疫情期間,特定環(huán)境安全帽和口罩佩戴監(jiān)控需求。