智能交通系统中的视频监控系统
深圳市乌班图科技有限公司
2009/11/20 10:46:35>> 进入商铺
智能交通系统中的视频监控系统概述
林 勇
前 言:
随着国民经济的迅猛发展,公路上行驶的车辆越来越多,速度也越来越快,与车辆交通有关的案件也呈不断上升势头,交通肇事逃逸等案件时有发生。如何运用科学的手段帮助*部门有效控制高速公路上超速违章现象,抓捕逃逸车辆!已成为**门急待解决的问题。本公路视频超速监控系统利用视频图 像处理技术,对高速公路车道上的汽车进行非接触式监控,获得超速车辆车速、车牌号码、违章照片等运行状态信息,可应用于公路管理、逃逸车辆抓捕等场合。
1.系统结构
1.1 系统的硬件组成
汽车牌照自动识别系统的硬件组成如图(1)示。摄像机负责现场实时采集图像。视频卡将摄机采集的图像逐帧或逐场转换为数字图像,实时集由传感器来完成。计算机为识别处理中心运行识别软件,识别结果通过GPRS网络传送到车辆管理门,收费部门及*安全等部门,同时也传送到本地机的视频器及存储设备中(以备后用)。
图(1)
1.2系统软件组成
系统软件包含超速车辆检测和自动车牌识别以及GPRS数据传输三部分。超速监控计算机通过实时视频采集卡首先采集高速公路的全景图像,并利用全景图像进行超速车辆检测,如检测到违章车辆,启动摄像机工作,采集近景图像并利用近景图像自动车牌识别,其识别结果可分车牌号码字符、车牌号码照片、汽车违章照片分别保存到超速违章车辆数据库,以供事后处理;通过GPRS自动向高速公 路系统中心的违章处理服务器传送违章车辆的车牌号码、违章照片信息,以实时进行违章处理。软件系统功能框图如图(2)所示。
图(2)
2.图象预处理
图像预处理的目的是对原始采集图像进行标准化和增强,包括:图像几何校正、图像增强和图像滤波三部分。
(1) 图像几何校正:车牌图像一般在通过摄像机采集时都在图像中呈现一定的倾斜角度,首先需要将车牌图像进行几何角度变换,使车牌图像处于水平走向,同时字符垂直放置。算法中没有采用常规的旋转变换算法,而采用分别在行方向上和列方向上的像素移动方法完成同样的角度校正过程,大大降低了校正运算量。
(2) 图像增强:输入图像统一采用的是 256 阶灰度图像,用灰度级扩展的方法来增强图像。将图像灰度范围线性扩展到 0--255,经过处理后的图像车牌清晰度明显提高。
(3) 图像滤波:算法使用非线性的中值滤波,该滤波经证实具有很强的噪声抑制效果。考虑到算法的效率,不进行二维 8 邻域的中值滤波,只在每一行上进行一维滤波即可,即I (x) = Med( I (x-1), I(x), I( x+1))
实验结果表明一维中值滤波降噪效果良好。经过图像灰度扩展和一维滤波处理,复杂天气情况下的输入图像一般都能够得到满意的增强效果,如图(3)所示。
图(3)预处理结果
3.动目标分割
从视频图像进行超速车辆检测时,可以直接用帧间差的方法比较前后两帧图像 ,去除静止的区域,保留运动区域,判定视场中是否存在着汽车,判断汽车的运动轨迹及速度。采用提取函数法分割目标与背景。设代表当前的图象,代表参考图象,其中(x,y)为像素点的坐标, ,,
则提取函数为
容易知道,式中 。
用提取函数对在公路上采集到的实际运动车辆的图像做动目标检测,其实验结果如图(4)所示
图(4)
4.动目标跟踪及速度测量
在目标跟踪的同时,需要判断计算目标的运动速度,所以采用特征点匹配的方法进行动目标跟踪,以便利用特征点的视差计算车速。其要点是:在一帧图像的活动目标窗口中选择一组具有不变性质的特征点,与下一帧图像中的同类特征点作匹配,从而求得视差。这就是特征点匹配的方法。
采用Moravac算子作为点特征提取算子。它基于一个理想的特征点,在其四周所有方向上灰度具有很大的方差。
特征点提取的步骤为:首先,在5 5的窗口计算
M=MIN
式中,为窗口中心像元的行、列序列为处图像的灰度值。然后,确定备选特征点,若像元的有利值M大于经验阈值,则该像元为备选特征点;否则,该像元不是特征点。zui后,用抑制局部非zui大M值的方法确定特征点 。检验每个备选特征点的M值是否为一定大小窗口内的zui大值,如果在窗口内有几个备选特征点,则取M值zui大的像元作为特征点,其余均去掉。为保证匹配的正确率,采用协方差zui大与差的值之和zui小作为双重判据,决定匹配点的取舍,以增强匹配结果的可靠性。找到匹配点后,利用两者视差和事前标定过的视场内图像zui小分辨率所代表的zui小距离以及图像采集的间隔时间,就可计算出目标速度,根据此值预测目标新位置并判断是否超速。
5.车牌定位
本文采用分步定位的方法得到牌照。即:先确定图片中车牌的上下边界位置。然后再进一步确定车牌的左右边界的位置。
5.1 基于边缘行跳变粗分割
本文采用边缘检测行跳变的方法进行。目前一般采用sobel、prewitt、Roberts等算子检测边缘。但通过实验发现,对于车牌上部分字体有边缘断裂的产生,在进行行扫描边缘跳边时,将影响车牌行的正确提取。对有的牌照则*失败,算子的适应性不宽广。本文采用Canny算子进行。Canny算子是一种比较新的边缘检测算子,具有很好的边缘检测性能。它利用高斯函数的一阶微分,能在噪声抑制和边缘检测之间取得较好的平衡。因此,和别的算子相比,它能够把图像中的各种边缘检测出来。下面是车牌上下边界的定位算法。
算法描述:
(1)读入RGB原图,进行灰度化;
(2)将灰度图用Canny算子进行计算,得到二值边缘图;
(3)从*行开始扫描,相邻二像素值不同,就认为是一次跳变,对每行跳变进行计数,当计数值大于阈值(threshold)时,就认为此行可能包含车牌,做一记号;
(4)对二值边缘图从上到下扫描完成后,就开始对标记行进行检测,从下向上进行,当连续标记数目大于阈值(threshold1)时,就认为找到牌照所在的行了。原因是车牌在车的下部。这样可以避免车身上部的各种干扰。提取出来,得到粗定位结果。但是,在试验过程中,我们发现:因为Canny算子获得的边缘非常丰富。因此,会造成两个错误结果。
A 车下部因为地面或其它干扰(如数码相机的时间数字)时,这些水平定位条被切出来,而根本没有牌照。切分错误如图5。
图5 原图边缘图和切错的区域
B 因为车身不光滑,使运算后有的车身上有大量边缘线,或车牌附近类似边缘密集区域,造成大宽度范围的符合试验设定的阈值,使车牌切割区域很宽。影响下一步定位。切分过大如图6。
图6 干扰造成的过大提取区域
如何排除干扰是提高准确率的关键步骤。对于边缘二值图去噪,目前没有见到相关报道,一般是对灰度图进行去噪的。根据牌照的先验知识,本文提出二值图的纹理过滤方法。方法如下:
步骤一:
(1)设置阈值1(车牌字符宽度), 行计数器i=0;
(2) 从第i行的*列开始,对各边缘线段进行长度统计,并存入线段长度统计数组;
(3) 对统计数组进行检查,大于阈值1的线段,就将原图此位置的边缘线段变为背景;
(4)i=i+1;如果i到达图片的zui后一行,就结束,否则,返回(2)。
步骤二:
(1) 设置阈值2(字符之间的zui大宽度),行计数器i=0。计数器count=0;跳变点位置指针j=0;设置阈值3(符合纹理特征的一组区域的zui少数量值);
(2) 考察第i行边缘跳变点j和j+n(n为两相邻边缘点的距离,在变化,以下相同),如果二跳变点之间的距离小于阈值2,count加1, j=j+n。返回(2);如果二跳变点之间的距离大于阈值2,将count的值与阈值3比较:如果小于,就将j点和j向前查count个点,它们之间的所有边缘点赋值为0(即变为背景), 然后count=0; 如果大于,不做任何改动,j=j+n,count=0返回(2),如果j为第i行的zui后一个边缘点,count=0,转到(3);
(3)i=i+1;如果i到达图片的zui后一行,就结束,否则,返回(2)。
步骤一的目的是去除图片中水平过长的边缘线,将粘连的跳变区域分离开来。进行初步纹理过滤。步骤二的目的是去除小的类似纹理跳变区域,进行进一步纹理过滤。边缘滤波前后的区别如图7。
图7 纹理过滤前后的边缘图的对比
经过过滤后的图像,再用前面的车牌上下边界的定位算法定位车牌的上下界。因为纹理过滤可能对倾斜的车牌两个角有一定的损伤,所以要对切分水平条宽度给予一定的补偿,也就是对得到的上下边界适当加宽。
5.2 基于中值滤波的左右界界定
在找到车牌所在的上下界后, 下一步就是定位左右界。虽然粗切分的图已经缩小很多,但下一步工作,即选什么图片方式十分重要。通过对颜色转换定位、形态学定位、以及灰度图投影定位实验,发现这些方法效果不好。大量的实验表明,进行图像水平差分,相邻象素间相减求值,对差分图进行垂直投影的效果很好。水平差分公式如下:,其中是差分结果,是灰度图像在坐标,处的灰度值。i和j的取值范围是图片的高度数值和宽度数值。对差分结果进行垂直投影,研究投影图后发现,牌照区域有的比较明显。但是有的不明显,因为有些图片投影峰值差别不多,会造成确定牌照区域的偏差,字符切丢。本文提出利用中值滤波进行预处理。使用5×5的中值滤波窗口进行。滤波后它可以把大部分干扰去除掉,车牌垂直投影更突出。而且,它的投影左右界限比数学形态学更好,更准确;从而提高了准确性,见图8比较。
图8 候选区域差分图中值滤波前后垂直投影对比
左右定位时利用车牌宽高比的先验知识。经过反复试验,zui终将比例系数定位3.9。即:切出的水平区域宽度(认为是车牌的高度)与车牌的宽度(车牌的左右界长度)为1:3.9。对滤波后的差分水平条区域进行垂直投影,在计算宽度范围内(车牌的左右界长度)滑动此窗口,分别求出各个窗口范围里的灰度投影值的总和,从中求出zui大值对应的窗口位置,得到坐标。这样,就得到左右边界。根据上下左右界切分原图,从而得到结果。图9是原图和定位结果。
图9 牌照定位结果
其中,a是原先未经纹理滤波时,切错的原图,而b是切得过大的原图,各图下面的小图是按本文算法得到的车牌定位图像。通过对图库中实拍的各种光照情况下车头图片的测试实验,可以得出结论,该方法具有简单易行,准确率高,对牌照各种颜色都适用的特点,具有很好的实用性。
6.字符识别
字符识别采用基于改进SVM和KNN融合的车牌字符识别算法设计。
6.1 字符特征提取
特征选取采用轮廓层次特征提取的方法。首先对字符图象进行二值化处理,然后从上下左右4个方向提取轮廓层次特征。Length,Width为字符轮廓的宽和高。定义字符的*层轮廓层次特征为L1(j),j=0,1, ,Length-1;L1(j)的值为对字符图象的j行从左到右扫描时*次遇到f(i,j)=1时的水平坐标值
L1(j)=min{min{i|f(i,j)=1},Width-1},j=0,1,,Length-1 (9)
字符的左侧第n层轮廓层次特征Ln(j),定义为对字符图象的j行从左到右扫描时,f(i,j)第n次从0跳变到1时的水平坐标值.递归公式为
L1(j)=min{min{i|f(i,j)==1},Width-1},j=0,1,,Length-1 (10)
Ln0(j)=min{min{i|i>Ln-1(j)&&f(i,j)==0},Width-1},j=0,1, ,Length-1 (11)
Ln(j)=min{min{i|i>Ln0(j)&&f(i,j)==1},Width-1},j=0,1,,Length-1 (12)
从右侧和上下方向的轮廓层次特征提取同理可得.将4个方向上的轮廓层次特征合并起来即得字符的轮廓层次特征
C(k)={Ln(j),Rn(j),Un(j),Dn(j)},i=0,1,,,Length-1,j=0,1,,,Width-1 (13)
其中,n由分析和实验统计可知,n=2较好.轮廓层次特征字符的粗细和左右变形较为不敏感,并且能够很好地再现字符的轮廓形状和内部结构.
6.2 样本训练
在实际应用中,由于需要对较为规则和不规则的字符都能够做出较为快速和准确的识别,我们需要对训练样本进行筛选,将两批不同的样本分别提供给KNN和改进SVM分类器.为了能让KNN分类器准确识别标准和规则的字符,首先需要得到一批较为规则的训练样本;同时为了提高识别速度,每一个字符类的训练样本集应该控制在10个字符以内.为了能够识别不规则字符和非字符,我们要求将送入改进SVM分类器的样本集必须包含一部分不规则和非字符样本.由于SVM强大的泛化能力,少量的支持向量可以代表整个样本集.两组训练样本集部分字符如图10和图11所示.
训练步骤:
(1)筛选训练样本,构造两组不同的训练样本集.
(2)分别对两组训练样本集进行归一化处理,利用轮廓层次特征提取方法提取字符特征.
(3)采用*组训练样本集,作为KNN分类器的匹配模板集.
(4)采用第二组训练样本集,利用特征参数构造支持向量机.
6.3 字符识别
在样本训练完毕,构造好KNN和SVM分类器后,我们就可以识别实际的车牌字符了.对于一幅待测的字符图象,首先对其归一化,将其转化到标准尺寸大小.然后采用轮廓层次特征提取方法提取字符特征,送入KNN分类器判决,如果置信度小于预设阈值,则认为判决结果正确,输出判决结果.如果置信度大于预设阈值,则送入改进的SVM分类器进行判决.实际的系统如图12所示.
本文介绍的算法基于K近邻分类识别方法,引入了置信度,并且改进了SVM分类器,在保证字符识别速度的前提下有效地提高了识别率。
结 束 语:
本系统采用了目前*的算法和标准的硬件实现了全自动化监控,同时实现网络化,具有架设方便,成本不高,具有较高的实用价值。获得车速,车牌号码,违章照片等运行状态信息,自动车牌识别速度快、准确率高,为实时违章处理提供了可能。该系统通用性强、开放性强、扩展性强。