APP下载

一种改进的复杂环境下条形码图像增强和定位算法

2020-05-20廖文婧杨秀璋吕询敖进范郁锋于小民赵小明

现代计算机 2020年11期
关键词:图像增强效果图条形码

廖文婧,杨秀璋,吕询,敖进,范郁锋,于小民,赵小明

(1.贵州财经大学信息学院,贵阳 550025;2.贵州财经大学计划财务处,贵阳 550025;3.贵州财经大学,贵州省经济系统仿真重点实验室,贵阳 550025)

0 引言

随着计算机和图像处理技术迅速发展,图像定位和图像识别方法已广泛应用于各行各业,如车牌识别、人脸识别、手写文字识别、身份证识别等。目前物流业条形码扫描主要依靠人工进行条形码定位,扫描技术单一,工作人员的任务繁杂,并且扫描技术不能有效地实现对条形码自动化定位和识别,效率较低,很大程度浪费了更多的人力资源。因此,实现条形码的自动化定位识别将会节约更多的人力和物力,减轻工作人员的任务,提高复杂环境下条形码识别的准确率。本文将结合图像增强算法和图像定位算法,实现复杂环境下的条形码图像定位与识别,改善物流行业对条形码扫描的单一繁杂的工作,提高该行业效率,推动整个物流行业的发展。

常见的传统条形码定位算法是基于数字图像处理技术的,涉及区域对比度、边缘方向及条形码形状等特性的研究。它先利用影像设备捕获原始图像,通过图像预处理技术去除原图像中的杂质,再采用形态学方法确定条形码的轮廓,最后利用条形码特征检验算法定位出条形码区域。当前国内外针对条形码图像定位和图像增强的算法研究较多,在方法和实践上都有不少的成果。在国外,Tekin 等人[1]采用基于方向直方图的算法来定位条形码,通过计算直方图的熵,设置阈值来获取窗口图像的主方向,再对每个窗口图像的主方向聚类,从而获取条形码的候选区域。Dubska[2]基于Hough 变换提出了一种快速定位条形码的算法。Katona等人[3]提出了一种基于低通滤波和距离映射的定位算法。Hsieh 等人[4]利用人工神经网络搜索定位条形码,通过BP 神经网络训练条形码的纹理并提取特征,利用模式识别的方式实现条形码定位。Oktem 等人[5]提出一种基于无倾斜条件下的一维条形码图像定位算法。Shellhammer 等人[6]通过选择性采样的方法进行条形码边缘处理,根据边缘强度去除由噪声引起的伪边界,再增强条形码边界并识别条形码。在国内,吕佩卓等人[7]分析小波多分辨率,在高频子图中利用指纹相似性原理和区域增长法确定条形码区域。刘文俊[8]提出对商品图像条码的搜索定位算法改进,通过图像分割后的连通域判别是否符合条形码的几何特征,定位条形码的候选域,该算法通过二次定位搜索降低了误检率。王颢[9]提出了基于条形码图像分辨率增强和对条形码图像高分辨率重构的定位算法,提高了条形码搜索定位的准确率。陈俊名[10]提出了基于条码边缘统计的定位算法,该算法先采用图像灰度化、Gauss 滤波、图像增强和Sobel 边缘检测方法对条形码图像进行预处理,再进行连通域的过滤与合并处理,最后进行倾斜角校正,该算法在对条形码定位的过程中进行表格线干扰及其断裂等困难的优化,提高了条形码识别的准确率。王霞玲等人[11]提出了一种非均匀光照环境下的条码自动定位识别算法,用于定位和识别实际应用中的条码图像。

国内外研究条形码图像增强和定位算法在一定程度上能够解决其问题,但传统算法的鲁棒性较差,当定位识别复杂环境下的一维条形码时,不能准确地定位识别目标条形码。同时,由于拍摄设备和拍摄环境的原因,条形码图像容易出现背景或前景偏亮偏暗的现象,导致图像细节不够明显,降低条形码的识别准确率。因此本文提出了一种改进的复杂环境下条形码图像增强和定位算法,该算法首先引入了Bidon 等人[12]提出的色彩自动均衡化算法,实现复杂环境下一维条形码的图像增强,并根据不同情况的复杂环境开展不同程度的图像增强处理;接着使用Dalal[13]提出的HOG 和SVM 行人检测算法,对复杂环境下一维条码进行图像定位,并有效解决了定位像素溢出的问题。该研究具有重要的理论研究意义和良好的实际应用价值,可以广泛应用于图像定位、图像识别和物流业条形码定位领域。

