一种基于Caffe框架的深度学习车牌字符识别方法

文档序号:10613282阅读:474来源:国知局
一种基于Caffe框架的深度学习车牌字符识别方法
【专利摘要】本发明公开的一种基于Caffe框架的深度学习车牌字符识别方法包括分类器训练和字符识别两个过程,分类器训练包括字符处理、分成汉字集和非汉字集以及建立Caffe架构学习网络结构、然后分别进行训练得到相对应的分类器,字符识别包括预先建立索引表并对抓取到的车牌图像进行处理,然后利用相对应的分类器识别后再通过查索引表得到识别结果,按顺序组合后即为车牌的最终识别结果。本发明的一种基于Caffe框架的深度学习车牌字符识别方法以基于Caffe架构的深度学习为基础,解决了现有的车牌字符识别方法中对倾斜、断裂、相近字符识别精度不高的问题,大大提高了对于车牌字符的识别精度。
【专利说明】
一种基于Caffe框架的深度学习车牌字符识别方法
技术领域
[0001] 本发明属于图像识别技术领域,具体涉及一种基于Caffe框架的深度学习车牌字 符识别方法。
【背景技术】
[0002] 车牌识别是现代智能交通系统的一个重要组成部分,在车辆收费管理、出行时间 测量、公共停车场、机场、小区、港口等出入口车辆管理、闯红灯违章车辆监控、交通流量检 测、交通控制与诱导、被盗车辆及特种车辆的鉴别等场合中发挥着重要作用。虽然对于车牌 识别技术己经有较多的研究,但在自然场景中,由于天气、光照、拍摄角度、拍摄地点以及磨 损变形等因素的影响,实时准确的视频车牌识别仍然面临很大的挑战。车牌识别系统包括 车牌定位、校正、字符分割和字符识别等步骤,其中车牌字符识别是整个车牌识别的最后环 节,在车牌识别系统中起着至关重要的作用。
[0003] 常用的车牌字符识别方法有基于模板匹配的字符识别和基于神经网络的字符识 另IJ。由于断裂、污染和噪声等因素的影响,从实际拍摄的车牌图像中分割的字符和模板差异 较大,从而造成模版匹配的车牌识别方法性能下降。基于神经网络的字符识别方法的准确 度依赖于选取的字符特征,常用的字符特征因为鲁棒性不够强从而会影响车牌的识别率。

【发明内容】

