著录项信息
专利名称 | 基于深度学习的移动平台烟草激光码智能识别方法及装置 |
申请号 | CN201510025849.9 | 申请日期 | 2015-01-19 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2015-04-29 | 公开/公告号 | CN104573688A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06K9/34 | IPC分类号 | G;0;6;K;9;/;3;4;;;G;0;6;K;9;/;6;2查看分类表>
|
申请人 | 电子科技大学 | 申请人地址 | 四川省成都市高新西区西源大道2006号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 电子科技大学 | 当前权利人 | 电子科技大学 |
发明人 | 刘贵松;陈文宇;罗光春;秦科;蔡庆;李宝程 |
代理机构 | 成都弘毅天承知识产权代理有限公司 | 代理人 | 杨保刚;徐金琼 |
摘要
本发明涉及数字图像处理与分割领域和烟草真伪检测领域,提供了基于深度学习的移动平台烟草激光码智能识别方法及装置。首先通过终端摄像头获取条烟包装表面的激光码图像,采用大律法和局部阈值化技术相结合对图像进行二值化;对激光码图像进行校正,使得激光码字符区域处于一个与屏幕平行的矩形区域;通过字符分割将激光码图像分割为单个字符图像;采用分割后的激光码字符训练构建的深度卷积神经网络,将训练好的神经网络移植到移动平台(基于Android)客户端,采用该深度卷积神经网络对烟草激光码进行字符识别;通过比对后台烟草编码规则即可及时判断烟草真伪。
1.基于深度学习的移动平台烟草激光码自动识别方法,其特征在于包括如下步骤:
步骤1)、获取烟草激光码图像,去除图像周围的无效区域,保留图像中心矩形区域,然后采用大律法和局部阈值化技术相结合对图像进行二值化,最后去除激光码图像中存在的杂点;
步骤2)、对激光码图像进行校正,使得激光码字符区域处于一个与屏幕平行的矩形区域;
步骤3)、根据矩形区域的位置,进行纵向的字符分割和横向的字符分割,从而将激光码图像分割为单个字符图像,完成激光码图像字符分割;
步骤4)、构建深度卷积神经网络,并采用分割后的激光码字符训练构建的深度卷积神经网络,将训练好的神经网络移植到移动平台客户端,烟草激光码采用该深度卷积神经网络进行字符识别;
步骤5)、将识别到的烟草激光码字符发送至存有烟草编码规则和生产销售指标的服务器,服务器查询数据库,并根据烟草激光码编码规则判断烟草真伪,并将查询结果返回给移动平台客户端;
结合大律法和局部阈值化技术对图像进行二值化,具体操作步骤如下:
2-1:首先根据图像的实际拍摄情况对图像进行区域划分;
2-2:初始化系统参数,indexNum代表现在处理的区域索引数,num代表图像总的分区数,indexNum的初始值为零;
2-3:接下来对每个区域采用大律法进行图像二值化,应用大律法对图像进行二值化,具体操作如下;
2-3-1:用大律法对图像进行二值化,首先初始化系统参数,Min代表阈值的最小值,Max代表阈值的最大值,Thread代表该区域的阈值,Thread的初始值为Min,index是循环中的一个游标,其初始值为Min-1;
2-3-2:修改index的值,使index加1;
2-3-3:判断index值与Max的大小关系,如果index小于Max则进行到下一步,否则退出该循环,直接跳转到2-4;
2-3-4:以index作为当前区域的阈值,计算在该区域时,前景平局灰度与背景平局灰度的差值sub,sub的计算方法如下:
sub=|color_f/num_f-color_b/num_b|
sub代表前景平均灰度值与背景平均灰度值差值的绝对值,color_f代表前景总灰度值,num_f代表前景点的像素数目,color_b代表背景总灰度值,num_b代表背景点的像素数目;
2-3-5:计算前景灰度平均值与背景灰度平均值差值的绝对值sub与MaxSub的大小关系,如果sub大于MaxSub,则更新MaxSub的值为sub,并且更新阈值thread的值为当前索引index,同时跳转到2-3-2;否则直接跳转到2-3-2;
2-4:该步骤结束大律法的循环操作,将大律法得到的阈值作为区域索引数为indexNum的区域的阈值,并且对该区域进行二值化;
2-5:将区域索引数indexNum加1;
2-6:判断区域索引数indexNum与区域总数num的关系,如果indexNum小于num,则跳转到2-3-1,对区域索引数为indexNum的区域用大律法进行二值化,否则结束二值化。
2.根据权利要求1所述的基于深度学习的移动平台烟草激光码自动识别方法,其特征在于,对激光码图像进行校正包括以下步骤:
3-1:经过步骤1)处理后的烟草激光码字符区域看成是一个矩形区域,扫描矩形区域,获取字符串区域的四个顶角,用TL、TR、DL、DR分别代表字符串区域的左上角、右上角、左下角和右下角;
3-2:计算四个顶角的位置关系,如果满足条件TL.x-DL.x>TR.x-TL.x,x代表点的横坐标,y代表点的纵坐标,则对图像顺时针旋转角度α,计算公式为:
α=arctan((TL.y-DL.y)/(TL.x-DL.x))
否则逆时针旋转角度β,角度β的计算公式如下:
β=arctan((TL.x-DL.x)/(TL.y-DL.y))
3-3:对旋转过后的图像进行分割,再次扫描图像,去除图像的边缘部分;
3-4:保存裁剪后的激光码图像,用来进行下一步的字符分割。
3.根据权利要求1所述的基于深度学习的移动平台烟草激光码自动识别方法,其特征在于,步骤3)具体包括以下步骤:
4-1:首先要计算校正过后的图像的左右边缘位置,然后根据图像字符位置对烟草激光码图像进行等值划分,把图像分割为十六个等值区域,记录这十六个区域的位置,并且将这些位置作为烟草激光码预分割的位置;
4-2:精确字符分割的位置,通过均分烟草激光码图像,获得了预分割的位置,扫描预分 割线左右10个像素之间的区域,统计该区域内每列的像素数目,以像素最少的列作为精确的分割线,完成了纵向的字符分割;
4-3:纵向精确分割结束后,得到的是二行一列的字符图像,首先横向均分图像,进行图像预分割,再扫描分割线上下5个像素点之间的区域,确定像素点最少的分割线,对图像进行横向精确分割,该步骤结束后就得到了单个的字符图像。
4.根据权利要求1所述的基于深度学习的移动平台烟草激光码自动识别方法,其特征在于,深度卷积神经网络进行字符识别包括以下步骤:
5-1:首先对分割后的字符图像进行预处理,将其归一化为大小为29×29的图像;
5-2:对归一化后的输入图像进行卷积操作,卷积核大小为4×4,用20个不同的高斯卷积核来处理图像,得到一个有20卷积图像的卷积层L1,每个卷积图像的大小为26×26;
5-3:对卷积层L1进行下采样处理,将卷积层的长宽都缩小为原来的二分之一,得到一个有20个图像的下采样层L2,每个图像的大小为13×13;
5-4:对下采样层L2再次进行卷积操作,卷积核为5×5,获得一个有40个卷积图像的卷积层L3,每个卷积图像的大小为9×9;
5-5:对卷积层L3进行下采样,长和宽都缩小为原来的三分之一,这样得到一个有40个图像的下采样层L4,每个图像的大小为3×3;
5-6:将采样层L4的图像映射为一个一维的数据;
5-7:在L5网络全连接层,对得到的一维数据进行分类,得到最终的分类结果。
5.基于深度学习的移动平台烟草激光码自动识别装置,其特征在于包括:
烟草激光码图像预处理模块:获取烟草激光码图像,去除图像周围的无效区域,保留图像中心矩形区域,然后采用结合大律法和局部阈值化技术对图像进行二值化,最后去除激光码图像中存在的杂点;
激光码图像校正模块:对激光码图像进行校正,使得激光码字符区域处于一个与屏幕平行的矩形区域;
激光码图像字符分割模块:根据矩形区域的位置,进行纵向的字符分割和横向的字符分割,从而将激光码图像分割为单个字符图像,完成激光码图像字符分割;
激光码图像字符识别模块:构建深度卷积神经网络,并采用分割后的激光码字符训练构建的深度卷积神经网络,将训练好的神经网络移植到移动平台客户端,烟草激光码采用该深度卷积神经网络进行字符识别;
烟草真伪验证模块:将识别到的烟草激光码字符发送至存有烟草编码规则和生产销售指标的服务器,服务器查询数据库,并根据烟草激光码编码规则判断烟草真伪,并将查询结果返 回给移动平台客户端;
结合大律法和局部阈值化技术对图像进行二值化,具体通过以下装置实现:
7-1首先根据图像的实际拍摄情况对图像进行区域划分的装置;
7-2初始化系统参数的装置:indexNum代表现在处理的区域索引数,num代表图像总的分区数,indexNum的初始值为零;
7-3接下来对每个区域采用大律法进行图像二值化的装置,应用大律法对图像进行二值化,具体操作如下;
7-3-1:用大律法对图像进行二值化,首先初始化系统参数,Min代表阈值的最小值,Max代表阈值的最大值,Thread代表该区域的阈值,Thread的初始值为Min,index是循环中的一个游标,其初始值为Min-1;
7-3-2:修改index的值,使index加1;
7-3-3:判断index值与Max的大小关系,如果index小于Max则进行到下一步,否则退出该循环,直接跳转到7-4;
7-3-4:以index作为当前区域的阈值,计算在该区域时,前景平局灰度与背景平局灰度的差值sub,sub的计算方法如下:
sub=|color_f/num_f-color_b/num_b|
sub代表前景平均灰度值与背景平均灰度值差值的绝对值,color_f代表前景总灰度值,num_f代表前景点的像素数目,color_b代表背景总灰度值,num_b代表背景点的像素数目;
7-3-5:计算前景灰度平均值与背景灰度平均值差值的绝对值sub与MaxSub的大小关系,如果sub大于MaxSub,则更新MaxSub的值为sub,并且更新阈值thread的值为当前索引index,同时跳转到7-3-2;否则直接跳转到7-3-2;
7-4结束大律法的循环操作,将大律法得到的阈值作为区域索引数为indexNum的区域的阈值,并且对该区域进行二值化的装置;
7-5将区域索引数indexNum加1的装置;
7-6判断区域索引数indexNum与区域总数num的关系,如果indexNum小于num,则跳转到
7-3-1,对区域索引数为indexNum的区域用大律法进行二值化,否则结束二值化的装置。
6.根据权利要求5所述的基于深度学习的移动平台烟草激光码自动识别装置,其特征在于,激光码图像校正模块包括以下装置:
获取字符串区域的四个顶角的装置:处理后的烟草激光码字符区域看成是一个矩形区域,扫描矩形区域,获取字符串区域的四个顶角,用TL、TR、DL、DR分别代表字符串区域的左上角、右上角、左下角和右下角;
计算四个顶角的位置关系的装置:计算四个顶角的位置关系,如果满足条件TL.x-DL.x>TR.x-TL.x,x代表点的横坐标,y代表点的纵坐标,则对图像顺时针旋转角度α,计算公式为:
α=arctan((TL.y-DL.y)/(TL.x-DL.x))
否则逆时针旋转角度β,角度β的计算公式如下:
β=arctan((TL.x-DL.x)/(TL.y-DL.y))
对旋转过后的图像进行分割,再次扫描图像,去除图像的边缘部分的装置;
保存裁剪后的激光码图像,用来进行下一步的字符分割的装置。
7.根据权利要求5所述的基于深度学习的移动平台烟草激光码自动识别装置,其特征在于,激光码图像字符分割模块具体以下装置:
首先要计算校正过后的图像的左右边缘位置,然后根据图像字符位置对烟草激光码图像进行等值划分,把图像分割为十六个等值区域,记录这十六个区域的位置,并且将这些位置作为烟草激光码预分割的位置的装置;
精确字符分割的位置,通过均分烟草激光码图像,获得了预分割的位置,扫描预分割线左右10个像素之间的区域,统计该区域内每列的像素数目,以像素最少的列作为精确的分割线,完成了纵向的字符分割的装置;
纵向精确分割结束后,得到的是二行一列的字符图像,首先横向均分图像,进行图像预分割,再扫描分割线上下5个像素点之间的区域,确定像素点最少的分割线,对图像进行横向精确分割,结束后就得到了单个的字符图像的装置。
8.根据权利要求5所述的基于深度学习的移动平台烟草激光码自动识别装置,其特征在于,深度卷积神经网络进行字符识别包括以下装置:
首先对分割后的字符图像进行预处理,将其归一化为大小为29×29的图像的装置;
对归一化后的输入图像进行卷积操作的装置:卷积核大小为4×4,用20个不同的高斯卷积核来处理图像,得到一个有20卷积图像的卷积层L1,每个卷积图像的大小为26×26;对卷积层L1进行下采样处理的装置:将卷积层的长宽都缩小为原来的二分之一,得到一个有
20个图像的下采样层L2,每个图像的大小为13×13;
对下采样层L2再次进行卷积操作的装置:卷积核为5×5,获得一个有40个卷积图像 的卷积层L3,每个卷积图像的大小为9×9;
对卷积层L3进行下采样的装置:长和宽都缩小为原来的三分之一,这样得到一个有40个图像的下采样层L4,每个图像的大小为3×3;
将采样层L4的图像映射为一个一维的数据的装置;
在L5网络全连接层,对得到的一维数据进行分类,得到最终的分类结果的装置。
基于深度学习的移动平台烟草激光码智能识别方法及装置\n技术领域\n[0001] 本发明涉及数字图像处理与分割领域和烟草真伪检测领域,具体涉及一种采用基于数字形态学的图像处理技术和基于深度卷积神经网络的图像字符识别方法及装置。\n背景技术\n[0002] 烟草激光码是烟草的身份证号码,每条烟的激光码是唯一的。烟草的激光码有一串32位的数字和英文字符组成。烟草激光码的信息统一,编码格式规范,便于实现烟草激光码的真伪验证的自动化。\n[0003] 烟盒上的激光码是识别烟草信息的重要渠道,对烟草行业的管理有着重要的意义。然而在传统的烟草行业中,主要通过人工输入的方式来获取激光码,然后通过烟草信息管理系统来判断烟草真伪以及提供烟草相关信息查询。手工输入费时费力,给烟草管理部门相关核查人员带来极大的不便,因此一套可以自动识别烟草激光码的方法和系统具有重要实际价值。\n[0004] 从20世纪60年代美国喷气推进实验室应用图像处理技术处理卫星图像开始,计算机图像处理技术经过了半个世纪的发展,目前计算机图像处理技术已经比较成熟,在许多方面得到了广泛的应用。\n[0005] (1)手写识别与光学文字分析\n[0006] 文字识别应用主要分为以下三个方面:手写体字符识别、印刷体字符识别和车牌识别。\n[0007] 手写体字符识别主要通过分析字符特征和笔画输入顺序来识别字符,其识别过程如下:首先进行图像预处理,对图像进行噪声过滤、图像增强和图像二值化。一般采用中值滤波或低通滤波来去除图像噪声,对于大的杂质,可以采用数字形态学进行去除;图像增强一般采用高通滤波技术;图像二值化技术一般采用大律法或局部阈值法。接下来进行字符分割,字符分割一般采用基于连通域分割方法或基于字符位置分割方法。由于手写体字符之间存在粘连,字符识别的限制性也很强,目前总体识别率并不高。\n[0008] 车牌识别的应用十分广泛,是交通管控系统的重要组成部分。与手写体字符识别相比,车牌字符规范,背景也比较单一,因此其识别准确率很高,在智能交通系统得到了广泛应用。\n[0009] 印刷体字符识别,由于其字符高度、宽度、间距相对固定,背景颜色单一,因此识别准确率很高。印刷体字符识别技术已经比较成熟,相关技术已经实用化,在Adobe、福昕等多款文字处理软件中得到了应用。\n[0010] (2)医学图像分析\n[0011] 临床医学图像分析是图像识别一个重要的应用领域,是医学影像自动诊断的核心,对医学临床诊断和治疗具有重要意义。早在20世纪70年代,图像识别技术就已经应用到医学图像处理领域。目前图像识别技术在乳腺疾病的自动诊断与治疗、肺部疾病的诊断及治疗等方面的应用已经比较成熟。医学图像分析研究技术是图像处理技术与其他学科的综合、交叉和扩展的结果,其涉及到计算机图像处理技术、医学诊断技术和专家系统等多种技术。医学图像的自动识别和诊断已经获得了医学界和计算机图像处理领域的极大关注,是医学图像领域与图像识别领域的研究热点。\n[0012] (3)生物识别技术\n[0013] 生物识别技术发展已经比较成熟,在工业界获得了广泛的应用。人脸识别技术和指纹识别技术都是生物识别技术的一种。\n[0014] 人脸图像涉及一系列相关技术,包括图像采集技术、人脸图像预处理技术、人脸定位技术以及身份确认技术等。人脸识别一般采用以下几种方法:基于几何特征的人脸识别方法、基于主特征的人脸识别方法、基于神经网络的人脸识别方法、基于弹性图匹配的人脸识别方法、基于线段距离人脸识别方法以及基于支持向量机的人脸识别方法。人脸识别技术具有自然性和不易被观测个体觉察性的特点,具有其他身份识别技术无法比拟的优点。\n但是其本身也面临很多技术难题,首先是人脸的结构是相似的,这样有利于对人脸进行定位,但是不利于进行个体区分;其次人脸的外形不稳定,因为人有喜怒哀乐等多种表情,有时候还会有头发、胡须等物体遮挡,这给人物个体区分带来很大难度。目前人脸识别技术得许多难题都得到了解决,人脸识别技术在门禁系统、摄像监视系统、网络应用、学生考勤系统等方面得到了实际应用。\n[0015] 指纹识别是根据人的手指末端独特的纹理特征来进行个体的识别。计算机可以根据手指末端的细节特征(如结合点、分叉点、起点、终点、圈等)来进行个体鉴别。指纹识别技术如今已经很成熟,被广泛的应用在门禁、考勤系统、银行支付系统以及笔记本电脑、手机和汽车等设备上。\n[0016] 图像处理与图像识别技术的快速发展为烟草激光码字符图像的自动识别奠定了理论基础。由于烟盒背景复杂、激光码字符不够清晰,因此需要对已有的方法进行改进。\n发明内容\n[0017] 本发明所要解决的技术问题是通过烟草激光码图像实现其内容的智能识别问题,同时要解决烟草激光码字符提取和移动平台字符识别系统开发的问题,本系统采用改进的图像二值化算法和图像字符分割方法,来解决复杂背景下激光码图像有效信息的获取和字符分割的问题;采用深度卷积神经网络,克服传统的字符识别算法中识别准确率低的缺陷;\n采用移动Android NDK编译技术,解决移动平台激光码字符识别系统的开发问题。\n[0018] 为了实现上述目的本发明采用以下技术方案:\n[0019] 本申请提供了一种基于深度学习的移动平台烟草激光码智能识别方法,其特征在于包括如下步骤:\n[0020] 步骤1)、获取烟草激光码图像,去除图像周围的无效区域,保留图像中心矩形区域,然后采用结合大律法和局部阈值化技术对图像进行二值化,最后去除激光码图像中存在的杂点;\n[0021] 步骤2)、对激光码图像进行校正,使得激光码字符区域处于一个与屏幕平行的矩形区域;\n[0022] 步骤3)、根据矩形区域的位置,进行纵向的字符分割和横向的字符分割,从而将激光码图像分割为单个字符图像,完成激光码图像字符分割;\n[0023] 步骤4)、构建深度卷积神经网络,并采用分割后的激光码字符训练构建的深度卷积神经网络,将训练好的神经网络移植到移动平台(基于Android)客户端,烟草激光码采用该深度卷积神经网络进行字符识别;\n[0024] 步骤5)、将识别到的烟草激光码字符发送至存有烟草编码规则和生产销售指标的服务器,服务器查询数据库,并根据烟草激光码编码规则判断烟草真伪,并将查询结果返回给移动平台(Android平台)客户端。\n[0025] 上述技术方案中,结合大律法和局部阈值化技术对图像进行二值化具体操作步骤如下:\n[0026] 2-1:首先根据图像的实际拍摄情况对图像进行区域划分;\n[0027] 2-2:初始化系统参数,indexNum代表现在处理的区域索引数,num代表图像总的分区数,indexNum的初始值为零;\n[0028] 2-3:接下来对每个区域采用大律法进行图像二值化,应用大律法对图像进行二值化的具体操作如下所示;\n[0029] 2-3-1:用大律法对图像进行二值化,首先初始化系统参数,Min代表阈值的最小值,Max代表阈值的最大值,Thread代表该区域的阈值,Thread的初始值为Min,index是循环中的一个游标,其初始值为Min-1。\n[0030] 2-3-2:修改index的值,使index加1。\n[0031] 2-3-3:判断index值与Max的大小关系,如果index小于Max则进行到下一步,否则退出该循环,直接跳转到2-4;\n[0032] 2-3-4:以index作为当前区域的阈值,计算在该区域时,前景平局灰度与背景平局灰度的差值sub,sub的计算方法如下:\n[0033] sub=|color_f/num_f-color_b/num_b|(4-2)\n[0034] sub代表前景平均灰度值与背景平均灰度值差值的绝对值,color_f代表前景总灰度值,num_f代表前景点的像素数目,color_b代表背景总灰度值(,num_b代表背景点的像素数目;\n[0035] 2-3-5:计算前景灰度平均值与背景灰度平均值差值的绝对值sub与MaxSub的大小关系,如果sub大于MaxSub,则更新MaxSub的值为sub,并且更新阈值thread的值为当前索引index,同时跳转到2-3-2;否则直接跳转到2-3-2;\n[0036] 2-4:该步骤结束大律法的循环操作,将大律法得到的阈值作为区域索引数为indexNum的区域的阈值,并且对该区域进行二值化;\n[0037] 2-5:将区域索引数indexNum加1。\n[0038] 2-6:判断区域索引数indexNum与区域总数num的关系,如果indexNum小于num,则跳转到2-3-1,对索引标号为indexNum的区域用大律法进行二值化,否则结束二值化。\n[0039] 上述技术方案中,对激光码图像进行校正包括以下步骤:\n[0040] 3-1:经过步骤1)处理后的烟草激光码字符区域可以看成是一个矩形区域(字符串在矩形区域内有倾斜,需校正),扫描矩形区域,获取字符串区域的四个顶角,用TL、TR、DL、DR分别代表字符串区域的左上角、右上角、左下角和右下角;\n[0041] 3-2:计算四个顶角的位置关系,如果满足条件TL.x-DL.x>TR.x-TL.x(x代表点的横坐标,y代表点的纵坐标),则对图像顺时针旋转角度α,计算公式为:\n[0042] α=arctan((TL.y-DL.y)/(TL.x-DL.x))\n[0043] 否则逆时针旋转角度β,角度β的计算公式如下:\n[0044] β=arctan((TL.x-DL.x)/(TL.y-DL.y))\n[0045] 3-3:对旋转过后的图像进行分割,再次扫描图像,去除图像的边缘部分;\n[0046] 3-4:保存裁剪后的激光码图像,用来进行下一步的字符分割。\n[0047] 上述技术方案中,步骤3)具体包括以下步骤:\n[0048] 4-1:首先要计算校正过后的图像的左右边缘位置,然后根据图像字符位置对烟草激光码图像进行等值划分,把图像分割为十六个等值区域,记录这十六个区域的位置,并且将这些位置作为烟草激光码预分割的位置;\n[0049] 4-2:精确字符分割的位置,通过均分烟草激光码图像,获得了预分割的位置,扫描预分割线左右10个像素之间的区域,统计该区域内每列的像素数目,以像素最少的列作为精确的分割线,完成了纵向的字符分割;\n[0050] 4-3:纵向精确分割结束后,得到的是二行一列的字符图像,首先横向均分图像,进行图像预分割,再扫描分割线上下5个像素点之间的区域,确定像素点最少的分割线(与纵向精确分割采用相同的方法),对图像进行横向精确分割,该步骤结束后就得到了单个的字符图像。\n[0051] 上述技术方案中,深度卷积神经网络进行字符识别包括以下步骤:\n[0052] 5-1:首先对分割后的字符图像进行预处理,将其归一化为大小为29×29的图像。\n[0053] 5-2:对归一化后的输入图像进行卷积操作,卷积核大小为4×4,用20个不同的高斯卷积核来处理图像,得到一个有20卷积图像的卷积层L1,每个卷积图像的大小为26×26;\n[0054] 5-3:对卷积层L1进行下采样处理,将卷积层的长宽都缩小为原来的二分之一,得到一个有20个图像的下采样层L2,每个图像的大小为13×13;\n[0055] 5-4:对下采样层L2再次进行卷积操作,卷积核为5×5,获得一个有40个卷积图像的卷积层L3,每个卷积图像的大小为9×9;\n[0056] 5-5:对卷积层L3进行下采样,长和宽都缩小为原来的三分之一,这样得到一个有\n40个图像的下采样层L4,每个图像的大小为3×3;\n[0057] 5-6:将采样层L4的图像映射为一个一维的数据;\n[0058] 5-7:在L5网络全连接层,对得到的一维数据进行分类,得到最终的分类结果。\n[0059] 本发明还提供了一种基于深度学习的移动平台烟草激光码智能识别装置,其特征在于包括:\n[0060] 烟草激光码图像预处理模块:获取烟草激光码图像,去除图像周围的无效区域,保留图像中心矩形区域,然后采用结合大律法和局部阈值化技术对图像进行二值化,最后去除激光码图像中存在的杂点;\n[0061] 激光码图像校正模块:对激光码图像进行校正,使得激光码字符区域处于一个与屏幕平行的矩形区域;\n[0062] 激光码图像字符分割模块:根据矩形区域的位置,进行纵向的字符分割和横向的字符分割,从而将激光码图像分割为单个字符图像,完成激光码图像字符分割;\n[0063] 激光码图像字符识别模块:构建深度卷积神经网络,并采用分割后的激光码字符训练构建的深度卷积神经网络,将训练好的神经网络移植到Android平台客户端,烟草激光码采用该深度卷积神经网络进行字符识别;\n[0064] 烟草真伪验证模块:将识别到的烟草激光码字符发送至存有烟草编码规则和生产销售指标的服务器,服务器查询数据库,并根据烟草激光码编码规则判断烟草真伪,并将查询结果返回给Android平台客户端。\n[0065] 上述识别装置中,结合大律法和局部阈值化技术对图像进行二值化,具体通过以下装置实现:\n[0066] 首先根据图像的实际拍摄情况对图像进行区域划分的装置;\n[0067] 初始化系统参数的装置:indexNum代表现在处理的区域索引数,num代表图像总的分区数,indexNum的初始值为零;\n[0068] 接下来对每个区域采用大律法进行图像二值化的装置,应用大律法对图像进行二值化,具体操作如下;\n[0069] 7-3-1:用大律法对图像进行二值化,首先初始化系统参数,Min代表阈值的最小值,Max代表阈值的最大值,Thread代表该区域的阈值,Thread的初始值为Min,index是循环中的一个游标,其初始值为Min-1;\n[0070] 7-3-2:修改index的值,使index加1;\n[0071] 7-3-3:判断index值与Max的大小关系,如果index小于Max则进行到下一步,否则推出该循环,直接跳转到7-3-4;\n[0072] 7-3-4:以index作为当前区域的阈值,计算在该区域时,前景平局灰度与背景平局灰度的差值sub,sub的计算方法如下:\n[0073] sub=|color_f/num_f-color_b/num_b|(4-2)\n[0074] sub代表前景平均灰度值与背景平均灰度值差值的绝对值,color_f代表前景总灰度值,num_f代表前景点的像素数目,color_b代表背景总灰度值,num_b代表背景点的像素数目;\n[0075] 7-3-5:计算前景灰度平均值与背景灰度平均值差值的绝对值sub与MaxSub的大小关系,如果sub大于MaxSub,则更新MaxSub的值为sub,并且更新阈值thread的值为当前索引index,同时跳转到7-3-2;否则直接跳转到7-3-2;\n[0076] 结束大律法的循环操作,将大律法得到的阈值作为区域索引数为indexNum的区域的阈值,并且对该区域进行二值化的装置;\n[0077] 将区域索引数indexNum加1的装置;\n[0078] 判断区域索引数indexNum与区域总数num的关系,如果indexNum小于num,则跳转到7-3-1,对索引标号为indexNum的区域用大律法进行二值化,否则结束二值化的装置。\n[0079] 上述识别装置中,激光码图像校正模块包括以下装置:\n[0080] 获取字符串区域的四个顶角的装置:处理后的烟草激光码字符区域看成是一个矩形区域(字符串在矩形区域内有倾斜,需校正),扫描矩形区域,获取字符串区域的四个顶角,用TL、TR、DL、DR分别代表字符串区域的左上角、右上角、左下角和右下角;\n[0081] 计算四个顶角的位置关系的装置:计算四个顶角的位置关系,如果满足条件TL.x-DL.x>TR.x-TL.x,x代表点的横坐标,y代表点的纵坐标,则对图像顺时针旋转角度α,计算公式为:\n[0082] α=arctan((TL.y-DL.y)/(TL.x-DL.x))\n[0083] 否则逆时针旋转角度β,角度β的计算公式如下:\n[0084] β=arctan((TL.x-DL.x)/(TL.y-DL.y))\n[0085] 对旋转过后的图像进行分割,再次扫描图像,去除图像的边缘部分的装置;\n[0086] 保存裁剪后的激光码图像,用来进行下一步的字符分割的装置。\n[0087] 上述识别装置中,激光码图像字符分割模块具体以下装置:\n[0088] 首先要计算校正过后的图像的左右边缘位置,然后根据图像字符位置对烟草激光码图像进行等值划分,把图像分割为十六个等值区域,记录这十六个区域的位置,并且将这些位置作为烟草激光码预分割的位置的装置;\n[0089] 精确字符分割的位置,通过均分烟草激光码图像,获得了预分割的位置,扫描预分割线左右10个像素之间的区域,统计该区域内每列的像素数目,以像素最少的列作为精确的分割线,完成了纵向的字符分割的装置;\n[0090] 纵向精确分割结束后,得到的是二行一列的字符图像,首先横向均分图像,进行图像预分割,再扫描分割线上下5个像素点之间的区域,确定像素点最少的分割线(与纵向精确分割采用相同的方法),对图像进行横向精确分割,结束后就得到了单个的字符图像的装置。\n[0091] 上述识别装置中,深度卷积神经网络进行字符识别包括以下装置:\n[0092] 首先对分割后的字符图像进行预处理,将其归一化为大小为29×29的图像的装置;\n[0093] 对归一化后的输入图像进行卷积操作的装置:卷积核大小为4×4,用20个不同的高斯卷积核来处理图像,得到一个有20卷积图像的卷积层L1,每个卷积图像的大小为26×\n26;\n[0094] 对卷积层L1进行下采样处理的装置:将卷积层的长宽都缩小为原来的二分之一,得到一个有20个图像的下采样层L2,每个图像的大小为13×13;\n[0095] 对下采样层L2再次进行卷积操作的装置:卷积核为5×5,获得一个有40个卷积图像的卷积层L3,每个卷积图像的大小为9×9;\n[0096] 对卷积层L3进行下采样的装置:长和宽都缩小为原来的三分之一,这样得到一个有40个图像的下采样层L4,每个图像的大小为3×3;\n[0097] 将采样层L4的图像映射为一个一维的数据的装置;\n[0098] 在L5网络全连接层,对得到的一维数据进行分类,得到最终的分类结果的装置。\n[0099] 本发明有如下功能特点:\n[0100] ①具有很高的自动化水平。系统自动获取激光码图像,自动提取激光码字符。相较传统的方法,减少了人工操作的过程,提高了自动化的程度,同时免除了人工操作引入的误差;\n[0101] ②具有很高的便携性。系统在Android移动平台上开发,便于携带,并且易于使用;\n[0102] ③具有较高的精确性。系统采用改进的图像二值化算法和字符分割算法,与传统的算法相比,本系统可以更好的获取单个激光码字符图像;采用深度卷积神经网络来识别字符,该网络对于图像的缩放、平移和旋转具有很强的不变性,使得本系统具有较高的识别准确率。\n[0103] ④系统实现模块化。系统采用MVC系统架构,实现了界面层与处理层的分离,降低了代码的耦合性。采用java语言进行开发,系统可以方便的移植到其他系统中。\n附图说明\n[0104] 图1是本发明的数据流程图;\n[0105] 图2是激光码图像二值化算法流程图;\n[0106] 图3是烟草激光码图像校正算法流程图;\n[0107] 图4是激光码字符分割算法流程图;\n[0108] 图5是烟草激光码字符识别算法流程图。\n具体实施方式\n[0109] 下面结合附图以及实施例对本发明作进一步的说明。\n[0110] 基于深度学习的移动平台烟草激光码智能识别算法,其主要特点,包括以下步骤:\n[0111] 1、烟草激光码图像预处理模块\n[0112] ①从手机摄像头获取烟草激光码图像;\n[0113] ②自动去除图像周围的无效区域,保留图像中心矩形区域;\n[0114] ③将从摄像头获取的图像进行预处理,本系统采用改进后的图像二值化算法,结合大律法和局部阈值化技术对图像进行二值化,得到二值化后的烟草激光码图像;\n[0115] ④去除激光码图像中存在的杂点,使接下来的图像处理结果更加准确。\n[0116] 2、激光码图像校正与字符分割模块\n[0117] ①扫描图像,计算激光码图像的四个边界点的位置,用来获取激光码字符区域位置;\n[0118] ②根据获取的边界点的位置,计算激光码字符区域与屏幕之间的夹角;\n[0119] ③根据激光码字符区域与屏幕之间的夹角,对激光码图像进行旋转操作,将激光码图像映射到一个与屏幕平行的矩形区域;\n[0120] ④根据激光码矩形区域位置,将其均分为16个相等区域,完成激光码字符区域的预分割线;\n[0121] ⑤计算预分割线位置左右5个像素点的范围内每列像素点的数目,像素数目最少的列作为激光码图像准确的分割位置;\n[0122] ⑥采用同样的方法,对字符区域横向区域进行分割,将激光码图像分割为单个字符图像。\n[0123] 3、激光码图像字符识别模块\n[0124] ①构建深度卷积神经网络模型,并随机设置神经网络的权值;\n[0125] ②采用分割后的激光码字符训练构建的深度卷积神经网络,调整网络的权值;\n[0126] ③对部分训练图片打标签,采用BP算法对神经网络的权值进行微调;\n[0127] ④将训练好的神经网络移植到移动平台(Android平台)客户端,烟草激光码自动识别系统以后直接采用该网络进行字符识别;\n[0128] 4、烟草真伪验证模块\n[0129] ①构建服务器端,将烟草编码规则和生产销售指标保存在系统数据库中;\n[0130] ②服务器端监听连接,客户端向服务器发起连接;\n[0131] ③客户端向服务器端发送识别到的烟草激光码字符,服务器查询数据库,根据烟草激光码编码规则判断烟草真伪;\n[0132] ④服务器端将检测结果反馈给客户端,客户端接收信息,并将其展示给用户。\n[0133] 其中:\n[0134] 结合局部阈值分割技术与大律法对图像进行二值化:针对烟草激光码图像背景复杂、光照不均匀的特点,本系统采用局部阈值技术与大律法结合的方法来完成激光码图像的二值化。具体操作步骤如下:A、根据图像大小,将激光码图像划分为小块;B、对所有小快的图像分别采用大律法计算其阈值;C、对每个小块采用对应的阈值进行二值化。这样做可以最大程度上避免光照和背景复杂带来的影响。\n[0135] 大律法阈值分割:对分割后的每个激光码字符区域进行阈值分割,采用最为通用的大律法,具体步骤是:A、对图像进行遍历找到图像的最小灰度值w,记t=w为前景与背景的分割阈值;B、再次遍历图像,前景点数目占图像比例为w0,平均灰度为u0,背景点数目占图像比例为w1,平均灰度为u1,图像的总平均灰度为:u=w0*u0+w1*u1;C、从最小灰度值到最大灰度值遍历t,当t使得值g=w0*(u0-u)2+w1*(u1-u)2最大时t即为分割的最佳阈值;D、以t为阈值对图像进行分割,灰度值大于t的分为前景,值为1,灰度值小于t的为背景,值为\n0。\n[0136] 烟草激光码字符分割:烟草激光码字符之间存在粘连情况,字符区域相对一般的光学字符来说也不够规范,采用传统的分割方法很容易对字符进行错误分割,因此本系统对激光码字符分割算法进行了改进。具体步骤如下:A、对字符图像进行校正,使字符图像矩形区域与显示设备平行;B、采用基于位置的分割方法对激光码字符图像进行预分割,将其分割为16等份,记录预分割的位置;C、扫描预分割线左右5个像素的区域,查找像素点最少的列,该列作为图像最后的纵向分割位置,依次完成16个图像区域的纵向分割;D、采用相同的方法完成图像区域的横向分割,得到单个字符图像。\n[0137] 应用深度卷积神经网络进行字符识别:采用传统的SIFT特征提取算法和基于词袋模型的字符分类算法来进行烟草激光码的识别,其鲁棒性不强,对背景多变的图像很难达到普适性;采用多层感知机算法来进行识别,其准确率较低。因此本系统采用深度卷积神经网络,该算法在识别的准确性和算法的普适性方面都达到了系统的要求。具体的步骤如下:\nA、构建一个五层的深度卷积神经网络,该网络的初始权值设为随机的;B、用分割后得到的单个字符图像逐层训练神经网络,得到网络的权值;C、给图像库中的部分数据打标签,采用BP算法,调整网络结构的权值;D、将训练好的网络直接移植到Android移动平台,训练好的网络可以直接用来分类。\n[0138] 如图1所示,圆形框代表处理的步骤,实线代表数据处理流程。\n[0139] 系统对获取到的烟草激光码图像,首先会进行图像二值化操作。由于激光码图像存在背景复杂、激光码字符模糊的问题,采用传统的分割算法不能取得理想的分割效果。本系统针对烟草激光码图像的特点,对图像二值化方法进行了改进。改进后的烟草激光码图像二值化算法如图2所示。\n[0140] Step 1:首先根据图像的实际拍摄情况对图像进行区域划分,根据试验对比,划分为八个区域的识别准确率比较高,因此本系统将图像分为八个区域。\n[0141] Step 2:初始化系统参数,indexNum代表现在处理的区域索引数,num代表图像总的分区数,indexNum的初始值为零。\n[0142] Step 3:接下来对每个区域采用大律法进行图像二值化,应用大律法对图像进行二值化的具体操作如下所示;\n[0143] Step 3-1:用大律法对图像进行二值化,首先初始化系统参数,Min代表阈值的最小值,Max代表阈值的最大值,Thread代表该区域的阈值,Thread的初始值为Min,index是循环中的一个游标,其初始值为Min-1。\n[0144] Step 3-2:修改index的值,使index加1。\n[0145] Step 3-3:判断index值与Max的大小关系,如果index小于Max则进行到下一步,否则推出该循环,直接跳转到步骤4。\n[0146] Step 3-4:以index作为当前区域的阈值,计算在该区域时,前景平局灰度与背景平局灰度的差值sub,sub的计算方法如下:\n[0147] sub=|color_f/num_f-color_b/num_b| (4-2)\n[0148] sub代表前景平均灰度值与背景平均灰度值差值的绝对值,color_f代表前景总灰度值(位于前景的所有像素点的灰度值之和),num_f代表前景点的像素数目,color_b代表背景总灰度值(位于背景区域的所有像素点的灰度之和,num_b代表背景点的像素数目。\n[0149] Step 3-5:计算前景灰度平均值与背景灰度平均值差值的绝对值sub与MaxSub的大小关系。如果sub大于MaxSub,则更新MaxSub的值为sub,并且更新阈值thread的值为当前索引index,同时跳转到步骤3-2;否则直接跳转到步骤3-2。\n[0150] Step 4:该步骤结束大律法的循环操作,将大律法得到的阈值作为区域索引数为indexNum的区域的阈值,并且对该区域进行二值化。\n[0151] Step 5:将区域索引数indexNum加1。\n[0152] Step 6:判断区域索引数indexNum与区域总数num的关系,如果indexNum小于num,则跳转到3-1,对索引标号为indexNum的区域用大律法进行二值化,否则结束二值化。\n[0153] 二值化操作后的烟草激光码图像一般会存在杂点,这些杂点会影响识别的准确性。本系统采用中值滤波来滤除较小的杂点,其原理是将数字序列中一点的值用该点的一个邻域中各点值的均值代替,让周围的像素值接近真实值,从而消除孤立的噪声点。中值滤波去除图像的噪声方法为:遍历图像,计算每个像素点和与其八连通像素点的平均灰度值,将该像素点的灰度值设为平均灰度值。对于面积较大的杂点,本系统采用数字形态学方法进行去除。\n[0154] 预处理后的激光码图像可以用来进行字符分割,字符分割之前要保证激光码字符区域处于一个与屏幕平行的矩形区域,因此要首先对激光码图像进行校正。激光码图像校正算法流程如图3所示。\n[0155] Step 1:首先扫描二值化操作后的烟草激光码图像,此时的烟草激光码字符区域可以看成是一个矩形区域(字符串在矩形区域内有倾斜,需校正),获取字符串区域的四个顶角,用TL、TR、DL、DR分别代表字符串区域的左上角、右上角、左下角和右下角。\n[0156] Step 2:计算四个顶角的位置关系,如果满足条件TL.x-DL.x>TR.x-TL.x(x代表点的横坐标,y代表点的纵坐标),则对图像顺时针旋转角度α,计算公式为:\n[0157] α=arctan((TL.y-DL.y)/(TL.x-DL.x))\n[0158] 否则逆时针旋转角度β,角度β的计算公式如下:\n[0159] β=arctan((TL.x-DL.x)/(TL.y-DL.y))\n[0160] Step 3:对旋转过后的图像进行分割,进一步去除图像的边缘部分。\n[0161] Step 4:保存裁剪后的激光码图像,用来进行下一步的字符分割。\n[0162] 激光码字符分割好坏直接影响系统字符识别的准确率。烟草激光码字符图像的字符之间粘连情况比较严重,采用传统的字符分割算法难以准确的对字符进行分割,因此本系统对字符分割算法进行了改进。激光码图像字符分割算法流程如图4所示。\n[0163] Step 1:首先要计算校正过后的图像的左右边缘位置,然后根据图像字符位置对烟草激光码图像进行等值划分。由于每行烟草有十六个字符,因此把图像分割为十六个等值区域。记录这十六个区域的位置,并且将这些位置作为烟草激光码预分割的位置。\n[0164] Step 2:精确字符分割的位置。通过均分烟草激光码图像,我们获得了预分割的位置。为了精确分割字符,本文扫描预分割线左右10个像素之间的区域,统计该区域内每列的像素数目,以像素最少的列作为精确的分割线。这样就完成了纵向的字符分割。\n[0165] Step 3:纵向精确分割结束后,得到的是二行一列的字符图像。采用与纵向精确分割相同的方法对图像进行横向精确分割。该步骤结束后就得到了单个的字符图像。\n[0166] 激光码字符识别是本系统的一个重要操作,该步骤实现了激光码字符图像向计算机内码的转换。传统的识别算法存在鲁棒性不强或识别准确率低的特点,因此本系统采用深度卷积神经网络来实现激光码字符的识别,该深度卷积神经网络有两个卷积层两个下采样层和一个全连接层。本系统激光码字符识别算法流程如图5所示。\n[0167] Step 1:首先对分割后的字符图像进行预处理,将其归一化为大小为29×29的图像。\n[0168] Step 2:对归一化后的输入图像进行卷积操作,卷积核大小为4×4,用20个不同的高斯卷积核来处理图像,得到一个有20卷积图像的卷积层L1,每个卷积图像的大小为26×\n26。\n[0169] Step 3:对卷积层L1进行下采样处理,将卷积层的长宽都缩小为原来的二分之一,得到一个有20个图像的下采样层L2,每个图像的大小为13×13。\n[0170] Step 4:对下采样层L2再次进行卷积操作,卷积核为5×5,获得一个有40个卷积图像的卷积层L3,每个卷积图像的大小为9×9。\n[0171] Step 5:对卷积层L3进行下采样,长和宽都缩小为原来的三分之一,这样得到一个有40个图像的下采样层L4,每个图像的大小为3×3。\n[0172] Step 6:将采样层L4的图像映射为一个一维的数据。\n[0173] Step 7:在L5网络全连接层,对得到的一维数据进行分类,得到最终的分类结果。
法律信息
- 2017-08-25
- 2015-05-27
实质审查的生效
IPC(主分类): G06K 9/34
专利申请号: 201510025849.9
申请日: 2015.01.19
- 2015-04-29
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2013-12-11
|
2013-09-05
| | |
2
| |
2014-04-23
|
2014-01-02
| | |
3
| |
2012-09-12
|
2012-04-13
| | |
4
| |
2014-10-01
|
2014-07-21
| | |
5
| |
2003-11-26
|
2003-06-01
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |