陳琳 CHEN Lin;陳傳敬 CHEN Chuan-jing;張鵬 ZHANG Peng
(山東科技職業(yè)學(xué)院,濰坊 261053)
近年來(lái),因電動(dòng)自行車入戶充電造成的火災(zāi)頻發(fā),嚴(yán)重威脅人民群眾生命財(cái)產(chǎn)安全。2021年5月10 日晚,四川成都叢樹家園小區(qū)突發(fā)電瓶車在電梯內(nèi)爆燃事故,造成數(shù)人受傷,包括1 名嬰兒。雖然,2019年7月1日,國(guó)家四部委聯(lián)合下發(fā)通知,堅(jiān)決整治電動(dòng)自行車“進(jìn)樓入戶”“人車同屋”“飛線充電”等突出問題。但是因?yàn)榫唧w操作難度太大,嚴(yán)令禁止的充電行為依舊存在。電梯作為電動(dòng)自行車入戶的主要運(yùn)輸工具,如果能夠通過(guò)電梯監(jiān)控設(shè)備對(duì)電動(dòng)自行車進(jìn)行檢測(cè)并提示,將大大降低電動(dòng)自行車入戶情況的發(fā)生,降低火災(zāi)發(fā)生的風(fēng)險(xiǎn)。
目標(biāo)檢測(cè)是計(jì)算機(jī)視覺中比較重要的研究方向,其主要任務(wù)是在給定的圖片中識(shí)別出目標(biāo)并確定其位置。因?yàn)榻o定圖片中目標(biāo)數(shù)量不定,且檢測(cè)出的目標(biāo)位置要精確,因此目標(biāo)檢測(cè)任務(wù)相比較與其他計(jì)算機(jī)視覺任務(wù)更復(fù)雜。如果能夠在電梯監(jiān)控設(shè)備中嵌入一套目標(biāo)檢測(cè)系統(tǒng),那么電梯監(jiān)控將能夠快速的檢測(cè)出電梯中的電動(dòng)自行車,從而能夠做出實(shí)時(shí)決策。
當(dāng)前目標(biāo)檢測(cè)可分為基于傳統(tǒng)的目標(biāo)檢測(cè)和基于深度學(xué)習(xí)的目標(biāo)檢測(cè),傳統(tǒng)的目標(biāo)檢測(cè)算法需要手動(dòng)設(shè)置特征及分類器。通過(guò)不同大小的滑動(dòng)窗口對(duì)整幅圖像進(jìn)行候選區(qū)域的設(shè)定,然后再將候選區(qū)域作為輸入送到認(rèn)為設(shè)置好的特征提取模塊進(jìn)行特征提取,最后將提取到的特征送入到已經(jīng)訓(xùn)練好的分類器中進(jìn)行分類。分類過(guò)程如圖1 所示。
圖1 傳統(tǒng)目標(biāo)檢測(cè)算法流程圖
傳統(tǒng)的目標(biāo)檢測(cè)算法利用滑動(dòng)窗口產(chǎn)生候選區(qū)域的方式進(jìn)行特征提取,需要定義大量的候選口,并且存在候選框重疊的部分,這種策略導(dǎo)致效率比較低。因?yàn)樾枰玫饺藶樵O(shè)計(jì)所以相比較于其他算法傳統(tǒng)的目標(biāo)檢測(cè)算法更加依賴于經(jīng)驗(yàn),人為設(shè)置的特征不多且算法的魯棒性較差。
另一種基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法是目前研究的熱點(diǎn),基于深度學(xué)習(xí)的目標(biāo)檢測(cè)分為兩類one-stage 和two-stage。Two-stage 為基于候選區(qū)域的目標(biāo)檢測(cè)器,算法需要分兩步完成,首先需要獲取候選區(qū)域,然后進(jìn)行分類,包括Fast R-CNN、Faster R-CNN 和FPN 等。One-stage 檢測(cè)為單次檢測(cè)器,可以理解為一步到位,不需要單獨(dú)尋找候選區(qū)域,包括YOLO、SSD 等,它們都是目前最優(yōu)秀的目標(biāo)檢測(cè)算法。
基于候選區(qū)域的目標(biāo)檢測(cè)如R-CNN,首先會(huì)在圖像上生成一個(gè)候選框,然后在候選框上運(yùn)行分類器進(jìn)行分類,分類完成后進(jìn)行邊框細(xì)化以及消除重復(fù)檢測(cè),并且根據(jù)圖像的具體場(chǎng)景中可能存在的其他目標(biāo)重新定義邊框。具體過(guò)程如圖2 所示。
圖2 two-stage 目標(biāo)檢測(cè)算法流程圖
基于候選區(qū)域的檢測(cè)算法檢測(cè)準(zhǔn)確率相對(duì)較高,但是算法相對(duì)復(fù)雜,流程相對(duì)較慢,針對(duì)圖像中存在的每個(gè)目標(biāo)需要進(jìn)行單獨(dú)的訓(xùn)練,算法的優(yōu)化難度較大,需要用到的檢測(cè)時(shí)間更多,不利于實(shí)時(shí)的目標(biāo)檢測(cè)。
One-stage 方法省去了two-stage 方法中的確定候選區(qū)域步驟直接生成目標(biāo)的類別概率和坐標(biāo)位置,通過(guò)一次檢測(cè)即可得到最終的檢測(cè)結(jié)果,其檢測(cè)流程如圖3 所示。主流的one-stage 目標(biāo)檢測(cè)算法有YOLO 和SSD。
圖3 one-stage 目標(biāo)檢測(cè)算法流程圖
YOLO 算法將目標(biāo)檢測(cè)表示為單一的回歸問題,直接從像素到邊界框坐標(biāo)和類概率??梢岳脝蝹€(gè)卷積網(wǎng)絡(luò)同時(shí)預(yù)測(cè)盒子的多個(gè)邊界框和類概率。YOLO 可以在全圖像上訓(xùn)練模型并直接進(jìn)行優(yōu)化檢測(cè)性能,這種統(tǒng)一的模型比傳統(tǒng)的目標(biāo)檢測(cè)方法有一些好處。
首先,YOLO 速度非???。由于YOLO 將檢測(cè)視為回歸問題,所以不需要復(fù)雜的流程,目標(biāo)檢測(cè)速度比傳統(tǒng)算法模型要快。其次,與基于候選區(qū)域的算法不同,YOLO 隱式地編碼了目標(biāo)類別的上下文信息。和fast R-CNN 相比,YOLO 的背景誤檢數(shù)量少了一半。第三,YOLO 學(xué)習(xí)目標(biāo)的泛化表示,應(yīng)用于新領(lǐng)域或碰到意外的輸入時(shí)不太可能出故障。
盧迪[1]等人利用YOLOv4-tiny 算法識(shí)別手勢(shì),姚銳琳[2]等人利用YOLOv4-tiny 算法進(jìn)行行人視頻檢測(cè),叢玉華[3]等人利用YOLOv4-tiny 算法進(jìn)行安全帽的檢測(cè),化嫣然[4]等利用YOLOv4-tiny 算法對(duì)航拍圖像進(jìn)行車輛檢測(cè)。
Redmon J[6]等人在CVPR2016 首次提出yolo 算法YOLOv1,開辟了單階段目標(biāo)檢測(cè)算法的先河。其目標(biāo)檢測(cè)步驟為:將一幅多目標(biāo)圖像劃分為多個(gè)網(wǎng)格,通過(guò)網(wǎng)絡(luò)得到每個(gè)網(wǎng)格的分類概率、預(yù)測(cè)框和置信度,將每個(gè)框中的概率與置信度相乘,得到每個(gè)框特定于每個(gè)類的置信分?jǐn)?shù),輸出目標(biāo)位置和類別信息。
YOLOv1 將目標(biāo)檢測(cè)看作是回歸問題,用一個(gè)網(wǎng)絡(luò)實(shí)現(xiàn)位置輸出與類別檢測(cè),實(shí)現(xiàn)了一個(gè)統(tǒng)一系統(tǒng),從目標(biāo)檢測(cè)的角度來(lái)看是單階段的。算法檢測(cè)速度快,能夠滿足高精度實(shí)時(shí)目標(biāo)檢測(cè)的需求;基于圖像全貌進(jìn)行預(yù)測(cè)而不是基于部分圖像,可以充分考慮外觀上下文信息;泛化能力好,當(dāng)訓(xùn)練集與測(cè)試集類型不同時(shí),有較好的適應(yīng)性,應(yīng)用于新領(lǐng)域時(shí)出現(xiàn)崩潰情況較少,可移植性好。YOLOv1 雖然檢測(cè)速度快,但在定位方面不夠準(zhǔn)確,并且召回率較低。
YOLOv2[7]采用了①新的主干網(wǎng)絡(luò)Darknet-19,主要采用3*3 的卷積,利用1*1 卷積來(lái)降維。相比較于v1 中采用的主干網(wǎng)絡(luò)GoogleNet,降低了模型的計(jì)算量和參數(shù),有了更快的速度。②增加路由層,來(lái)融合底層圖像的特征,進(jìn)一步提高檢測(cè)精度。在與訓(xùn)練階段,先采用224*224 的數(shù)據(jù)輸入,然后再將輸入調(diào)整為448*448,以此來(lái)讓模型適應(yīng)高分辨率數(shù)據(jù)的輸入,提高檢測(cè)平均準(zhǔn)確率。③將v1 中使用的全連接層刪除,使用卷積和Faster R-CNN 中的先驗(yàn)框策略來(lái)預(yù)測(cè)邊界框,使用K-means 方法對(duì)邊界框進(jìn)行聚類,得到更合適的錨點(diǎn)框。④通過(guò)多尺度訓(xùn)練,解決不同圖片大小輸入的問題,得到較好的預(yù)測(cè)效果。
YOLOv3[8]將主干網(wǎng)絡(luò)從v2 的Darknet-19 改為Darknet-53,加深了網(wǎng)絡(luò)結(jié)構(gòu)。不再使用原來(lái)的池化操作改為使用殘差的跳層連接,用步長(zhǎng)為2 的卷積來(lái)進(jìn)行下采樣。仍然采用K-means 方法對(duì)邊界框進(jìn)行聚類,得到更合適的錨點(diǎn)框。雖然檢測(cè)精度有所提高,但是檢測(cè)速度卻有所下降。
YOLOv4[9]將 v3 中 的 Darknet -53 替 換 為CSPDarknet53,將原來(lái)的激活函數(shù)Leakly 改為Mish;在網(wǎng)絡(luò)中加入SPP 結(jié)構(gòu),增大感受野,提高網(wǎng)絡(luò)特征的傳達(dá)能力,節(jié)省網(wǎng)絡(luò)訓(xùn)練時(shí)間;通過(guò)新的數(shù)據(jù)增強(qiáng)算法Mosaic 進(jìn)行數(shù)據(jù)增強(qiáng)。
YOLOv4-tiny 是YOLOv4 的簡(jiǎn)化版,訓(xùn)練參數(shù)為YOLOv4 的十分之一,隨著訓(xùn)練參數(shù)的減少,檢測(cè)速度要比YOLOv4 更好。當(dāng)然更少的參數(shù)以及更快地速度都是用準(zhǔn)確率換來(lái)的。因?yàn)閅OLOv4-tiny 只保留了2 個(gè)預(yù)測(cè)分支,所以對(duì)于小物體的檢測(cè)以及出現(xiàn)多目標(biāo)折疊情況時(shí)檢測(cè)效果不好,但是對(duì)于獨(dú)立的物體檢測(cè)效果還是很好的。
本文選擇YOLOv4-tiny 作為目標(biāo)檢測(cè)的原因有2 個(gè)。①相比較于其他的目標(biāo)檢測(cè)算法,YOLOv4-tiny 參數(shù)量比較少,檢測(cè)速度快,能夠比較方便的部署在電梯監(jiān)控系統(tǒng)內(nèi);②本文的使用場(chǎng)所相對(duì)固定,且電動(dòng)自行車的尺寸大小相對(duì)固定,不會(huì)存在太大的差異。因此訓(xùn)練數(shù)據(jù)與真實(shí)場(chǎng)景數(shù)據(jù)尺寸不會(huì)有較大差異,從算法的角度考慮,這種情況下不需要太多的不同尺寸的特征層進(jìn)行目標(biāo)檢測(cè)。
2.2.1 網(wǎng)絡(luò)結(jié)構(gòu)
YOLOv4-tiny 是YOLOv4 的簡(jiǎn)化版,YOLOv4-tiny 的訓(xùn)練參數(shù)有5918006 個(gè),而YOLOv4 的訓(xùn)練參數(shù)有64363101。可以看出YOLOv4-tiny 的訓(xùn)練參數(shù)是YOLOv4訓(xùn)練參數(shù)的1/10,大大精簡(jiǎn)了網(wǎng)絡(luò)結(jié)構(gòu)在進(jìn)行目標(biāo)檢測(cè)是,YOLOv4-tiny 的檢測(cè)速度明顯高于YOLOv4。其網(wǎng)絡(luò)結(jié)構(gòu)如圖4 所示。
圖4 YOLOv4-tiny 網(wǎng)絡(luò)結(jié)構(gòu)圖
YOLOv4-tiny 主要由CSPdarknet53_tiny 和FPN 兩部分組成。CSPdarknet53_tiny 作為主干網(wǎng)絡(luò),用于對(duì)圖像候選框進(jìn)行分類和坐標(biāo)預(yù)測(cè)。FPN 主要解決的是物體檢測(cè)中的多尺度問題,通過(guò)簡(jiǎn)單的網(wǎng)絡(luò)連接改變?cè)诓辉黾釉心P陀?jì)算量的前提下,大幅度提升物體檢測(cè)的性能[10]。
CSPdarknet53_tiny 網(wǎng)絡(luò)主要包含CBL 結(jié)構(gòu)與CSP 結(jié)構(gòu)。其中CBL 結(jié)構(gòu)主要由卷積層(Conv)、批量標(biāo)準(zhǔn)化層(BN)和激活函數(shù)LeakyReLU 組成。LeakyReLU 可以解決神經(jīng)元“死亡”問題,其公式為:
CSP 結(jié)構(gòu)輸入特征在殘差塊堆疊通道旁再增加一條殘差邊通道,然后將兩個(gè)通道進(jìn)行Concat 操作后輸出結(jié)果。CSP 結(jié)構(gòu)如圖5 所示。
圖5 CSP 結(jié)構(gòu)圖
主干網(wǎng)絡(luò)會(huì)將13×13 的特征層進(jìn)行上操作后與26×26 的特征層進(jìn)行融合,提高特征提取能力,最后會(huì)分別生成通道數(shù)為na×(nc+5)的兩個(gè)輸出通道,na 代表錨框數(shù)量;nc 為類別數(shù)。26×26 的通道預(yù)測(cè)小目標(biāo),13×13 的通道預(yù)測(cè)大目標(biāo)[5]。
2.2.2 檢測(cè)模型
檢測(cè)模型如圖6 所示。具體步驟為:
圖6 檢測(cè)模型
①訓(xùn)練階段:
1)獲取視頻數(shù)據(jù)(包含電動(dòng)自行車);
2)將視頻數(shù)據(jù)通過(guò)OpenCV 技術(shù)分割為視頻幀;
3)通過(guò)濾波,去模糊等算法進(jìn)行視頻幀數(shù)據(jù)增強(qiáng);
4)將處理好的數(shù)據(jù)輸入到Y(jié)OLOv4-tiny 算法中進(jìn)行訓(xùn)練,得到訓(xùn)練模型。
②檢測(cè)階段:
1)將實(shí)時(shí)視頻數(shù)據(jù)輸入;
2)將實(shí)時(shí)視頻數(shù)據(jù)分割為視頻幀;
3)對(duì)視頻幀數(shù)據(jù)進(jìn)行去噪處理,提高檢測(cè)率;
4)將處理好的視頻幀送入訓(xùn)練好的檢測(cè)模型;
5)判定是否有電動(dòng)自行車;
6)如果有電動(dòng)自行車,則報(bào)警提示,電梯門常開,直到檢測(cè)不到電動(dòng)自行車;
7)如果沒有電動(dòng)自行車,則電梯門關(guān)閉,電梯正常運(yùn)行。
本文利用YOLOv4-tiny 算法檢測(cè)速度快的優(yōu)點(diǎn),模型訓(xùn)練參數(shù)少,能夠適用于嵌入式設(shè)備中等特點(diǎn)對(duì)電梯內(nèi)電動(dòng)自行車進(jìn)行實(shí)時(shí)檢測(cè),能夠很好的解決電動(dòng)自行車入戶充電的問題。