陳陽
(四川大學(xué)計算機(jī)學(xué)院,成都610065)
近幾年,隨著科技的發(fā)展,無人車吸引了越來越多汽車制造商的目光。而高級輔助駕駛系統(tǒng)(Advanced Driver Assistant System,ADAS)[1]逐漸成為國內(nèi)外學(xué)者的研究重點(diǎn),其中交通標(biāo)志檢測與識別系統(tǒng)(Traffic Sign Detection and Recognition,TSDR)是ADAS 的重要組成部分[2]。但由于交通標(biāo)志種類繁多,各個國家的標(biāo)志略有不同,加上道路環(huán)境復(fù)雜,以及自然因素的干擾,大多數(shù)的研究仍處于實(shí)驗(yàn)階段,并沒有廣泛地運(yùn)用。如何快速、準(zhǔn)確地檢測和識別,并能持續(xù)地跟蹤交通標(biāo)志是本文研究的重點(diǎn)。
縱觀交通標(biāo)志的檢測識別和跟蹤算法的發(fā)展可以發(fā)現(xiàn),其過程通常分為檢測、識別和跟蹤三個部分。
由于交通標(biāo)志通常具有特定的顏色,因此有人提出基于顏色特征的交通標(biāo)志檢測算法,如Akatsuka 等人[3]提出的基于RGB 顏色空間和匹配模板的檢測算法,Madani A 等人[4]提出的基于HSV 顏色空間的分割算法;由于顏色特征極易受到光照、褪色等因素影響,于是Onat E 等人[5]提出了一種基于邊緣的、雙邊的投票算法;近年來,由于深度學(xué)習(xí)的突破性發(fā)展,有人將深度學(xué)習(xí)用于交通標(biāo)志的檢測,如Jia L 等人[6]就將Faster R-CNN 用于交通標(biāo)志檢測。
交通標(biāo)志識別其本質(zhì)是個多分類問題,常用的方法有模板匹配算法、傳統(tǒng)機(jī)器學(xué)習(xí)算法和深度學(xué)習(xí)算法。模板匹配算法需要事先建立好包含各種類別的模板庫,然后在待分類標(biāo)志上提取某種特征,將其與模板庫中的模板進(jìn)行比較,計算出一個相似值,相似度最高的模板所屬類別即為該標(biāo)志的類別,如Gao X W 等人[7]根據(jù)交通標(biāo)志的顏色和形狀建立模板庫。傳統(tǒng)的基于機(jī)器學(xué)習(xí)的方法使用人工設(shè)計特征,然后用于訓(xùn)練分類器,最后再使用分類器判定類別,如W Li 等人[8]提出先提取HOG 特征和LBP 特征,然后使用ELM 分類的算法。國內(nèi)外也有很多研究人員提出了各種卷積神經(jīng)網(wǎng)絡(luò)用于分類交通標(biāo)志,如Mao X 等人[9]提出了一個兩級卷積神經(jīng)網(wǎng)絡(luò)用于交通標(biāo)志分類,狄嵐等人[10]將Squeeze-and-Excitation 與殘差網(wǎng)絡(luò)的思想相結(jié)合,提出了一個可能性聚類的網(wǎng)絡(luò)MRESE。
交通標(biāo)志跟蹤算法以視頻或者一系列連續(xù)圖像作為輸入,目的是持續(xù)準(zhǔn)確跟蹤其中出現(xiàn)的交通標(biāo)志,并且能夠與檢測、識別等模塊相互配合,提高檢測和識別準(zhǔn)確度。由于交通標(biāo)志運(yùn)動模型的特殊性,基于卡爾曼濾波器的跟蹤算法是最為普遍的[11]。而鑒于TLD(Tracking-Learning-Detection)在長期跟蹤中取得了不錯效果,Zheng Z 等人[12]提出了一個基于TLD 算法的跟蹤框架,用于跟蹤已經(jīng)識別到的交通標(biāo)志;Lee J H 等人[13]則提出了基于多尺度核函數(shù)的跟蹤方法。
首先對原始對象進(jìn)行處理,提取出基于RGB 和HSV 顏色空間的融合特征,包括RGB 顏色空間中全局的顏色、亮度信息以及局部像素點(diǎn)的顏色、亮度信息,HSV 顏色空間中單個像素點(diǎn)的色調(diào)、飽和度、明度以及對紅、藍(lán)、黃顏色的偏向信息,由這兩種顏色空間的顏色特征拼接組成融合信息,根據(jù)該特征篩選出包含交通標(biāo)志和干擾背景的感興趣區(qū)域隊(duì)列。
其次利用利用多尺度兩階段神經(jīng)網(wǎng)絡(luò)對感興趣區(qū)域進(jìn)行檢測和識別,在第一階段中篩選出包含交通標(biāo)志的區(qū)域,在第二階段中進(jìn)行交通標(biāo)志分類。為了提高對不同尺度的交通標(biāo)志分類的準(zhǔn)確性,采用三種不同尺度的同一圖像作為輸入,并且為了降低參數(shù)數(shù)量和提高效率,用深度可分離卷積代替普通卷積。
最后結(jié)合交通標(biāo)志的運(yùn)動規(guī)律,采用帶有目標(biāo)中心點(diǎn)預(yù)測和尺度自適應(yīng)的核相關(guān)濾波跟蹤算法進(jìn)行交通標(biāo)志跟蹤。
為了從候選隊(duì)列中檢測和識別出交通標(biāo)志,本文采用一種基于多尺度的兩階段的深度可分離卷積神經(jīng)網(wǎng)絡(luò)。其中多尺度是為了提高對不同尺度的交通標(biāo)志檢測和識別的準(zhǔn)確性,從而將同一圖像的三種不同尺度作為輸入。兩階段是將對交通標(biāo)志的檢測和識別分開,采用由粗到精的過程,第一階段進(jìn)行粗分類得到檢測的結(jié)果;第二階段對第一階段的結(jié)果進(jìn)行精確分類。深度分離卷積神經(jīng)網(wǎng)絡(luò)相對于普通卷積神經(jīng)網(wǎng)絡(luò)具有更少的參數(shù)數(shù)量,從而提高檢測和識別的效率。
(1)卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
本文卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)總共包括三個不同尺度的輸入、兩個輸出和六個不同的子模塊組成,如圖1所示。
(2)子模塊結(jié)構(gòu)設(shè)計
通過借鑒MobileNet V3 的結(jié)構(gòu)設(shè)計,將深度可分離卷積、殘差結(jié)構(gòu)和特征強(qiáng)化組成Bottleneck 結(jié)構(gòu),結(jié)構(gòu)如圖2 所示。通過借鑒經(jīng)典神經(jīng)網(wǎng)絡(luò)模型,使用Bottleneck 建立六個子模塊的結(jié)構(gòu)。
圖1 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
在Bottleneck 結(jié)構(gòu)中采用ReLU6 和h-swish 作為激活函數(shù),ReLu6 和h-swish 的定義如公式(1)和公式(2)所示。
在大量的實(shí)驗(yàn)基礎(chǔ)上,根據(jù)實(shí)驗(yàn)結(jié)果選擇各個子模塊中Bottleneck 的激活函數(shù),以及是否選擇shortcut和SE 模塊,最終得到各個子模塊的詳細(xì)結(jié)構(gòu)如表1所示。
表1 Module1
圖2 Bottleneck結(jié)構(gòu)
表2 Module2
表3 Module3
表4 Module4
表5 Module5
表6 Module6
表中,Operator 代表層的處理方式,Bneck 代表Bottleneck,Conv2d 表示普通的卷積操作,Conv2d-BN 表示加入批處理層(Batch Normalization,BN)的普通卷積操作,SE 表示該層是否使用Squeeze-and-Excitation。
在原始基于核相關(guān)濾波(Kernel Correlation Filter,KCF)的跟蹤算法上進(jìn)行改進(jìn),采用中心點(diǎn)預(yù)測和尺度自適應(yīng)的方式進(jìn)行持續(xù)跟蹤。根據(jù)相機(jī)模型的成員原理,通過前兩幀中心點(diǎn)的位置預(yù)測下一幀的中心點(diǎn)位置,如圖3 所示。
圖3 相機(jī)成像原理
假設(shè)P1、P2、P3表示不同位置的同一物體,d1、d2、d3表示物體與攝像機(jī)的距離,P1'、P2'、P3' 表示該物體在不同位置時,在攝像機(jī)中成像平面上形成的圖像,f 表示攝像機(jī)的焦距。根據(jù)相似三角形原理,計算下一幀的終點(diǎn)為大致為位置為:
式中:P 表示物體長度。
由于幀間間隔時間極短,可認(rèn)為車輛在相鄰兩幀之間的位移相等,即d2、d1和d3、d2之間的差相等。以此為據(jù),在已知前兩幀中物體中心點(diǎn)位置之后,可以利用中點(diǎn)距離差值預(yù)測下一幀中物體中心點(diǎn)的大致位置。
根據(jù)類似的原理,將一維場景擴(kuò)展至二維場景,提出適合車載視頻場景中交通標(biāo)志跟蹤的尺度因子變化公式:
其中α 為初始化尺度因子,areai-1、areai-2分別為前兩幀中的目標(biāo)框大小。
在跟蹤過程中,目標(biāo)和背景都可能發(fā)生變化,所以需要對模型進(jìn)行在線更新,根據(jù)響應(yīng)圖峰值旁瓣比(Peak to Sidelobe Ratio,PSR)更新模型。
在數(shù)據(jù)集TT100K 和GTSDB 兩個公開數(shù)據(jù)集上進(jìn)行檢測和識別性能評估。TT100K 數(shù)據(jù)集由Train 和Test 兩個部分組成,其中訓(xùn)練集包含6107 張圖片,測試集包含3073 張圖片。由于TT100K 中各類樣本數(shù)量和交通比較標(biāo)志出現(xiàn)的頻率不一樣,為了避免由于樣本數(shù)量的不均衡導(dǎo)致神經(jīng)網(wǎng)絡(luò)訓(xùn)練模型的準(zhǔn)確率下降,從而剔除了部分?jǐn)?shù)量過少的類別,最終保留了50種不同類型的常見交通標(biāo)志。
在ApolloScape 數(shù)據(jù)集上進(jìn)行跟蹤性能評估。本文主要運(yùn)用ApolloScape 數(shù)據(jù)集中的Scene Parsing 部分。利用該部分制作了100 個長短不一的視頻序列用于實(shí)驗(yàn),其中包含了多種類別的圓形、矩形和三角形交通標(biāo)志。
使用準(zhǔn)確率Precision、召回率Recall 以及調(diào)和均值F1 三種評價指標(biāo)對檢測和識別性能評估實(shí)驗(yàn)進(jìn)行分析。其中Precision 表示被正確檢測出來的交通標(biāo)志的數(shù)量占整體交通標(biāo)志數(shù)量的百分比,它的值越高表明算法誤檢率越低;Recall 表示被正確檢測出來的交通標(biāo)志的數(shù)量占被檢測為交通標(biāo)志的數(shù)量的百分比,它的值越高表明算法的漏檢率越低;而調(diào)和均值F1 能夠同時兼顧準(zhǔn)確率和召回率,更好地衡量一個模型的分類性能。調(diào)和均值F1 的計算方法如公式(5)所示。
在跟蹤實(shí)驗(yàn)中,使用跟蹤精度(Precision)和跟蹤成功率(Success Rate)來評價跟蹤效果。跟蹤精度是在跟蹤過程中算法產(chǎn)生的中心距離誤差(Center Location Error,CLE)小于設(shè)定的閾值的視頻幀的數(shù)量與整個視頻序列的幀數(shù)量的比值。中心距離誤差的大小通過計算算法產(chǎn)生的估計目標(biāo)中心點(diǎn)與人工標(biāo)注的目標(biāo)中心點(diǎn)的歐氏距離得到,其計算公式為:
式中:( xc,yc)表示跟蹤算法估計目標(biāo)中點(diǎn)坐標(biāo);( xgt,ygt)表示人工標(biāo)注目標(biāo)中點(diǎn)坐標(biāo)。
實(shí)驗(yàn)采用TensorFlow 作為深度學(xué)習(xí)框架,在一臺CPU 為Intel Core i7、GPU 為NVIDIA GTX1080、內(nèi)存大小為64G 的計算機(jī)上運(yùn)行。
(1)檢測性能對比實(shí)驗(yàn)
本文選取了HOG、LBP、Haar-like 及其對應(yīng)二分類器和由標(biāo)準(zhǔn)卷積實(shí)現(xiàn)的神經(jīng)網(wǎng)絡(luò)進(jìn)行對比實(shí)驗(yàn)。測試數(shù)據(jù)集中包括7920 張圖片,對比實(shí)驗(yàn)結(jié)果如表7所示。
表7 交通標(biāo)志檢測對比實(shí)驗(yàn)
從表7 的實(shí)驗(yàn)結(jié)果來看,基于深度學(xué)習(xí)的算法性能高于傳統(tǒng)的機(jī)器學(xué)習(xí)算法,在傳統(tǒng)機(jī)器學(xué)習(xí)算法中使用HOG+LBP 特征融合和SVM 的算法取得效果最好,在深度學(xué)習(xí)算法中由標(biāo)準(zhǔn)卷積實(shí)現(xiàn)的神經(jīng)網(wǎng)絡(luò)在三項(xiàng)指標(biāo)上均取得了最高值,而本文的神經(jīng)網(wǎng)絡(luò)模型在三項(xiàng)指標(biāo)上僅次于標(biāo)準(zhǔn)卷積實(shí)現(xiàn)的神經(jīng)網(wǎng)絡(luò)。
(2)識別性能對比實(shí)驗(yàn)
為了驗(yàn)證本文算法對交通標(biāo)志分類的性能,選取了其他幾種卷積神經(jīng)網(wǎng)絡(luò)模型進(jìn)行對比,其中文獻(xiàn)[14]中提出的模型同樣為多尺度網(wǎng)絡(luò)模型。原始VGG16模型輸入圖像尺度為224×224,實(shí)驗(yàn)中將其調(diào)整為64×64,并將最后一層分類的類別數(shù)量改為51,其余設(shè)置保持不變,得到最終的對比結(jié)果如表8 所示。
表8 交通標(biāo)志識別對比實(shí)驗(yàn)結(jié)果
從表8 可以看出,結(jié)構(gòu)更復(fù)雜的神經(jīng)網(wǎng)絡(luò)模型能取得更好的效果,僅由卷積、池化層堆積的單尺度網(wǎng)絡(luò)VGG16 分類性能靠后,文獻(xiàn)[14]中提出的多尺度特征網(wǎng)絡(luò)取得了較好的結(jié)果,而本文神經(jīng)網(wǎng)絡(luò)模型的平均準(zhǔn)確率為99.32%,平均召回率為99.18%,與文獻(xiàn)[14]相比都有了一定的提高。
(3)跟蹤性能對比實(shí)驗(yàn)
利用ApolloScape 數(shù)據(jù)集中的視頻序列,分析KCF算法、DSST 算法、fDSST 算法、CSR-DCF 算法、staple 算法和本文算法的總體跟蹤精度和跟蹤成功率,實(shí)驗(yàn)結(jié)果如圖4(a)、(b)所示。
圖4 中,Method1 為本文提出的改進(jìn)KCF 目標(biāo)跟蹤算法。從圖4(a)、(b)中可以看出,在所有對比算法中,本文算法在跟蹤精度和跟蹤成功率上均排名第一。DSST 算法、fDSST 算法、CSR-DCF 算法和Staple算法的跟蹤精度和跟蹤成功率相近,沒有尺度變換的KCF 算法則在兩個評價指標(biāo)中都排名靠后。
本文主要針對當(dāng)前交通標(biāo)志的檢測識別和跟蹤算進(jìn)行研究,分析當(dāng)前存在的問題,提出了一種用于交通標(biāo)志檢測和識別的多尺度的兩階段卷積神經(jīng)網(wǎng)絡(luò),以及改進(jìn)的KCF 目標(biāo)跟蹤算法。
多尺度的兩階段卷積神經(jīng)網(wǎng)絡(luò)體現(xiàn)了由粗到精的分類思想,而使用三種典型尺度作為輸入,能夠有效提高對不同尺度輸入的交通標(biāo)志的分類準(zhǔn)確性,利用深度可分離卷積、殘差結(jié)構(gòu)和強(qiáng)化特征構(gòu)成的Bottleneck來實(shí)現(xiàn)網(wǎng)絡(luò),在保證精度的同時,降低了參數(shù)數(shù)量,提高了算法效率,最后結(jié)合改進(jìn)的KCF 目標(biāo)跟蹤算法,通過實(shí)驗(yàn)驗(yàn)證了其進(jìn)行目標(biāo)跟蹤的有效性。
圖4 各算法跟蹤精度和跟蹤成功率曲線