一种基于Mask-RCNN的非机动车车牌识别方法及系统

文档序号:25884657发布日期:2021-07-16 19:05阅读:343来源:国知局
一种基于Mask-RCNN的非机动车车牌识别方法及系统
一种基于mask

rcnn的非机动车车牌识别方法及系统
技术领域
1.本发明涉及计算机图像处理、深度学习、智能交通领域,尤其涉及一种基于mask

rcnn的非机动车车牌识别方法及系统。


背景技术:

2.随着时代的发展,全社会非机动车保有量正在逐年增加,出于安全、合理分配资源等方面的考虑,对于获取非机动车车辆信息的需求日渐增长;车辆牌照,被视为车辆的“身份证”,通常在获取牌照信息的基础上就很容易得到该车辆的其他信息。因此,牌照信息在交通系统中对于车辆信息的识别起到非常重要的作用。然而,随着非机动车保有量与日俱增,曾经单纯依靠人工完成的车牌信息识别、记录以其劳动强度大、工作效率低等劣势很难达到当今社会对于高质量、高效率的要求;同时,近几年的计算机技术发展迅猛。于是,非机动车牌照的自动识别技术日益受到重视。
3.非机动车车牌识别技术是一个基于计算机图像处理的综合性集成技术,其处理流程包括非机动车车牌图像定位、非机动车车牌字符识别两个主要的功能模块。非机动车车牌图像定位主题任务是从拍摄的非机动车车辆图像中定位到车牌所在的位置,并在把车牌准确的提取出来,供后续的非机动车车牌字符识别使用。车牌图像的准确定位是车牌字符识别的前提和基础,是非机动车车牌识别技术首先要解决的关键问题。
4.然而,目前基于传统图像处理的非机动车车牌识别技术虽然在简单的场景下可以很好地运转,但是在开放、复杂的场景下,现有的算法就难以取得比较理想的车牌检测和识别效果。在开放的场景下,主要的困难在于自然场景中的文本干扰(如广告牌、道路指示牌等)以及随机的拍摄条件(如不同的光照、扭曲、遮挡、模糊等)等。


技术实现要素:

5.本发明要克服现有技术的上述缺点,提供一种基于卷积神经网络(mask

rcnn)的非机动车车牌识别方法及系统,来解决在复杂场景下非机动车车牌识别面临的上述困难。
6.本发明采用以下技术方案:
7.一种基于卷积神经网络(mask

rcnn)的非机动车车牌识别方法,包括如下步骤:
8.s1:训练基于卷积神经网络(mask

rcnn)的非机动车车牌定位网络;
9.s2:利用s1所述的非机动车车牌定位网络在拍摄到的图片中检测非机动车车牌图像区域,获取一些疑似非机动车车牌的图像及相应位置坐标;
10.s3:对s2获得的疑似非机动车车牌图像进行精确筛选,完成车牌图像的精确定位;
11.s4:对s3所述精确筛选后获得的非机动车车牌图像进行倾斜矫正,以便后续非机动车车牌字符识别使用,本发明采用hough变换法提取倾斜车牌的倾斜角度,并完成车牌图像旋转;
12.s5:对s4所述完成倾斜矫正的车牌图像进行字符分割;
13.s6:训练一种基于bp神经网络的字符识别方法,并采用训练好的识别模型对s5所
述分割后的车牌字符进行识别。
14.一种基于卷积神经网络(mask

rcnn)的非机动车车牌识别系统,包括:车牌检测定位模块:训练基于卷积神经网络(mask

rcnn)的非机动车车牌定位模型,来对拍摄的图像进行非机动车车牌区域定位;
15.车牌字符分割模块:对定位到的非机动车车牌图像进行二值化处理,并选择一个合适的阈值把字符与车牌背景分割开来,对于大于阈值的像素,将其灰度值设置为0,即黑色,对于小于阈值的灰度值,将其设置为255,即白色;然后对二值化图像进行梯度锐化处理,使模糊的图像变得清晰,本发明采用robert梯度算子对图像进行锐化;其次在锐化后图像的基础上去除杂点噪声(包括去除铆钉);最后逐行逐列扫描图像,确定精确的字符宽度与高度范围,完成字符分割并对分割到的字符进行归一化,设置统一的分辨率大小为12*12;
16.车牌字符识别模块:采用bp神经网络识别切割后的非机动车车牌字符。
17.本发明的优点是:在复杂场景,如光照较强、图像分辨率不佳的条件下也能有较高的识别率,极大地提高了非机动车车牌识别系统的鲁棒性。
附图说明
18.图1是本发明方法的流程图。
具体实施方式
19.本发明提出的一种基于卷积神经网络(mask

rcnn)的非机动车车牌识别方法,运用神经网络与计算机图像处理的相关技术结合的方式,实现了快速、准确的非机动车车牌识别,满足了车牌识别系统的准确性和实时性要求。
20.本发明的整个算法流程如图1所示。首先利用训练好的非机动车车牌图像定位网络对拍摄的图像进行车牌区域粗定位,然后采用多种筛选策略进行车牌区域的精确定位,并对畸变车牌进行矫正,最终输出车牌区域;对输出的车牌进行二值化后,对进行车牌字符分割,并利用训练好的bp神经网络对分割后的字符进行识别,最终输出拍摄图像的非机动车牌照号码。
21.s1:训练基于卷积神经网络(mask

rcnn)的非机动车车牌定位网络,包括如下步骤;
22.s1.1:训练数据集收集:本发明用于训练的数据集主要来自两个途径,一部分是从网络上获取,还有一部分来自街头实地拍摄,获取的数据集总数为3200张包含非机动车车牌的图像;
23.s1.2:数据增强:s1.1所述的样本数量对于深度学习需求的数据量来说依然不足,而数据量不足容易导致过拟合,为了解决该问题,需要对所获得的图像样本数据进行数据增强,数据增强的好处是弥补数据量不足的同时还能防止过拟合和提高模型的泛化能力,本发明对s1.1所述的样本进行数据增强后,原有的3200张包含非机动车车牌的图像增加到6500张;
24.s1.3:对s1.2获取的数据集进行标注,获取车牌图像在原始图像数据中的位置,包括如下步骤:
25.s1.3.1:数据集预处理,所述预处理包括:去除无效数据、将数据集图片分辨率大小统一设置为1280*960;
26.s1.3.2:本发明采用标框标注,即框选出要检测的非机动车车牌对象,获得四个顶点的坐标;
27.s1.3.3:按照8:1:1的比例将s1.3.2标注好的数据集划分为训练集、验证集与测试集;
28.s1.4:采用mask

