林向會 謝本亮



摘要:目標檢測是計算視覺的重要研究方向之一,尤其是基于移動設備平臺實現快速精準的目標檢測功能是非常有必要的。為了能夠在移動設備上進行實時目標檢測,本文提出一種基于RaspberryPi4B硬件平臺,采用TensorFlowLite開發環境,加載MobileNet-SSD網絡結構算法的方案。方案采用的MobileNet卷積神經網絡和SSD卷積神經網絡結合的方法具有檢測速度快、占用內存少等優點。同時,本文還對MobileNet-SSD網絡結構算法進行了微小優化。該方案通過在公開的數據集上進行測試,對MobileNet-SSD網絡結構算法和其改良算法進行了結果比較,結果表明其改良算法的檢測速度有所提高,同時其檢測精度幾乎保持不變,在檢測精準度和檢測速度上都有良好表現,表明該方案具有較高的應用價值。
關鍵詞:目標檢測;計算機視覺;網絡結構;TensorFlowLite;SSD;MobileNet;MobileNet-SSD
【Abstract】Targetdetectionisoneoftheimportantresearchdirectionsofcomputationalvision.Especially,itisnecessarytoachievefastandaccuratetargetdetectionbasedonmobiledeviceplatforms.ThispaperproposesasolutionbasedontheRaspberryPi4BhardwareenvironmentwhichusestheTensorFlowLitedevelopmentplatformandloadstheMobileNet-SSDnetworkstructurealgorithm.ThecombinationofMobileNetconvolutionalneuralnetworkandSSDconvolutionalneuralnetworkusedintheschemehastheadvantagesoffastdetectionspeedandlessmemory.Atthesametime,thispaperalsooptimizestheMobileNet-SSDnetworkstructurealgorithm.TheprogramcomparestheresultsoftheMobileNet-SSDnetworkstructurealgorithmwithitsimprovedalgorithmthroughexperimentsonpublicdatasets,andtheresultsshowthatthedetectionspeedoftheimprovedalgorithmhasincreased,whilethedetectionaccuracyremainsalmostunchanged.Bothaccuracyanddetectionspeedhavegoodperformance,indicatingthattheprogramhashighapplicationvalue.
【Keywords】targetdection;computervision;networkstructure;TensorFlowLite;SSD;MobileNet;MobileNet-SSD
作者簡介:林向會(1994-),女,碩士研究生,主要研究方向:電路與系統;謝本亮(1978-),男,博士,副教授,主要研究方向:數字圖像處理、電路與系統。
0引言
隨著計算機技術的發展,目標檢測已經廣泛應用于生活的各個領域中。在交通領域,目標檢測可以通過對行人、車輛、交通燈和道路上的其他物體的檢測來實現對交通管理的協助[1]。醫療領域中,圖像的病理檢測和識別也可以通過目標檢測來完成[2]。其他領域,如遙感圖片[3]、智能監控[4]和面部識別等等也都應用了目標檢測技術。
當前的通用目標檢測算法一般基于單階段過程和兩階段過程。其中,基于單階段過程目標檢測算法直接生成目標邊界框和概率分類,無需生成候選框區,代表性的算法主要有YOLO[5]、YOLO9000[6]、SSD[7]等。基于兩階段目標檢測算法要先生成候選區域,再對候選區域進行分類和調整,代表性算法主要有R-CNN[8]、FastR-CNN[9]等。文獻[5]提出的YOLO算法實現了端到端的檢測效果并提高了檢測率,但由于其粗粒度的運算特征,檢測精度較差。文獻[7]提出的SSD算法實現了對整個圖像的回歸檢測,檢測速率高。但該算法應用于小物體檢測時,檢測精度和準確性較低。文獻[10]提出FasterR-CNN算法實現了端到端的檢測,該算法的精度高于傳統的R-CNN算法,但檢測速度較慢,無法滿足實時性檢測的要求。此外,文獻[11]提出了一種水平連接的要素金字塔網絡(FPN),該網絡采用多尺度特征映射和自上而下的結構,在小物體目標檢測時的性能優于YOLO算法。SSD算法借鑒了YOLO單元的思想和FasterR-CNN的錨定機制,即直接預測對象類別和邊界框的多對象檢測法。文獻[12]中的YOLOv3算法引入了一種多尺度預測方法來提高小型物體的檢測效果。由于FPN和YOLOv3都有大量參數,即使得檢測速度較慢,并且2種算法模型的操作都需要高性能PC設備支持。
盡管運用在PC終端上的算法具有很高的運算效率,但由于PC設備的體積大,靈活性差,其應用范圍受到了限制。為了達到目標檢測算法要用到移動設備的目的,期望目標檢測算法的網絡不僅要求準確,而且要有很快的檢測速度。近年來,研究人員已經提出了數種用于公共目標識別的高效移動神經網絡。例如,文獻[13]針對移動和嵌入式視覺應用提出了一種稱為MobileNet的有效模型,文獻[14]提出基于YOLOv3改進的算法來實現車輛的實時檢測,文獻[15]提出基于SSD算法來實現車輛識別檢測。文獻[16]提出了SqueezeNet模型,這是一種CNN架構,其參數比AlexNet少50倍,并在ImageNet上保持AlexNet級別的準確性,該模型的參數可存儲在FPGA內,從而實現移動設備的目標檢測。
雖然當前的目標檢測技術達到了高精度和速度,但這是在高性能的實驗平臺上實現的,對于在有限的計算速度和內存資源的移動設備上來說,目標檢測的性能下降嚴重。因此,本文基于RaspberryPi平臺,選擇MobileNet卷積神經網絡和SSD卷積神經網絡,即MobileNet-SSD網絡結構算法來實現實時目標檢測。實驗結果表明基于RaspberryPi4B平臺的MobileNet-SSD能實時進行目標檢測,且檢測速度快、精度較高。
1硬件平臺
樹莓派是一款微型電腦,相對于普通PC機來說,其優點就在于該微型電腦具備普通PC機的所有基本功能,體積和重量卻遠小于普通PC機,被稱為世界上最小的臺式機。基于RaspberryPi4B的運動目標檢測算法研究的意義在于,能夠克服PC機體積和重量過大的缺點,使對運動目標的檢測上更具有便攜性。相比于RaspberryPi3B+,RaspberryPi4B的特點為:更快的CPU和GPU,更多、更快的RAM;支持USB3.0的更高總線速度,還允許板載以太網端口支持真正的千兆位連接(125MBps);雙microHDMI端口連接,并支持4K輸出。
TensorFlowLite是TensorFlow的一個輕量級版本,針對移動設備做了很多優化和改造[15]。TensorFlowLite主要面向移動設備和嵌入式設備,其最大特點為:輕量級、跨平臺、快速。TensorFlowLite的主要組成部分為:模型轉換器、解釋執行器、算子庫、硬件加速代理。
2目標檢測算法分析
2.1SSD算法結構
SSD算法結構如圖1所示。SSD方法基于前饋卷積網絡。該網絡會生成固定大小的邊界框集合,對這些框中存在的對象類實例進行評分,并執行非最大抑制算法以生成最終檢測結果。
SSD算法采用的基礎網絡結構為VGG16,將VCG16最后2個連接層fc6和fc7改為卷積層,再增加4個卷積層conv6,conv7,conv8和conv9來構造網絡結構。SSD算法默認框的個數為6個,在對原始圖形進行映射時,對應的默認框的大小也不相同,計算相應框大小的數學公式為:
其中,N表示匹配的默認框的數量;x表示匹配框是否屬于類別p;g是真實值;c表示所選框目標屬于類別p的置信度。
2.2MobileNet網絡結構
MobileNet模型基于深度級可分離卷積構建的網絡結構,可將標準卷積拆分為2種形式:深度卷積和逐點卷積(1×1卷積核)[15]。和標準卷積不同,標準卷積的卷積核是對應所有的輸入通道上,而深度卷積為一個卷積核,且只對應一個輸入通道。標準卷積和深度卷積過程示意圖如圖2所示。
圖2中,M表示輸入通道的數量,N表示輸出通道數量,Dk表示卷積核,Dk×Dk表示輸出通道數量N內核大小。深度可分離卷積先是使用深度卷積對不同輸入通道進行卷積,此后再使用點卷積將上一步的輸出進行處理。這樣一來,卷積分解過程即能有效減少計算量和模型尺寸。
MobileNet中,只有第一層是普通卷積層外,其他都是深度可分離卷積層。而且除了最后的全連接層沒有ReLU層外,每個網絡層后都有BN層和ReLU非線性激活層。網絡最后的全連接層將續接softmax層進行分類。網絡的下采樣是使用帶步長的卷積層來實現的。而在全連接層前,使用了全局池化將張量的尺寸變為1×1。文獻[13]通過比較普通卷積和深度可分解卷積的計算量得出,由于Mobilenet使用了3×3的卷積,其計算量減少了接近9倍。同時準確率幾乎保持不變,下降得很少。
2.3MobileNet-SSD算法及其優化
MobileNet-SSD算法是結合了SSD算法理論和MobileNets網絡結構的一種算法結構,相對其它算法來說,MobileNet-SSD算法能大幅減少計算量,同時其檢測速度和精度幾乎不變。因此,MobileNet-SSD算法能夠在嵌入式設備上使用。
MobileNet-SSD算法結構是將SSD算法結構里的VGG16網絡去掉,而后采用MobileNet網絡。MobileNet-SSD算法結構大致可分為2類。一類是輸入層,本文實驗中的輸入層為300×300像素值矩陣;另一類為卷積層,這類卷積層一共有22層。前14個卷積層conv0~conv13和MobileNet算法結構的卷積層相同,而于其后增加的8個卷積層則用來對網絡中進行檢測。
MobileNes算法結構由于采用了深度可分離卷積,其網絡模型進行了壓縮、網絡尺寸得到了減小。但是若要應用于嵌入式的平臺的實時檢測,其網絡結構仍需進行優化。在對MobileNets算法結構的前14個卷積層分析后得出:對于Conv0~Conv3卷積層,深度可分離卷積層和普通卷積層兩者計算耗費時長都較多;對于Conv4~Conv13卷積層,深度可分離卷積層和普通卷積層計算時間計算耗時有差異,前者計算耗時較少,而后者計算耗時較多。因此,本文通過調整Conv0~Conv13卷積層的結構,采用ReLU6函數,來實現目標的實時檢測。
3平臺搭建與檢測分析
3.1樹莓派視覺系統搭建
樹莓派視覺系統包括樹莓派4B主板、IO擴展板、500萬像素攝像頭、PCA9685舵機驅動板、16G內存卡等配件。在樹莓派系統里實現目標檢測,需要搭建樹莓派桌面,首先使用遠程SSH工具連接樹莓派,接著在樹莓派上安裝TightVNC包,最后運行遠程桌面程序VNC-Viewer。在VNCServer欄中,輸入樹莓派的IP地址,按connect連接并輸入樹莓派用戶名和密碼后就可以看到樹莓派桌面。
在此基礎上將進行TensorFlowLite環境搭建[17],具體步驟為:
(1)更新RaspberryPi。
(2)下載及保存庫并創建虛擬環境。
(3)安裝TensorFlowLite和OpenCV。
3.2TensorFlow-Lite運行及實時目標檢測
首先,通過關閉所有不使用的應用程序來釋放內存和處理能力;接著,檢查攝像頭是否正確連線,確保攝像頭可以正常使用。將自己在PC端訓練優化的模型通過FileZilla客戶端軟件,打開名為“TFLite_model”的文件夾,其中包含detect.tflite和labelmap.txt文件,復制到樹莓派桌面文件home/pi/tflite1目錄。接著,通過從home/pi/tflite1目錄中發出以下命令來運行實時網絡攝像頭檢測腳本。TFLite_detection_webcam.py腳本可與USB攝像頭一起使用。輸入命令時要注意字母大小寫和文件名不要輸錯,否則會提示不能打開文件夾,無法運行程序。
實時目標檢測的模塊內容有:模型訓練、模型轉換、目標檢測、圖像獲取、圖像處理和結果輸出。實時目標檢測模塊的關系示意圖如圖3所示。在命令編寫結束后,系統會初始化幾分鐘,這時就會出現一個窗口,顯示網絡攝像頭。檢測的對象將實時顯示邊框和標簽。如圖4所示。
3.3實時目標檢測系統效果及分析
本次實驗對數據集分別使用MobileNet-SSD算法及其改良算法在RaspberryPi4B上進行測試,2種算法測試后的結果見表1、表2。通過對比發現,經過優化的MobileNet-SSD算法的檢測速度有所提高,mAP下降了3.728個百分點,在對精度沒有較大減小的情況下,提高了檢測速度。MobileNet-SSD算法及其改良算法各性能的對比見表3。
4結束語
本文研究并實現的是在樹莓派上搭建TensorFlow-Lite框架并運行轉換為TFLite模型的目標檢測程序,系統設定在RaspberryPi4B硬件平臺上運行,整個系統實現了實時目標檢測。經過實驗可知檢測精度和識別速度較好,表明系統的硬件實現是可行的,可以用在需要移動嵌入式設備進行檢測的場景中。
參考文獻
[1]JUJianguo,XINGJinsheng.MovingobjectdetectionbasedonsmoothingthreeframedifferencemethodfusedwithRPCA[J].MultimediaToolsandApplications,2019,78(21):29937-29951.
[2]HUSSEINS,KANDELP,BOLANCW,etal.Lungandpancreatictumorcharacterizationinthedeeplearningera:Novelsupervisedandunsupervisedlearningapproaches[J].IEEETransactionsonMedicalImaging,2019,38(8):1777-1787.
[3]LIUJing,YANGShuojin,TIANLiang,etal.Multi-componentfusionnetworkforsmallobjectdetectioninremotesensingimages[J].IEEEAccess,2019(7):128339-128352.
[4]XUH,YANGZ,CHENG,etal.Agroundmovingtargetdetectionapproachbasedonshadowfeaturewithmultichannelhigh-resolutionsyntheticapertureradar[J].IEEEGeoence&RemoteSensingLetters,2017,13(10):1572-1576.
[5]REDMONJ,DIVVALAS,GIRSHICKR,etal.Youonlylookonce:Unified,real-timeobjectdetection[J].arXivpreprintarXiv:1506.02640,2015.
[6]REDMONJ,FARHADIA.YOLO9000:Better,Faster,Stronger[C]∥IEEEConferenceonComputerVision&PatternRecognition.Honolulu,Hawaii:IEEE,2017:6517-6525.
[7]LIUW,ANGUELOVD,ERHAND,etal.SSD:SingleshotmultiBoxdetector[C]∥EuropeanConferenceonComputerVision.SpringerInternationalPublishing.Cham:Springer,2016:21-37.
[8]GIRSHICKR,DONAHUEJ,DARRELLT,etal.Richfeaturehierarchiesforaccurateobjectdetectionandsemanticsegmentation[C]//2014IEEEConferenceonComputerVisionandPatternRecogntion.Ohio,USA:IEEE,2014:580-587.
[9]GIRSHICKR.FastR-CNN[C]∥ProceedingsoftheIEEEInternationalConferenceonComputerVision.Santiago,Chile:IEEE,2015:1440-1448.
[10]RENS,HEK,GIRSHICKR,etal.FasterR-CNN:Towardsreal-Timeobjectdetectionwithregionproposalnetworks[J].IEEETransactionsonPatternAnalysis&MachineIntelligence,2017,39(6):1137-1149.
[11]LINTY,DOLLARP,GIRSHICKR,etal.Featurepyramidnetworksforobjectdetection[C]∥2017IEEEConferenceonComputerVisionandPatternRecognition(CVPR).Honolulu,HI:IEEE,2017:936-944.
[12]REDMONJ,FARHADIA.YOLOv3:Anincrementalimprovement[J].arXivpreprintarXiv:1804.02767,2018.
[13]HOWARDAG,ZHUM,CHENB,etal.MobileNets:EfficientConvolutionalNeuralNetworksformobilevisionapplications[J].arXivpreprintarXiv:1704.04861,2017.
[14]李漢冰,徐春陽,胡超超.基于YOLOV3改進的實時車輛檢測方法[J].激光與光電子學進展,2020,57(10):332-338.
[15]劉寒迪,趙德群,陳星輝,等.基于改進SSD的航拍施工車輛檢測識別系統設計[J].國外電子測量技術,2020,39(7):127-132.
[16]IANDOLAFN,HANS,MOSKEWICZMW,etal.SqueezeNet:AlexNet-levelaccuracywith50xfewerparametersand<0.5MBmodelsize[J].arXivpreprintarXiv:1602.07360,2016.
[17]李雙峰.TensorFlowLite:端側機器學習框架[J].計算機研究與發展,2020,57(9):1839-1853.