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

?

一種基于TX2平臺(tái)的改進(jìn)YOLOv3紅綠燈檢測(cè)算法*

2021-08-24 01:36:08常飛翔劉元盛李中道路銘張軍
汽車技術(shù) 2021年8期
關(guān)鍵詞:錨框剪枝紅綠燈

常飛翔 劉元盛 李中道 路銘 張軍

(北京聯(lián)合大學(xué),北京市信息服務(wù)工程重點(diǎn)實(shí)驗(yàn)室,北京 100101)

主題詞:紅綠燈識(shí)別 YOLOv3 TX2平臺(tái) 錨框 模型壓縮

1 前言

利用圖像處理技術(shù)對(duì)紅綠燈進(jìn)行實(shí)時(shí)檢測(cè)是無人駕駛技術(shù)的研究熱點(diǎn)。目前,該檢測(cè)方法分為2 類,即基于模型的方法和基于學(xué)習(xí)的方法。對(duì)于前者,已經(jīng)開展了大量的研究工作并提出了許多方法:Chen等[1]利用色彩空間HSI(Horizontal Situation Indicator)和方向梯度直方圖(Histogram of Oriented Gradients,HOG)特征對(duì)紅綠燈進(jìn)行檢測(cè);Shi等[2]采用背景抑制算法和顏色直方圖信息對(duì)紅綠燈進(jìn)行檢測(cè);Tran 等[3]采用基于顏色密度的識(shí)別算法完成紅綠燈目標(biāo)檢測(cè);Haltako等[4]采用語義分割以及顏色特征分類器完成紅綠燈目標(biāo)分類;宋永超等[5]提出了一種基于色度方向角的離線紅綠燈檢測(cè)算法。

隨著人工智能技術(shù)的不斷進(jìn)步,基于學(xué)習(xí)的方法也被應(yīng)用到了紅綠燈檢測(cè)中:Wang等[6]采用雙通道機(jī)制和深度神經(jīng)網(wǎng)絡(luò)完成了紅綠燈檢測(cè);V.John等[7]提出了一種結(jié)合顯著圖的深度學(xué)習(xí)紅綠燈檢測(cè)方法。

使用基于模型的檢測(cè)方法在復(fù)雜背景下存在抗干擾性差、精度低等缺點(diǎn),而基于學(xué)習(xí)的方法中使用例如快速區(qū)域卷積神經(jīng)網(wǎng)絡(luò)[8]兩階段網(wǎng)絡(luò)結(jié)構(gòu)的學(xué)習(xí)方法實(shí)現(xiàn)的目標(biāo)檢測(cè)算法存在實(shí)時(shí)性差等問題。為解決以上問題,以單階段網(wǎng)絡(luò)結(jié)構(gòu)為特點(diǎn)的YOLOv3[9]目標(biāo)檢測(cè)算法在精度和速度方面做了很好的平衡。但在園區(qū)無人駕駛場(chǎng)景應(yīng)用中,由于車載電腦小型化,以及園區(qū)紅綠燈位置不確定性及其樣式非標(biāo)準(zhǔn)性,常規(guī)YOLOv3算法將面臨模型加載時(shí)間長(zhǎng)、檢測(cè)速度慢以及準(zhǔn)確率低的問題。為此,本文基于TX2嵌入式平臺(tái)對(duì)YOLOv3算法在進(jìn)行最優(yōu)錨框尺度獲取、裁減大尺度特征檢測(cè)分支、模型剪枝壓縮3 個(gè)方面的改進(jìn),同時(shí)設(shè)置離線檢測(cè)與在線檢測(cè)驗(yàn)證其正確性與可行性。

2 改進(jìn)的YOLOv3算法

無人車在園區(qū)環(huán)境用嵌入式設(shè)備TX2 對(duì)移動(dòng)式紅綠燈進(jìn)行檢測(cè)時(shí),采用傳統(tǒng)YOLOv3算法存在以下問題:

a.YOLOv3 中錨框尺度是在COCO(Common Objects in Context)數(shù)據(jù)集下,利用K 均值聚類(KMeans)算法[10]進(jìn)行維度聚類后得到的。由于COCO 數(shù)據(jù)集中某些類別,例如火車、大象等目標(biāo)的長(zhǎng)寬比與本文數(shù)據(jù)集相差很大,在錨框尺度預(yù)測(cè)過程中,使用YOLOv3原本的錨框尺度會(huì)降低目標(biāo)檢測(cè)的正確率。

