基于人工神经网络的条码定位与识别方法

2019-09-10 07:22雷海军
河南科技 2019年35期
关键词:人工神经网络

陈 璇 雷海军

摘 要:针对大角度条码图像区域自动定位这一关键技术的具体应用,笔者提出一种适合大角度条码图像区域自动定位的算法。该算法以高斯滤波、边缘检测和霍夫变换做预处理,采用已经训练好的人工神经网络进行定位,运用全局与局部结合的二值化方法进行二值化、识别。实验证明,该算法图像定位准确率高,大角度条码图像定位效果较为理想,提升了图像识别的正确率。

关键词:大角度条码;自动定位;人工神经网络;二值化;条码识别

中图分类号:TP37 文献标识码:A 文章编号:1003-5168(2019)35-0042-06

Artificial Neural Network Based Recognition and Localization for Bar Code

CHEN Xuan1 LEI Haijun2,3

(1.Hunan Polytechnic of Water Resources and Electric Power,Changsha Hunan 410131;2.School of Computer and Software, Shenzhen University,Shenzhen Guangdong 518060;3.Guangdong Provincial Popular High Performance Computer Key Laboratory,Shenzhen Guangdong 518060)

Abstract: Aiming at the specific application of the key technology of automatic location of large angle bar code image area, the author proposed an algorithm suitable for automatic location of large angle bar code image area. In this algorithm, Gaussian filtering, edge detection and Hough transform are used as preprocessing, trained artificial neural network is used for positioning, and global and local binary methods are used for binarization and recognition. The experimental results show that the algorithm has high accuracy for image location, especially for large angle bar code image, which improves the accuracy of image recognition.

Keywords: large anglebarcode;automatic positioning;artificial neural network;binarization;recognition

條码技术早在1993年就有学者研究[1],随着机器学习算法的广泛运用,有学者利用机器学习算法对条码图像进行处理。具体算法有:使用机器学习中的人工神经网络方法对无对焦手机拍摄的模糊条码图像进行清晰度恢复再识别[2,3];采用图像处理技术对复杂背景条码进行背景删减,再进行条码位置的定位与识别[4];对二维条码进行角点检测,再对角点进行半监督聚类,找到聚类中心从而确定条码位置[5]。

目前,对于条码图像的处理,在技术上不仅采用图像处理技术,也会采用机器学习技术;在实际应用上不仅对标准图片进行识别,还会针对某种特定环境下的条码图像进行处理。

本文采用基于图像处理的方法对原图进行高斯滤波、边缘检测和霍夫变换预处理,再使用基于机器学习的方法定位出大角度图像中条码区域,运用全局与局部二值化法进行二值化,最后识别。图1为大角度条码图像识别的流程。

图1 大角度条码图像识别流程

1 预处理

本文研究对象为大角度条码图像,如图2所示。

图2 大角度条码图像

首先,采用高斯滤波方法对图像进行处理,增强图像效果[6]。高斯滤波是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到。高斯滤波的对比效果如图3所示。

(a) 原图                                                    (b) 高斯滤波效果图

图3 高斯滤波的对比效果图

其次,对图像进行Canny边缘检测。图像的边缘是指图像局部区域亮度突变的部分,是图像形状的几何表现。经典的边缘检测方法有Roberta、Sobel、Kirseh、Canny、Prewitt、Marr-Hildreth等,其中Canny边缘检测算法被称为最优边缘检测方法,被广泛使用。因此,本文采取Canny边缘检测算法提取图像,对条码图像做边缘检测,得到二值边缘图像,如图4所示。

图4 Canny边缘检测

最后,采用基于Hough变换法进行直线检测。Hough变换法[6]是利用图像全局特性直接检测目标轮廓,将边缘像素连接起来组成区域封闭边界的一种常见方法。在预知区域形状的条件下,利用Hough变换法可以快速得到边界曲线,将不连续的边缘像素点连接起来。通常,Hough变换法受噪声和曲面间断的影响较小。

2 定位

通过对条码图像的预处理,笔者将图片输入已经训练好的人工神经网络中进行条码定位。对于如何训练人工神经网络,小节5将进行详细介绍。

在人工神经网络中,本文采用多层感知器模型。训练多层感知器模型的过程就是对各个突触权值不断进行调整,最终达到预设定的终止条件。对于输出层的突触权值,可以直接通过误差信号进行修正,因为误差信号直接产生于输出端,而隐藏层突触权值,不如输出层那么直接,隐藏层权值的調整通常使用反向传播算法。本文使用有监督的学习方法,因而需要为网络提供一系列正确的输入、输出训练样本:

