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

改進型YOLOv4-tiny的輕量級目標檢測算法

2023-12-11 07:11:24郭明鎮申紅婷候紅濤羅子江
計算機工程與應用 2023年23期
關鍵詞:檢測模型

郭明鎮,汪 威,申紅婷,候紅濤,劉 寬,羅子江

貴州財經大學 信息學院,貴陽 550025

隨著卷積神經網絡(convolutional neural network,CNN)的發展,YOLO[1](you only look once)系列算法檢測憑借速度較快、準確率較高的特點,成為當下主流的目標檢測算法,在智慧交通、智能監控、軍事目標檢測等方面[2]具有廣泛的應用價值。目標檢測的發展趨勢要求檢測算法具備精良的準確性和優異的實時性,同時要求算法所占內存較小,便于部署在移動端。

目前,以輕量性為設計理念而提出的YOLOv4-tiny[3]算法,在實時檢測任務中取得良好的檢測性能。王長清等人[4]基于YOLOv4-tiny在主干網絡引入大尺度特征圖優化策略和金字塔池化模型,從而提高特征圖的多尺度融合效率,豐富邊緣細節信息,且檢測精度方面也有所提升。朱杰等人[5]在YOLOV4-tiny 中增加SPP[6](spatial pyramid pooling)模塊和PAN[7](path aggregation network)模塊,引入標簽平滑策略[8],從而提高模型在復雜場景下對小目標和遮擋目標的適應能力。盧迪等人[9]通過SPP模塊將全局和局部特征進行融合,豐富特征圖的表達能力,減少網絡參數,提升YOLOv4-tiny網絡的處理速度。以上的YOLOv4-tiny 算法雖然在檢測精度與速度方面有所提升,但也存在以下不足:(1)主干網絡的特征圖在傳遞過程中所需算力較大,且卷積核的選擇方案不完善,從而導致特征提取的速度和效率不足;(2)特征圖的多尺度融合效率較低,邊緣細節信息損失程度較大;(3)主要的計算模塊算力較大,不易部署在RK3288 開發板一類的嵌入式設備上;(4)Mosaic[10]數據增強方法會隨機截取無目標或者目標過小的圖像塊,從而導致樣本數據的浪費問題。

針對以上不足之處,本文提出一種基于CSPRDWConv模塊的輕量級網絡CSPRDW,相關工作如下:(1)借鑒CNN 在ImageNet 數據集[11]中的特征提取器,選用兩個殘差塊替代YOLOv4-tiny 基準網絡中計算塊的特征提取器,從而設計出快速有效的主干網絡,大幅提升算法在計算資源受限的RK3288開發板上的推理速度;(2)對附帶標簽的圖像樣本進行改進的Mosaic 數據增強,以便截選更多的目標物體,過濾掉過小的目標物體,從而提升檢測精度;(3)通過NEON 指令對訓練后的檢測模型進行優化,并將卷積層與BN 層[12](batch normalization,BN)融合,減少BN層的推理時間,加快檢測模型的推理進程。

實驗證明,本算法在1080Ti 硬件上達到1 308 FPS的實時檢測速度,在RK3288 開發板上的推理時間縮減至150.6 ms,檢測速度是YOLOv4-tiny 基準網絡的近4倍,mAP達到22.31%,相比于基準網絡提升0.61個百分點。對比已有的算法并通過大量的實驗驗證,結果表明本文改進的YOLOv4-tiny 算法在嵌入式設備的檢測中更為流暢和高效,整體性能和效率優于已有的算法,具有較強的可移植性、實時性、魯棒性以及較高的實用價值。

1 算法概述

1.1 YOLOv4算法概述

2020 年,Bochkovskiy 等人[13]提出YOLOv4,如圖1所示的YOLOv4 中:(1)CSPDarknet53 模塊增強網絡學習能力,降低計算量和所占內存大小;(2)SPP模塊增大感受野的同時分離出價值度最高、代表性最強的特征;(3)PAN 模塊代替YOLOv3 中的特征金字塔網絡[14](feature pyramid networks,FPN)作為多尺度融合模塊,加快頂層信息與底層信息的匯合進程。YOLOv4 實現檢測速度和檢測精度的最佳權衡,但是YOLOv4算法檢測過程復雜、算力較大,對設備的性能要求過高,不適用于嵌入式系統。

