国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于MPSOC的航空圖像目標檢測系統(tǒng)設計

2021-07-14 01:30:18王宇慶聶海濤
液晶與顯示 2021年7期
關鍵詞:剪枝邊框卷積

任 彬,王宇慶,叢 振,聶海濤,楊 航

(1.中國科學院 長春光學精密機械與物理研究所,吉林 長春 130033;2.中國科學院大學,北京 100049;3.中國人民解放軍聯(lián)勤保障部隊第946醫(yī)院 醫(yī)學工程科,吉林 長春 130033)

1 引 言

目標檢測作為機器學習的一個重要研究領域,經(jīng)過了傳統(tǒng)的目標檢測算法和基于深度學習的目標檢測算法兩個階段[1]。2014年之前,傳統(tǒng)的目標檢測算法一直占據(jù)著主流地位。2001年,Paul Viola在CVPR會議中提出了Viola-Jones 算法,通過Haar-like特征和Adaboots算法有機結(jié)合實現(xiàn)了人臉檢測。4年之后,Dalal提出了HOG+SVM的方法,并應用于行人檢測。2008年,Pedro Felzenszwalb在其基礎上提出了DPM算法,通過多組件(Component)的策略解決了多視角的問題,通過基于圖結(jié)構(gòu)(Pictorial Structure)的部件模型策略解決了目標的形變問題。但這些傳統(tǒng)的目標檢測算法在進行區(qū)域選擇時往往需要遍歷整個圖像,存在時間復雜度高的問題,同時手工設計的特征魯棒性也較差。2014年之后,基于深度學習的目標檢測算法快速崛起,形成了基于候選區(qū)域的目標檢測算法和基于回歸的目標檢測算法兩個流派。前者以R-CNN為代表,這類算法精度較高,但實時性較差,不利于工程項目的實際應用[2];后者以Yolo為代表,這類算法雖然在精度方面略有遜色,但檢測速度卻遠快于基于候選區(qū)域的目標檢測算法。

另一方面,隨著無人機在軍事偵察和森林火災預警方面的應用日益普遍[3],針對無人機平臺的航空圖像目標檢測技術(shù)引起越來越多國家的注意。國外很早便開展了針對無人機平臺的檢測跟蹤系統(tǒng)的研究[4]。1997年,Olson等人提出了基于模型的準實時性跟蹤系統(tǒng),該系統(tǒng)在目標發(fā)生一定形變或者被短暫遮擋時依舊能保持較好的準確度[5]。2006年,美國先進技術(shù)研究局發(fā)布了COCOA監(jiān)控系統(tǒng),可以實現(xiàn)對行人、車輛等多種類型目標的自動檢測和軌跡跟蹤[6]。2010 年,Ibrahim 提出的 MODAT系統(tǒng)彌補了COCOA系統(tǒng)在復雜背景下準確度不高的問題[7]。國內(nèi)相關方面的研究雖然起步較晚,但發(fā)展迅速。2011年,譚熊等人提出了一種計算量小、滿足實時性的目標檢測與跟蹤算法[8],2018年,湯軼等人提出了一種基于 Kalman 濾波和粒子群優(yōu)化(PSO)算法的目標跟蹤檢測算法,將PSO算法代替窮舉法,極大地降低了計算量[9]。2020年,李航等人將深度可分離卷積應用于Yolo算法,通過減少參數(shù)量加快了網(wǎng)絡傳播速度,使算法具備嵌入式平臺移植基礎[10]。

在實際無人機目標檢測場景中檢測速度往往是比檢測精度更重要的評價指標,所以本文選擇了速度較快的一階段網(wǎng)絡Yolo V3作為基礎網(wǎng)絡。針對航空圖像目標檢測的應用場景,本文設計了合適的錨框(Anchor),通過對網(wǎng)絡的結(jié)構(gòu)進行調(diào)整,使其平均精度均值(MAP)提升了1.3%。之后對各卷積層進行基于L1范數(shù)的敏感度分析,通過剪枝操作,使模型具備了多處理器片上系統(tǒng)(MPSOC)平臺的移植基礎。

