999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于改進YOLOv4 算法的輕量化網絡設計與實現

2022-03-12 05:56:16孔維剛李文婧王秋艷曹鵬程宋慶增
計算機工程 2022年3期
關鍵詞:嵌入式檢測模型

孔維剛,李文婧,王秋艷,曹鵬程,宋慶增

(1.天津工業大學 計算機科學與技術學院,天津 300387;2.天津工業大學 電氣工程與自動化學院,天津 300387;3.中國電子科技集團公司信息科學研究院,北京 100086)

0 概述

在計算機視覺領域,圖像識別算法不斷推陳出新,其在遙感監測、醫療衛生、軍事科技等方面取得了較大成就。從算法的角度來看,卷積神經網絡憑借其卓越的特征提取能力和可擴展性,在圖像識別領域表現優異,使得目標檢測不斷地從傳統的識別方法向基于深度學習的識別方法發展。目前的深度學習算法大致可分為二階段算法和一階段算法兩類:二階段算法先從圖像中選取候選框,然后在該候選框中得到分類和回歸結果,該類算法包括RCNN[1]、Fast-RCNN[2]、Faster-RCNN[3]等,算法能得到較高的準確率,但訓練步驟繁瑣,且占用了較多空間;一階段目標檢測算法(如SSD[4]、YOLO[5-7]等)不需要候選框,它們直接通過卷積操作來進行分類和回歸預測,進而得到物體的類別和坐標信息,該類算法的速度快、占用空間小。嵌入式平臺對低功耗和低能耗有較大需求,因此,需要一個更加輕便靈活的網絡結構來完成推理工作。

本文在YOLOv4 算法[8]的基礎上進行網絡結構改進和量化處理,使其滿足微算力、低功耗的需求。在特征提取層,采用更加輕便的MobileNetv3[9]設計,利用深度可分離卷積(PW 和DW)降低參數量和計算量,并對MobileNetv3 進行改進,使其更加貼合YOLOv4 的檢測層。在此基礎上,對網絡進行8 bit的量化操作,從而在犧牲少量精確度的前提下大幅降低模型所占空間。

1 相關工作

YOLOv4 是YOLO(You Only Look Once)系列目標檢測算法中的第四版,相較YOLOv3 算法,YOLOv4 網絡結構并沒有太大改變,但是在數據預處理層面、損失函數層面都對YOLOv3 進行了改進,使得網絡在速度未降低的前提下精確度大幅提升。YOLOv4 算法流程如圖1 所示。

圖1 YOLOv4 算法流程Fig.1 YOLOv4 algorithm procedure

YOLOv4 的主要創新在于Bag of freebies[10]和Bag of specials:

1)Bag of freebies 是指目標檢測器在不增加推理損耗的情況下達到更好的精度,通常只需轉變訓練策略或只增加訓練成本,如用馬賽克增強(Mosaic data augmentation)方法將4 張圖片拼成1 張,增加單GPU 的顯存利用率從而提升其訓練能力,或利用自對抗訓練在原始圖片上增加一些輕微擾動,使得在人分辨不清的情況下誘導模型進行分類,或在標簽處理中采用組內標簽平滑的手段,損失函數層面運用Focal Loss 等不改變網絡結構的方法,并利用模擬余弦退火的方法改進學習率。

2)Bag of specials 是指插入模塊用來增強某些屬性,從而大幅提高目標檢測的準確性。

2 網絡結構設計

2.1 YOLOv4 結構介紹

特征提取網絡CSPDarkNet53 中采用CSPNet,可以大幅減少計算量并提高推理速度和準確性。YOLOv4 將DarkNet53 分成若干個CSPNet 進行處理,進而形成CSPDarkNet53 特征提取網絡結構。此外,通過添加SENet[11]來學習通道之間的相互依賴關系,從而給通道間施加注意力機制,使網絡有主次地學習通道間的特征。