rcnn的卷积神经网络结构在s1.3.3分割好的数据集上进行训练,获得一个在拍摄到的图像中检测非机动车车牌图像区域的检测模型;
29.s2:利用s1.4所述的检测模型在拍摄到的图片中检测非机动车车牌图像区域,获取一些疑似非机动车车牌的图像及相应位置坐标;
30.s3:对s2获得的疑似非机动车车牌图像进行精确筛选,完成车牌图像的精确定位,包括如下步骤:
31.s3.1:非机动车车牌宽高比大致范围在2.5~7.5之间,本发明按照这个比例先对s2所述图像做一个区域粗筛选,剔除掉一些过大或者过小的区域;
32.s3.2:采用支持向量机(supportvectormachine,svm)分类器,对候选车牌进行精确筛选,输出最终的候选非机动车车牌图像;
33.s4:对s3.2所述非机动车车牌图像进行倾斜矫正,以便后续非机动车车牌字符识别使用,本发明采用hough变换法提取倾斜车牌的倾斜角度,并完成车牌图像旋转,包括如下步骤:
34.s4.1:对非机动车车牌图像进行边缘检测,本发明选用了sobel算子检测图像中水平方向的直线;
35.s4.2:假设图像对应于x

o

y空间,定义一个s

o

θ(θ角的范围为1

180)空间,对图像中象素为1的每一个点进行计算(应用公式s=xcosθ+ysinθ),做出每一个象素为1的点的曲线,同时把s

