本发明属于车辆车牌自动识别技术领域,特别涉及一种基于深度学习网络mask-rcnn与hyperlpr的车牌识别方法及系统。
背景技术:
随着经济社会的高速发展,机动车辆的数目也在不断增加。由于车辆在道路行驶过程中,车牌是车辆拥有者信息的唯一有效的标志,实现准确高效地提取车牌信息,能够极大的缓解日益严峻的交通压力,对规范道路交通有着重要的意义。对车牌的识别过程主要分为检测车牌图像,将车牌图像切割出来并对车牌图像中的字符进行识别三个步骤。
常用的车牌定位主要有通过车牌的边界信息、车牌的颜色和字符特征找到图像中车牌的位置,然后使用相应的方法进行车牌识别。早期车牌识别过程分为两个部分进行,首先将车牌检测并分割出来,其次对分割出来的图片上的字符进行逐一识别。由于车牌的检测和车牌的识别具有相当大的关联度,在车牌检测阶段获得比较精准的定位可以提升车牌的字符识别精度,反之则会降低车牌字符的识别精度。随着深度学习近几年的飞速发展,它逐渐应用于各个领域,在车牌识别领域的使用也逐渐成为一种趋势。但大多数用的方法也需要对车牌图片使用精细的算法进行切割,将各个车牌字符分开;对各个切割好的字符图片进行特征提取,最终完成车牌识别工作。通过现有车牌模型对车牌图片进行分割需要很精细的算法,对模糊的车牌图片分割效果较差,容易造成无法识别的情况。
技术实现要素:
本发明旨在解决以上现有技术需要进行字符分割的问题,本发明要解决的问题是提供一种方法使车牌定位和识别不再需要字符分割,减少车牌识别过程,有利于对较模糊的车牌的识别的基于mask-rcnn与hyperlpr的车牌识别方法、系统。本发明的技术方案如下:
一种基于mask-rcnn与hyperlpr的车牌识别方法,其包括以下步骤:
步骤1、利用车牌边缘和车牌颜色以及形态学的方法,预处理含有汽车的图片,得到对车牌初步定位,并进行倾斜矫正;
步骤2、构建带车牌标注的车辆数据集,并利用改进的目标实例分割框架mask-rcnn模型进行训练,改进的目标实例分割框架mask-rcnn是在faster-rcnn的框架基础上多了一个区域特征聚集方式roialigin以及一个掩膜mask预测分支,掩膜mask预测分支是应用到每一个感兴趣区域roi上的一个小的完全卷积网络fpn用于对已经获取的车牌图片的二次定位;
步骤3、利用改进的使用深度学习针对中文车牌识别的实现方法hyperlpr的自动分割卷积模型segmenationfree-inception,根据车牌颜色、字符的单一性更改损失函数为二分类函数sigmoid对已经二次定位的车牌图片进行识别,识别出车牌号。
进一步的,所述步骤1、利用车牌边缘和车牌颜色以及形态学的方法,预处理含有汽车的图片,得到对车牌初步定位,并进行倾斜矫正,具体包括以下步骤:
步骤s1-1,输入图片,对图片利用高斯模糊进行去噪处理;
步骤s1-2,通过canny边缘检测方法以及形态学分析检测出车牌边缘,并让图像边缘成为一个整体;
步骤s1-3,依据车牌宽和高的比例是固定的这个几何特征进行筛选,然后将得到的车牌框选出来,对倾斜的矩形区域进行矫正,再使用颜色定位,排除不是车牌的矩形,截取出车牌用来做下一步的处理。
进一步的,所述步骤s1-2中利用形态学的方法是指使用开运算和闭运算让图像边缘成为一个整体;
所述步骤s1-3中的矫正是利用获取的车牌的四个角的坐标,然后构造平移、旋转和透视变换对图片进行旋转和拉伸。
进一步的,所述步骤s2,构建带车牌标注的车辆数据集,并利用mask-rcnn模型进行训练,用于对已经获取的车牌图片的二次定位,包括如下子步骤,
步骤s2-1,准备用于车牌定位的数据集,收集1200张车辆图片,2/3用于训练,1/3用于测试,然后利用标注工具via标注车牌图片;
步骤s2-2,训练经过改进的目标实例分割框架mask-rcnn,载入使用之前准备好的车牌定位的数据集,训练好模型用于对车牌区域的识别;
步骤s2-3,将之前初步处理的车牌图片导入训练好的车牌定位模型,进行进一步的车牌的定位,找到车牌更准确的位置。
进一步的,所述步骤s2-2的mask-rcnn大体框架还是faster-rcnn的框架,该网络是在faster-rcnn的基础上多了一个roialign和mask预测分支,因此maskr-cnn的损失也是多任务损失,roialign的输出坐标使用双线性插值算法得到,不再量化;每个grid中的值也不再使用max,同样使用插值算法,由于车牌已经经过一次识别,此时选用的残差网络可以是resnext-50,利用resnext-50与完全卷积网络fpn的组合增强基础网络进行特征学习。
进一步的,所述faster-rcnn是将特征抽取、候选框提取、边框回归、分类都整合在了一个网络中的目标检测网络;所述的双线性插值算法是有两个变量的插值函数的线性插值扩展,其核心思想是在x轴、y轴方向两个分别进行一次线性插值;
所述resnext-50是基于resnet与inception而形成的产物,所述resnet是由基本的residual模块一个个累积起来的网络结构,resnet在pytorch的官方代码中共有5种不同深度的结构,深度分别为18、34、50、101、152,这里采用相应的resnext-50网络;所述各种网络的深度指的是“需要通过训练更新参数”的层数,包括卷积层,全连接层在内的网络层。
所述fpn是特征金字塔,是自上而下的网络结构,可以精准定位,输出多个特征图;对于fpn生成的多个特征图,通过以下公式选定roi:
其中k0是对应目标层,在该层上,应将w×h=224×224的感兴趣区域映射到其中,规范的imagenet预训练大小是224;
所述mask-rcnn的多任务损失的损失函数是:
lfinal=lcls lbox lmask
其中lcls表示预测框的分类损失,lbox表示预测框的回归损失,lmask表示mask部分的损失,在上式中,lbox和lmask都是对含有感兴趣区域的positiveroi才会起作用的。
进一步的,所述步骤s3,利用hyperlpr的segmenationfree-inception模型,并对该进行改进,用于对已经定位的车牌图片的识别,包括如下子步骤,
步骤s3-1,利用中文模型车牌生成工具,生成满足现实情况的足够数量的车牌数据,包括蓝底、绿底、黄底在内的车牌,分别存放足够数量的数据进行训练和测试;
步骤s3-2,改进segmenationfree-inception模型用于实现并训练一个识别长度可变的车牌字符的模型进行字符识别;
步骤s3-3,用训练好的模型识别经过两次定位处理的图片,输出识别出的车牌号。
进一步的,所述步骤s3-1车牌生成工具包括使用计算机软件,按照国家规定的车牌标准,结合包括噪声、污损、旋转、不同背景后生成的车牌图片;所述车牌图片中包括用于训练的各种颜色为底色的车牌各有2000个,用于训练黄黑绿为底色的车牌各有800个。
进一步的,所述步骤s3-2的segmenationfree-inception模型的损失函数采用二分类即sigmoid函数,该函数公式为:
其中z表示真实值,δ(z)表示预测的类别概率。
一种基于mask-rcnn与hyperlpr的车牌识别系统,其包括:
预处理模块:用于利用车牌边缘和车牌颜色以及形态学的方法,预处理含有汽车的图片,得到对车牌初步定位,并进行倾斜矫正;
预处理模块:用于利用车牌边缘和车牌颜色以及形态学的方法,预处理含有汽车的图片,得到对车牌初步定位,并进行倾斜矫正;
训练模块:用于构建带车牌标注的车辆数据集,并利用改进的目标实例分割框架mask-rcnn模型进行训练,改进的目标实例分割框架mask-rcnn是在faster-rcnn的框架基础上多了一个区域特征聚集方式roialigin以及一个掩膜mask预测分支,掩膜mask预测分支是应用到每一个感兴趣区域roi上的一个小的完全卷积网络fpn用于对已经获取的车牌图片的二次定位;
识别模块:利用改进的使用深度学习针对中文车牌识别的实现方法hyperlpr的自动分割卷积模型segmenationfree-inception,根据车牌颜色、字符的单一性更改损失函数为二分类函数sigmoid对已经二次定位的车牌图片进行识别,识别出车牌号。
本发明的优点及有益效果如下:
本发明的创新主要是权利要求步骤二和步骤三的操作,去掉了传统车牌识别的车牌字符切割,手动特征提取等操作,保留了车牌完整的语义信息,简化了车牌识别过程,省去了在复杂环境下的车牌字符不好分割的问题;通过两次车牌定位和车牌的矫正,更准确地找到车牌的准确位置,防止图片因过于畸形不好识别的问题,对车牌有着更好的识别准确率;同时根据车牌类型的单一性改变自动分割卷积模型的分类方法,在训练好模型后可以实现车牌端到端识别,减少传统车牌识别模型的计算量。
附图说明
图1是本发明提供优选实施例一种基于mask-rcnn的车牌识别方法的工作流程框图。
图2是图片初步定位矫正的工作流程框图。
图3是初步矫正的图片通过mask-rcnn二次定位的流程框图。
图4是本发明的识别车牌号的模型的网络结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、详细地描述。所描述的实施例仅仅是本发明的一部分实施例。
本发明解决上述技术问题的技术方案是:
如图1所示,一种基于mask-rcnn的车牌识别方法,包括如下步骤:
步骤s1,如图2所示,利用车牌边缘和颜色和形态学的方法,预处理含有汽车的图片,得到对车牌初步定位,并进行倾斜矫正;所述网络模型训练过程如下:
步骤s1-1,输入图片,对图片利用高斯模糊进行去噪处理;
步骤s1-2,通过canny边缘检测方法以及形态学分析检测出车牌边缘,并让图像边缘成为一个整体;
步骤s1-3,由于车牌宽和高的比例是固定的,依据这个几何特征进行筛选,然后将得到的车牌框选出来,矩形区域可能是倾斜的矩形,需要矫正,再使用颜色定位,排除不是车牌的矩形,截取出车牌用来做下一步的处理;
所述步骤s1-2中利用形态学的方法是指使用开运算和闭运算让图像边缘成为一个整体。
所述步骤s1-3中的矫正是利用获取的车牌的四个角的坐标,然后构造平移、旋转和透视变换对图片进行旋转和拉伸。
步骤s2,构建带车牌标注的车辆数据集,并利用如图3所示的mask-rcnn模型进行训练,用于对已经获取的车牌图片的二次定位,包括如下子步骤,
步骤s2-1,准备用于车牌定位的数据集,要收集1200张车辆图片,2/3用于训练,1/3用于测试,然后利用标注工具via(vggimageannotator)标注车牌图片;
步骤s2-2,训练经过改进的目标实例分割框架mask-rcnn,载入使用之前准备好的车牌定位的数据集,训练好模型用于对车牌区域的识别;
步骤s2-3,将之前初步处理的车牌图片导入训练好的车牌定位模型,进行进一步的车牌的定位,找到车牌更准确的位置;
所述步骤s2-1中的标注工具via就是一款开源的图像标注工具,是一个网页程序,可以导入图片,使用多边形标注,标注好了以后,导出json数据;所述标注车牌图片是指车牌字符内容。
所述步骤s2-2的mask-rcnn大体框架还是faster-rcnn的框架,该网络是在faster-rcnn的基础上多了一个roialign和mask预测分支,因此maskr-cnn的损失也是多任务损失。roialign的输出坐标使用双线性插值算法得到,不再量化;每个grid中的值也不再使用max,同样使用插值算法。由于车牌已经经过一次识别,此时选用的残差网络可以是resnext-50,利用resnext-50与fpn的组合增强基础网络进行特征学习;
所述faster-rcnn是已经将特征抽取,proposal提取,边框回归,分类都整合在了一个网络中的目标检测网络;所述的双线性插值算法是有两个变量的插值函数的线性插值扩展,其核心思想是在两个方向分别进行一次线性插值;计算过程如下:
首先在x方向进行线性插值,得到:
再在y方向进行线性插值,得到:
这样就得到所要的结果f(x,y),
其中已知函数f在q11为(x1,y1),q12为(x1,y2),q21为(x2,y1),q22为(x2,y2)的值。
所述resnext-50是基于resnet与inception而形成的产物,结构简单、易懂又足够强大;所述resnet是由基本的residual模块一个个累积起来的网络结构,resnet在pytorch的官方代码中共有5种不同深度的结构,深度分别为18、34、50、101、152,这里采用相应的resnext-50网络;所述各种网络的深度指的是“需要通过训练更新参数”的层数,如卷积层,全连接层等;
所述inception是对传统cnn分类模型的一个修正和提升,解决了传统cnn分类模型参数太多,容易过拟合、网络越大计算复杂度越大、网络越深,产生梯度弥散等问题;
所述fpn是特征金字塔,是自上而下的网络结构,可以精准定位,输出多个特征图;所述网络结构首先在输入的图像上进行深度卷积,然后对第二层上面的特征添加一层1×1的卷积层进行降维操作,对第四层上面的特征进行上采样操作,使得它们具有相应的尺寸,然后对处理后的第二层和处理后的第四层对应元素相加,将获得的结果输入到第五层中去。通过把低层次高分辨率的信息和高层次强语义的信息结合起来,提高检测性能和小目标识别。对于fpn生成的多个特征图,通过以下公式选定roi:
其中k0是对应目标层,在该层上,应将w×h=224×224的感兴趣区域映射到其中。224是:规范的imagenet预训练大小。
所述mask-rcnn的多任务损失的损失函数是:
lfinal=lcls lbox lmask
其中lcls表示预测框的分类损失,lbox表示预测框的回归损失,lmask表示mask部分的损失。在上式中,lbox和lmask都是对positiveroi才会起作用的。
步骤s3,利用改进的hyperlpr的segmenationfree-inception模型,并对该进行改进,获得如图4所示的网络模型,用于对已经定位的车牌图片的识别,包括如下子步骤,
步骤s3-1,利用车牌生成工具,生成满足现实情况的足够数量的车牌数据,包括蓝底,绿底,黄底等车牌,分别存放足够数量的数据进行训练和测试;
步骤s3-2,改进segmenationfree-inception模型用于实现并训练一个识别长度可变的车牌字符的模型进行字符识别。
步骤s3-3,用训练好的模型识别经过两次定位处理的图片,输出识别出的车牌号。
所述步骤s3-1车牌生成工具包括使用计算机软件,按照国家规定的车牌标准,结合包括噪声、污损、旋转、不同背景后生成的车牌图片;所述车牌图片中包括用于训练的各种颜色(黄色,黑色,绿色)为底色的车牌各有2000个,用于训练的各种颜色(黄色,黑色,绿色)为底色的车牌各有800个。
所述步骤s3-2的segmenationfree-inception模型的损失函数采用二分类即sigmoid函数,该函数公式为:
其中z表示真实值,δ(z)表示预测的类别概率。
上述实施例阐明的方法、系统、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上这些实施例应理解为仅用于说明本发明而不用于限制本发明的保护范围。在阅读了本发明的记载的内容之后,技术人员可以对本发明作各种改动或修改,这些等效变化和修饰同样落入本发明权利要求所限定的范围。
1.一种基于mask-rcnn与hyperlpr的车牌识别方法,其特征在于,包括以下步骤:
步骤1、利用车牌边缘和车牌颜色以及形态学的方法,预处理含有汽车的图片,得到对车牌初步定位,并进行倾斜矫正;
步骤2、构建带车牌标注的车辆数据集,并利用改进的目标实例分割框架mask-rcnn模型进行训练,改进的目标实例分割框架mask-rcnn是在faster-rcnn的框架基础上多了一个区域特征聚集方式roialigin以及一个掩膜mask预测分支,掩膜mask预测分支是应用到每一个感兴趣区域roi上的一个小的完全卷积网络fpn用于对已经获取的车牌图片的二次定位;
步骤3、利用改进的使用深度学习针对中文车牌识别的实现方法hyperlpr的自动分割卷积模型segmenationfree-inception,根据车牌颜色、字符的单一性更改损失函数为二分类函数sigmoid对已经二次定位的车牌图片进行识别,识别出车牌号。
2.根据权利要求1所述的一种基于mask-rcnn与hyperlpr的车牌识别方法,其特征在于,所述步骤1、利用车牌边缘和车牌颜色以及形态学的方法,预处理含有汽车的图片,得到对车牌初步定位,并进行倾斜矫正,具体包括以下步骤:
步骤s1-1,输入图片,对图片利用高斯模糊进行去噪处理;
步骤s1-2,通过canny边缘检测方法以及形态学分析检测出车牌边缘,并让图像边缘成为一个整体;
步骤s1-3,依据车牌宽和高的比例是固定的这个几何特征进行筛选,然后将得到的车牌框选出来,对倾斜的矩形区域进行矫正,再使用颜色定位,排除不是车牌的矩形,截取出车牌用来做下一步的处理。
3.根据权利要求2所述的一种基于mask-rcnn与hyperlpr的车牌识别方法,其特征在于,所述步骤s1-2中利用形态学的方法是指使用开运算和闭运算让图像边缘成为一个整体;
所述步骤s1-3中的矫正是利用获取的车牌的四个角的坐标,然后构造平移、旋转和透视变换对图片进行旋转和拉伸。
4.根据权利要求1或2或3所述的一种基于mask-rcnn与hyperlpr的车牌识别方法,其特征在于,所述步骤s2,构建带车牌标注的车辆数据集,并利用mask-rcnn模型进行训练,用于对已经获取的车牌图片的二次定位,包括如下子步骤,
步骤s2-1,准备用于车牌定位的数据集,收集1200张车辆图片,2/3用于训练,1/3用于测试,然后利用标注工具via标注车牌图片;
步骤s2-2,训练经过改进的目标实例分割框架mask-rcnn,载入使用之前准备好的车牌定位的数据集,训练好模型用于对车牌区域的识别;
步骤s2-3,将之前初步处理的车牌图片导入训练好的车牌定位模型,进行进一步的车牌的定位,找到车牌更准确的位置。
5.根据权利要求4所述的一种基于mask-rcnn与hyperlpr的车牌识别方法,其特征在于,所述步骤s2-2的mask-rcnn大体框架还是faster-rcnn的框架,该网络是在faster-rcnn的基础上多了一个roialign以及mask预测分支,因此maskr-cnn的损失也是多任务损失,roialign的输出坐标使用双线性插值算法得到,不再量化;每个网格grid中的值也不再使用最大值max,同样使用插值算法,由于车牌已经经过一次识别,此时选用的残差网络可以是resnext-50,利用resnext-50与完全卷积网络fpn的组合增强基础网络进行特征学习。
6.根据权利要求5所述的一种基于mask-rcnn与hyperlpr的车牌识别方法,其特征在于,所述faster-rcnn是将特征抽取、候选框提取、边框回归、分类都整合在了一个网络中的目标检测网络;所述的双线性插值算法是有两个变量的插值函数的线性插值扩展,其核心思想是在x轴、y轴方向两个分别进行一次线性插值;
所述resnext-50是基于resnet与inception而形成的产物,所述resnet是由基本的residual模块一个个累积起来的网络结构,resnet在pytorch的官方代码中共有5种不同深度的结构,深度分别为18、34、50、101、152,这里采用相应的resnext-50网络;所述各种网络的深度指的是“需要通过训练更新参数”的层数,包括卷积层,全连接层在内的网络层。
所述fpn是特征金字塔,是自上而下的网络结构,可以精准定位,输出多个特征图;对于fpn生成的多个特征图,通过以下公式选定roi:
其中k0是对应目标层,在该层上,应将w×h=224×224的感兴趣区域映射到其中,规范的imagenet预训练大小是224;
所述mask-rcnn的多任务损失的损失函数是:
lfinal=lcls lbox lmask
其中lcls表示预测框的分类损失,lbox表示预测框的回归损失,lmask表示mask部分的损失,在上式中,lbox和lmask都是对含有感兴趣区域的positiveroi才会起作用的。
7.根据权利要求6所述的一种基于mask-rcnn与hyperlpr的车牌识别方法,其特征在于,所述步骤s3,利用hyperlpr的segmenationfree-inception模型,并对该进行改进,用于对已经定位的车牌图片的识别,包括如下子步骤,
步骤s3-1,利用中文模型车牌生成工具,生成满足现实情况的足够数量的车牌数据,包括蓝底、绿底、黄底在内的车牌,分别存放足够数量的数据进行训练和测试;
步骤s3-2,改进segmenationfree-inception模型用于实现并训练一个识别长度可变的车牌字符的模型进行字符识别;
步骤s3-3,用训练好的模型识别经过两次定位处理的图片,输出识别出的车牌号。
8.根据权利要求7所述的一种基于mask-rcnn与hyperlpr的车牌识别方法,其特征在于,所述步骤s3-1车牌生成工具包括使用计算机软件,按照国家规定的车牌标准,结合包括噪声、污损、旋转、不同背景后生成的车牌图片;所述车牌图片中包括用于训练的各种颜色为底色的车牌各有2000个,用于训练黄黑绿为底色的车牌各有800个。
9.根据权利要求7所述的一种基于mask-rcnn与hyperlpr的车牌识别方法,其特征在于,所述步骤s3-2的segmenationfree-inception模型的损失函数采用二分类即sigmoid函数,该函数公式为:
其中z表示真实值,δ(z)表示预测的类别概率。
10.一种基于mask-rcnn与hyperlpr的车牌识别系统,其特征在于,包括:
预处理模块:用于利用车牌边缘和车牌颜色以及形态学的方法,预处理含有汽车的图片,得到对车牌初步定位,并进行倾斜矫正;
训练模块:用于构建带车牌标注的车辆数据集,并利用改进的目标实例分割框架mask-rcnn模型进行训练,改进的目标实例分割框架mask-rcnn是在faster-rcnn的框架基础上多了一个区域特征聚集方式roialigin以及一个掩膜mask预测分支,掩膜mask预测分支是应用到每一个感兴趣区域roi上的一个小的完全卷积网络fpn用于对已经获取的车牌图片的二次定位;
识别模块:利用改进的使用深度学习针对中文车牌识别的实现方法hyperlpr的自动分割卷积模型segmenationfree-inception,根据车牌颜色、字符的单一性更改损失函数为二分类函数sigmoid对已经二次定位的车牌图片进行识别,识别出车牌号。
技术总结