主页 > 案例大全 > 论文知识案例-居民区车辆与车位匹配系统研究

论文知识案例-居民区车辆与车位匹配系统研究

2021-07-01 10:37:07

论文技巧大全-居民区车辆与车位匹配系统研究

  随着人们生活质量的不断提升,一家一车甚至多车的现象变得越来越普遍,用车出行成为当代人们非常常见的现象。近年来国内外的汽车销售量明显提高,人们私家车数量的飞速增加,随之带来的停车问题也愈加明显。特别是在居民区居住的人们来说,有车位但是被他人车辆占用的现象也经常发生,这样既耽误停车的时间还会影响人们的心情。就居民区而言,车位和住户都是配套的,但是部分住户只买了房子却并没有买车位,这样一来就会出现乱停和错停的现象,会给业主带来很大的不便和困扰。本文就是基于以上问题,提出了对居民区车辆与车位匹配系统研究的想法,尽可能地为小区业主提供一个良好的停车环境,打造和谐的小区生活。

  本文主要设计内容是在车牌识别系统为主的基础上,由收集捕捉图像、处理图像、定位车牌、车牌的字符分割和车牌的识别以及存储数据等步骤组成。首先将收集到的车辆牌照图像进行灰度化处理,然后运用二值化图像处理法,把处理好的图像采用传统的梯度算子边缘检测算法进行车辆牌照的定位。完成车辆牌照定位后采用基本的水平或垂直投影分割算法对车辆牌照字符进行矫正和分割,分割出的字符采用模板匹配法进一步分类处理,将车辆牌照中的汉字、英文和数字等不同的字符进行区别分类处理,最后完成识别车辆牌照信息。事实证明,这种方法提升了车辆牌照识别的便捷性和准确率。得到准确的车牌信息后,匹配系统通过匹配筛选最终确认是否属于该停车位车辆,完成对车位的监管作用,从而提高车位的监管力度。

  总而言之,当下国内外车辆识别系统都在逐步完善,但是居民区车辆与车位匹配系统的研究还是比较缺乏。针对这个问题展开研究,能够逐步解决居民乱停车的问题,创造一个有序良好的居民停车环境。

  1.1研究背景

  改革开放以来我国经济迈向了一个新的台阶,国民的生活质量不断地提高,汽车作为代步工具也在我国迅速普及。然而,在车辆数量大幅增加为人们的生活与工作带来便利的同时同样也带来了许多问题,依靠传统的人工管理方式已不能解决问题,所以需要用新型科技产品来解决日益严重的交通问题和乱停乱放问题。

  随着棚户区改造制度的大力推行,城市化速度的加快促使居民区快速成型[5]。以前的农村小包围圈逐渐向居民区社区化迈进。停放车辆的方式也由传统的停放在自己家中转变为购买车位,但是对自己车位的监管利用目前还存在很多问题。乱停别人车位、不按自家车位停车的问题日益增多,同时给人们带来了很多困扰和麻烦。随着科技的进步,解决问题的方法也逐渐增多。通过智能化技术对车辆牌照进行识别和提取,进一步提高车位的监管力度,完善对居民区的管理,把那些乱停乱放现象扼杀在萌芽中。

  1.2国内外研究现状

  早在二十多年前,一些欧美发达国家就已经开始研究车辆牌照的快速识别。由于资源能力有限,在很长一段时间我国处于一个低速发展状态[6]。但是随着城镇化的快速发展,越来越多居民区的出现导致私家车的数量也越来越多,停车问题也变的日益明显。业主需要在小区内购买车位,但是物业部门对车位的监管力度却十分薄弱,导致车位乱停现象频繁发生,从而产生很多麻烦和问题。当今随着车牌识别系统的不断完善和改进,其在智能化交通管理体系中的应用也日益明显。随着社会的不断发展进步,单一的产品已不能满足人们的日常所需,在这种大形势下可以采用改进后的车牌识别系统来保护自家车位,从而实现私家车位监管到个人的目标。

  随着软硬件技术的不断进步,欧美发达国家的车辆牌照自动识别系统在改善人们的实际生活方面已经发挥了显著的作用。而我国由于准确率和识别速度等原因限制了车辆牌照自动识别系统的发展,导致我国处在初级发展阶段。目前,国内外对车位的保护只是在小区门口设置自动识别车辆系统,从而阻止外来车辆的进入,但是无法解决小区内车位的问题。近年来,国内外对车辆识别系统都有着突飞猛进的进步,但是在车位识别和监管这一块却是一个空白。我们翻阅很多文献和资料,都没有发现车辆识别系统在车位上的应用,所以在这方面有很大的研究内容和空间,将来一定能有很大用途和成果。因此,我们初步尝试采用车辆牌照识别系统来监管个人的车位不受其他车主的扰乱,这其中对车辆牌照识别系统的研究至关重要。

  1.3研究目的和意义

  随着目前和谐社会建设进程的不断加快,家庭用车数量的不断增多,车辆乱停乱放现象还是十分常见。现如今能解决乱停乱放现象的方法就是联系车主,挪车或者进行其他处理,但这种方法既费时费力,并且容易产生一些不和谐的因素。目前,部分小区采用挂牌、标记等方法来提醒和防止乱停现象[7],但效果仍然不是特别乐观,还是有部分车主会投机取巧,占用别人车位。

  要想杜绝和防止这类现象的发生,就应该从根源改变。做到每个私家车位匹配固定的车牌信息,信息匹配则允许停放,如果信息不匹配不允许停放,并且发出警报提醒车主按照规定规范停车。进而做到每车每位每一户,这样就会减少不必要的麻烦和节省停车时间,既能提高了居民的生活质量,同时也杜绝了部分居民乱停乱放的陋习。

  第2章居民区停车位的车辆牌照识别

  首先,针对的是居民区停车位的监管,为了做到一个车位一个固定车辆信息,那就需要对车牌识别系统进行详细研究。车牌识别系统大致分为三个部分。第一就是车辆牌照的定位,其中包括图像采集,图像预处理,车辆牌照边缘检测算法的运行等。通过准确地定位车辆牌照可以获取利用价值高的高清图像。第二就是字符分割环节。把车辆牌照的字符信息(即采集的车牌图片)做特殊图像处理,将多余的背景和无用的信息处理掉,通过投影法完成字符的分割。第三就是字符识别环节,对分割的单个字符进行归一化操作,在与给定的模板做对比,识别字符,得出车辆牌照信息[9]。

  2.1车辆牌照定位

  车辆牌照定位指的是在获取的初级图像中,去除多余部分,从而能准确有效地获取信息图像的一个过程。车辆牌照的定位是车辆牌照系统最基础也是最关键的一步。它的准确率和速率直接影响后续两个步骤的进行,所以如果想提升车辆牌照识别系统的速度和准确率,就要考察车辆牌照定位的完成状况。

  车辆牌照定位的方法有很多,但常见的主要包括:基于字符特征的方法、以纹理特征为重点检测区域的定位方法、参考神经网络特点设计的定位方法、以数学形态学为基础建立的定位方法、通过水平线进行搜寻信息的定位方法、以重点检测车牌边缘信息的定位方法等[8]。本论文采用的是基于水平和垂直投影分布特征算法,与其他算法相比,这个算法在速度和准确度上都得到很大的改进。

  车辆牌照定位算法由粗定位和细定位两部分组成。对初步获取的图像我们称为粗定位,在车辆牌照图像中大致找出车牌区域的位置。然后用改进的Canny边缘检测算法对车辆牌照图像进行处理,通过水平投影法和垂直投影法进一步缩小车牌区域完成细定位,从而得出车辆牌照信息。由最后获得的车辆牌照数据可知,此算法有着准确率高,定位速度快,且易于操作的特点。

  在此首先介绍一下我国的车辆牌照信息规格样式主要有哪些。我国车辆牌照搭配主要以下几种:轿车蓝底白字、货车黄底黑字、新能源汽车绿底白字(我们暂且不讨论机关军区汽车这一类)[11]。国内的这些车牌在分类和牌照大小上存在很多不同的地方。不同的背景颜色、不同的字体颜色将产生不同的组合方式,这些不同的地方都潜在地增加了车辆牌照定位的难度。

  2.1.1车辆牌照粗定位图像预处理

  一般情况下,天气状况和光线的明暗对摄像头的图像采集存在一定程度的影响。而且车牌分为前车牌和后车牌,本文的研究对象以后车牌为例,由于后车牌的安装位置位于光线对比度较差的车体下部,此时若对采集到的图像进行定位会出现不小的麻烦。为了更精确的定位车牌,必须将采集到的原始图像进行灰度转化。

  首先对图像灰度拉伸,使灰度级占据0—255整个区域,这样做的目的是为了减少光线过强,或者偏弱时造成的灰度级过少[14]。下面是我们对图像灰度化的编程展示。(如图2-1所示)

  图2-1图像灰度化编程代码图

  通过灰度转化将原始图像处理成灰度化图像,完成图像的预处理。以下就是原始图像和处理后的图像对比。(如图2-2所示)

  图2-2原始图像对比图

  2.1.2车辆牌照细定位边缘检测及投影法

  Canny算法由1986年提出,它与Robert边缘检测算法有些类似,属于常见的求导算法[1]。Canny算法中所采用的卷积模板比较简单,如下式所示:

  其x、y方向的一阶偏导数矩阵如下:

  由于车牌字符区域为纵向边缘,为了突出车牌字符区域,将式二中x方向的一阶偏导矩阵中相减部分都改为纵坐标相减,y方向的一阶偏导矩阵不做改变:

  通过以上公式,改进的Canny边缘检测法能更好的对横纵边缘进行无差检测,减少横纵边缘带来的干扰,完成在偏导矩阵下横向边缘和纵向边缘的确认。一般车辆牌照字符属于横向延伸,采用原本的算法已不能解决边缘误差问题,导致边缘检测错误率的增高。而改进后的Canny边缘检测法则能完美的克服横纵边缘误差问题,降低错误率,突出边缘化的特征,改进算法,让过程变得更加简单、易懂。

  通过以上算法的研究,我们总结出了更好的编程,以下就是对Canny边缘检测法的编程如图2-3所示

  图2-3 Canny边缘检测代码图

  Canny边缘提取法最大的优点就是能突出边缘区域,同时使原始图像中平滑无关的部分暗淡。车牌部分是由凸出的线条组成,所以是边缘相对集中的区域,在对其边缘检测后,可以看到车牌部分会很明显的突现出来[15]。以下是对原始图像进行边缘检测后的结果。(如下图2-4所示)。

  图2-4边缘检测结果

  完成边缘检测后,就需要再进一步缩小图像面积,得出车辆牌照的具体位置,过滤掉没有信息的图像部分,我们可以采用水平投影法和垂直投影法的方式来完成。

  水平投影法是一种保持纵坐标不变的方法。通常情况下对获取到的车辆牌照图像进行纵坐标方向投影,记录横坐标方向点的位置和个数,然后对边缘检测后的图像进行水平方向的投影,统计白色点的个数。统计公式如下:

  得到水平投影图后,再进行水平投影,寻找大于三分之二最大值的点,记录该点横坐标的最大值和最小值,确定两个点为车牌上下边界点。(如图2-5所示)

  图2-5水平投影定位图

  图2-6水平投影图

  在完成上下边界定位的基础上,再对图像进行垂直投影。

  垂直投影法是一种保持横坐标不变的方法。通常情况下对车辆牌照图像进行横坐标方向投影,记录纵坐标方向点的位置和个数,然后对边缘检测后图像进行垂直方向的投影,统计白色点的个数,统计公式如下:

  得到水平投影图后,再进行垂直投影,寻找大于三分之二最大值的点,记录该点纵坐标的最大值和最小值,确定两个点为车牌左右边界点,完成定位。(如图2-7-9)

  图2-7车牌定位区域

  图2-8定位结果

  图2-9垂直投影图

  2.1.3车辆牌照定位的总结

  车辆牌照定位由两部分组成。第一部分粗定位主要根据获取原始图像进行图像预处理。第二部分细定位则是根据粗定位获取的图像,先运用改进的Canny边缘检测,对图像进行处理,划分出大致的车辆牌照图像区域,最后运用投影法定位出车辆牌照信息区域,留下的区域便于以后步骤的实施,结合以上算法展示流程图(如图2-10所示)。

  图2-10车辆牌照定位的实现

  最后通过粗定位和细定位的相互结合最终确定车辆牌照区域所在,完成车辆牌照定位。

  2.2车辆牌照字符分割

  随着智能交通系统的普遍应用,车辆牌照识别技术己经成为了热门的研究领域。上一章已经定位出车牌的具体位置,接下来将是进行车辆牌照的字符分割。其中字符分割是一个承上启下的关键部分。对于这一关键步骤,我们常用的算法有垂直投影法,水平投影法,聚类分析法,模板匹配法等,但是都存在着一定的不足和漏洞。通过系统地调研和学习,我们拟采用改进后的分形维数投影分割算法。虽然它也存在不足,但是比起以前的分割算法,分形维数投影法分割算法也有改进之处。我们在定位完的车辆牌照图片里进行纹理分析。基于纹理特征的分形维数尺度不变性和纹理特征有不同的分形维数的这一特点,可以作为分类特征来处理。采用原始图像的分形维数并不能完全呈现出图像的纹理特征。因此,为了方便提取纹理特征的分形维数,在后续的操作中可以对图像进行二值化处理。从不同点提取纹理特征,把提取到的纹理特征合并成一个N维的特征向量,再将进行K类均值聚类对比从而得到分割字符结果。车辆牌照字符分割流程。(如下图2-11所示)

  图2-11车辆牌照字符分割流程图

  2.2.1车牌图像的二值化处理

  首先将定位图像进行灰度化处理,然后在处理后的图像上求取分形维数。在选用算法的过程中,要根据算法的快捷程度和准确度来决定,所以根据比较本章我们采用差分盒维数算法求解图像的分形维数[17]。

  取一点设为(i,j),假定该点为中心并且取一个(2w+1)×(2w+1)的窗口,点(i,j)处的分形维数定义为

  在这里我们取w=2的(i,j)点进行完图像灰度化处理。

  根据分形理论可知,灰度化后的图像分形维数应该在2.0-3.0之间。由于还存在一些区域的分形维数小于2,则这些小于2的区域一定是字符信息和车牌背景的交界地带。因此,在本章中我们可以假设一个阈值T。因为误差的存在,将T设置为:

  以下为定位图像二值化的编程,(如图2-12所示)

  图2-12二值化编程

  通过以上运行得到二值化图像,(如下图2-13所示)

  图2-13二值化图像

  2.2.2车牌倾斜校正

  得到二值化图像后,可以发现牌照字符是从左往右依次水平排列,这是理想状态下的处理图像。如果出现车牌放置不正或在采集图像时车身与摄像头不在同一直线上的情况,都会使采集到的车牌信息出现扭曲、倾斜。这样会影响输出结果,因为一个扭曲的字母或数字的识别和一个很正的字母或数字的识别有很大的差异,所以车牌二值化以后需要进行倾斜校正。一般情况下车牌的倾斜校正分两步,首先利用提取直线法找出倾斜角度,然后再利用坐标的换算得出校正图像。

  我们这里运用Hough变换提取直线法找出倾斜角度,它是一种把直线上的点坐标变换成直线系数域,利用共线和直线相交关系,使直线的提取问题转化为计数问题的方法[4]。为了找出倾斜角度,需要在图像中做基准线和水平线。找到之后,以此为边界线参考结合Hough变换提取直线法找出倾斜角度。

  得出倾斜角度后,如果倾斜角度为0,则不需要对图像进行校正,如果倾斜角度不为0,则需要对图像进行校正,即利用坐标的交换,完成图像的旋转,得出车牌校正后的图像结果。根据坐标变化就可以得到倾斜角度的数值,完成车牌倾斜校正。

  2.2.3车牌字符分割

  通过校正得到符合条件的灰度二值化图像。考虑到采用单一传统的静态阈值并不能完美地完成过程,我们还可以将T设为动态阈值。然后采用先验知识和投影法完成字符分割[11]。对于大小为M×N的车牌二值化图像bw(i,j),我们将其定义为以下函数:

  其中,公式(2-13)为bw(i,j)在i行上的水平投影算法,公式(2-14)为bw(i,j)在j列上的垂直投影算法。我们根据反映图像字符白点的信息,可以清晰地看到分布情况,接下来我们将利用水平投影算法和垂直投影算法完成字符的分割。为了清除掉不合格的水平条,我们首先要进行水平投影处理,进而实现车辆牌照的准确定位。清除完不合格的水平条即可降低候选区域的可能性,为后续处理垂直投影奠定良好的基础。通过水平投影处理的办法,我们可大体得到车辆牌照的高度数值。在进行水平投影时,虽然车牌边框处的投影值和曲线在图像区域里的投影值都很大,但是字符区域和车牌边框之间的投影值却很小,这就产生了不同,以便后续的字符分割步骤[16]。此时,我们可以对图像进行水平分割,对比得到的原始图像和初始图像,可以看出采用水平分割后的图像清除了水平边框区域,也减少了其他情况的影响。我们完成水平投影分割后进行垂直投影分割。确定字符的正确位置是垂直投影分割的作用。在对字符图像进行垂直投影时,竖直方向投影的局部极小值一定会存在于字符间或字符内间隙处,因此正确的字符分割位置区间就大致出现在局部极小值的左右。在这个位置附近必须满足车辆牌照的字符尺寸限制、字符书法格式等。首先,我们结合阈值Hight/3寻找垂直投影图的局部极小值,以得到切分字符所需要的左右边界[3]。然后我们利用左右边界求得宽度Width,得出高和宽算出字符块的高宽比,即标准块的比为。最后,通过标准块的比完成字符分割,得出符合要求的分割字符。

  一般车辆牌照为7个字符(拿蓝色牌照为例),以下为字符分割的编程,(如下图2-14所示)

  图2-14字符分割编程图

  通过编程的运算得到完整的字符分割数据,(如下图2-15所示)

  图2-15字符分割结果

  2.3车辆牌照字符识别

  我们已经完成车牌定位和字符分割环节,下一步就是车辆牌照字符识别算法的研究,这一步将直接决定了车辆牌照的识别率。先将分割好的字符信息进行归一化处理,然后在进行字符识别算法,通常车辆牌照识别算法包括模块匹配算法,BP神经系统算法等[10]。字符识别流程图(如下图2-16所示)

  图2-16字符识别流程图

  2.3.1字符归一化

  得到字符分割结果后,发现分割出的字符存在不同的差异,对以后字符识别的准确性和识别率都有影响。为了避免字符不同给系统带来的影响,这里我们把不同的字符进行归一化处理。归一化处理分为字符大小归一和字符笔画粗细归一这两种情况。字符大小归一就是把不同大小的字符进行转变,使之变成同等大小的字符[18]。字符笔画粗细归一就是把不同粗细的字符进行变换,使之变成同等粗细的字符。做到字符归一化既有利于识别繁琐字符又有利于减少相似识别的发生。通过完成归一化处理,得出有利于模块匹配的字符,为字符的识别奠定基础。下面就是字符归一化的编程图,(如下图2-17所示)

  图2-17归一化编程图

  2.3.2模块匹配法识别字符

  模块匹配算法的难点在于选择与提取特殊的信息值。目前国内的车辆牌照信息都是按照规定的样式来排版,通常情况下第1个字符信息是汉字,其实就是我们所熟知的省份简写,而第2个字符信息则是由大写英文字母来组成,一般情况下不同的大写字母代表不同的区,到后面的5个字符信息的时候,则是由除“o”以外的英文字母的组合和阿拉伯数字0-9组成[19]。根据以上这个特征分析,我们把模块库分成数字字库、汉字字库以及英文字母字库三个模块字库。由于拍摄角度和图片扭曲程度不同等原因,我们通常采用的字符归一化,这会出现多种形状和笔画位置的错误。因此,在识别字符的时候,假如采用单一的模块,会出现部分字符扭曲和模块标准不能进行准确匹配等现象,从而影响最后的识别结果。为了应对以上可能会出现的问题,需要配置多个标准模块来进行校对和识别,这些标准模块要最大程度地校正普通的变形情况。虽然选用了多个标准模块来避免发生更多的不同情况,但是也会带来弊端,那就是使得算法复杂化。识别的准确率和速度取决于选用模块的多少和简易的公式来实现。

  模块算法式一:

  式中,g为固定的车辆牌照二值化图像,f为模块二值化图像,而且大小一致的两幅图像均为M×N,为与运算,Tg和Tf分别为代表二值化图像中值为1的像素个数。输入编程代码(如下图2-18所示)

  图2-18模块匹配编程图

  由于多模块匹配有利于避免出现特殊情况的发生,所以多模块匹配比单一模块可靠性更高一些,但是还是会出现很多的不正确识别。容易出现错误识别的主要原因在于结构相似,比如L和Z,0和O等,像这样的字符就极容易出现错误识别。根据上面出现的错误,需要把这些相似的字符拿出来继续进行分析和特征提取,然后再进行最后的识别过程,这种算法主要是为容易混淆出错的字符而编辑的。字母L和数字1的主要不同的地方是在右半部分,我们可以采用只匹配右半部分来放大局部的不同来实现识别过程。就这些容易出现错误识别的字符而言,专门为它们建立一个属于它们的局部模块库,这个模块库要以容易错误识别的字符为一组创建。例如,字母G和6以右半部分为特点,字母Z和数字7以下半边为特点建立标准模块库。

  进行字符识别输出结果(如下图2-19所示)

  图2-19识别结果

  2.4小结

  本章主要研究了车牌定位、字符分割和字符识别这三大板块,分别介绍了实现流程和算法研究。首先是对车牌定位的研究,车牌定位分为粗定位和细定位,粗定位是将摄像头获取到图像进行图像的预处理,使图像灰度化。细定位是将灰度化的图像进行Canny边缘检测和投影来进一步缩小定位面积,得到更为准确的车牌区域。完成车牌定位后,利用二值化法对车牌区域图像进行处理。对二值化图像进行校正,再利用投影法分割字符。得出分割字符后进行归一化处理,然后再和模块库里的字符图像进行筛选匹配,完成字符识别。

  车牌识别系统主要包括以下部分。(如图2-20所示)

  图2-20车牌识别系统

  第3章车牌号码与系统内该车位所录入号码比对

  在整个匹配系统中,我们已经完成了车牌识别的步骤。在得出车辆牌照信息后,接下来就是建立数据库,对固定车位的信息进行输入,然后再对识别的车辆信息进行比对,完成最后的匹配功能。

  号码匹配分以下几步,(如图3-1所示)

  图3-1车牌匹配流程图

  3.1建立数据库

  通过以上操作识别出车辆牌照信息,然后把信息输入数据库进行匹配。我们需要建立一个数据库,把车辆与车位相匹配的信息进行采集。

  首先,我们设计居民区车辆与车位匹配系统,然后研究开发数据库框架,确认数据库系统中各对象以及相应各对象之间的呼应关系,最后采用数据库系统实体化关系图完成数据库的设计。

  如果车辆进入停车位区域,那么首先是采集信息的过程,在此以后便是对车辆信息进行提取,同时对提取出来的粗信息进行进一步识别,然后将识别出的信息传送到数据中心。再将信息与数据库里的信息进行筛选匹配。如果筛选没有错误,即允许该车辆停放。但是如果车辆信息不符合数据库匹配信息,则匹配系统会发出提醒警报。

  居民区车辆与车位匹配系统中的重要关系是由居民区业主和车位两部分组成。其中车位是对居民区业主而言的,居民区业主可以一对一或者一对多的关系,但是车位与车辆需要是一对一的关系[2]。居民区业主可以对应多个车位,但是车位必须只能对应相应的车辆,进而停车位的监管力度就会大幅度提高,匹配系统的准确性也会相应增高。

  如果使用准确率高、规范化的数据库表来设计系统,那么在进行实际生活的操作时只需要采用简易的编辑就可以轻松处理。相反,如果未正确规范化数据库表设计,通常需要利用编程或查询来更改多条记录或多个表,其不仅会大幅增加设计编程的工作量,还会增加因未能正确执行代码或查询而导致数据库应用引起的实际数据不一致的可能性。为此,本节将完成居民区车辆与车位匹配系统中主要数据库表设计。

  3.2号码匹配

  将进入停车位中车辆分为两类:不可能车辆与可能车辆,其中可能车辆是进入了停车位属于该停车位的车辆;不可能车辆是进入停车位不属于该停车位车辆。通过停入车辆信息的比对做出不同的指令。

  基于前期对车牌信息的采集和比对,通过信息匹配从而得出车辆是否属于这个车位,得出的结果做出相应的三种结果的出现:可能车辆,安全停车,一路顺风。对于不可能车辆,首先是警报提醒。对于违停车辆,直接语音提醒。

  最终通过数据库筛选和匹配明确车辆与车位是否匹配,完成对车位的监管。

  当车辆停放到车位时,会出现两种情况,第一种情况正确停放。(如下图3-2所示)