高曉雷 張彬 王林惠 潘學(xué)文 段華斌 陳光輝 郭宜娟
摘要:近年來(lái)深度學(xué)習(xí)的進(jìn)步大大推動(dòng)了物體檢測(cè)的發(fā)展,其中SSD(Single Shot MultiBox Detector)方法在物體檢測(cè)領(lǐng)域應(yīng)用較多。然而傳統(tǒng)SSD難以應(yīng)用在硬件資源受限的嵌入式設(shè)備中。因此,通過(guò)分析SSD方法的基本流程和原理,采用MobileNet卷積神經(jīng)網(wǎng)絡(luò)替換SSD的VGG16網(wǎng)絡(luò)作為后續(xù)改進(jìn)基準(zhǔn)。采用不同尺度的卷積核對(duì)網(wǎng)絡(luò)各層進(jìn)行卷積特征提取,并合并各個(gè)特征圖信息。實(shí)驗(yàn)結(jié)果表明:改進(jìn)后的SSD方法能夠有效地運(yùn)行在樹(shù)莓派上。在VOC2017數(shù)據(jù)集上的平均精度均值可達(dá)72.4%。該文提出的多維度的特征圖檢測(cè)方法可以有效提高網(wǎng)絡(luò)的檢測(cè)精度。
關(guān)鍵詞: 深度學(xué)習(xí);嵌入式系統(tǒng);物體檢測(cè);圖像識(shí)別
中圖分類號(hào):TP391 ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2022)02-0015-02
引言
近年來(lái),由于深度學(xué)習(xí)的迅猛發(fā)展,人工神經(jīng)網(wǎng)絡(luò)技術(shù)在數(shù)字識(shí)別、語(yǔ)音識(shí)別、無(wú)人駕駛、圖像識(shí)別等領(lǐng)域都有著廣泛的應(yīng)用。以神經(jīng)網(wǎng)絡(luò)為代表的新一代人工智能技術(shù)正在逐漸滲透到人們生活之中,并推動(dòng)著社會(huì)的發(fā)展[1]。在傳統(tǒng)神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上,通過(guò)局部感受野、權(quán)值共享等方式,使得卷積神經(jīng)網(wǎng)絡(luò)能夠直接接收?qǐng)D片或自然語(yǔ)言等數(shù)據(jù),并進(jìn)行特征提取和分類、識(shí)別等運(yùn)算[2]。
卷積神經(jīng)網(wǎng)絡(luò)通常利用更深和更復(fù)雜的網(wǎng)絡(luò)實(shí)現(xiàn)更高的精度,但往往需要大量計(jì)算,導(dǎo)致運(yùn)行速度不具優(yōu)勢(shì)[3]。由于嵌入式平臺(tái)的硬件資源十分有限,復(fù)雜網(wǎng)絡(luò)難以發(fā)揮性能,因此需要一種輕量級(jí)、低延遲,同時(shí)精度高的網(wǎng)絡(luò)模型,能夠在嵌入式設(shè)備上較好運(yùn)行。2016年,國(guó)外學(xué)者提出了SSD(Single Shot MultiBox Detector)[4]檢測(cè)模型,與其他單級(jí)方法相比,SSD在Nvidia Titan X上58 FPS時(shí)的mAP(mean Average Precision)達(dá)到了72.1%,優(yōu)于現(xiàn)有Faster R-CNN[5]模型;在此基礎(chǔ)上,He等人設(shè)計(jì)了一款油菜害蟲(chóng)成像系統(tǒng),并結(jié)合SSD模型研發(fā)了配套的安卓應(yīng)用程序,可結(jié)合無(wú)人機(jī)與物聯(lián)網(wǎng)技術(shù)實(shí)現(xiàn)油菜蟲(chóng)害監(jiān)測(cè)[6]。因此,本文在SSD的基礎(chǔ)上優(yōu)化模型結(jié)構(gòu),構(gòu)建嵌入式圖像識(shí)別系統(tǒng)。
1 系統(tǒng)總體方案設(shè)計(jì)
1.1 硬件總體設(shè)計(jì)
硬件系統(tǒng)主要由圖像采集模塊、微型處理器模塊、圖像處理模塊和終端顯示模塊組成。圖像采集模塊主要由Pi Camera攝像頭負(fù)責(zé)采集實(shí)時(shí)圖像,并將其送入微型處理器模塊。微型處理器模塊可分為存儲(chǔ)模塊、圖像處理模塊以及電源模塊。其中,存儲(chǔ)模塊主要用于緩存圖像采集模塊采集到的實(shí)時(shí)圖像以及處理過(guò)程的中間數(shù)據(jù)。電源模塊用以給整個(gè)系統(tǒng)供給電源,該模塊能夠提供5V,2A,10W的功率輸出,能夠保證整個(gè)系統(tǒng)的穩(wěn)定工作。圖像處理模塊是微型處理器模塊的核心,其主要負(fù)責(zé)運(yùn)行卷積神經(jīng)網(wǎng)絡(luò)模型,同時(shí)給出模型檢測(cè)結(jié)果。終端顯示模塊主要接收?qǐng)D像數(shù)據(jù),并將其顯示在顯示設(shè)備上。
1.2 軟件總體設(shè)計(jì)
軟件系統(tǒng)以卷積神經(jīng)網(wǎng)絡(luò)模型為主,結(jié)合圖像采集程序以及圖像處理程序,構(gòu)成整個(gè)嵌入式卷積神經(jīng)網(wǎng)絡(luò)圖像識(shí)別軟件系統(tǒng)。為了保證系統(tǒng)的穩(wěn)定性,引入了嵌入式Linux操作系統(tǒng)用以對(duì)系統(tǒng)硬件進(jìn)行管理,同時(shí)向上提供硬件接口進(jìn)行軟件開(kāi)發(fā)。系統(tǒng)軟件流程如圖1所示。
系統(tǒng)初始化后,通過(guò)軟件調(diào)用攝像頭采集實(shí)時(shí)圖像,為了滿足卷積神經(jīng)網(wǎng)絡(luò)的輸入要求,將原始圖像裁剪成300*300 Pixel規(guī)格。隨后,將經(jīng)過(guò)裁剪的圖像送入卷積神經(jīng)網(wǎng)絡(luò)中進(jìn)行檢測(cè)。檢測(cè)結(jié)果分成兩部分,一個(gè)輸出分類用的置信度,對(duì)于Pascal VOC數(shù)據(jù)集而言,每個(gè)默認(rèn)框生成21個(gè)置信度;另一個(gè)輸出回歸用的位置信息,每個(gè)默認(rèn)框生成4個(gè)坐標(biāo)值,這四個(gè)坐標(biāo)值分別代表包圍框的X坐標(biāo)、Y坐標(biāo)以及包圍框的寬度和高度值。隨后,根據(jù)卷積神經(jīng)網(wǎng)絡(luò)的輸出值在圖像上對(duì)應(yīng)的位置處畫(huà)出包圍框并標(biāo)識(shí)檢測(cè)結(jié)果。最后,將處理后的圖像輸出給顯示模塊進(jìn)行顯示。
1.3 基于MobileNet的SSD模型設(shè)計(jì)
SSD基礎(chǔ)網(wǎng)絡(luò)是VGG16,主要使用了后者前5層結(jié)構(gòu),再利用astrous算法將全連接層F6和全連接層F7轉(zhuǎn)化成兩個(gè)卷積層,最后再增加3個(gè)卷積層。增加的卷積層的特征圖大小變化較大,能夠檢測(cè)出不同尺度下的物體,低層的特征圖其感受野較小,高層的特征圖其感受野較大,對(duì)不同的特征圖進(jìn)行卷積便可以達(dá)到多尺度的目的?;贛obileNet的SSD網(wǎng)絡(luò)結(jié)構(gòu)圖如圖2所示:
2 系統(tǒng)測(cè)試與結(jié)果分析
2.1 評(píng)價(jià)指標(biāo)
采用mAP作為模型指標(biāo),公式如下:
[IoU(Bgt,B) = (Bgt?B)(Bgt?B)>threshold] ? ? ? ? ? ? ? ? ? ? ?(1)
若對(duì)于類別A標(biāo)定的包圍框(Ground-truth)Bgt的預(yù)測(cè)的包圍框B被認(rèn)為是正確的,則標(biāo)定的包圍框Bgt與預(yù)測(cè)的包圍框B之間的交并覆蓋率(IoU)滿足公式1。PascalVOC數(shù)據(jù)集中的threshold通常設(shè)為0.5。
除此之外,還需計(jì)算每個(gè)類別的召回率和精度,分布如公式(2)、(3)所示,其中TP是被判為正確的個(gè)數(shù),F(xiàn)P是被判為錯(cuò)誤的個(gè)數(shù),Nc是該類的標(biāo)定的物體的個(gè)數(shù)。
[召回率 = TPNC] ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (2)
[精準(zhǔn)度=TPTP+FP=召回率?NC召回率?NC+FP] ? ? ? ? ? ? ? ? ? ? ? ?(3)
2.2 系統(tǒng)性能測(cè)試
為了測(cè)試算法在樹(shù)莓派上的實(shí)際性能,從VOC2007數(shù)據(jù)集的測(cè)試集中隨機(jī)抽取部分圖片進(jìn)行驗(yàn)證,其部分圖像的驗(yàn)證結(jié)果如圖3所示:
根據(jù)測(cè)試結(jié)果中各個(gè)類別的平均精確度及召回率,作出如圖4所示的精確度-召回率曲線圖。
對(duì)曲線圖中曲線包圍的面積去取均值,得到算法的平均精度值mAP=0.727,效果較好。
3 結(jié)論
為使SSD方法在嵌入式設(shè)備上能有良好的運(yùn)行效果,本文將SSD的基礎(chǔ)網(wǎng)絡(luò)從原本的VGG16卷積神經(jīng)網(wǎng)絡(luò)替換成了MobileNet網(wǎng)絡(luò)。通過(guò)實(shí)驗(yàn)分析驗(yàn)證了所提改進(jìn)方法的有效性,能夠提高SSD方法在嵌入式設(shè)備上的檢測(cè)速度,同時(shí)保持較高的檢測(cè)精度。未來(lái)拓展研究可考慮如何從整體上去優(yōu)化SSD方法,使之能夠完全適用于嵌入式設(shè)備。
參考文獻(xiàn):
[1] 蔣帥.基于卷積神經(jīng)網(wǎng)絡(luò)的圖像識(shí)別[D].長(zhǎng)春:吉林大學(xué),2017.
[2] 黃凱奇,任偉強(qiáng),譚鐵牛.圖像物體分類與檢測(cè)算法綜述[J].計(jì)算機(jī)學(xué)報(bào),2014,37(6):1225-1240.
[3] Andrew G. Howard,Menglong Zhu,Bo Chen, et. al. Hartwig Adam Efficient Convolutional Neural Networks for Mobile Vision Applications [D]. Google Inc., 2017.
[4] Cheng-Yang Fu, Alexander C. Berg. Single Shot MultiBox Detector [D]. UNC Chapel Hill Zoox Inc. Google Inc. University of Michigan, Ann-Arbor, 2016.
[5] Zhao Z Q, Zheng P, Xu S T, et al. Object detection with deep learning: A review. IEEE Transactions on Neural Networks and Learning Systems, 2019, 30(11): 3212-3232.
[6] He Y, Zeng H, Fan Y Y, et al. Application of deep learning in integrated pest management: A real-time system for detection and diagnosis of oilseed rape pests[J]. Mobile Information Systems, 2019, 2019: 1-14.
【通聯(lián)編輯:唐一東】