本文所采用的MPSOC硬件平臺為Xilinx推出的第二代多處理器片上系統(tǒng)(SOC)器件Zynq UltraScale+ MPSoC。作為異構(gòu)SOC平臺,該芯片中集成了多核應用處理器(四核ARM Cortex-A53應用處理器)、多核圖形處理器(雙核ARM Mali-400圖形處理器)、多核實時處理器(雙核ARM Cortex-R5實時處理器)、平臺管理單元(電源管理、錯誤管理、配置管理以及安全管理)和可編程邏輯資源(高性能計算和豐富I/O擴展等)。與傳統(tǒng)的SOC平臺相比該平臺擁有更多的資源和更高的安全性。

2 YOLO V3檢測原理

Yolo V3主干網(wǎng)絡采用DarkNet53,只保留了前52個卷積層,用于圖片特征的選擇與提取。網(wǎng)絡的具體結(jié)構(gòu)如圖1所示。整個網(wǎng)絡由5個Yolo模塊組成,每個Yolo模塊所含有的殘差模塊數(shù)目互不相同。以第二個Yolo模塊為例,整個Yolo模塊由2個殘差模塊組成,而每個殘差模塊又由2個卷積層組成,第一個卷積層所用的卷積核大小為3×3,第二個卷積層所用的卷積核的大小為1×1。同時Yolo V3算法借鑒了FPN(Feature pyramid networks)的思想,利用不同的特征層檢測不同尺度的目標[11]。整個算法會產(chǎn)生3個不同尺度特征圖,分別對應圖1中的scale1、scale2和scale3。對于輸入608×608的圖像會得到19×19、38×38和76×76的3個特征圖。

圖1 Yolo V3網(wǎng)絡結(jié)構(gòu)圖Fig.1 Yolo V3 network structure diagram

特征圖中每個單像素點(特征點)都對應著原圖中的一個區(qū)域。如76×76的特征圖,它由原圖經(jīng)8倍降采樣后得到,每個點對應的原圖區(qū)域大小為8×8。在網(wǎng)絡訓練的過程中,真實框(Ground truth)的中心點落在特征圖中哪個特征點對應的區(qū)域,哪個特征點就負責這個真實框的回歸。每個特征點對應3種不同的錨框,所以一個特征點可同時回歸3個不同的真實框。負責該真實框的特征點會選擇與其擁有最大交并比的錨框?qū)ζ湮恢眠M行回歸。在原始Yolo V3網(wǎng)絡中檢測結(jié)果的通道數(shù)為255。每個255維的通道由邊框回歸和分類情況兩部分組成。對于每個點的每個預測框(bounding box)的回歸情況需要用(x,y,w,h,confidence)5個基本參數(shù)描述,其中x、y為中心點坐標,w、h為預測框的長寬,confidence為置信度。對于分類情況部分,類別數(shù)目等于分類部分通道的維數(shù)。如COCO數(shù)據(jù)集,需要檢測的類別數(shù)為80,那么就需要一個80維的通道描述其類別情況。所以最終確定的維數(shù)情況為:3×(5+80)=255。其中3為每個單像素點擁有預測框的數(shù)量,5為邊框回歸情況,80為類別數(shù)。

3 模型改進

3.1 數(shù)據(jù)集的選擇

一個好的訓練數(shù)據(jù)集首先需要與應用場景一致。目前應用較多的COCO、VOC等數(shù)據(jù)集顯然不具備目標尺寸偏小、多尺度以及成像背景復雜等航空圖像的基本特點。目前可供選擇的數(shù)據(jù)集主要有DATO和VISDRONE。DATO數(shù)據(jù)集的目標為高空無人機所拍攝,目標多為飛機、船舶、籃球場一類,且擁有的圖片數(shù)量為2 806張。VISDRONE數(shù)據(jù)集由天津大學標注,該數(shù)據(jù)集覆蓋了中國從北到南14個城市的城市/郊區(qū)。整個數(shù)據(jù)集合共有12類,分別是:people,pedestrian,bicycle,car,van,truck,tricycle,awning-tricycle,bus,motor,other,ignore regions,圖片數(shù)量為8 629張。往往數(shù)據(jù)集越大,所得到的模型泛化能力和精度越高。本文最終選擇的數(shù)據(jù)集為VISDRONE。VISDRONE數(shù)據(jù)集主類為前10類,所以在進行模型訓練與檢測時,只采用了前10類。訓練集、測試集、驗證集中各個類別的分布情況如表1所示。