圖1 YOLOv4的網絡結構Fig.1 Network structure of YOLOv4

1.2 YOLOv4-tiny

2020 年,Bochkovskiy 團隊[3]正式發布YOLOv4-tiny,YOLOv4-tiny 是為嵌入式系統設計的輕量化架構。如圖2 所示的YOLOv4-tiny 設計思路為:(1)選用CSPDark net53-Tiny 進行特征提取;(2)FPN 模塊代替SPP 模塊和PAN 模塊;(3)使用兩種尺度預測網絡對目標進行分類和回歸預測。YOLOv4-tiny 犧牲一定程度的檢測精度以換取檢測速度的大幅提升,速度由62 FPS提升至371 FPS,但移植到RK3288 開發板上其速度僅為1.8 FPS。

圖2 YOLOv4-tiny的網絡結構Fig.2 Network structure of YOLOv4-tiny

2 改進的YOLOv4-tiny算法

改進的YOLOv4-tiny網絡,即YOLOv4-tiny-CSPRDWConv(YOLOv4-tiny-cross stage partial residual depthwise convolution),包括預訓練階段的分類網絡和訓練階段的檢測網絡,整個學習階段被分為共性學習階段和特性學習階段。如圖3 所示的分類神經網絡為基于ImageNet數據集的預訓練網絡,包含大小為224×224×3 的輸入端、3個CSPRDWConv模塊、5個下采樣模塊、全局平均池化層以及softmax層,最后輸出圖像的類別判定結果。分類網絡的結構組成如表1 所示,其中Conv2d 表示卷積操作,DownSample為含3×3小卷積核的下采樣模塊,B-DownSample 為含5×5 大卷積核的下采樣模塊,t表示膨脹因子(可按需調整t的大小)。預訓練模型使得檢測網絡學習類別特征信息,為后面的檢測模型做準備,預訓練后的模型參數不再是隨機初始化所得而是基于共性特征信息,從而減輕模型在檢測任務中的學習負擔。

表1 分類神經網絡的結構Table 1 Structure of classification neural network

圖3 分類網絡結構圖Fig.3 Classification network structure diagram

如圖4所示,基于COCO數據集的檢測網絡由輸入端、主干網絡、Neck部分和檢測頭四部分組成:(1)輸入端中圖像大小為416×416;(2)主干網絡選用預訓練后的分類神經網絡的特征提取部分;(3)Neck 部分中,將FPN 結構替換為YOLOv4 的PAN 結構并增加弱SPP模塊,將原SPP 模塊的四分支結構改造為三分支結構;(4)檢測頭為YOLOv4-tiny基準網絡的檢測頭;(5)通過NEON指令對訓練后的檢測模型進行優化,并將卷積層和BN層融合。分類網絡與檢測網絡輸入大小相異,故在預訓練階段使用{224,320,416}不同輸入大小的圖片進行交替訓練,使檢測模型適應不同尺度的輸入。

圖4 檢測網絡結構圖Fig.4 Detection network structure diagram

2.1 CSPRDWConv模塊

如圖5(a)所示,原YOLOv4-tiny計算模塊使用PCB架構的CSPOSANet構成主干網絡[3],該計算模塊與同輸入同輸出的標準卷積的Flops 比較公式如式(1)所示。式(1)中c′ 表示該輸出通道數,k表示卷積核的大小,w′和h′分別表示輸出特征圖的寬和高。

圖5 主干網絡改進模塊Fig.5 Backbone network improvement module

YOLOv4-tiny在1080Ti GPU上的檢測速度可達到371 FPS,但移植到RK3288 開發板上速度僅為1.8 FPS。故針對YOLOv4-tiny中的計算塊算力較大、特征提取效率較低以及在RK3288開發板上的運行速度較慢的問題進行改進,從而設計出CSPRDWConv模塊。CSPRDWConv模塊也通過CSPNet[15](cross stage partial net)進行跨階段連接以加快網絡的推理速度,如圖5(b)所示;但在改進模塊中使用殘差塊和3×3 深度可分離卷積(depthwise separable convolution,DWConv)進行空間映射,然后連接無非線性激活函數參與的BN層,以免特征圖信息受損。

