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

?

基于改進(jìn)YOLO算法的FSAC賽車實(shí)時目標(biāo)檢測系統(tǒng)

2020-10-19 07:37張代勝張南岳
關(guān)鍵詞:尺度賽車邊界

李 濤, 張代勝, 張 飛, 張南岳

(合肥工業(yè)大學(xué) 汽車與交通工程學(xué)院,安徽 合肥 230009)

中國大學(xué)生無人駕駛方程式大賽(Formula Student Autonomous China,FSAC)要求各車隊(duì)的本科生和研究生在1 a的時間內(nèi),設(shè)計、制造一輛符合賽事要求的純電動方程式賽車,該賽車能夠無人駕駛,并能自主完成動態(tài)比賽。

目標(biāo)檢測系統(tǒng)在無人駕駛方程式賽車環(huán)境感知系統(tǒng)中有著重要的作用,其主要作用是對賽道、障礙物和交通標(biāo)志的檢測等。近年來,主流的目標(biāo)檢測模型有基于滑動窗口檢測的可變形部件模型(deformable part models,DPM)[1-2]、基于候選區(qū)域方法的R-CNN(regions with CNN features)等[3],但它們流程復(fù)雜、分離與檢測速度較慢。目前,常用的實(shí)時目標(biāo)檢測算法是基于回歸的YOLO(you only look once)和SSD(single shot detector)[4]等。其中,YOLO算法兼顧了高的檢測精度和檢測速度,是目前表現(xiàn)最優(yōu)秀的目標(biāo)檢測算法[5]。

國內(nèi)已有一些學(xué)者開始應(yīng)用YOLO算法進(jìn)行目標(biāo)檢測。文獻(xiàn)[6]使用YOLO算法對交通監(jiān)控中車輛進(jìn)行實(shí)時檢測;文獻(xiàn)[7]通過調(diào)整候選邊界框的比例,使得YOLO更加適用于行人檢測;文獻(xiàn)[8]通過借鑒DenseNet的思想,將密集卷積模塊加入特征提取網(wǎng)絡(luò),提升了檢測精度。然而上述方法對YOLO算法的改進(jìn)無法適用于FSAC賽事特定場景:① 無法增強(qiáng)對小目標(biāo)物的檢測;② 深層和復(fù)雜的網(wǎng)絡(luò)使得計算量增加,但對精確度的提升卻不高;③ 對硬件要求提高,占用的賽車布置空間增加。

本文將YOLO算法應(yīng)用在FSAC賽車的目標(biāo)檢測系統(tǒng)中,以YOLOv3-tiny算法為基礎(chǔ),提出一種基于改進(jìn)YOLO算法的實(shí)時目標(biāo)檢測系統(tǒng),適用于FSAC賽事特定場景。通過對原始YOLOv3-tiny算法的改進(jìn),根據(jù)數(shù)據(jù)集中真實(shí)邊界框聚類選取初始邊界框尺寸,構(gòu)建了一種兼顧檢測精度和檢測速度的輕量化算法,以滿足實(shí)時檢測的需求,并且將系統(tǒng)搭載在嵌入式平臺上,提升賽車整車布置和搭載的靈活性。

1 YOLO算法原理

1.1 檢測原理

YOLO算法是一種基于回歸的目標(biāo)檢測算法,其檢測原理如圖1所示。

圖1 YOLO算法檢測原理

YOLO算法將輸入的待檢測圖片劃分為S×S的網(wǎng)格,每個網(wǎng)格會預(yù)測B個初始邊界框以及邊界框的置信度C。置信度C的定義如下:

(1)

(2)

其中,bt為真實(shí)邊界框;bp為預(yù)測邊界框;A(bt∩bp)為真實(shí)邊界框與預(yù)測邊界框的交集;A(bt∪bp)為真實(shí)邊界框與預(yù)測邊界框的并集。

若邊界框中存在目標(biāo)物時,網(wǎng)格還會預(yù)測類別概率,用條件概率P(class|object)表示。測試時,將條件分類概率與邊界框的置信度相乘,得到某一類別的置信度,即

(3)

1.2 YOLOv3-tiny算法介紹