表1 VISDRONE數(shù)據(jù)分布情況Tab.1 The distribution of the VISDRONE dataset

續(xù) 表

3.2 錨框的選擇

Yolo V3原始模型在進行訓練與驗證任務時所選擇的錨框都是根據(jù)COCO數(shù)據(jù)集而設定,并不適用于VISDRONE數(shù)據(jù)集中的目標,存在尺度偏大的問題,嚴重影響回歸的準確度和效率,特別是對小目標的檢測。此處采用改進的k均值聚類方法對VISDRONE數(shù)據(jù)集中的錨框重新聚類。由于錨框聚類的根本目的在于,使錨框與所有真實框最相似,即擁有最大的平均交并比(IOU)。所以在聚類時直接用交并比代替?zhèn)鹘y(tǒng)的歐氏距離作為距離度量指標。IOU的具體定義如圖2所示:兩個矩形分別代表聚類中心邊框和待分類邊框,上面的黑色區(qū)域為兩個邊框的交集面積,下面黑色區(qū)域為兩個邊框的并集面積。

圖2 IOU定義Fig.2 Definition of IOU

雖然IOU可以較好地描述兩個邊框的距離,但我們通常把損失函數(shù)定義為:與模型的性能呈負相關,即損失函數(shù)值越小,模型性能更好。最終將k均值聚類的損失函數(shù)定義為:

loss=1-IOUavg,

(1)

其中l(wèi)oss為定義的損失函數(shù),1為常數(shù),IOUavg為所有類別交并比的平均,算法終止的條件為loss不再變化。由于k均值聚類需要事先給出聚類的類別數(shù)量k,這里對k依次取值1~19,觀察IOUavg的變化情況。

平均IOU隨k的變化趨勢如圖3所示,可以發(fā)現(xiàn)隨著k的增大,OUavg也在增大且趨于平緩。普遍認為曲線由陡峭到平滑的拐點為anchor box的最優(yōu)值[12]。從圖3可以看出k的最優(yōu)值為2,此時既可以加快損失函數(shù)的收斂,又可以消除候選框帶來的誤差。多次試驗后發(fā)現(xiàn)得到的兩個聚類中心框均為細長型,即高度遠大于寬度。所以此處為了保持Yolo V3的原始結(jié)構(gòu)的優(yōu)勢,只對最小的兩個細長型anchor進行替換。替換后的9個anchor box值為:[10,17],[16,30],[33,23],[27,38],[62,45],[59,119],[116,90],[156,198],[373,326]。

圖3 類別k與平均IOU關系曲線Fig.3 Relationship curve between category variable k and variable average IOU

3.3 網(wǎng)絡結(jié)構(gòu)的調(diào)整

Yolo V3網(wǎng)絡利用3個不同尺度的特征圖對不同大小的目標進行檢測[13]。當輸入的圖片為608×608時,最大的特征圖也只有76×76。由于在該尺度特征圖中每一個點都對應著原圖一個8×8的區(qū)域。若待檢測目標在原圖中是一個7×7的區(qū)域,那么它將會變成特征圖上的單像素點,目標檢測幾乎不可能。在更大的特征圖中尚且如此,在更小的特征圖中該區(qū)域?qū)兊酶?,更加無法檢測。

(a)目標框分布三維圖(a)3D distribution image of target box

對VISDRONE數(shù)據(jù)集中真實框的分布進行統(tǒng)計,如圖4所示:圖4(a)圖為目標框的三維分布情況,可以發(fā)現(xiàn)目標分布比較集中,且多為小目標。圖4(b)為圖4(a)的俯視圖并二值化后的圖像。定性分析并不利于問題的解決,所以將分布情況進行量化。將所有的真實框被分為5類,統(tǒng)計目標框真實框的長和寬在不同取值范圍的實際分布情況。具體如表2所示。

