[发明专利]道路监控系统中车牌边框的自动识别方法有效
申请号: | 201310671424.6 | 申请日: | 2013-12-11 |
公开(公告)号: | CN103729619A | 公开(公告)日: | 2014-04-16 |
发明(设计)人: | 王明佳;武治国;王宇庆 | 申请(专利权)人: | 中国科学院长春光学精密机械与物理研究所 |
主分类号: | G06K9/00 | 分类号: | G06K9/00;G06K9/48 |
代理公司: | 长春菁华专利商标代理事务所 22210 | 代理人: | 田春梅 |
地址: | 130033 吉*** | 国省代码: | 吉林;22 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 道路 监控 系统 车牌 边框 自动识别 方法 | ||
1.道路监控系统中车牌边框的自动识别方法,其特征在于,该方法包括如下步骤:
第一步、对道路监控系统所拍摄到的分辨率为768×576像素的原始图像进行边缘提取,获得二值图像E,二值图像E中灰度值为1的点表示边缘点,灰度值为0的点表示非边缘点,以二值图像E的左上角为原点,建立x轴水平向右、y轴竖直向下的像素平面直角坐标系;
第二步、获得包含疑似水平边框线段的直线集合U1,其具体包括如下子步骤:
步骤2.1:定义等腰三角形的识别区和水平方向上的两条扫描路径:
定义水平等腰三角形的识别区,该等腰三角形的顶角为30度且朝向x轴正方向,等腰三角形的底边所在的直线垂直于x轴上的像素点(729,0);等腰三角形的中线与x轴平行;该等腰三角形内还包含58条斜线段,所述58条斜线段均以等腰三角形的顶角为起点,底边为终点,并位于步骤一所述坐标系范围以内;该等腰三角形内包括两条腰线和一条中线在内的共计61条线段中,任意相邻的两条之间的夹角均为0.5度;
选取以像素点a1(40,40)为起点并以像素点a728(729,40)为终点的线段a,并选取以像素点(40,537)为起点并以像素点(729,537)为终点的线段b作为两条水平方向上的扫描路径;线段a与线段b的长度均为690个像素点,且二者均与x轴平行;
步骤2.2:等腰三角形的识别区顶角沿水平线段a的扫描识别过程,其具体包括如下子步骤:
步骤2.2.1:将水平等腰三角形的识别区的顶角与线段a的上的某一给定像素点重合,并用当前给定像素点的横坐标值更新数组、斜线段和斜线段对应的直线方程;其具体做法为:
使步骤2.1所述水平等腰三角形的识别区的顶角与线段a上的某一给定像素点重合,将此时水平等腰三角形的识别区的顶角所在位置的序号定义为an,其中n=x-39,式中x为当前顶角所在给定像素点的横坐标值;
当水平等腰三角形的识别区的顶角所在位置的序号是an时,定义该等腰三角形内的各条斜线段的序号为Fan-k(k顺次取01、02、03……61);将斜线段Fan-01上的每一个像素点的坐标值均存入线段数组data[an-01]中,用同样的方法,将其它每一条斜线段an-k上的每一个像素点的坐标值均存入与该线段序号Fan-k对应的线段数组data[an-k](k顺次取01、02、03……61)中;
步骤2.2.2:完成识别区顶角在水平线段a上的当前给定坐标点时,对识别区内的每一条斜线段中是否有疑似车牌边框线段的判断识别和筛选;其具体包括如下子步骤:
步骤2.2.2.1:水平等腰三角形的识别区的顶角在线段a的起点a1(40,40)时,选择当前识别区内的一条斜线段Fa1-01;
步骤2.2.2.2:判断步骤2.2.1所取得的、与斜线段Fan-k相对应的线段数组data[an-k]中,由每40个连续像素点所组成的一小段线段上,是否至少有36个步骤一所述的边缘点,若有,则该斜线段上含有疑似车牌边框线段,进入步骤2.2.2.3;若没有,则进入步骤2.2.2.4;
步骤2.2.2.3:将当前斜线段Fan-k在像素坐标系下对应的直线方程Lan-k存入数组U1,完成对当前斜线段Fan-k上疑似边框的识别筛选,并进入步骤2.2.2.4;
步骤2.2.2.4:判断当前线段数组data[an-k](k顺次取01、02、03……61)中,k是否为61,若k≠61,则进入步骤2.2.2.5;若k=61,则进入步骤2.2.3;
步骤2.2.2.5:令k=k+1(k顺次取01、02、03……61),更新步骤2.2.2.2所述斜线段Fan-k以及与其相对应的线段数组data[an-k]的序号,重新执行步骤2.2.2.2至步骤2.2.2.4;
步骤2.2.3:使水平等腰三角形的识别区的顶角从线段a的起点a1(40,40)向x轴正方向顺次水平移动一个像素单位,每次顶角移动一个新的位置后,均更新步骤2.2.2.1所述水平等腰三角形的识别区的顶角an,并重复执行步骤2.2.2,直至水平等腰三角形的识别区的顶角移动至线段a的终点a729(729,40)时,将an更新为a690,然后进入步骤2.3;
步骤2.3:将等腰三角形的识别区顶角由步骤2.1所述的线段a的终点a729(729,40)更换至线段b的起点(40,537),并按照与步骤2.2同样的方法完成等腰三角形的识别区顶角沿水平线段b的扫描识别过程,其具体包括如下子步骤:
步骤2.3.1:将水平等腰三角形的识别区的顶角与线段b的上的某一给定像素点重合,并用当前给定像素点的横坐标值更新数组、斜线段和斜线段对应的直线方程;其具体做法为:
使步骤2.1所述水平等腰三角形的识别区的顶角与线段b上的某一给定像素点重合,将此时水平等腰三角形的识别区的顶角所在位置的序号定义为bn,其中n=x-39,式中x为当前顶角所在给定像素点的横坐标值;
当水平等腰三角形的识别区的顶角所在位置的序号是bn时,定义该等腰三角形内的各条斜线段的序号为Fbn-k(k顺次取01、02、03……61);将斜线段Fbn-01上的每一个像素点的坐标值均存入线段数组data[bn-01]中,用同样的方法,将其它每一条斜线段bn-k上的每一个像素点的坐标值均存入与该线段序号Fbn-k对应的线段数组data[bn-k](k顺次取01、02、03……61)中;
步骤2.3.2:完成识别区顶角在水平线段b上的当前给定坐标点时,对识别区内的每一条斜线段中是否有疑似车牌边框线段的判断识别和筛选;其具体包括如下子步骤:
步骤2.3.2.1:水平等腰三角形的识别区的顶角在线段b的起点b1(40,40)时,选择当前识别区内的一条斜线段Fb1-01;
步骤2.3.2.2:判断步骤2.3.1所取得的、与斜线段Fbn-k相对应的线段数组data[bn-k]中,由每40个连续像素点所组成的一小段线段上,是否至少有36个步骤一所述的边缘点,若有,则该斜线段上含有疑似车牌边框线段,进入步骤2.3.2.3;若没有,则进入步骤2.3.2.4;
步骤2.3.2.3:将当前斜线段Fbn-k在像素坐标系下对应的直线方程Lbn-k存入数组U1,完成对当前斜线段Fbn-k上疑似边框的识别筛选,并进入步骤2.3.2.4;
步骤2.3.2.4:判断当前段数组data[bn-k](k顺次取01、02、03……61)中,k是否为61,若k≠61,则进入步骤2.3.2.5;若k=61,则进入步骤2.3.3;
步骤2.3.2.5:令k=k+1(k顺次取01、02、03……61),更新步骤2.3.2.2所述斜线段Fbn-k以及与其相对应的线段数组data[bn-k]的序号,重新执行步骤2.3.2.2至步骤2.3.2.4;
步骤2.3.3:使水平等腰三角形的识别区的顶角从线段b的起点b1(40,537)向x轴正方向顺次水平移动一个像素单位,每次顶角移动一个新的位置后,均更新步骤2.3.2.1所述水平等腰三角形的识别区的顶角bn,并重复执行步骤2.3.2,直至水平等腰三角形的识别区的顶角移动至线段b的终点b729(729,40)时,将bn更新为b690,完成等腰三角形的识别区顶角沿水平线段b的扫描识别过程,然后进入步骤三;
步骤三、获得包含疑似竖直边框线段的直线集合U2,其具体包括如下子步骤:步骤3.1:定义等腰三角形的识别区和竖直方向上的两条扫描路径:
定义竖直等腰三角形的识别区,该等腰三角形的顶角为30度且朝向y轴正方向,等腰三角形的底边所在的直线垂直于y轴上的像素点(0,537);等腰三角形的中线与y轴平行;该等腰三角形内还包含58条斜线段,所述58条斜线段均以等腰三角形的顶角为起点,底边为终点,并位于步骤一所述坐标系范围以内;该等腰三角形内包括两条腰线和一条中线在内的共计61条线段中,任意相邻的两条之间的夹角均为0.5度;
选取以像素点(40,40)为起点并以像素点(40,537)为终点的线段c,并选取以像素点(729,40)为起点并以像素点(729,537)为终点的线段d作为两条竖直方向上的扫描路径;线段c与线段d的长度均为498个像素点,且二者均与y轴平行;
步骤3.2:等腰三角形的识别区顶角沿竖直线段c的扫描识别过程,其具体包括如下子步骤:
步骤3.2.1:将竖直等腰三角形的识别区的顶角与线段c的上的某一给定像素点重合,并用当前给定像素点的横坐标值更新数组、斜线段和斜线段对应的直线方程;其具体做法为:
使步骤3.1所述竖直等腰三角形的识别区的顶角与线段c上的某一给定像素点重合,将此时竖直等腰三角形的识别区的顶角所在位置的序号定义为cn,其中n=y-39,式中y为当前顶角所在给定像素点的纵坐标值;
当竖直等腰三角形的识别区的顶角所在位置的序号是cn时,定义该等腰三角形内的各条斜线段的序号为Fcn-k(k顺次取01、02、03……61);将斜线段Fcn-01上的每一个像素点的坐标值均存入线段数组data[cn-01]中,用同样的方法,将其它每一条斜线段cn-k上的每一个像素点的坐标值均存入与该线段序号Fcn-k对应的线段数组data[cn-k](k顺次取01、02、03……61)中;
步骤3.2.2:完成识别区顶角在竖直线段c上的当前给定坐标点时,对识别区内的每一条斜线段中是否有疑似车牌边框线段的判断识别和筛选;其具体包括如下子步骤:
步骤3.2.2.1:竖直等腰三角形的识别区的顶角在线段c的起点c1(40,40)时,选择当前识别区内的一条斜线段Fc1-01;
步骤3.2.2.2:判断步骤3.2.1所取得的、与斜线段Fcn-k相对应的线段数组data[cn-k]中,由每40个连续像素点所组成的一小段线段上,是否至少有36个步骤一所述的边缘点,若有,则该斜线段上含有疑似车牌边框线段,进入步骤3.2.2.3;若没有,则进入步骤3.2.2.4;
步骤3.2.2.3:将当前斜线段Fcn-k在像素坐标系下对应的直线方程Lcn-k存入数组U2,完成对当前斜线段Fcn-k上疑似边框的识别筛选,并进入步骤3.2.2.4;
步骤3.2.2.4:判断当前线段数组data[cn-k](k顺次取01、02、03……61)中,k是否为61,若k≠61,则进入步骤3.2.2.5;若k=61,则进入步骤3.2.3;
步骤3.2.2.5:令k=k+1(k顺次取01、02、03……61),更新步骤3.2.2.2所述斜线段Fcn-k以及与其相对应的线段数组data[cn-k]的序号,重新执行步骤3.2.2.2至步骤3.2.2.4;
步骤3.2.3:使竖直等腰三角形的识别区的顶角从线段c的起点c1(40,40)向y轴正方向顺次竖直移动一个像素单位,每次顶角移动一个新的位置后,均更新步骤3.2.2.1所述竖直等腰三角形的识别区的顶角cn,并重复执行步骤3.2.2,直至竖直等腰三角形的识别区的顶角移动至线段c的终点c498(40,537)时,将cn更新为c498,然后进入步骤3.3;
步骤3.3:将等腰三角形的识别区顶角由步骤3.1所述的线段c的终点c498(40,537)更换至线段d的起点(729,40),并按照与步骤3.2同样的方法完成等腰三角形的识别区顶角沿竖直线段d的扫描识别过程,其具体包括如下子步骤:
步骤3.3.1:将竖直等腰三角形的识别区的顶角与线段d的上的某一给定像素点重合,并用当前给定像素点的纵坐标值更新数组、斜线段和斜线段对应的直线方程;其具体做法为:
使步骤3.1所述竖直等腰三角形的识别区的顶角与线段d上的某一给定像素点重合,将此时竖直等腰三角形的识别区的顶角所在位置的序号定义为dn,其中n=y-39,式中y为当前顶角所在给定像素点的纵坐标值;
当竖直等腰三角形的识别区的顶角所在位置的序号是dn时,定义该等腰三角形内的各条斜线段的序号为Fdn-k(k顺次取01、02、03……61);将斜线段Fdn-01上的每一个像素点的坐标值均存入线段数组data[dn-01]中,用同样的方法,将其它每一条斜线段dn-k上的每一个像素点的坐标值均存入与该线段序号Fdn-k对应的线段数组data[dn-k](k顺次取01、02、03……61)中;
步骤3.3.2:完成识别区顶角在竖直线段d上的当前给定坐标点时,对识别区内的每一条斜线段中是否有疑似车牌边框线段的判断识别和筛选;其具体包括如下子步骤:
步骤3.3.2.1:竖直等腰三角形的识别区的顶角在线段d的起点d1(729,40)时,选择当前识别区内的一条斜线段Fd1-01;
步骤3.3.2.2:判断步骤3.3.1所取得的、与斜线段Fdn-k相对应的线段数组data[dn-k]中,由每40个连续像素点所组成的一小段线段上,是否至少有36个步骤一所述的边缘点,若有,则该斜线段上含有疑似车牌边框线段,进入步骤3.3.2.3;若没有,则进入步骤3.3.2.4;
步骤3.3.2.3:将当前斜线段Fdn-k在像素坐标系下对应的直线方程Ldn-k存入数组U2,完成对当前斜线段Fdn-k上疑似边框的识别筛选,并进入步骤3.3.2.4;
步骤3.3.2.4:判断当前段数组data[dn-k](k顺次取01、02、03……61)中,k是否为61,若k≠61,则进入步骤3.3.2.5;若k=61,则进入步骤3.3.3;
步骤3.3.2.5:令k=k+1(k顺次取01、02、03……61),更新步骤3.3.2.2所述斜线段Fdn-k以及与其相对应的线段数组data[dn-k]的序号,重新执行步骤3.3.2.2至步骤3.3.2.4;
步骤3.3.3:使竖直等腰三角形的识别区的顶角从线段d的起点d1(729,40)向y轴正方向顺次竖直移动一个像素单位,每次顶角移动一个新的位置后,均更新步骤3.3.2.1所述竖直等腰三角形的识别区的顶角dn,并重复执行步骤3.3.2,直至竖直等腰三角形的识别区的顶角移动至线段d的终点d498(729,537)时,将dn更新为d498,完成等腰三角形的识别区顶角沿竖直线段d的扫描识别过程,然后进入步骤四;
步骤四:分别读取步骤二所述直线集合U1和步骤三所述直线集合U2,并判断逻辑式U1&U2的结果,若其结果为真,则进入步骤五,若其结果为假,则直接终止本方法的识别过程;
步骤五:根据两条相交直线的斜率乘积结果,判断其二者是否符合彼此垂直的条件,从U1中筛选保留能与U2中两条直线同时垂直的直线,将符合条件的直线存入集合U3,然后进入步骤六;
步骤六:根据两条相交直线的斜率乘积结果,判断其二者是否符合彼此垂直的条件,从U2中筛选保留能与U3中两条直线同时垂直的直线,将符合条件的直线存入集合U4,然后进入步骤七;
步骤七:根据两条相交直线的斜率乘积结果,判断其二者是否符合彼此垂直的条件,判断集合U4中是否有两条直线能同时与U3中的两条直线垂直,然后进入步骤八;
步骤八:由步骤七分别获得矩形四条边线的直线方程,该矩形的四条边线即为车牌在照片中的疑似边界线。
2.根据权利要求1所述的道路监控系统中车牌边框的自动识别方法,其特征在于,步骤五或步骤六或步骤七中所述的根据两条相交直线的斜率乘积结果,判断其二者是否符合彼此垂直的条件的判断标准为:
将任意两条直线方程分别记做:直线1:y1=k1x+b1;直线2:y2=k2x+b2;则可得到判断式:E=k1×k2;
若E的结果数值在区间[-1.05,-0.95]内,则认为两直线彼此垂直。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院长春光学精密机械与物理研究所,未经中国科学院长春光学精密机械与物理研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310671424.6/1.html,转载请声明来源钻瓜专利网。