YOLO算法目前已發(fā)展到第3個版本[9],最新的YOLOv3-tiny算法主要具有以下特點(diǎn):

(1) 特征提取網(wǎng)絡(luò)。YOLOv3-tiny特征提取網(wǎng)絡(luò)并沒有使用Darknet-53中的殘差模塊[10],而是使用較少的卷積層和池化層進(jìn)行特征提取。這使得YOLOv3-tiny算法保持相對較高的檢測速度,也有較高的準(zhǔn)確率。

(2) 目標(biāo)物的檢測。YOLOv3-tiny沿用YOLO9000的方法[11],將維度聚類作為anchor boxes進(jìn)行邊界框的預(yù)測;然后采用多尺度檢測的方法,預(yù)測2個尺度的邊界框,每個尺度通過從前面2層的卷積層中提取特征圖,并將其上采樣2倍,再與特征提取網(wǎng)絡(luò)中較早的特征圖進(jìn)行融合。這樣既可以從上采樣得到的特征圖中提取有意義的語義信息,也可以從較早的特征圖中提取細(xì)粒度信息。

2 實(shí)時目標(biāo)檢測系統(tǒng)的搭建

2.1 數(shù)據(jù)集制作

本文的研究內(nèi)容是構(gòu)建FSAC賽車的實(shí)時目標(biāo)檢測系統(tǒng),檢測對象是組成比賽賽道的4種樁桶,分為大樁桶、紅色小樁桶、黃色小樁桶以及藍(lán)色小樁桶,不同種類的樁桶在賽道中有著不同的職能。在8字環(huán)繞測試賽道上,紅色小樁桶和藍(lán)色小樁桶組成的賽道為一般賽車行進(jìn)路段,大樁桶為賽車轉(zhuǎn)向標(biāo)志,黃色小樁桶為賽車減速和制動標(biāo)志。因此,需要對樁桶精確分類。

對于目標(biāo)檢測系統(tǒng)的數(shù)據(jù)集,由于前期賽車未制造完成,根據(jù)實(shí)際攝像頭安裝點(diǎn)距離地面的高度和角度,將攝像頭安裝在一個模擬賽車的小推車上,以模擬賽車跑動的實(shí)際工況。攝像頭以20 幀的速率采集跑動狀態(tài)下的圖片,分別在4個不同地點(diǎn)、不同光照條件以及不同賽道條件下采集5 000 張圖片,采集的圖片示例如圖2所示。從采集的圖片中隨機(jī)抽取1 000張制作成帶有標(biāo)簽的數(shù)據(jù)集,并從數(shù)據(jù)集中隨機(jī)抽取800張圖片作為訓(xùn)練集,200張圖片作為測試集。

圖2 采集圖片示例

2.2 YOLOv3-tiny算法網(wǎng)絡(luò)結(jié)構(gòu)的改進(jìn)

FSAC賽車目標(biāo)檢測系統(tǒng)的目標(biāo)物是4種類型的樁桶,其特征較為簡單;YOLOv3算法的網(wǎng)絡(luò)模型和計算量過大,檢測速度較慢,且檢測準(zhǔn)確率提高得并不明顯。因此,本文選取YOLOv3-tiny作為基準(zhǔn)網(wǎng)絡(luò),網(wǎng)絡(luò)模型計算量降低,檢測速度大幅上升。數(shù)據(jù)集中的紅色小樁桶、藍(lán)色小樁桶和黃色小樁桶本身尺寸較小,當(dāng)其距賽車一定距離時,圖片中樁桶顯示的尺寸更小,導(dǎo)致在測試中原始YOLOv3-tiny算法對一些小樁桶產(chǎn)生了漏檢、誤檢。為了讓算法在保證實(shí)時檢測速度下也能兼顧高的檢測準(zhǔn)確率,需要對YOLOv3-tiny算法進(jìn)行改進(jìn),使其能夠更好地檢測小目標(biāo)物,提高檢測精度。

