王超 陳慶奎
摘要:智能識別交通限速牌對智能駕駛車輛速度調(diào)節(jié)和安全行駛有著重要意義。為有效解決交通限速牌識別問題,提出一種基于統(tǒng)一計算架構(gòu)(ComputerUnifiedDeviceArchitecture,CUDA)的實時交通限速牌識別算法。利用HSV顏色空間提取ROI(RegionOfInterest)區(qū)域,結(jié)合霍夫圓算法準(zhǔn)確定位交通限速牌位置,設(shè)計一種基于卷積神經(jīng)網(wǎng)絡(luò)(ConvolutionalNeuralNetwork,CNN)的算法模型對定位區(qū)域進(jìn)行數(shù)字識別。使用NVIDIAGTX680顯卡對算法進(jìn)行加速,可達(dá)30ms/幀的處理速率,基本滿足了實時性要求。實驗證明,基于CUDA的交通限速牌識別算法具有良好的適應(yīng)性和準(zhǔn)確性。
關(guān)鍵詞:智能駕駛;交通限速牌;統(tǒng)一計算架構(gòu);HSV顏色空間;霍夫圓算法;卷積神經(jīng)網(wǎng)絡(luò)
DOI:10.11907/rjdk.173171
中圖分類號:TP301
文獻(xiàn)標(biāo)識碼:A文章編號:1672-7800(2018)007-0044-05
Abstract:Intheintelligentdrivingsystem,theintelligentidentificationofspeedlimittrafficsignhasveryimportantsignificanceforthevehiclespeedadjustmentanddrivertrafficsafety.Toeffectivelysolvetheproblemofspeedlimittrafficsignrecognitioninrealscenarios,areal-timespeedlimittrafficsignalgorithmbasedoncomputerunifieddevicearchitecture(CUDA)isproposed.WeuseHSVcolorspacetoextractregionofinterest(ROI)areaandaccuratelylocatethepositionofspeedlimittrafficsignusingHoughcirclealgorithm;andthenanalgorithmmodelbasedonconvolutionalneuralnetwork(CNN)isdesignedtorecognizenumbersinthepositioningarea.NVIDIAGeForceGTX680GPU(GraphicProcessingUnit)isusedtoacceleratethealgorithmonComputeUnifiedDeviceArchitecture(CUDA)platformandachievetheprocessingspeedof30msperframewhichbasicallymeetsthereal-timeprocessingdemand.ExperimentsshowthattheCUDA-basedspeedlimittrafficsignrecognitionalgorithmhasgoodadaptabilityandaccuracy.
KeyWords:intelligentdriving;speedlimittrafficsign;computerunifieddevicearchitecture;HSVcolorspace;Houghcirclealgorithm;convolutionalneuralnetwork
0引言
車輛智能化控制系統(tǒng)的不斷發(fā)展,在一定程度上使駕駛員的控制、視覺和感官功能更加完善,能極大保障駕駛員的行車安全。駕駛員由于種種因素可能未及時發(fā)現(xiàn)交通限速標(biāo)志,此時,交通限速牌識別系統(tǒng)對駕駛員安全有著重大意義[1-2]。
本文在HSV顏色空間過濾出紅色區(qū)域,結(jié)合霍夫圓檢測算法[3-4]進(jìn)行交通限速牌區(qū)域定位,排除無關(guān)背景干擾,大大提高了后續(xù)處理的準(zhǔn)確性。針對傳統(tǒng)數(shù)字識別算法適應(yīng)性差、準(zhǔn)確率不高等缺點,本文設(shè)計一套基于CNN[5-6]的數(shù)字識別模型,能夠準(zhǔn)確有效地對限速牌區(qū)域數(shù)字進(jìn)行識別。
1相關(guān)工作
車輛限速牌識別是智能駕駛系統(tǒng)的研究重點。交通限速牌識別主流方法分為交通限速牌區(qū)域定位和交通限速牌數(shù)字識別。由于行車過程中背景較為復(fù)雜,有效實時地對交通限速牌定位是保證后續(xù)識別的前提,很多學(xué)者對此進(jìn)行了研究。成健等[7]闡述了一種基于自適應(yīng)粒子群優(yōu)化算法的交通限速標(biāo)志識別,該方法比經(jīng)典的粒子群優(yōu)化算法有著更高的收斂性,但是速度有待提高。AgudoD等[8]提出了一種基于灰度圖像霍夫圓定位交通限速牌識別算法,但對不同場景適應(yīng)性不好。GomesSL等[9]利用Haar特征檢測交通限速牌區(qū)域,然后使用SVM算法進(jìn)行數(shù)字識別。GimJW等[10]提出了基于SpatialPyramid特征和BoostRF算法的一種交通限速牌識別方法。
上述方法在檢測交通限速牌方面或多或少存在實時性較差、算法對于不同場景的檢測效果參差不齊、抗干擾能力不強(qiáng)等缺點。本文提出一種基于CUDA的交通限速牌識別算法。該算法利用HSV空間和霍夫圓檢測算法定位交通限速牌區(qū)域,排除干擾,使用CNN算法進(jìn)行數(shù)字識別。實驗證明,該算法在不同場景下都有著較好的準(zhǔn)確性,能夠滿足智能駕駛中交通限速牌的準(zhǔn)確實時識別。
2算法介紹
交通限速牌作用是提醒駕駛員調(diào)整車輛速度,保障行車安全。交通限速牌的圖像特征較為固定,一般為紅色圓圈包圍黑色數(shù)字,黑色數(shù)字為行車速度。
車輛行駛速度一般較快,提取交通限速牌區(qū)域?qū)崟r性要求較高,因此使用CUDA對HSV顏色空間過濾,使用霍夫圓檢測算法進(jìn)行加速。實驗證明本文提出的算法在速度和精度上都滿足了智能駕駛系統(tǒng)要求。
2.1HSV顏色空間過濾
HSV顏色空間在特定場景的目標(biāo)識別方面發(fā)揮著重要作用[11-12]。HSV模型是一種將RGB彩色模型中的點在圓柱坐標(biāo)系中的表示方法。HSV顏色空間有3個分量,分別是色相(Hue)、飽和度(Saturation)、明度(Value)。HSV空間色相的變化范圍為0~360,而飽和度和明度的變化范圍都是0~1。HSV顏色空間與人類感覺顏色的方式十分相似,HSV中使用的顏色可通過人類的感知來定義,能通過色相、飽和度和明度區(qū)分不同顏色,而RGB和CMYK卻不能。交通限速牌外圍是紅色圓型區(qū)域,將RGB顏色空間轉(zhuǎn)換成HSV顏色空間,然后過濾出紅色區(qū)域,排除無關(guān)區(qū)域干擾,可方便后續(xù)處理和檢測。HSV和RGB顏色空間轉(zhuǎn)換公式如下:
R、G、B分別代表RGB顏色空間的紅、綠和藍(lán)3種顏色分量,max等于R、G和B中的最大值,min等于R、G和B中的最小值,H、S、V分別表示色相、飽和度和明度。通過上述公式可完成從RGB顏色空間到HSV顏色空間的轉(zhuǎn)換。紅色HSV空間范圍如表1所示。
NVIDIA于2006年推出統(tǒng)一計算架構(gòu)(ComputeUnifiedDevicesArchitecture,CUDA),結(jié)合其推出的GPU可以進(jìn)行大規(guī)模并行計算,從而將并行計算從大型集群擴(kuò)展到了普通顯卡,用戶僅僅需要一臺帶有NVIDIA顯卡的計算機(jī)就能執(zhí)行大規(guī)模并行處理。計算機(jī)能夠?qū)⒉⑿腥蝿?wù)分發(fā)到GPU的各個流處理(streamingmultiprocessor,SM)上,每個SM含有多個流處理器(streamingprocessor,SP)。統(tǒng)一計算架構(gòu)編程模型如圖1所示。每個核函數(shù)對應(yīng)一個grid,每個grid根據(jù)需要配置不同的block和thread。統(tǒng)一計算架構(gòu)包含block和thread兩個并行邏輯層。在執(zhí)行時block映射到SM,thread映射到SP。
在將RGB顏色空間轉(zhuǎn)換為HSV顏色空間過程中,使用統(tǒng)一計算架構(gòu)(ComputerUnifiedDeviceArchitecture,CUDA)進(jìn)行并行加速處理,為每個圖像像素分配一個線程,每個線程進(jìn)行上述公式計算,這樣大大加快了HSV顏色空間的速度轉(zhuǎn)換。對轉(zhuǎn)換后的HSV顏色空間圖像過濾紅色區(qū)域并進(jìn)行邊緣檢測,使得紅色邊緣像素點值為255,其它區(qū)域像素值為0,實驗結(jié)果如圖2所示。
2.2交通限速牌定位
提取交通限速牌區(qū)域,本質(zhì)就是提取處理后圖像的圓形區(qū)域,使用霍夫算法檢測交通限速牌區(qū)域?;舴蛩惴軌蛴糜跈z測直線、圓和其它參數(shù)曲線,本質(zhì)是一種對參數(shù)進(jìn)行投票,找出可能符合條件的算法。直線的確定需要兩個參數(shù),而圓的確定則需要3個參數(shù)(圓心左邊的兩個參數(shù)和圓的半徑)。很明顯,隨著參數(shù)空間的增長,其計算量會有幾何級數(shù)的增長。為減小計算量,利用方向梯度,首先確定候選圓心,然后投票確定其半徑和圓心坐標(biāo),其算法描述如下:
算法1:霍夫圓交通限速牌區(qū)域定位算法
Foreveryboundarypoint(x,y)
ForEvery(a,b)alonggradientdirectiong(x,y)
Computerr
IncrementA(a,b,r)by1
A>thresholdrepresentvalidcircles
從HSV顏色空間提取結(jié)果可以看出,邊緣點像素比例在整幅圖像中比例較小,在進(jìn)行并行加速時,如果為圖像中每個圖像像素分配一個線程,意味著大部分線程在等待小部分線程完成任務(wù),從而造成GPU資源的極大浪費。因此,可以利用CUDA中共享內(nèi)存特點[13],快速提取邊緣點坐標(biāo)。共享內(nèi)存是片上內(nèi)存,在速度方面比常用的全局內(nèi)存、紋理內(nèi)存、常量內(nèi)存等要快許多,一般來說,共享存儲器要比全局存儲器的存取速度快100倍左右。共享存儲器被分配給每個線程塊,所以每個線程塊內(nèi)的線程都可以訪問同一個共享存儲器,而不同線程塊的線程是無法相互訪問對方的共享內(nèi)存的。這種特性與線程同步相結(jié)合有著廣泛的應(yīng)用,利用好共享內(nèi)存是提高GPU利用率和并行算法速度的關(guān)鍵。本文利用共享內(nèi)存特性快速提取像素點坐標(biāo)位置,用于后續(xù)計算,大大提高了GPU的利用率。其算法描述如下:
算法2:邊緣坐標(biāo)并行提取算法
pixelValue=imageValue[x,y]
If(pixelValue>0){
do{
index++;
shareIndex=index;
shareArray[index]=positon(x,y);
}while(shareArray[index]!=positon(x,y))
}
}
index=shareIndex;
為每個圖像像素分配一個線程,每個線程讀取相應(yīng)像素點的像素值,如果二值化后圖像像素值滿足要求,那么這個像素點坐標(biāo)就要加入到坐標(biāo)數(shù)組中。為防止覆蓋其它線程存儲在共享內(nèi)存中的像素點位置信息,首先對數(shù)組下標(biāo)進(jìn)行加1操作,將新的數(shù)組下標(biāo)存儲到共享內(nèi)存中。所有的線程都嘗試將自己的坐標(biāo)x和y加入到數(shù)組中,但只有一個線程能夠成功寫入,其它線程則必須重新嘗試,重新更新像素點數(shù)組坐標(biāo)內(nèi)容。這樣,當(dāng)循環(huán)結(jié)束后,所有滿足條件的像素點位置便存儲到共享內(nèi)存中,然后再將其復(fù)制到全局內(nèi)存,便得到用于后續(xù)計算的邊界點在圖像中的位置坐標(biāo)。
假設(shè)得到邊緣點的數(shù)量為N,便可以在GPU上申請N個線程,每個線程處理通過上述算法得到的位置數(shù)組中的邊緣點。邊緣點數(shù)量遠(yuǎn)遠(yuǎn)小于圖像所有像素的數(shù)量,則所需要的線程數(shù)也遠(yuǎn)遠(yuǎn)小于圖像像素數(shù),大大節(jié)省了GPU空間,提高了GPU利用率。在每個線程中,首先求出每個邊緣點的梯度方向,根據(jù)每個邊緣點的梯度找到候選圓心,對候選圓心和半徑進(jìn)行投票,這樣三維的累加平面就轉(zhuǎn)化為二維累加平面。最后統(tǒng)計投票數(shù)組,找到符合條件的交通限速牌區(qū)域。實驗結(jié)果如圖3所示。
2.3限速牌數(shù)字識別
卷積神經(jīng)網(wǎng)絡(luò)對計算機(jī)視覺問題處理能力強(qiáng)大[14-15],在人臉識別、物體分類識別等方面有著廣泛應(yīng)用。模板卷積可以提取圖像的某些特征,如模糊、銳化、邊緣特征都是圖像和特定模板卷積后的結(jié)果。卷積神經(jīng)網(wǎng)絡(luò)可以提取圖像特征后進(jìn)行分類,其核心思想主要有:
(1)局部感受野。局部感受野是對圖片局部特征的檢測,比如局部的一個角、一段弧,這些基本特征是構(gòu)成動物視覺的基礎(chǔ)。卷積神經(jīng)網(wǎng)絡(luò)也類似,每個神經(jīng)元只需要對圖像局部感受。
(2)權(quán)值共享。如同人體大腦一樣,每個神經(jīng)元的生理功能就是相似的,甚至可以說是相同的。在卷積神經(jīng)網(wǎng)絡(luò)中,每個神經(jīng)元的權(quán)值相同,可以大大減少數(shù)據(jù)計算量。使用不同的濾波器去做卷積核,每個濾波器去卷積圖像得到的不同特征稱之為FeatureMap。
(3)池化操作(降采樣)。所謂池化操作就是在每次卷積之后,通過一個降采樣工作減小規(guī)模和后續(xù)運算量。
不同于LOYO[16]、SSD[17]等復(fù)雜卷積神經(jīng)網(wǎng)絡(luò),用于交通限速牌識別的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)較為簡單,需要的內(nèi)存空間較少,同時在嵌入式設(shè)備上具有較快的速度。如圖4所示,設(shè)計了一種基于CNN算法模型對數(shù)字進(jìn)行識別。
將采集的交通限速牌區(qū)域進(jìn)行分割,得到單個數(shù)字圖像,將單個數(shù)字圖像縮放到32*32圖像塊大小,設(shè)計一個基于CNN的數(shù)字識別算法,架構(gòu)如圖4所示,其由兩個卷積層(C1,C3)、兩個最大池層(S2,S4)和兩個完全連接層(F5,F(xiàn)6)組成,F(xiàn)2輸出到10路softmax,其產(chǎn)生10個標(biāo)簽(即'0'-'9')的概率分布。第1個卷積層(C1)以8個大小5×5的內(nèi)核過濾32×32輸入灰度圖像,而第2個卷積層(C3)則使用16個卷積模板的卷積核對下采樣后的S2層進(jìn)行模板卷積,兩個卷積層都采用單位步幅,在層S2和S4處通過應(yīng)用2×2不重疊的最大合并進(jìn)行降采樣。最后,兩個完全連接層F5和F6分別具有128個和10個神經(jīng)元。將每個數(shù)字圖像輸入到卷積神經(jīng)網(wǎng)絡(luò)層中進(jìn)行數(shù)字識別,最后將識別數(shù)字組合得到結(jié)果。
3實驗結(jié)果與分析
本文實驗基于NVIDIA獨立顯卡測試環(huán)境,采用雙核Core(TM)2E8400CPU,主頻3.0GHz,內(nèi)存4GB,顯卡為NVIDIAGeForceGTX670,系統(tǒng)類型為Window764位,開發(fā)平臺為VisualStudio2010,采用語言為C/C++/CUDA。
3.1限速牌定位與識別
本文采用HSV顏色提取和霍夫圓檢測,獲取交通限速牌區(qū)域,排除無關(guān)信息干擾,通過CNN進(jìn)行數(shù)字識別。實驗證明,算法具有良好的準(zhǔn)確率和較好的實時性。圖5為不同場景下交通限速牌精確定位結(jié)果,從左到右依次為白天光線較好、夜晚路燈光線較差和夜晚光線十分差幾種場景。從實驗結(jié)果可以看出,本文提出的交通限速牌定位算法有著良好的適應(yīng)性和準(zhǔn)確性。
將定位的交通限速牌使用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行分類識別,實驗證明卷積神經(jīng)網(wǎng)絡(luò)相比于傳統(tǒng)的識別算法有著較好的準(zhǔn)確性和穩(wěn)定性,實驗結(jié)果如表2所示。
3.2加速比分析
本文利用CUDA對算法進(jìn)行加速以滿足實時性要求。在GerForceGTX680顯卡上對上述算法進(jìn)行測試,并與其在CPU上的串行算法進(jìn)行比較。HSV顏色空間提取和基于霍夫的交通限速牌區(qū)域提取時間加速比(即算法在GPU和CPU平臺上處理一幀圖像的平均時間之比)分別如圖6和圖7所示??梢钥闯?,隨著分辨率的提高,統(tǒng)一計算架構(gòu)的加速效果越來越好。實驗證明,本文提出的交通限速牌識別算法在精度和速度上表現(xiàn)較好,能夠滿足實際應(yīng)用要求。
4結(jié)語
本文提出了一種基于CUDA的交通限速牌識別方法,利用顏色空間和霍夫圓變換提取交通限速牌區(qū)域,同時利用卷積神經(jīng)網(wǎng)絡(luò)算法,對提取的交通限速牌區(qū)域進(jìn)行數(shù)字識別,具有良好的適應(yīng)性和較高的準(zhǔn)確性。利用統(tǒng)一計算架構(gòu)加速算法,系統(tǒng)實時性良好。利用共享內(nèi)存特點,提高了GPU資源的利用率,很好地應(yīng)用到嵌入式GPU設(shè)備,具有一定的實用性。但本系統(tǒng)還存在一些問題,如在識別過程中容易受其它紅色物體干擾,使檢測速度和檢測準(zhǔn)確度有所下降。未來的工作是使交通限速牌系統(tǒng)更加智能和準(zhǔn)確。
參考文獻(xiàn):
[1]蔣海峰,楊豐艷,韓文元,等.限速和警告交通標(biāo)志影響下的駕駛行為特性研究[J].公路交通科技:應(yīng)用技術(shù)版,2009,5(3):26-31.
[2]司銀霞.限速標(biāo)志對駕駛行為影響研究[D].長春:吉林大學(xué),2006.
[3]YUENHK,PRINCENJ,ILLINGWORTHJ.ComparativestudyofHoughtransformmethodsforcirclefinding[J].Image&VisionComputing;,1990,8(1):71-77.
[4]YADAVVK,TRIVEDIMC,RAJPUTSS,etal.Approachtoaccuratecircledetection:multithreadedimplementationofmodifiedcircularHoughtransform[C].RingerInternationalConferenceonIct4sd,2016.
[5]盧宏濤,張秦川.深度卷積神經(jīng)網(wǎng)絡(luò)在計算機(jī)視覺中的應(yīng)用研究綜述[J].數(shù)據(jù)采集與處理,2016,31(1):1-17.
[6]李彥冬,郝宗波,雷航.卷積神經(jīng)網(wǎng)絡(luò)研究綜述[J].計算機(jī)應(yīng)用,2016,36(9):2508-2515.
[7]成健,張重陽.基于自適應(yīng)粒子群優(yōu)化算法的限速標(biāo)志識別[J].信息技術(shù),2016(9):5-9.
[8]AGUDOD,YNGELS,VYLEZJF,etal.Real-timerailwayspeedlimitsignrecognitionfromvideosequences[C].InternationalConferenceonSystems,SignalsandImageProcessing.IEEE,2016:1-4.
[9]GOMESSL,REBOUASEDS,NETOEC,etal.Embeddedreal-timespeedlimitsignrecognitionusingimageprocessingandmachinelearningtechniques[J].NeuralComputing&Applications;,2016(6):1-12.
[10]GIMJW,HWANGMC,KOBC,etal.Real-timespeed-limitsigndetectionandrecognitionusingspatialpyramidfeatureandboostedrandomforest[C].InternationalConferenceImageAnalysisandRecognition.SpringerInternationalPublishing,2015:437-445.
[11]李代林,萬杰,朱化鳳,等.基于HSV顏色空間的水下物體識別技術(shù)研究[J].中國科學(xué),2015,45(8):84-87.
[12]蔡林沁,鄭雪松,王牛.基于HSV顏色空間正交立體視覺目標(biāo)檢測[J].新型工業(yè)化,2013(1):56-59.
[13]張帥.CPU--GPU異構(gòu)NUMA系統(tǒng)上共享內(nèi)存式程序設(shè)計模型的研究[D].天津:南開大學(xué),2015.
[14]許可.卷積神經(jīng)網(wǎng)絡(luò)在圖像識別上的應(yīng)用的研究[D].杭州:浙江大學(xué),2012.
[15]常亮,鄧小明,周明全,等.圖像理解中的卷積神經(jīng)網(wǎng)絡(luò)[J].自動化學(xué)報,2016,42(9):1300-1312.
[16]REDMONJ,DIVVALAS,GIRSHICKR,etal.Youonlylookonce:unified,real-timeobjectdetection[J].IEEEConferenceonComputerVisionandPatternRecognition(CVPR)2016(6):779-788.
[17]LIUW,ANGUELOVD,ERHAND,etal.SSD:singleshotmultiBoxdetector[EB/OL].https://link.springer.com/chapter/10.1007/978-3-319-46448-0_2.
(責(zé)任編輯:杜能鋼)