[0004] 本发明的目的在于提供一种基于Caffe框架的深度学习车牌字符识别方法,解决 了现有的车牌识别方法存在的识别精度不高的问题。
[0005] 本发明所采用的技术方案是:一种基于Caffe框架的深度学习车牌字符识别方法, 包括分类器训练以及字符识别两个过程,
[0006] 其中,分类器训练的具体步骤如下:
[0007] 步骤1,对大量的样本车牌图像进行车牌定位、车牌校正、二值化处理和字符分割 的预处理,得到分割出的二值化字符图像集C_train,总共含有的样本个数为队_;
[0008] 步骤2,字符处理:对字符图像集C_train中的各个字符图像进行中心化、切变校正 以及归一化的处理,得到归一化后的字符图像
[0009] 步骤3,把字符图像集C^train1^分成两个子集,分别为汉字图像集Cl_train和数 字及字母的非汉字图像集C2_train;
[0010] 步骤4,建立两种基于Caffe架构的深度学习网络结构,其中,一种为汉字网络结构 DU,另一种为非汉字网络结构DL2;
[0011] 步骤5,利用步骤4建立的网络结构训练分类器:把汉字图像集Cl_train作为输入, 代入汉字网络结构DU,训练得到汉字分类器DLC 1;把非汉字图像集C2_train作为输入,代入 非汉字网络结构DL2,训练得到非汉字分类器DLC 2;
[0012] 字符识别的具体步骤如下:
[0013] 步骤6,预先建立汉字索引表TabjP非汉字索引表Tab2,然后对抓拍视频流中每帧 图像定位的各个车牌图像进行步骤1的预处理,得到待识别各个车牌图像的字符样本集c,c ={C1,C2,···~,···〇?},其中cm为车牌中的第m个字符,1彡m彡M,M为单个车牌包含的字符总个 数;
[0014] 步骤7,对字符样本集C中的各个字符(^经由步骤2的处理,得到归一化后的车牌字 付咖 .;
[0015] 步骤8,对车牌各个字符分别进行识别:
[0016] 根据字符所在位置进行字符类型判断,如果是第一个字符,即为汉字字符,否则为 非汉字字符,把汉字字符代入汉字分类器DL&,输出结果为汉字的类别索引/1;〔,其中d = 0, 1,…,他-1,m= 1,见为汉字的类别数,查找对应的汉字索引表Tah得到汉字的识别结果Rm,m =1;把非汉字字符代入非汉字分类器DLC2,输出结果为非汉字的类别索引/2;!,其中d = 0, 1,…,N2-l,m = 2,3,…,M,NA非汉字字符的类别数,查找非汉字索引表Tab:^别得到非汉 字字符的识别结果1,111 = 2,3,一,,按顺序合并各个字符的识别结果,得到车牌的识别结 果RP,RP = U Rm,其中m=l,2,…,M。
[0017]本发明的特点还在于,
[0018]步骤2字符处理的具体步骤如下:
[0019]步骤2.1,对字符集(:_杜&111中的每一个字符进行几何投影,分别得到其垂直投影 宽度,计算投影宽度和字符标准宽度的差值,根据差值的取值对字符是否需要进行中心化 处理进行判断,若需要,则进行中心化处理;若不需要,不做任何处理,最终得到字符图像集 C_traincen;
[0020] 步骤2.2JiC_traineen中的每个车牌字符进行投影宽度最小化的切变校正,得到 切变校正后的字符图像集C_tra in?1;
[0021] 步骤2.3,将切变校正后的字符图像集ttrair^a中的字符按1:2的宽高比进行大 小归一化,得到归一化的字符图像集C_tra in1^,其中每个字符的大小为w X h。
[0022]步骤2.1中判断字符是否中心化以及中心化的处理方法按照以下步骤实施:
[0023]①对对字符集C_train中的各个字符图像train」进行垂直投影得到投影图像,其 中」= 1,2,3···Ν_,对投影图像按列进行统计,得到每一列的关键点个数,即值为255的像素 点个数,记为Si,i = l,2,…,wj,其中wj为字符train」的宽度;
[0024]②从投影图像的最左端开始向中间移动,找到第一个不为,其列号i作为左 边界值B/;同理,从投影图像的最右端开始向中间移动,找到第一个不为,其列号i作 为右边界值B/;
[0025]③计算是否进行中心化的判断阈值TJ:
[0026]
[0027]④若L = 0,则不需要中心化处理;否则进行中心化处理,即,若乃>0,则把字符图像 train」中值为255的像素点向左平移Tj个单位;若Tj〈0,则把字符图像train」中值为255的像 素点向右平移Tj个单位。
[0028]步骤2.2中对中心化后的字符图像集C_traineen进行切变校正的方法具体按照以 下步骤实施:
[0029] ①设置初始值:角度变化范围为[0s,0e],最小投影宽度wid=WID_MIN,旋转角度初 始值Θ = 9S,最佳旋转角度初始值9ba = Θ,角度增量
ppyi
[0030] ②对字符图像中的字符样本j = 1,2,3,…Nsam旋转Θ角度,旋 转后经由2.1中的步骤①、②处理,得到字符样本的左右边界值叫1和B/,确定其投影的宽度 值对,#| =^/ -S:/,判断if是否小于Wid,若是,则令,θ严=0;若不是,继续步骤 ③;
[0031] ③令当前的旋转角度Θ为步骤②中的旋转角度Θ加角度增量△ Θ,并对当前旋转角 度Θ值进行判断,若θ<θ(3,则返回步骤②;若θ>θ(3,继续步骤④;
[0032] ④根据0ba取值确定图像所在的外接四边形; abed
[0033] ⑤对四边形J?. 进行逆透视变换,得到校正后的字符图像, J
,'其中Trans_Per( ·)为逆透视变换函数。
[0034]步骤4的建立两种基于Caffe架构的深度学习网络结构具体按照以下步骤实施: [0035]步骤4.1,建立深度学习汉字网络结构DL1:该网络结构输入为车牌汉字图像集,大 小为w X h X C,其中w X h为车牌汉字图像的分辨率,C为通道值;输出为车牌汉字类别索引的 集合,记为/Tl~l,其中见代表车牌汉字的种类数;车牌汉字的网络结构的总层数为13,分别 由1个输入层,2个卷积层,2个池化层,3个激活层,2个全连接层,1个softmax层,1个drop层 和1个输出层连接而成,具体连接顺序为:输入-卷积-激活-池化-卷积-激活-池化-全连接-激活-drop-全连接-softmax-输出;
[0036]步骤4.2,建立深度学习字母与数字的网络结构DL2:该网络结构输入为车牌非汉 字图像集,大小为w X h X C,其中w X h为车牌汉字图像的分辨率,C为通道值;输出为车牌非 汉字类别索引的集合,记为V2 ,其中N2代表车牌非汉字的种类数;车牌非汉字的网络结 构的总层数为10,分别由1个输入层,2个卷积层,2个池化层,1个激活层,2个全连接层,1个 softmax层,1个输出层连接而成,具体连接顺序为:输入-卷积-池化-卷积-池化-全连接-激 活-全连接-sof tmax-输出。
[0037] 步骤5中训练分类器的方法具体按照如下步骤:
[0038] ①选择训练数据:以汉字图像集Cl_train作为训练汉字字符分类器的数据集,以 非汉字图像集C2_train作为训练非汉字字符分类器的数据集;
[0039]②设置样本标签:汉字类别总共为见类,类别标签号0~见_1;非汉字的类别总共为 N2类,类别标签号为0~N2-l,分别制作汉字标签文件Labi,非汉字标签文件Lab2,标签文件 的内容包括汉字图像集Cl_train和非汉字图像集C2_train里每个字符样本所存的路径以 及对应类别标签号;
[0040]③利用Caffe架构,把汉字图像集Cl_train转化为数据库DBi,把将非汉字图像集 转化为数据库DB2;
[0041 ]④把网络结构、数据库DBjPDB2、汉字标签文件Labi和非汉字标签文件Lab2的所在 路径存入Caffe配置文件;
[0042]⑤设置训练参数存入Caff e配置文件;
[0043]⑥在Caffe架构下完成训练,利用数据库DB!、汉字标签文件LabjP汉字网络结构 DLdjll练生成汉字分类器DLC1;利用数据库DB2、非汉字
[0044] 标签文件Lab2和非汉字网络结构DL2训练生成数字及字母分类器DLC2。
[0045]本发明的有益效果是:本发明一种基于Caffe框架的深度学习车牌字符识别方法 以基于Caffe架构的深度学习为基础,解决了现有的车牌字符识别方法中特征需要人为定 义、对倾斜、断裂、相近字符识别精度不高的问题,大大提高了对于车牌字符的识别精度。
【附图说明】
[0046]图1是本发明的一种基于Caffe框架的深度学习车牌字符识别方法的流程示意图; [0047]图2是本发明的一种基于Caffe框架的深度学习车牌字符识别方法中字符图像处 理的流程示意图;
[0048]图3是本发明的一种基于Caff e框架的深度学习车牌字符识别方法中字符中心化 处理的流程示意图;
[0049]图4是本发明的一种基于Caffe框架的深度学习车牌字符识别方法中字符切变校 正的流程示意图;
[0050] 图5是本发明的一种基于Caffe框架的深度学习车牌字符识别方法中深度学习汉 字网络的结构示意图;
[0051] 图6是本发明的一种基于Caffe框架的深度学习车牌字符识别方法中深度学习非 汉字网络的结构示意图。
【具体实施方式】
[0052]下面结合附图和【具体实施方式】对本发明作进一步的详细说明,但本发明并不限于 这些实施方式。
[0053]本发明的一种基于Caffe架构的深度学习车牌字符识别方法的流程示意图如1所 示,其包括两个步骤,
[0054]基于Caffe架构的车牌字符的深度学习分类器训练过程主要包括以下步骤:
[0055] 步骤1:车牌汉字主要包括22个省、5个自治区、4个直辖市的简称,例如"京" "津" "冀""豫""鄂""皖""浙""苏""湘""辽"等等,总共31类;非汉字主要包括字母A-Z(除1、0外) 共24类,数字0-9共10类,总共34类。本实施例中,为保证分类器的容错力,从不同角度、不同 距离上采集了 46100张样本图像。对这些车牌样本图像进行车牌定位、车牌校正、二值化处 理和字符分割等预处理,具体可以采用一些经典的算法,譬如基于颜色与边缘的车牌定位、 基于hough变换的车牌校正、基于投影的字符分割等算法即可完成对样本图像的预处理得 到分割出的二值化字符图像in,样本个数Ν_=46100;
[0056] 步骤2:如图2所示的字符处理:对字符图像集C_train中的各个字符图像进行中心 化、切变校正以及归一化处理,得到归一化后的字符图像
[0057] 其具体处理步骤如下:
[0058]步骤2.1,对字符集(:_杜&111中的每一个字符进行几何投影,得到垂直投影宽度,计 算投影宽度和字符标准宽度的差值,根据差值的取值对字符是否需要进行中心化处理进行 判断,若需要,则进行中心化处理;若不需要,不做任何处理,最终得到字符样本集(:_ train^,其流程示意图如图3所示,具体处理步骤如下:
[0059]①对字符图像集(:_1:抑;[11中的各个字符图像train」,j = 1,2,3"_Nsam进行垂直投影 得到投影图像,对投影图像按列进行统计,得到每一列的关键点个数,即值为255的像素点 个数,记为Si,i = l,2,…,wj,其中wj为字符train」的宽度;
[0060]②从投影图像的最左端开始向中间移动,找到第一个不为,其列号i作为左 边界值B/;同理,从投影图像的最右端开始向中间移动,找到第一个不为,其列号i作 为右边界值B/;
[0061 ]③计算是否进行中心化的判断阈值Tj:
[0062]
[0063] ⑷若Tj = 0,则小需要中心化处理;否则进行中心化处理,即,若Tj>0,则把字符图像 train」中值为255的像素点向左平移Tj个单位;若Tj〈0,则把字符图像train」中值为255的像 素点向右平移Tj个单位;
[0064]步骤2.2JiC_traineen中的每个车牌字符进行投影宽度最小化的切变校正,得到 校正后的字符图像集Cjrain^,其流程示意图如图4所示,具体处理步骤如下:
[0065]①设置初始值:角度变化范围为[0s,0e],最小投影宽度wid=WID_MIN,旋转角度初 始值Θ = 9S,最佳旋转角度初始值9ba= Θ,角度增量
,本实施例中,WID_MIN = 9999,Θ3 = -Ι〇,θ0=1〇,ηθ = 2〇;
[0066] ②对字符图像中的字符样本 转后经由2.1中的步骤①、②处理,得到字符样本的左右边界值和B/,计算投影宽度值 X = 5; -5卜判断κ';是否小于…么若是,令u'W = n'f,0/?若不是,执行步骤③;
[0067] ③令当前的旋转角度Θ为步骤②中的旋转角度Θ加角度增量△ Θ,并对当前旋转角 度Θ值进行判断,若θ < ,则返回步骤②;若θ>θβ,执行步骤④。 . , .cen abed
[0068] ④根据Θ%取值确定图像~〃"·所在的外接四边形;具体确定四边形的步 J J 骤可以为:
[0069] a)根据得到的最佳角度Θ%拟合直线L:
('pfl
[0070] b)将字符样本图像&〃_?/的左边界点(B/,0)代入直线L,求得四边形的左边线
[0071] c)将右边界点(Β/,0)代入直线L,求得四边形的右边线Ud:
[0072]
[0073] 其中和/f2分别表示字符_'"^的宽度和高度; CPfi
[0074] d)将字符样本图像进行水平投影得到水平投影图像,对水平投影图像按 行进行统计,从上向下遍历投影图像,找到关键点个数不为〇的首行和末行位置,分别记为 B/和Bjb,从而得到四边形的上边线Ltcip: y = Β/和下边线Lbcit = Bjb;
[0075] e)求四条边线的交点得到四边形的四个端点,分别记为a,b,c,d,校正前的四边形 abed 记为~ ; abed
[0076] ⑤对四边形i? . _进行逆透视变换,得到校正后的字符图像
,其中Trans_Per( ·)为逆透视变换函数;
[0077]步骤2.3,对校正后的字符图像集(:_^^11^中的字符按1:2的宽高比进行大小归 一化,得到归一化的字符图像集C_trainncn:,其中每个字符的大小为w X h,本实施例中,w = 20,h = 40;
[0078]步骤3:把字符图像集C_trainnOT分成两个互不相交的子集,分别为汉字图像集Cl_ train和非汉字图像集C2_train(其中包括数字和字母图像集),其中汉字图像样本个数为 7100,非汉字图像样本个数为39000;
[0079] 步骤4:设计两种基于Caff e架构的深度学习网络结构,一种是汉字网络结构DU, 另一种是非汉字网络结构DL2,具体按照以下步骤实施:
[0080] 步骤4.1,建立如图5所示的深度学习汉字网络结构DU,该网络结构输入为车牌汉 字图像集,大小为w X h X C(w X h为车牌汉字图像的分辨率,C为通道值,取值为1 ),输出为车 牌汉字类别索引的集合,记为#1#1 s其中他代表车牌汉字的种类数,具体取值为31。车牌汉 字的网络结构的总层数为13层,分别由1个输入层,2个卷积层,2个池化层,3个激活层,2个 全连接层,1个softmax层,1个drop层,1个输出层连接而成,具体连接顺序为:输入-卷积-激 活-池化-卷积-激活-池化-全连接-激活-drop-全连接-softmax-输出。汉字网络结构中网 络层的类别以及数目如表1所示,其中S为网络层的类别,η为网络层数目。
[0081]
[0082]表 1
[0083]汉字网络层的连接顺序如表2所示,其中S为网络层的类别,ix为网络层连接顺序 编号。
[0084]
[0085] 表 2
[0086] 汉字网络层通道值的设置如表如表3所示,其中ix为网络层的连接顺序编号,V为 网络层的通道值。
[0087]
[0088] 表 3
[0089] 在具体实施例中,如图5所示,输入层是20X40Xl(w = 20,h = 40,C=l)大小的数 据,在第一次卷积时,采用的卷积模板大小为5 X 5(即kernel_w = kernel_h = 5),步长为1 (即Stride = l),通道值为16,卷积后的输出数据大小为16X36X16。卷积后的输出数据作 为激活层的输入,激活层的输出大小与输入保持一致;在第一次池化时,采用的模板大小为 2X2,步长为2,通道值为16,池化后数据大小为8X18X8。此时完成了第一次的卷积、激活 和第一次的池化操作;接着执行第二次的卷积、激活和池化操作,其中的卷积模板大小、池 化模版大小和步长保持不变,通道数变为32;再依次执行全连接、激活、drop和全连接操作, 第一次全连接的输入数据大小为32 X 7 X 2,输出为480,激活层和drop层的输入输出数据大 小都为480,第二次全连接输入数据大小为480,输出数据大小为31;最后进行softmax操作, 得到输出结果,输出结果大小为31。
[0090] 步骤4.2,建立如图6所示的深度学习字母与数字的网络结构DL2,该网络结构输入 为车牌非汉字图像集,大小为w X h X C(w X h为车牌汉字图像的分辨率,C为通道值,取值为 1),记为\,其中N2代表车牌非汉字的种类数,取值为34。车牌非汉字的网络结构总共有 10层,分别由1个输入层,2个卷积层,2个池化层,1个激活层,2个全连接层,1个softmax层,1 个输出层连接而成,具体连接顺序为:输入-卷积-池化-卷积-池化-全连接-激活-全连接-softmax-输出。非汉字网络结构中网络层的类别以及数目如表4所示,其中S为网络层的类 别,η为网络层数目。
[0091]
[uuyz」 衣4
[0093]非汉字网络层连接顺序如表5所示,其中S为网络层的类别,ix为网络层的连接顺 序编号。
[0094]
[0095] 表 5
[0096] 非汉字网络层的通道值设置如表6所示,其中ix为网络层的连接顺序编号,V为网 络层的通道值。
[0097]
[0098] 表 6
[0099] 在具体实施例中,如图6所示,输入层是20*40*1 (w = 20,h = 40,C=l)大小的数据, 在第一次卷积时,采用的卷积模板大小为5\5(即1^1'1161_'\¥ = 1^1'1161_11 = 5),步长为1(即 Stride = l),通道值为20,卷积后的输出数据大小为16X36X20。卷积后的输出数据作为池 化层的输入,在第一次池化时,采用的模板大小为2X2,步长为2,通道值为20,池化后数据 大小为8X18X20。此时完成了第一次的卷积和第一次的池化操作;接着执行第二次的卷积 和池化操作,其中的卷积模板大小、池化模版大小和步长保持不变,通道数变为50;再依次 执行全连接、激活和全连接操作,第一次全连接的输入数据大小为50 X 7 X 2,输出为500,激 活层的输入和输出数据大小都为500,第二次全连接输入数据大小为500,输出数据大小为 34;最后进行softmax操作,得到输出结果,输出结果大小为34。
[0100]其中,卷积层主要通过卷积核抽取特征,每一个特征值都是取模板与原图像对应 像素的乘积之和。卷积的具体操作过程如表7所示:
[0101
[0102] 表7
[0103] 池化层主要通过下采样减少卷积层的空间分辨率。在池化层的输入中,每个不重 叠大小为r X r的区域视为一个池,常用的池操作为池平均(average-pool ing)操作或池最 大(max-pooling)操作。在具体的实施例中,选用的是2 X 2大小的区域以及池最大操作,输 入数据经过池化层处理后由原来的_ X nn变为其中_ X nn池化层输入数据的大 小,池化过程如表8所示:
[0104]
[0105] 表8
[0106] -个全连接由标准的两层神经网络组成,第一个全连接层是把大小为50 X 7 X 2的 输入数据作为700个输入神经元,把输出神经元的个数设置为500,构成一个两层的神经网 络。第二个全连接层是把大小为500的输入数据作为500个输入神经元,把输出神经元的个 数设置为34,构成一个两层的神经网络。
[0107] 激活层是对输入的数据进行激活操作,即若每个数据元素符合条件,则数据被激 活,使其向下一层传递,否则的话则不被传递。
[0108] drop层是随机对一些神经元进行抑制,使其处于未激活状态。
[0109] softmax层主要是对全连接之后的数据进行归一化操作使其范围必须在[0,1]之 间。
[0110] 步骤5:利用网络结构训练分类器:
[0111] 把汉字图像集Cl_train作为输入,代入汉字网络结构DU,训练得到汉字分类器 DL&;把非汉字图像集C2_train作为输入,代入非汉字网络结构DL2,训练得到非汉字分类器 DLC2。具体按照以下步骤:
[0112] ①选择训练数据:以步骤3中的7100张汉字图像集Cl_train作为训练汉字字符分 类器的数据集,以39000张非汉字图像集C2_train(其中包括数字和字母图像集)作为训练 非汉字字符分类器的数据集;
[0113]②设置样本标签:汉字类别总共为见类,类别标签号0~见_1;而非汉字的类别总共 为他类,类别标签号为0~N2-l,在本实施例中,Ni = 31,N2 = 34。分别制作汉字标签文件Labi, 非汉字标签文件Lab2;标签文件的内容包括图像集(Cl_train和C2_train)里每个字符样本 所存的路径以及对应类别标签号;
[0114] ③利用caf f e架构下的命令语句sudo create_imagenet · sh把汉字图像集Cl_ train转化为数据库DBi,把将非汉字图像集转化为数据库DB2;
[0115] ④把网络结构、数据库和标签文件的所在路径写入配置文件struct, prototxt;
[0116] ⑤设置训练参数并写入配置文件solver · prototxt:主要包括训练中的基础学习 率、学习率的调整策略、最大迭代次数等等,具体设置如表9所示:
[0117]
[0118]
[0119]表9
[0120] ⑥在Caffe架构下调用命令语句完成训练· /build/tools/caffe train-solver =?/8〇1¥61'41'〇1:〇丨11:,利用数据库0131、汉字样本标签和汉字网络结构0]^1训练生成汉字分 类器DLC1;利用数据库DB2、非汉字样本标签和非汉字网络结构DLdll练生成非汉字分类器 DLC2〇
[0121] 车牌的汉字和非汉字分类器生成后,便可对车牌的字符进行识别,其包括以下步 骤:
[0122] 步骤6:建立如表10所示的汉字索引表Tah和如表11所示的非汉字索引表Tab2,然 后对抓拍视频流中每帧图像定位的各个车牌图像进行步骤1的预处理,得到待识别各个车 牌图像的字符样本集Ck k = 1,2,…K,K为定位到的车牌个数,Ck = {C1,c2,…cm},其中cm为车 牌Ck中的第m个字符,1彡m彡M,M为车牌Ck包含的字符总个数,本实施例中M=7;
[0123] 步骤7:对字符样本集C中的各个字符~经由步骤2处理,得到归一化后的车牌字符 jior . L· 9 m
[0124] 步骤8:对车牌各个字符进行识别:
[0125] 根据字符所在位置进行字符类型判断,如果是第一个字符,即为汉字字符,否则为 非汉字字符。把汉字字符代入汉字深度学习分类器DL&,输出结果为汉字的类别索引/1;!,其 中(1 = 0,1,-_,仏-1,111=1,仏为汉字的类别数,取值为31,查找如表10所示的汉字索引表 Tab:,得到汉字的识别结果Rm,m=l。把非汉字字符代入非汉字分类器DLC2,输出结果为非汉 字的类别索引 721,其中(1 = 0,1,···,Ν2-1,πι = 2,3,···,Μ,Ν2为非汉字的类别数,这里取值34, 查找如表11所示的非汉字索引表Tab 2,得到非汉字字符的识别结果1,111=2,3,一,。合并各 个字符的识别结果,得到车牌的最终识别结果R P,RP=URm,m = 1,2,…,M。
[0126]
[0129] 表11
[0130] 在具体实施例中,选用了 1550张汉字字符图像,用深度学习汉字分类器进行识别, 识别结果如表12所示:
[0131]
[0132] 表12
[0133] 选用了3000张非汉字字符图像,用深度学习非汉字分类器对其进行识别,识别结 果如表13所;
[0134]
[0135] 表13
[0136] 从以上实验结果可以看出,利用深度学习训练的字符分类器对车牌字符具有很高 的识别精度。
[0137]
[0138] 表14
[0139] 另外,对定位分割后的352个车牌图像,利用传统的BP神经网络字符识别方法与本 发明的识别方法分别进行了实验验证,识别率的对比结果如表14所示,BP神经网络方法的 字符识别率为57.1%,本发明的字符识别率为90.62%。实验结果表明,相对传统的BP神经 网络字符识别方法,本发明的一种基于Caffe框架的深度学习车牌字符识别方法能够在很 大程度上提升车牌识别系统的性能。
【主权项】
1. 一种基于化ffe框架的深度学习车牌字符识别方法,其特征在于,包括分类器训练w 及字符识别两个过程, 其中,分类器训练的具体步骤如下: 步骤1,对大量的样本车牌图像进行车牌定位、车牌校正、二值化处理和字符分割的预 处理,得到分割出的二值化字符图像集C_train,总共含有的样本个数为化am; 步骤2,字符处理:对字符图像集C_train中的各个字符图像进行中屯、化、切变校正W及 归一化的处理,得到归一化后的字符图像集(:_付曰山。。^; 步骤3,把字符图像集C_hainnw分成两个子集,分别为汉字图像集Cl_train和数字及 字母的非汉字图像集C2_train; 步骤4,建立两种基于化ffe架构的深度学习网络结构,其中,一种为汉字网络结构化1, 另一种为非汉字网络结构DL2; 步骤5,利用步骤4建立的网络结构训练分类器:把汉字图像集Cl_train作为输入,代入 汉字网络结构化1,训练得到汉字分类器化Cl;把非汉字图像集C2_train作为输入,代入非汉 字网络结构化2,训练得到非汉字分类器化C2 ; 字符识别的具体步骤如下: 步骤6,预先建立汉字索引表Tabi和非汉字索引表化b2,然后对抓拍视频流中每帖图像 定位的各个车牌图像进行步骤1的预处理,得到待识别各个车牌图像的字符样本集C,C = kl,C2,…(3。,-'0|?},其中(3。为车牌中的第111个字符,1《111《1,1为单个车牌包含的字符总个 数; 步骤7,对字符样本集C中的各个字符Cm经由步骤2的处理,得到归一化后的车牌字符 (""/ · m ' 步骤8,对车牌各个字符<1,^分别进行识别: 根据字符所在位置进行字符类型判断,如果是第一个字符,即为汉字字符,否则为非汉 字字符,把汉字字符代入汉字分类器化Cl,输出结果为汉字的类别索引其中d = 0, 1,…,Ni-1,m= 1,化为汉字的类别数,查找对应的汉字索引表化bi得到汉字的识别结果Rm,m =1;把非汉字字符代入非汉字分类器化C2,输出结果为非汉字的类别索引巧1,其中d = 0, 1,…,化-1,m = 2,3,…,M,化为非汉字字符的类别数,查找非汉字索引表化b2分别得到非汉 字字符的识别结果3。,111 = 2,3,-',1,按顺序合并各个字符的识别结果,得到车牌的识别结 果 Rp, Rp 二 URm,其中m 二 1,2,···,Μ。2. 如权利要求1所述的一种基于Caffe框架的深度学习车牌字符识别方法,其特征在 于,所述步骤2字符处理的具体步骤如下: 步骤2.1,对字符集C_hain中的每一个字符进行几何投影,分别得到其垂直投影宽度, 计算投影宽度和字符标准宽度的差值,根据差值的取值对字符是否需要进行中屯、化处理进 行判断,若需要,则进行中屯、化处理;若不需要,不做任何处理,最终得到字符图像集(:_ tr 曰 inCen; 步骤2.2,对C_haineen中的每个车牌字符进行投影宽度最小化的切变校正,得到切变 校正后的字符图像集C_train?T; 步骤2.3,将切变校正后的字符图像集C_hainWT中的字符按1:2的宽高比进行大小归 一化,得到归一化的字符图像集C_trainn°T,其中每个字符的大小为wXh。3. 如权利要求2所述的一种基于Caffe框架的深度学习车牌字符识别方法,其特征在 于,所述步骤2.1中判断字符是否中屯、化W及中屯、化的处理方法按照W下步骤实施: ① 对对字符集C_train中的各个字符图像trains进行垂直投影得到投影图像,其中j = 1,2,3-Nsa",对投影图像按列进行统计,得到每一列的关键点个数,即值为255的像素点个 数,记为Si,i = 1,2,…,wj,其中wj为字符trainj的宽度; ② 从投影图像的最左端开始向中间移动,找到第一个不为0的Si,其列号i作为左边界值 Bji;同理,从投影图像的最右端开始向中间移动,找到第一个不为0的Si,其列号i作为右边 界值&T; ③ 计算是否进行中屯、化的判断阔值Tj:④ 若Tj = 0,则不需要中屯、化处理;否则进行中屯、化处理,即,若T户0,则把字符图像 trainj中值为255的像素点向左平移Tj个单位;若Tj<0,则把字符图像化ainj中值为255的像 素点向右平移Tj个单位。4. 如权利要求3所述的一种基于Caffe框架的深度学习车牌字符识别方法,其特征在 于,所述步骤2.2中对中屯、化后的字符图像集C_traineen进行切变校正的方法具体按照W下 步骤实施: ① 设置初始值:角度变化范围为[9s,0e],最小投影宽度wid = WID_MIN,旋转角度初始值 Θ = 0S,最佳旋转角度初始值0ba= Θ,角度增量② 对字符图像集(:_付曰山。6。中的字符样本j二1,2,3,…扼。。旋转目角度,旋转后 经由2.1中的步骤①、②处理,得到字符样本的左右边界值B/和B/,确定其投影的宽度值 <,vrf ,判断W;是否小于wid,若是,则令、加= <,目/3 =目;若不是,继续步骤③; ③ 令当前的旋转角度Θ为步骤②中的旋转角度Θ加角度增量ΔΘ,并对当前旋转角度Θ值 进行判断,若则返回步骤②;若θ〉θ6,继续步骤④; ④ 根据eba取值确定图像immf所在的外接四边形巧; ⑤ 对四边形进行逆透视变换,得到校正后的字符图像化曲Γ,細。Γ=化謝-如.(C), 其中化ans_Per( ·)为逆透视变换函数。5. 如权利要求1所述的一种基于Caffe框架的深度学习车牌字符识别方法,其特征在 于,所述步骤4的建立两种基于化ffe架构的深度学习网络结构具体按照W下步骤实施: 步骤4.1,建立深度学习汉字网络结构化1:该网络结构输入为车牌汉字图像集,大小为W XhXC,其中wXh为车牌汉字图像的分辨率,C为通道值;输出为车牌汉字类别索引的集合, 记为其中化代表车牌汉字的种类数;车牌汉字的网络结构的总层数为13,分别由1个 输入层,2个卷积层,2个池化层,3个激活层,2个全连接层,1个softmax层,1个化op层和1个 输出层连接而成,具体连接顺序为:输入-卷积-激活-池化-卷积-激活-池化-全连接-激活- 化op-全连接-softmax-输出; 步骤4.2,建立深度学习字母与数字的网络结构化2:该网络结构输入为车牌非汉字图像 集,大小为wXhXC,其中wXh为车牌汉字图像的分辨率,C为通道值;输出为车牌非汉字类 别索引的集合,记为其中化代表车牌非汉字的种类数;车牌非汉字的网络结构的总 层数为10,分别由1个输入层,2个卷积层,2个池化层,1个激活层,2个全连接层,1个softmax 层,1个输出层连接而成,具体连接顺序为:输入-卷积-池化-卷积-池化-全连接-激活-全连 接-sof tmax-输出。6.如权利要求1或5所述的一种基于化ffe框架的深度学习车牌字符识别方法,其特征 在于,所述步骤5中训练分类器的方法具体按照如下步骤: ① 选择训练数据:W汉字图像集Cl_train作为训练汉字字符分类器的数据集,W非汉 字图像集C2_train作为训练非汉字字符分类器的数据集; ② 设置样本标签:汉字类别总共为化类,类别标签号0~化-1;非汉字的类别总共为化 类,类别标签号为0~化-1,分别制作汉字标签文件Labi,非汉字标签文件Lab2,标签文件的 内容包括汉字图像集Cl_train和非汉字图像集C2_train里每个字符样本所存的路径W及 对应类别标签号; ③ 利用化ffe架构,把汉字图像集Cl_train转化为数据库DBi,把将非汉字图像集转化为 数据库DB2; ④ 把网络结构、数据库DBi和DB2、汉字标签文件Labi和非汉字标签文件Lab2的所在路径 存入化ffe配置文件; ⑤ 设置训练参数存入化ffe配置文件; ⑥ 在化ffe架构下完成训练,利用数据库DBi、汉字标签文件Labi和汉字网络结构化1训 练生成汉字分类器化Cl;利用数据库DB2、非汉字标签文件Lab2和非汉字网络结构化2训练生 成数字及字母分类器化C2。
【文档编号】G06K9/32GK105975968SQ201610298195
【公开日】2016年9月28日
【申请日】2016年5月6日
【发明人】赵凡, 贺建平, 吉璐, 杨丹, 钞蓓英
【申请人】西安理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1