1 传统的条形码图像定位算法

传统的条形码图像定位算法先利用影像设备捕获原始图像,通过预处理去除噪声,再采用条形码特征检验算法定位条形码区域。常用的图像预处理技术包括灰度化处理、滤波处理、边缘检测、形态学处理等;常用的图像定位算法包括Hough 变换检测直线角度、膨胀腐蚀提取边界线、投射变化校正图像等;图像增强算法包括去逆滤波模糊图像复原、灰度投影曲线等[14]。图1展示了传统的条形码图像定位流程。

图1 传统的条形码图像定位算法流程图

(1)图像灰度化。将输入的一维条形码图像进行灰度化处理,按照公式(1)将彩色图像的RGB 三分量进行不同权值的加权平均处理,从而将彩色图像转换为灰度图像。

(2)图像滤波处理。灰度化处理后的图像需要进行高斯滤波模糊,去除噪声并降低复杂环境下的干扰。高斯滤波是应用邻域平均思想对图像进行平滑的一种线性平滑滤波,对于抑制服从正态分布的噪声非常有效,适用于消除高斯噪声,被广泛应用于图像处理的减噪过程。一个二维高斯滤波函数如公式(2)所示,其中σ为标准差,代表数据离散程度,如果σ较小,则高斯分布中心区域将更加聚集,平滑效果更差;反之,如果σ较大,则高斯分布中心区域将更离散,平滑效果更明显。

常用的3×3 和5×5 内核的高斯滤波模板如下所示。高斯滤波的核心思想是对高斯函数进行离散化,以离散点上的高斯函数值为权值,对图像中的每个像素点做一定范围邻域内的加权平均,从而有效地消除高斯噪声。高斯滤波让临近中心的像素点具有更高的重要度,对周围像素计算加权平均值,3×3 内核的高斯滤波模板中心位置权重最高为0.25。

(3)边缘检测。接着通过Sobel 算子对图像进行边缘检测,找出条形码的边缘特征并检测出条形码的大致边缘框架。Sobel 算子结合了高斯平滑和微分求导,利用图像明暗程度的近似值进行图像锐化,根据像素点上下、左右邻点灰度加权差,在边缘处达到极值这一现象检测边缘。常用的Sobel 算子如下公式(5)所示,水平方向上的卷积参数为Gx,垂直方向上的卷积参数为 Gy,公式如(6)所示[15]。

(4)阈值分割。复杂环境下的一维条形码图像包含需要提取的条形码、背景图像和图片噪声。若要提取目标条形码,则需要利用图像阈值化处理再次降噪,去除无关信息。通常会设定一个全局的阈值T,通过T对处理后的图像进行分类。大于T 和小于T 的像素群分为不同类别。如将大于T 的像素值设定为白色(用1 表示),小于T 的像素值设定为黑色(用0 表示)。图像经过阈值化处理后能避免不必要的信息干扰,处理后的图像更直观地描述了条形码的特征及其条形码所在区域轮廓。

(5)腐蚀和膨胀处理提取条形码轮廓。对阈值化后的图像进行腐蚀和膨胀处理。腐蚀的作用在于对不重要的信息进行筛选过滤,膨胀会将腐蚀后的主要信息再次扩展,达到原条形码的区域框架。

图2 传统的条形码图像定位

(6)条形码图像定位。最后通过OpenCV 中的findContour()函数寻找定位出来的条形码位置,并输出最终的图像。图2 展示了传统图像处理的一维条形码定位过程。图2(a)为原始图像,图2(b)为灰度图像,图2(c)是灰度图进行高斯滤波去噪处理,使边缘检测的细节更加明显,图2(d)为Sobel 边缘检测图像,图2(e)是阈值化处理,图 2(f)和图 2(g)是图像腐蚀和膨胀处理,最终在图2(h)中有效定位条形码。

2 改进的条形码图像增强与定位算法研究