b.園區(qū)非結(jié)構(gòu)化道路中的紅綠燈屬于中小目標(biāo),利用YOLOv3大尺度特征圖檢測(cè)會(huì)影響檢測(cè)速度。

c.嵌入式設(shè)備TX2利用YOLOv3檢測(cè)模型進(jìn)行目標(biāo)檢測(cè)時(shí),模型加載時(shí)間長(zhǎng)、檢測(cè)速度低、內(nèi)存消耗嚴(yán)重。

針對(duì)上述問題,本文從3個(gè)方面對(duì)YOLOv3進(jìn)行改進(jìn)。

2.1 最優(yōu)錨框尺度獲取

在錨框尺度預(yù)測(cè)過程中,傳統(tǒng)YOLOv3 算法使用K-Means算法獲得錨框尺度的參數(shù),對(duì)預(yù)測(cè)框的位置進(jìn)行初始化,錨框尺度用像素值表示。K-Means算法在聚類效果上十分依賴聚類簇?cái)?shù)量K的選擇,隨機(jī)選擇的方式不一定會(huì)得到全局結(jié)果最優(yōu),影響聚類結(jié)果。

為了改善原有K-Means 算法的聚類效果,使用KMeans++[11]算法進(jìn)行改進(jìn),聚類原則為盡量使每個(gè)聚類中心的歐式距離最大,而非隨機(jī)產(chǎn)生。具體步驟為:

a.確定K,從輸入的數(shù)據(jù)點(diǎn)集合中隨機(jī)選擇一個(gè)數(shù)據(jù)點(diǎn)作為第1個(gè)聚類中心C1;

b.計(jì)算剩余樣本與當(dāng)前最近一個(gè)聚類中心的距離D(x),D(x)越大,表示被選取作為聚類中心的概率越大,概率p(x)的計(jì)算方式為:

式中,x為數(shù)據(jù)集中的樣本點(diǎn);X為整體樣本點(diǎn)的集合。

c.使用輪盤法選出下一個(gè)聚類中心;

d.重復(fù)b、c,直至選出K個(gè)聚類中心[C1,C2,…,Ck];

e.計(jì)算數(shù)據(jù)集中的點(diǎn)的向量與挑選出的質(zhì)心向量之間的歐氏距離,并將每個(gè)點(diǎn)劃分至與其距離最近的質(zhì)心簇中,計(jì)算方式為:

式中,li為質(zhì)心所屬類別;xi為數(shù)據(jù)集中剩余的數(shù)據(jù)點(diǎn)對(duì)應(yīng)的向量;μj為已經(jīng)挑選出的質(zhì)心對(duì)應(yīng)的向量。

f.所有數(shù)據(jù)經(jīng)過第1 輪迭代獲得相應(yīng)的類別后,重新計(jì)算每個(gè)聚類集合的質(zhì)心,并將所有點(diǎn)的類別標(biāo)記為距離最近的質(zhì)心的類別。

不斷重復(fù)該過程,算法結(jié)束條件為新計(jì)算出的質(zhì)心與原質(zhì)心的距離小于設(shè)置閾值。針對(duì)本文數(shù)據(jù)集,設(shè)K-Means++算法中聚類簇?cái)?shù)量為K=9個(gè)時(shí),錨框尺度聚類精度可達(dá)88.68%,9個(gè)錨框尺度分別為(12,64)、(8,45)、(9,49)、(5,28)、(15,78)、(6,33)、(7,39)、(19,102)、(10,54)。

2.2 裁減大尺度特征檢測(cè)分支