表2 真實框分布情況Tab.2 Ground truth distribution

表2中第一行表示真實框的大小。x、y分別表示邊框的長與寬。第二行表示在該長寬范圍內(nèi)邊框的數(shù)量??梢园l(fā)現(xiàn)有25 486個真實框在原圖上的長和寬均小于8,約占目標總量的5%,這也符合在實際航空圖像中的目標分布特點。這些真實框在最大特征圖中也僅僅是單像素點,特征無法得到很好的表達,最終造成目標無法檢出。本文提出的解決辦法為去除一個降采樣過程,這樣得到的最大特征圖中,一個點將代表原圖一個4×4的區(qū)域,這時只有3 716個實際目標框回歸會比較難,占總目數(shù)比例不足1%。極大地增加了模型對小目標的適應性。

去除一個降采樣過程,有圖5所示的4種方式:圖5(a)所示方式是直接去除darknet53網(wǎng)絡的最后一個Yolo模塊,此時主干網(wǎng)絡卷積層數(shù)目將變?yōu)?4,極大地減小了模型的參數(shù)量。但目前大量的研究表明,網(wǎng)絡層數(shù)越多越有利于特征的表達和檢測精度的提高[14],所以并沒有選擇圖5(a)方式。另一種方式為保留網(wǎng)絡的整體結(jié)構(gòu)不變,分別將第一個或第二個或第三個降采樣過程中3×3卷積核的步長改變?yōu)?。在越大的尺度上,小目標所占的像素越多,對其進行卷積特征提取工作越有意義。所以在小目標特征表達方面圖5(b)性能優(yōu)于圖5(c),圖5(c)性能優(yōu)于圖5(d)。對于圖中的圖5(b),去除一個降采樣過程后會在第一個卷積模塊中集中大量卷積層,且這些操作是在608×608的圖像中進行,會增加大量的計算。圖5(c)與圖5(d)結(jié)構(gòu)的變化也會在對應位置增加大量計算。在計算量方面圖5(b)>圖5(c)>圖5(d),為了最終在MPSOC平臺中進行部署,需要在小目標特征表達與計算量之間權(quán)衡,本文最終選擇了圖5(c)結(jié)構(gòu)。

(a)解決思路一(a)Solution idea one

3.4 模型壓縮

目前主流進行模型壓縮的方式有:量化、剪枝、蒸餾[15]。本文采用基于L1范數(shù)的敏感度模型剪枝方法。這種方法以每一個卷積層為基本單元,依次對每一個卷積層裁剪一定比例卷積核,計算剪枝之后模型MAP的變化情況。MAP下降越多代表卷積層越敏感。每一個卷積層擁有數(shù)量較多的卷積核,如何確定剪枝順序也是一個難題。本文通過對每個卷積核計算其L1范數(shù),按照L1范數(shù)從大到小排列,來確定裁剪順序。L1范數(shù)越小越先被裁減掉,這是由于L1范數(shù)較小的卷積核趨向于產(chǎn)生激活值較小的特征圖[16]。表3為對主干網(wǎng)絡darknet53的敏感度分析結(jié)果。

表3 各卷積層敏感分析結(jié)果Tab.3 Sensitivity analysis results of each convolutional layer

通過大量實驗,最終確定各個卷積層的裁減比例依次為0.41,0.35,0.77,0.10,0.40,0.67,0.11,0.91,0.14,0.14,0.95,0.16,0.95,0.15,0.95,0.07,0.95,0.07,0.95,0.10,0.95,0.13,0.95,0.08,0.95,0.06,0.31,0.95,0.26,0.95,0.26,0.95,0.23,0.95,0.21,0.95,0.22,0.95,0.27,0.95,0.27,0.95,0.28,0.76,0.95,0.49,0.95,0.59,0.95,0.49,0.95,0.55。為了恢復模型的精度,需要對剪枝后的模型進行再訓練,以恢復精度。本文沒有采用傳統(tǒng)的每剪枝一個卷積層就再訓練一次的方法,而是一次性剪枝所有層,最后統(tǒng)一再訓練,極大地降低了工作量。

續(xù) 表

