APP下载

基于CUDA的交通限速牌识别

2018-09-26王超陈庆奎

软件导刊 2018年7期
关键词:卷积神经网络

王超 陈庆奎

摘要:智能识别交通限速牌对智能驾驶车辆速度调节和安全行驶有着重要意义。为有效解决交通限速牌识别问题,提出一种基于统一计算架构(ComputerUnifiedDeviceArchitecture,CUDA)的实时交通限速牌识别算法。利用HSV颜色空间提取ROI(RegionOfInterest)区域,结合霍夫圆算法准确定位交通限速牌位置,设计一种基于卷积神经网络(ConvolutionalNeuralNetwork,CNN)的算法模型对定位区域进行数字识别。使用NVIDIAGTX680显卡对算法进行加速,可达30ms/帧的处理速率,基本满足了实时性要求。实验证明,基于CUDA的交通限速牌识别算法具有良好的适应性和准确性。

关键词:智能驾驶;交通限速牌;统一计算架构;HSV颜色空間;霍夫圆算法;卷积神经网络

DOI:10.11907/rjdk.173171

中图分类号:TP301

文献标识码: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引言

车辆智能化控制系统的不断发展,在一定程度上使驾驶员的控制、视觉和感官功能更加完善,能极大保障驾驶员的行车安全。驾驶员由于种种因素可能未及时发现交通限速标志,此时,交通限速牌识别系统对驾驶员安全有着重大意义[1-2]。

本文在HSV颜色空间过滤出红色区域,结合霍夫圆检测算法[3-4]进行交通限速牌区域定位,排除无关背景干扰,大大提高了后续处理的准确性。针对传统数字识别算法适应性差、准确率不高等缺点,本文设计一套基于CNN[5-6]的数字识别模型,能够准确有效地对限速牌区域数字进行识别。

1相关工作

车辆限速牌识别是智能驾驶系统的研究重点。交通限速牌识别主流方法分为交通限速牌区域定位和交通限速牌数字识别。由于行车过程中背景较为复杂,有效实时地对交通限速牌定位是保证后续识别的前提,很多学者对此进行了研究。成健等[7]阐述了一种基于自适应粒子群优化算法的交通限速标志识别,该方法比经典的粒子群优化算法有着更高的收敛性,但是速度有待提高。AgudoD等[8]提出了一种基于灰度图像霍夫圆定位交通限速牌识别算法,但对不同场景适应性不好。GomesSL等[9]利用Haar特征检测交通限速牌区域,然后使用SVM算法进行数字识别。GimJW等[10]提出了基于SpatialPyramid特征和BoostRF算法的一种交通限速牌识别方法。

上述方法在检测交通限速牌方面或多或少存在实时性较差、算法对于不同场景的检测效果参差不齐、抗干扰能力不强等缺点。本文提出一种基于CUDA的交通限速牌识别算法。该算法利用HSV空间和霍夫圆检测算法定位交通限速牌区域,排除干扰,使用CNN算法进行数字识别。实验证明,该算法在不同场景下都有着较好的准确性,能够满足智能驾驶中交通限速牌的准确实时识别。

2算法介绍

交通限速牌作用是提醒驾驶员调整车辆速度,保障行车安全。交通限速牌的图像特征较为固定,一般为红色圆圈包围黑色数字,黑色数字为行车速度。

车辆行驶速度一般较快,提取交通限速牌区域实时性要求较高,因此使用CUDA对HSV颜色空间过滤,使用霍夫圆检测算法进行加速。实验证明本文提出的算法在速度和精度上都满足了智能驾驶系统要求。

2.1HSV颜色空间过滤

HSV颜色空间在特定场景的目标识别方面发挥着重要作用[11-12]。HSV模型是一种将RGB彩色模型中的点在圆柱坐标系中的表示方法。HSV颜色空间有3个分量,分别是色相(Hue)、饱和度(Saturation)、明度(Value)。HSV空间色相的变化范围为0~360,而饱和度和明度的变化范围都是0~1。HSV颜色空间与人类感觉颜色的方式十分相似,HSV中使用的颜色可通过人类的感知来定义,能通过色相、饱和度和明度区分不同颜色,而RGB和CMYK却不能。交通限速牌外围是红色圆型区域,将RGB颜色空间转换成HSV颜色空间,然后过滤出红色区域,排除无关区域干扰,可方便后续处理和检测。HSV和RGB颜色空间转换公式如下:

R、G、B分别代表RGB颜色空间的紅、绿和蓝3种颜色分量,max等于R、G和B中的最大值,min等于R、G和B中的最小值,H、S、V分别表示色相、饱和度和明度。通过上述公式可完成从RGB颜色空间到HSV颜色空间的转换。红色HSV空间范围如表1所示。