[p1,t1,p2,t2,p3,t3,…,pq,tq]            (1)

式中,[pi]是输入样本;[ti]是期望的目标响应。

将期望的目标响应与训练时产生的目标输出进行比较,获得网络误差,然后应用学习规则对网络权值和偏差进行调整,使得网络响应更接近正确目标响应。

3 二值化

条码图像二值化结果的好坏对条码识别非常重要,二值化的目的是要真实还原出图像中条码各个条空的宽度和个数。在二值化算法设计中,选取阈值是最关键的一步,是整个二值化算法的核心。本文运用全局阈值法与局部阈值法相结合的二值化算法[7]。该算法利用标准条码中条空的宽度比例以及条码图像的边缘特性得到一个全局阈值,同时可以得到条空的平均像素宽度,并计算图像的灰度平均值。为了解决光照不均对二值化的影响,采用分块处理,根据条空的平均像素宽度对图像进行分块,计算每个子图像块的灰度均值与图像灰度均值的差额,并结合全局阈值来确定子图像块阈值的范围。在该范围内,使用最大类间方差法得到最优的局部阈值,用这个最优的局部阈值对子图像块进行二值化。算法流程如图5所示。

图5 二值化算法流程

4 识别

图像经过预处理、人工神经网络定位和二值化后,采用译码方法,识别条码信息,最后效果图如图6所示。

图6 图像识别效果图

5 实验评估

由于使用有监督学习的人工神经网络来定位识别条码,人们需要利用学习样本训练神经网络。第一步整理训练样本,第二步训练模型,第三步测试模型,第四步评估实验结果。本文的实验环境是:Visual Studio 2012、OpenCV-2.4.9。

实验采用三个标准的一维条码数据集:ArTe-Lab 1D Medium Barcode Dataset[8]包含215张图片,WWU Muenster Barcode Database包含1 055张图片,Rotated Barcode Database[9]包含368张图片。此外,建立了两个私有数据集,即大角度条码数据集1包含9 828张图片,大角度条码数据集2包含9 828张图片。此数据集的建立达到扩充数据集的目的,也增强了模型的鲁棒性。由于本文方法包含了监督训练算法,因此,将每个数据集分开处理,对每个数据集分别进行训练和测试。具体来说,每个数据集随机选择70%的数据进行训练,选择30%的数据进行测试。为了准确评估,本文采用条码定位方法,对所有图片进行条码部分与背景部分的分割处理。

训练的目的是使计算机可以通过训练样本的学习,当再输入图像集合里面的测试样本时,可以根据之前的学习得到预期的效果。图7是定位前和定位后的图片,此部分展示部分实验效果,一部分为定位效果好的实验结果,一部分为定位效果差的实验结果。

从展示部分的实验效果可以看出,定位准确率达不到100%,存在图片无法准确定位的情况。原因是光线太弱或者光线太强,有遮挡物,另外,图片模糊程度高也会直接导致完全无法定位。从实验效果可以得知,采用人工神经网络进行定位的模型,对于训练样本的选择十分关键,换而言之,网络模型是针对大角度条码图像训练得到的模型,因此,此模型对大角度条码图像进行定位的效果理想,而对于模糊、光照不均匀、有遮挡物等未进行针对训练的图像。测试效果不理想,此定位方法区分于传统方法的一般性、普用性而更具有针对性。

图7 部分测试效果对比

在训练网络的过程中需要设置参数,由以下实验数据得到设置的参数。实验过程将采用的640×480像素分辨率图片分为x块,每块高为n,宽为m。设在预处理过程中存储数据矩阵[AH]由180行和[2·max (h,w)]列组成,其中h和w是原图片的高和宽。

条码定位的精确度评估:在一个数据集中,我们定义A为准确定位条码的百分比。其中,令b为条码图像B的实际定位结果,令d为条码图像B的正确定位结果。我们认定条码b定位准确的公式如下:

[实际定位结果∩正确定位结果实际定位结果∪正确定位结果≥0.5]    (2)

图8、图9、图10分别是3个数据集对于不同的n和m的取值得到的实验数据统计,其中纵轴表示高n,横轴表示宽m,n的范围是0~6,m的范围是10~100。表格中的数值表示定位的准确度A,数值越大准确度越高。