圖5(b)中,輸入特征圖被Slice 層切分為通道數相等的兩部分,其中一半進行特征映射;另一半與特征映射的輸出特征圖拼接后,通過1×1的標準卷積層得到整個模塊的輸出特征圖。CSPRDWConv模塊在保持相同精度的前提下,進一步加快模型的檢測速度,CSPRDWConv 模塊與同輸入同輸出的標準卷積的Flops 比較公式如式(2)所示:

首先從支撐補償重力的角度,研制了一種“杠桿+配重”結構形式的新型重力補償裝置。該裝置利用靜力平衡原理消除重力影響,在不同工況下可以通過調節配重的位置來調節補償力的大小,從而更好滿足重力補償的要求。通過分析伸桿支撐組件支撐力精度以及試驗,證明了該補償裝置的有效性和合理性。

式(2)中,c′、w′、h′分別為該模塊的輸出特征圖的通道數、寬和高,k表示卷積核的大小。該模塊的算力是YOLOv4-tiny計算模塊的3/k2倍(k≥3),適當縮減算力規模可使得整個模塊在保持精度的同時大幅提升推理速度。

2.2 卷積核的選擇

大小超過1×1的卷積核才能體現感受野的作用,且卷積核越大感受野越大,所獲得的全局特征越完整,但卷積核過大會降低檢測速度。雖然大卷積核可以由連續的小卷積核代替,以增大網絡深度可以學到更多的特征(例如1 個7×7 的卷積核可以由3 個3×3 的卷積核代替),但同時也增加梯度消失和過擬合的風險。

本文在選擇卷積核時,考慮精度與速度的性能平衡,避免算力和深度過大帶來的問題。如圖6 所示,在MobileNetv1[16]和MobileNetv2[17]上使用不同尺寸的卷積核進行性能測試,初階段中卷積核越大模型精度越高,但當卷積核的尺寸超過某一值后,模型的準確率開始下降,因此選用的大卷積核應設有尺寸上限。

圖6 不同大小的卷積核對模型精度的影響Fig.6 Effect of different sizes of convolution kernels on model accuracy

過多的大卷積核不利于算法在嵌入式設備上運行,PP-YOLO[18]的卷積層均選用小卷積核,只在尾部使用5×5 的大卷積核,這與全局使用大卷積核的效果近似。基于以上分析,本文在主干網絡的尾部,最后一次壓縮特征圖時使用5×5的DWConv,而其他的卷積層皆為小卷積核,以確保模型低延遲和高準確度的特性。依照此思想構造的B-DownSample模塊使得分類模型的Acc提升0.07個百分點,檢測模型的mAP提升0.11個百分點。

2.3 Neck的選擇

SPP 可在同一特征圖的不同尺度上提取特征并進行池化操作,將任意尺寸的輸入圖像轉換為相同尺度的輸出。與YOLOv4-tiny基準網絡不同,本文的改進算法保留SPP 模塊,圖7(a)為多支路SPP 模塊,其中conv為卷積層,max 為最大池化層,n×n代表池化核大小;圖7(b)為YOLOv4 中的SPP 模塊,包含4 個支路,分別是3 個核大小不同的最大池化模塊和1 個跳躍連接,池化核大小分別為{5,9,13},該模塊將四個分支的特征圖進行concat操作,然后傳至下一層;為使得YOLOv4-tiny算法更適合部署在嵌入式設備,構建如圖7(c)所示的弱SPP模塊。弱SPP模塊融合多重感受野,利用局部特征和全局特征來提高目標檢測的精度,在提升模型精度的同時,(與YOLOv4中的SPP相比)節省約30%的算力。

圖7 SPP結構對比圖Fig.7 SPP structure comparison diagram

3 數據增強與實驗環境

3.1 實驗環境與參數設置

