王彥生,曹雪虹,焦良葆,2,孫宏偉,高 陽
(1.南京工程學(xué)院 人工智能產(chǎn)業(yè)技術(shù)研究院,南京 211167;2.江蘇省智能感知技術(shù)與裝備工程研究中心,南京 211167)
如今,隨著用電負(fù)荷的不斷增加,為了保證供電的可靠性,發(fā)電廠的安全運行至關(guān)重要[1]。大多數(shù)發(fā)電廠內(nèi)的設(shè)備儀器日常養(yǎng)護(hù)需要使用各種潤滑油,這些潤滑油遇到明火極易引起火災(zāi),從而引發(fā)重大安全事故。因此需要規(guī)范約束工作人員的日常吸煙行為,對違規(guī)吸煙行為進(jìn)行監(jiān)測警告。在日常生活中,我們通常依靠煙霧報警器來監(jiān)測吸煙行為,該方法依靠傳感器技術(shù)對空氣進(jìn)行實時采樣,盡管其檢測精度較高,但該方法無法準(zhǔn)確判斷是人為原因還是其他原因?qū)е聢缶?,滿足不了實時控?zé)煹囊骩2]。因此,為了及時發(fā)現(xiàn)電廠中有無人員違規(guī)吸煙,方便管理者對電廠內(nèi)人員進(jìn)行高效的管理,有必要采用有效的目標(biāo)檢測方法,通過視頻監(jiān)控電廠工作環(huán)境下的違規(guī)吸煙行為,防止發(fā)生火災(zāi)火險。
近年來,深度學(xué)習(xí)在目標(biāo)檢測領(lǐng)域的應(yīng)用愈發(fā)廣泛[3]。目前基于深度學(xué)習(xí)的目標(biāo)檢測方法主要分為兩類,一類是以R-CNN(region-based convolutional neural network)、Fast R-CNN(Fast Region-based Convolutional Network)、Faster R-CNN(Faster Region-based Convolutional Network)等為典型代表的雙階段目標(biāo)檢測算法[4],這種檢測方法的主要思路是先預(yù)設(shè)一個可能包含待檢測物體的預(yù)選框,再通過卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行樣本分類計算;另一類則是以YOLO(You Only Look Once)系列、SSD[5](Single shot multi-box detector)等為典型代表的單階段目標(biāo)檢測算法[6],與雙階段目標(biāo)檢測算法不同的是,這種方法不用生成預(yù)選框,而是直接在網(wǎng)絡(luò)中提取特征值來分類目標(biāo)和定位,因此這種算法檢測速度快,檢測精度也很高[7]。目前對于吸煙行為檢測的目標(biāo)檢測方法主要以Faster R-CNN和YOLO系列為基礎(chǔ),文獻(xiàn)[8]通過檢測人臉,在人臉檢測的基礎(chǔ)上再利用Faster R-CNN算法檢測煙支,從而提高檢測速度并降低誤檢率。文獻(xiàn)[9]通過改進(jìn)YOLOv3中的損失函數(shù)實現(xiàn)檢測速度和精度的提升,但該算法模型復(fù)雜度較高,缺乏應(yīng)用價值。文獻(xiàn)[10]通過YOLOv4檢測算法和人體關(guān)鍵點結(jié)合進(jìn)行吸煙檢測以提高檢測精度,盡管其在近距離條件下效果較好,但是當(dāng)人距離監(jiān)控較遠(yuǎn)時誤測嚴(yán)重。
針對吸煙行為檢測精度較低的問題,本文以YOLOv5 6.0版本中的YOLOv5s算法為基礎(chǔ),通過修改網(wǎng)絡(luò)結(jié)構(gòu)和添加相關(guān)模塊,在保持網(wǎng)絡(luò)輕量化的同時,有效提升吸煙行為檢測精度,具有較高的實用價值。
整個YOLOv5網(wǎng)絡(luò)可以分為4個部分,分別是輸入端、骨干網(wǎng)絡(luò)Backbone、強特征提取網(wǎng)絡(luò)Neck以及預(yù)測網(wǎng)絡(luò)Prediction[11]。YOLOv5 6.0版本的具體結(jié)構(gòu)如圖1所示。
YOLOv5 6.0版本的輸入端與之前的5.0版本一樣,采用Mosaic數(shù)據(jù)增強、自適應(yīng)錨框計算和自適應(yīng)圖片縮放。
6.0版本在主干網(wǎng)絡(luò)Backbone中與5.0版本有所不同,6.0版本使用一個卷積(Convolution,Conv)替換了5.0版本Backbone中的Focus層,其目的是為了方便模型導(dǎo)出。此外還使用了CSP結(jié)構(gòu),簡稱C3模塊,在YOLOv5中有兩種CSP結(jié)構(gòu),CSP1_X結(jié)構(gòu)應(yīng)用于Backbone主干網(wǎng)絡(luò),另一種CSP2_X結(jié)構(gòu)則應(yīng)用于Neck中,CSP1_X將輸入分為兩個分支,一個分支先通過CBS(Conv+BN(Batch Normalization)+SiLU(Sigmoid Weighted Liner Unit)),再經(jīng)過多個殘差結(jié)構(gòu)(Bottleneck×N),另一個分支則只進(jìn)行CBS,然后兩個分支進(jìn)行Concat,最后再進(jìn)行一個CBS。CSP2_X與CSP1_X唯一的不同是CSP2_X用CBS替換了CSP1_X中的殘差結(jié)構(gòu)。對比普通的CBS,CSP結(jié)構(gòu)分為兩個支路,有支路就意味著特征的融合,而Concat就可以更好的把不同支路的特征信息保留下來,因此CSP的設(shè)計可以提取到更為豐富的特征信息。在Backbone的最后采用SPPF(Spatial Pyramid Pooling Fast)的結(jié)構(gòu),即空間金字塔池化,SPPF結(jié)構(gòu)將輸入串行通過多個MaxPool層,從而融合不同感受野的特征圖,豐富特征圖的表達(dá)能力,進(jìn)一步提高運行速度。
在網(wǎng)絡(luò)的Neck部分,沿用了FPN(Feature Pyramid Network)+PAN(Path Aggregation Network)的結(jié)構(gòu),F(xiàn)PN結(jié)構(gòu)以自頂向下的方式構(gòu)建出高級語義特征圖,PAN又加入了自底向上的路線,彌補并加強了定位信息[12]。此外,使用CBS結(jié)構(gòu)來進(jìn)一步加強網(wǎng)絡(luò)特征融合。
預(yù)測網(wǎng)絡(luò)Prediction的工作就是對特征點進(jìn)行判斷,判斷特征點是否有物體與其對應(yīng)。
UC Berkeley和Google基于Transformers結(jié)構(gòu)設(shè)計了一種結(jié)構(gòu)簡單、功能強大的Backbone,名為BoTNet[13],其改變是將ResNet(Residual Network)中的3×3卷積替換為多頭注意力層(Multi-Head Self-Attention,MHSA),其具體結(jié)構(gòu)如圖2(a)(b)所示,具體的MHSA層如圖3所示。
圖3 MHSA層網(wǎng)絡(luò)結(jié)構(gòu)
由上圖3可知,MHSA的輸入尺寸為H×W×d,分別表示輸入特征矩陣的高寬以及單個token的維度,token的數(shù)量即為H×W。首先是初始化兩個可學(xué)習(xí)的參數(shù)向量Rh、Rw,分別表示高度和寬度不同位置的位置編碼,然后將它們通過廣播機(jī)制加起來,即位置的編碼為Rhi+Rwj的兩個d維向量相加,這樣做將H×W×d個編碼簡化為(H+W)×d。此外,位置編碼也不是直接加到輸入上,而是與query矩陣進(jìn)行矩陣乘法得到Attention的一部分,從而可以從多個維度提煉特征信息,最后將其與query和key算出來的加和后經(jīng)過 softmax得到最終的Attention。
卷積神經(jīng)網(wǎng)絡(luò)YOLOv5通過堆疊卷積層來放大感受野,進(jìn)而增強網(wǎng)絡(luò)性能,但是卷積神經(jīng)網(wǎng)絡(luò)只關(guān)注圖像局部,無法兼顧圖像全局。為此本文將YOLOv5s網(wǎng)絡(luò)Backbone和Neck中C3模塊的3×3卷積替換為MHSA,使YOLOv5s網(wǎng)絡(luò)可以關(guān)注圖像全局,并且能夠基于相同的注意力機(jī)制學(xué)習(xí)到不同的行為,提高算法的學(xué)習(xí)能力,進(jìn)而提高檢測精度[14]。由于Backbone和Neck中C3模塊Bottleneck結(jié)構(gòu)不一樣,因此圖4分別展示了兩個部分具體的替換過程,將替換后的結(jié)構(gòu)命名為BottleneckTransformer,最終替換后的結(jié)構(gòu)如圖4(d)和(h)所示,替換后的結(jié)構(gòu)與原網(wǎng)絡(luò)C3模塊相比,唯一不同的就是將Bottleneck模塊替換成了BottleneckTransformer。
圖4 MHSA的替換過程
傳統(tǒng)的注意力機(jī)制有很多,例如SE(Squeeze-and-Excitation)、CA(CoordAttention)以及CBAM(Convolutional Block Attention Module),加入注意力機(jī)制的目的就是為了從眾多信息中選擇出當(dāng)前任務(wù)更關(guān)注的信息。2020年天津大學(xué)Wang Qilong[15]等人提出了一種高效的通道注意力機(jī)制(ECA),具體結(jié)構(gòu)如圖5所示,作者通過對注意力機(jī)制SE的研究發(fā)現(xiàn),SE注意力機(jī)制首先會對輸入特征圖進(jìn)行了通道壓縮,而這樣的壓縮降維對于學(xué)習(xí)通道之間的依賴關(guān)系有不利影響,基于這個缺點,提出了一種無需降維的局部跨通道交互策略,該策略可以通過1D卷積有效地實現(xiàn),并且可以自適應(yīng)選擇一維卷積核的大小[16]。
圖5 ECA結(jié)構(gòu)圖
ECA模塊的實現(xiàn)主要分為三步,第一步是將輸入特征圖進(jìn)行全局平均池化(Global average pooling,GAP)操作,從而獲得未降維的所有特征;第二步則進(jìn)行卷積核大小為k的1維卷積操作,以此來捕獲局部跨通道交互信息,接著經(jīng)過 Sigmoid 激活函數(shù)得到各個通道的權(quán)重,如公式(1)所示;最后將權(quán)重與原始輸入特征圖對應(yīng)元素相乘,得到最終輸出特征圖[17]。
ω=σ(C1Dk(y))
(1)
式中,C1D代表一維卷積;k為卷積核大?。粂代表輸入特征圖;σ代表Sigmoid 激活函數(shù)。
有時由于距離遠(yuǎn),從視頻監(jiān)控中監(jiān)測到的吸煙人員相對較小,使用原始的YOLOv5s算法無法檢測到吸煙行為。為此本文引入ECA注意力模塊,通過將此模塊添加在YOLOv5s網(wǎng)絡(luò)Backbone部分中80×80×256的CSPLayer層輸出位置,以此來增強算法的特征學(xué)習(xí)能力,讓算法關(guān)注更有用的信息,最終提高YOLOv5s算法對吸煙行為的檢測效果。
傳統(tǒng)的目標(biāo)檢測損失函數(shù)(例如GIoU(Generalized Intersection over Union)、CIoU(Complete Intersection over Union)、ICIoU(Improved CIoU)等)依賴于邊界框回歸度量的聚合,如預(yù)測框和地面真值框的距離、重疊面積和長寬比。但是,這種方法有一個明顯的缺點,那就是沒有考慮真實框與預(yù)測檢測框之間方向不匹配的問題,使得目標(biāo)檢測算法在模型訓(xùn)練的過程中出現(xiàn)預(yù)測框“四處游蕩”的情況,導(dǎo)致收斂速度較慢且效率較低,最終產(chǎn)生更差的模型[18]。針對上述缺點,Zhora Gevorgyan[19]提出了一種新的損失函數(shù)SIoU,SIoU充分考慮了所需回歸之間的向量角度,并且重新定義了懲罰指標(biāo),從而有效提高模型訓(xùn)練的速度和推理的準(zhǔn)確性。
SIoU 損失函數(shù)由4個成本函數(shù)組成,分別是角度成本、距離成本、形狀成本以及IoU(Intersection over Union)成本。在目標(biāo)檢測一開始的訓(xùn)練中,大多數(shù)的預(yù)測框與真實框是不相交的,為了快速的收斂兩框之間的距離,添加角度感知LF組件,定義如公式(2)所示,進(jìn)而可以最大限度地減少與距離相關(guān)的變量數(shù)量。
(2)
式中,α為預(yù)測框與真實框之間的水平夾角。
但是直接使用角度損失是不合理,因此還需要考慮距離。定義距離成本時考慮了公式(2)定義的角度成本。
Δ=∑t=x,y(1-e-γρt)
(3)
式中,γ為2減去角度成本,當(dāng)t為x時,ρt表示真實框和預(yù)測框?qū)挼牟钪当壬险鎸嵖蚝皖A(yù)測框最小外接矩形寬的平方值;當(dāng)t為y時,ρt表示真實框和預(yù)測框高的差值比上真實框和預(yù)測框最小外接矩形高的平方值。
形狀成本定義為:
(4)
式中,當(dāng)t為w時,ωt表示預(yù)測框和真實框的寬的插值的絕對值比上兩寬中的最大值;當(dāng)t為h時,ωt表示預(yù)測框和真實框的高的插值的絕對值比上兩高中的最大值。θ值定義形狀成本,其值對于每個數(shù)據(jù)集都是唯一的,若θ=1,則代表立刻優(yōu)化形狀,從而影響形狀的自由運動。
IoU表示預(yù)測框與真實框相交的面積比上相并的面積。最后SIoU損失函數(shù)定義如公式(5)所示:
(5)
原YOLOv5s網(wǎng)絡(luò)中的損失函數(shù)為CIoU將邊界框的縱橫比作為懲罰項加入到邊界框損失函數(shù)中,一定程度上可以加快預(yù)測框的回歸收斂過程,但是一旦收斂到預(yù)測框和真實框的寬和高呈現(xiàn)線性比例時,就會導(dǎo)致預(yù)測框回歸時的寬和高不能同時增大或者減少。而用SIoU替換CIoU就可以輕而易舉的解決這個問題,從而有效提高模型訓(xùn)練的速度和推理的準(zhǔn)確性。
原本的YOLOv5s網(wǎng)絡(luò)采用FPN+ PAN的金字塔結(jié)構(gòu),F(xiàn)PN自頂向下將高層的強語義特征傳遞下來,對整個金字塔進(jìn)行增強,不過只增強了語義信息,對定位信息沒有傳遞,而PAN就是針對這一點,在FPN的后面添加一個自底向上的金字塔,對FPN補充,將低層的強定位特征傳遞上去,結(jié)構(gòu)如圖6(a)(b)所示。
圖6 不同特征融合結(jié)構(gòu)示意圖
盡管這種結(jié)構(gòu)有效加強了網(wǎng)絡(luò)的特征融合能力,但是卻存在一個問題,那就是PAN沒有接收到原始的信息,只接收到FPN的輸出信息,這就導(dǎo)致模型訓(xùn)練時目標(biāo)檢測算法學(xué)習(xí)出現(xiàn)偏差,進(jìn)而導(dǎo)致檢測精度低的問題,此外,帶來很大的計算量。針對這個問題,谷歌提出一種新的雙向特征網(wǎng)絡(luò)BiFPN,BiFPN允許特征既能夠自下而上也能夠自上而下地反復(fù)流動,從而可以重復(fù)多次以得到更多高層特征融合,具體結(jié)構(gòu)如圖7(c)所示[20],與FPN+PAN結(jié)構(gòu)相比,BiFPN去掉了只有一條輸入邊和輸出邊的結(jié)點,并且如果輸入和輸出結(jié)點是同一層的,就額外添加一條邊,如圖7(c)中的P4、P5和P6層。因此,用BiFPN網(wǎng)絡(luò)替換FPN+ PAN的金字塔結(jié)構(gòu),可以有效增強不同網(wǎng)絡(luò)層之間特征信息的傳遞,明顯提升YOLOv5s算法檢測精度,并且具有不錯的檢測性能。
圖7 LabelImg軟件操作界面
本文實驗的數(shù)據(jù)集采用兩種方式進(jìn)行采集,第一種采集方式是先錄制模擬電廠廠區(qū)內(nèi)不同人員吸煙的視頻,然后按照一定的幀率間隔截取視頻獲得圖片,另一種采集方式是從網(wǎng)絡(luò)上搜集不同場景下的吸煙圖片,通過上述采集方法共采集圖片1 395張,其中,視頻截取圖片873張,網(wǎng)絡(luò)搜集圖片522張。對于準(zhǔn)備好的數(shù)據(jù)集,采用LabelImg軟件進(jìn)行標(biāo)注。操作界面如圖7所示,按照標(biāo)簽為cigarette進(jìn)行標(biāo)注,標(biāo)注完的信息以xml的格式保存在相同路徑下,然后通過代碼腳本將xml文件轉(zhuǎn)換為YOLOv5模型需要的txt文件。最后將數(shù)據(jù)集按6∶2∶2的比例劃分為三部分,分別為訓(xùn)練集、驗證集和測試集。
本次實驗的實驗平臺操作系統(tǒng)為Ubuntu18.04,實驗以Pytorch為軟件框架,編程環(huán)境為Python,CPU為Intel(R)Xeon(R)Glod5118CPU@2.3 GHz,GPU為GeForce RTX2080Ti,顯存24 G,內(nèi)存128 G。
實驗參數(shù)的設(shè)置根據(jù)自己電腦的性能而定,由于本文實驗使用有四張獨顯的實驗室服務(wù)器,其性能遠(yuǎn)優(yōu)于普通電腦,故其參數(shù)的設(shè)置相對較高。本文實驗均是在不加載預(yù)訓(xùn)練權(quán)重的情況下進(jìn)行,其他相關(guān)參數(shù)設(shè)置如表1所示。
表1 相關(guān)參數(shù)設(shè)置
劃分完數(shù)據(jù)集后,搭建YOLOv5網(wǎng)絡(luò)環(huán)境,修改數(shù)據(jù)配置文件和模型配置文件,然后根據(jù)自己的電腦配置設(shè)置好相關(guān)的參數(shù)進(jìn)行訓(xùn)練。訓(xùn)練結(jié)果如圖8所示,從圖中可以看出,box_loss和obj_loss曲線逐漸下降,最后趨于穩(wěn)定,這兩條曲線趨近的值越小,表明方框越準(zhǔn),目標(biāo)檢測越準(zhǔn);cls_loss曲線指推測為分類loss均值,越小分類越準(zhǔn);Precision曲線、Recall曲線以及mAP曲線隨著訓(xùn)練輪數(shù)的增加,逐漸趨于0.9,表明訓(xùn)練效果較好,訓(xùn)練精度較高。
圖8 訓(xùn)練參數(shù)變化圖
訓(xùn)練結(jié)束后會生成相應(yīng)的權(quán)重文件,將測試代碼中的權(quán)重路徑修改為生成的best權(quán)重文件,其余相關(guān)參數(shù)設(shè)置同訓(xùn)練設(shè)置一樣,然后運行代碼就會生成測試結(jié)果。改進(jìn)前后的網(wǎng)絡(luò)對吸煙行為的檢測如圖9所示,圖(a)表示原YOLOv5s的檢測效果,圖(b)表示改進(jìn)后YOLOv5s算法的檢測效果,可以看出,使用原YOLOv5s檢測時存在一定的誤報和漏報,而使用改進(jìn)后的算法進(jìn)行檢測時,誤報和漏報情況明顯改善,并且對于視頻監(jiān)控下遠(yuǎn)距離的人員吸煙行為檢測置信度達(dá)79%,屬于較易檢測出的對象,檢測效果較好。
圖9 算法改進(jìn)前后的檢測效果對比圖
目標(biāo)檢測實驗評價中將模型參數(shù)量(萬)、模型權(quán)重文件大小(MB)、查全率(Recall,R)、查準(zhǔn)率(Precision,P)、平均精度均值(mAP)、每秒檢測幀數(shù)(Frames Per Second,F(xiàn)PS)這幾項性能指標(biāo)評判算法的性能。其中P、R和mAP分別為[21]:
(6)
(7)
(8)
其中:TP(True Positives)表示被正確檢測出的目標(biāo)數(shù),F(xiàn)P(False Positives)表示檢測錯誤的目標(biāo)數(shù),F(xiàn)N(False Negatives)表示未被檢測出來的目標(biāo)數(shù),∑r=1,∑Pri表示PR曲線上時對應(yīng)P的數(shù)值,num_classes為類別數(shù)。
3.4.1 替換多頭注意力機(jī)制的實驗分析
為了確定替換多頭注意力機(jī)制的位置,本文通過將不同位置的C3模塊Bottleneck中的3×3卷積替換成多頭自注意力層,在不加載預(yù)訓(xùn)練權(quán)重的情況下在A、B、C、D四種替換方案下進(jìn)行實驗,替換位置如圖10所示,替換方案如表2所示,實驗結(jié)果如表3所示。通過實驗最終確定將Backbone和Neck中兩個C3模塊Bottleneck的3×3卷積替換為多頭自注意力層時,檢測精度提高2.3%,檢測效果最好。
表2 具體替換方案
表3 替換多頭自注意力層驗證實驗
圖10 替換位置
3.4.2 注意力模塊實驗
為了驗證加入注意力模塊后算法的檢測能力以及探究應(yīng)該將注意力模塊加到算法的具體哪個位置,本文通過在同一位置分別加入ECA、CBAM、CA三種注意力機(jī)制實驗,實驗結(jié)果如表4所示,實驗結(jié)果表明,加入ECA注意力機(jī)制的效果最好。然后再變換ECA加入的位置,具體替換位置如圖10所示,具體實驗結(jié)果如表5所示。通過實驗得出,將ECA加到Backbone部分中80×80×256的CSPLayer層輸出位置的效果最好,精度提升3.9%。
表4 融合不同注意力模塊對比實驗
表5 融合注意力模塊驗證實驗
3.4.3 損失函數(shù)實驗
為了驗證SIoU損失函數(shù)的有效性,本文以YOLOv5s 為基礎(chǔ),通過替換原始網(wǎng)絡(luò)損失函數(shù)為本文引入的SIoU以及EIoU和Alpha-IoU兩種常用損失函數(shù),其他部分均不變,在同一數(shù)據(jù)集上進(jìn)行實驗,實驗結(jié)果如表6所示。通過實驗可以看出,相較于其他兩個損失函數(shù),原始網(wǎng)絡(luò)替換完SIoU的效果最好,精度提升了3.6%。
表6 改進(jìn)損失函數(shù)SIoU驗證實驗
3.4.4 金字塔實驗
為了驗證改進(jìn)BiFPN的有效性,本文將原始YOLOv5s算法和將FPN+PAN結(jié)構(gòu)改為本文提出的BiFPN 結(jié)構(gòu)進(jìn)行實驗,實驗結(jié)果如表7所示[22]。通過實驗結(jié)果可以看出,替換完BiFPN 以后,目標(biāo)檢測算法的檢測精度提高了0.9%。
表7 替換BiFPN驗證實驗
3.4.5 消融實驗
本文提出的4種改進(jìn)方法分別為MHSA、ECA、SIoU、BiFPN。為了驗證這4種不同改進(jìn)方法的有效性,本文在原始YOLOv5s網(wǎng)絡(luò)的基礎(chǔ)上,分別只改進(jìn)一種方法,然后再將4個改進(jìn)點一同加入進(jìn)行實驗,實驗結(jié)果如表8所示。實驗結(jié)果表明,每種改進(jìn)方法都顯著提高了模型的檢測精度,其中加入ECA注意力機(jī)制的精度提升最高,提高了3.9%。此外,將4個改進(jìn)點一同加入,精度提升也十分明顯,相交原始YOLOv5s網(wǎng)絡(luò)提高2.2%。通過消融實驗,再次證明了本文提出的改進(jìn)點有效提高了目標(biāo)檢測算法的檢測精度。
表8 消融實驗結(jié)果
3.4.6 對比實驗
為了進(jìn)一步證明本文改進(jìn)算法的優(yōu)越性和有效性,有必要將其與其他目標(biāo)檢測算法進(jìn)行對比,因此將本文算法與傳統(tǒng)的YOLOv3、YOLOv3-tiny、YOLOv5l、YOLOv5m、YOLOv5x、YOLOv5s以及YOLOv5n進(jìn)行對比,實驗結(jié)果如表9所示。
表9 不同的算法模型性能對比
從實驗結(jié)果可以看出,相較于其他幾種目標(biāo)檢測算法,本文提出的算法檢測精度最高。其中,YOLOv3、YOLOv5m以及YOLOv5x的檢測精度與本文提出的算法檢測精度較為相近,但本文所提算法權(quán)重文件大小只有YOLOv3的12.3%,只有YOLOv5m的36.2%,只有YOLOv5x的8.8%,體量優(yōu)勢明顯;相較于檢測速度較為相近的YOLOv5n算法以及 YOLOv5l算法,本文所提算法的檢測精度優(yōu)勢明顯,比YOLOv5n高3.3%,比YOLOv5l高1.2%,此外,雖然YOLOv5n有最小的權(quán)重文件,僅有3.9 MB,但是檢測精度卻較低,只有86%,無法精確的識別有無人員吸煙,相較于權(quán)重文件大小相近的YOLOv5s、YOLOv3-tiny,本文提出算法的檢測精度分別提高了2.2%、1.8%。綜上所述,本文提出的YOLOv5s-MESB算法在保持輕量化的同時,有著最高的檢測精度,并且保持著較好的實時性,整體表現(xiàn)較為突出,證明了本文所提算法的優(yōu)越性。
由于距離遠(yuǎn),從視頻監(jiān)控中捕捉到的吸煙人員相對較小,圖像相對模糊,用原始的YOLOv5s網(wǎng)絡(luò)檢測吸煙人員精度較差,并且誤檢漏檢嚴(yán)重,為此本文通過對多頭自注意力層、ECA注意力模塊、損失函數(shù)SIoU、BiFPN等方法的研究,將其統(tǒng)一改進(jìn)到Y(jié)OLOv5s網(wǎng)絡(luò)中,進(jìn)一步優(yōu)化YOLOv5s算法。實驗結(jié)果證明,改進(jìn)后的算法對于吸煙行為的檢測精度提高了2.2%,檢測速度達(dá)到了227FPS,在保持算法速度和輕量化的同時獲得了更高的檢測精度,相比其他目標(biāo)檢測算法,更加適用于對吸煙行為的檢測。但是,對于人員密集或是在陰暗的場合,本文改進(jìn)的算法會存在一些誤檢,影響檢測效果,因此本文算法還有很大的改進(jìn)空間,后續(xù)工作可以針對提高密集人群和陰暗場景下吸煙檢測精度進(jìn)行研究,來進(jìn)一步提升吸煙行為的檢測效果。