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