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