NVIDIA于2006年推出统一计算架构(ComputeUnifiedDevicesArchitecture,CUDA),结合其推出的GPU可以进行大规模并行计算,从而将并行计算从大型集群扩展到了普通显卡,用户仅仅需要一台带有NVIDIA显卡的计算机就能执行大规模并行处理。计算机能够将并行任务分发到GPU的各个流处理(streamingmultiprocessor,SM)上,每个SM含有多个流处理器(streamingprocessor,SP)。统一计算架构编程模型如图1所示。每个核函数对应一个grid,每个grid根据需要配置不同的block和thread。统一计算架构包含block和thread两个并行逻辑层。在执行时block映射到SM,thread映射到SP。

在将RGB颜色空间转换为HSV颜色空间过程中,使用统一计算架构(ComputerUnifiedDeviceArchitecture,CUDA)进行并行加速处理,为每个图像像素分配一个线程,每个线程进行上述公式计算,这样大大加快了HSV颜色空间的速度转换。对转换后的HSV颜色空间图像过滤红色区域并进行边缘检测,使得红色边缘像素点值为255,其它区域像素值为0,实验结果如图2所示。

2.2交通限速牌定位

提取交通限速牌区域,本质就是提取处理后图像的圆形区域,使用霍夫算法检测交通限速牌区域。霍夫算法能够用于检测直线、圆和其它参数曲线,本质是一种对参数进行投票,找出可能符合条件的算法。直线的确定需要两个参数,而圆的确定则需要3个参数(圆心左边的两个参数和圆的半径)。很明显,随着参数空间的增长,其计算量会有几何级数的增长。为减小计算量,利用方向梯度,首先确定候选圆心,然后投票确定其半径和圆心坐标,其算法描述如下:

算法1:霍夫圆交通限速牌区域定位算法

Foreveryboundarypoint(x,y)

ForEvery(a,b)alonggradientdirectiong(x,y)

Computerr

IncrementA(a,b,r)by1

A>thresholdrepresentvalidcircles

从HSV颜色空间提取结果可以看出,边缘点像素比例在整幅图像中比例较小,在进行并行加速时,如果为图像中每个图像像素分配一个线程,意味着大部分线程在等待小部分线程完成任务,从而造成GPU资源的极大浪费。因此,可以利用CUDA中共享内存特点[13],快速提取边缘点坐标。共享内存是片上内存,在速度方面比常用的全局内存、纹理内存、常量内存等要快许多,一般来说,共享存储器要比全局存储器的存取速度快100倍左右。共享存储器被分配给每个线程块,所以每个线程块内的线程都可以访问同一个共享存储器,而不同线程块的线程是无法相互访问对方的共享内存的。这种特性与线程同步相结合有着广泛的应用,利用好共享内存是提高GPU利用率和并行算法速度的关键。本文利用共享内存特性快速提取像素点坐标位置,用于后续计算,大大提高了GPU的利用率。其算法描述如下:

算法2:边缘坐标并行提取算法

pixelValue=imageValue[x,y]

If(pixelValue>0){

do{

index++;

shareIndex=index;

shareArray[index]=positon(x,y);

}while(shareArray[index]!=positon(x,y))

}

}

index=shareIndex;

为每个图像像素分配一个线程,每个线程读取相应像素点的像素值,如果二值化后图像像素值满足要求,那么这个像素点坐标就要加入到坐标数组中。为防止覆盖其它线程存储在共享内存中的像素点位置信息,首先对数组下标进行加1操作,将新的数组下标存储到共享内存中。所有的线程都尝试将自己的坐标x和y加入到数组中,但只有一个线程能够成功写入,其它线程则必须重新尝试,重新更新像素点数组坐标内容。这样,当循环结束后,所有满足条件的像素点位置便存储到共享内存中,然后再将其复制到全局内存,便得到用于后续计算的边界点在图像中的位置坐标。

假设得到边缘点的数量为N,便可以在GPU上申请N个线程,每个线程处理通过上述算法得到的位置数组中的边缘点。边缘点数量远远小于图像所有像素的数量,则所需要的线程数也远远小于图像像素数,大大节省了GPU空间,提高了GPU利用率。在每个线程中,首先求出每个边缘点的梯度方向,根据每个边缘点的梯度找到候选圆心,对候选圆心和半径进行投票,这样三维的累加平面就转化为二维累加平面。最后统计投票数组,找到符合条件的交通限速牌区域。实验结果如图3所示。

2.3限速牌数字识别

卷积神经网络对计算机视觉问题处理能力强大[14-15],在人脸识别、物体分类识别等方面有着广泛应用。模板卷积可以提取图像的某些特征,如模糊、锐化、边缘特征都是图像和特定模板卷积后的结果。卷积神经网络可以提取图像特征后进行分类,其核心思想主要有:

(1)局部感受野。局部感受野是对图片局部特征的检测,比如局部的一个角、一段弧,这些基本特征是构成动物视觉的基础。卷积神经网络也类似,每个神经元只需要对图像局部感受。

(2)权值共享。如同人体大脑一样,每个神经元的生理功能就是相似的,甚至可以说是相同的。在卷积神经网络中,每个神经元的权值相同,可以大大减少数据计算量。使用不同的滤波器去做卷积核,每个滤波器去卷积图像得到的不同特征称之为FeatureMap。

