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

?

基于改進(jìn)YOLOv5算法的復(fù)雜場景交通目標(biāo)檢測

2022-08-12 08:48顧德英羅聿倫李文超
關(guān)鍵詞:精度標(biāo)簽函數(shù)

顧德英, 羅聿倫, 李文超

(東北大學(xué)秦皇島分校 控制工程學(xué)院, 河北 秦皇島 066004)

近年來,自動駕駛、智能交通等領(lǐng)域的研究飛速發(fā)展,成果豐碩.基于深度學(xué)習(xí)和計算機視覺的交通場景目標(biāo)檢測技術(shù)已經(jīng)擁有了非常豐富的應(yīng)用領(lǐng)域,正在逐漸取代傳統(tǒng)算法.但是,深度學(xué)習(xí)算法的應(yīng)用往往需要消耗大量的計算資源,不容易實現(xiàn)實時檢測.如果能從算法入手,通過算法的改良來提升模型檢測精度和推理速度,進(jìn)而部署到車載攝像頭或電子監(jiān)控等邊緣計算設(shè)備中,可以有效降低成本,有利于深度學(xué)習(xí)目標(biāo)檢測算法在交通領(lǐng)域的大規(guī)模部署落地和推廣應(yīng)用.

2006年Hinton等學(xué)者最早提出深度學(xué)習(xí)的概念[1],基于深度學(xué)習(xí)的計算機視覺目標(biāo)檢測算法開始發(fā)展.2012年Krizhevsky等提出的AlexNet模型在ImageNet競賽中實現(xiàn)重大突破[2],深度學(xué)習(xí)算法又取得了長足的進(jìn)步.深度學(xué)習(xí)目標(biāo)檢測算法經(jīng)歷了兩個發(fā)展階段,首先是以R-CNN[3]、Faster R-CNN[4]等為代表的兩階段檢測算法,需要遍歷圖片所有區(qū)域得到候選框再進(jìn)行目標(biāo)分類.Tian等[5]使用改進(jìn)的Faster R-CNN在相關(guān)數(shù)據(jù)集上對車道線進(jìn)行檢測與標(biāo)記,獲得了比R-CNN更快的結(jié)果.然而,此類算法檢測精度較低,很難實現(xiàn)實時檢測,實際應(yīng)用效果不佳.其次是以YOLO[6]、SSD[7]等為代表的一階段檢測算法,基于邊框回歸的端到端目標(biāo)檢測可在單個神經(jīng)網(wǎng)絡(luò)內(nèi)實現(xiàn)目標(biāo)的分類與定位,它的模型檢測精度、速度都比前者提升了一個數(shù)量級,是目前主流的目標(biāo)檢測算法.周攀等[8]采用ResNext網(wǎng)絡(luò)代替原YOLOv3結(jié)構(gòu)中基于ResNet的殘差結(jié)構(gòu),并采用K-means算法聚類分析模型的錨框參數(shù),在KITTI數(shù)據(jù)集上檢測精度達(dá)到87.60%.

為了解決傳統(tǒng)深度學(xué)習(xí)模型推理速度慢、部署效率低的問題,人們也曾提出過YOLOv3-tiny[9],YOLOv4-tiny[10-11]等輕量化網(wǎng)絡(luò).但是,多個數(shù)據(jù)集上的測試結(jié)果證明,相比于原YOLOv3和YOLOv4網(wǎng)絡(luò),這些經(jīng)過輕量化處理的網(wǎng)絡(luò)會造成模型精度損失,準(zhǔn)確率不高[11].因此,本文采用改進(jìn)前后的YOLOv5網(wǎng)絡(luò)進(jìn)行對比訓(xùn)練,再將得到的模型用于交通目標(biāo)檢測的測試和仿真部署.

1 YOLOv5的介紹與改進(jìn)

1.1 原始YOLOv5的結(jié)構(gòu)

作為一階段檢測算法的典型代表,YOLO系列目前已經(jīng)由Ultralytics公司發(fā)展到第五代YOLOv5[12].它可以通過調(diào)整網(wǎng)絡(luò)的深度和寬度自由設(shè)定模型結(jié)構(gòu),兼顧了檢測精度與速度,適合作為計算性能有限的設(shè)備的部署模型.原始YOLOv5的網(wǎng)絡(luò)結(jié)構(gòu)擁有輸入層、骨干層、頸部層和預(yù)測層4個部分,如圖1所示.