综合三个统计数据,当设n=3,m=60时,数据集1的准确率达到100%,数据集2准确率达到95%,数据集3准确率达到96%,因此设置n=3,m=60。

最好的参数由3个隐藏层与200个节点组成,考虑应用于实际生活需要嵌入机器中,因此设置MLP有2个隐藏层,输入节点、隐藏层节点和输出节点为3×60的组合更合适。

图11 定位效果

至此,实验参数设置完成。

对于实验的评估,主要分为三个部分。第一部分:直观定位效果展示,如图11所示;第二部分:对五个数据集定位准确率进行统计,如表1所示;第三部分:对比开源识别方法ZXing识别率统计,如表2所示。

表1表示五个数据集条码定位的测试结果,由此可以验证本文所采用的定位方法对于五个数据集来说准确率在80%以上。

通过展示效果可以看到,对于标准图片的定位效果较好,对于有大角度条码的定位也较准确;当图像中有光照不均匀的闪光点时,定位的准确性会稍微下降,但仍然

可以基本定位出条码位置;对于有污染的圖片,若污染面积范围比较大,则无法完整定位有效信息,以至于对后续的识别有所影响,导致无法识别或者识别错误;针对一张图片中多个条码图像进行定位测试时,可以定位出多个目标,但是明显定位部分缺失,效果不佳,与多条码图像定位效果相似;低质量图像的定位效果也不尽如人意。

表2表示对于五个数据集进行条码识别的测试结果,由此可以了解本文的识别算法在数据集ArTe-Lab 1D Medium Barcode Dataset和WWU Muenster Barcode Database的测试结果差距不大,而在数据集Rotated Barcode Database、大角度条码数据集1、大角度条码数据集2的测试结果差距较明显。究其原因是由于此三个数据集包含大角度图片,而正是由于本文采用的定位算法优于ZXing算法的定位方法,定位出大角度图片中条码位置的准确性更高,从而使得后续的识别率更高,从侧面反映了本文采用的定位算法对于大角度图片的定位效果较好。

6 结语

本文针对大角度图片进行定位与识别方法研究,采用人工神经网络方法进行大角度条码定位,详细介绍实验过程,分别从三个方面对实验结果进行评估,得到数据说明本文采用的定位与识别方法对于大角度条码图像效果更理想(见图12)。

参考文献:

[1]沈克峰,胡庆生.CCD摄像机与条码识别技术[J].光学技术,1993(4):10-11.

[2]殷羽,郑宏,王静,等.一种自适应烟标字符提取方法[J].计算机应用研究,2015(4):1248-1252.

[3]郭明.残缺和破损条形码的图像识别技术研究[D].哈尔滨:哈尔滨理工大学,2014.

[4]耿庆田,赵宏伟.基于分形维数和隐马尔科夫特征的车牌识别[J].光学精密工程,2013(12):3198-3204.

[5] Alessandro Z , Gallo I , Albertini S . Robust Angle Invariant ID Barcode Detection[C]// 2nd Asian Conference on Pattern Recognition (ACPR2013). IEEE Computer Society, 2013.

[6] Tahaa Z , Mat-Jizatb J A , Ishakc I .Bar Code Detection Using OmniIdirectional Vision for Automated Guided Vehicle Navigation[C]// Automatic Control and Artificial Intelligence (ACAI 2012), International Conference on. IET, 2012.

[7] Otsu N . A Threshold Selection Method from Gray-Level Histograms[J]. IEEE Transactions on Systems, Man, and Cybernetics, 2007(1):62-66.

[8] A.Zamberletti, I Gallo, M Carullo,et al. Decoding 1-D Barcode from Degraded Images Using a Neural Network[C]// International Conference on Computer Vision, Imaging and Computer Graphics. 2011.

[9]Alessandro Zamberletti Ignazio Gallo Simone Albertini. Neural 1D barcode detection using the hough transform[J].information and media technologies ,2015(1):157-165.

猜你喜欢
人工神经网络
基于人工神经网络的故障诊断专利浅析
人工神经网络发展历史与训练算法概述
基于人工神经网络的优化配置研究
基于人工神经网络的地震电场卫星数据异常识别
ANN、ANFIS和AR模型在日径流时间序列预测中的应用比较
人工神经网络在旅游人数预测中的应用研究
中国房地产上市公司治理状况预测
浅析人工神经网络在汽车轮轴松旷间隙检测中的应用
基于改进隐马尔科夫模型的畜禽全基因组关联分析中的多重检验方法
基于人工神经网络的经济预测模型