在YOLOv3 算法的3 次不同尺度的檢測(cè)中,不同的特征圖對(duì)應(yīng)不同的感受野:13×13 的特征圖感受野最大,適用于大目標(biāo)物體檢測(cè),當(dāng)網(wǎng)絡(luò)的輸入圖片分辨率參數(shù)為416×416 時(shí),每個(gè)網(wǎng)格的3 個(gè)錨框尺度分別為(116,90)、(156,198)、(373,326);26×26 的特征圖感受野適用于中等物體的檢測(cè),錨框尺度為(30,61)、(62,45)、(59,119);52×52 的特征圖感受野最小,適用于小目標(biāo)檢測(cè),錨框尺度為(10,13)、(16,30)、(33,23)。針對(duì)本文的應(yīng)用場(chǎng)景,紅綠燈目標(biāo)屬于中小目標(biāo),采用大尺度特征檢測(cè)一般不起作用,反而會(huì)增加計(jì)算量,所以對(duì)YOLOv3 算法的網(wǎng)絡(luò)結(jié)構(gòu)的大尺度特征檢測(cè)進(jìn)行裁減,裁減后的網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示,網(wǎng)絡(luò)結(jié)構(gòu)主要包括3個(gè)部分,即圖片輸入、基礎(chǔ)網(wǎng)絡(luò)以及網(wǎng)絡(luò)的2個(gè)多尺度檢測(cè)分支YOLO-2、YOLO-3。只保留了26×26×24、52×52×24 2 個(gè)輸出維度,分別對(duì)應(yīng)YOLO-2和YOLO-3,去掉YOLO-1的大尺度特征檢測(cè)分支(見圖1),即可在準(zhǔn)確識(shí)別中小目標(biāo)的同時(shí),加快檢測(cè)速率,滿足無人車實(shí)時(shí)性檢測(cè)的要求。

圖1 修改后的網(wǎng)絡(luò)結(jié)構(gòu)

2.3 模型剪枝壓縮

YOLOv3 采用的骨架網(wǎng)絡(luò)為Darknet-53,53 層的網(wǎng)絡(luò)結(jié)構(gòu)使得模型精度大幅度提升,但是模型的參數(shù)量也隨之增多,訓(xùn)練得到的模型參數(shù)量約為260 MB。目前無人車使用的車載計(jì)算單元正逐步向體積小、耗能低以及成本更低的嵌入式設(shè)備發(fā)展,嵌入式設(shè)備TX2與計(jì)算機(jī)GPU平臺(tái)在性能上有較大差異。

使用嵌入式設(shè)備TX2 執(zhí)行目標(biāo)檢測(cè)時(shí),存在模型加載時(shí)間長(zhǎng)、對(duì)計(jì)算機(jī)內(nèi)存消耗嚴(yán)重的問題。為解決以上問題,借鑒網(wǎng)絡(luò)模型壓縮的思想[12],對(duì)訓(xùn)練得到的檢測(cè)模型進(jìn)行壓縮。

模型剪枝的基本流程主要包括模型稀疏訓(xùn)練、模型剪枝、模型微調(diào)3 個(gè)步驟。在稀疏化訓(xùn)練過程中,在YOLOv3的網(wǎng)絡(luò)結(jié)構(gòu)中,每個(gè)卷積層后都增加了批量歸一化(Batch Normalization,BN)層,對(duì)通道進(jìn)行歸一化操作:

式中,γ、β為用于縮放和平移的參數(shù);E為每一批訓(xùn)練數(shù)據(jù)的均值;Var為每一批訓(xùn)練數(shù)據(jù)的方差。

將BN 層的參數(shù)γ作為通道剪枝因子,經(jīng)過卷積層計(jì)算得到的特征圖大小為w×h×c,其中w、h分別為特征圖的寬和高,c為特征圖的通道數(shù)量。

模型在稀疏化的過程中需要訓(xùn)練BN 層的參數(shù)γ,并且引入L1 正則化[13],不斷壓縮γ的值。通過壓縮,某些通道的γ趨于0,對(duì)于γ=0 的通道以及濾波器直接進(jìn)行裁減,對(duì)于剩余的通道制定裁剪比例,去掉對(duì)應(yīng)的通道以及濾波器,完成模型的裁剪。

完成模型剪枝操作后,網(wǎng)絡(luò)卷積層的通道數(shù)量會(huì)變得混亂,導(dǎo)致模型檢測(cè)精度有所下降,需對(duì)裁剪后的網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行進(jìn)一步調(diào)整,根據(jù)Darknet-53 網(wǎng)絡(luò)結(jié)構(gòu)特點(diǎn),將殘差結(jié)構(gòu)作為基本單元結(jié)構(gòu)進(jìn)行修整,調(diào)整過程為:

式中,a為裁剪后每層濾波器的數(shù)量;x為修整后濾波器的數(shù)量。

對(duì)裁減后的模型進(jìn)行網(wǎng)絡(luò)結(jié)構(gòu)的重新修正,然后通過模型微調(diào)的方式恢復(fù)部分重要的權(quán)值,減少剪枝操作對(duì)模型精度的損傷,就可以在保證模型性能的條件下,最大程度地壓縮模型參數(shù)數(shù)量和運(yùn)算量。

3 試驗(yàn)與結(jié)果分析

為了驗(yàn)證改進(jìn)算法有效性和可行性,設(shè)計(jì)了離線數(shù)據(jù)測(cè)試和實(shí)際環(huán)境實(shí)時(shí)測(cè)試。在園區(qū)紅綠燈檢測(cè)領(lǐng)域中,目前沒有開源的大型數(shù)據(jù)集,本文采用自制數(shù)據(jù)集。在北京聯(lián)合大學(xué)校區(qū)內(nèi),在室外校園環(huán)境和地下車庫(kù)室內(nèi)共采集12 個(gè)地點(diǎn),共采集圖片3 000 張,其中,2 200 張圖片作為訓(xùn)練數(shù)據(jù)集,另外800 張圖片作為測(cè)試數(shù)據(jù)集,并在訓(xùn)練數(shù)據(jù)集中抽取220張圖片作為驗(yàn)證數(shù)據(jù)集,部分?jǐn)?shù)據(jù)集圖像如圖2所示。

圖2 部分?jǐn)?shù)據(jù)集圖像

3.1 離線數(shù)據(jù)測(cè)試

在離線數(shù)據(jù)測(cè)試中,設(shè)置了4組對(duì)比試驗(yàn):驗(yàn)證KMeans++算法相對(duì)于K-Means 算法在本文數(shù)據(jù)集上聚類精度的優(yōu)化;驗(yàn)證利用K-Means++算法得到的錨框尺度在本文數(shù)據(jù)集上目標(biāo)檢測(cè)精度的優(yōu)化;裁減大尺度特征檢測(cè)分支的YOLOv3 算法在目標(biāo)檢測(cè)速度上的優(yōu)化;經(jīng)模型剪枝的檢測(cè)模型在精度和速度上的優(yōu)化。

第1組試驗(yàn)中,利用K-Means++與K-Means算法在本文數(shù)據(jù)集上分別設(shè)置了1~9個(gè)聚類簇,不同聚類簇下二者聚類精度如圖3所示,在本文數(shù)據(jù)集上,K-Means++算法聚類精度相對(duì)于K-Means算法提升了約2.1%。

圖3 聚類精度對(duì)比

第2組試驗(yàn)中,將K-Means++算法在本文數(shù)據(jù)集上進(jìn)行維度聚類后得到的錨框尺度應(yīng)用在目標(biāo)檢測(cè)中,采用準(zhǔn)確率、召回率評(píng)估檢測(cè)模型的準(zhǔn)確性。準(zhǔn)確率為:

式中,P為準(zhǔn)確率;Tp為模型正確檢測(cè)到的目標(biāo)數(shù)量;Fp為系統(tǒng)錯(cuò)誤檢測(cè)到的目標(biāo)數(shù)量。

召回率R為:

式中,F(xiàn)N為系統(tǒng)錯(cuò)誤檢測(cè)以及漏檢的數(shù)量。

為了更加客觀地對(duì)模型性能進(jìn)行評(píng)價(jià),使用類別精度(Average Precision,AP)來表示模型對(duì)某一類別的檢測(cè)精度,每一個(gè)類別都可以得到準(zhǔn)確率與召回率的關(guān)系,即精確率-召回率(Precision Recall,PR)曲線,PR 曲線下的面積即對(duì)某一類別計(jì)算得到的類別精度。針對(duì)多個(gè)類別,使用平均精度(mean Average Precision,mAP)來表示模型的整體檢測(cè)性能:

式中,N為類別數(shù)量;Apc為每一個(gè)類別的類別精度。