本文的目標檢測模型針對資源有限的嵌入式設備,實驗平臺為RK3288開發板,其GPU為ARM Mail-T764,可連接USB攝像頭。使用caffe深度學習框架。通過Eclipse交叉編譯器、NEON指令、WinSCP和PUTTY軟件,實現模型從Windows操作系統到RK3288開發板的部署工作。

本文基于ImageNet數據集所搭建的分類網絡的初始學習率為0.1、權重衰減系數0.000 04、動量為0.9、power為0.5;在訓練過程中前1 000迭代次數使用warm-up機制,選擇性能最優的模型作為目標檢測的預訓練模型。基于COCO 數據集所搭建的檢測網絡的初始學習率為0.01、權重衰減系數為0.000 5、動量為0.9,power為0.5;在訓練過程中前1 000迭代次數使用warm-up機制,且前1 000 迭代次數特征提取部分的卷積全部設為不學習,之后再放開學習。

3.2 改進的Mosaic數據增強

YOLOv4中使用的Mosaic數據增強分為4個步驟:(1)每次從數據集中隨機讀取4 張圖像;(2)分別對4 張圖像隨機進行翻轉、縮放、色域變化等操作;(3)將4 張圖像按順時針排放,然后利用矩陣的方式截取4張圖像的固定區域;(4)將截取區域拼接為一張新的圖像樣本,并變換對應的標簽。

原有的Mosaic 先將4 張圖像進行普通的數據增強操作,然后將操作后的圖像拼接在一起,這導致模型的訓練速度降低。原有的Mosaic利用隨機剪裁操作選定固定區域,但裁剪圖像時并未統計圖像中真實框(ground truth,GT)中心坐標的均值,從而裁剪出殘缺的GT;并且會隨機截取出8(a)中無目標或者圖8(c)中目標過小的圖像塊,造成數據樣本的浪費,從而導致模型無法充分利用樣本,擬合數據時模型精度會有所損失。

圖8 改進的Mosaic流程示意圖Fig.8 Schematic diagram of improved Mosaic process

為彌補原有Mosaic 數據增強的不足之處,本文對Mosaic數據增強進行改進,改進的Mosaic的流程如圖8所示,通過GT 和標簽防止隨機截取出無目標或者目標過小的圖像塊;并且先不對圖像進行普通數據增強等操作,而是Mosaic 之后再進行翻轉、縮放、色域變化等操作。改進的Mosaic效果圖如圖9所示,圖9(a)右下方的塔尖中并不包含檢測目標,而經過改進的Mosaic后,圖9(b)中每個圖像塊都包含有效的目標;圖9(c)左上方和左下方的目標過小,而圖9(d)中篩選掉過小的目標。改進的Mosaic節省數據增強進程的時間,且充分利用每個圖像塊以及過濾物體過小的目標,使得模型更易于訓練。

圖9 改進的Mosaic數據增強Fig.9 Improved Mosaic data augmentation

4 實驗結果與分析

4.1 評價指標

本次實驗以準確率(accuracy,Acc)、平均精度均值(mean average precision,mAP)和每秒傳輸幀數(frames per second,FPS)作為檢測模型的性能評價指標。相關評價指標的含義與計算公式如表2所示,mAP為平均精度(average precision,AP)的均值。在圖像的分類任務中,Acc常被用作衡量模型分類能力的指標,Acc值越大意味著模型的分類器越優良;FPS指每秒處理圖像的數量,體現模型的運算能力,FPS 值越大則模型的運算能力越強大;mAP 是衡量模型的分類和檢測能力最直觀的指標,在很大程度上能夠同時體現模型的定位和分類能力,mAP值越大則說明模型性能更為優異。

表2 相關評價指標Table 2 Related evaluation indicators

4.2 消融實驗

本文的消融實驗以YOLOv4-tiny為基準,驗證改進模塊分別在預訓練階段和訓練階段中的優化作用。不同因素對分類網絡訓練的影響結果如表3所列,每項改進模塊均對分類模型有著不同程度的貢獻,其中改進模塊2引入的改進Mosaic對網絡的貢獻略高于改進模塊2的Mosaic。YOLOv4-tiny-CSPRDWConv 選用改進的Mosaic、CSPRDWConv 計算模塊、B-DownSample 模塊(5×5 大卷積核的下采樣模塊),使得Acc 值較初始YOLOv4-tiny提高了0.87個百分點。