原始YOLOv3-tiny算法在13×13和26×26尺度的特征圖上進(jìn)行目標(biāo)檢測,其對大目標(biāo)物的檢測需求已經(jīng)足夠,但是對小目標(biāo)物準(zhǔn)確檢測需要更細(xì)粒度的特征。因此本文對YOLOv3-tiny網(wǎng)絡(luò)進(jìn)行了改進(jìn),增加對52×52尺度特征圖進(jìn)行目標(biāo)檢測,獲得較早特征圖中的細(xì)粒度信息,并給52×52這個大尺度特征圖分配小尺度的初始邊界框,從而增強(qiáng)對小目標(biāo)物檢測的效果。改進(jìn)算法的檢測結(jié)構(gòu)如圖3所示。

圖3 改進(jìn)算法的檢測結(jié)構(gòu)

2.3 基于數(shù)據(jù)集的邊界框聚類

在模型訓(xùn)練中,如果初始邊界框參數(shù)更接近真實(shí)邊界框,那么模型將更加容易訓(xùn)練,模型收斂速度將加快,且預(yù)測邊界框會更加貼合真實(shí)邊界框。

YOLO算法在訓(xùn)練數(shù)據(jù)前使用k-means算法對相應(yīng)數(shù)據(jù)集邊界框的寬、高進(jìn)行聚類,以選取初始邊界框的尺寸。由于標(biāo)準(zhǔn)的k-means算法通常使用歐式距離計算2點(diǎn)之間的距離,導(dǎo)致尺寸較大的邊界框比小邊界框產(chǎn)生更多的誤差。為了使交并比的大小與邊界框尺寸大小無關(guān),且獲得較大的初始邊界框與真實(shí)邊界框的交并比,YOLO算法采用了新的距離公式,即

d(box;centroid)=1-IOU(box;centroid)

(4)

其中,d(box;centroid)為樣本點(diǎn)到簇中心的距離;IOU(box;centroid)為聚類邊界框和簇的中心框的交并比。

使用k-means算法對數(shù)據(jù)集的真實(shí)邊界框?qū)挕⒏哌M(jìn)行聚類,選取了5個不同聚類值B當(dāng)作邊界框的數(shù)量,取值分別為6、7、8、9、10,邊界框聚類的結(jié)果見表1所列。

表1 邊界框聚類結(jié)果

2.4 基于ROS的改進(jìn)算法部署

無人駕駛方程式賽車有多個傳感器,包括雷達(dá)、攝像頭、GPS等,每個傳感器都在不斷地產(chǎn)生數(shù)據(jù),系統(tǒng)需要對這些數(shù)據(jù)進(jìn)行實(shí)時處理,并且還需要合理調(diào)配軟、硬件資源,這需要一個穩(wěn)定、高效的系統(tǒng)去管理各個模塊。機(jī)器人操作系統(tǒng)(robot operating system,ROS)是一種基于消息傳遞通信的分布式框架,可以很好地適用于無人駕駛汽車系統(tǒng)[12]。因此本文將改進(jìn)的YOLO算法部署到ROS中。

通過創(chuàng)建webcam-pub節(jié)點(diǎn),將攝像頭采集的消息通過名為webcam/image的話題發(fā)布出去,由webcam-display節(jié)點(diǎn)訂閱話題,在窗口中顯示;由yolo-detector節(jié)點(diǎn)訂閱話題,將采集的圖片通過YOLO框架進(jìn)行目標(biāo)檢測,將檢測的分類結(jié)果消息發(fā)布到y(tǒng)olo-class的話題中,將檢測的邊界框數(shù)據(jù)消息發(fā)布到y(tǒng)olo-bounding boxes的話題中,供ROS其他模塊訂閱相關(guān)數(shù)據(jù)。ROS下使用YOLO檢測的節(jié)點(diǎn)運(yùn)行圖如圖4所示,橢圓圈代表不同的節(jié)點(diǎn),方框代表不同的話題,連線代表話題的發(fā)布和訂閱。

圖4 ROS節(jié)點(diǎn)運(yùn)行圖

2.5 實(shí)時目標(biāo)檢測系統(tǒng)在Jetson TX2上的部署

