亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于輕量化Yolov5算法的目標(biāo)檢測系統(tǒng)

        2022-11-25 02:56:08張利紅蔡敬菊
        關(guān)鍵詞:輕量化部署卷積

        張利紅,蔡敬菊

        (1.中國科學(xué)院 光電技術(shù)研究所,四川 成都 610209;2.中國科學(xué)院大學(xué),北京 100049)

        0 引 言

        目標(biāo)檢測是計算機(jī)視覺的重要研究領(lǐng)域之一,要求能對圖像中的目標(biāo)位置進(jìn)行精準(zhǔn)定位、種類精確識別。隨著深度學(xué)習(xí)和智能互聯(lián)技術(shù)的發(fā)展,將目標(biāo)檢測算法應(yīng)用至終端的需求不斷增強(qiáng),但受限于嵌入式設(shè)備的內(nèi)存和算力資源,參數(shù)量多、結(jié)構(gòu)復(fù)雜的模型部署時的計算開銷和通信耗時是個亟待解決的問題。

        近年來,對模型進(jìn)行輕量化改進(jìn)主要分為兩類:網(wǎng)絡(luò)結(jié)構(gòu)壓縮、權(quán)重數(shù)值壓縮。前者以SqueezeNet[1]、MobileNet[2]、ShuffleNet[3]等輕量化模型結(jié)構(gòu)系列為代表,后者中網(wǎng)絡(luò)減枝和量化是應(yīng)用最廣泛的兩種方法。

        自2012年以后,基于深度學(xué)習(xí)的目標(biāo)檢測算法成為主流研究方向,并分為單階段和雙階段兩類。雙階段檢測算法以R-CNN[4-5]系列為代表,需要先獲取目標(biāo)區(qū)域隨后進(jìn)行候選框的選取,檢測精度較高的同時計算量大又比較復(fù)雜;不適合進(jìn)行終端部署。單階段檢測算法以Yolo[6-9]系列為代表,將候選區(qū)域生成階段省略掉,直接將檢測任務(wù)視為回歸問題進(jìn)行端到端的檢測,檢測速度和精度相對其他深度目標(biāo)檢測算法在嵌入式設(shè)備上進(jìn)行部署更占優(yōu)勢。

        Rk3399pro是福州瑞芯微電子開發(fā)的專門針對終端推理的國產(chǎn)AI芯片,芯片架構(gòu)采用大小核處理器內(nèi)嵌NPU神經(jīng)網(wǎng)絡(luò)處理器的方案換取高性能、低功耗和高擴(kuò)展性,兼具高速總線PCIE和超強(qiáng)的視頻編解碼能力,以上特點(diǎn)使其適用于目標(biāo)檢測算法部署。

        該文以Yolov5s算法為模型結(jié)構(gòu)基礎(chǔ),對其Backbone特征提取層使用mobilenetv2[10]進(jìn)行替換,并通過網(wǎng)絡(luò)模型稀疏化獲得縮放因子,根據(jù)縮放因子的分布對卷積核做重要性排序,并考慮到Rk3399pro芯片架構(gòu)特點(diǎn)進(jìn)行卷積通道數(shù)裁剪約束。其次通過對減枝后的模型通過將32位浮點(diǎn)數(shù)據(jù)進(jìn)行非對稱8位量化減少權(quán)重參數(shù),并充分考慮到平臺的多核處理器資源,使用CPU-GPU-NPU多線程協(xié)同計算。對圖像前后處理和硬件推理時間模糊后,實(shí)現(xiàn)了實(shí)時的魯棒目標(biāo)檢測系統(tǒng)。

        1 Yolov5算法及輕量化改進(jìn)

        Yolo系列算法將檢測任務(wù)統(tǒng)一為回歸問題,省去Region proposal階段,直接可從一張圖像中預(yù)測出bouning box的坐標(biāo)及目標(biāo)各類別概率。

        1.1 Yolov5算法

        Yolov5是由Uitralytics公司發(fā)布的單階段算法,基于pytorch訓(xùn)練而成,并按模型大小排序?yàn)閥olov5x、yolov5l、yolov5m、yolov5s四個模型,其中v5s網(wǎng)絡(luò)模型相較于yolov1-v4系列,在檢測精度相仿的基礎(chǔ)上,實(shí)現(xiàn)了寬度深度、權(quán)重參數(shù)更小,更適合部署至嵌入式平臺中。

        Yolov5可以分為Input輸入端、Backbone、Neck、Head輸出端四個部分,如圖1所示。Yolov5在Input輸入端對圖像進(jìn)行自適應(yīng)填充預(yù)處理,對不同數(shù)據(jù)集自適應(yīng)計算anchor大小,并采用Mosaic數(shù)據(jù)增強(qiáng)的方法,將四張圖片進(jìn)行隨機(jī)非對稱縮放、裁剪和排布組合,實(shí)現(xiàn)對目標(biāo)樣本大小和背景豐富;同時Yolov5相比v4增加了正樣本的anchor數(shù)目,顯著增加訓(xùn)練速度,減少收斂時間。Backbone中的focus模塊主要用于將輸入的圖片數(shù)據(jù)進(jìn)行切片,即將原本圖像的高、寬轉(zhuǎn)化為了特征信息通道,對矩陣進(jìn)行卷積后就得到了下采樣的特征圖,從而減少前向計算中特征提取的時間花銷。Backbone中主要分為瓶頸跨階段局部結(jié)構(gòu)BottleneckCSP和空間金字塔池化模塊SPP,實(shí)現(xiàn)了對不同尺度的特征提取。其中Neck中采用了特征金字塔FPN自底向上傳遞語義特征,與路徑聚合結(jié)構(gòu)PAN自上向下傳遞位置特征相結(jié)合。Neck實(shí)現(xiàn)不同網(wǎng)絡(luò)層的信息融合,在Head輸出端可實(shí)現(xiàn)更精準(zhǔn)的預(yù)測。

        1.2 特征提取網(wǎng)絡(luò)

        Yolov5中的Focus模塊在平臺部署的時候并不能帶來更高的精度提升,甚至略微增加了模型參數(shù)量,于是用Conv卷積模塊進(jìn)行替代。同時將Backbone中復(fù)雜的BottleneckCSP模塊替換為MobileNetv2。

        MobileNetv1使用深度可分離卷積的堆疊替代標(biāo)準(zhǔn)卷積,其包括深度卷積和逐點(diǎn)卷積兩部分,可在同等卷積輸入下減少模型參數(shù)量和計算開銷。

        假設(shè)標(biāo)準(zhǔn)卷積與深度可分離卷積的輸入特征圖寬為Wc、高為Hc、卷積核數(shù)為M、通道數(shù)為N,輸出特征圖大小為Wo×Ho×N,如圖2所示。而深度卷積在標(biāo)準(zhǔn)卷積的基礎(chǔ)上將卷積核數(shù)改為1后,并與送入1×1逐點(diǎn)卷積模塊后的卷積結(jié)果相加。兩者的計算和參數(shù)量相比均如式(1)所示:

        (1)

        Mobilenetv2在其基礎(chǔ)上除了沿用深度可分離卷積外還加入了Expansion layer和線性連接的Bottleneck layer,分別實(shí)現(xiàn)高維特征與低維特征之間的映射,模型體積僅為mobilev1的1/4。該文將原yolov5s的特征提取層中的BottleneckCSP替換后,可實(shí)現(xiàn)網(wǎng)絡(luò)結(jié)構(gòu)輕量化。

        1.3 模型減枝

        網(wǎng)絡(luò)減枝被廣泛應(yīng)用于卷積網(wǎng)絡(luò)壓縮中,可以有效地降低網(wǎng)絡(luò)復(fù)雜度和緩解過擬合,并提高前向推理速度。基于卷積核的結(jié)構(gòu)化減枝指從卷積核層面進(jìn)行考慮,在初始時正常訓(xùn)練網(wǎng)絡(luò),隨后將權(quán)重鏈接低于判斷閾值的卷積核或通道進(jìn)行移除,最后對稀疏后的網(wǎng)絡(luò)進(jìn)行微調(diào)即可在輕微損失精度時獲得輕量化模型。

        在對卷積核重要性的判斷中,Li等[11]使用卷積核權(quán)重的L1范數(shù)值作為判斷標(biāo)準(zhǔn),He[12]則以卷積核的非零權(quán)重值個數(shù)及L0范數(shù)為標(biāo)準(zhǔn)進(jìn)行判斷。Ye[13]則考慮到了較小范數(shù)對提取特征準(zhǔn)確度的影響,Hu[14]則以卷積核權(quán)重的稀疏程度排序作為減枝標(biāo)準(zhǔn)。此外還有些學(xué)者研究通過集成減枝的方法,綜合多種參數(shù)排序依據(jù)進(jìn)行模型減枝[15-16]。

        該文對網(wǎng)絡(luò)BN層中可學(xué)習(xí)的參數(shù)進(jìn)行L1正則化稀疏訓(xùn)練,得到接近0的稀疏縮放因子,并采用L1范數(shù)對卷積核重要性進(jìn)行評價的方式進(jìn)行減枝,流程如圖3所示。即按照遞減順序?qū)⒚總€卷積層的濾波器矩陣絕對值總和排列,設(shè)定一個閾值將低于此閾值的卷積核去除。

        為了避免單一閾值參數(shù)的評價方式造成誤減、結(jié)構(gòu)通道數(shù)發(fā)生巨變或檢測精度下降過多,并且考慮到嵌入式平臺MAC硬件單元對優(yōu)化模型加速時對卷積通道數(shù)要求最好為3的倍數(shù),在剪枝時設(shè)計判斷函數(shù)(如式(2)),進(jìn)一步抑制減枝通道數(shù)范圍。

        (2)

        其中,N表示網(wǎng)絡(luò)減枝后的通道數(shù),x表示原網(wǎng)絡(luò)卷積核通道數(shù),f(x)表示經(jīng)減枝后小于x且是9的倍數(shù)的最大值。

        1.4 模型量化

        模型量化指將32位浮點(diǎn)運(yùn)算轉(zhuǎn)化為定點(diǎn)計算,可以有效壓縮參數(shù)、降低內(nèi)存占用,但也會略微降低檢測精度。目前常用的量化方法分為三類:二三值化、線性量化以及對數(shù)量化。二三值化過于簡單的位運(yùn)算操作會帶來極大的精度損失,而對數(shù)運(yùn)算將同底的冪指數(shù)相乘的復(fù)雜操作不利于AI芯片底層加速實(shí)現(xiàn)。因此該文考慮使用線性量化中非對稱和對稱量化兩種方案驗(yàn)證擇優(yōu)選取。

        根據(jù)近幾年的量化模型研究8位量化能夠盡量在損失精度較小的情況下實(shí)現(xiàn)模型大小的壓縮,并分為對稱量化和非對稱量化兩種。根據(jù)谷歌對量化研究的白皮書指導(dǎo)可知,對大部分網(wǎng)絡(luò)而言非對稱(unit8)量化對網(wǎng)絡(luò)精度損失最小[17]。其二者區(qū)別在于計算公式中是否存在零點(diǎn)值的漂移,同時還根據(jù)不同網(wǎng)絡(luò)權(quán)重參數(shù)值在壓縮后的分布相關(guān)。因此,該文分別對兩種量化方式都進(jìn)行精度損失測驗(yàn)。

        兩種量化方式屬于32位浮點(diǎn)數(shù)據(jù)映射到8位定點(diǎn)的不同計算方式,區(qū)別在于是否存在零點(diǎn)值Z的偏移。

        (3)

        其中,xf表示輸入的float32類型數(shù)據(jù),n表示量化后數(shù)據(jù)的bit位數(shù),Q表示量化后數(shù)值。

        對模型采用不同的量化方式可以發(fā)現(xiàn)(見圖4),使用8位定點(diǎn)量化的模型大小將減至量化前的1/4,將FP32的浮點(diǎn)數(shù)張量轉(zhuǎn)化為unit8張量,有助于減少內(nèi)存帶寬和存儲空間,并進(jìn)一步提高系統(tǒng)吞吐量,降低系統(tǒng)延時。

        2 實(shí)驗(yàn)結(jié)果與分析

        實(shí)驗(yàn)選擇目標(biāo)檢測常用的PASCAL VOC數(shù)據(jù)集進(jìn)行訓(xùn)練,包括常見的vehicle、household、animal、person四個大類及20個小類。檢測目標(biāo)樣本豐富,特征背景不一,可用于訓(xùn)練測試在不同環(huán)境需求下的深度目標(biāo)檢測算法。對數(shù)據(jù)集中少部分標(biāo)注不清或目標(biāo)重疊或較小的圖片進(jìn)行篩選和數(shù)據(jù)增強(qiáng)操作。

        未移植前模型以pytorch為框架,訓(xùn)練硬件環(huán)境設(shè)置為GPU:RTX 2060 SUPER,CPU:i5-10400,內(nèi)存16 G;python:3.6;CUDA10.1,cuDNN7.6.5,opencv:3.4.5;移植后以RKNN為框架,嵌入式設(shè)備:Rk3399pro。在PC機(jī)上安裝交叉編譯環(huán)境,通過ssh協(xié)議遠(yuǎn)程登錄到板端,將在PC端編寫的程序用CMake工具編寫Cmakelist.txt配置文件實(shí)現(xiàn)跨平臺的編譯和管理。在pycharm上進(jìn)行python代碼的編寫訓(xùn)練,在VScode進(jìn)行C++程序的部署落地。

        評價模型精確度指標(biāo)采用mAP(mean average precision),其由模型訓(xùn)練中每一類檢測目標(biāo)的精確率(Precision)對應(yīng)的召回率(Recall)在0至1的范圍內(nèi)進(jìn)行積分后求和,再除以總的檢測目標(biāo)類別數(shù)得到。

        (4)

        其中,TP表示檢測目標(biāo)被模型正確識別為正例的個數(shù),F(xiàn)P表示被模型錯誤識別為正例的個數(shù),F(xiàn)N表示被錯誤識別為負(fù)例的個數(shù),N值為20。

        為防止單次模型訓(xùn)練中存在的誤差,文中數(shù)據(jù)均是經(jīng)過五次平均后的結(jié)果。

        2.1 輕量化實(shí)驗(yàn)

        在原yolov5s的網(wǎng)絡(luò)結(jié)構(gòu)上進(jìn)行輕量化改進(jìn),輸入圖像大小為416×416,分別就替換特征提取網(wǎng)絡(luò)、網(wǎng)絡(luò)減枝、量化后的網(wǎng)絡(luò)與原網(wǎng)絡(luò)進(jìn)行性能對比。在PC端的模型對比為Pytorch框架下,在Rk3399pro端的對比在RKNN框架下,從pt模型轉(zhuǎn)換為RKNN模型需要模型訓(xùn)練的框架版本及神經(jīng)網(wǎng)絡(luò)op算子能被RKNN Toolkit識別進(jìn)而才能被硬件支持,而原yolov5s導(dǎo)出的pt模型并不滿足條件。RKNN模型開發(fā)應(yīng)用流程如圖5所示。

        在原版yolov5s模型基礎(chǔ)上,通過更改模型訓(xùn)練框架版本、使用常規(guī)op替換特殊op算子以及編寫能被硬件支持的op算子解決硬件支持問題后,且未進(jìn)行文中的模型輕量化改進(jìn)直接導(dǎo)出的模型標(biāo)注為yolov5s.RKNN。

        由表1中數(shù)據(jù)可見,與原yolov5s.pt模型相比,改進(jìn)特征提取網(wǎng)絡(luò)和進(jìn)一步剪枝后的模型在PC端的推理耗時大幅減少,檢測速度從140 fps/s提升至370 fps/s,模型精度在參數(shù)量降低了17.1%的基礎(chǔ)上損失了6.74%。而將兩種離線模型轉(zhuǎn)換為Rk3399pro支持的RKNN框架下進(jìn)行部署后,論文提供了無量化、非對稱及對稱8位量化三種不同精度和運(yùn)行速度的模型方案,供不同檢測性能需求的應(yīng)用場景下進(jìn)行選擇。其中對稱與非對稱8位量化模型參數(shù)量大小相同時,非對稱8位量化對yolov5s及文中模型均損失精度更低。

        表1 不同模型性能對比

        文中模型檢測精度mAP值略微低于yolov5s.RKNN,但在理論檢測速度上從18.6 fps/s大幅提升至50 fps/s。在一些要求檢測速度的特殊應(yīng)用場景下,采用文中輕量化方案會更加合理,對于存在的精度損失問題,實(shí)驗(yàn)中對較小或遮擋的目標(biāo)也能有所檢測。

        2.2 算法通用性實(shí)驗(yàn)

        該文主要針對yolov5s在輕量化部署方向上進(jìn)行探索改進(jìn),yolo其他系列算法采用Darknet網(wǎng)絡(luò)框架構(gòu)建訓(xùn)練而成,在檢測不同特征樣本的數(shù)據(jù)集時,可能相較yolov5s的適配性更高。為探索不同算法的部署效果,驗(yàn)證提出的改進(jìn)方案具有一定的普適性,對yolov2-v4系列在數(shù)據(jù)預(yù)處理后的KITTI數(shù)據(jù)集訓(xùn)練,并同樣進(jìn)行輕量化實(shí)驗(yàn),結(jié)果如表2所示。

        表2 改進(jìn)yolo系列輕量化模型前后檢測效果對比

        由表2可見,對yolo系列而言,采用文中改進(jìn)方式均可實(shí)現(xiàn)在Rk3399pro上進(jìn)行輕量化部署,為后續(xù)進(jìn)一步探索其他改進(jìn)方法提供了理論和數(shù)據(jù)支持。

        2.3 嵌入式部署實(shí)驗(yàn)

        對算法網(wǎng)絡(luò)進(jìn)行輕量化改進(jìn)后,在實(shí)際部署至終端時需要考慮最大化利用硬件設(shè)備資源,以減少圖像數(shù)據(jù)傳輸和推理中不必要的耗時。在Rk3399pro采用CPU-GPU-NPU多線程協(xié)同計算方案(見圖6)優(yōu)化算法運(yùn)行速度[18],即:(1)圖像獲取與預(yù)處理;(2)數(shù)據(jù)推理;(3)數(shù)據(jù)后處理與顯示。

        以上三種分支結(jié)構(gòu)中計算復(fù)雜度最高的就是數(shù)據(jù)推理,數(shù)據(jù)推理中的卷積計算占到整個目標(biāo)檢測系統(tǒng)90%的計算量應(yīng)交由NPU工作。其余兩個分支結(jié)構(gòu)都與圖像處理相關(guān)交由GPU實(shí)現(xiàn)。而CPU則負(fù)責(zé)系統(tǒng)調(diào)度,協(xié)調(diào)各個預(yù)算單元降低GPU功耗和NPU負(fù)載。

        在開發(fā)測試過程中發(fā)現(xiàn),NPU專注推理加速時整個模型推理過程耗時將極小,而圖像預(yù)處理和后處理時間較長。該文將利用兩個CPU大核分時復(fù)用NPU對GPU預(yù)處理的圖像數(shù)據(jù)進(jìn)行加速推理,隨后CPU小核調(diào)用GPU進(jìn)行數(shù)據(jù)后處理和顯示。

        實(shí)驗(yàn)證明使用8位量化后的Our mobilenetv2-yolov5s模型在Rk3399pro的理論推理性能達(dá)到50幀/s,比不進(jìn)行網(wǎng)絡(luò)結(jié)構(gòu)輕量化的8位量化yolov5s.RKNN模型的基礎(chǔ)上提升了近1.7倍。

        為比較Rk3399pro同其他國產(chǎn)AI芯片平臺在目標(biāo)檢測算法部署上的性能差異,同時考慮到不同國產(chǎn)平臺的AI算子支持和軟件開發(fā)環(huán)境差異,僅對yolov3 tiny模型進(jìn)行部署,檢測速度數(shù)據(jù)比較如圖7所示。

        由圖7可知,雖然不同AI芯片存在算力、軟硬件開發(fā)環(huán)境差異,但Rk3399pro由于相對而言在硬件加速的適配效果較好,對yolo系列算法而言還是比較適合做目標(biāo)檢測算法應(yīng)用的嵌入式平臺之一。

        3 結(jié)束語

        以yolov5s算法為基礎(chǔ),使用MobileNetv2替換Backbone特征提取層中的BottleneckCSP結(jié)構(gòu)、Conv替換Focus模塊達(dá)到網(wǎng)絡(luò)輕量化。針對Rk3399pro芯片結(jié)構(gòu)特點(diǎn)對卷積核通道數(shù)約束后基于L1范數(shù)進(jìn)行稀疏減枝,并對比了不同量化方式后模型差異,驗(yàn)證文中算法采用非對稱8位量化精度損失更低、檢測速度相較原模型更快。為證明算法改進(jìn)的普適性,對Yolo其他系列算法同樣進(jìn)行實(shí)驗(yàn);為證明采用Rk3399pro平臺部署的合理性,對其他國產(chǎn)AI平臺也進(jìn)行相關(guān)實(shí)驗(yàn)比較??芍谑褂梦闹心P洼p量化、c++部署、多核并行等改進(jìn)后,能在Rk3399pro上實(shí)現(xiàn)實(shí)時的目標(biāo)檢測系統(tǒng)。

        猜你喜歡
        輕量化部署卷積
        汽車輕量化集成制造專題主編
        一種基于Kubernetes的Web應(yīng)用部署與配置系統(tǒng)
        基于3D-Winograd的快速卷積算法設(shè)計及FPGA實(shí)現(xiàn)
        晉城:安排部署 統(tǒng)防統(tǒng)治
        部署
        從濾波器理解卷積
        電子制作(2019年11期)2019-07-04 00:34:38
        一種輕量化自卸半掛車結(jié)構(gòu)設(shè)計
        智富時代(2019年2期)2019-04-18 07:44:42
        基于傅里葉域卷積表示的目標(biāo)跟蹤算法
        部署“薩德”意欲何為?
        太空探索(2016年9期)2016-07-12 10:00:02
        瞄準(zhǔn)掛車輕量化 鑼響掛車正式掛牌成立
        專用汽車(2016年1期)2016-03-01 04:13:19
        色av综合av综合无码网站| 亚洲一区二区高清在线| 丰满熟女人妻一区二区三区| 精品婷婷国产综合久久| 精品亚洲一区二区三区四区五| 亚洲av无码一区东京热久久| 亚洲一区二区三区av无码| 国产精品美女久久久久| 人人看人人做人人爱精品| 亚洲日韩精品久久久久久| 超高清丝袜美腿视频在线| 久久精品一区二区熟女| 午夜性刺激免费看视频| 少妇人妻在线无码天堂视频网| 一二三四在线观看免费视频| 久久精品无码专区东京热| 亚洲国产视频精品一区二区| 国产在线av一区二区| 3d动漫精品啪啪一区二区免费| 熟妇与小伙子matur老熟妇e| 国产乱人伦偷精品视频免| 人妖熟女少妇人妖少妇| 中文字幕精品亚洲字幕| 夜夜添夜夜添夜夜摸夜夜摸| 欧美最猛黑人xxxx黑人表情| 精品久久久久久午夜| 日韩精品极视频在线观看免费| 99久久99久久精品免费看蜜桃| 在线亚洲欧美日韩精品专区| 中文乱码字幕高清在线观看| 熟女免费观看一区二区| 男人边做边吃奶头视频| 福利网址在线观看| 日韩人妻无码中文字幕一区| 日韩一区二区中文字幕视频| 亚洲小说区图片区色综合网| 中国猛少妇色xxxxx| 亚洲色AV性色在线观看| 久久精品伊人久久精品伊人| 国产美女爽到喷出水来视频| 亚洲国产成人影院在线播放|