针对传统的条形码图像会受复杂环境的噪声影响,图像间像素的间距会产生错误定位和像素溢出,同时由于图像的采集设备和设备参数不可控因素,导致在进行条形码图像预处理时不能够对图像有固定范围的确定,从而降低定位算法的准确性。本文提出了一种改进的条形码图像增强与定位算法,该算法对复杂环境中的条形码图像的亮度均值进行判断,采用不同算法进行图像增强处理,使整个定位算法具有更强的普遍性和鲁棒性。同时,基于HOG 和SVM 的条形码图像特征学习与定位算法有效避免了复杂环境下对条形码带来的一系列噪声影响。

2.1 算法流程

本文的算法先判断是否进行图像增强,根据复杂环境下不同情况开展不同程度的图像增强处理,结合HOG 和SVM 算法改进条形码图像定位的准确性和保真性。同时,在原有定位算法基础上增加了定位溢出值的范围判断,更加有效地锁定条形码的具体像素位置,为进一步的条形码识别提供更好的环境,提高识别条形码的准确率。其算法基本流程如图3 所示。

图3 改进的条形码图像增强与定位算法流程图

(1)图像输入由于像素大小会导致输出窗口过大而不能有效地显示,通过基于局部像素的重采样线性算法缩放图像,能够保证原图像的清晰度,并进行图像的大小缩放。

(2)通过函数ImageStat()获取图像像素亮度均值,再由亮度均值判断复杂环境下的条形码是否进行图像增强。

(3)当亮度均值大于等于180 时,图像处于曝光状态,明暗程度不均衡,此种情况采用伽马变换降低对比度,均衡提高图像的明暗程度,实现图像增强处理。

(4)当亮度均值在100 至180 之间时,图像是足够清晰的,不需要进行图像增强,直接输入原图像进行后续的图像定位。

(5)当亮度均值在40 至100 之间时,图像明暗程度会出现暗部区域较为广泛的现象,此种情况采用色彩自适应均衡算法处理,提高对比度并增强色彩均衡。

(6)当亮度均值小于40 时,图像明暗程度趋于暗部,此时采用彩色直方图均衡算法进行图像增强,能够在提高图像对比度的同时,保留原图像的细节。

(7)经过复杂环境下不同程度的图像增强处理后,接着采用基于HOG 和SVM 的条形码图像特征学习与定位算法进行条形码定位。

(8)最后对成功定位的条形码进行裁剪,并使用pyzbar 函数进行条形码识别,输出包含定位区域、条形码类型和条形码数据的结果。

2.2 直方图均衡化图像增强

直方图是一种将图像像素的强度分布用图形表达的方式。直方图均衡化是通过某种灰度映射将图像的像素强度值均匀地分布在每一个灰度级上,其结果将产生一幅灰度级分布概率均衡的图像。它能够提高图像对比度,从而实现图像增强。

在复杂环境下的一维条形码可通过直方图均衡化进行对比度的增强,进一步提高图像细节的提取,为图像特征提取提供了有利支撑。本文采用彩色图像直方图均衡算法进行处理,保证了图像原有的颜色,符合对条形码图像的细节处理。图4 展示了彩色均衡处理后的效果图及其直方图,直方图统计得出经过彩色直方图均衡后的图像其灰度值分布更加均匀,图像更加明亮清晰。

图4 彩色均衡处理后的效果图及其直方图

2.3 伽马变换图像增强

伽玛变换又称为指数变换或幂次变换,主要用于图像校正,其原理是将灰度过高的图像进行灰度降低,灰度过低的图像进行灰度增强,其本质是增强图像对比度。伽马变换是对原灰度图像的每一个灰度像素值做乘积运算,如公式(7)所示。

其中,当γ>1 时,会压缩图像灰度级系数低的区域,拉伸灰度级系数高的区域;当γ<1 时,会压缩图像灰度级系数高的区域,拉伸灰度级系数低的区域;当γ=1 时,图像进行线性灰度变换。图5 是光照弱图像在伽马变换图像增强后的效果图,对比图5(a)与图5(b),经过伽马变换后的图像亮度更明显,但图像会存在细微的失真。

图5 光照弱图像伽马变换增强后效果图

图6 是图像对比度过高在伽马变换图像增强后的效果图,经过伽马变换拉伸后图像趋于色彩均衡,细节更为清,且保真程度极高。

图6 对比度过高伽马变换增强后效果图

2.4 自动色彩均衡图像增强