NVIDIA Jetson TX2性能強(qiáng)大、成本較低,有較高的經(jīng)濟(jì)性。其外形尺寸較小,便于整車布置,且部署位置靈活、占用空間較小,適合大批量部署和應(yīng)用,符合FSAC賽事理念,尤其適合部署在無人駕駛方程式賽車上,因此本文選擇在NVIDIA Jetson TX2嵌入式開發(fā)板上搭載目標(biāo)檢測系統(tǒng)。Jetson TX2的GPU采用NVIDIA Pascal構(gòu)架,有256個CUDA核心,處理器有6個CPU核心,包括4個Cortex-A57核心和2個自研的Denver核心,搭配8 GB 128位LPDDR4內(nèi)存。NVIDIA Jetson TX2開發(fā)板如圖5所示。

圖5 NVIDIA Jetson TX2開發(fā)板

3 實(shí)驗(yàn)結(jié)果及分析

本文實(shí)驗(yàn)的軟、硬件平臺如下:CPU為Intel Core i7-7700;顯卡為Nvidia GeForce GTX 1080;內(nèi)存為16 G;操作系統(tǒng)為ubuntu 16.04LTS;搭載實(shí)時目標(biāo)檢測系統(tǒng)的平臺為NVIDIA Jetson TX2。

3.1 邊界框聚類驗(yàn)證

為驗(yàn)證使用k-means算法對目標(biāo)檢測結(jié)果的影響,使用原始YOLOv3-tiny的初始邊界框參數(shù),采用改進(jìn)后的算法對數(shù)據(jù)集進(jìn)行訓(xùn)練、測試。根據(jù)表1中k-means算法得到的邊界框聚類結(jié)果對數(shù)據(jù)集進(jìn)行訓(xùn)練、測試,得到相應(yīng)的交并比(IOU)、召回率(Recall)和準(zhǔn)確率(Precision),其計算公式為:

(5)

(6)

其中,TP為被檢測出且分類正確的樁桶數(shù);FN為沒有被檢測出的樁桶數(shù);FP為被檢測出且分類錯誤的樁桶數(shù)。測試結(jié)果見表2所列。

表2 不同數(shù)量邊界框?qū)δP托阅艿挠绊?%

由表2可知,不同數(shù)量邊界框?qū)?yīng)的交并比隨著邊界框數(shù)量的增加而增加,但是當(dāng)邊界框的數(shù)量達(dá)到9時,交并比增加的速度開始減慢,如圖6所示。

圖6 不同邊界框數(shù)量對應(yīng)的交并比

當(dāng)邊界框的數(shù)量增加時,系統(tǒng)進(jìn)行目標(biāo)物檢測,生成的邊界框數(shù)量會大幅增加,導(dǎo)致計算量增加,計算時間增長。YOLO算法進(jìn)行檢測時,會對不同尺度的特征圖進(jìn)行目標(biāo)物檢測。將聚類得到的初始邊界框分配給不同尺度的特征圖進(jìn)行檢測,大尺度的特征圖使用小的初始邊界框尺寸,以增加對小目標(biāo)物的檢測精度。而本文采用融合3個尺度特征圖的方法,因此選擇數(shù)量為9的邊界框剛好可以均勻分配給3個不同尺度。綜上所述,當(dāng)選取邊界框數(shù)量為9時,可以兼顧高的檢測精度和檢測速度,并且可以均勻地分配給3個尺度進(jìn)行檢測。

3.2 最佳閾值的確定

YOLO算法進(jìn)行目標(biāo)物檢測時,會根據(jù)閾值去篩選邊界框,從而對檢測結(jié)果產(chǎn)生影響,因此需要通過實(shí)驗(yàn)對比,選取最佳的閾值,得到較好的檢測結(jié)果。不同閾值下檢測結(jié)果如圖7所示,其中對比了交并比、召回率和準(zhǔn)確率3個指標(biāo)。

由圖7可知,當(dāng)閾值較小時,生成的邊界框較多,交并比較高,召回率較高,但準(zhǔn)確率較低;隨著閾值的升高,交并比下降,召回率下降,準(zhǔn)確率上升;當(dāng)閾值約為0.3時,交并比為79.7%,召回率為94.1%,準(zhǔn)確率為93.2%,交并比、召回率和準(zhǔn)確率都取得較好的結(jié)果。

圖7 不同閾值的檢測效果對比