圖1 原始YOLOv5的簡要結(jié)構(gòu)

本文所采用的輸入圖像像素尺寸為640×640和通道數(shù)為3,YOLOv5算法首先在輸入層對輸入圖像進(jìn)行預(yù)處理,包括基于遺傳算法迭代的K-means聚類自動計算最佳anchor(錨框)尺寸,以及對訓(xùn)練集中4張隨機圖像進(jìn)行四合一自適應(yīng)拼接縮放的Mosaic數(shù)據(jù)增強.前者有利于預(yù)設(shè)的anchor更加貼近真實框,提升模型的擬合能力,后者能夠提升模型訓(xùn)練速度和學(xué)習(xí)小目標(biāo)特征的能力,學(xué)習(xí)到比單張圖片更為豐富的特征信息.Mosaic數(shù)據(jù)增強在本文數(shù)據(jù)集上的效果如圖2所示.

原始版本的YOLOv5骨干層包含F(xiàn)ocus模塊、SPP(spatial pyramid pooling,空間金字塔池化)模塊和BottleneckCSP網(wǎng)絡(luò).Focus模塊對預(yù)處理后的640×640×3圖像采用切片和卷積操作,最終變成320×320×32的特征圖.BottleneckCSP將輸入特征圖一分為二,分別進(jìn)行卷積運算再通過局部跨層合并,即類似ResNet[13]的跳躍連接,目的是加快網(wǎng)絡(luò)的計算,豐富網(wǎng)絡(luò)提取到的特征.隨后SPP模塊的最大池化和張量拼接,則提升了模型的感受野.另外,骨干層3×3的卷積模塊步長為2,與CSP(cross stage partial,跨階段局部融合)模塊交替排布對圖像進(jìn)行下采樣,最后網(wǎng)絡(luò)輸出80×80,40×40,20×20三種像素尺寸的特征圖進(jìn)入頸部層.

圖2 Mosaic數(shù)據(jù)增強的效果

頸部層的主要組成部分是由FPN(feature pyramid networks,特征金字塔網(wǎng)絡(luò))改進(jìn)而來的PANet(path aggregation network,路徑聚合網(wǎng)絡(luò))[14].PANet增加了卷積下采樣部分,得到三種不同尺寸的特征圖輸入預(yù)測層.預(yù)測層特征圖深度為3×(5+K),K是檢測目標(biāo)的類別個數(shù).

在損失函數(shù)方面,YOLOv5預(yù)測層的損失函數(shù)分為cls,obj,box三部分,分別對應(yīng)物體分類、置信度和檢測框的損失,前兩者采用BCE with Logit Loss,而算法本身為box提供了GIOU_Loss損失函數(shù)[15],相較于普通的IOU_Loss更能準(zhǔn)確地描繪檢測框的偏差程度,如式(1)和式(2)所示.式中A,B分別代表真實框和預(yù)測框,C為包含A,B的最小外接矩形.分別計算出三部分損失函數(shù)后求和即得到最終的總損失函數(shù).

(1)

(2)

1.2 YOLOv5的改進(jìn)

自YOLOv5的原始版本問世后,算法本身也在隨著時間的推移不斷發(fā)展,本文基于其v5.0版本作出了改進(jìn),主要集中在網(wǎng)絡(luò)結(jié)構(gòu)和損失函數(shù)兩方面.首先是將原始的網(wǎng)絡(luò)結(jié)構(gòu)替換為更復(fù)雜的P6網(wǎng)絡(luò)結(jié)構(gòu)[16],如圖3所示.

圖3 改進(jìn)后的YOLOv5網(wǎng)絡(luò)結(jié)構(gòu)

具體來看,網(wǎng)絡(luò)中骨干層的BottleneckCSP模塊已經(jīng)被C3模塊所取代,SPP模塊中的5×5,9×9,13×13卷積核調(diào)整為3×3,5×5和7×7,卷積模塊的激活函數(shù)由LeakyReLU(式(3))變成SiLU,后者借鑒了ReLU系列函數(shù)的思想,但更為平滑,如式(4)和式(5)所示.