θ平面分成等间隔(1
×
1)的小网格,这个小网格对应一个记数矩阵,凡是曲线所经过的网格,对应的记数矩阵元素值加1,所以对原图像中的每一点进行计算以后记数矩阵元素的值等于共线的点数,本发明认为记数矩阵中元素的最大值对应原始图像中最长的直线;
36.s4.3:检测出记数矩阵的最大的元素所对应的列坐标θ,θ即为这条直线的法线与x轴的夹角;
37.s4.4:通过s4.3所确定的θ角来确定直线的倾斜角度,进而对图像进行旋转完成倾斜矫正,输出最终的车牌图像进行车牌识别。
38.s5:对s4.4所述完成倾斜矫正的车牌图像进行字符分割,包括如下步骤:
39.s5.1:对s4.4所述非机动车车牌图像进行二值化处理,及选择一个合适的阈值把字符与车牌背景分割开来,对于大于阈值的像素,将其灰度值设置为0,即黑色,对于小于阈值的灰度值,将其设置为255,即白色;本发明采用迭代阈值法进行二值化处理,包括如下步骤:
40.s5.1.1:为全局阈值选择一个初始估计值t(图像的平均灰度);
41.s5.1.2:用t分割图像,产生两组像素:g1由灰度值大于t的像素组成,g2由小于等于t像素组成;
42.s5.1.3:计算g1和g2像素的平均灰度值m1和m2;
43.s5.1.4:计算一个新的阈值:t=(m1+m2)/2;
44.s5.1.5:重复步骤s5.1.2到s5.1.4,直到连续迭代中的t值趋于稳定;
45.s5.2:对s5.1所述的二值化图像进行梯度锐化处理,使模糊的图像变得清晰,本发明采用robert梯度算子对图像进行锐化;
46.s5.3:在s5.2所述图像的基础上去除杂点噪声(包括去除铆钉),具体做法如下:扫描整个图像,统计每一行所拥有的白色像素点个数sum(i),进而求出一个阈值p:
[0047][0048]
其中m代表图像拥有的行数,n代表图像拥有的列数,用sum(i)与阈值p进行对比,若
[0049]
sum(i)<p,则将改行的像素点全部置为黑色;若sum(i)>p,则保持该行不变;
[0050]
s5.4:对s5.3所述去噪处理后的图像进行字符分割,包括如下步骤:
[0051]
s5.4.1:先自下而上对图像进行逐行扫描直至遇到第一个白色像素点,记录下来;然后在自上而下进行逐行扫描直至遇到第一个白色像素点,由此确定图像的高度范围;
[0052]
s5.4.2:在s5.4.1确定的高度范围内自左向右逐列进行扫描,遇到第一个白色像素时认为是字符分割的起点,然后继续扫描,直到遇到一列中没有白色像素,则认为这列是分割的结束位置,按照上述方法一直扫描至图像的最右端,得到每个字符较为精确的宽度范围;
[0053]
s5.4.3:在已知每个字符的宽度范围内,按照s5.4.1所述方法获取每个字符的高度范围,进行精确的字符分割;
[0054]
s5.4.4:对s5.4.3所分割到的字符进行归一化,设置统一的分辨率大小为12*12;
[0055]
s6:本发明采用一种基于bp神经网络的字符识别方法,包括如下步骤:
[0056]
s6.1:特征提取,本发明采用图像的灰度特征与字符四角特征融合进行字符识别,具体特征描述如下:
[0057]
灰度特征:对于字符归一化后的12*12的像素点阵图进行从上到下、从左到右逐个扫描,按每个像素位为0或1将像素值存入一个一维数组中,这样就生成了字符图像的144个灰度特征;
[0058]
字符四角特征:对于相似的字符,比如“0”和“d”,本发明采用字符四角特征,在灰度特征的基础上对其区分,具体方法如下:
[0059]
将归一化后的像素点阵图按像素分为12行12列;
[0060]
从左上顶点出发,沿主对角线方向进行扫描,计算图像左上顶点到第一个白色像素点的数目;
[0061]
依据同样的方法计算右上、左下、右下顶点到第一个白色像素点的数目;
[0062]
经过四角特征的提取,可以得到“0”、“d”的四角特征向量如下:
[0063]
v0={0,0,0,0}v
d
={1,0,1,0}
[0064]
s6.2:以s6.1所述特征作为bp神经网络的输入向量进行训练,得到一个字符识别模型;
[0065]
s6.3:对s5.4.4归一化后的字符调用s6.2所得到是识别模型进行字符识别,输出
非机动车牌照的号码。
[0066]
所述步骤s1.2中样本数据增强,包括如下步骤:
[0067]
s1.2.1:尺度变换:对s1.1所获取的数据进行高斯滤波,改变图像的模糊程度,以此增加样本数据规模;
[0068]
s1.2.2:位置变换:对s1.1所获取的数据样本进行位置变换包括三种不同的策略,即平移、旋转和翻转变换,对每一张样本图片将随机采取一种策略进行数据增强;
[0069]
具体而言,图像平移指对图像内容进行平移,采用随机设定的方式,设置平移方向与平移步长等参数;图像旋转指对图像内容进行一定角度的旋转,改变图像内容的朝向;图像翻转指沿着水平或者垂直方向翻转图像;
[0070]
s1.2.3:对比度、饱和度变换:首先将样本图片由rgb颜色空间转换到hsv颜色空间;其次,保持色调分量(h)不变,改变饱和度分量(s)和亮度分量(v)。
[0071]
所述步骤s1.2.3中颜色空间的转换,具体的计算公式如下:
[0072]
r'=r/255g'=g/255b'=b/255
[0073]
其中:r、g、b为图片颜色分量;
[0074]
c
max
=max(r',g',b')c
min
=min(r',g',b')
[0075]
δ=c
max

c
min
[0076]
hsv颜色分量计算:
[0077][0078][0079]
v=c
max
[0080]
所述步骤s3.2中支持向量机分类器的实现方法:
[0081]
本发明选用了1000张非机动车车牌样本(正样本)和3000张非车牌样本(负样本),将数据划分为训练数据(traindata)和测试数据(testdata),本实验将其中80%的车牌样本作为训练数据,20%的车牌样本作为测试数据,其中非车牌的样本训练数据与测试数据的比例训练也分别占80%和20%,最后将数据输入svm进行训练,训练出的最终模型以“xml”的形式保存以在程序中进行调用。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1