表3 分類網絡的消融實驗結果Table 3 Results of ablation experiments for classification network

不同因素對檢測網絡的影響結果如表4,觀察mAP可知,表中所列的因素對檢測模型的影響均為正。YOLOv4-tiny-CSPRDWConv 引入改進的Mosaic、CSPRDWConv 計算模塊、B-DownSample 模塊和弱SPP模塊,使得平均精度較YOLOv4-tiny基準網絡增加0.94個百分點。將改進模塊4的SPP替換為改進模塊5的弱SPP 后,雖然平均精度下降了0.03 個百分點,但運算速度卻提升0.4 倍,犧牲微乎其微的精度來換取速度的大幅提升,以此達到精度與速度的最佳平衡。

表4 檢測網絡的消融實驗結果Table 4 Results of ablation experiments for detection network

表4中,SPP模塊的池化核大小為{k=1,5,9,13},4條支路并行;弱SPP 模塊池化核的大小為{k=1,5,9},3條支路并行。

4.3 對比實驗及結果分析

為更加具體、清晰地體現本文算法的速度優勢,將改進的YOLOv4-tiny模型與YOLOv3-tiny、YOLOv4-tiny以及YOLOv5n 等模型進行對比實驗,模型使用相同的COCO數據集來進行訓練、驗證。不同算法的性能對比結果如表5 所示,大型網絡算法(例如YOLOv4)的檢測精度明顯優于輕量級網絡算法(例如ThunderS146 和YOLOv4-tiny);但是大型網絡算法的檢測速度較低,且模型體積過大,無法流暢地在嵌入式設備上運行。本文提出的檢測模型在保證檢測精度的前提下,其檢測速度皆明顯快于當下的主流檢測器。當輸入大小為224×224時,本文的模型抽取三個不同階段(7、14、28)的特征層進行檢測,檢測精度提升0.61 個百分點,檢測速度更是達到1 308 FPS,為YOLOv4-tiny的近4倍。引入改進的Mosaic 較無Mosaic 時提升了0.91 個百分點,這說明改進的Mosaic適用于該輕量級網絡。

表5 GPU上的實驗對比結果Table 5 Analysis of experimental results

將不同模型移植在RK3288 開發板上,得到如表6所列的性能結果對比,YOLOv4-tiny-CSPRDWConv網絡將卷積層和BN層融合在一起,并通過NEON指令將速度提高3倍;卷積層和BN層未融合時,模型的推理時間為145.6 ms,融合之后的推理時間縮減至130.1 ms。YOLOv4-tiny-CSPRDWConv網絡的輸入大小為224×224時,其平均精度比YOLOv3-tiny 增加4.8 個百分點,檢測速度提升7 倍之多;相比于YOLOv4-tiny 網絡,YOLOv4-tiny-CSPRDWConv網絡在平均精度提升0.61個百分點的基礎上,算力不及原有算力的三分之一,檢測速度加快四倍之多,該對比實驗結果驗證了本文改進方法的有效性。

表6 檢測模型移植后的速度對比Table 6 Speed comparison after porting detection model

為進一步驗證本文模型在不同場景中的檢測能力,建立包含辦公室、酒店、電梯、戶外4 個場景的測試集。圖10 展示了不同場景下的實驗效果,將收集到的圖像進行目標檢測,檢測結果圖則通過不同顏色的邊框加以區分。測試結果表明本模型適用于大目標、小目標、多目標、交叉密集目標以及多種復雜場景的目標檢測,表現出優良的泛化和精準的定位能力,具有較高的實用價值。

圖10 目標檢測結果圖Fig.10 Graph of target detection results

5 結束語

為使得可部署在嵌入式設備的YOLOv4-tiny算法更為輕量、快速、高效和精準,本文在原有的YOLOv4-tiny算法之上,提出一種基于CSPRDWConv 模塊的輕量級網絡,并使用改進的Mosaic 數據增強來提升檢測精度。除此之外,本文還在主干網絡的尾部即最后一次壓縮特征圖時使用5×5的深度可分離卷積(其他的卷積層皆為小卷積核);Neck中加入弱SPP模塊;并通過NEON指令對訓練后的檢測模型進行優化,將卷積層與BN層融合。上述改進技巧在保證檢測精度的同時,大幅加快檢測模型的推理進程。