利用改進(jìn)前的YOLOv3 算法和改進(jìn)錨框尺度后的YOLOv3 算法對(duì)本文數(shù)據(jù)集進(jìn)行測(cè)試,結(jié)果如表1 所示,2 種算法的PR 曲線如圖4 所示。在超參數(shù)設(shè)置相同的情況下,改進(jìn)錨框尺度后的YOLOv3 算法相比于YOLOv3算法平均精度提高了34百分點(diǎn)。

表1 改進(jìn)前、后YOLOv3測(cè)試結(jié)果

第3 組試驗(yàn)中,裁減后的YOLOv3 算法的平均幀速率提高了13幀∕s,平均精度下降了0.8百分點(diǎn),各類別的檢測(cè)精度變化如表2 所示。精度下降是由于測(cè)試數(shù)據(jù)集中有近距離的紅綠燈測(cè)試集,去掉大尺寸檢測(cè)框雖然防止了大尺寸誤判,也導(dǎo)致這些目標(biāo)的漏判,但是在精度可比的情況下,檢測(cè)速度大幅提升。

表2 裁剪大尺度特征檢測(cè)前后對(duì)比

第4組試驗(yàn)中,通過對(duì)稀疏化訓(xùn)練后的檢測(cè)模型進(jìn)行通道剪枝,模型參數(shù)量縮減至11.9%,檢測(cè)模型剪枝前、后和微調(diào)后的模型參數(shù)量以及模型加載時(shí)間變化情況如表3 所示。使用剪枝后的檢測(cè)模型再次對(duì)本文數(shù)據(jù)集進(jìn)行測(cè)試,平均精度下降了13百分點(diǎn),模型加載時(shí)間縮短了4.5 s。模型檢測(cè)精度下降是模型稀疏化訓(xùn)練導(dǎo)致的,通過對(duì)剪枝后的模型網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行修整并通過模型微調(diào)降低剪枝對(duì)模型精度的影響,模型在微調(diào)過程中平均精度變化曲線如圖5 所示,迭代150 次后,模型的平均精度為93%,雖然下降了5百分點(diǎn),但在模型精確度可比的情況下,參數(shù)量大幅縮減,極大縮短了模型加載時(shí)間,減小了計(jì)算單元硬件資源壓力。

表3 檢測(cè)模型剪枝前后性能對(duì)比

圖5 模型微調(diào)平均精度變化

3.2 實(shí)際環(huán)境測(cè)試

本文在校園實(shí)際環(huán)境測(cè)試中,采用第四代小旋風(fēng)智能車以及移動(dòng)式紅綠燈,如圖6所示。車載電腦為嵌入式設(shè)備Jetson TX2,硬件配置為6 核CPU 架構(gòu),256 核Pascal架構(gòu)的GPU核心,內(nèi)存8 GB。

圖6 試驗(yàn)平臺(tái)

使用視頻逐幀統(tǒng)計(jì)的方法對(duì)模型檢測(cè)性能進(jìn)行評(píng)價(jià)。為了驗(yàn)證模型的魯棒性,分別在北京聯(lián)合大學(xué)園區(qū)環(huán)境以及干擾條件下的地庫(kù)環(huán)境隨機(jī)選取了3 組不同的測(cè)試場(chǎng)景,檢測(cè)正確率計(jì)算公式為:

式中,D為正確率;TD為模型正確檢測(cè)出的視頻幀總數(shù)量;TF為模型錯(cuò)誤檢測(cè)出以及漏檢的視頻幀總數(shù)量之和。

使用檢測(cè)模型對(duì)園區(qū)紅綠燈進(jìn)行檢測(cè),選取園區(qū)3個(gè)隨機(jī)測(cè)試場(chǎng)景和3個(gè)干擾測(cè)試場(chǎng)景,分別如圖7、圖8所示。其中園區(qū)場(chǎng)景和干擾場(chǎng)景的各類視頻幀總數(shù)量以及檢測(cè)結(jié)果如表4 所示,各類別的詳細(xì)檢測(cè)結(jié)果如圖9 所示,從模型測(cè)試結(jié)果來看,園區(qū)環(huán)境中場(chǎng)景2 的檢測(cè)率有所下降,這是由于攝像頭受到了強(qiáng)光的影響。試驗(yàn)數(shù)據(jù)表明,園區(qū)測(cè)試場(chǎng)景下的平均測(cè)試精度為94.5%,在干擾環(huán)境下的平均測(cè)試精度為94.75%。

