趙樹恩,劉 偉
(重慶交通大學(xué) 機(jī)電與車輛工程學(xué)院,重慶 400074)
快速、準(zhǔn)確的交通標(biāo)志定位與識(shí)別是自動(dòng)駕駛環(huán)境感知的重要內(nèi)容,也是決策規(guī)劃的前提,對(duì)降低交通事故率和緩解日趨嚴(yán)重的交通擁堵等問題具有重大作用[1-2]。近年來對(duì)交通標(biāo)志定位與識(shí)別的研究眾多,且取得了較為滿意的成果,但應(yīng)用于多變的實(shí)際場景中,仍存在許多問題。
目前交通標(biāo)志檢測與識(shí)別的研究方法主要包含兩類:基于傳統(tǒng)圖像特征提取結(jié)合機(jī)器學(xué)習(xí)的兩步驟方法和基于深度學(xué)習(xí)的目標(biāo)檢測方法[3]。傳統(tǒng)圖像特征主要有:①基于顏色特征的方法,在RGB、H(色調(diào))S(色飽和度)I(亮度)、HSV等色彩空間中分割出指定的色彩區(qū)域,然后提取出交通標(biāo)志;② 基于形狀特征的方法,首先需要對(duì)道路交通圖像進(jìn)行邊緣檢測,提取出其中特定的幾何形狀特征,然后利用機(jī)器學(xué)習(xí)的方法對(duì)定位出的交通標(biāo)志分類,識(shí)別其語義信息。常用的機(jī)器學(xué)習(xí)方法為AdaBoost及支持向量機(jī)(SVM)。C.BAHLMANN等[4]同時(shí)考慮圖像顏色特征及Haar特征,然后基于AdaBoost算法實(shí)現(xiàn)交通標(biāo)志檢測。C. G. KIRAN等[5]首先對(duì)圖像進(jìn)行色彩分割,將分割后的小塊與邊緣特征結(jié)合,然后利用SVM實(shí)現(xiàn)交通標(biāo)志分類。
基于傳統(tǒng)圖像特征檢測結(jié)合機(jī)器學(xué)習(xí)分類的方法可快速實(shí)現(xiàn)定位和識(shí)別,但對(duì)光照敏感性強(qiáng),在有陰影、亮度低和存在遮擋和運(yùn)動(dòng)模糊的情況就難以取得較好的識(shí)別效果[6-7]。
隨著深度學(xué)習(xí)理論的發(fā)展,卷積神經(jīng)網(wǎng)絡(luò)在目標(biāo)檢測方面的優(yōu)勢明顯,避免了傳統(tǒng)方法中的人工特征提取過程?;诰矸e神經(jīng)網(wǎng)絡(luò)的主流目標(biāo)檢測算法有:①包含兩個(gè)階段的快速區(qū)域卷積神經(jīng)網(wǎng)絡(luò)(Faster- RCNN)[8],該類神經(jīng)網(wǎng)絡(luò)模型往往參數(shù)量和計(jì)算量巨大,需巨大存儲(chǔ)空間保存模型,難以達(dá)到實(shí)時(shí)性要求;②端到端的單階段模型,主要有YOLO(you only look noce)[9]、SSD(single shot multibox detector)[10],該類方法可直接定位和識(shí)別出交通標(biāo)志的位置和類別,比前者效率提升,但精度有所下降。在實(shí)際場景中難以實(shí)現(xiàn)實(shí)時(shí)性與精度之前的平衡,王海等[11]對(duì)YOLO、Faster-RCNN及其改進(jìn)的算法在道路交通圖像中進(jìn)行了驗(yàn)證,雖達(dá)到了較好的精度表現(xiàn),但始終不能滿足實(shí)時(shí)定位的需求,而定位失敗的樣本大多為陰天、傍晚或存在背光的情況,因此,實(shí)現(xiàn)低照度條件下的交通標(biāo)志檢測與識(shí)別,能大大優(yōu)化無人駕駛車輛在感知過程中的表現(xiàn)。
針對(duì)上述問題,筆者提出一種快速的低照度道路交通標(biāo)志檢測與識(shí)別方法。首先采用CLAHE算法對(duì)圖像進(jìn)行增強(qiáng);通過設(shè)定相關(guān)閾值,在HSV色彩空間分離出紅色、黃色、藍(lán)色像素區(qū)域(對(duì)應(yīng)禁令標(biāo)志、警告標(biāo)志和指示標(biāo)志);然后設(shè)定約束,定位可能的交通標(biāo)志;為避免訓(xùn)練樣本中各類別標(biāo)志圖像數(shù)據(jù)量差距過大發(fā)生過擬合,利用DCGAN模型對(duì)交通標(biāo)志圖像進(jìn)行樣本量增強(qiáng);最后使用DC-VGG輕量化模型實(shí)現(xiàn)多類交通標(biāo)志識(shí)別,論文的思路構(gòu)架如圖1。
圖1 思路構(gòu)架Fig. 1 Idea framework
為增加低照度條件下的識(shí)別精度,筆者利用CLAHE算法[12]增強(qiáng)輸入圖像的亮度。該算法通過對(duì)局部對(duì)比度進(jìn)行限制,有效防止了噪聲放大造成的圖像失真,該算法常用于處理灰度圖,實(shí)現(xiàn)灰度圖的圖像增強(qiáng)。針對(duì)彩色的道路圖像,將其由RGB換到HSV色彩空間,利用CLAHE對(duì)V通道進(jìn)行直方圖均衡化,再將V通道重新聚合到原始圖像中。該方法能在抑制高亮區(qū)域過曝的同時(shí),有效提高暗部亮度,具體步驟如下:
1) 子塊劃分。將V通道均勻分割為d個(gè)子塊。
2) 對(duì)比度閾值設(shè)定。對(duì)每個(gè)子塊進(jìn)行灰度級(jí)均分,每個(gè)灰度級(jí)最后分得像素量Na=m/Nc,其中m、Nc分別為各個(gè)子塊中包含的像素個(gè)數(shù)及其灰度級(jí)。
閾值計(jì)算方式為:
T=Mc×Na
(1)
式中:Mc為截取限制的倍數(shù)。
3) 像素重新分配。將每個(gè)子塊直方圖中超出閾值T的像素,重新平均分配至各灰度級(jí),再對(duì)各個(gè)子塊進(jìn)行直方圖均衡化。
4) 雙線性插值重構(gòu)。雙線性插值能有效防止直接拼接導(dǎo)致的塊狀效應(yīng),計(jì)算過程如下。
按x方向插值:
(2)
(3)
按y方向插值:
(4)
式中:P為插值點(diǎn);v為該點(diǎn)像素值;x,y為各點(diǎn)的坐標(biāo),詳細(xì)見圖2。
圖2 雙線性插值各點(diǎn)坐標(biāo)Fig. 2 Coordinates of bilinear interpolation points
設(shè)定圖像子塊為8,經(jīng)CLAHE算法增強(qiáng)后的道路圖像如圖3。
圖3(a)、圖3(b)為兩張低照度道路交通圖像;圖3(e)、圖3(f)為對(duì)應(yīng)CLAHE增強(qiáng)之后的圖像;圖3(c)、圖3(d)為對(duì)比了圖像增強(qiáng)前后V通道直方圖,顯然低像素值區(qū)間像素個(gè)數(shù)得到很大抑制,增加了高像素值個(gè)數(shù),從而一定程度上抑制高亮區(qū)域過曝,同時(shí)為暗區(qū)域提升亮度。
圖3 圖像亮度增強(qiáng)結(jié)果Fig. 3 Image brightness enhancement results
由于國內(nèi)的交通標(biāo)志主要分為3種顏色:紅色、黃色、藍(lán)色,分別對(duì)應(yīng)禁令標(biāo)志、警告標(biāo)志和指示標(biāo)志。因此,要定位可能的交通標(biāo)志,需將圖像分割為僅包含紅色、黃色、藍(lán)色的二值圖像。通過設(shè)定閾值,將轉(zhuǎn)換到HSV色彩空間的道路圖像進(jìn)行分割。根據(jù)經(jīng)驗(yàn),閾值設(shè)定如表1。
表1 色彩提取閾值Table 1 Color extraction threshold
為了更好的提取紅色像素,設(shè)定了兩個(gè)區(qū)間的紅色閾值,將鮮亮及較暗的紅色均作為檢測的目標(biāo),以降低漏檢率。然后對(duì)得到的3個(gè)二值化圖像進(jìn)行輪廓檢測,得到感興趣區(qū)域外接矩形。設(shè)定約束條件為:
(5)
式中:w、h分別為外接矩形的寬高;s為輸入圖像的面積,以上變量均以像素為單位。
滿足式(5)所述條件的區(qū)域即為可能的交通標(biāo)志的位置。則圖4中方框區(qū)域即可能為交通標(biāo)志所在位置,但只有白色方框中的圖像為真實(shí)的交通標(biāo)志,其余框中圖像標(biāo)定為負(fù)樣本。
圖4 基于色彩特征的交通標(biāo)志定位結(jié)果Fig. 4 Location results of traffic signs based on color features
傳統(tǒng)VGG-16[13]共有13個(gè)卷積層、5個(gè)池化層及3個(gè)全連接層,其結(jié)構(gòu)如圖5。該模型共有6個(gè)階段:1、2階段由兩個(gè)卷積層和一個(gè)池化層組成,提取圖像的低級(jí)特征;3、4、5階段均為3個(gè)卷積層加1個(gè)池化層的結(jié)構(gòu),通過設(shè)定大小為3×3的卷積核,既得到了較大的感受野,同時(shí)有效限制了參數(shù)量。
圖5 VGG-16結(jié)構(gòu)Fig. 5 VGG-16 structure diagram
傳統(tǒng)的VGG-16網(wǎng)絡(luò)模型全局使用3×3大小的卷積核,通過多個(gè)卷積層與池化層的堆疊實(shí)現(xiàn)深層特征提取達(dá)到較好的識(shí)別效果,但參數(shù)量巨大,導(dǎo)致訓(xùn)練和預(yù)測時(shí)需強(qiáng)大的硬件支持,且會(huì)耗費(fèi)大量時(shí)間;此外,該模型淺層到深層特征關(guān)聯(lián)性低,易導(dǎo)致細(xì)膩特征丟失。
為加快圖像分類速度并保留細(xì)節(jié)特征,筆者在傳統(tǒng)VGG理論基礎(chǔ)上,提出基于膨脹卷積結(jié)合殘差結(jié)構(gòu)的DC-VGG輕量化道路交通標(biāo)志快速識(shí)別模型,其基本結(jié)構(gòu)如圖6。
圖6 DC-VGG結(jié)構(gòu)Fig. 6 DC-VGG structure diagram
DC-VGG將傳統(tǒng)VGG-16中的經(jīng)典結(jié)構(gòu)(3個(gè)3×3 卷積)替換為空洞率為3,卷積核為3×3的膨脹卷積層,為防止多層膨脹卷積疊加導(dǎo)致的局部信息丟失,引入殘差結(jié)構(gòu),以確保圖像的細(xì)節(jié)特征。
筆者所提出的DC-VGG模型由5個(gè)普通卷積層、3個(gè)池化層、3個(gè)膨脹卷積層及3個(gè)全連接層構(gòu)成。相比于傳統(tǒng)VGG-16該模型結(jié)構(gòu)大大簡化,引入膨脹卷積[14]可在卷積核不變的情況下,獲取更大的感受野,從而減少參數(shù)量。感受野的計(jì)算方式為:
k′=k+(k-1)×(d-1)
(6)
RFi+1=RFi+(k′-1)×Si
(7)
式中:k為卷積核大??;d為空洞率;RFi+1、RFi分別為當(dāng)前層和上一層的感受野;Si為當(dāng)前層之前的所有層步長乘積。因此,1個(gè)空洞率為3,大小為3×3的卷積核感受野與3個(gè)3×3的卷積核感受野相同。
為適應(yīng)文中輸入交通標(biāo)志圖像大小,對(duì)每個(gè)卷積層大小進(jìn)行了修改,修改后的結(jié)果見圖5。在全連接層末端利用Softmax進(jìn)行概率計(jì)算:
(8)
式中:aj、ak分別為輸入Softmax向量的第j和第k個(gè)值;W為數(shù)據(jù)的類別數(shù);Sj為Softmax輸出的第j個(gè)值,即輸入圖像屬于第j個(gè)類別的概率。對(duì)應(yīng)的損失函數(shù)為:
(9)
式中:yj是圖像的真實(shí)標(biāo)簽,維度為L,若y中第i位為1則標(biāo)志該圖像屬于i類,其余位置的值均為0。
為與原模型形成對(duì)比,將傳統(tǒng)的VGG-16模型每個(gè)卷積層的大小和通道數(shù)分別調(diào)整為原來的1/4和1/2,且令全連接層與DC-VGG相同。經(jīng)調(diào)整,新的VGG-16總參數(shù)量為3 862 194,而文中的DC-VGG總參數(shù)量為953 970,參數(shù)量減少了75.3%。
為避免不同類別的交通標(biāo)志樣本數(shù)量不均衡導(dǎo)致分類模型訓(xùn)練結(jié)果出現(xiàn)過擬合現(xiàn)象,筆者應(yīng)用深度卷積對(duì)抗神經(jīng)網(wǎng)絡(luò)擴(kuò)充交通標(biāo)志樣本量。
DCGAN實(shí)際上是在GAN的基礎(chǔ)之上增加了深度卷積神經(jīng)網(wǎng)絡(luò)[15],由generator(G)和discriminator(D)兩個(gè)模塊構(gòu)成,其結(jié)構(gòu)如圖7。D負(fù)責(zé)下采樣提取圖像深度信息,判斷圖像真假。通過形狀變化和上采樣,G將輸入的噪聲數(shù)據(jù)轉(zhuǎn)換成目標(biāo)圖像,在每次學(xué)習(xí)中更新,與D相互博弈,以生成接近真實(shí)的目標(biāo)圖像。
圖7 DCGAN結(jié)構(gòu)Fig. 7 DCGAN structure diagram
文中的實(shí)驗(yàn)環(huán)境配置如下,硬件:使用Intel i7-8300 處理器,內(nèi)存為DDR 8GB,顯卡為NVIDIA GTX1050TI;軟件:實(shí)驗(yàn)平臺(tái)為基于Python語言的Tensorflow-GPU深度學(xué)習(xí)框架。
運(yùn)用的數(shù)據(jù)源自CCTSDB公開數(shù)據(jù)集,共有道路圖像15 000余張,包含大量低照度道路圖像。對(duì)其中13 000個(gè)圖像進(jìn)行自適應(yīng)圖像增強(qiáng)及交通標(biāo)志定位,除去數(shù)據(jù)量太少的交通標(biāo)志類別,得到禁令標(biāo)志16類,警告標(biāo)志9類、指示標(biāo)志14類。合并負(fù)樣本數(shù)據(jù),最終確定分類模型的輸出維度為34。
由于33類交通標(biāo)志圖像數(shù)據(jù)量有不同程度的差距,且相較于總數(shù)達(dá)到6 450的負(fù)樣本數(shù)據(jù),差距甚大。因此,在模型訓(xùn)練之前,先對(duì)這33類交通標(biāo)志數(shù)據(jù)量增強(qiáng)。DCGAN增強(qiáng)后的部分結(jié)果如圖8,圖中左側(cè)為實(shí)際提取到的標(biāo)志圖,右側(cè)為分辨率56×56的生成結(jié)果。通過該方法將每類交通標(biāo)志圖像數(shù)據(jù)均擴(kuò)充至3 000個(gè)。
圖8 DCGAN數(shù)據(jù)樣本生成示意Fig. 8 Schematic diagram of DCGAN data sample generation
將增強(qiáng)后的數(shù)據(jù)集,按8∶2的比例劃分訓(xùn)練集和驗(yàn)證集。得到的訓(xùn)練結(jié)果如圖9。
圖9 訓(xùn)練結(jié)果Fig. 9 Training results
由圖9可知,在不進(jìn)行數(shù)據(jù)樣本增強(qiáng)的情況下,驗(yàn)證集上表現(xiàn)出的準(zhǔn)確率最低,且準(zhǔn)確率上升的速度最慢;DC-VGG相較于VGG-16準(zhǔn)確率上升更快,且具有VGG-16的性能表現(xiàn)。詳細(xì)數(shù)據(jù)見表2。
表2 模型訓(xùn)練結(jié)果Table 2 Model training results
由表2可知,DC-VGG的準(zhǔn)確率略高于VGG-16方法,均達(dá)到0.98以上;該方法較VGG-16訓(xùn)練總時(shí)長縮短26.6%,平均單個(gè)標(biāo)志預(yù)測時(shí)長縮減14.4%。
為進(jìn)一步驗(yàn)證該方法對(duì)交通標(biāo)志識(shí)別的有效性,選擇在剩余2 000余張圖像中隨機(jī)抽取800張道路圖像進(jìn)行識(shí)別。經(jīng)統(tǒng)計(jì),該方法識(shí)別準(zhǔn)確率達(dá)到94.12%,略低于YOLOv3的交通標(biāo)志檢測模型平均準(zhǔn)確率94.6[16],但在1050TI平臺(tái)下,文中的方法平均檢測速度達(dá)到28.55幀/s,遠(yuǎn)高于YOLOv3的8.77幀/s。因此,筆者所提出的方法能保證識(shí)別準(zhǔn)確率的同時(shí)提高辨識(shí)的實(shí)時(shí)性。圖10為低照度不同場景下道路交通標(biāo)志的定位識(shí)別結(jié)果。
圖10 道路交通標(biāo)志識(shí)別結(jié)果Fig. 10 Road traffic sign recognition results
針對(duì)低照度情況下道路交通標(biāo)志圖像亮度偏低、飽和度過高、圖像模糊、識(shí)別不精確等問題,提出了基于膨脹卷積-VGG模型的道路交通標(biāo)志快速定位與識(shí)別方法。通過CLAHE算法增強(qiáng)原始圖像亮度,并運(yùn)用深度卷積對(duì)抗神經(jīng)網(wǎng)絡(luò)算法對(duì)樣本進(jìn)行擴(kuò)增,實(shí)現(xiàn)了道路交通標(biāo)志快速識(shí)別。實(shí)驗(yàn)結(jié)果表明,筆者所提出的方法能在低照度、遮擋等情況下都有優(yōu)異的表現(xiàn),并且即使在硬件不佳的情況下也能實(shí)時(shí)檢測高分辨率圖像。由于車載視覺成像設(shè)備獲取的道路交通標(biāo)志標(biāo)線圖像質(zhì)量受氣象、光照、環(huán)境等因素影響較大,進(jìn)而直接影響標(biāo)志標(biāo)線識(shí)別算法的可靠性和魯棒性,在未來工作中,還有進(jìn)一步研究交通標(biāo)志特征的自適應(yīng)提取方法,從而提升識(shí)別模型的辨識(shí)速度與精度。