发明名称 一种基于容错率和纹理特征的车牌定位方法
摘要 本发明公开了一种基于容错率和纹理特征的车牌定位方法,属于图像处理技术领域,整体步骤如下:首先对图像进行预处理,利用受限自适应边缘直方图结合图像亮度均值得到边缘纹理图像;然后依据车牌的纹理特征并按车牌行特征提取算法对图像进行扫描,得到车牌行线段簇集;再对车牌行线段按设计的定位算法原理进行归并,在遍历扫描归并过程中通过融合容错率方法定位出车牌的所有可能区域;最后构造了纹理密度函数来精定位左右边缘、去除伪车牌。本发明通过在车牌定位算法中融合容错率,能有效提高在污染、磨损、对比度差等多种复杂情况下车牌的定位率;通过构建密度函数,在精定位车牌左右边界的同时还去掉了大部分伪车牌,降低了耗时和误捡率。
申请公布号 CN106295642A 申请公布日期 2017.01.04
申请号 CN201610651988.7 申请日期 2016.08.11
申请人 中防通用河北电信技术有限公司 发明人 刘黎明;魏为
分类号 G06K9/32(2006.01)I;G06K9/46(2006.01)I 主分类号 G06K9/32(2006.01)I
代理机构 代理人
主权项 一种基于容错率和纹理特征的车牌定位方法,其特征在于:所述方法的具体步骤如下:A、图像预处理:对抓拍的图像进行图像预处理,得到图像亮度均值;B、求取边缘纹理图像:通过设计一种受限自适应直方图,得到垂直边缘纹理图,其特征为:(i)、利用公式Ⅰ得到垂直边缘图像,其中,<img file="dest_path_image001.GIF" wi="50" he="25" />为边缘图像矩阵;<img file="dest_path_image002.GIF" wi="51" he="24" />为灰度图像矩阵;<img file="dest_path_image003.GIF" wi="247" he="27" />公式Ⅰ(ii)、对垂直边缘图像做增强处理,然后结合图像的亮度,设置自适应阈值过滤边缘强度较小的边缘点;通过一个尺寸为<img file="dest_path_image004.GIF" wi="43" he="18" />窗口选取边缘图像矩阵中每行的连续边缘点平均强度最大的窗口中心点作为边缘点;(iii)、利用受限边缘直方图得到其灰度图像;为了突出车牌字符的边缘,抑制或者减少非车牌边缘对车牌定位的影响,利用公式Ⅱ求得边缘直方图的均值,并判断图像是否为低对比度;其中:<img file="dest_path_image005.GIF" wi="66" he="22" />为边缘灰度直方图、<img file="dest_path_image006.GIF" wi="42" he="18" />为图像亮度均值;通过判断是否为低对比度图像分别利用公式Ⅲ求得对比度低的锐化阈值,利用公式IV得到正常对比度图像的锐化阈值;利用thre通过灰度边缘直方图锐化求得纹理图像;<img file="dest_path_image007.GIF" wi="436" he="82" />公式Ⅱ<img file="dest_path_image009.GIF" wi="545" he="65" />公式Ⅲ<img file="dest_path_image010.GIF" wi="502" he="139" />公式ⅣC、提取车牌行特征,得到车牌行簇集:根据实际图片中的最大车牌的尺寸设计字符间距的最大阈值和车牌行长度的最小最大阈值,得到车牌行簇集,其特征为:(i)、根据字符间距设置最大宽阈值、最小被检测车牌宽阈值、最大车牌宽阈值,三者分别表示为<img file="dest_path_image012.GIF" wi="260" he="18" />;(ii)、遍历纹理图片,根据公式Ⅴ得到符合车牌特征得到车牌行线段;<img file="dest_path_image014.GIF" wi="451" he="100" />公式Ⅴ其中<img file="dest_path_image016.GIF" wi="8" he="17" />是图像矩阵中的行号;<img file="dest_path_image017.GIF" wi="59" he="22" />中n为第i行中的第n根车牌行线段;<img file="dest_path_image018.GIF" wi="166" he="22" />中该线段的首尾点的位置及其距离;<img file="dest_path_image019.GIF" wi="157" he="25" />分别为线段起始端、结束端位置;根据上述步骤中的阈值对每行的边缘点进行限定,当边缘点间距小于<img file="dest_path_image021.GIF" wi="76" he="17" />时,记录为该行的起始点;当间距大于<img file="dest_path_image022.GIF" wi="83" he="17" />时,记录为该行的第一个结束点,并判断该线段大小是否大于最小检测的车牌宽<img file="dest_path_image023.GIF" wi="87" he="17" />,且小于最大检测的车牌宽<img file="dest_path_image024.GIF" wi="89" he="19" />;如满足则记录为该行的第一个车牌行<img file="dest_path_image025.GIF" wi="85" he="22" />,并记录各边缘点的位置,否则不记录;重复本步骤直至图片遍历完;D、车牌定位:利用垂直边缘图像、相关阈值,以及容错率方案,对边缘图像进行车牌定位,其特征为:(i)、得到车牌区域:根据车牌行集中的原则,利用上述步骤中设置的阈值,按公式Ⅵ、公式Ⅶ对边缘图像中的车牌行进行归属判断:<img file="dest_path_image027.GIF" wi="547" he="119" />其中,<img file="dest_path_image028.GIF" wi="191" he="23" />为某一车牌区域所有线段的位置均值;先从图像的第一行进行扫描,如果检测到车牌行线段尺寸满足大于<img file="dest_path_image029.GIF" wi="227" he="24" />,则把该线段归入到车牌区域的第一个车牌行线段,记为<img file="dest_path_image030.GIF" wi="178" he="20" />;如果同一行中还有类似的车牌行线段,则新增一个区域,并把它作为第一个车牌行线段,记为<img file="dest_path_image031.GIF" wi="172" he="21" />,如此一直到行尾;紧接着扫描图像第<img file="dest_path_image033.GIF" wi="13" he="14" />行,如果检测到了车牌行,则求得该车牌行的两端与前面已得到的所有车牌区域中对应的所有车牌行的两端位置坐标均值的欧式距离值,得到距离集<img file="dest_path_image034.GIF" wi="47" he="21" />;从该欧式距离值集中取最小值,如果该最小距离中左右两端的距离均满足小于<img file="dest_path_image035.GIF" wi="87" he="19" />预设条件,则该行并入到与最小距离值对应的那个区域<img file="dest_path_image036.GIF" wi="368" he="23" />中;否则把该车牌行作为一个新的区域的第一行,重复检测车牌行线段到行尾;(ii)、按上述步骤逐行扫描,一直到图像结束,形成多个车牌区域;为提高复杂环境下车牌的定位率,构造基于连续非零车牌行容错率th1,其最大容错率表示为<img file="dest_path_image037.GIF" wi="67" he="20" />;总非车牌线段行的容错率th2,其最大容错率表示为<img file="dest_path_image038.GIF" wi="66" he="19" />,并将它们融合在定位算法中;在步骤D(i)中,将新检测到的行标记与之前所有检测到的区域中的最后一行做比较;若其差值大于maxTh1,则该车牌行线段不参与欧式距离计算;若新检测到的行标记与距离值集中的最小欧式距离值所在区域内最后一行的行标记之差大于1而小于maxTh1,则把该车牌线段所在行标记与该区域最后一行的行标记之差累积到所属区域的连续非车牌行线段容错率th1上;当该差值大于maxTh1时,新建一个区域,把该车牌行线段的两端点计入到新的区域中,否则判断总非车牌线段行的容错率th2是否大于阈值maxTh2,小于则并入到最小欧式距离值所在的那个区域,同时该差值累积到总非车牌线段行的容错率th2上;(iii)、对车牌区域中的伪车牌进行初步排除:设置车牌行数最小阈值、宽高比置信度区间来初步排除伪车牌;宽高比置信度区间指的是车牌宽高比应基本满足交通部制定的长宽比比例,设置一个最大值、最小值作为车牌置信度区域,不在该置信度区间内的区域将被删除;E、车牌精定位:通过设计两种基于灰度边缘的自适应密度函数对定位出来的车牌进行去伪存真,并精定位车牌左右边缘,其特征为:(i)、获得灰度密度函数:首先在灰度图像中利用定位得到的车牌区域把车牌截取出来,利用公式Ⅷ对该边缘车牌图像e(i,j)进行积分,得到密度函数den(x);<img file="dest_path_image039.GIF" wi="297" he="68" />公式Ⅷ其中,<img file="dest_path_image041.GIF" wi="13" he="14" />是一个1<sub>* </sub>n的窗口;取窗口内的数据样本的累加值作为离散点的密度幅值 den(x),其中n 为车牌区域高 h 乘以一权值系数w(w<1),此窗口大小的设置应使累加区间的长度尽量与车牌字符之间的水平像素个数长度一致;(ii)、对密度函数 den(x) 求一阶导数,得到函数 der(x);然后对该导数函数的离散值求其绝对值均值 aveDer;用 der(x) 中的各个绝对值从左到右与 aveDer比较,若小于aveDer 则用数组 array 记录该点的位置,如公式Ⅸ、Ⅹ、Ⅺ所示;<img file="dest_path_image043.GIF" wi="553" he="139" /><img file="dest_path_image045.GIF" wi="550" he="76" />取出 array 数组元素,以相邻元素之间的距离作为区间,求得密度函数曲线的最大最小值及其相应位置的数组maxArray、minArray,进而求得最大最小值的均值 aveMax、aveMin;根据车牌字符的排列规则,密度函数中字符区域的密度值与字符之间的密度值有较大的落差,如果 aveMax 与 aveMin 的比值小于某一值,则判断为伪车牌,算法转至步骤(i),继续对下一个车牌进行真伪判别,否则转至下一步骤;(iii)、结合最大最小值数组 maxArray、minArray中的位置坐标,求出峰峰值、谷谷值之间的距离度量数组 array1,取其均值 aveArray1 作为字符宽度阈值;然后判断array1第一个数的大小是否小于0.5* aveArray1或者大于2* aveArray1,满足该条件则判断 maxArray 中第一个数值是否小于 aveMin 或者大于aveMax,若满足则车牌区域的左边界向右移动至 minArray 或者 maxArray 的第二个值的位置,同时数组 array1、maxArray、minArray 删除第一个字符,否则保留,如此得到了车牌的左边界;以此类推,对 array1 中的尾字符判断可得车牌区域的右边界;(iv)、对上述步骤得到的结果进行分析,如果 array1 中的个数小于四或者大于某一值,则该车牌是伪车牌,应该去掉;至此,车牌定位完成。
地址 076150 河北省张家口市怀安县柴沟堡镇新区工业园区