(3)

f(x)=x·sigmoid(x) ;

(4)

(5)

SPP模塊前增加了一個卷積下采樣模塊,獲得尺寸更小的10×10特征圖,因此對應(yīng)的頸部層中也需要增加一次上采樣.最后,PANet自下而上的下采樣部分增加1個10×10的特征圖送入預(yù)測層,能夠輸出4種不同尺寸的特征圖.特征圖的種類越多,將圖像劃分的網(wǎng)格與預(yù)測的錨框數(shù)量也就越多,容易檢測出尺寸較小或互相重疊的目標(biāo),在推理速度稍微降低的同時提升檢測能力.另外,本文在計算損失函數(shù)的box部分中引入理論效果更好的CIOU_Loss來替換原有的GIOU_Loss,提升模型檢測效果和魯棒性,CIOU_Loss如式(6)~(8)所示.

(6)

(7)

(8)

式中:ρ(Actr,Bctr)是預(yù)測框和真實框的中心點歐氏距離;c為包含A,B的最小外接矩形的對角線長度;wA和hA代表真實框A的長和高;wB和hB代表預(yù)測框B的長和高.原有的GIOU_Loss在目標(biāo)框完全包含相同大小的預(yù)測框時,無論預(yù)測框的位置如何變化,函數(shù)值不變.鑒于這一缺陷,CIOU_Loss增加影響因子v,考慮到2個框的相對位置、中心點距離、寬高比三種因素,能更為精確地反映模型訓(xùn)練時的損失情況.

2 實驗的設(shè)置

2.1 數(shù)據(jù)集的準(zhǔn)備

本文采用交通目標(biāo)數(shù)據(jù)集KITTI作為算法測試的數(shù)據(jù)來源,該數(shù)據(jù)集由德國卡爾斯魯厄理工學(xué)院和豐田美國技術(shù)研究院聯(lián)合創(chuàng)辦,通過車載攝像頭和傳感器,采集城市道路、高速公路、校園等多個復(fù)雜交通場景的真實交通圖像,適合目標(biāo)檢測、光流、3D跟蹤等計算機視覺任務(wù)的使用[17].數(shù)據(jù)集的標(biāo)簽細(xì)分為Car,Van,Truck,Pedestrian,Person_sitting,Cyclist,Tram,Misc以及Dontcare等若干類.本文選擇的是其中的2D目標(biāo)檢測數(shù)據(jù)集,包含7 481張有標(biāo)注的圖像和7 518張無標(biāo)注圖像.由于交通環(huán)境下移動目標(biāo)多為車輛和行人,為了降低輕量化模型的檢測難度,不再細(xì)分車輛的種類和行人的姿態(tài),將原數(shù)據(jù)集標(biāo)簽重新整理,“Van”“Truck”“Tram”標(biāo)簽合并到“Car”類,“Person_sitting”標(biāo)簽合并到“Pedestrian”類,忽略“Misc”和“Dontcare”兩類.最終得到需要檢測的“Pedestrian”“Cyclist”“Car”三類標(biāo)簽.然后重新劃分KITTI數(shù)據(jù)集有標(biāo)注的圖像,得到訓(xùn)練集5 440張,驗證集1 280張,測試集761張.

2.2 訓(xùn)練策略的改進(jìn)

KITTI數(shù)據(jù)集除了7 481張有標(biāo)注的圖像之外,還有7 518張無標(biāo)注的圖像,為了進(jìn)一步提升檢測的準(zhǔn)確性,可以將這部分圖像進(jìn)行充分利用,采用偽標(biāo)簽的形式加入劃分好的訓(xùn)練集中.偽標(biāo)簽是機器學(xué)習(xí)中一種常見的半監(jiān)督學(xué)習(xí)方法,其核心思想是使用大量無標(biāo)注的數(shù)據(jù)使模型能夠在監(jiān)督學(xué)習(xí)之外學(xué)習(xí)到一定的額外信息,當(dāng)預(yù)測的置信度超過一定的閾值(本文為50%)時,可以認(rèn)為這一偽標(biāo)簽的標(biāo)注結(jié)果正確,再與有標(biāo)注的數(shù)據(jù)相結(jié)合,以提高模型在有標(biāo)注的測試集上的表現(xiàn).將原標(biāo)簽數(shù)據(jù)和預(yù)測正確的偽標(biāo)簽數(shù)據(jù)結(jié)合起來作為新的訓(xùn)練數(shù)據(jù)集再進(jìn)行訓(xùn)練得到最終的檢測模型.