采用空間金字塔池化(Spatial Pyramid Pooling,SPP)[12]的原理是對全連接層前的卷積層,執行3 個不同尺度的最大池化操作,然后進行拼接形成一個一維的向量,上述過程對輸入圖片尺寸沒有要求,因此,輸入圖片的高寬比和大小可以任意取值。

2.2 MobileNetv3 介紹

本文利用Pytorch 框架,將YOLOv4 的特征提取層改為MobileNetv3-large 網絡結構,該網絡是NetAdapt算法與自動神經網絡搜索(Neural Architecture Search,NAS)的結合。

MobileNetv3 綜合了MobileNetv1[13]的深度可分離卷積、MobileNetv2[14]的具有線性瓶頸的逆殘差結構、MnasNet 的基于SE(Squeeze and Excitation)結構的輕量級注意力模型這3 種模型的思想,并將最后一步平均池化層前移同時移除最后一個卷積層。MobileNetv3 網絡結構如表1所示,其中,k為擴展層通道數。

表1 MobileNetv3 網絡結構Table 1 MobileNetv3 network structure

表1 所述網絡結構為原始MobileNetv3 網絡,該網絡共20 層,其中,后3 層通過池化和卷積的方法完成圖像分類任務,由于本文面向檢測識別任務,因此只取前17 層并對其進行一些優化處理。

2.3 MobileNetv3 網絡改進

本文在MobileNetv3 結構中保留了SE 模塊,使網絡有主次地學習每層特征。在檢測層,輸出3 個不同尺度的分支,分別在BottleNeck 的第7 層、第13 層、第17 層進行提取,撇棄第17 層之后的模塊,然后對這3 層分別進行PW 卷積操作以變換維度,使其能夠與檢測層銜接。

為了能在保留高維特征的前提下縮短延時,本文將平均池化前的層移除并用1×1 卷積來計算特征圖。特征生成層被移除后,先前用于瓶頸映射的層也不再需要,這將減少10 ms 的開銷,在提速15%的同時降低了操作量。由于后續的量化操作中不能對Leaky ReLU、h-swish 等激活函數進行模型融合操作(感知量化操作的預處理),因此只能將MobileNetv3和YOLOv4 檢測層中的激活函數全部改為ReLU 激活函數進行量化處理。

在經過MobileNetv3 的特征提取后,會在YOLO頭部層輸出最終結果,圖2、圖3 中的CBL 是YOLOv4 的基本組件,即Conv+BN+Leaky ReLU。對 于YOLOv4 而 言,BN 和Leaky ReLU 是和卷積層不可分離的部分(最后一層卷積除外),它們共同構成了最小組件,YOLOv4 采用3 個不同尺度的特征圖來進行目標檢測。

圖2 YOLOv4-CSPDarkNet53 整體網絡框架Fig.2 YOLOv4-CSPDarkNet53 overall network framework

圖3 YOLOv4-MobileNetv3 整體網絡框架Fig.3 YOLOv4-MobileNetv3 overall network framework

3 網絡算法改進

3.1 量化方法簡介

目前,支持量化訓練的框架主要有Pytorch 1.30以上、Tensorflow 2.0 以上以及微軟的推斷框架,每種框架都有各自的優勢。本文在嘗試這3 種框架后,最后選擇Pytorch 1.40 版本作為8 bit 量化框架。Pytorch 提供了3 種量化模型的方法:

1)訓練后動態量化,這是一種最簡單的量化方式,其中,權重首先會被量化,激活值會在inference的過程中動態地被量化。

2)訓練后靜態量化,這是最常用的量化形式,其中權重提前量化,并且基于觀察校準過程中模型的行為來預先計算激活張量的比例因子和偏差。訓練后量化通常是在內存帶寬和計算能耗都很重要的情況下進行的,CNN 是典型的用例。

3)感知量化訓練,在Post Training 量化不能提供足夠精度的情況下,可以使用感知量化訓練,通過torch.quantization.FakeQuantize 來模擬量化過程。計算過程使用FP32,但是數據會通過被固定在一定動態范圍以及依據四舍五入來模擬INT8 量化的影響[15]。

3.2 具體量化實現

本文采用感知量化訓練方法,將模型權重變為INT8 類型,原因是采用INT8 類型的量化最大能保留256 個值,在最大限度地保證精度的情況下對模型進行壓縮,從而減少參數量計算。

在實現量化的過程中,必須能夠保持0.1×f的精度,因為0 在深層神經網絡(DNN)中發揮很大作用,如果原始的0 映射到量化后的值發生改變并出現了精度損失,則計算過程中將會出現誤差。

實際值和量化值的映射關系如式(1)所示:

其中:a表示實際值;θ表示壓縮比例;q表示量化的比特數,如INT4 量化就是4;f表示量化后的小數位值。

量化過程中最重要的是確定合適的amax和amin。由于本文先訓練模型,再利用訓練好的模型進行量化訓練(Post Training)操作,因此不存在確定amax和amin的問題。

在進行量化訓練之前,還有一個重要步驟,即進行模型融合,將卷積層(Conv Layer)、批歸一化層(Batch Norm Layer)和激活函數層(Activate Layer)相融合,方可進行后續的量化操作。由于MobileNetv3中的激活函數使用h-swish 和ReLU6,導致在進行感知量化時無法融合這類激活函數,因此本文將其都改為ReLU 激活函數,以進行模型融合操作。

在進行感知量化時,參數優化公式為:

其中:clamp 表示截止位數;N表示量化到多少位;ain表示待量化的數;β表示零點。式(2)即為一個位數的量化過程,若要進行INT8 類型的感知量化操作,則式(2)轉換如下:

3.3 損失函數改進

本文損失函數選取YOLOv4 中最新設計的CIOU Loss 和DIOU Loss,使網絡預測框更加準確。用IOU 代替L1 Loss 和L2 Loss,能夠實現尺度統一[17-18]。IOU 計算公式如下:

其中:B為檢測框的面積;Bgt為真實框的面積。

DIOU 是IOU 的改進版,用來反映檢測框之間的距離。DIOU 計算公式如下:

其中:b是中心點;ρ是歐式距離;c是覆蓋2 個框的最小框的對角線長。

CIOU 在DIOU 的基礎上加入影響因子,其為目前性能表現最好的IOU Loss。CIOU 計算公式如下:

其中:α是平衡正數的參數;ν是確保長寬比具有一致性的參數。

可以看出,CIOU Loss 和DIOU Loss 都是對IOU Loss的改進,使得最后得出的預測框更加貼合實際目標。

3.4 激活函數改進

本文激活函數采用Mish[19]非線性激活函數,其在負值層面添加一段平滑點,而非ReLU 激活函數[20]中的零邊界。平滑的激活函數允許更好的信息深入神經網絡,從而得到更優的準確性和泛化能力。Mish 激活函數如式(7)所示:

其中:x為經歸一化層傳入的參數值。

4 實驗驗證

本文實驗采用Pytorch 框架進行網絡結構改進并執行量化操作,操作系統為Ubuntu 18.04.5,CPU為Inter Core i7-10875H,GPU 為NVIDIA RTX2060,在嵌入式設備上進行推理和測試操作,設備型號為NVIDIA Jetson NX。

4.1 實驗數據集

本文目的是在嵌入式設備上完成無人機數據集的多目標檢測任務,使用的數據集為12 分類的VisDrone2020 無人機數據集,其訓練和驗證圖片共有10 890 張,測試圖片有1 030 張。

4.2 實驗設備

嵌入式設備使用NVIDIA 公司于2020 年最新推出的GPU 邊緣計算設備Jetson Xavier NX,如圖4 所示,它以10 W 的功耗每秒提供多達14 terra 運算(TOPS)或以15 W 的功耗每秒提供21 terra 運算,并行運行多個神經網絡,設備運行基于Ubuntu 的Linux 操作系統。本文在該嵌入式設備上安裝Ubuntu18.04 的操作系統鏡像,并配置Python3.6 和Pytorch 環境。

圖4 NVIDIA Jetson Xavier NX 設備Fig.4 NVIDIA Jetson Xavier NX equipment

