张兴国,刘晓磊,李 靖,王环东
(1. 中国飞行试验研究院,陕西 西安 710089;2. 武汉大学 遥感信息工程学院,湖北 武汉 430072)
道路交通标志用以禁止、警告、指示和限制道路使用者有秩序地使用道路,保障出行安全.若能自动识别道路交通标志,则将极大减少道路交通事故的发生.但是由于道路交通错综复杂,且智能识别技术尚未成熟,为了得到高效实用的道路标志识别系统,仍需进行大量的研究.限速交通标志的检测识别作为道路交通标志识别系统的一个重要组成部分,对它的研究具有非常重要的意义[1-5].
目前国内已有不少学者针对道路交通标志牌的智能识别进行了研究,文献[6]针对复杂环境背景下交通标志牌难以定位识别的问题,提出一种基于交通标志牌特定颜色以及多尺度Retinex的图像增强和仿射变换的道路交通标志牌定位算法以及基于支持向量机的标志牌识别算法,经试验验证,该检测识别方法可将目标识别率达到90%以上,但是其基于个人计算机(Personal Computer,PC)实现的检测算法,不适用于影像序列的交通标志牌检测.文献[7]提出一种Adaboost算法与支持向量机(Support Vector Machine,SVM) 算法融合用于自然场景下的交通标志识别的算法[7].该算法首先通过Adaboost 筛选出最可能的候选子图像集合, 接着利用SVM对候选集合进行最终识别,从而将识别正确率提升至96%以上.以上这些算法虽然在一定程度上取得了一定的识别效果,但是目前常用方法均存在误识别率较高,检测时间过长等缺陷.笔者提出算法的创新之处在于,椭圆检测定位过程中采用帧间加速法、连续自适应均值漂移算法(Continuously adaptive mean-Shift,CamShift)和光流法缩短定位时间,再对定位结果进行反向传播(Back Propagation,BP)神经网络识别,从而提高检测效率,能够实现实时视频处理[8].
文中提出的算法主要包括两部分: 限速交通标志的检测与识别.首先利用交通标志牌的颜色以及形状特征将交通标志牌从复杂环境背景下检测出来;接着利用BP神经网络对正负样本进行训练,形成训练集,从而实现对检测出的交通标志牌的识别;最后再通过帧间加速法、CamShift法和光流法比较智能检测识别的耗时情况.
交通标志的自动识别首先需要对标志牌进行准确定位.为了解决复杂环境背景下的限速标志牌定位问题,通过查阅《道路交通标志和标线》中对限速标志牌制作的规定[9],按照规定限速标志牌外围均呈红色,利用这一特征首先对原始影像进行颜色分割,将红色区域分割出来,排除一些不必要的噪声,接着对影像进行滤波;然后进行边缘提取,椭圆拟合;最终将圆形标志检测出来.
1.1.1 颜色分割
数码相机拍摄的彩色影像一般分为红绿蓝(Red Green Blue,RGB)3个通道,有时为了突出某些颜色的特征,需要将其转换到色度-饱和度-纯度色彩模型(Hue-Saturation-Value,HSV)空间,文中为了对比RGB和HSV空间中红色信息的区别,分别在RGB和HSV空间进行颜色分割,其原理分别是:
(1) RGB空间颜色分割.对RGB影像逐像素进行判断,若 |G-B|/R< 0.1,R≥ 160,G-B< 30,G< 120,B< 120这5个条件同时满足,则将该区域赋为白色;否则,将其变为黑色.这样白色区域即为感兴趣区域,分割完毕.得到的颜色分割效果图如图1(c)所示.
(2) HSV空间颜色分割.首先将原始影像(图1(a))从RGB转到HSV空间,然后逐像素进行判断,若V≥ 0.15且S≥ 0.1且H≤ 7或H≥ 170,则将该区域赋为白色;否则,将其变为黑色.这样白色区域即为感兴趣区域,分割完毕.得到的颜色分割效果如图1(b)所示.
图1 颜色分割实验
通过对比实验可见,基于RGB空间的颜色分割在影像光照条件不足的情况下难以将标志牌分割出来,而HSV空间对光线要求较低,可以较好地识别红色区域,所以文中采用HSV空间的颜色分割优于其他文献提出的RGB颜色分割效果.
1.1.2 影像平滑与边缘提取
由于道路交通背景较为复杂,颜色分割之后仍有部分噪声,为了过滤该噪声,文中采用3次高斯平滑的方法除去噪声,为下一步边缘提取提供便利,实验结果如图2所示.由实验结果可以看出,经过高斯滤波后,图像既保持了基本轮廓,同时对噪声也起到一定的抑制作用.
图2 影像平滑与边缘提取
边缘是图像灰度变化率最大的地方,一般含有十分重要的特征信息,常被用于物体检测方面.图像边缘不但保留了原始图像中非常重要的信息,而且极大降低了数据量,完全符合特征提取的要求,因此文中采用canny边缘提取进行图像边缘提取.
1.1.3 椭圆拟合
椭圆拟合法即从一组样本点寻找一最接近样本点的椭圆,也就是说,将图像中的一组数据以椭圆方程为模型进行拟合,使某一椭圆方程尽量满足这些数据,最终确定最佳拟合椭圆.
最小二乘法作为数据拟合中的基本方法,最早被应用于椭圆拟合,其基本思路就是使方程整体误差最小化,即根据给定数据集不断假设椭圆方程,计算每个待定点到该椭圆的距离之和,最终求出距离之和最小的椭圆方程即为最佳拟合椭圆.
文中利用最小二乘法对椭圆进行拟合,由于道路背景较为复杂,初步拟合的椭圆含有较多干扰信息(如图3(a)所示),因此,对拟合出的椭圆扁率进行限制,若扁率e介于0.8~1.2之间,即 0.8≤e≤ 1.2 时,则认为是圆形交通标志牌区域;否则,为干扰信息.其最终检测结果如图3(b)所示.
图3 椭圆拟合图4 同心圆去除
1.1.4 同心圆去除
由于在提取边缘操作之后会出现内外两个红色圆形标志圈,所以进行椭圆拟合后易出现同心圆现象,如图4(a)所示.针对这一问题,文中采用一种排列组合距离比较法进行同心圆去除,即对所有检测出的椭圆中心距离进行两两比较,若两中心之间的欧式距离小于最小设置距离,那么只保留最大圆,去除最小圆; 反之,则认为这两个圆非同心圆,全部进行保留.图4(b)为去除同心圆之后的检测结果.
在上节中,从复杂环境背景下将道路交通标志牌检测了出来,接下来需要对检测出的交通标志牌进行自动识别,因此需要用到图像识别技术.近年来,人工神经网络因其强大的学习能力和并行计算能力,常被应用于图像识别等领域.虽然该方法属于机器学习范畴,无法完全跟人脑进行媲美,但其拥有自适应学习能力,能够通过一系列指定的学习特征对样本进行学习,即通过对人脑神经元进行抽象,形成某种简单的模型,接着依照不同的连接方式形成不同的网络,从而实现适应性处理信息的能力.目前人工神经网络因其强大的模糊学习能力已被应用于医疗、交通、工业、运输、航空和航天等各个领域.文中项目需要对交通标志进行实时检测识别,因此,可通过BP神经网络对标志牌进行识别.
1.2.1 BP神经网络的算法描述
BP 神经网络包括训练过程和学习过程.
(1) 训练过程.首先输入层接收来自外界的信号,然后传递给中间层的各神经元;中间层通过改变不同的隐层结构将这些信息进行变换;最后信息被传递到输出层,这就是一次学习的正向传播处理过程.
当实际输出与期望输出存在差异时,将会进入误差反向传播过程.误差反传即通过隐含层反传输出误差到输入层,在反传过程中将误差分配到每一层,从而在各层获得调整各单元权值的依据.通过正向反向传播,直到达到训练终止条件为止.
(2) 学习过程.人工神经网络的学习过程首先需要对网络进行初始化,即分配连接权,设定误差函数,学习的最大次数等;接着输入训练样本,计算各隐藏层的输入和输出,调整连接权值;最后计算全局误差,判断其是否满足终止条件,从而完成学习过程[10].
1.2.2 输入向量的计算
输入向量用来代表图案的特征向量,不同的标志具有不同的特征向量,利用特征向量的差异来区分不同的标志图案,从而达到识别分类的目的.
文中样本图像均统一至30×30像素,并设定63个输入节点,以图案的红绿蓝(RGB)3个通道灰度值为基础进行特征向量的计算,充分利用图像颜色信息,从而较大增加了识别率.
前3个节点的计算方法为: 计算红绿蓝3个通道的平均值,并将其归一化到0~1范围内,计算公式如下:
(1)
然后,计算30个垂直方向vi和水平方向hi上的投影值:
(2)
其中,Y为灰度矩阵,T为阈值.Yi,j和T的表达式为
(3)
这63个节点依序作为输入向量的值,进行网络训练[11].
1.2.3 期望输出的确定
期望输出用来判定网络的训练误差和决定输出值,该输出可以是一个值或者一个向量,文中以6种不同限速标志为训练样本.由于期望输出得到的值在0~1区间内,为了更好地区分不同类别限速标志,这里将期望输出设定为一个六维向量.向量构造方法为: 第N个训练样本的期望输出向量的第N维的值为1,其他维的值都为0.即6种训练标志的期望输出向量按行排列在一起会形成一个 6×6 的单位矩阵[12].
1.2.4 实验结果
基于BP神经网络算法处理交通视频流的结果如图5所示.从图5可以看到,对于用来展示的40、50和60的限速牌都得到了正确识别结果,其检测识别率如表1所示.
图5 神经网络算法识别结果
交通标志类型总帧数准确检测帧数准确识别帧数检测率/%识别率/%40km/h49449349399.899.850km/h50246245292.090.060km/h69567364896.893.2
在实际的应用场景中,希望能够实时对交通标志进行检测和识别.这对算法处理的效率提出了很高的要求.目前大多交通标志牌的识别基于单张影像进行识别,对于检测识别耗时问题并未予以过多考虑.为了模拟实际应用场景,文中对交通标志视频的检测和识别算法进行了研究.将视频帧间关系、CamShift、光流法引入文中的交通标志检测识别中,将目标跟踪的方法与文中算法结合,使得能够实现对视频进行交通标志牌的检测识别[13-15].下面分别介绍文中提出的3种视频检测识别加速方法.
1.3.1 视频帧间关系
在现实生活中,物体的运动是连续的.因此根据相对运动原理,拍摄的视频中标志的运动也是连续的,也就是说每一帧中标志的位置与前一帧和后一帧的标志位置是紧密相关的.利用这个先验知识,文中利用帧间关系对物体运动进行预测,进一步优化了视频的限速标志检测和识别效率.具体算法步骤如下:
(1) 进行目标全局检测和识别,确定目标位置.
(2) 利用前一帧和当前帧检测的目标位置和目标半径,预测下一帧的目标位置和半径.
(3) 在预测值位置的3倍预测半径范围内进行目标局部检测,若检测失败,进行全局检测.
(4) 进行目标识别.
(5) 重复步骤(2)~步骤(4).
1.3.2 CamShift
CamShift算法是一种在一组数据的密度分布中寻找局部极值的稳定方法,可用来跟踪物体.其基本思想是,首先给定搜索窗口,接着以物体特征分布为依据进行不断搜索,逐帧计算峰值,从而实现逐帧追踪目标.CamShift优势之一是可以自动调整搜索窗口大小.其具体跟踪步骤如下:
图6 视频加速算法检测结果
(1) 进行目标检测和识别,确定限速标志的位置.
(2) 计算限速标志所在区域图像的直方图反向投影,输入CamShift函数.
(3) 利用CamShift检测下一帧的标志位置并进行标志识别.
(4) 每隔一定帧数重新执行步骤(1)~步骤(3).
由于CamShift主要利用的是标志的颜色特征,当场景变化较大时将出现检测不准的情况.步骤(4)重新执行步骤(1)~步骤(3)是为了保证程序检测的稳定性和准确性,图6(a)为CamShift检测的初步结果.
1.3.3 光 流 法
光流是指在视频中目标特征点被连续跟踪时运动被转化成的速度矢量.Lucas-Kanade(LK)方法是用于求稠密光流的,最初于1981年提出.LK算法基于以下3个假设: 亮度不变、时间连续或者运动是小运动和空间一致.稀疏光流的目标跟踪方法几乎是实时的,效率很高,能够应用到视频标志检测方面,将极大提高算法效率,具体实现如下:
(1) 进行目标检测和识别,确定限速标志的位置.
(2) 对标志所在区域进行特征提取.
(3) 将特征点位置输入,利用LK方法进行稀疏光流的目标跟踪和标志识别.
(4) 如果现有的特征点数小于输入特征点数的k倍,则重新执行步骤(1)~步骤(3).一般来说,k可以设置为0.7.
图6(b)所示为光流法检测结果.
文中随机选用15、40、60限速牌视频进行试验.3个视频的帧宽为640像素,帧高为480像素,帧率为29帧每秒,平均每帧停留时间为 34.5 ms.实验结果的优劣将从检测识别效率和定位准确度两个方面加以说明.
表2为常规方法、帧间关系加速、CamShift和光流法4种方法对视频进行检测处理每帧耗费的平均时间.
表2 4种方法的检测识别效率ms
从表2的平均数据可以看到,常规方法处理数据的时间明显比后3种方法要高出很多时间,因而文中的视频加速是非常有意义的; 对比后3种方法,不仅CamShift和光流法的各自的平均处理时间比帧间关系加速的要少,对比每一个限速牌可看到,CamShift和光流法处理速度均优于帧间关系加速法.虽然只相差了 2~ 3 ms,但是当数据量巨大时,后两种方法的这种加速将具有很大的优越性.
表3为常规方法、帧间关系加速、CamShift和光流法4种方法对同一视频进行检测处理定位精度对比表.
表3 4种方法的定位准确度
从表3的数据可以看出,光流法的定位精度最高,常规方法和帧间加速法的定位精度相对较高,CamShift定位精度最差.结合表1可以看出,光流法不仅耗时少,且定位精度较高;CamShift法虽然耗时较少,但是定位精度较差,实际应用价值较差.
文中第1步是道路交通标志的检测,通过空间颜色分割将RGB空间转化到HSV空间,克服了RGB空间对光线变化敏感的不足,增加了交通标志牌的定位能力;接着将近年来热门的人工神经网络应用于交通标志牌的识别,通过训练样本的自学习,实现了标志牌的自动识别; 最后将3种目标追踪的算法——帧间关系加速、CamShift和光流法与交通标志牌的检测识别结合在一起,完成了基于视频流的复杂自然背景下的限速标志牌自动检测识别.文中提出的限速交通标志牌检测识别方法将多种算法结合不仅适用于单张影像的检测识别,也适用于智能摄像头等的实时检测识别,对于智能交通预警系统具有重大研究意义.