3.3 不同算法性能對比

本文將實(shí)時目標(biāo)檢測系統(tǒng)搭載在NVIDIA Jetson TX2上,在相同的數(shù)據(jù)集下對比了不同算法的性能,結(jié)果見表3所列。

表3 不同算法相關(guān)性能驗(yàn)證

由表3可知,原始YOLOv3算法網(wǎng)絡(luò)較深,檢測精度較高,但是對硬件要求較高,每秒傳輸幀數(shù)FPS只能達(dá)到1.5,不能達(dá)到實(shí)時目標(biāo)檢測的效果;而YOLOv3-tiny算法網(wǎng)絡(luò)簡單,FPS能夠達(dá)到20,滿足實(shí)時目標(biāo)檢測的需要,但檢測精度較低。

本文所采用的改進(jìn)YOLOv3-tiny算法的召回率為94.1%,準(zhǔn)確率為93.2%,FPS達(dá)到20,不僅擁有YOLOv3的檢測精度,而且擁有YOLOv3-tiny的檢測速度。因?yàn)闄z測的樁桶相對較小,改進(jìn)算法融合了3種尺度的特征用于樁桶的檢測,增加一個對大尺度特征圖的檢測,且分配3個小尺度的候選邊界框,使其對小樁桶的檢測效果變好,取得了較好的檢測精度;改進(jìn)算法的主體采用YOLOv3-tiny的結(jié)構(gòu),使用較少的卷積層和池化層進(jìn)行特征提取,并未加入多個殘差模塊,僅增加了1個檢測通道,檢測速度依然很快,可以達(dá)到實(shí)時性的要求。實(shí)時目標(biāo)檢測系統(tǒng)對測試集的檢測結(jié)果如圖8所示。

圖8 檢測結(jié)果

4 結(jié) 論

本文提出將YOLO算法用于FSAC賽車的目標(biāo)檢測,基于目標(biāo)物尺寸較小、特征簡單的特點(diǎn),根據(jù)數(shù)據(jù)集中樁桶的真實(shí)邊界框參數(shù)進(jìn)行聚類,獲得初始邊界框的尺寸參數(shù),改進(jìn)了YOLOv3-tiny網(wǎng)絡(luò)結(jié)構(gòu),通過測試選取最佳閾值;將改進(jìn)算法部署在ROS中,將NVIDIA Jetson TX2嵌入式開發(fā)板作為目標(biāo)檢測系統(tǒng)的搭載平臺,構(gòu)建了輕量化的目標(biāo)檢測系統(tǒng)。實(shí)驗(yàn)結(jié)果表明,改進(jìn)算法在NVIDIA Jetson TX2平臺上的召回率達(dá)到94.1%,準(zhǔn)確率達(dá)到93.2%,FPS達(dá)到20,滿足賽車實(shí)時目標(biāo)檢測的要求,并且目標(biāo)檢測系統(tǒng)具有易搭載、方便布置、成本較低和適合量產(chǎn)的特點(diǎn)。但是,本文系統(tǒng)采用NVIDIA Jetson TX2作為搭載平臺,檢測準(zhǔn)確率和檢測速度不能達(dá)到極致,因此不適用于車輛行駛速度較高的無人駕駛場景。

猜你喜歡
尺度賽車邊界
守住你的邊界
拓展閱讀的邊界
探索太陽系的邊界
財產(chǎn)的五大尺度和五重應(yīng)對
意大利邊界穿越之家
恐龍和賽車
云上賽車
春季賽車會
宇宙的尺度
9
修水县| 治县。| 恩施市| 洛扎县| SHOW| 龙岩市| 同心县| 荔波县| 灵寿县| 襄垣县| 鄂伦春自治旗| 宣化县| 杨浦区| 招远市| 南江县| 兴文县| 揭阳市| 大新县| 栖霞市| 朝阳区| 晴隆县| 龙口市| 屏东市| 大理市| 克东县| 荣昌县| 汶上县| 肃南| 襄汾县| 武陟县| 达孜县| 金湖县| 柳州市| 寻甸| 富裕县| 虞城县| 华容县| 来凤县| 呼伦贝尔市| 鹿邑县| 榆树市|