趙冬
(國(guó)華投資有限公司河北分公司 河北省張家口市 075000)
吸煙嚴(yán)重危害著全世界人民的生命財(cái)產(chǎn)安全,吸煙引發(fā)的火災(zāi)和癌癥不計(jì)其數(shù)[1]。近年來(lái),人工智能和深度學(xué)習(xí)發(fā)展迅速。計(jì)算機(jī)視覺(jué)也已應(yīng)用于交通安全、危險(xiǎn)物品檢測(cè)和公共環(huán)境安全領(lǐng)域[2]。傳統(tǒng)的煙霧報(bào)警、人工巡檢等吸煙行為檢測(cè)方式,不僅耗費(fèi)人力財(cái)力,而且效果不佳。本文提出了一種基于YOLOv5s 算法的檢測(cè)方法,以實(shí)現(xiàn)對(duì)吸煙行為更好的實(shí)時(shí)檢測(cè)。由于YOLOv5s 算法對(duì)小目標(biāo)檢測(cè)并不友好,所以本文提出一種改進(jìn)的YOLOv5s 算法,通過(guò)K-means算法和增加檢測(cè)層的方法進(jìn)行吸煙行為檢測(cè)。
本文組織結(jié)構(gòu)如下:第二節(jié)詳細(xì)描述了YOLOv5s 目標(biāo)檢測(cè)原理;第三節(jié)介紹了改進(jìn)的YOLOv5s+檢測(cè)方法;第四節(jié)給出了本文試驗(yàn)結(jié)果分析;第五部分對(duì)全文進(jìn)行總結(jié)。
YOLOv5s 是YOLOv5 系列中最小的網(wǎng)絡(luò)。如圖1所示,YOLOv5s 由四部分組成:輸入部分、骨干部分、頭部部分和檢測(cè)部分。
圖1:YOLOv5s 網(wǎng)絡(luò)結(jié)構(gòu)
Input 部分主要包括數(shù)據(jù)增強(qiáng)、自適應(yīng)錨框計(jì)算、自適應(yīng)圖像縮放。初始錨點(diǎn)是先驗(yàn)學(xué)習(xí)的基礎(chǔ),針對(duì)數(shù)據(jù)集它們是[10,13,16,30, 33,23][30,61, 62,45, 59,119][116,90, 156,198, 373,326]。設(shè)置合適的錨點(diǎn)會(huì)得到更高的IOU(Intersection over Union,是一種測(cè)量在特定數(shù)據(jù)集中檢測(cè)相應(yīng)物體準(zhǔn)確度的一個(gè)標(biāo)準(zhǔn)),有助于提高模型的準(zhǔn)確率。在訓(xùn)練過(guò)程中,先驗(yàn)學(xué)習(xí)模塊可以更好地學(xué)習(xí)適應(yīng)不同待測(cè)物體的形狀信息。
在骨干部分,YOLOv5s 使用了CSPNet(Cross Stage Partial Networks),主要用于解決較大卷積層中梯度重復(fù)的問(wèn)題?;贒ensnet 的思想,包括Partial Dense Block 和Partial Transition Block。Partial Dense Block 主要用于添加梯度路徑,平衡每一層的計(jì)算,減少內(nèi)存消耗。Partial Transition Block 主要用于增加不同梯度層的區(qū)分度。此外,YOLOv5 系列還加入了其他YOLO 版本所沒(méi)有的Focus 結(jié)構(gòu)[3-5]。
頭部部分位于主干部分和檢測(cè)部分之間,用于提取融合特征。如圖2所示,頭部使用特征金字塔網(wǎng)絡(luò)(FPN)和感知對(duì)抗網(wǎng)絡(luò)(PAN)結(jié)構(gòu)來(lái)實(shí)現(xiàn)上采樣和下采樣過(guò)程。FPN 是自頂向下的,它使用上采樣的方法來(lái)傳遞和融合信息,得到預(yù)測(cè)的特征圖。PAN 使用自上而下的特征金字塔。FPN 主要用于自頂向下的特征卷積,使用插值在較高的特征層上進(jìn)行2 次從19*19 到38*38 的上采樣,同時(shí)特征通過(guò)1x1 卷積進(jìn)行水平連接,并改變底層通道數(shù)在較低的要素圖層上。與原始圖像金字塔相比,特征金字塔可以減少推理時(shí)間,減少內(nèi)存占用,并且不需要處理不同分辨率的圖像。
圖2:頭部部分
檢測(cè)部分主要包括Bounding box 的損失函數(shù)和非極大值抑制(NMS)。損失函數(shù)為 GIOU_Loss[6]。GIOU_Loss 的公式是(1)。GIOU_Loss 有效解決了預(yù)測(cè)幀與真實(shí)幀不相交時(shí),預(yù)測(cè)幀與真實(shí)幀的距離信息丟失,IOU 為零的問(wèn)題。
針對(duì)YOLOv5s 網(wǎng)絡(luò)模型,增加了一個(gè)基于YOLOv5s 算法的小目標(biāo)檢測(cè)層。針對(duì)香煙的小目標(biāo),首先基于K-means算法得到合適的anchors。K-means算法的輸入為x 個(gè)樣本的數(shù)據(jù)樣本集。樣本集中的每個(gè)樣本都是平面上的一個(gè)點(diǎn),相似特征的樣本被算法聚類為一個(gè)類別。該算法首先隨機(jī)選擇k 個(gè)中心點(diǎn),計(jì)算該點(diǎn)與每個(gè)點(diǎn)最接近所有中心點(diǎn)的中心點(diǎn)的距離,將該點(diǎn)歸類為該中心點(diǎn)所代表的簇Ci。經(jīng)過(guò)一次迭代,得到簇類。對(duì)于每個(gè)聚類,然后重新計(jì)算每個(gè)點(diǎn)的中心點(diǎn)的距離,并重新找到離自己最近的中心點(diǎn),直到前兩次迭代中沒(méi)有聚類變化,然后將樣本分配到相同的中心歸為一類。最后得到k 類。使用這種方法,本文可以將6565 個(gè)樣本聚類為12個(gè)類,并將這12 個(gè)類作為YOLOv5s 的初始錨點(diǎn)值。
實(shí)驗(yàn)環(huán)境使用Ubuntu16.04 操作系統(tǒng),選擇Pytorch 架構(gòu),使用GeForce GTX 2080Ti 顯卡進(jìn)行計(jì)算。具體實(shí)驗(yàn)配置見(jiàn)表1。
表1:實(shí)驗(yàn)環(huán)境配置
本文通過(guò)網(wǎng)絡(luò)爬蟲(chóng)、視頻截圖等方式獲取了6565 張圖片,如表2所示,訓(xùn)練集5664 張,驗(yàn)證集701 張,測(cè)試集200 張。
表2:實(shí)驗(yàn)數(shù)據(jù)集
在網(wǎng)絡(luò)模型訓(xùn)練期間,epochs 為 300,batch-size 為32,初始學(xué)習(xí)率(Ir0)為0.01。True Positives(TP)、False Positives(FP)、False Negatives(FN)、True Negatives(TN),判斷訓(xùn)練結(jié)果的參數(shù)指標(biāo)是Accurancy、Precision、Recall、F1 score、AP。F1 分?jǐn)?shù)定義為準(zhǔn)確率和召回率的調(diào)和平均值。F1 是算術(shù)平均值除以幾何平均值。F1的公式為(2)。
精度是所有TP、TN、FP 和FN 的TP 和TN 比例。Accuracy的公式為(3)。
Precision 是所有TP 和FP 的TP 比例。Precision 的公式為(4)。
Recall 是所有TP 和FN 的TP 比例。Recall 的公式是(5)。
AP 衡量每個(gè)類別中訓(xùn)練模型的質(zhì)量。計(jì)算方法是準(zhǔn)確度之和除以負(fù)數(shù)。AP 的公式為(6)。
實(shí)驗(yàn)結(jié)果Precision 的值為0.88,Recall 的值為0.87。改進(jìn)后的算法AP 提高了6.7%。 改進(jìn)后的YOLOv5s+算法性能更好,可以在200 個(gè)測(cè)試集中正確識(shí)別目標(biāo)。
如圖3所示,YOLOv5s+算法訓(xùn)練完成后,得到一個(gè)權(quán)重模型,可以處理視頻或圖片,可以實(shí)時(shí)標(biāo)記香煙目標(biāo)。
圖3:YOLOv5s+測(cè)試結(jié)果
在本文中,為了更好地檢測(cè)公共場(chǎng)所的吸煙行為,提出了基于K-means算法和小目標(biāo)檢查層的YOLOv5s+算法。在這個(gè)YOLOv5s+算法中,制作了數(shù)據(jù)集。Detect部分增加了小目標(biāo)檢測(cè)層,訓(xùn)練后的模型對(duì)香煙小目標(biāo)的識(shí)別準(zhǔn)確率高達(dá)92.3%。該算法可以實(shí)時(shí)處理攝像頭反饋的數(shù)據(jù),并將處理結(jié)果輸出給監(jiān)管者。所以主管可以更好地進(jìn)行人力洗牌,大大節(jié)省人力資源。改進(jìn)后的算法具有很好的應(yīng)用前景,針對(duì)其他的識(shí)別場(chǎng)景也同樣適用。