4 實驗結(jié)果

本文所有模型訓練及模型壓縮過程均在NVIDIA 2080Ti中進行,最終模型的MPSOC驗證在百度Edgeboard FZ3開發(fā)板中進行。FZ3主控芯片采用Xilinx的MPSOC平臺ZYNQ,具體型號為XAZU3EG-1SFVC784I。

XAZU3EG芯片提供的硬件資源具體如圖6所示??梢钥闯鯶YNQ芯片由兩部分組成,分別為多核同構(gòu)的ARM(Advanced RISC Machine)部分(PS)和傳統(tǒng)現(xiàn)場可編程門陣列(FPGA)部分(PL)。這種異構(gòu)結(jié)構(gòu)將處理器的軟件可編程性與 FPGA 的硬件可編程性有機結(jié)合在一塊芯片上。利用片內(nèi)AXI方式代替?zhèn)鹘y(tǒng)的PCI-E通信,可以帶來更大的通信帶寬和通信穩(wěn)定性。具體的硬件資源為:運行速率高達1.5 GHz的四核ARM Cortex-A53平臺,雙核Cortex-R5實時處理器、Mali-400 MP2圖形處理單元及16 nm FinFET+可編程邏輯。在算力方面,與模型訓練平臺RTX 2080Ti相比,ZYNQ系列MPSOC遠落后于其1 755 MHz的核心頻率和4 352個流處理單元。但在功耗方面,MPSOC卻擁有著巨大的優(yōu)勢。正常工作時MPSOC功耗只有7~10 W,RTX 2080Ti卻達到了260 W。在便攜性和體積方面,ZYNQ系列MPSOC擁有更大的優(yōu)勢。采用MPSOC異構(gòu)結(jié)構(gòu)同時簡化了開發(fā)過程,PS部分為主控部分,可以先行驗證速算法的可行性,之后利用FPGA部分對算法進行硬件加速,提高算法性能。在開發(fā)工具方面,Xilinx提供的vivado系列工具極大地簡化了開發(fā)流程。本文同時對系統(tǒng)環(huán)境進行了搭建,具體工作包括利用Petalinux制作Linux系統(tǒng),編譯與移植OpenCV庫及百度開發(fā)的深度學習接口工具PaddleLite等。MPSOC平臺外接的硬件設備包括USB攝像頭與HDMI顯示器,分別用于對圖像進行采集與結(jié)果顯示。

圖6 MPSOC資源介紹[17]Fig.6 Introduction to MPSOC hardware resources

對優(yōu)化前后模型的性能進行分析,評價指標為平均準確率(Average Precision,AP)和召回率。其中AP用于衡量模型對某一類的檢測精度。對圖7和圖8比較可以發(fā)現(xiàn),大多數(shù)類別的AP都有所上升。這是由于去除一個降采樣過程后,不只是小目標的特征得到了更好的表達,識別難度不大的大目標特征也能得到更好的表達。

圖7 優(yōu)化前模型APFig.7 AP index of the model before optimization

圖8 優(yōu)化后模型APFig.8 AP index of the optimized model

另一個評價指標為召回率。召回率用于描述陽性樣本經(jīng)過模型后的輸出結(jié)果依舊為陽性的樣本占所有陽性的比例。每一類的召回率所取的值為P-R曲線中最小非零精確度所對應的召回率。從圖9可以發(fā)現(xiàn)優(yōu)化后模型的各個類的召回率都有所上升。其中對于car這一類目標的召回率達到了93%以上。在圖10中橫坐標為模型回歸所得到的預測框的數(shù)量和數(shù)據(jù)集中實際擁有邊框的比值。以people為例,其驗證集中共有目標21 006個,優(yōu)化前模型檢測出的people類共有8 053個,優(yōu)化后模型檢出4 946個,所以其橫坐標分別為0.38和0.23。結(jié)合圖9可以發(fā)現(xiàn),優(yōu)化前的模型可以檢測較多的people預測框,但是其召回率卻不高,這意味著將很多不是people的物體檢測為people,誤檢率較高。而這種誤檢情況在優(yōu)化前模型的各個類別中普遍存在。與原始模型相比優(yōu)化后的模型誤檢率降低,準確度得到了較大地提高。

