论文部分内容阅读
【摘 要】提出了一种利用OpenCV函数库来进行图像处理,并进行图像基本处理,AOI区域定位,特征点坐标提取的方法,定位时采用行列扫描的方法确定车辆上下和左右边界,然后对存在车辆信息噪声的情况进行了过滤,AOI区域定位采用了边缘检测阈值比较的方法,特征点的坐标提取是采用平均模板匹配法,得到了很好的效果。
【关键词】AOI区域定位;特征点提取;边缘检测
智能交通系统,简称ITS(Intelligent Transportation System),是目前世界各国交通领域竞相研究和开发的前沿研究课题和热点。ITS系统是人们将先进的信息技术、数据通讯传输技术、电子控制技术、传感器技术以及计算机处理技术等有效地综合运用于整个交通体系,从而建立起的一种在大范围内,全方位发挥作用的实时、准确、高效的交通综合管理系统。车辆信息检测系统是智能交通系统中一个非常重要的方向,主要由图像采集、AOI区域定位、特征点坐标提取以及信息识别四部分组成,己经越来越受到人们的重视。它具有良好的实际应用价值,目前主要应用于公路治安卡口、开放式收费站、车载移动查车、违章记录系统、门禁管理、停车场管理等场合。
利用VC++,在OpenCV计算机视觉库的基础上,对车辆进行图像获取,图像处理,最终得到车辆信息,主要包括以下几个步骤,如图1所示:
图1 主要步骤
1.图像获取
利用OpenCV库函数可以对摄像机进行操作的特性,首先定义CvCapture结构变量并初始化capture=0,CvCapture结构包含从摄像机或视频文件读取帧所需的信息,然后使用OpenCV库函数cvCreateCameraCapture()从摄像机得到视频信息,即:capture= cvCreateCameraCapture(-1)。获取视频信息后还要获得图像,首先要定义IplImage结构变量并进行初始化frame=0,获取图像利用OpenCV的库函数cvQueryFrame(),即:frame=cvQueryFrame(capture)[1]。
2.图像预处理
利用OpenCV库函数获取到的图像是彩色图像,即每个像素点由红色(R),绿色(G)和蓝色(B)3个分量组成,如果直接用彩色图像计算量会很大, 很难达到实时、快速识别的目的。在实际应用中,我们可以采用如下公式将彩色图像转换为灰度图像:
Y=0.299*R+0.587*G+0.114*B
其中,Y代表转换后灰度图像的像素值,R、G、B分别代表彩色图像中红、绿、蓝三原色的分量[3]。利用cvCvtColor(src,pImgCanny,CV_RGB2GRAY);对图像进行灰度化处理。如图2所示:
图2 灰度图像
下一步对灰度化图像进行二值化处理。二值化就是选择一个阈值T,如果图像中的某个灰度值大于T,就将这个像素的灰度值设为255,否则设为0.公式如下:
g(x,y)=255,g(x,y)≥T
0,g(x,y) 选择阈值T时,本文采用自适应阈值法,利用cvAdaptiveThreshold()函数得到[1]。并采用Robert算子边缘检测二值化,二值化后的图像如图3所示,边缘检测的图像如图4所示。
图3 二值化图像
图4 边缘检测图像
3.AOI区域定位
预处理完的车牌图像就可以进行AOI区域定位了,由于车辆信息在图片中自身的特殊性,可以根据车辆图像的自身特点进行定位。
3.1车辆的特点
(1)车辆轮廓最低点一般是车身最低点,其下方没有明显的边缘密集区域。
(2)车辆轮轴大小、 个数明显,并且圆心到边界距离一定。
(3)拍摄环境不同,可能会造成车辆图像有一定的噪声。
(4)车辆信息区域的像素点明显多于其他部分。
因此,可以对边缘检测后的图像进行行扫描和列扫描,从而得到车辆信息区域。
3.2车辆信息行与列扫描
设定方法:
(1)将边缘检测图像中每行灰度级为255的像素的个数介于一定范围内。设定车辆区域中每行灰度级为255的像素个数最大最小值分别为num1、num2。若某行中灰度级为255的像素个数集中介于[num1,num2],则可以将此行的行号存入车辆AOI候选区域。
(2)对(1)中得到的车牌候选区域相邻两行号做平均,若均值误差小于某个值M,说明此行在AOI区域内。
(3)通过(2)中得到的行号分割图像得到了AOI区域,记录此时的车辆边界特征点。
图5 AOI区域确定图像
3.3 车辆信息特征点提取
为了检测车辆长度,首先要确定车头与车尾的两个特征点。通过对图像的分析,我们可以看出图像中车辆的区域存在以下特点:
车辆区域灰度值比较大:
检测的前提条件是两个图像不存在位置的误差和角度误差,实际往往无法达到100%的精确,因此会存在较小的误差,从而在对图像进行二值化处理的时候往往产生如椒盐噪声似的亮点,尽管通过二次滤波可以消除大部分亮点,但仍会存在少量亮点。
通过对车辆图像的一系列处理,我们得到了最终的车辆单色图像。通过对图像特点的分析,我们可以看到车辆区域在图像中显示为白色,基于这个特点利用平均模板进行匹配,从而实现车辆的车头车尾与车身的自动搜索,特征点定位如图6所示:
图6 特征点确定图像
3.4轮轴信息的确定
轮轴的定位就是在车辆图像中把轮轴区域提取出来,是轮轴检测的关键技术,是提高轮轴检测识别率的前提和基础。定位的准确度直接影响着轮轴信息检测的识别性能。 我们使用一种综合的定位方法,将灰度特征和几何特征结合起来进行定位的方法。由于车辆轮轴自身的一些特点,例如,一般位于一张图片的底部、轮轴为圆形、轮轴周围的像素点比中心像素点较多等。本文利用OPenCV函数库中的cvFindCircles()在图片中找到轮轴圈,初步确定轮轴区域。
在此基础上进行特征检测,精确定位,进行轮轴特征匹配,利用CV_IMAGE_ELEM得到每一点的灰度值,记录每一个AOI区域所有的灰度值特征,找到轮轴中心的位置,然后记录每一个圆心的图像坐标值,利用单位转换的原理得到图像中物体对应的实际物体的尺寸,利用cvSetImageROI()设置敏感区域,将定位到的轮轴区域放大处理,cvCopy()从源图像中拷贝图像,从而得到轮轴区域图片,如图7所示,为进一步判断轮轴半径等参数做下一步分析。
图7 轮轴区域图像
这里利用Xu提出的随机Hough变换(RHT),相对于Hough变换,RHT能够大量降低内存需求和计算时间。把图像空间随机选取的不共线的三个点映射成参数空间的一个点,是多对一的映射,避免一到多映射的巨大计算量。在处理复杂图像时,由于随机采样仍引入大量的无效单元,从而造成大量无效积累。论文针对实际应用需要提出一些改进利用随机Hough 变换用于圆检测。
算法实现基本流程如下:
<1>构造边缘点集P,初始化参数单元集Q,循环次数n=0.S为确定真实圆阈值。
<2>按一定规则从P中选取3个点Pi,Pj,Pk,计算确定的圆参数O(a,b,r)。
<3>从Q中找出Oi,满足‖O(a,b,r)-Oi‖≤δ则继续。否则转<2>。
<4>取Pm(m≠i,j,k)计算dm-0,若满足dm-0<δ,则Qi=Qi+1。P=P-{Pm},n=n+1,直至取完满足条件。
{Pm|a+r-t≤xm≤a+r+t,a+r-t≤ym≤a+r+t}的点。
<5>如果计数Qi>S,确认O(a,b,r)为真实圆,否则从Q中去除Qi,转<2>。
<6>判断并检测圆的数目是否符合规定,达到结束程序;否则转<2>。
4.结论
本文利用了行扫描和列扫描的方法对车辆AOI区域进行粗定位,利用特征点定位并进行阈值平均得到车辆高度与车长特征,并通过Hough变换对轮轴图像进行处理,便于进一步的圆特征确定,最后利用特征点坐标比较得出车辆信息,得到了很好的效果,从实验的300张图像得到的结果来看,车辆特征信息确定成功率达到95%以上,但在实际的应用中,车牌图像还要受到很多因素的干扰,因此要进一步提高识别率和识别速度是下一步要研究的内容。
【参考文献】
[1]刘瑞祯,于仕琪.OpenCV教程——基础篇[M].北京航空航天大学出版社,2007.
[2]曾丽华,李超.基于边缘与颜色信息车牌精确定位算法[J].北京航空航天大学学报,2007:33-9,1112-1115.
[3]冈萨雷斯.数字图像处理[M].北京电子工业出版,2007.
[4]孙炎增,张前进.车牌字符识别技术的研究与实现[J].微电子学与计算机,2008:25-6,101-104.
[5]庞茂群,邓开发.一种基于灰度图像的车牌定位方法[J].计算机工程与科学,2009:31-10,39-41.
【关键词】AOI区域定位;特征点提取;边缘检测
智能交通系统,简称ITS(Intelligent Transportation System),是目前世界各国交通领域竞相研究和开发的前沿研究课题和热点。ITS系统是人们将先进的信息技术、数据通讯传输技术、电子控制技术、传感器技术以及计算机处理技术等有效地综合运用于整个交通体系,从而建立起的一种在大范围内,全方位发挥作用的实时、准确、高效的交通综合管理系统。车辆信息检测系统是智能交通系统中一个非常重要的方向,主要由图像采集、AOI区域定位、特征点坐标提取以及信息识别四部分组成,己经越来越受到人们的重视。它具有良好的实际应用价值,目前主要应用于公路治安卡口、开放式收费站、车载移动查车、违章记录系统、门禁管理、停车场管理等场合。
利用VC++,在OpenCV计算机视觉库的基础上,对车辆进行图像获取,图像处理,最终得到车辆信息,主要包括以下几个步骤,如图1所示:
图1 主要步骤
1.图像获取
利用OpenCV库函数可以对摄像机进行操作的特性,首先定义CvCapture结构变量并初始化capture=0,CvCapture结构包含从摄像机或视频文件读取帧所需的信息,然后使用OpenCV库函数cvCreateCameraCapture()从摄像机得到视频信息,即:capture= cvCreateCameraCapture(-1)。获取视频信息后还要获得图像,首先要定义IplImage结构变量并进行初始化frame=0,获取图像利用OpenCV的库函数cvQueryFrame(),即:frame=cvQueryFrame(capture)[1]。
2.图像预处理
利用OpenCV库函数获取到的图像是彩色图像,即每个像素点由红色(R),绿色(G)和蓝色(B)3个分量组成,如果直接用彩色图像计算量会很大, 很难达到实时、快速识别的目的。在实际应用中,我们可以采用如下公式将彩色图像转换为灰度图像:
Y=0.299*R+0.587*G+0.114*B
其中,Y代表转换后灰度图像的像素值,R、G、B分别代表彩色图像中红、绿、蓝三原色的分量[3]。利用cvCvtColor(src,pImgCanny,CV_RGB2GRAY);对图像进行灰度化处理。如图2所示:
图2 灰度图像
下一步对灰度化图像进行二值化处理。二值化就是选择一个阈值T,如果图像中的某个灰度值大于T,就将这个像素的灰度值设为255,否则设为0.公式如下:
g(x,y)=255,g(x,y)≥T
0,g(x,y)
图3 二值化图像
图4 边缘检测图像
3.AOI区域定位
预处理完的车牌图像就可以进行AOI区域定位了,由于车辆信息在图片中自身的特殊性,可以根据车辆图像的自身特点进行定位。
3.1车辆的特点
(1)车辆轮廓最低点一般是车身最低点,其下方没有明显的边缘密集区域。
(2)车辆轮轴大小、 个数明显,并且圆心到边界距离一定。
(3)拍摄环境不同,可能会造成车辆图像有一定的噪声。
(4)车辆信息区域的像素点明显多于其他部分。
因此,可以对边缘检测后的图像进行行扫描和列扫描,从而得到车辆信息区域。
3.2车辆信息行与列扫描
设定方法:
(1)将边缘检测图像中每行灰度级为255的像素的个数介于一定范围内。设定车辆区域中每行灰度级为255的像素个数最大最小值分别为num1、num2。若某行中灰度级为255的像素个数集中介于[num1,num2],则可以将此行的行号存入车辆AOI候选区域。
(2)对(1)中得到的车牌候选区域相邻两行号做平均,若均值误差小于某个值M,说明此行在AOI区域内。
(3)通过(2)中得到的行号分割图像得到了AOI区域,记录此时的车辆边界特征点。
图5 AOI区域确定图像
3.3 车辆信息特征点提取
为了检测车辆长度,首先要确定车头与车尾的两个特征点。通过对图像的分析,我们可以看出图像中车辆的区域存在以下特点:
车辆区域灰度值比较大:
检测的前提条件是两个图像不存在位置的误差和角度误差,实际往往无法达到100%的精确,因此会存在较小的误差,从而在对图像进行二值化处理的时候往往产生如椒盐噪声似的亮点,尽管通过二次滤波可以消除大部分亮点,但仍会存在少量亮点。
通过对车辆图像的一系列处理,我们得到了最终的车辆单色图像。通过对图像特点的分析,我们可以看到车辆区域在图像中显示为白色,基于这个特点利用平均模板进行匹配,从而实现车辆的车头车尾与车身的自动搜索,特征点定位如图6所示:
图6 特征点确定图像
3.4轮轴信息的确定
轮轴的定位就是在车辆图像中把轮轴区域提取出来,是轮轴检测的关键技术,是提高轮轴检测识别率的前提和基础。定位的准确度直接影响着轮轴信息检测的识别性能。 我们使用一种综合的定位方法,将灰度特征和几何特征结合起来进行定位的方法。由于车辆轮轴自身的一些特点,例如,一般位于一张图片的底部、轮轴为圆形、轮轴周围的像素点比中心像素点较多等。本文利用OPenCV函数库中的cvFindCircles()在图片中找到轮轴圈,初步确定轮轴区域。
在此基础上进行特征检测,精确定位,进行轮轴特征匹配,利用CV_IMAGE_ELEM得到每一点的灰度值,记录每一个AOI区域所有的灰度值特征,找到轮轴中心的位置,然后记录每一个圆心的图像坐标值,利用单位转换的原理得到图像中物体对应的实际物体的尺寸,利用cvSetImageROI()设置敏感区域,将定位到的轮轴区域放大处理,cvCopy()从源图像中拷贝图像,从而得到轮轴区域图片,如图7所示,为进一步判断轮轴半径等参数做下一步分析。
图7 轮轴区域图像
这里利用Xu提出的随机Hough变换(RHT),相对于Hough变换,RHT能够大量降低内存需求和计算时间。把图像空间随机选取的不共线的三个点映射成参数空间的一个点,是多对一的映射,避免一到多映射的巨大计算量。在处理复杂图像时,由于随机采样仍引入大量的无效单元,从而造成大量无效积累。论文针对实际应用需要提出一些改进利用随机Hough 变换用于圆检测。
算法实现基本流程如下:
<1>构造边缘点集P,初始化参数单元集Q,循环次数n=0.S为确定真实圆阈值。
<2>按一定规则从P中选取3个点Pi,Pj,Pk,计算确定的圆参数O(a,b,r)。
<3>从Q中找出Oi,满足‖O(a,b,r)-Oi‖≤δ则继续。否则转<2>。
<4>取Pm(m≠i,j,k)计算dm-0,若满足dm-0<δ,则Qi=Qi+1。P=P-{Pm},n=n+1,直至取完满足条件。
{Pm|a+r-t≤xm≤a+r+t,a+r-t≤ym≤a+r+t}的点。
<5>如果计数Qi>S,确认O(a,b,r)为真实圆,否则从Q中去除Qi,转<2>。
<6>判断并检测圆的数目是否符合规定,达到结束程序;否则转<2>。
4.结论
本文利用了行扫描和列扫描的方法对车辆AOI区域进行粗定位,利用特征点定位并进行阈值平均得到车辆高度与车长特征,并通过Hough变换对轮轴图像进行处理,便于进一步的圆特征确定,最后利用特征点坐标比较得出车辆信息,得到了很好的效果,从实验的300张图像得到的结果来看,车辆特征信息确定成功率达到95%以上,但在实际的应用中,车牌图像还要受到很多因素的干扰,因此要进一步提高识别率和识别速度是下一步要研究的内容。
【参考文献】
[1]刘瑞祯,于仕琪.OpenCV教程——基础篇[M].北京航空航天大学出版社,2007.
[2]曾丽华,李超.基于边缘与颜色信息车牌精确定位算法[J].北京航空航天大学学报,2007:33-9,1112-1115.
[3]冈萨雷斯.数字图像处理[M].北京电子工业出版,2007.
[4]孙炎增,张前进.车牌字符识别技术的研究与实现[J].微电子学与计算机,2008:25-6,101-104.
[5]庞茂群,邓开发.一种基于灰度图像的车牌定位方法[J].计算机工程与科学,2009:31-10,39-41.