王 娟,王 萍,刘 敏
WANG Juan1,2,WANG Ping2,LIU Min1
1.湖北工业大学 电气与电子工程学院,武汉 430068
2.天津大学 电气自动化与信息工程学院,天津 300072
1.School of Electrical and Electronic Engineering,Hubei University of Technology,Wuhan 430068,China
2.School of Electrical and Information Engineering,Tianjin University,Tianjin 300072,China
直接零件标识[1](Direct Part Mark,DPM)工业二维码是一类直接标识在工业产品零部件上的特殊二维条码,该条码将零部件从生产、质量检测、出厂等丰富信息记录其中,实现对物品或零部件的跟踪溯源,是物联网链条中重要的信息载体。目前,被广泛应用于机械电子、汽车、制药医疗、军队枪械等工业制造领域[1]。
在工业生产环境中,受工况、光照环境以及CCD相机采集器曝光长短的影响,DPM二维码图像易出现复杂光照的情况,这对识别流程中DPM二维码区域分割的质量影响较大。图1中各幅图片展示出在不同情景环境下由于复杂光照可能引起的亮斑或暗影,图像降质严重,若阈值分割方法不当将会造成条码区域内部信息的缺失,增加条码识别的困难和误识率。
阈值分割[2]是指确定一个门限来区分图像中的目标和背景。在使用阈值法分割图像时,阈值的选取至关重要。现有的阈值选取方法分为全局阈值和局部多阈值两种类型。
全局阈值[3]选取是根据整幅图像确定一个阈值。常用的全局阈值选取方法包括直方图法[4]和最大类间方差法(也称Otsu算法)[5]等。直方图法是指直接从原图像的灰度分布直方图上确定阈值,包括直方图峰谷法[6]和直方图凹度分析法[7]等,如果图像的目标和背景区域的灰度差异较大,则该图像的灰度直方图包络线就呈现双峰一谷的曲线,那么选取两峰之间的谷值就可以作为阈值来分割图像的目标和背景,因此直方图法较适合前后景对比强烈的图像。虽然直方图方法的特殊要求和对灰度差值依赖性较大,使其在图像分割中具有一定的局限性,但其操作简单运算量低,因此也被经常使用。Otsu算法依据类内方差最小、类间方差最大的原则对图像背景与目标物进行分割,但运行时间较长。但此类全局阈值算法的缺陷在于当目标物与背景灰度差不明显时,阈值分割后会出现大块干扰区域,导致整幅图像中大部分有用信息的丢失,因此,在复杂光照图像中效果欠佳。
对于背景不均匀,或是目标灰度变化率比较大的图像应选用局部多阈值法。其中,常用的方法为从灰度直方图入手与其他算法相结合形成多阈值分割。文献[8]经过Otsu算法单阈值分割后,在直方图分级的基础上进行多阈值选择,应对目标的多级灰度差。此方法对彩色图像较为有效。文献[9]在Fisher函数的基础上使用直方图对图像进行多阈值分割,但对复杂光照图像分割效果并不理想。文献[10]提出在可变区域中利用基于全局灰度统计信息的活动轮廓模型进行曲线演化,并利用邻域替代法对图像进行阈值分割。文献[11]使用基于统计模型的直方图多阈值分割方法,提高分割的效率。文献[12]算法提出在二维直方图的基础上使用最小类内方差进行多阈值的分割算法。上述算法均是在直方图的基础上进行多阈值分割方法,但都存在速度慢、对干扰比较敏感等缺点。
本文综合分析不同环境下DPM二维码区域特点,提出一种基于分段直方图凹度分析算法的多阈值自适应分割算法,并将此算法应用于复杂光照条件下的DPM二维码的图像分割中。而后在四种复杂光照情况下,将本文算法与其他五种阈值分割算法进行对比测试,考察不同算法抑制复杂光照的能力和图像分割效果及对最终识别二维码的贡献率。
参照图1,复杂光照条件下的图像按照视觉效果大致可分为四种类型[13]。
(1)图像上具有明显边界特征或者具有亮度突变块,如图1(a)所示;图中因带有DPM二维码的工件表面高低不平及图像的背景材料材质不同导致对同一光源不同的吸光反光属性不同,引起亮度的突变。
(2)图像亮度按一定方向逐步变化,且中间不存在亮度突变区域,如图1(b)所示。
(3)工件面上的突起部分在图像上留下阴影,造成DPM区域的复杂光照,如图1(c)所示。
(4)图像上存在高亮度区域,由高亮度点向其周围亮度逐渐降低,如图1(d)所示。
以上情况均会造成图像局部亮度的明显不同,亮度较高(图 1(d))或较低(图 1(a)~(c))的区域中,部分DPM二维码的信息难以捕捉。
不过,DPM码图像即使在复杂光照的条件下,依然能保持区域聚集特性,与背景的差异性仍然存在。而复杂光照图像带有逐渐变化的特点,有利于分段阈值的使用,因此本文结合DPM码聚集特性和复杂光照图像的局部平稳性,对复杂光照下的DPM码进行自适应多阈值分割,将DPM码的信息尽可能地保留下来。
图1 复杂光照条件下的DPM条码
图像的灰度直方图是一种离散的分布图,其包络线是一条连续的曲线,因此对直方图的局部最凹点的确定[7]可转化为求其包络线h(r)的极小值问题。曲线h(r)中的极小值点应同时满足,该极小值点所对应的灰度级即可作为分割阈值。
对于目标与背景的灰度级差异显著的图像,其直方图具有明显双峰。此时,可使用上述凹度分析求得最优分割阈值。而对于直方图波谷不明显的图像,最优阈值T往往位于灰度直方图下凹区域的肩部[7]。由于波谷及波谷肩部都对应于灰度直方图的下凹区,因此可首先建立灰度直方图 h(i)( i为灰度级),然后根据式(1)和式(2)求得与θmax对应的峰值及其灰度值Tp。
其中,Tmin为图像中的最小灰度值。再通过求解式(2),得到使之成立的i值(Tmin<i<Tp),此时处于下凹处的最优阈值为Tc且Tc=i。
从计算过程可以看出直方图凹度分析算法计算简单,但因其阈值单一,不适合直接用于解决对比度多变的图像分割。
本文在分析复杂光照条件下的图像中DPM二维码区域特征和现有阈值分割算法优缺点的基础上,提出一种自适应多阈值分割算法,将“分段”直方图凹度分析算法与区域Wellner局部阈值修正思想相结合,用于复杂光照条件下的DPM码图像的分割。
步骤1图像灰度化
借助式(3)将彩色图像转换为灰度图像[14]:
步骤2直方图平滑
设i表示像素的灰度级,hi表示图像中灰度级为i的像素的个数,h表示图像像素总数,则图像的灰度直方图h(i)定义为:
一般来讲,由式(4)得出的直方图其幅值抖动频繁,有时出现狭窄范围的尖峰,这些将不利于分割阈值的选择。为此,本文采用相邻直方图元素的局部平均来进行平滑[15],即将式(4)调整为式(5):其中,K是一个常量,代表平滑处理时所使用的邻域尺度。图2是K取2时直方图平滑前后的示例图。
图2 直方图平滑效果图
步骤3直方图凹度分析算法的改进
复杂光照图像的直方图有可能出现多个下凹区段,这时取单一分割阈值显然是不恰当的,本文首先根据直方图局部峰值分布对其进行分段处理,得到可能的基于局部凹点的系列阈值,同时,通过对式(1)和式(2)的简化分析,提高算法运行效率。改进的直方图凹度分析算法如下:
(1)简化式(1)计算,借此求取序列局部峰值
①θi取值范围及峰值灰度值点Tp的确定
根据式(6),可将寻找与θmax对应的Tp转化为寻找与ymax对应的Tp,从而节省计算时间,提高运算效率。在|θ|<π/2的值域范围内,θ与y的关系曲线如图3所示。
图3 在|θ|<π/2的值域范围内,θ与y的关系曲线
为改善原算法中阈值单一的缺点,本文借助式(6)
(2)直方图分段
图4 直方图分段示例
(3)将直方图凹度分析式(式(2))用于每个相邻的峰峰值对应的局部灰度段,并将其转化为递推式,具体推导如下:
设第d段区域的左边界点为Tm,右边界点为TM,经凹度分析得到阈值Tdc,根据式(2),可知:
设TM-Tm=ΔT,i=Tm+j,得
设hM-hm=Δh,得
其中,Δh/ΔT为常数,记为C,消除公共项hM:
记C⋅j=Cj,得递推式:
显然,通过式(2)求i时需要相乘、相除及相加运算各2⋅ΔT次,而式(7)仅需要2⋅ΔT次相加运算。另外,式(8)给出了凹度分析算法的清晰的几何概念,即图像分割阈值为直方图的局部最凹点加上一个修正量,该修正量为两峰值差的ΔT分之一,且使阈值修正到较高峰值一侧(肩部)。
步骤4局部阈值调整
一般来讲,通过直方图凹度分析得到的分割阈值与图像局部区域信息没有必然的联系。局部分割方法所用阈值则与区域中像素取值密切相关。本文获取局部区域分布信息,并用此调整凹度分析所得阈值,以求在复杂光照部分获得较好的分割效果。
(1)调整所遍历的区域、添加像素权重
而实际上分割阈值的取值往往与临近像素的关系比稍远像素的关系更紧密,而在复杂光照图像中,受光照影响部分往往带有区域性。因此,特别以分段阈值设点坐标为 pij)为中心划定一个s×s的邻域,通过式(9)求得该区域的加权平均灰度:
步骤5阈值分割,输出结果
遍历图像,首先确定当前像素点pij的所属段,设该段阈值经区域信息调整后变为,其中离此点最近,于是,令 pij取值:
输出突显二维码区域的二值图像。
实验环境:实验测试中所使用的算法均运行在Windows 7系统,Intel处理器,3.2 GHz,并通过VS2010实现。
实验样本:采集到的图1所对应的四类复杂光照下的样本图像共100幅。
实验参数:平滑处理时所使用的邻域尺度K取2,分段阈值Tdc邻域s×s的尺寸为5×5。
本文选取在阈值分割过程中经典的全局和局部直方图阈值分割算法进行对比,图5为对复杂光照图像分别使用不同阈值分割算法的实验效果对比图,从图(a)到图(h)依次对应的是原图、全局直方图凹度分析算法、基于直方图的Otus算法、基于色差的直方图多阈值算法、与Fisher函数相结合的直方图算法、基于统计模型的直方图多阈值算法、基于二维直方图的分割算法和本文算法。
实验效果对比结果显示由于全局直方图凹度分析法使用单一阈值进行分割(图5(a)),因此对于对比度剧烈变化的图像,其分割效果较差,DPM码区域内的有效信息丢失严重。
图5 实验对比效果图
而图5 中其他算法均是在直方图为基础上得到的多阈值分割算法的运行结果。从分割效果来看,上述算法因未充分考虑局部邻域内像素点对阈值选择的影响使得其均存在不同程度上的前后背景分割错误,DPM码区域中的有效信息丢失率超过50%。图5(h)为本文算法运行结果,可以看出,本文算法分割效果明显优于其他6 种算法,6 组样本中有5 组样本DPM码区域有效信息保有率超过90%。
5.2.1 误分率
为评价阈值分割的效果,本文首先选用现今使用较多的一种图像分割性能测试标准—— 误分率[2](Misclassification Error,ME)作为测试标准。ME值反映了背景像素被错误划分到前景区域的比例,以及前景像素被错误划分到背景区域的比例:
其中,BO与FO指标准二值掩码图像中的背景与前景,是人工分割的结果。BT与FT为分割结果中的背景与前景,⋂为取交操作,||⋅用以统计各部分像素点个数。ME值用于衡量分割结果与标准二值掩码图像的差值,该值越低则分割效果越好。
对图5给出的6种复杂光照图像,图6展示了本文算法与其他6种阈值分割算法在ME值上的不同表现。图6表明,本文算法与其他阈值分割算法相比,第1~4幅、第6幅图像的ME值明显低于其他6种算法。第5幅图像的ME值明显低于除文献[12]以外的其他5种算法,而此时文献[12]算法虽然获得较低的ME值,但前景信息却丢失严重。
图6 不同算法的ME值比较
5.2.2 过分割率和欠分割率
其次,本文使用过分割率和欠分割率检验算法的有效性。若参考图像中的一个区域在分割图像中被分割成两个或两个以上的区域,称为过分割。Ri是参考图像的一个区域,在分割图像中,该区域被分割成Si1⋃Si2⋃Si3∧Siq,可以通过以下的公式获得过分割率[16]:
图7 不同算法的过分割率比较
图8 不同算法的欠分割率比较
表1 7种算法的平均运算时间 s
如果该指标是1,那么分割算法没有过分割。该指标比1小得越多,代表过分割越严重。
若分割图像中的一个区域在参考图像中由两个或两个以上的区域组成,称为欠分割[17]。Sj是分割图像的一个区域,在参考图像中,该区域由组成Ri1⋃Ri2⋃Ri3∧Riq,可以通过下式获得欠分割率:
如果该指标是1,那么分割算法没有欠分割。该指标比1小得越多,代表欠分割越严重。
不同算法的过分割率与欠分割率比较如图7、8所示。
除第5幅图中心部分因局部高亮过分割现象较明显外,其他图像与其他算法相比本文算法过分割率和欠分割率均较接近1。
对上述单阈值分割算法以及5种基于直方图的多阈值分割方法与本文方法在运算时间上进行比较,以验证本文算法的时效性(表1)。
由于本文算法在计算过程中较少涉及到复杂函数的计算,因此与单阈值的全局直方图凹度分析算法在运算时间上基本相当。而其他多阈值分割算法在直方图的基础上需要对局部像素点进行复杂的函数运算,因此本文算法与其相比均有不同程度的提高。比其中最快的多阈值分割算法计算效率平均可提高17.75倍。
DPM图像采集过程易产生复杂光照的情况,这时,将图像中DPM码区域完整地提取出来比较困难,因而识别DPM码更无从谈起。本文算法在对图像灰度直方图进行平滑处理的基础上,用多个局部峰值点将直方图分段处理,在每一灰度段,引入凹度分析算法得到系列分割阈值,再用各阈值点邻近区域信息作为校正因子,自适应调整阈值,较成功地增强了因复杂光照而引发的非均匀对比度图像中的DPM区域。在计算过程中,对其关键公式的简化和递推公式的推导有效降低了算法的计算复杂度。实验结果表明,本文算法在运行时间、DPM区域分割(增强)效果上明显优于其他阈值分割算法。比其中最快的多阈值分割算法计算效率提高17.75倍。经阈值分割后的DPM码图像识别率大幅提升,保障DPM码的准确识别。
参考文献:
[1]Jangsombatsiri W,Porter J D.Laser direct-part marking of data matrix symbols on carbon steel substrates[J].Journal of Manufacturing Science and Engineering,2007,129(3):583-591.
[2]Mala C,Sridevi M.Multilevel threshold selection for image segmentation using soft computing techniques[J].Soft Computing,2016,20(5):1793-1810.
[3]申铉京,张赫,陈海鹏,等.快速递归多阈值分割算法[J].吉林大学学报:工学版,2016,46(2):528-534.
[4]Gritzman A D,Aharonson V,Rubin D M,et al.Automatic computation of histogram threshold for lip segmentation using feedback of shape information[J].Signal,Image and Video Processing,2016,10(5):869-876.
[5]陈兆学,姚春荣.基于OTSU多阈值分割算法的激光线扫点云数据表达及精简方法研究[J].光学技术,2016(5):435-440.
[6]Arifin A Z,Asano A.Image segmentation by histogram thresholding using hierarchical cluster analysis[J].Pattern Recognition Letters,2006,27(13):1515-1521.
[7]Toossi M T B,Pourreza H R,Zare H,et al.An effective hair removal algorithm for dermoscopy images[J].Skin Research and Technology,2013,19(3):230-235.
[8]Tsai C Y,Liu T Y,Chen W C.A novel histogram based multi-threshold searching algorithm for multi-level color thresholding[J].International Journal of Advanced Robotic Systems,2012,9(12):1-13.
[9]Sun R Y,Zhao C Y.Restoration of space object images by using a maximum entropy method[J].Chinese Astronomy&Astrophysics,2014,39(1):89-99.
[10]高晓亮,王志良,刘冀伟,等.基于灰度特征统计的可变区域图像分割算法[J].光学学报,2011,31(1):198-203.
[11]卫颜俊,冯博琴,伍卫国.基于多项式一致逼近的多阈值图像分割算法[J].通信学报,2016,37(10).
[12]吴文艺,崔长彩,叶瑞芳,等.采用二次灰度直方图的砂轮磨粒图像阈值分割[J].华侨大学学报:自然科学版,2016,37(4):422-426.
[13]余辉,曲昌盛,李金航.复杂环境下的手部轮廓提取方法[J].计算机工程与应用,2015,51(14):170-174.
[14]Sonka M,Hlavac V,Boyle R.Image processing analysis,and machine vision[M].Beijing:Posts&Telecom Press,2007.
[15]耿鑫,胡晓光.基于模糊同组划分的多尺度彩色图像增强算法[J].仪器仪表学报,2012,33(3):602-608.
[16]赵凤,惠房臣,韩文超.基于过分割的多目标阈值图像分割算法[J].西安邮电大学学报,2015,20(3):60-64.
[17]郑欣,彭真明,邢艳.基于活跃度的图像分割算法性能评价新方法[J].吉林大学学报:工学版,2016,46(1):311-317.