2.3 訓(xùn)練方法與評價指標(biāo)

本次實驗采用AP(average precision,每一類目標(biāo)的精度均值)和mAP(mean average precision,所有類別目標(biāo)的平均精度均值)作為模型評價指標(biāo).每個模型的改進(jìn)策略如表1所示,實驗分別采用原始YOLOv5算法預(yù)訓(xùn)練權(quán)重YOLOv5s,以及改進(jìn)后的預(yù)訓(xùn)練權(quán)重YOLOv5s6在KITTI數(shù)據(jù)集上進(jìn)行訓(xùn)練,得到原始模型A和改進(jìn)后的模型B.然后改變訓(xùn)練策略,使用偽標(biāo)簽策略以模型B為基礎(chǔ)再次進(jìn)行訓(xùn)練,得到最終訓(xùn)練模型C.最后劃分好的測試集對3個模型進(jìn)行對比測試,得到它們的評價指標(biāo)和推理速度.為了驗證改進(jìn)YOLOv5算法損失函數(shù)的有效性,額外增加一組訓(xùn)練模型A1,該模型與原始模型相同,僅將損失函數(shù)的box部分替換為CIOU_Loss.

表1 每個模型的改進(jìn)策略Table 1 Improvement strategies for each model

每次模型訓(xùn)練均采用SGD優(yōu)化器,其余參數(shù)如下:圖像batchsize(每批次訓(xùn)練量)為32張;迭代次數(shù)為400;動量因子為0.937;權(quán)重衰減系數(shù)為0.001.采用余弦退火策略動態(tài)調(diào)整學(xué)習(xí)率,初始學(xué)習(xí)率為0.1,IOU閾值設(shè)為0.5.

3 實驗結(jié)果分析

本次實驗的A,B,C三個模型訓(xùn)練過程的損失函數(shù)和mAP變化曲線如圖4所示.

訓(xùn)練過程顯示,迭代次數(shù)為400時,3個模型的訓(xùn)練集和驗證集損失函數(shù)均達(dá)到最低,mAP達(dá)到最高且在一段連續(xù)過程中都不再有太大變化,可以視為完成了收斂.對訓(xùn)練后的模型測試每一類的檢測精度均值A(chǔ)P和所有類的平均精度均值mAP,結(jié)果如表2所示.

圖4 模型訓(xùn)練過程中mAP和損失函數(shù)的變化

表2的結(jié)果說明,在本文劃分的KITTI交通目標(biāo)測試集上,改進(jìn)后YOLOv5模型B對比原始YOLOv5模型A的mAP提升了2.5%,在模型C采用偽標(biāo)簽訓(xùn)練策略后又提升了0.5%,兩次共計提升3%.對行人和騎車人這兩類較小的目標(biāo),檢測精度的總提升分別達(dá)到了5.4%和3.5%,本文訓(xùn)練的YOLOv5檢測模型在交通目標(biāo)的檢測上做到了平均精度和小目標(biāo)檢測精度的提升,證明算法和訓(xùn)練策略的改進(jìn)是成功的.而YOLOv5算法本身對車輛等中大型目標(biāo)檢測效果較好,原始模型已經(jīng)取得不錯的檢測效果,3個訓(xùn)練模型對車輛的檢測精度大體相當(dāng)?shù)慕Y(jié)果是可以接受的.改進(jìn)損失函數(shù)的模型A1的mAP和行人、騎車人的檢測精度等指標(biāo)也比原始模型有所提升,說明算法網(wǎng)絡(luò)結(jié)構(gòu)和損失函數(shù)的改進(jìn)都能使檢測效果得到增益.

表2 模型測試結(jié)果對比Table 2 Comparison of model test results

