一种基于深度学习的包装喷码检测方法与流程

文档序号:16136642发布日期:2018-12-01 01:04阅读:549来源:国知局
本发明属于计算机
技术领域
:,涉及深度学习和计算机视觉,为一种基于深度学习的包装喷码检测方法。
背景技术
:计算机视觉和互联网的飞速发展带来了大量的新产品和新服务,引发了人们对于实用性视觉技术的新思考和新需求,包装喷码检测是工业界直接利用拍摄图片检测喷码是否正确的一种方法,是工业界迫切需要解决的技术之一,受到了计算机视觉界和工业界的广泛关注。尽管在过去的几十年,有关复杂场景下的字符识别取得了很大的突破,但运用在包装喷码检测中,还是有很多困难的地方,主要在以下三个方面:(1)各种干扰因素,如噪声,失真,低对比度,非均匀光照会对喷码检测造成一定的影响;(2)不同的喷码字符表现出不同的的字体,颜色,刻度和方向,喷码检测的算法必须有着较强的泛化能力;(3)相比自然场景检测,工业界对于精度和耗时的要求更高,最重要的,为了适应工业界的使用,必须做到小样本训练。目前有两类主流的字符区域提取算法,一类是基于滑动窗口的特征提取分类,一类是基于连通域分析的mser(maximallystableextremalregions)、swt(strokewidthtransform)算法,前者由于无法对带方向的字符精确定位已被淘汰,后者因其对字符尺度、方向、字体变化不敏感已经成为场景字符检测领域的主流。然而,在模糊、不均匀光照、低分辨率、低对比度等恶劣条件下,连通域分析的算法表现不佳。而在单行字符检测方面,主流的检测方法是基于长短期记忆网络lstm(longshort-termmemory)的crnn(cnn+rnn)算法,然而其对训练样本数量要求过高,故不适合在工业界的推广;分割+识别是另一种单行字符检测的设计方向,然而基于垂直投影或连通域分析的分割算法过于依赖二值化阈值的选择,在不均匀光照和低对比度的情况下不能保证良好的分割性能。本发明使用区域提取加检测的思路来进行包装喷码检测。技术实现要素:本发明要解决的问题是:通过人眼识别包装喷码成本高、效率低,目前的计算机视觉检测技术存在抗干扰性差,泛化能力不足的问题,同时还需要大量训练样本数据来训练识别能力,不适于工业推广。本发明的技术方案为:一种基于深度学习的包装喷码检测方法,构造基于深度学习图像分割网络和深度学习图像分类网络的联合系统,实现对包装喷码上每一个字符的定位和识别,包括字符区域提取、单行字符分割和单个字符识别三个步骤:1)字符区域提取:1a)使用语义分割网络对输入图像进行分割,输出黑白二值图,白色像素点为前景,即白色像素点所在区域为字符区域;1b)对白色像素点区域进行旋转矩形的提取,得到矩形字符区域,根据旋转矩形的倾斜角度进行字符区域的矫正;2)单行字符分割:2a)包装喷码为两行,即字符区域是两行字符,对步骤1b)得到的矫正后字符区域对折切分,得到单行字符,基于深度学习使用分类网络对单行字符的每一列像素进行二分类,分为前景与背景,前景即为字符;2b)根据2a)的分类结果及先验知识对单行字符进行分割,得到单个字符;3)单个字符识别:3a)基于卷积神经网络对得到单个字符进行图像分类,识别得到检测结果。步骤1b)将字符区域经过形态学操作后,提取白色像素点区域的最小外接矩形,之后旋转矩形的角度经过仿射变化,得到矫正后的正矩形,即为矫正后的字符区域。步骤2a)通过深度学习分类网络学习单行字符图像每一列像素的潜在特征,通过特征来对每一列像素进行分类,分类网络包括alexnet、vgg、zf-net、googlenet和resnet。步骤2b)中,将单行字符每一列像素的分类结果存在一个数组里,当列像素为背景则值为0,前景值为1,然后开始从左往右检测数组的值,当出现第一个数值为1的值,把该值所对应的列像素作为第一个字符的左侧边界;然后接着检查,直到再检测到0值,把这个0值对应的列作为第一个字符的右侧边界,以此类推,确定所有字符的左右边界。步骤3a)中:首先训练卷积神经网络,获取训练样本时,使用数据增强方法对单个字符的图像做增强,数据增强方法包括加噪,调整对比度和透视变换,并使用随机步长的方法来增加单个字符识别网络的训练数量,随机步长指在定位好的单行喷码字符中使用滑动窗口进行滑动,当滑动窗口与字符分割区域的重叠度iou大于0.8,记为正样本,并且将滑动窗口所在区域标记为字符分割区域的类别,所述类别指字符的内容。单个字符识别中,通过特征提取后分类的方法对单个字符进行识别,所述特征提取包括批量归一化、卷积、激活、池化为卷积神经网络中提取输入图像特征的基本步骤,之后将提取到的特征通过softmax函数进行分类,得到识别结果。本发明方法与现有技术相比,具有如下有益效果:(1)本发明检测方法使用图像语义分割网络对原图进行分割,接着通过旋转矩形对字符区域进行提取并矫正,相比于现有技术的方法中基于滑动窗口的特征提取、分类和基于连通域分析的mser、swt算法,本发明能提取带方向的字符区域并矫正,排除拍摄图片中字符周围环境的干扰,准确并最大程度提取字符区域,鲁棒性较好;(2)本发明检测方法使用列分类网络来对单行字符进行分割,有效地解决了基于二值化的垂直投影和连通域分析在字符模糊,低对比度下分割性能较差的问题,泛化性能较好;(3)本发明检测方法不同于一般的需要大数据训练的目标检测算法,如fasterrcnn、ssd,或者是lstm,在本发明的“确定字符区域—字符分割—单个字符识别”的框架内,可以十分便捷的对单个字符区域进行数据增强,从而只需小样本训练即可达到较高检测精度,若使用现有技术的faster-rcnn,ssd,lstm这类检测算法,则在训练中通常都需要几万张训练图片,否则网络达不到收敛的状态,而本发明最少只需要120张训练图片,即可训练卷积神经网络识别单个字符,本发明方法在检测耗时和精度上都达到了工业界的要求。附图说明图1是本发明的方法流程图。图2为本发明步骤1)和步骤2)的实施示意图,(a)为采集到的原始图像,(b)为采用图像语义分割后的结果图,(c)为提取的旋转矩形,(d)为旋转矩形矫正的最终字符区域,(e)为坐标旋转示例。图3为本发明的实施示意图,(a)为两张单行字符的图片,分别对应着低对比度和字符粘连这两种情况;(b)为(a)中两张图片分别做二值化的效果图;(c)为(a)在分类网络下的分割效果图;(d)为分类网络的结构图。具体实施方式为解决通过人眼识别包装喷码成本高、效率低的问题,本发明提出了一种基于深度学习的包装喷码检测方法,有效地解决了因字符区域模糊,对比度低而造成现有检测方法不能有效地进行字符区域提取和单个字符分割问题,能有效地去除光照,噪声的干扰,最终达到高精度识别字符的效果。为进一步了解本发明的内容,下面结合附图和实施例对本发明作详细描述。实施例1为解决人眼观测工业包装喷码成本高效率低的问题,本实施例提出了一种基于深度学习的包装喷码检测方法,其主要流程参见图1,详见下文描述:一)字符区域提取:本发明使用语义分割网络来对包装喷码原图提取出喷码区域,其主要优势在于当喷码区域模糊,对比度低时下有着较好的性能,并且训练样本小,训练及检测的速度非常快。具体步骤为:1)首先将由包装喷码检测系统采集到的原始图像送入图像语义分割网络,输出二值图,现有的语义分割网络有fcn,u-net,segnet,这里我们使用u-net。2)对二值图进行旋转矩形提取并矫正。语义分割网络的输出为二值图,本发明将白色像素点视为前景即喷码字符区域,经过形态学操作后,直接提取白色像素点区域的最小外接矩形,之后根据旋转矩形的角度经过仿射变化,得到矫正后的正矩形,即矫正后的字符区域。如图2中(e)所示,旋转角度为θ,根据三角函数有:x0=rcosα(1)y0=rsinα(2)旋转后:x=rcos(α-θ)(3)y=rsin(α-θ)(4)根据正,余弦加法定理可知:cos(α-θ)=cosαcosθ+sinαsinθ(5)sin(α-θ)=sinαcosθ-cosαsinθ(6)则x=rcosαcosθ+rsinαsinθ=x0cosθ+y0sinθ(7)y=rsinαcosθ-rcosαsinθ=y0cosθ-x0sinθ(8)图2(a)为本发明采集到的原始图像,图2(b)为采用语义分割后的结果图,图2(c)为提取的旋转矩形,图2(d)为旋转矩形矫正的最终字符区域,图2(e)为坐标旋转示例。二)单行字符分割:本发明提出的基于深度学习的分类方法,对喷码粘连和喷码区域模糊,对比度低等情形有着较好的分割性能。在单行喷码中,分割的本质其实就是对每一列做属于前景还是背景的2分类,而垂直投影和连通域分析的分割算法性能极其的依赖于二值化阈值的选择,更恶劣的情况是对于一张糟糕的图片,根本无法找到一个阈值将喷码字符与背景进行区分,因而上述两种分割方式在喷码区域模糊,低对比度的情形下有着较差的分割结果,更不用说字符粘连这种更复杂的情形,本发明通过深度学习来学习每一列的潜在特征,通过特征来对每一列进行分类。常用的分类网络有alexnet,vgg,zf-net,googlenet,resnet等,这里优选使用zf-net,因其具有良好的分类效果和简单的网络结构。将列分类结果存在一个数组里,背景为0,前景为1,即一列像素数据得到一个数字(0或1),然后开始从左往右检测数组的数值,直到出现第一个数值不为零,那么就把这个数值对应的一列像素作为第一个字符区域的左侧边界;然后接着往下检查,直到再检测到一个值为零的数值,那么就把这个零值对应的列像素作为第一个字符区域的右侧边界。然后以此类推,通过这样的方法就能够查找出剩下所有字符区域的左右边界。一张单行字符图片有多少列像素就得到多大的数组,比如50*200的图片,50是高,200是宽,经过分类网络得到1*200的数组,数组里是0或1,1是前景,即字符区域,检测数组扫描得到1的索引,索引就是字符边界,也就是数组中连续为1的值所对应的列像素就是字符区域。如图3中的(a)为单行字符图像,图3中的(b)喷码区域模糊和字符粘连情况下,对原图做二值化的结果,图3中的(c)为本发明对像素列通过分类网络的分割结果,图3中(d)为分类网络结构图,分类网络由卷积层,激活层与池化层堆叠搭建形成,其突出特点是卷积层与池化层采用了3*1尺度的卷积核与池化核,保证了每一列数据的原始性。从图3(b)中可以看到根本无法找到一个阈值将喷码字符与背景进行区分,但经过本发明的分类网络对图像的每一列数据进行分类,可以有效地对单行字符进行分割,得到单个字符。三)单个字符识别:1)数据增强:深度学习算法突出的特点就是对数据集的要求较大,在给定数据集数量不多的时候就需要用到数据增强,常见的数据增强的方法有加噪,调整对比度和透视变换等,本发明训练卷积神经网络获取训练样本时,使用数据增强方法对单个字符的图像做增强,数据增强方法包括加噪,调整对比度和透视变换,除此之外,本发明还使用随机步长的方法来增加单个字符识别网络的训练数量,随机步长是指在定位好的单行喷码字符中使用滑动窗口进行滑动,当滑动窗口与字符分割区域的重叠度iou大于0.8,记为正样本,并且将滑动窗口所在区域标记为字符分割区域的类别。2)分类网络:通过特征提取后分类的方法对单个字符进行识别,特征提起包括批量归一化,卷积,激活,池化为卷积神经网络中提取输入图像特征的基本步骤,之后将提取到的特征通过softmax函数进行分类。softmax函数又称归一化指数函数,是逻辑函数的一种推广。它能将一个含任意实数的k维的向量z的“压缩”到另一个k维实向量z’中,使得每一个元素的范围都在(0,1)之间,并且所有元素的和为1。softmax的函数为x为输入,p(i)为将x预测为第i类的概率,k为总的类别数,θ1,θ2,....θk为k组参数,每组参数都是与x长数相同的向量,训练过程就是根据误差函数对θ进行寻优的过程。对于训练集{(x(1),y(1)),....,(x(m),y(m))},有输出y(i)∈{1,2,3....,k},总共有k个分类,在单个字符识别网络中,训练集即为原图通过特征提取后对应的特征向量,对于每个输入x都有对应每个类的概率,即p(y=j|x),从向量角度看,有softmax的代价函数定义如下:m为训练集个数,即训练过程中图片的数量。其中,则,对于代价函数,一般使用梯度下降算法来求优化,只需要得到代价函数对参数权值的梯度即可。以上为softmax回归训练时的优化过程,即寻找最优的θ值,测试时,通过公式(10)得到输入x对应的softmax函数输出如式(13)所示,在这k维列向量中,第i行为将输入x预测为第i类的概率,这里我们取概率最大的那个数所对应的类别为softmax函数预测的结果,如公式(14)所示,最终我们的预测类别为列向量中最大的那个数所对应的行数。下面的式(13)为测试时的得到预测类别的公式。此时已经得到x的类别为1,2,….,k的概率,则x的预测类别为:公式(14)得出概率最高的那一项对应的类别,即预测类别。本发明使用语义分割网络对原图进行语义分割,接着通过旋转矩形对字符区域进行提取并矫正,相比于一般方法中基于滑动窗口的特征提取、分类,以及基于连通域分析的mser,swt算法,本发明能提取带方向的字符区域并矫正,排除拍摄图片中字符周围环境的干扰,准确并最大程度提取字符区域,鲁棒性较好;使用列分类网络来对单行字符进行分割,有效地解决了基于二值化的垂直投影和连通域分析在字符模糊,低对比度下分割性能较差的问题,泛化性能较好;不同于一般的需要大数据训练的目标检测算法(fasterrcnn,ssd)与lstm,本发明真正做到了小样本训练,并且在检测耗时和精度上都达到了工业界的要求。以上示意性的对本发明及其实施方式进行了描述,该描述没有限制性,附图中所示的也只是本发明的实施方式之一,实际的结构并不局限于此。所以,如果本领域的普通技术人员受其启示,在不脱离本发明创造宗旨的情况下,不经创造性的设计出与该技术方案相似的结构方式及实施例,均应属于本发明的保护范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1