4.3 實驗過程

本文實驗輸入尺寸統一為1 024×1 024 像素的JPG 圖像,將CIOU Loss 作為損失函數,總Batch size設置為16,每個GPU 的Batch size 為4,Epoch 設置為500,學習率設置為0.000 1,模擬余弦退火策略來調整網絡學習率。數據增強手段采用馬賽克數據增強方法,同時采用組內標簽平滑的方法優化標簽類。由于原始anchor 大小相比于無人機圖像的目標而言過于龐大,因此本文使用KNN[21]聚類算法對輸入數據集選取最合適的9 個anchor 大小,并將其應用到2 個網絡中,分別訓練原始YOLOv4-CSPDarkNet53網絡、改進YOLOv4-MobileNetv3 網絡以及經過感知量化訓練的YOLOv4-MobileNetv3 網絡,最后將上述3 種網絡的結果進行對比。

4.4 結果分析

在衡量一個模型性能優劣時,通常會用準確度(Prescision)和召回率(Recall)來對其網絡預測結果進行分析。在目標檢測領域,對于單目標檢測算法,通常用AP(Average Precision)指標來衡量某一類目標檢測的精度;對于多目標檢測算法,通常用mAP(mean Average Precision)來衡量多類目標檢測的平均精度。由于本文是對12 分類無人機數據集進行目標檢測,因此使用mAP 衡量指標。在嵌入式設備上進行推理檢測,本文目標是在不降低mAP 或降低有限mAP 的前提下,最大化地壓縮模型尺寸(size),減少模型計算量(FLOPs),提高嵌入式設備上的幀率(FPS)。

圖5 所示為YOLOv4-MobileNetv3 模型在訓練時Loss 的變化趨勢。從圖5 可以看出,當Epoch 逐漸迭代 時,Loss 在第150 個~第400 個Epoch 之間下降最快,當Epoch 為450 時,Loss 曲線逐漸平緩。

圖5 模型訓練時Loss 的變化趨勢Fig.5 Trend of Loss during model training

傳統的目標檢測數據集(如COCO 數據集、VOC數據集),它們的檢測目標較大且單張圖片數量較少?;跓o人機數據集的多目標多分類目標檢測任務的難點在于:在一張圖片中存在幾個或幾十個需要檢測的目標,數量不定且龐大;目標類別有12 種,且圖片尺寸較小,不易檢測。

如表2 所示,實驗經過1 024×1 024 像素大小的圖片訓練后,分別在608×608 像素、800×800 像素、1 024×1 024 像素的圖片上進行測試,以CSPDarkNet53為骨干網絡的YOLOv4 模型的檢測mAP 最高可達35.2%,改進YOLOv4-MobileNetv3 模型在mAP 最高達33.3%的前提下,模型體積減小且檢測速度提升;經過感知量化處理,模型更加靈巧,在嵌入式設備上能實現最快為73 的檢測幀率。

表2 3 種模型在2 個設備上的性能對比Table 2 Performance comparison of three models on two devices

4.5 效果測試

圖6、圖7 分別為YOLOv4-CSPDarkNet53 和YOLOv4-MobileNetv3 在PC 端 對VisDrone2020 無人機數據集圖像的測試效果。從中可以看出,YOLOv4-MobileNetv3 與YOLOv4-CSPDarkNet53 具有近似的測試結果,但YOLOv4-MobileNetv3 的模型大小和測試速度比YOLOv4-CSPDarkNet53更優。

圖6 YOLOv4-CSPDarkNet53 在PC 端的測試效果Fig.6 Test effect of YOLOv4-CSPDarkNet53 on PC

圖7 YOLOv4-MobileNetv3 在PC 端的測試效果Fig.7 Test effect of YOLOv4-MobileNetv3 on PC

圖8、圖9 分別為YOLOv4-MobileNetv3 和經過INT8 感知量化訓練的YOLOv4-MobileNetv3 在NX 設備上對VisDrone2020 無人機數據集圖像的測試結果。從中可以看出,量化后的模型效果略差于量化前模型。

圖8 YOLOv4-MobileNetv3 在NX 端的測試效果Fig.8 Test effect of YOLOv4-MobileNetv3 on NX

圖9 感知量化訓練后的YOLOv4-MobileNetv3 在NX 端的測試效果Fig.9 Test effect of YOLOv4-MobileNetv3 on NX after perceptual quantization training

5 結束語

本文提出面向低功耗應用場景的神經網絡加速算法實現方案,以解決RCNN 系列算法、SSD 算法、YOLO 系列算法在嵌入式領域高計算和低功耗需求之間的矛盾。設計一種輕量化神經網絡,對網絡進行量化處理,以在模型計算量與參數量均較小的情況下保證較高的準確率。實驗結果表明,該神經網絡加速算法能夠在性能、功耗、運行效率上達到預期,可以在低功耗場景中對無人機圖像進行準確識別。下一步將采用更大尺度的模型壓縮方法,如通道剪枝算法或空間剪枝算法,將其與量化算法相結合,以提升模型壓縮的效率。

猜你喜歡
嵌入式檢測模型
一半模型
“不等式”檢測題
“一元一次不等式”檢測題
“一元一次不等式組”檢測題
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
搭建基于Qt的嵌入式開發平臺
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
3D打印中的模型分割與打包
小波變換在PCB缺陷檢測中的應用
主站蜘蛛池模板: 亚洲黄色网站视频| 亚洲欧美h| 日韩天堂视频| 伊人精品视频免费在线| 九色最新网址| 99视频在线观看免费| 亚洲天堂网视频| 国产欧美日韩视频一区二区三区| 四虎国产在线观看| 国产性生大片免费观看性欧美| 成人免费视频一区| 日本在线亚洲| 成人免费视频一区| 五月婷婷丁香色| 精品超清无码视频在线观看| 精品一区二区久久久久网站| 美女内射视频WWW网站午夜| 日韩在线第三页| 日韩精品亚洲精品第一页| 色妞www精品视频一级下载| 国产高清在线观看| 国产91特黄特色A级毛片| 99热国产这里只有精品无卡顿"| 国产在线拍偷自揄观看视频网站| 国产成人91精品免费网址在线| 色一情一乱一伦一区二区三区小说 | 无码一区中文字幕| 国产自无码视频在线观看| 亚洲一级毛片在线观播放| 一区二区三区毛片无码| 久久a毛片| 精品国产成人三级在线观看| 亚洲欧美另类专区| 久久综合亚洲鲁鲁九月天| 亚洲国产91人成在线| 永久免费av网站可以直接看的 | 污视频日本| 91成人在线观看视频| 精品小视频在线观看| 免费无码AV片在线观看中文| 国产精品一线天| 国产视频一二三区| 亚洲精品777| 色悠久久久| 日韩专区欧美| 国产一区二区三区在线精品专区| 日韩精品专区免费无码aⅴ| 日本91视频| 91精品久久久久久无码人妻| 五月婷婷亚洲综合| 九九热精品在线视频| 97成人在线视频| 99久久免费精品特色大片| 色妞www精品视频一级下载| 网友自拍视频精品区| 都市激情亚洲综合久久| 精品久久久无码专区中文字幕| 99精品福利视频| 国产日韩精品一区在线不卡| 久久久久国色AV免费观看性色| 国产毛片高清一级国语 | 国产97色在线| 制服丝袜一区二区三区在线| 乱码国产乱码精品精在线播放| 99热最新网址| 国产女人18水真多毛片18精品 | 日本国产一区在线观看| 国产一在线观看| 亚洲日韩日本中文在线| 夜夜操国产| 亚洲午夜福利精品无码不卡| 一级毛片在线免费视频| 日韩欧美国产综合| 青青草国产精品久久久久| 亚洲侵犯无码网址在线观看| 日韩在线永久免费播放| 激情亚洲天堂| 国产黄色视频综合| 91精品国产一区| 日本一区二区不卡视频| 老司国产精品视频91| 亚洲中文字幕97久久精品少妇|