李祥祥,李曉華,石 剛
(新疆大學(xué)信息科學(xué)與工程學(xué)院,新疆 烏魯木齊 830046)
吸煙有害身體健康,在公共場所吸煙會對他人的身體健康造成危害.吸煙會引發(fā)肺癌、喉癌、功能喪失等疾病,全球每年因煙草致死人數(shù)高達800萬人.在加油站、飛機場、辦公室、化工廠、森林等地吸煙極易引起火災(zāi),造成重大經(jīng)濟損失和人員傷亡.為了他人生命和財產(chǎn)健康著想,禁止在公共場所吸煙已經(jīng)成為所有人的道德規(guī)范和行為準則,國家也已采取很多措施嚴禁公共場所吸煙.
傳統(tǒng)的吸煙檢測方案主要包含3種:煙霧傳感器、紅外成像儀、可穿戴設(shè)備.但這3種方案都有局限性,煙草的煙霧稀薄且極容易逸散,在通風場所和占地很大的室內(nèi)場所中煙霧濃度低,很難達到煙霧傳感器的檢測閾值;紅外成像儀通過感知物體的溫度進行吸煙檢測,但公共場所環(huán)境復(fù)雜、人員眾多,容易造成誤檢情況;可穿戴設(shè)備通過各種傳感器檢測佩戴人員在吸煙時的運動和生理特征進行吸煙檢測,該方案需要被檢測人員佩戴可穿戴設(shè)備,難以普及.
除了使用各種設(shè)備,研究人員還研究了針對監(jiān)控視頻的吸煙檢測方案.傳統(tǒng)圖像處理算法可以很好的應(yīng)用于吸煙檢測任務(wù),該方案的檢測過程共分4步:(1)圖像預(yù)處理.在目標檢測算法中,圖像質(zhì)量的好壞直接影響檢測的精度.通過幾何變換、灰度化、圖像增強等方法的處理,修正圖像的角度、減少噪聲、突出重要特征.(2)候選框的提取.候選框主要用于待檢測目標的定位.通過設(shè)定不同大小和步長的滑動窗口,由左至右、由上至下滑動提取候選框.(3)特征提取.在候選框中提取預(yù)先設(shè)定的特征.方向梯度直方圖[1](Histogram of Oriented Gradient,HOG)通過將圖像分為多個小塊(如8×8像素),計算每個小塊的梯度分布直方圖,每4個小塊得到一個特征向量.Haar通過積分圖獲取圖像的邊緣特征、線性特征和點特征.尺度不變特征變換[2](Scale-invariant feature transform,SIFT)提取檢測目標的關(guān)鍵點,通過關(guān)鍵點計算特征方向和特征向量.(4)分類.通過Adaboost[3]、支持向量機[4](SVM)、決策樹(Decision Tree)等分類器,對滑動窗口中提取的特征進行進一步處理和分類.
傳統(tǒng)圖像處理算法存在一定的缺陷.隨著硬件設(shè)備計算性能的提高和深度學(xué)習神經(jīng)網(wǎng)絡(luò)各種算法的不斷完善,使用神經(jīng)網(wǎng)絡(luò)算法完成目標檢測任務(wù)開始成為主流.特別是在2012年ILSVRC大賽中,AlexNet[5]取得第一名的好成績,力壓一眾傳統(tǒng)目標檢測算法.其后神經(jīng)網(wǎng)絡(luò)算法不斷發(fā)展,并憑借超高的檢測精度和分類性能在各個領(lǐng)域不斷取得突破,如人臉識別、目標檢測、手勢識別、車輛識別、人體姿態(tài)識別等.
本文采用神經(jīng)網(wǎng)絡(luò)算法,檢測吸煙者的人臉和煙支,對比兩者的位置關(guān)系判定是否存在吸煙行為.為了達到實時檢測的目的,參考單階段目標檢測算法,利用改進后殘差結(jié)構(gòu)[6](Residual Block)、跨階段局部網(wǎng)絡(luò)[7](CSPNet)、注意力機制(Attention)構(gòu)造主干網(wǎng)絡(luò),將更多小目標的特征傳入更深的卷積層,解決特征丟失問題;對主干網(wǎng)絡(luò)輸出的多層次特征圖進行特征融合,提高各特征圖信息的豐富程度,增強了小目標的檢測精度;改進了激活函數(shù)、損失函數(shù)、歸一化方法、融合圖像的上下文信息,提高了模型的魯棒性.
深度學(xué)習神經(jīng)網(wǎng)絡(luò)算法進行圖像處理和目標檢測任務(wù)時,通常卷積網(wǎng)絡(luò)的層數(shù)會堆疊幾十乃至上百層.主要是因為深度學(xué)習目標檢測任務(wù)十分復(fù)雜,訓(xùn)練圖像數(shù)量極大、背景復(fù)雜、檢測目標尺寸不一,為了提高對檢測目標的表征能力和泛化能力,通過加深卷積網(wǎng)絡(luò)的層數(shù)的方式提高模型的學(xué)習能力,讓復(fù)雜的目標檢測任務(wù)成為可能.
1.1.1 單階段目標檢測算法
深度學(xué)習目標檢測算法發(fā)展多年,目前主要有兩種檢測思路:雙階段目標檢測算法和單階段目標檢測算法.
雙階段目標檢測算法采用目標定位(候選框提取)和目標分類分離的策略,主要算法包含RCNN[8]、Faster R-CNN、Mask R-CNN[9]、Cascade RCNN[10]等.其目標定位算法是在傳統(tǒng)目標檢測算法的基礎(chǔ)上發(fā)展而來的,早期的算法還是采用滑動窗口方式,之后為了提高模型的檢測速度,提出了選擇性搜索(Selective Search)和區(qū)域建議網(wǎng)絡(luò)(Region Proposal Network,RPN)的方案.選擇性搜索的實現(xiàn)思路是首先將圖像分割成很多的小塊,然后使用貪心策略計算每兩個相鄰區(qū)域的相似度,合并最相似的兩塊,直到最終只剩下一塊完整的圖片.在合并的過程中,首先合并最小的圖像,將合并的圖像塊保存起來并設(shè)置權(quán)重,得到圖像的分層表示.區(qū)域建議網(wǎng)絡(luò)的實現(xiàn)思路是首先預(yù)設(shè)9個大小不一的候選窗口,這些候選窗口也叫錨(anchors),在輸入圖像上設(shè)置若干錨點,每個錨點設(shè)置9個錨,讓錨與真實框進行對比后進行平移和縮放,在經(jīng)過Softmax排序和非極大值抑制(Non-Maximum Suppression,NMS)后得到最有可能的候選框.
選擇性搜索方案主要應(yīng)用于R-CNN、Fast R-CNN等,區(qū)域建議網(wǎng)絡(luò)主要應(yīng)用于Faster R-CNN、Mask R-CNN等.綜合上述方案提出的候選框和主干網(wǎng)絡(luò)輸出的特征圖,經(jīng)過ROI池化后生成候選特征圖,最后經(jīng)過全連接層的處理,完成目標檢測算法的定位和分類任務(wù).單階段目標檢測算法將定位和分類問題轉(zhuǎn)換為回歸問題,利用錨的思想,在主干網(wǎng)絡(luò)提取的特征圖上選出多個錨框,針對每個錨框進行回歸定位和分類,最后使用非極大值抑制得到最優(yōu)預(yù)測結(jié)果.單階段目標檢測算法主要包含SSD[11]、YOLO、CornerNet[12]、CenterNet等.雙階段方案擁有更高的檢測精度,但檢測速度較慢;單階段方案檢測精度稍低,但檢測速度很快.為了達到實時檢測的目標,本文采用單階段方案.
1.1.2 深度可分離卷積
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)是深度學(xué)習視覺領(lǐng)域的代表算法,卷積層是卷積神經(jīng)網(wǎng)絡(luò)的主要構(gòu)成部分,減少卷積層的權(quán)重參數(shù)和計算量就可以在很大程度上提高目標檢測速度.
大多數(shù)卷積神經(jīng)網(wǎng)絡(luò)采用常規(guī)卷積,如圖1(a)所示,卷積核(Kernel Filters)的通道數(shù)與輸入特征圖(Feature Maps)的通道數(shù)(Channels)保持一致,卷積核的寬(width)和高(height)一般為3×3 (一些卷積層中可能使用5×5、7×7,甚至更大),卷積核的個數(shù)與輸出特征圖的通道數(shù)保持一致.常規(guī)卷積所涉及的權(quán)重參數(shù)量大,耗費計算資源多.為了提高檢測速度,本文使用深度可分離卷積作為本文模型的基礎(chǔ)卷積,大量實驗證明深度可分離卷積的檢測精度與常規(guī)卷積類似但檢測速度有所提高.深度可分離卷積[13](Depthwise separable Convolution)由深度卷積(Depthwise Convolution,DW)和逐點卷積(Pointwise Convolution,PW)組成.深度卷積如圖1(b)所示,卷積核的通道數(shù)固定為1,卷積核的個數(shù)與輸入特征圖的通道數(shù)一致.為了輸出需要的特征圖,使用逐點卷積進一步操作.逐點卷積如圖1(c)所示,卷積核的通道數(shù)與輸入特征保持一致,卷積核的寬和高固定為1,卷積核的個數(shù)與輸出特征圖的通道數(shù)保持一致.
(a)常規(guī)卷積
這里引入浮點運算數(shù)(Floating Point Operations,F(xiàn)LOPs)和參數(shù)量(Params)的概念來衡量模型的復(fù)雜度.設(shè)輸入特征圖的尺度為(Hin,Win,Cin),卷積層處理后的輸出特征圖的尺度為(Hout,Wout,Cout).其中H代表特征圖的高,W代表特征圖的寬,C代表特征圖的通道數(shù).卷積核的高和寬總是一樣大小,設(shè)為K.浮點運算數(shù)可以用來衡量模型的計算量,其計算公式為
FLOPs=(Cin×2×K×K)×
Hout×Wout×Cout.
(1)
參數(shù)量的計算公式為
Params=(Cin×K×K+1)×Cout.
(2)
當輸入特征圖的通道數(shù)為3,卷積核的寬和高均為3,輸出特征圖尺寸為64×64×4時,常規(guī)卷積和深度可分離卷積的計算量和權(quán)重參數(shù)量如表1所示,深度可分離卷積的參數(shù)量和計算量對比常規(guī)卷積均有所降低.
表1 兩種卷積的參數(shù)量和計算量
吸煙檢測屬于小目標檢測任務(wù).小目標物體有兩種定義方式,一種是待檢測目標的長寬占原圖像的10% (相對尺寸),另一種是待檢測目標小于32×32像素(絕對尺寸).小目標檢測任務(wù)一直是深度學(xué)習卷積網(wǎng)絡(luò)模型的一個難題,小目標物體分辨率低、容易受到抖動的干擾,而且圖像模糊,又因為小目標本身所占圖像像素低,攜帶信息很少,沒有明顯的特征.且小目標物體容易受到噪聲、遮擋等因素的干擾,圖像增強、去噪聲的方法也很難恢復(fù)原本特征.
1.2.1 主干網(wǎng)絡(luò)設(shè)計
目前的目標檢測模型的主干(backbone)網(wǎng)絡(luò)部分通常會進行多次下采樣處理,導(dǎo)致小目標在特征圖中的尺寸基本上只有個位數(shù)的像素大小,且小目標特征在傳入更深的網(wǎng)絡(luò)層時特征丟失嚴重,因此目標分類器對小目標的分類效果極差.本文設(shè)計的主干網(wǎng)絡(luò)在力求降低網(wǎng)絡(luò)的參數(shù)量和計算量的同時,將更多的小目標特征送入更深的網(wǎng)絡(luò)層.
目標檢測模型通常由3個部分組成:主干網(wǎng)絡(luò)(backbone)、頸部(neck)和檢測頭(head).主干網(wǎng)絡(luò)是目標檢測模型網(wǎng)絡(luò)層數(shù)最多,特征提取能力最強的結(jié)構(gòu),主干網(wǎng)絡(luò)提取的目標特征直接影響到模型的檢測效果.神經(jīng)網(wǎng)絡(luò)的檢測效果和神經(jīng)網(wǎng)絡(luò)的層數(shù)有著很大的關(guān)系,通常層數(shù)越多檢測精度就越高,相應(yīng)的訓(xùn)練難度也就越高.并且當網(wǎng)絡(luò)層數(shù)達到一定程度后,網(wǎng)絡(luò)會達到飽和狀態(tài),即達到了檢測的最好效果.再增加網(wǎng)絡(luò)層數(shù),檢測效果會下降,訓(xùn)練損失值開始增加,這一現(xiàn)象被稱為退化(degradation).為解決退化問題,He等[6]提出殘差網(wǎng)絡(luò).殘差網(wǎng)絡(luò)由一系列可重復(fù)利用的殘差塊(見圖2a)組成,殘差塊分為兩個部分,直接映射(左分支)和殘差部分(右分支).直接映射分支不做任何處理.殘差部分一般由2~3個卷積操作、批處理和激活函數(shù)組成.之后殘差部分和直接映射相加合并,再經(jīng)過一次ReLU激活函數(shù)的處理得到輸出結(jié)果.實驗表明,殘差網(wǎng)絡(luò)很好地解決了深度神經(jīng)網(wǎng)絡(luò)的退化問題,在同等層數(shù)的網(wǎng)絡(luò)中,殘差網(wǎng)絡(luò)收斂速度更快,且在去除個別網(wǎng)絡(luò)層后,殘差網(wǎng)絡(luò)的性能表現(xiàn)不會有大的變化.
本文對殘差塊進行了改進(見圖2b).左分支的直接映射保持不變.將右分支原本的常規(guī)卷積用深度可分離卷積替換(深度卷積+逐點卷積),達到減少模型的參數(shù)量和計算量的目的.激活函數(shù)由ReLU函數(shù)替換為Mish函數(shù),Mish函數(shù)也屬于ReLU 系列,只是在正負值交界處增加了一個平滑的過渡曲線以保證模型擁有更好的泛化能力.每個深度可分離卷積輸出的特征圖均使用批歸一化處理,以約束特征權(quán)重的數(shù)值范圍,避免梯度消失、梯度爆炸、過擬合等問題.本文稱改進后的殘差塊為可分離殘差塊,可分離殘差塊是可復(fù)用結(jié)構(gòu),可以添加到主干網(wǎng)絡(luò)的任意位置.本文利用多個可分離殘差塊組成殘差模塊(Residual module).如圖3(a)所示,采用CSPNet(Cross Stage Partial Network,跨階段局部網(wǎng)絡(luò))的思想,將輸入特征拆分成兩部分,每部分擁有輸入特征的一半通道數(shù).左分支的特征不做處理,右分支的特征經(jīng)過多個可分離殘差塊的處理(可根據(jù)需要調(diào)節(jié)數(shù)目),最后對2個分支的特征進行拼接,得到輸出特征.
圖2 殘差塊(a)和改進的可分離殘差塊(b)框圖
本文設(shè)計的可分離殘差塊和殘差模塊都遵循一個原則:將淺層的特征圖盡可能傳遞到更深的卷積層中.這樣做有很多優(yōu)點,首先是避免了退化問題.要想獲得更好的目標檢測效果,模型的卷積層數(shù)必須很深.當卷積層數(shù)超過飽和層數(shù)之后,特征學(xué)習能力直線下降.可分離殘差塊和殘差模塊中的CSP結(jié)構(gòu)將淺層的優(yōu)秀特征直接傳遞到深層,優(yōu)化了深層的特征學(xué)習情況.更加重要的優(yōu)點是避免了小目標物體特征在進入更深的卷積層時的特征丟失問題,能有效提高小目標物體的檢測精度.
卷積網(wǎng)絡(luò)經(jīng)過一系列的卷積和池化操作得到各種尺度的特征圖,但特征圖中的數(shù)據(jù)對于檢測效果的貢獻程度不同.為了強化貢獻度高的特征數(shù)據(jù)削弱貢獻度低的特征數(shù)據(jù),引入注意力機制,根據(jù)貢獻度為特征圖加權(quán).注意力機制最先在機器翻譯領(lǐng)域取得了不錯的效果,而后在視覺領(lǐng)域也開始發(fā)力.2017年,SENet[14](squeeze and excitation networks)設(shè)計了一種可重用通道注意力模塊,對輸入特征圖進行壓縮(squeeze)和激發(fā)(excitation)操作獲得每個通道權(quán)重參數(shù),并將加權(quán)后的特征圖作為輸出.該注意力模塊能有效提高模型的檢測性能.2018年,CBAM[15](Convolutional Block Attention Module)注意力模塊結(jié)合特征圖的通道和空間注意力特征,進一步提高了模型檢測性能.
本文在CBAM的基礎(chǔ)上略作改進設(shè)計注意力模塊,如圖3(b)所示.輸入特征在注意力模塊中分成2個支路,一個支路使用通道注意力處理得到通道權(quán)重,另一個支路不做處理,2個支路結(jié)果相乘得到通道加權(quán)特征圖;通道加權(quán)特征圖又分為2個支路,一個支路使用空間注意力處理得到空間權(quán)重,另一個支路不做處理,2個支路結(jié)果相乘得到空間加權(quán)特征圖并輸出.設(shè)特征圖的尺寸為H(特征圖的高)×W(特征圖的寬)×C(特征圖的通道數(shù)),通道注意力分別使用全局最大池化和全局平均池化得到2個1×1×C的特征,之后為了更好地擬合通道間復(fù)雜的相關(guān)性,使用共享多層網(wǎng)絡(luò)(全連接層+Mish激活函數(shù)+全連接層)進行處理得到2個1×1×C的特征,相加并進行Sigmoid激活后得到一個1×1×C的通道權(quán)重特征,與H×W×C的輸入特征圖相乘后得到通道加權(quán)特征圖.空間注意力分別使用最大池化和平均池化得到2個H×W×1的特征,按照通道拼接為一個H×W×2的特征,經(jīng)過卷積和Sigmoid函數(shù)激活后得到一個H×W×1的空間權(quán)重特征,與H×W×C的輸入特征圖相乘后得到空間加權(quán)特征圖.本文改進的注意力機制可以在通道和空間2個尺度衡量特征圖的貢獻程度,能有效加強小目標特征的學(xué)習能力,提高檢測精度.
(a)殘差模塊 (b)注意力模塊 (c)主干網(wǎng)絡(luò)
主干網(wǎng)絡(luò)的結(jié)構(gòu)如圖3(c)所示,輸入圖像首先使用2個卷積層進行預(yù)處理,減少特征圖的寬高,增加了通道數(shù).之后使用4組殘差模塊和注意力模塊的組合,提取不同層次的特征圖.殘差模塊中卷積層數(shù)多,用于提取待檢測目標的特征信息.注意力模塊評價殘差模塊輸出特征圖的貢獻度,輸出加權(quán)特征圖.該主干網(wǎng)絡(luò)在降低參數(shù)量和計算量基礎(chǔ)上,能夠提取更多的小目標特征,保證了小目標實時檢測的需求.
1.2.2 特征融合策略
感受野(receptive field)用來表示網(wǎng)絡(luò)內(nèi)部不同卷積層的輸出特征圖中每個元素在輸入圖像上的映射區(qū)域大小.感受野越小則能接觸到的原始圖像越小,特征圖更趨向于表達目標的局部細節(jié)特征,包括紋理、邊緣、顏色、形狀等,可以很好地表達小目標物體的特征;而感受野越大則能接觸到的原始圖像越大,會將小目標周圍的背景納入學(xué)習范圍,特征圖更趨向于表達更加抽象的全局特征,喪失了小目標的特征,適用于更大物體的目標檢測.
本文目標檢測模型的整體結(jié)構(gòu)如圖4所示,主干網(wǎng)絡(luò)在注意力模塊處理后輸出3個層次的特征,較淺層輸出的特征圖擁有較小的感受野,適合小目標檢測;層數(shù)越深其感受野越大,更加適合大目標檢測.為了進一步提高小目標的檢測精度,引入PAN[16]網(wǎng)絡(luò)(如圖4的頸部所示),融合主干網(wǎng)絡(luò)多層次的輸出特征,結(jié)合淺層的細節(jié)信息和深層的語義信息,提高小目標的定位和分類效果.特征融合對于各個尺度的目標特征都有一定程度的增強,之后從大中小3個尺度對圖像進行目標檢測.
圖4 目標檢測模型整體結(jié)構(gòu)
本文構(gòu)建的目標檢測模型使用深度可分離卷積代替常規(guī)卷積,如表2所示.深度可分離卷積方案在模型大小、參數(shù)量和計算量3個尺度都有明顯優(yōu)化.
表2 不同卷積組成模型對比
神經(jīng)網(wǎng)絡(luò)模型除了卷積層和池化層的特征提取部分,還包括了一些僅增加少量推理成本的結(jié)構(gòu),可以起到修正特征數(shù)據(jù)、提高模型學(xué)習能力的作用.首先是圖像增強技術(shù),不對模型進行改動,只對訓(xùn)練圖像進行裁剪、縮放、旋轉(zhuǎn)、模擬遮擋等操作,提高圖像環(huán)境的復(fù)雜度和圖像數(shù)量,使模型可以適應(yīng)更加復(fù)雜的環(huán)境,提高泛化能力.
激活函數(shù)通過激活特征圖中符合條件的特征數(shù)據(jù),使模型擁有了非線性建模的能力,可以更好地擬合復(fù)雜的檢測任務(wù).但sigmoid和tanh 函數(shù)在反向傳導(dǎo)的過程中會導(dǎo)致梯度消失問題.ReLU 函數(shù)保留了正值的梯度,將負值轉(zhuǎn)化為0,解決了梯度消失問題,且模型能夠更快收斂.但是也導(dǎo)致了“死亡神經(jīng)元”問題,輸入持續(xù)為負的神經(jīng)元激活值總為0.批歸一化將每個卷積層的輸出特征數(shù)據(jù)歸一化為均值為0、方差為1的數(shù)據(jù),并根據(jù)訓(xùn)練得到平移因子和尺度因子對數(shù)據(jù)進行一定的處理.批歸一化解決了梯度消失、梯度爆炸的問題;能有效提高收斂速度;擁有正則化的特點,減少過擬合.本文構(gòu)建的目標檢測模型主要使用Mish激活函數(shù),公式為
Mish=x·tanh(ln(1+ex)).
(3)
Mish函數(shù)屬于ReLU系列激活函數(shù),但在正負值的交界處有一個弧度,過渡得更加平滑(見圖5中虛線).這使得Mish函數(shù)擁有更加平滑的梯度(見圖5中實線),泛化能力更好.且Mish對較小的負值進行激活,緩解了部分神經(jīng)元永遠無法激活的問題.
損失函數(shù)是衡量目標檢測模型檢測效果好壞的標準,將模型前向傳播的預(yù)測結(jié)果和真實標簽進行對比計算,得到損失值判定檢測效果.根據(jù)損失反向傳播優(yōu)化學(xué)習模型的特征信息.早期損失函數(shù)均方誤差(MSE)對預(yù)測框中心點坐標和寬高信息分別對待,沒有考慮到整體的關(guān)系.使用交并比(IoU)計算預(yù)測框和真實框的重合程度,有效提高了目標檢測的效果.本文使用由IoU 發(fā)展而來的CIoU損失函數(shù).CIoU比IoU 多考慮了一些影響預(yù)測效果的因素,如重疊程度、目標尺寸、懲罰項、預(yù)測框和真實框中心點之間的距離.CIoU的計算公式為:
(4)
(5)
其中:ρ2(b,bgt)表示真實框和預(yù)測框中心點的歐式距離;c代表預(yù)測框和真實框?qū)蔷€的距離;α和ν是添加的懲罰項,其計算公式如為:
(6)
(7)
圖5 Mish函數(shù)及其導(dǎo)數(shù)曲線
本文使用pytorch深度學(xué)習框架完成相關(guān)代碼的編寫,使用NVIDIA RTX 2080Ti顯卡進行訓(xùn)練,使用NVIDIA GTX 1050Ti完成測試工作,對應(yīng)操作系統(tǒng)分別為Ubuntu18和Windows10,配置CUDA10和CUDNN7.5工具.
由于吸煙檢測任務(wù)沒有公開的數(shù)據(jù)集,本文使用自己構(gòu)建的吸煙數(shù)據(jù)集完成吸煙檢測任務(wù).從互聯(lián)網(wǎng)上爬取的有關(guān)吸煙的圖片和視頻,同時自己錄制吸煙視頻片段.抽取視頻中有吸煙行為的關(guān)鍵幀,與網(wǎng)絡(luò)中吸煙圖片結(jié)合組成本文數(shù)據(jù)集.數(shù)據(jù)集共4 893張圖片,使用LabelImg工具進行標注,標注內(nèi)容包括人的臉部和煙支的位置,其中80%用于訓(xùn)練,20%用于測試.
使用本文構(gòu)建的模型針對本文構(gòu)建的數(shù)據(jù)集進行訓(xùn)練(如圖6所示),得到吸煙檢測模型.將監(jiān)控視頻作為輸入,吸煙檢測模型讀取視頻中每一幀圖像,用吸煙檢測模型先針對人的臉部進行檢測,若圖像中不存在人的臉部則判斷不存在吸煙行為;若存在則針對煙支進行檢測,只有當檢測到煙支且煙支位置與人的臉部位置重合,同時煙支面積小于臉部面積1/3 時,認定存在吸煙行為.
圖6 吸煙檢測流程
本文模型在Ubuntu18系統(tǒng)上的RTX2080Ti上進行訓(xùn)練,共進行1 000次迭代,每個批次16張圖片,使用余弦退火衰減學(xué)習率,Adam優(yōu)化函數(shù)加快收斂速度.圖7(a)和圖7(b) 分別表示模型在訓(xùn)練過程中損失值的變化過程及吸煙檢測的mAP面積.
(a)損失曲線 (b)AP
本文算法與Faster RCNN、SSD、YOLOv3、YOLOv4等模型在本文數(shù)據(jù)集上進行目標檢測實驗.驗證均使用GTX1050Ti顯卡,如表3所示,本文算法在檢測速度(FPS)和檢測精度(mAP)都比其他算法優(yōu)秀.在實際場景中的吸煙檢測效果如圖8所示.
表3 不同算法在本文數(shù)據(jù)集中的表現(xiàn)
(a)結(jié)果1-臉部 (b)結(jié)果1-臉部-煙支 (c)結(jié)果2-臉部 (d)結(jié)果2-臉部-煙支
為了進一步驗證所構(gòu)建的目標檢測模型對于小目標的檢測能力,本文在公開數(shù)據(jù)集AU-AIR2019[17]上進行訓(xùn)練和測試.AU-AIR2019數(shù)據(jù)集是使用無人機針對戶外車輛和人員拍攝的視頻,經(jīng)過篩選取出32 823個關(guān)鍵幀圖像構(gòu)成的數(shù)據(jù)集.共包含汽車(car)、廂式貨車(van)、敞篷火車(truck)、人(human)、拖車(trailer)、自行車(bicycle)、公共汽車(bus)、摩托車(motorbike)等8個類別.本文檢測結(jié)果與基線(YOLOv3-Tiny、MobileNet-SSDLite)的對比如表4所示.本文算法在小目標物體檢測任務(wù)中具有很好的效果.檢測效果如圖9所示.
表4 不同算法在AU-AIR數(shù)據(jù)集中的表現(xiàn)
(a)檢測結(jié)果1 (b)檢測結(jié)果2
為配合公共場所禁煙,本文構(gòu)建小目標檢測模型,針對監(jiān)控圖像進行吸煙行為檢測.實驗表明,針對煙支這種小目標的檢測擁有很好的效果.模型主要從檢測的實時性和準確性兩個方面出發(fā),在保持且略有增加準確性的基礎(chǔ)上,有效提高檢測速度.為了實現(xiàn)檢測的實時性,本文采用單階段目標檢測方案,并提出利用深度可分離卷積代替常規(guī)卷積作為本文基礎(chǔ)卷積層,減少了模型的參數(shù)量和計算量,提高了檢測效率.在提高準確性方面,改進殘差網(wǎng)絡(luò)和CSP 網(wǎng)絡(luò),將淺層的局部特征傳遞到更深層,避免了小目標特征丟失的問題,可以使用更深的網(wǎng)絡(luò)層;融合淺層的局部特征和深層的全局特征,提高小目標檢測效果.為了提高模型的泛化能力和魯棒性,采用Mish激活函數(shù)獲取更加光滑的梯度,采用CIoU 提高邊界框回歸的精度,采用批歸一化提高模型的泛化能力,采用注意力機制衡量特征圖每個尺度的貢獻度.在自制吸煙數(shù)據(jù)集中有很好的表現(xiàn),但受限于自制數(shù)據(jù)集圖像數(shù)量較少和背景環(huán)境單一,在實際應(yīng)用環(huán)境中效果較弱,需要后期收集更多、環(huán)境因素更復(fù)雜的吸煙數(shù)據(jù)集,增加模型對復(fù)雜環(huán)境的泛化能力.