Retinex 算法是代表性的图像增强算法,它根据人的视网膜和大脑皮层模拟对物体颜色的波长光线反射能力而形成,对复杂环境下的一维条码具有一定范围内的动态压缩,对图像边缘有着一定自适应的增强。自动色彩均衡(Automatic Color Enhancement,ACE)算法是在Retinex 算法的理论上提出的,它通过计算图像目标像素点和周围像素点的明暗程度及其关系来对最终的像素值进行校正,实现图像的对比度调整,产生类似人体视网膜的色彩恒常性和亮度恒常性的均衡,具有很好的图像增强效果。ACE 算法包括两个步骤,一是对图像进行色彩和空域调整,完成图像的色差校正,得到空域重构图像;二是对校正后的图像进行动态扩展。ACE 算法计算公式如下:

其中,W 是权重参数,离中心点像素越远的W 值越小;g 是相对对比度调节参数,其计算方法如公式(9)所示,a 表示控制参数,该值越大细节增强越明显。

图7 ACE图像增强效果图

图7 是条形码图像进行ACE 图像增强后的效果图,通过图像增强后的图7(b)对比度更强,改善了原图像的明暗程度,增强的同时保持了图像的真实性。

2.5 基于HHOOGG和SSVVMM的条形码图像特征学习与定位

本文提出了基于HOG 和SVM 的条形码图像特征学习与定位算法,实现了复杂环境下的一维条码定位。该算法的基本流程如下:

(1)通过HOG 算法对条形码图像进行特征提取。首先对复杂环境下的一维条形码进行预处理,计算条形码图像各方向及大小的梯度,得到条形码的轮廓信息。

(2)接着将一维条形码图像划分为8×8 像素的细胞单位(Cell),计算统计每个单元中的梯度直方图,通过直方图构造特征描述器,集成细胞单元组成的块(Block)并提取特征。

(3)采用支持向量机(SVM)分类器训练HOG 特征向量,构建SVM 条形码图像分类器,同时对可能溢出的条形码进行校正处理,最后计算条形码的区域坐标,绘制最终定位的条形码。图8 展示了HOG 算法提取图像特征及最终定位的条形码。

该算法避免了传统图像处理中参数的过度调整,算法鲁棒性较强。在定位过程中避免了复杂环境下对条形码的干扰,有较好的图像分类效果,很大程度减轻了传统图像处理的不可控性和复杂环境对条形码的干扰。

图8 HOG算法提取图像特征及条形码定位

3 仿真实验分析

本文通过Python 和OpenCV 编程环境对复杂环境下的条形码图像进行详细的仿真实验分析,并对比了传统方法和本文提出的改进算法的实验结果。

HOG 和SVM 实验共包括正样本图片581 张,负样本图片1791 张。测试数据为146 张快递单图片,其中部分图片存在污损、损坏、噪声等现象,部分图片是在低亮度下拍摄,其余图片均在光照强度良好环境下拍摄。拍摄过程模拟物流业摄像头对图片采集时所用高度范围13cm-20cm,具体数据如表1 所示。

表1 实验数据表

图9 对比了正常环境下三种条形码图像定位算法的效果,图9(a)是一张存在油污的条形码原图;图9(b)是使用传统的基于纵横差分和图像空间分割的条形码搜索定位算法的效果图,其定位范围近似条形码真实区域,但边界处存在细微条形码未被定位,不能保证条形码图像的完整性,从而无法识别;图9(c)是使用传统的边缘统计定位算法的效果图,其定位范围出现断裂和像素值范围溢出情况,无法有效地识别条形码;图9(d)是本文算法实验的效果图,它使得条码区域的细节更为明显,准确定位了条形码的范围,其效果优于传统的定位算法。

图10 是高曝光度条形码图像的三种定位算法的实验效果图,图10(b)反映出该算法定位的条形码出现了断裂,同时由于光照对比度过高,对目标区域的细节过度腐蚀会导致定位失败;图10(c)有效定位出条形码所在区域,但其定位范围存在像素摇摆现象,使用直方图均衡化算法对原图像进行增强时,会导致图像失真和条形码细节不明显,并不能有效识别;图10(d)是本文算法根据图像的亮度均值判断,对原图像进行伽马变换处理后,条形码图像更清晰,线条更分明,最终定位有效避免了像素摇摆所带来的干扰,准确识别出条形码区域及数字。

图9 正常图片的三种定位算法效果图对比

图10 高曝光条形码的三种定位算法效果图对比

图11低亮度条形码的三种定位算法效果图对比