(3)池化操作(降采樣)。所谓池化操作就是在每次卷积之后,通过一个降采样工作减小规模和后续运算量。

不同于LOYO[16]、SSD[17]等复杂卷积神经网络,用于交通限速牌识别的卷积神经网络结构较为简单,需要的内存空间较少,同时在嵌入式设备上具有较快的速度。如图4所示,设计了一种基于CNN算法模型对数字进行识别。

将采集的交通限速牌区域进行分割,得到单个数字图像,将单个数字图像缩放到32*32图像块大小,设计一个基于CNN的数字识别算法,架构如图4所示,其由两个卷积层(C1,C3)、两个最大池层(S2,S4)和两个完全连接层(F5,F6)组成,F2输出到10路softmax,其产生10个标签(即'0'-'9')的概率分布。第1个卷积层(C1)以8个大小5×5的内核过滤32×32输入灰度图像,而第2个卷积层(C3)则使用16个卷积模板的卷积核对下采样后的S2层进行模板卷积,两个卷积层都采用单位步幅,在层S2和S4处通过应用2×2不重叠的最大合并进行降采样。最后,两个完全连接层F5和F6分别具有128个和10个神经元。将每个数字图像输入到卷积神经网络层中进行数字识别,最后将识别数字组合得到结果。

3实验结果与分析

本文实验基于NVIDIA独立显卡测试环境,采用双核Core(TM)2E8400CPU,主频3.0GHz,内存4GB,显卡为NVIDIAGeForceGTX670,系统类型为Window764位,开发平台为VisualStudio2010,采用语言为C/C++/CUDA。

3.1限速牌定位与识别

本文采用HSV颜色提取和霍夫圆检测,获取交通限速牌区域,排除无关信息干扰,通过CNN进行数字识别。实验证明,算法具有良好的准确率和较好的实时性。图5为不同场景下交通限速牌精确定位结果,从左到右依次为白天光线较好、夜晚路灯光线较差和夜晚光线十分差几种场景。从实验结果可以看出,本文提出的交通限速牌定位算法有着良好的适应性和准确性。

将定位的交通限速牌使用卷积神经网络进行分类识别,实验证明卷积神经网络相比于传统的识别算法有着较好的准确性和稳定性,实验结果如表2所示。

3.2加速比分析

本文利用CUDA对算法进行加速以满足实时性要求。在GerForceGTX680显卡上对上述算法进行测试,并与其在CPU上的串行算法进行比较。HSV颜色空间提取和基于霍夫的交通限速牌区域提取时间加速比(即算法在GPU和CPU平台上处理一帧图像的平均时间之比)分别如图6和图7所示。可以看出,随着分辨率的提高,统一计算架构的加速效果越来越好。实验证明,本文提出的交通限速牌识别算法在精度和速度上表现较好,能够满足实际应用要求。

4结语

本文提出了一种基于CUDA的交通限速牌识别方法,利用颜色空间和霍夫圆变换提取交通限速牌区域,同时利用卷积神经网络算法,对提取的交通限速牌区域进行数字识别,具有良好的适应性和较高的准确性。利用统一计算架构加速算法,系统实时性良好。利用共享内存特点,提高了GPU资源的利用率,很好地应用到嵌入式GPU设备,具有一定的实用性。但本系统还存在一些问题,如在识别过程中容易受其它红色物体干扰,使检测速度和检测准确度有所下降。未来的工作是使交通限速牌系统更加智能和准确。

参考文献:

[1]蒋海峰,杨丰艳,韩文元,等.限速和警告交通标志影响下的驾驶行为特性研究[J].公路交通科技:应用技术版,2009,5(3):26-31.

[2]司银霞.限速标志对驾驶行为影响研究[D].长春:吉林大学,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].数据采集与处理,2016,31(1):1-17.

[6]李彦冬,郝宗波,雷航.卷积神经网络研究综述[J].计算机应用,2016,36(9):2508-2515.

[7]成健,张重阳.基于自适应粒子群优化算法的限速标志识别[J].信息技术,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颜色空间的水下物体识别技术研究[J].中国科学,2015,45(8):84-87.

[12]蔡林沁,郑雪松,王牛.基于HSV颜色空间正交立体视觉目标检测[J].新型工业化,2013(1):56-59.

[13]张帅.CPU--GPU异构NUMA系统上共享内存式程序设计模型的研究[D].天津:南开大学,2015.

[14]许可.卷积神经网络在图像识别上的应用的研究[D].杭州:浙江大学,2012.

[15]常亮,邓小明,周明全,等.图像理解中的卷积神经网络[J].自动化学报,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.

(责任编辑:杜能钢)

猜你喜欢

卷积神经网络
卷积神经网络语言模型研究
基于卷积神经网络温室智能大棚监控系统的研究
基于深度卷积神经网络的物体识别算法