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

        ?

        輕量化目標檢測算法研究及應(yīng)用

        2021-10-15 10:08:34黃靖淞左顥睿張建林
        計算機工程 2021年10期
        關(guān)鍵詞:剪枝范數(shù)網(wǎng)絡(luò)結(jié)構(gòu)

        黃靖淞,左顥睿,張建林

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

        0 概述

        近年來,卷積神經(jīng)網(wǎng)絡(luò)被廣泛地應(yīng)用到計算機視覺、自然語言處理等領(lǐng)域,各種新的檢測算法被不斷提出,然而設(shè)計的深度學習模型多數(shù)是為了追求更高的精度[1]和更好的性能,而忽略了模型的大小和推理速度。

        在目標檢測領(lǐng)域,REDMON 等提出了YOLOv1[2]、YOLOv2[3]、YOLOv3[4]系列算法。因其在速度和精度之間實現(xiàn)了較好的權(quán)衡,而引起了學術(shù)界和工業(yè)界的廣泛關(guān)注。以Faster R-CNN[5]為代表的雙階段網(wǎng)絡(luò)先生成候選區(qū)域,再提取特定的特征進行目標檢測,雖然精度較高,但計算復雜度也很高,難以在有限算力的情況下實現(xiàn)實時檢測。以YOLO 為代表的單階段目標檢測算法將生成候選區(qū)和檢測合二為一,直接得到最終的檢測結(jié)果,使得網(wǎng)絡(luò)結(jié)構(gòu)變得簡單,檢測速度較Faster R-CNN 有近10 倍的提升,這使得深度學習目標檢測算法滿足實時檢測條件成為可能。

        MobileNet 是由谷歌在2017 年提出的,是一款專注于在移動設(shè)備和嵌入式設(shè)備上的輕量級卷積神經(jīng)網(wǎng)絡(luò),并逐步發(fā)展為MobileNetv1[6]、MobileNetv2[7]、MobileNetv3[8]3 個版本。相比于傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò),在準確率小幅降低的前提下,大幅減小了模型參數(shù)和運算量,其中最重要的創(chuàng)新是提出了深度可分離卷積,用深度可分離卷積替換標準卷積可以減少計算量和參數(shù)量,提升前向推理速度。

        另外,網(wǎng)絡(luò)剪枝也是網(wǎng)絡(luò)壓縮和加速中一個重要的方向,剪枝就是去除網(wǎng)絡(luò)中一些不重要的神經(jīng)元,大幅降低了計算量和權(quán)重數(shù)量,提高了網(wǎng)絡(luò)運行效率[9]。目前剪枝主要分權(quán)重剪枝和濾波器剪枝兩種。濾波器剪枝相對于權(quán)重剪枝具有一系列優(yōu)點,包括它可以得到規(guī)則的模型、減少內(nèi)存消耗、加速網(wǎng)絡(luò)推理等。

        本文在YOLOv3 目標檢測算法的基礎(chǔ)上,使用輕量級的Mobilenet 基礎(chǔ)網(wǎng)絡(luò),將深度可分離卷積替換為標準卷積,并在此基礎(chǔ)上對網(wǎng)絡(luò)進行剪枝,以在不損失檢測精度的情況下提升檢測速度。

        1 YOLOv3 算法與Mobilenet 基礎(chǔ)網(wǎng)絡(luò)

        1.1 YOLOv3 算法

        YOLOv3 網(wǎng)絡(luò)以Darknet53 網(wǎng)絡(luò)為backbone,因其有52 個卷積層外加1 個全連接層,所以命名為Darknet53。其中卷積層是由1×1 和3×3 的卷積層組成,每個卷積層后都會有1 個BN 層和1 個LeakyReLU 層。YOLOv3 主體是由許多殘差結(jié)構(gòu)[10]組成,減少了梯度爆炸的風險,加強了網(wǎng)絡(luò)的學習能力,Concatenate 層用于將當前層的多個輸入進行拼接,UpSample 層表示上采樣,每進行一次上采樣操作,輸出特征層就擴大1 倍。YOLOv3 預(yù)測的3 個特征層大小由淺到深分別是輸入特征圖的1/32、1/16、1/8,對3 個不同尺度的特征圖進行檢測,因而實現(xiàn)了多尺度檢測[11]。另外由于淺層網(wǎng)絡(luò)提取到的邊緣、紋理等幾何特征較多,感受野較小,對小目標敏感,而深層網(wǎng)絡(luò)提取到的語義信息較多,感受野較大,對大目標敏感,所以淺層輸出適合檢測小型目標,中層輸出適合檢測中型目標,最深層輸出適合檢測大型目標。每個預(yù)測的輸出可以表示為S×S×3×(5+類別數(shù))。YOLO 將圖像劃分為S×S的網(wǎng)格,當目標中心落在某個網(wǎng)格中時,即用該網(wǎng)格去檢測,另外每個網(wǎng)格需要檢測3 個尺度的anchorbox,5 表示的是(x,y,w,h)以及置信度5 種位置信息。最后3 個輸出經(jīng)過非極大抑制[12]得到最終的坐標信息和類別的預(yù)測值。YOLOv3 算法網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示。

        圖1 YOLOv3 算法網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Network structure of YOLOv3 algorithm

        本文借鑒了Mobilenetv1 網(wǎng)絡(luò)深度可分離卷積的思想[13],將YOLOv3 的backbone 由Darknet53 替換為Mobilenetv1,并將YOLO head 網(wǎng)絡(luò)中的部分3×3標準卷積替換為深度可分離卷積,深度可分離卷積包括深度卷積和逐點卷積兩部分[14],其在盡量提取特征的同時減少了計算量。標準卷積和深度可分離卷積的結(jié)構(gòu)如圖2 所示。

        圖2 標準卷積和深度可分離卷積結(jié)構(gòu)Fig.2 Structure of standard convolution and depthwise separable convolution

        1.2 Mobilenet 基礎(chǔ)網(wǎng)絡(luò)

        假設(shè)輸入的特征圖大小為Wi×Hi×C,分別代表輸入特征圖的寬、高、通道數(shù),標準卷積大小為Wc×Hc×C×N,分別代表標準卷積的寬、高、通道數(shù)、濾波器個數(shù),輸出特征圖大小為Wo×Ho×N。那么標準卷積的計算量如下:

        相應(yīng)的深度可分離卷積是用Wc×Hc×1×C(分別表示寬、高、通道數(shù)、組數(shù))的卷積先進行逐通道卷積,再用1×1×C×N的卷積進行逐點卷積,其計算量如下:

        兩者之比為:

        Amount(dw)/Amount(Conv)=1/N+1/(Wc×Hc)

        若輸入3×608×608 的特征圖,經(jīng)過256×3×3×3的卷積核,那么計算量的比值為1/256+1/(3×3),也就是說將標準卷積替換為深度可分離卷積后,計算量會減少8~9 倍。

        基礎(chǔ)網(wǎng)絡(luò)Mobilenetv1 輸入為1×3×608×608 的圖片,網(wǎng)絡(luò)參數(shù)如表1 所示。網(wǎng)絡(luò)包括1 層標準卷積,后面接13 層深度可分離卷積,每1 層卷積后都跟1 個Batch_norm 層 和Relu 層。其中,Conv3_2、Conv4_2、Conv6 層深度可分離卷積的3 個輸出分別作為YOLO_head 網(wǎng)絡(luò)部分的3 個輸入,另外YOLO_head 網(wǎng)絡(luò)中只包含1×1 和3×3 的卷積,將其中部分3×3 卷積也改為深度可分離卷積。表1 是Mobilenetv1 的網(wǎng)絡(luò)結(jié)構(gòu)。

        表1 Mobilnetv1 網(wǎng)絡(luò)結(jié)構(gòu)Table 1 Structure of Mobilenetv1 network

        2 網(wǎng)絡(luò)剪枝技術(shù)

        2.1 剪枝

        網(wǎng)絡(luò)剪枝的目的是減掉對檢測結(jié)果貢獻不大的網(wǎng)絡(luò)層,以提升前向推理的速度[15],由于大量的運算量都在卷積層部分,因此本文主要討論對卷積層濾波器個數(shù)的剪枝,對于某一層卷積層,對其所有filter進行重要性排序,將排在后面不重要的filter減掉,這樣能在減少整體運算量的同時,對檢測精度沒有太大影響。

        對濾波器重要性排序的方法如下:

        1)以filter 非零權(quán)重值的個數(shù)為基準進行排序,即權(quán)重L0 范數(shù)[16]。

        2)對filter 每個權(quán)重值求絕對值之和進行排序,即權(quán)重L1 范數(shù)[17]。

        3)基于幾何中心的卷積核剪枝方法FPGM[18]。

        L0范數(shù)以當前卷積層的每個濾波器矩陣非零元素個數(shù)為排序依據(jù),非零元素個數(shù)越多就越重要,對檢測結(jié)果的貢獻也越大。L1范數(shù)以當前卷積層的每個濾波器矩陣元素絕對值之和為排序依據(jù),絕對值之和越大,該濾波器就越重要。文獻[18]提出了基于幾何中心的濾波器評價指標FPGM(Filter Pruning via Geometric Median),認為很多方法都是基于“較小范數(shù)不重要”的準則進行剪枝,其有效性依賴于2個要求:卷積核的范數(shù)值分布偏差必須大,即方差大;卷積核中的最小范數(shù)必須足夠小。為解決在不滿足上述2個要求的情況下也能壓縮網(wǎng)絡(luò),該方法的思想是計算每個filter與其他所有filter的歐式距離之和作為得分,得分越低表示該濾波器信息跟其他濾波器重合度越高,可以用其他濾波器替代該濾波器。

        2.2 敏感度分析

        本文依據(jù)L1 范數(shù)對濾波器進行重要性排序,只對YOLO_head 網(wǎng)絡(luò)進行剪枝,保持基礎(chǔ)網(wǎng)絡(luò)Mobilenetv1的完整性。剪枝率取0.1~0.9、步長為0.1 的一系列剪枝比率,然后對所需要剪的每一層卷積層按不同剪枝率進行剪枝,分析不同剪枝情況下檢測精度的損失情況,并繪制敏感度曲線。卷積層敏感度曲線如圖3 所示,如果曲線上升很快,則表示當前卷積層比較敏感,如果剪枝率過大會有較大的精度損失,否則如果曲線上升平緩,則表示該卷積層對檢測結(jié)果的貢獻不大,可以采用較大的剪枝率。據(jù)此對于給定的可接受的精度損失來確定每個層的剪枝率。

        圖3 卷積層敏感度曲線Fig.3 Sensitivity curve of convolution layer

        從圖3 可以看出,某些卷積層比如yolo_block.0.0.1_sep_weights、yolo_block.0.1.1_sep_weights、yolo_block.0.tip_sep_weights等層上升曲線很快,對檢測結(jié)果的貢獻很大,所以只剪很少比例的filter數(shù)目,而對于例如yolo_block.2.1.1_sep_weights、yolo_block.2.2.conv.weights、yolo_block.2.tip_sep_weights等層,當剪枝率達到0.9 時也幾乎不丟失精度,本文實驗以剪枝率0.7 作為剪枝上限。

        2.3 剪枝網(wǎng)絡(luò)配置

        對于標準卷積(Conv)和逐點卷積(sep),給定剪枝率后,其filter 的個數(shù)會相應(yīng)減少,而深度卷積(dw)的組數(shù)等于輸入特征圖的通道數(shù),所以不需給出剪枝率,其組數(shù)會隨上一層卷積層濾波器的個數(shù)而變化。表2 是剪枝前后YOLO_head 的網(wǎng)絡(luò)結(jié)構(gòu)。

        表2 剪枝前后YOLO_head 網(wǎng)絡(luò)結(jié)構(gòu)Table 2 YOLO_head network structure before and after pruning

        3 軟硬件配置

        3.1 軟硬件平臺

        本文實驗訓練平臺是遠程云端GPU Tesla V100,顯存16 GB,推理部署平臺是英偉達嵌入式GPU Jetson TX2,該平臺擁有256 顆Pascal 架構(gòu)CUDA 核心,6 顆CPU 核心[19-20]。所用訓練集和測試集來自VOC2007、VOC2012,模型的評估指標mAP。所使用深度學習框架為百度飛槳Paddle[21]框架、PaddleSlim 壓縮框架以及Paddle Inference C++推理預(yù)測庫,并用CMake 管理項目文件,CMake全稱為Cross platform Make,是一個跨平臺的構(gòu)建系統(tǒng),可以編寫一個與平臺無關(guān)的CMakeLists.txt 文件定制整個編譯流程,然后再進一步生成所需的Makefile 和工程文件[22]。使用pycharm 作為python 集成開發(fā)環(huán)境,clion 作為C++開發(fā)環(huán)境。

        3.2 訓練設(shè)置及測試結(jié)果

        在進行訓練時,與預(yù)訓練模型相匹配的層直接加載該部分網(wǎng)絡(luò)的參數(shù),不匹配的部分則讀取程序中定義的網(wǎng)絡(luò)結(jié)構(gòu)。訓練的最大batch 數(shù)設(shè)置為28 萬,batch_size 為16,初始學習率為0.000 5,在batch 數(shù)為11 萬和12.4 萬的地方學習率變?yōu)橹暗?.1 倍。

        表3 是在Tesla V100 顯卡上進行測試的結(jié)果,可以看出在YOLOv3_MobileNetV1 網(wǎng)絡(luò)基礎(chǔ)上,將YOLO_head 網(wǎng)絡(luò)部分卷積改為深度可分離卷積之后再進行剪枝,在幾乎不損失精度的前提下,使得FPS 分別提升了25.9%和40.8%。實驗結(jié)果表明:單純增大batch_size 后速度并不一定會比減小batch_size 快,并且GPU 利用率也會明顯增加,這可能跟CPU 與GPU 之間的數(shù)據(jù)傳輸、硬盤的讀寫速度等因素有關(guān)。

        表3 Tesla V100 測試結(jié)果Table 3 Test results of Tesla V100

        4 算法嵌入式部署

        如果將訓練好的模型用到實際工程中,需要在一些嵌入式硬件平臺進行部署,以達到項目落地的效果。將訓練好的模型導出為推理模型,并在嵌入式GPU TX2 平臺以C++進行前向推理,并用CMake管理頭文件和庫文件。除Paddle 本身的依賴庫之外,還用到了第三方開源庫gflags,gflags 是Google的一個命令行參數(shù)處理的開源庫,用于將命令行參數(shù)傳入到程序中,另外還有yaml-cpp 開源庫,用于對yaml 文件的讀取,兩者也都是用CMake 來進行構(gòu)建和編譯的。在TX2 上的部署流程如圖4 所示,首先通過命令行判斷讀取磁盤圖片或者板載攝像頭讀取視頻幀,然后進行目標檢測,最后將檢測結(jié)果進行顯示,并不斷重復。

        圖4 TX2 推理流程Fig.4 TX2 inferential procedure

        表4 是在嵌入式GPU TX2 平臺上的測試結(jié)果,計算4 952 張VOC 測試數(shù)據(jù)集的網(wǎng)絡(luò)前向推理幀率。YOLOv3_MobileNetV1 的幀率是5.0 frame/s,將YOLO_head 網(wǎng)絡(luò)中部分卷積層改為深度可分離卷積后的幀率為9.6 frame/s,在此基礎(chǔ)上進行剪枝后幀率達到了12.0 frame/s,分別實現(xiàn)了1.92 倍和2.4 的加速,模型規(guī)模分別減小了67.9%和78.5%,有效提升了嵌入式設(shè)備上目標檢測的推理速度。這是在盡可能不丟失精度的前提下的實驗結(jié)果,如果實際情況對速度有更高的要求,則還可以提高剪枝率,進一步加速前向推理。

        表4 TX2 測試結(jié)果Table 4 TX2 test results

        5 結(jié)束語

        本文在YOLOv3 目標檢測算法的基礎(chǔ)上,采用輕量級的Mobilenet 分類網(wǎng)絡(luò)作為backbone,并將深度可分離卷積替換YOLO_head 網(wǎng)絡(luò)部分標準卷積,在此基礎(chǔ)上通過L1 范數(shù)對卷積層filter 打分,并以此作為排序依據(jù)對網(wǎng)絡(luò)做剪枝。測試結(jié)果表明,改進算法在檢測精度丟失很少的前提下,較大地提高了算法的檢測速度,并實現(xiàn)了算法在嵌入式平臺上的部署。由于該算法具有通用性,下一步將研究算法在其他不同平臺的部署,以實現(xiàn)諸如手機移動端等硬件平臺的目標檢測。

        猜你喜歡
        剪枝范數(shù)網(wǎng)絡(luò)結(jié)構(gòu)
        人到晚年宜“剪枝”
        基于YOLOv4-Tiny模型剪枝算法
        基于加權(quán)核范數(shù)與范數(shù)的魯棒主成分分析
        矩陣酉不變范數(shù)H?lder不等式及其應(yīng)用
        剪枝
        天津詩人(2017年2期)2017-03-16 03:09:39
        基于互信息的貝葉斯網(wǎng)絡(luò)結(jié)構(gòu)學習
        知識網(wǎng)絡(luò)結(jié)構(gòu)維對于創(chuàng)新績效的作用機制——遠程創(chuàng)新搜尋的中介作用
        滬港通下A+ H股票網(wǎng)絡(luò)結(jié)構(gòu)演化的實證分析
        復雜網(wǎng)絡(luò)結(jié)構(gòu)比對算法研究進展
        一類具有準齊次核的Hilbert型奇異重積分算子的范數(shù)及應(yīng)用
        国产在线无码一区二区三区| 穿着白丝啪啪的av网站| 亚洲高清在线观看免费视频| 99久久精品人妻一区二区三区| 国内永久福利在线视频图片| 污污内射在线观看一区二区少妇| 日本成人一区二区三区| 亚洲天堂av免费在线看| 午夜宅男成人影院香蕉狠狠爱 | 日韩av在线不卡一区二区三区| 亚洲av高清不卡免费在线| 亚洲美女av一区二区在线| 果冻传媒2021精品一区| 免费看久久妇女高潮a| 亚洲日本在线va中文字幕| 久久国产精品亚洲我射av大全| 内射夜晚在线观看| 日本无遮挡吸乳呻吟视频| 99热这里只有精品久久6| 中文字幕亚洲高清视频| 精品无码国产自产拍在线观看| 自慰无码一区二区三区| 亚洲一区二区在线视频播放| 激情五月开心五月av| 美女不带套日出白浆免费视频| 午夜成人精品福利网站在线观看| 自拍亚洲一区欧美另类| 开心五月激情五月天天五月五月天 | 国产亚洲精品97在线视频一| 成人午夜福利视频镇东影视| 久久久久久亚洲AV成人无码国产 | 国产在线精品一区二区在线看| 琪琪av一区二区三区| 免费a级毛片高清在钱| 四川丰满少妇被弄到高潮| 真实国产乱视频国语| 久久精品国产亚洲av蜜臀久久| 极品粉嫩嫩模大尺度无码视频| 成熟丰满熟妇高潮xxxxx| 婷婷成人亚洲综合国产| 国产精品自线一区二区三区|