图11 是低亮度或环境偏暗条形码图像的三种定位算法的效果图。图11(b)没有将条形码定位出来,系统会输出“不存在连通域”,该算法在对环境偏暗的图像进行阈值化处理时,由于图像亮度偏低,导致图像像素值大部分小于所设定的阈值,过多的黑色像素群会影响连通域的判别,最终无法定位条形码;图11(c)是传统边缘统计定位算法的效果图,但经过直方图增强处理后的条形码区域会图像过度定位,无法准确地识别条形码;图11(d)是本文算法的效果图,它通过对图像亮度的判别,采用不同类型的图像增强算法,有效保护条形码的细节,防止图像失真,并最终成功定位出条形码图像。

图12 是条形码图像在污损环境下三种算法的定位效果图。图12(b)显示了基于空间分割的定位算法对该条码区域有着良好的范围定位,但像素在各个方向有轻微的摇摆,在后续的识别中会导致图像轻微缺失而无法识别成功;图12(c)出现了错误的定位,由于对条形码的破坏,图像增强和阈值化处理后,会将条形码区域大部分归一为黑色像素群,无法判断条形码的连通域导致错误识别;图12(d)展现了本算法成功定位污损环境下的条形码图像。

条形码图像的定位与识别实验结果如表2 所示,测试数据146 张条形码图像,本文算法成功定位144张,定位成功率为98.6%;成功识别122 张,识别成功率达到83.6%。由表可知,本文提出的算法比传统基于空间分割的定位算法的定位成功率提升15.7%,识别成功率提升16.6%;比传统边缘统计定位算法的定位成功率提升28.1%,识别成功率提升21.3%。

图12 污损环境条形码三种定位算法效果图对比

表2 实验结果对比

图13 和图14 显示了本文算法提取条形码的结果,包括原始图像、条形码定位效果图和识别出的条形码数字,最后识别出条形码的数字为“3891030459427”和“9894847869874”。

综上所述,本文提出的一种改进的复杂环境下条形码图像增强和定位算法能有效保证图像的真实性,解决图像定位的像素摇摆问题,避免条形码定位时出现断裂,最终实现复杂环境下条形码图像的精准定位和识别,提高了定位成功率和识别成功率,具有较强的鲁棒性。

图13 条形码定位与识别结果

图14 条形码定位与识别结果

4 结语

随着物流业的快速发展,条形码图像自动化定位和识别变得越来越重要,研究条形码图像的增强和定位算法在提高自动化识别效率具有重要作用。针对传统的条形码图像定位算法识别不精准,存在图像断裂和像素摇摆等现象,本文提出了一种改进的复杂环境下条形码的图像增强和定位算法,对复杂环境中的条形码图像的亮度均值进行判断,采用不同算法进行图像增强处理,再基于HOG 和SVM 的特征学习与定位算法识别条形码图像,该算法有效降低图像的噪声,使整个定位和识别具有更强的普遍性和鲁棒性。

本文在Python 和OpenCV 编程环境下,通过模拟物流行业对条形码图像采集的环境,实现了对条形码图像的自动化定位和识别的仿真实验。实验结果表明,本文提出的算法能在复杂环境中有效定位和识别出条形码,包括污损、损坏、噪声、低亮度、高曝光等条形码图像,通过不同情况的图像增强算法,结合HOG和SVM 特征学习,实现精准定位和识别。同时该算法能降低图像噪声,使条形码区域的细节更为明显,从而提高条形码数字的识别精确度。该算法的定位成功率和识别成功率均优于传统的定位算法,在一定程度上减轻了物流行业工作者的工作量,可以广泛应用于条形码定位、区域识别、物流行业和金融行业等领域,具有一定的应用前景和实用价值。下一步作者将结合深度学习和神经网络技术实现更广范围的条形码图像识别,进一步将图像定位和图像识别技术应用于物流行业和日常生活中。

猜你喜欢

图像增强效果图条形码
通过图像增强与改进Faster-RCNN网络的重叠鱼群尾数检测
一种基于轻量级深度网络的无参考光学遥感图像增强算法
创意条形码
苏楠作品
图像增强技术在超跨声叶栅纹影试验中的应用
首饰设计效果图《溪居》
《客厅效果图》
条形码里有数学
有趣的条形码
基于非下采样剪切波变换与引导滤波结合的遥感图像增强