论文部分内容阅读
摘 要:烟激光码是由32位字符组成的两行十六列的字符码,可以肉眼识别,但是在实际应用中,肉眼识别会给相关物流监管工作人员带来非常巨大的工作量和工作强度。本文设计了一种基于OpenCV的图像处理技术对卷烟激光码进行自动识别,这对相应产业的智能化发展以及减少相关工作人员的工作压力有重大意义。
关键词:卷烟 激光码 图像处理 激光码识别
一、 引言
在现代生活中,数字化技术已经是各种开发和生产活动的前提条件,并为科学研究的过程提供便捷的处理方法。而OpenCV作为一种图像处理工具,可以对图像进行相应的处理,来达到实际应用中的要求和目的。例如对图像压缩、图像数字化、图像增强、图像重构、图像识别等。我们知道烟盒外面的激光码暗含很多信息,比如它的出厂信息、销售渠道、销售来源、销售去向等。我们可以通过这些信息去识别该批卷烟的真伪,是不是正当的销售手段。现如今卷烟物流数量非常庞大,我们怎样能够高效准确的识别每盒卷烟的防伪码信息,对卷烟防伪有着重要的意义。
二、 OpenCV简介
OpenCV中文全称是Open Source Computer Vision Library,即开放的源代码计算机视觉库。由Intel公司开发,可以免费使用的一款图像处理软件。卷烟激光码的OpenCV的程序开发,需要在Linux平台上运行。该软件中对图像处理的函数库大部分都是C函数,也可以用Java程序进行开发,其中还提供很多图像处理的源文件,在对图像进行处理时我们可以直接调用,完成很多图像识别的内容。
三、 卷烟激光码算法设计
1.激光码图像采集与灰度处理。用摄像设备对一烟盒的激光码位置进行拍摄,由于外界环境影响,需要将调用OpenCV里的函数将图像灰度处理,原图像为彩色图像,需要通过公式(2-1)对原图像进行转换,这是计算机识别卷烟激光码图像的预处理第一步。
其中R(Red)表示的是获取图像中红色通道中像素点对应的灰度值;G(Green)表示的是获取图像中绿色通道中像素点对应的灰度值;B(Blue)表示的是获取图像中蓝色通道中像素点对应的灰度值。这三种灰度值利用各自的权值进行加权运算,得出整个图像像素点的灰度值。
2.图像二值化处理。二值化处理的目的是为了加强图像的轮廓显示,即激光码中字符的显示效果增强,并且可以消除图像中其他的噪声干扰,而OpenCV直接有对图像进行二值化处理的功能函数,可以直接对灰度图像进行二值化处理。
其中表示的是OpenCV中对图像进行自适应二值化处理,也可以调用cvAdaptiveThreshold的方法来操作。如图2.1所示
3.激光码图像的形态学处理。形态学处理即一般的对图像进行膨胀和腐蚀处理,图像膨胀就是对二值化图像进行扩大处理,使得相近的图像区域闭合,减少字符缺失的情况。图像腐蚀就是对激光码图像进行收缩处理,目的是为了使图像中字符以外的噪声污点消除。以下是对激光码图像进行形态学处理的代码设计:
//自定义1*3的核进行x方向的膨胀腐蚀
上述代码操作执行的分别是对激光码图像进行x方向膨胀以连通字符,x方向腐蚀以去除碎片以及x方向膨胀以回复形态。
//自定义3*1的核进行y方向的膨胀腐蚀
上述代码操作执行的分别是对激光码图像进行y方向腐蚀去除碎片和回复形态。腐蚀和膨胀后图像如图2.2和图2.3所示。
4.激光码矩形区域提取。该步骤是为了字符分割提供方便所做的进一步图像处理,仅仅提取出包括字符的一块矩形区域。查找矩形轮廓以及筛选代码设计如下:
由于烟盒上最大的矩形区域就是激光码构成的矩形区域,所以查找后的矩形轮廓就是所要提取的激光码图像。
5.字符分割与识别。对上一步提取的激光码图像进行分割处理,由于字符之间存在一定的间隙,而这种间隙可以通过像素点数的统计进行区分,像素数目越少,说明这一列就越可能作为对字符进行分割的候选位置。再利用训练好的神经网络對分割后的字符图像进行字符的匹配识别,字符识别过程其实就是一种对图像中字符的特征在数据库中进行匹配和识别的过程。具体操作过程是经过处理的待匹配的激光码图片与模板图片在大小相同的情况下并且都属于二值化图像,而二值化图像都是0或者255,即黑白图像,图像中只有这两种像素点,所以直接匹配对应位置的像素点不相同的个数,不同的像素点个数越趋于0,匹配率越高,输出匹配率接近一百的模板图片中的字符即实现激光码字符的识别。
四、实验结果
1.激光码的提取。如图3.1所示
2. 激光码图像的预处理。如图3.2、3.3、3.4所示。
根据上一节的算法设计对图像进行预处理,将图像由0-225的彩色图像转化为0/255的黑白图像,再对图像进行形态学处理使得字符更加清晰,最后对字符进行分割,与模板图片进行匹配识别。
3. 激光码字符识别。如图3.5所示。
五、结语
本文运用OpenCV的程序开发去实现卷烟激光码的自动识别,首先需要我们先对各种情况即各种激光码与各类卷烟复杂背景的分割识别,对这些激光码进行分类采集,并使用一些背景不复杂的图像进行二值化处理,对图像进行膨胀和腐蚀处理,去除影响识别的干扰,其次将32位激光码逐一分割,为使用深度学习的卷积神经网络来训练或者直接与数据库的字符图片进行逐一匹配来识别激光码提供便捷,增加字符识别的准确性。实验结果表明本设计基本实现对卷烟激光码字符的智能识别,不需要人工输入识别,大大减少烟草监管工作人员的工作量与工作强度以及人工输入带来的误差。
参考文献:
[1]熊刚,基于Android的智能手机的设计与实现[D]. 武汉:武汉理工大学,2010, 10-14. [2]Hinton, G. E., Osindero, S.,et al., A fast 1 earning algorithm for d eep belief nets[J], Neural.computation, 2006, Vol. 18, No. 7: 1527-1554.
[3]Hinton, G. E.,&Salakhutdinov, R. R., Reducing the dimensionality of data with neural networks[J], Science, 2006, Vol. 313, No. 5786: 504-507.
[4]Poultney, C., Chopra, S.,&Cun, Y. L., Efficient learning of sp arse representations with an energy-based model[C], Proceedings of the Advances in Neural Information Processing Systems(NIPS 2006), Vancouver, B.C., Canada, 2006, 1137-1144.
[5]Lee, H., Ekanadham, C.,&Ng, A. Y.,Sparse deep belief net model for visual area V 2[C].Advances in Neural Information Processing Systems 20 (2007), Vancouver, B.C., Canada, Vol. 7,2008, 873一880.
[6]Goodfellow, L, Mirza, M., Courville, A.,&Bengio, Y., Multi-prediction deep Boltzmann.machines[C], Advances in Neural Information Processing Systems, Nevada, United States, 2013,548-556.
[7]林瑤,田捷,医学图像分割方法综述[J].模式识别与人工智能,2002,15 (2): 192-204.
[8]朱晓波,基于BP神经网络的手写体数字识别分析与研究[D]. 武汉科技大学,2013, 54-55.
[9]Lee, H., Pham, P. T., Largman, Y.,&Ng, A. Y., Unsupervised feature learning for audio.
classification using convolutional deep belief networks[J]. NIPS, 2009, Vol. 9: 1096-1104.
关键词:卷烟 激光码 图像处理 激光码识别
一、 引言
在现代生活中,数字化技术已经是各种开发和生产活动的前提条件,并为科学研究的过程提供便捷的处理方法。而OpenCV作为一种图像处理工具,可以对图像进行相应的处理,来达到实际应用中的要求和目的。例如对图像压缩、图像数字化、图像增强、图像重构、图像识别等。我们知道烟盒外面的激光码暗含很多信息,比如它的出厂信息、销售渠道、销售来源、销售去向等。我们可以通过这些信息去识别该批卷烟的真伪,是不是正当的销售手段。现如今卷烟物流数量非常庞大,我们怎样能够高效准确的识别每盒卷烟的防伪码信息,对卷烟防伪有着重要的意义。
二、 OpenCV简介
OpenCV中文全称是Open Source Computer Vision Library,即开放的源代码计算机视觉库。由Intel公司开发,可以免费使用的一款图像处理软件。卷烟激光码的OpenCV的程序开发,需要在Linux平台上运行。该软件中对图像处理的函数库大部分都是C函数,也可以用Java程序进行开发,其中还提供很多图像处理的源文件,在对图像进行处理时我们可以直接调用,完成很多图像识别的内容。
三、 卷烟激光码算法设计
1.激光码图像采集与灰度处理。用摄像设备对一烟盒的激光码位置进行拍摄,由于外界环境影响,需要将调用OpenCV里的函数将图像灰度处理,原图像为彩色图像,需要通过公式(2-1)对原图像进行转换,这是计算机识别卷烟激光码图像的预处理第一步。
其中R(Red)表示的是获取图像中红色通道中像素点对应的灰度值;G(Green)表示的是获取图像中绿色通道中像素点对应的灰度值;B(Blue)表示的是获取图像中蓝色通道中像素点对应的灰度值。这三种灰度值利用各自的权值进行加权运算,得出整个图像像素点的灰度值。
2.图像二值化处理。二值化处理的目的是为了加强图像的轮廓显示,即激光码中字符的显示效果增强,并且可以消除图像中其他的噪声干扰,而OpenCV直接有对图像进行二值化处理的功能函数,可以直接对灰度图像进行二值化处理。
其中表示的是OpenCV中对图像进行自适应二值化处理,也可以调用cvAdaptiveThreshold的方法来操作。如图2.1所示
3.激光码图像的形态学处理。形态学处理即一般的对图像进行膨胀和腐蚀处理,图像膨胀就是对二值化图像进行扩大处理,使得相近的图像区域闭合,减少字符缺失的情况。图像腐蚀就是对激光码图像进行收缩处理,目的是为了使图像中字符以外的噪声污点消除。以下是对激光码图像进行形态学处理的代码设计:
//自定义1*3的核进行x方向的膨胀腐蚀
上述代码操作执行的分别是对激光码图像进行x方向膨胀以连通字符,x方向腐蚀以去除碎片以及x方向膨胀以回复形态。
//自定义3*1的核进行y方向的膨胀腐蚀
上述代码操作执行的分别是对激光码图像进行y方向腐蚀去除碎片和回复形态。腐蚀和膨胀后图像如图2.2和图2.3所示。
4.激光码矩形区域提取。该步骤是为了字符分割提供方便所做的进一步图像处理,仅仅提取出包括字符的一块矩形区域。查找矩形轮廓以及筛选代码设计如下:
由于烟盒上最大的矩形区域就是激光码构成的矩形区域,所以查找后的矩形轮廓就是所要提取的激光码图像。
5.字符分割与识别。对上一步提取的激光码图像进行分割处理,由于字符之间存在一定的间隙,而这种间隙可以通过像素点数的统计进行区分,像素数目越少,说明这一列就越可能作为对字符进行分割的候选位置。再利用训练好的神经网络對分割后的字符图像进行字符的匹配识别,字符识别过程其实就是一种对图像中字符的特征在数据库中进行匹配和识别的过程。具体操作过程是经过处理的待匹配的激光码图片与模板图片在大小相同的情况下并且都属于二值化图像,而二值化图像都是0或者255,即黑白图像,图像中只有这两种像素点,所以直接匹配对应位置的像素点不相同的个数,不同的像素点个数越趋于0,匹配率越高,输出匹配率接近一百的模板图片中的字符即实现激光码字符的识别。
四、实验结果
1.激光码的提取。如图3.1所示
2. 激光码图像的预处理。如图3.2、3.3、3.4所示。
根据上一节的算法设计对图像进行预处理,将图像由0-225的彩色图像转化为0/255的黑白图像,再对图像进行形态学处理使得字符更加清晰,最后对字符进行分割,与模板图片进行匹配识别。
3. 激光码字符识别。如图3.5所示。
五、结语
本文运用OpenCV的程序开发去实现卷烟激光码的自动识别,首先需要我们先对各种情况即各种激光码与各类卷烟复杂背景的分割识别,对这些激光码进行分类采集,并使用一些背景不复杂的图像进行二值化处理,对图像进行膨胀和腐蚀处理,去除影响识别的干扰,其次将32位激光码逐一分割,为使用深度学习的卷积神经网络来训练或者直接与数据库的字符图片进行逐一匹配来识别激光码提供便捷,增加字符识别的准确性。实验结果表明本设计基本实现对卷烟激光码字符的智能识别,不需要人工输入识别,大大减少烟草监管工作人员的工作量与工作强度以及人工输入带来的误差。
参考文献:
[1]熊刚,基于Android的智能手机的设计与实现[D]. 武汉:武汉理工大学,2010, 10-14. [2]Hinton, G. E., Osindero, S.,et al., A fast 1 earning algorithm for d eep belief nets[J], Neural.computation, 2006, Vol. 18, No. 7: 1527-1554.
[3]Hinton, G. E.,&Salakhutdinov, R. R., Reducing the dimensionality of data with neural networks[J], Science, 2006, Vol. 313, No. 5786: 504-507.
[4]Poultney, C., Chopra, S.,&Cun, Y. L., Efficient learning of sp arse representations with an energy-based model[C], Proceedings of the Advances in Neural Information Processing Systems(NIPS 2006), Vancouver, B.C., Canada, 2006, 1137-1144.
[5]Lee, H., Ekanadham, C.,&Ng, A. Y.,Sparse deep belief net model for visual area V 2[C].Advances in Neural Information Processing Systems 20 (2007), Vancouver, B.C., Canada, Vol. 7,2008, 873一880.
[6]Goodfellow, L, Mirza, M., Courville, A.,&Bengio, Y., Multi-prediction deep Boltzmann.machines[C], Advances in Neural Information Processing Systems, Nevada, United States, 2013,548-556.
[7]林瑤,田捷,医学图像分割方法综述[J].模式识别与人工智能,2002,15 (2): 192-204.
[8]朱晓波,基于BP神经网络的手写体数字识别分析与研究[D]. 武汉科技大学,2013, 54-55.
[9]Lee, H., Pham, P. T., Largman, Y.,&Ng, A. Y., Unsupervised feature learning for audio.
classification using convolutional deep belief networks[J]. NIPS, 2009, Vol. 9: 1096-1104.