趙 洋,王藝鋼,靳永強(qiáng),華 丹
(1.沈陽(yáng)化工大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,遼寧 沈陽(yáng) 110142;(2.遼寧省化工過(guò)程工業(yè)智能化技術(shù)重點(diǎn)實(shí)驗(yàn)室,遼寧 沈陽(yáng) 110142)
為解決目前火災(zāi)頻發(fā),消防設(shè)施和消防人員不足的問(wèn)題,減少人民生命和財(cái)產(chǎn)安全損失,需要對(duì)火災(zāi)做出更加快速而準(zhǔn)確的檢測(cè)。目前傳統(tǒng)的煙火檢測(cè)通常借助傳感器檢測(cè)煙霧氣體特征和火焰紅外信息,這種檢測(cè)方法檢測(cè)精度低,響應(yīng)速度慢,在智能化、抗干擾和成本等方面有待加強(qiáng)?;谝曨l的煙火檢測(cè)可以很好地彌補(bǔ)上述不足。視頻煙火檢測(cè)借助攝像頭傳輸?shù)囊曨l畫面,檢測(cè)煙火位置并提供豐富的現(xiàn)場(chǎng)狀況,便于采取相應(yīng)的措施,及時(shí)解決火情。
近年來(lái),不少學(xué)者從不同的角度研究了視頻煙火的檢測(cè)問(wèn)題。文獻(xiàn)[4]根據(jù)人眼視覺(jué)注意機(jī)制,提出基于顯著性檢測(cè)和高斯混合模型的視頻煙霧分割方法,提高了檢測(cè)精度和速度。該算法過(guò)于依賴手工提取特征,算法魯棒性較差,難以應(yīng)用于復(fù)雜的煙火檢測(cè)場(chǎng)景。文獻(xiàn)[5]針對(duì)視頻火災(zāi)檢測(cè)算法泛化能力弱等問(wèn)題,提出了一種基于ViBe和機(jī)器學(xué)習(xí)的算法,該算法依靠ViBe算法以及隨機(jī)森林和支持向量機(jī)組成的兩級(jí)分類器,對(duì)前景信息進(jìn)行選擇性提取,再結(jié)合Hu矩陣訓(xùn)練出決策分類器,提升檢測(cè)穩(wěn)定性。由于隨機(jī)森林和支持向量機(jī)等算法對(duì)特征提取的能力較弱,該算法存在分類效果較差,誤報(bào)率較高的問(wèn)題。文獻(xiàn)[6]利用YCrCb顏色空間對(duì)捕獲的圖像進(jìn)行分割,使用基于分群體融合的改進(jìn)FOA算法搜索SVM最優(yōu)參數(shù)和懲罰因子,提升了對(duì)火災(zāi)圖像的分類效果。該算法以參數(shù)量較大的元啟發(fā)式算法(Meta-Heuristic Algorigthm)為基礎(chǔ),在檢測(cè)速度上不能滿足對(duì)視頻實(shí)時(shí)檢測(cè)的需求。上述方法主要依靠人工提取特征,算法的泛化能力不強(qiáng),檢測(cè)精度和速度都難以滿足實(shí)時(shí)穩(wěn)定檢測(cè)的需求。
隨著深度學(xué)習(xí)的發(fā)展,使用卷積神經(jīng)網(wǎng)絡(luò)(CNN)取代人工提取特征成為趨勢(shì),眾多學(xué)者展開(kāi)了將CNN應(yīng)用到煙火檢測(cè)中的研究。文獻(xiàn)[7]通過(guò)CNN對(duì)火災(zāi)圖像進(jìn)行自動(dòng)特征提取和分類,大幅提升了對(duì)煙火圖像分類的精度和速度,但該算法沒(méi)有深入應(yīng)用到檢測(cè)任務(wù)中。文獻(xiàn)[8]提出了一種改進(jìn)YOLOv3的火災(zāi)檢測(cè)方法,通過(guò)改進(jìn)特征提取網(wǎng)絡(luò)和多尺度檢測(cè)網(wǎng)絡(luò),提高了檢測(cè)效果,但該算法模型尺寸較大,計(jì)算成本較高。文獻(xiàn)[9]將SSD算法與輕量化模型MobileNet結(jié)合,對(duì)實(shí)時(shí)火災(zāi)圖像進(jìn)行檢測(cè),提升了算法的檢測(cè)速度,降低了模型復(fù)雜度,但在檢測(cè)精度上存在一定不足。上述深度學(xué)習(xí)方法在一定程度上提升了算法的檢測(cè)性能,但是并沒(méi)有完全平衡高檢測(cè)精度、實(shí)時(shí)檢測(cè)和小模型尺寸對(duì)算法的要求。
針對(duì)上述模型復(fù)雜度較高,檢測(cè)速度與檢測(cè)精度難以兼顧的問(wèn)題,本文提出了一種基于改進(jìn)SSD的視頻煙火檢測(cè)算法(GSSD)。首先,使用GhostNet輕量化網(wǎng)絡(luò)模型替換SSD算法中的VGG16網(wǎng)絡(luò)模型。相較于VGG16網(wǎng)絡(luò)模型,GhostNet網(wǎng)絡(luò)模型大幅度減少了模型的參數(shù)量,并在PASCAL VOC 2012數(shù)據(jù)集上具有較高的準(zhǔn)確率。使用GhostNet網(wǎng)絡(luò)模型可以提高算法的檢測(cè)速度,減少模型的參數(shù)量。其次,在SSD算法的特征映射網(wǎng)絡(luò)中使用多尺度特征融合技術(shù)。通過(guò)下采樣和Concat拼接操作,對(duì)多尺度的特征圖進(jìn)行融合,以提升模型對(duì)小目標(biāo)物體的檢測(cè)能力。通過(guò)以上改進(jìn)得到了GSSD算法,該算法有效改善了原始SSD算法檢測(cè)精度不高、檢測(cè)速度慢和模型參數(shù)量大的問(wèn)題。在PASCAL VOC 2012數(shù)據(jù)集和自制的煙火數(shù)據(jù)集上對(duì)GSSD算法進(jìn)行實(shí)驗(yàn)。結(jié)果表明,該算法具有更高的檢測(cè)精度和速度,以及更小的模型復(fù)雜度。
SSD算法主要由骨干網(wǎng)絡(luò)、特征映射網(wǎng)絡(luò)和檢測(cè)網(wǎng)絡(luò)組成,其算法流程如圖1所示。
圖1 SSD算法流程
SSD算法使用改進(jìn)的VGG16網(wǎng)絡(luò)模型作為骨干網(wǎng)絡(luò)。考慮到全連接層會(huì)干擾模型對(duì)特征位置信息的提取,將VGG16網(wǎng)絡(luò)中的兩個(gè)全連接層FC6和FC7替換為3×3卷積和1×1卷積。為進(jìn)一步提取特征,在FC7層后添加4組卷積層:Conv6、Conv7、Conv8和Conv9,每組卷積層首先使用1×1卷積核進(jìn)行下采樣,然后使用3×3卷積核進(jìn)行特征提取。
特征映射網(wǎng)絡(luò)選取若干尺寸不一的特征圖,為檢測(cè)提供更多的特征信息。SSD算法選用6個(gè)卷積得到的特征圖為:Conv4_3、FC7、Conv6_2、Conv7_2、Conv8_2、Conv9_2。
在檢測(cè)網(wǎng)絡(luò)中,使用2個(gè)大小為3×3的卷積核對(duì)特征提取網(wǎng)絡(luò)的6張?zhí)卣鲌D進(jìn)行卷積運(yùn)算,其中一個(gè)卷積核輸出類別置信度,另一個(gè)為回歸提供對(duì)象位置信息。所有運(yùn)算結(jié)果被合并后,轉(zhuǎn)移給損失計(jì)算函數(shù),然后迭代訓(xùn)練直到模型收斂。
由于SSD算法采用改進(jìn)的VGG16網(wǎng)絡(luò)模型作為骨干網(wǎng)絡(luò),其僅僅依靠多層卷積進(jìn)行特征提取,網(wǎng)絡(luò)結(jié)構(gòu)較為單一,網(wǎng)絡(luò)模型中含有較多冗余計(jì)算。針對(duì)SSD算法的不足,本文通過(guò)相對(duì)應(yīng)的改進(jìn)提出了對(duì)視頻煙火檢測(cè)效果更優(yōu)的GSSD算法。
GhostNet是一種通過(guò)少量計(jì)算表征更多特征的輕量化卷積神經(jīng)網(wǎng)絡(luò)。相較于MobileNet系列和ShuffleNet系列等輕量級(jí)網(wǎng)絡(luò)模型,GhostNet具有更高的準(zhǔn)確率。各輕量化模型在PASCAL VOC 2012數(shù)據(jù)集上的比較結(jié)果見(jiàn)表1所列。由表1可知,GhostNet雖然具有較大的模型參數(shù)量,但準(zhǔn)確率得到了大幅度提升,可以認(rèn)為GhostNet相比其他輕量化模型具有一定優(yōu)勢(shì)。
表1 在PASCAL VOC 2012數(shù)據(jù)集上各輕量化網(wǎng)絡(luò)比較
GhostNet的核心思想是使用一系列線性運(yùn)算代替部分卷積,減少推理計(jì)算量。這種結(jié)合卷積運(yùn)算和線性運(yùn)算的模塊叫做GhostNet module,其結(jié)構(gòu)如圖2所示。
圖2 Ghost module網(wǎng)絡(luò)結(jié)構(gòu)
GhostNet module將傳統(tǒng)的卷積分為三步。首先使用較少的卷積核生成第一部分特征圖;其次對(duì)該部分特征圖采用深度卷積(Depthwise Convolution)運(yùn)算得到第二部分特征圖;最后將兩組特征圖通過(guò)Concat方式拼接,得到GhostNet module的運(yùn)算結(jié)果。
為對(duì)比GhostNet module和VGG16中普通卷積的運(yùn)算成本,分別計(jì)算所需的浮點(diǎn)計(jì)算量和運(yùn)算時(shí)的參數(shù)量。當(dāng)輸入特征圖的尺寸為××,輸出特征圖的尺寸為××,普通卷積核大小為×,通道卷積核大小為*×*,Ghost module中標(biāo)準(zhǔn)卷積數(shù)為/時(shí),使用VGG16普通卷積的浮點(diǎn)計(jì)算量為:
Ghost module的浮點(diǎn)計(jì)算量為:
VGG16普通卷積的參數(shù)量為:
Ghost module的參數(shù)量為:
由公式(1)~公式(4)可以看出,相較于標(biāo)準(zhǔn)卷積運(yùn)算,Ghost module壓縮了大約倍的浮點(diǎn)計(jì)算量和參數(shù)量。
通過(guò)對(duì)Ghost module的堆疊,可以得到GhostNet的兩種殘差結(jié)構(gòu)(Ghost BottleNeck),如圖3所示。stride=1的Ghost BottleNeck(G1-bneck)串聯(lián) 2個(gè) Ghost module用于特征提取;stride=2的Ghost BottleNeck(G2-bneck)在2個(gè)Ghost module之間添加了步長(zhǎng)為2的深度卷積,使G2-bneck可以用于下采樣。
圖3 Ghost BottleNeck網(wǎng)絡(luò)結(jié)構(gòu)
深層卷積層中的小目標(biāo)經(jīng)過(guò)多次卷積和池化操作后,容易丟失大量的特征信息;在淺層卷積層中存在目標(biāo)特征提取不足,冗余信息過(guò)多以至于干擾檢測(cè)效果等問(wèn)題。本文通過(guò)將淺層特征與深層特征進(jìn)行多尺度融合的方式來(lái)改善。綜合考慮檢測(cè)精度與模型計(jì)算量,對(duì)算法進(jìn)行改進(jìn),如圖4所示。
圖4 特征融合示意圖
多尺度特征融合分為三步。首先對(duì)Conv5_1層的特征圖做卷積運(yùn)算,將通道數(shù)擴(kuò)張到112個(gè);其次將Conv5_6層特征圖上采樣到19×19,并將特征通道數(shù)由160個(gè)降為112個(gè);最后將Conv5_1層、Conv5_5層和Conv5_6層的特征圖做Concat拼接,拼接后特征圖的通道數(shù)為336個(gè)。
Conv5_1層位于網(wǎng)絡(luò)較淺層,特征圖通道數(shù)較少,擁有較多的特征信息,在與Conv5_5融合前需要對(duì)其做進(jìn)一步的特征提取。為加強(qiáng)對(duì)Conv5_1層特征圖的信息提取,采用步長(zhǎng)為1,膨脹率為2,卷積核為3的空洞卷積進(jìn)行運(yùn)算??斩淳矸e是一種在不做pooling損失信息的前提下,可以擴(kuò)大卷積時(shí)的感受野,提高特征提取能力的卷積運(yùn)算,其示意如圖5所示。
圖5 空洞卷積示意圖
空洞卷積的輸入與輸出特征圖的大小關(guān)系為:
式中:為填充像素的大??;為膨脹率;為步長(zhǎng);為卷積核大??;為輸出特征圖的尺寸;為輸入特征圖的尺寸。
Conv5_6層位于網(wǎng)絡(luò)較深層,特征圖尺寸較小,在與Conv5_5融合前需要通過(guò)上采樣增大特征圖的尺寸。對(duì)Conv5_6層特征圖的上采樣操作選用雙線性插值法。相較于轉(zhuǎn)置卷積,雙線性插值法不需要訓(xùn)練新參數(shù),運(yùn)行速度更快且操作簡(jiǎn)單,更適用于對(duì)檢測(cè)速度和模型計(jì)算量有較高要求的視頻煙火檢測(cè)。
通過(guò)對(duì)SSD算法的骨干網(wǎng)絡(luò)以及特征融合模塊的改進(jìn)得到GSSD算法,該算法網(wǎng)絡(luò)結(jié)構(gòu)見(jiàn)表2所列。
表2 GSSD網(wǎng)絡(luò)結(jié)構(gòu)
在模型訓(xùn)練過(guò)程中,將Conv5_1層、Conv5_5層、Conv5_6層的輸出進(jìn)行特征融合,作為第一張?zhí)卣鲌D,再選取Conv6、Conv7_2、Conv8_2、Conv9_2、Conv10_2特征圖。使用2個(gè)大小為3×3的卷積核對(duì)檢測(cè)網(wǎng)絡(luò)中的每個(gè)特征圖進(jìn)行卷積運(yùn)算,分別得到類別置信度和回歸信息。最后將計(jì)算結(jié)果合并傳遞給損失計(jì)算函數(shù)。
本文使用的數(shù)據(jù)集為PASCAL VOC 2012公共數(shù)據(jù)集和自制的煙火數(shù)據(jù)集。PASCAL VOC 2012數(shù)據(jù)集包含20個(gè)類別,5 717張用以訓(xùn)練的圖片,5 823張用以驗(yàn)證的圖片。自制的煙火數(shù)據(jù)集包含fire和smoke兩個(gè)類別,8 199張圖片,按照7∶2∶1的比例分配為訓(xùn)練集、驗(yàn)證集和測(cè)試集。由于自制的煙火數(shù)據(jù)集圖片數(shù)量有限,為了讓模型更好地學(xué)習(xí)目標(biāo)特征和提高魯棒性,需要對(duì)數(shù)據(jù)做數(shù)據(jù)增強(qiáng)。本文對(duì)圖像進(jìn)行90°、180°、270°旋轉(zhuǎn)和水平翻轉(zhuǎn),如圖6所示。
圖6 數(shù)據(jù)增強(qiáng)
本文將通過(guò)訓(xùn)練后模型檢測(cè)的平均精度(mean Average Precision,mAP)、模型參數(shù)量(Params)和模型推理速度(FPS)做對(duì)比,其中mAP由式(6)~式(9)計(jì)算:
式中:TP為真正例;FP為假正例;FN為負(fù)正例;為種類數(shù)。
為驗(yàn)證GSSD算法的檢測(cè)性能,將GSSD算法與目標(biāo)檢測(cè)效果良好的SSD、YOLOv2、YOLOv3模型分別在PASCAL VOC 2012數(shù)據(jù)集與煙火數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)對(duì)比,4種算法的性能測(cè)試結(jié)果見(jiàn)表3所列。
表3 GSSD算法與其他目標(biāo)檢測(cè)算法的比較
在PASCAL VOC 2012數(shù)據(jù)集上,相比SSD算法,GSSD算法的檢測(cè)效果有較大幅度提升,mAP提高了2.8%,Params減少了84.64%,F(xiàn)PS提升了1.9倍。GSSD算法在SSD的基礎(chǔ)上進(jìn)行相應(yīng)改進(jìn)和拓展,提高目標(biāo)檢測(cè)的效果,顯著降低了模型參數(shù)量,提升了檢測(cè)速度。
與YOLO系列算法相比,GSSD比YOLOv2的mAP提高了19.2%,Params減少了92.5%,F(xiàn)PS提升了59%。YOLOv2算法的網(wǎng)絡(luò)結(jié)構(gòu)較為簡(jiǎn)單,僅依靠卷積層和池化層對(duì)特征進(jìn)行提取,檢測(cè)精度較低。GSSD算法比YOLOv3的mAP降低了0.5%,Params減少了93.8%,F(xiàn)PS提升了70%。YOLOv3算法使用融入殘差結(jié)構(gòu)的Darknet-53作為骨干網(wǎng)絡(luò),雖然具有比GSSD高的檢測(cè)精度,但模型參數(shù)量較大,檢測(cè)速度不能滿足視頻檢測(cè)的需求。
在煙火數(shù)據(jù)集上,GSSD算法的mAP比SSD、YOLOv2和YOLOv3分別提高了4.8%、6.8%和0.9%。在4種算法中,GSSD對(duì)煙火的檢測(cè)精度最高,在檢測(cè)速度和模型的參數(shù)量方面具有較大優(yōu)勢(shì),實(shí)驗(yàn)證明了GSSD算法在煙火檢測(cè)中的可行性。GSSD與SSD算法對(duì)煙火數(shù)據(jù)集可視化檢測(cè)對(duì)比如圖7所示。
圖7 對(duì)煙火檢測(cè)數(shù)據(jù)集可視化結(jié)果對(duì)比
本文針對(duì)視頻煙火難以高精度實(shí)時(shí)檢測(cè)和模型參數(shù)量較大的問(wèn)題,提出了GSSD算法。GSSD算法主要對(duì)SSD進(jìn)行了骨干網(wǎng)絡(luò)改進(jìn)和多尺度特征融合改進(jìn)。通過(guò)以上改進(jìn),GSSD算法對(duì)視頻煙火檢測(cè)的性能得到了提高。
在PASCAL VOC 2012數(shù)據(jù)集上GSSD算法達(dá)到了86.7%的mAP,參數(shù)量為14.6 M,F(xiàn)PS為59。與主流目標(biāo)檢測(cè)算法相比,GSSD算法具有更好的檢測(cè)效果,在縮小模型尺寸的同時(shí),檢測(cè)精度與速度也有良好的表現(xiàn)。在自行設(shè)計(jì)的煙火數(shù)據(jù)集上,GSSD算法比SSD算法的mAP提高了4.8%,達(dá)到80.2%,參數(shù)量減少了84.64%,降為14.6 M,檢測(cè)速度提升了1.9倍,F(xiàn)PS達(dá)到了59。下一步將在網(wǎng)絡(luò)模型改進(jìn)的基礎(chǔ)上,針對(duì)類火類煙目標(biāo)的檢測(cè)進(jìn)行研究,以提高算法的魯棒性。