實驗表明,本算法在1080Ti的硬件上達到1 308 FPS的實時檢測速度,檢測速度為YOLOv4-tiny基準網絡的近4 倍,mAP 達到22.31%,相比于基準網絡提升了0.61個百分點。在RK3288開發板上的檢測速度約為8 FPS,mAP 為22.28%。雖然本文的改進算法在RK3288 開發板上的檢測中,較其他相關目標檢測算法更為流暢和高效,但對于一些性能更低的嵌入式設備本算法仍有待改進;且在小目標檢測以及大面積遮擋檢測中,本文的改進算法還存在一定的提升空間。下一步會將關注點集中在數據增強和強化學習,并將實時的目標檢測的面向對象推廣至更低端的邊緣嵌入式設備,從而開發出可部署在嵌入式系統的、性能更為優良的輕量級目標檢測算法。

猜你喜歡
檢測模型
一半模型
“不等式”檢測題
“一元一次不等式”檢測題
“一元一次不等式組”檢測題
“幾何圖形”檢測題
“角”檢測題
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
3D打印中的模型分割與打包
小波變換在PCB缺陷檢測中的應用
主站蜘蛛池模板: 国产女人18毛片水真多1| 国产av色站网站| 国产亚洲欧美在线专区| 亚欧成人无码AV在线播放| 男女男精品视频| 视频一区视频二区日韩专区| 天天激情综合| 白浆免费视频国产精品视频| 国产高清在线丝袜精品一区| 亚洲欧美成人网| 色妞永久免费视频| 网友自拍视频精品区| 亚洲欧美色中文字幕| 在线观看亚洲精品福利片| 亚洲第一中文字幕| 全午夜免费一级毛片| 亚洲精品无码AⅤ片青青在线观看| 狠狠躁天天躁夜夜躁婷婷| 91蜜芽尤物福利在线观看| 国产日韩欧美黄色片免费观看| 国产精品一区二区不卡的视频| 中文字幕久久亚洲一区| 青青久在线视频免费观看| 4虎影视国产在线观看精品| 强乱中文字幕在线播放不卡| 久久综合九色综合97婷婷| 午夜啪啪网| 国产国产人在线成免费视频狼人色| 亚洲成年人片| 91偷拍一区| www.亚洲国产| 综合色在线| 国产一区二区人大臿蕉香蕉| 亚洲免费福利视频| 精品国产成人三级在线观看 | 91无码人妻精品一区| 日韩美毛片| 亚洲欧洲免费视频| 日韩精品一区二区三区大桥未久| 免费无码网站| 国产成人一二三| 高清无码不卡视频| 丁香五月激情图片| 午夜毛片福利| 久久婷婷人人澡人人爱91| 国产污视频在线观看| 欧美日韩中文国产va另类| 亚洲欧洲日韩综合色天使| 欧美啪啪视频免码| 欧美国产日韩在线| 精品久久蜜桃| 无码高潮喷水在线观看| 日韩乱码免费一区二区三区| 激情网址在线观看| 999精品色在线观看| 日韩性网站| 国产欧美专区在线观看| 国产女人在线视频| 91麻豆精品视频| 国产欧美日韩一区二区视频在线| 国产剧情国内精品原创| 亚洲国产清纯| 亚洲精品第1页| 国产网站一区二区三区| 国产超薄肉色丝袜网站| 青青青国产在线播放| 日韩天堂在线观看| 日韩激情成人| 99热这里只有精品2| 国产丰满大乳无码免费播放| 福利一区三区| 亚洲欧美不卡| 色综合网址| 中文字幕 91| 亚洲欧美不卡| 制服丝袜亚洲| 亚洲精品色AV无码看| 综合色在线| 91国内在线视频| 亚洲娇小与黑人巨大交| 欧美午夜网站| 一级毛片免费播放视频|