圖9 優(yōu)化前后模型召回率變化Fig.9 Change of model recall rate before and after optimization

圖10 優(yōu)化前后模型回歸邊框數(shù)量變化Fig.10 Number of regression borders changed before and after optimization

圖11所示為改進前后模型對同一張圖片的檢測效果的比較。左側(cè)圖(a)、(c)為原始模型檢測結(jié)果,右側(cè)圖(b)、(d)為優(yōu)化后模型的檢測結(jié)果??梢园l(fā)現(xiàn)無論是對于小目標還是大目標,優(yōu)化后的網(wǎng)絡檢測精度都得到了明顯提高。利用VISDRONE測試集對算法改進前后、剪枝前后的性能進行了統(tǒng)計比較。如表4所示,其中MAP50為10個類的AP50平均后的結(jié)果,可以得到優(yōu)化后網(wǎng)絡的MAP50提高了1.3%,性能甚至優(yōu)于最新的YoloV4算法。通過基于敏感度的剪枝后模型MAP雖然有所下降,但在算法規(guī)模方面剪枝后網(wǎng)絡卻達到了91.9 M,是原模型246 M的37%。檢測速度達到34.4 fps,是原模型的2倍。

(a)優(yōu)化前模型檢測結(jié)果一(a)Detection result 1 of the model before optimization

表4 模型性能比較Tab.4 Model performance comparison

同時將剪枝后的模型在MPSOC平臺中進行了實景驗證,搭建的實驗平臺如圖12所示。該算法對視頻序列中出現(xiàn)的一些較小目標也取得了較好的效果,相比較原始算法,速度方面也有了較大提升。對于接入的608×608圖像,檢測速度可以達到13 fps,基本滿足航空圖像目標檢測的要求。與GPU平臺相比,該平臺可以在資源有限的情況下實現(xiàn)對航空圖像中多類目標的檢測,同時擁有更高的便攜性和更低的功耗。

圖12 MPSOC硬件平臺Fig.12 MPSOC hardware platform

5 結(jié) 論

本文針對航空圖像目標檢測的特點,通過改變錨框和調(diào)整卷積層結(jié)構(gòu)對Yolo V3算法進行優(yōu)化,使算法的MAP提高了1.3%。同時利用基于敏感度的剪枝算法對模型進行壓縮,參數(shù)規(guī)模變?yōu)樵瓉淼?7%,檢測速度提高了1倍。最后在MPSOC平臺進行了實驗驗證,并取得了較好的檢測效果。實驗結(jié)果表明,該算法基本滿足航空體圖像目標檢測的需求,同時系統(tǒng)平臺也為深度學習算法在無人機端的移植奠定了基礎。

猜你喜歡
剪枝邊框卷積
一模六產(chǎn)品篩板模具的設計與應用
智能制造(2022年4期)2022-08-18 16:21:14
人到晚年宜“剪枝”
基于3D-Winograd的快速卷積算法設計及FPGA實現(xiàn)
基于YOLOv4-Tiny模型剪枝算法
從濾波器理解卷積
電子制作(2019年11期)2019-07-04 00:34:38
基于傅里葉域卷積表示的目標跟蹤算法
用Lightroom添加寶麗來邊框
給照片制作專業(yè)級的邊框
剪枝
天津詩人(2017年2期)2017-03-16 03:09:39
擺脫邊框的束縛優(yōu)派
中國照明(2016年6期)2016-06-15 20:30:14
山阴县| 陆川县| 济宁市| 吉林市| 辽源市| 裕民县| 攀枝花市| 纳雍县| 沈阳市| 镇原县| 伊春市| 子长县| 凤凰县| 洛南县| 昔阳县| 潢川县| 灵寿县| 盘山县| 浮山县| 微博| 镇沅| 外汇| 崇文区| 贵定县| 青州市| 潮安县| 渝中区| 嘉禾县| 淄博市| 桃源县| 襄汾县| 尼木县| 通山县| 介休市| 凤冈县| 平遥县| 金门县| 商南县| 普格县| 比如县| 紫金县|