圖7 園區(qū)測(cè)試結(jié)果

圖8 干擾環(huán)境測(cè)試結(jié)果

表4 園區(qū)環(huán)境測(cè)試統(tǒng)計(jì)

圖9 園區(qū)紅綠燈類別檢測(cè)結(jié)果

為了證明本文算法的泛化性,開展了實(shí)際道路中的交通紅綠燈的測(cè)試工作,在10 km的道路測(cè)試中,共有2類交通燈,分別為十字路口的交通紅綠燈和單行道行人路口交通紅綠燈,部分測(cè)試結(jié)果如圖10所示。

圖10 實(shí)際道路紅綠燈檢測(cè)結(jié)果

在10 km的車程中,對(duì)道路出現(xiàn)的紅綠燈共采集測(cè)試150幀圖像數(shù)據(jù),檢測(cè)結(jié)果統(tǒng)計(jì)如表5所示,從模型對(duì)3種不同類型的紅綠燈的檢測(cè)結(jié)果來看,黃燈的檢測(cè)正確率低于其他2 類的原因是黃燈數(shù)據(jù)集偏少,綜合來看,模型對(duì)實(shí)際道路紅綠燈的平均檢測(cè)率為92.7%。

表5 實(shí)際道路紅綠燈檢測(cè)統(tǒng)計(jì)

4 結(jié)束語

本文基于嵌入式設(shè)備TX2,采用改進(jìn)YOLOv3 算法完成無人車的園區(qū)紅綠燈檢測(cè)任務(wù)。首先針對(duì)YOLOv3原有的錨框尺度進(jìn)行改進(jìn),使用K-Means++算法得到最優(yōu)錨框尺度,使得模型的檢測(cè)精度從64%提升至98%,通過裁減網(wǎng)絡(luò)大尺度檢測(cè)分支,幀速率從4幀∕s提高至19幀∕s。在無人車的實(shí)際測(cè)試中,對(duì)非結(jié)構(gòu)化移動(dòng)式紅綠燈的識(shí)別正確率為94.75%,對(duì)實(shí)際道路的結(jié)構(gòu)化紅綠燈檢測(cè)率為92.7%。通過對(duì)檢測(cè)模型進(jìn)行剪枝壓縮,在精確度可比的情況下,模型的參數(shù)量縮小至原來的11.9%,模型加載時(shí)間縮短了4.5 s,極大地降低了硬件資源的消耗,可以滿足無人車在嵌入式設(shè)備TX2下,完成園區(qū)紅綠燈目標(biāo)識(shí)別的任務(wù)。后續(xù)將繼續(xù)優(yōu)化模型剪枝策略,提高剪枝后模型的檢測(cè)精度與速度。

猜你喜歡
錨框剪枝紅綠燈
基于YOLOv3錨框優(yōu)化的側(cè)掃聲吶圖像目標(biāo)檢測(cè)
錨框策略匹配的SSD飛機(jī)遙感圖像目標(biāo)檢測(cè)
基于SSD算法的輕量化儀器表盤檢測(cè)算法*
人到晚年宜“剪枝”
基于GA-RoI Transformer的遙感圖像任意方向目標(biāo)檢測(cè)
基于YOLOv4-Tiny模型剪枝算法
紅綠燈前
快樂語文(2018年25期)2018-10-24 05:38:42
神奇的紅綠燈
會(huì)說話的紅綠燈
剪枝
正蓝旗| 武宣县| 迁安市| 姚安县| 清徐县| 神池县| 成安县| 建瓯市| 江门市| 娄烦县| 高邮市| 望江县| 涡阳县| 讷河市| 浮梁县| 大新县| 彭山县| 扎囊县| 鹤庆县| 八宿县| 攀枝花市| 鄯善县| 长岭县| 无为县| 东乌珠穆沁旗| 万山特区| 浦县| 田阳县| 莱芜市| 伊宁县| 绥棱县| 武宣县| 渭南市| 大庆市| 水城县| 科技| 三门县| 嘉兴市| 扬中市| 阳城县| 朝阳市|