本文的目標(biāo)檢測算法與其他經(jīng)典的目標(biāo)檢測算法在KITTI數(shù)據(jù)集上的對比結(jié)果如表3所示,實驗結(jié)果表明,相比Faster R-CNN,SSD和YOLOv3系列算法,本文采用的改進(jìn)YOLOv5算法檢測精度達(dá)到了一個更高的水平.

表3 改進(jìn)YOLOv5與其他算法的測試結(jié)果對比Table 3 Comparison of test results between improved YOLOv5 and other algorithms

圖5a顯示模型在光照強度反差較大場景的檢測結(jié)果,圖中亮部的目標(biāo)較小的車輛和騎車人,暗部的車輛都能被模型識別和定位.圖5b是光照較弱的遮擋場景,模型檢測出了互相遮擋的車輛、騎車人和被車輛遮擋的行人等目標(biāo),對于此類目標(biāo)較多的場景沒有發(fā)生漏檢和誤檢.圖5c存在被圖像邊緣遮擋的行人和車輛,還有互相遮擋的行人和騎車人,行人和騎車人目標(biāo)特征有相似之處,模型能將它們準(zhǔn)確定位且互相區(qū)分體現(xiàn)了其良好的檢測性能,僅僅漏檢遠(yuǎn)處1個極小的車輛目標(biāo).

從以上結(jié)果可以看出,經(jīng)過改進(jìn)的YOLOv5模型實際檢測圖像時不容易受不良條件影響,具有較好的魯棒性.但是,僅僅訓(xùn)練出精準(zhǔn)的模型是不夠的,還需要將其移植到實際應(yīng)用的嵌入式平臺并且做到實時檢測,方能體現(xiàn)出它的實用性.

圖5 不同條件下的檢測結(jié)果

4 模型的嵌入式移植與推理加速

4.1 Jetson Nano嵌入式平臺介紹

訓(xùn)練模型的嵌入式設(shè)備采用NVIDIA Jetson Nano,相較于其他同類設(shè)備,其價格優(yōu)勢明顯,并且體積更小,設(shè)備的布置更為便利.它配備了四核Cortex-A57 CPU、128核Maxwell GPU和4GB內(nèi)存,使用集成CUDA、OpenCV、TensorRT等環(huán)境的NVIDIA JetPack開發(fā)組件,支持TensorFlow和Pytorch等常見的人工智能框架,支持CSI、USB等攝像頭圖像輸入.本次模型部署采用10 W高性能運行模式.設(shè)備實物圖如圖6所示.

4.2 TensorRT的原理

TensorRT是 NVIDIA 公司推出的推理加速引擎,內(nèi)部使用CUDA和C語言進(jìn)行編程,適合應(yīng)用于駕駛輔助等推理速度比較重要的目標(biāo)檢測場景.

圖6 Jetson Nano實物圖

TensorRT通過GPU對網(wǎng)絡(luò)層進(jìn)行水平和垂直整合來達(dá)到優(yōu)化和加速的效果,優(yōu)化過程沒有改變模型參數(shù)量和網(wǎng)絡(luò)底層的計算,只需要對計算圖進(jìn)行重構(gòu),就可以讓模型高效運行.例如本文圖1和圖2的YOLOv5網(wǎng)絡(luò)包含大量的卷積模塊和張量合并,TensorRT可以將前者的卷積、BN正規(guī)化和激活三個步驟一次性融合完成計算,而張量合并的Concat層輸入可以直接進(jìn)入網(wǎng)絡(luò)下一層,不再單獨進(jìn)行合并計算,減少了計算步驟和數(shù)據(jù)傳輸?shù)臅r間.TensorRT的過程首先把Pytorch框架下訓(xùn)練的交通目標(biāo)檢測模型的.pt權(quán)重文件轉(zhuǎn)化為.wts中間文件,再使用.wts文件構(gòu)建用于推理的引擎(.engine)文件,使用推理引擎推理即可獲得加速.

4.3 結(jié)果分析

本文從KITTI的原始數(shù)據(jù)集中選擇了100張未經(jīng)標(biāo)注的連續(xù)圖像進(jìn)行復(fù)雜交通場景模型推理測試,在Jetson Nano平臺模擬從攝像頭逐幀讀取需要檢測的視頻,結(jié)果如表4所示.

從表4可以看出,原始YOLOv5網(wǎng)絡(luò)的模型A平均每張圖像推理時間為163 ms,改進(jìn)網(wǎng)絡(luò)結(jié)構(gòu)的模型B和C這一推理時間為195 ms,二者的推理速度相當(dāng)于5~6幀/s,速度較慢.經(jīng)過TensorRT加速,3個模型每張圖像的推理時間在73 ms到83 ms不等,平均每張圖像推理時間均為77 ms,約合13幀/s,圖像推理速度大幅提高,能夠滿足檢測實時性要求.另外,網(wǎng)絡(luò)改進(jìn)后的模型加速效果更明顯,推理速度與體積更小的原始網(wǎng)絡(luò)模型A相當(dāng),此前未經(jīng)加速時推理速度會因為改進(jìn)模型而下降的問題得到了解決.圖7以圖5a為例展示了原模型和改進(jìn)后的模型經(jīng)過推理加速后檢測的畫面效果,TensorRT加速使得目標(biāo)種類的編號取代了名稱和置信度,編號0,1,2分別代表Pedestrian,Cyclist和Car,畫面更為簡潔.二者推理生成的檢測框幾乎沒有差異,不會造成檢測精度損失.由此,本文在嵌入式平臺仿真實現(xiàn)了實時的復(fù)雜場景交通目標(biāo)檢測,YOLOv5模型出色的檢測能力也得到驗證.

表4 TensorRT加速前后推理時間對比Table 4 Comparison of inference time before and after TensorRT acceleration ms

圖7 TensorRT加速后模型的檢測效果

5 結(jié) 語

為了實現(xiàn)復(fù)雜場景下的交通目標(biāo)實時檢測,本文提出一種基于改進(jìn)YOLOv5的交通目標(biāo)檢測算法,采用更復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu)和更精確的損失函數(shù),對訓(xùn)練過程采用偽標(biāo)簽的形式進(jìn)行優(yōu)化.在KITTI數(shù)據(jù)集上的訓(xùn)練和測試結(jié)果表明,經(jīng)過本文方法改進(jìn)的訓(xùn)練模型檢測性能指標(biāo)優(yōu)于原始YOLOv5訓(xùn)練的模型,用于實際的交通目標(biāo)檢測任務(wù)中效果較好.鑒于將模型移植到Jetson Nano嵌入式平臺后推理速度較慢,本文使用TensorRT對模型推理進(jìn)行加速,不僅實現(xiàn)了復(fù)雜場景交通目標(biāo)檢測,檢測速度也能滿足實時性要求.后續(xù)工作可以嘗試將攝像頭與嵌入式平臺連接并在真實交通環(huán)境下實時采集并處理圖像或視頻數(shù)據(jù),以驗證模型的泛化能力,還可以對寬度和深度更高的YOLOv5網(wǎng)絡(luò)進(jìn)行輕量化處理,將得到的模型與現(xiàn)有的YOLOv5s系列模型進(jìn)行對比,發(fā)掘檢測效果和速度更好的方案.

猜你喜歡
精度標(biāo)簽函數(shù)
基于不同快速星歷的GAMIT解算精度分析
數(shù)字化無模鑄造五軸精密成形機精度檢驗項目分析與研究
近似邊界精度信息熵的屬性約簡
不害怕撕掉標(biāo)簽的人,都活出了真正的漂亮
關(guān)于函數(shù)的一些補充知識
高中數(shù)學(xué)中二次函數(shù)應(yīng)用舉隅オ
讓衣柜擺脫“雜亂無章”的標(biāo)簽
無獨有偶 曲徑通幽
科學(xué)家的標(biāo)簽
科學(xué)家的標(biāo)簽
桓台县| 卓资县| 楚雄市| 新疆| 石台县| 昌邑市| 商都县| 云龙县| 太和县| 清涧县| 沂源县| 祁东县| 卓尼县| 柞水县| 麟游县| 灵石县| 荆门市| 蕉岭县| 永定县| 庄河市| 伊通| 安顺市| 禄丰县| 保康县| 宁晋县| 贺州市| 沾化县| 宝应县| 志丹县| 梁山县| 石楼县| 贵州省| 临江市| 梁平县| 宁夏| 宜君县| 饶河县| 山东省| 商水县| 漳平市| 五原县|