崔岩
(天津中医药大学公共课教学部)
一种基于模板匹配的ColorChecker定位分割算法
崔岩
(天津中医药大学公共课教学部)
提出一种基于模板匹配的ColorChecker定位分割算法,该算法不需要使用颜色值等信息,避免拍摄环境差异造成的定位失败。经过实验确定参数后,成功用于1400例舌部图像中ColorChecker的定位。经过改进后,该算法可以进一步提高效率,并用于进一步的开发。
ColorChecker;定位;分割;算法
天津市卫生与计划委员会中医中西医结合科研课题(No.2015081)
ColorChecker被广泛的用于图像的标准化采集。这一装置被广泛地应用在数码照相、印刷等领域[1-2]。采集时,它被置于采集对象附近,连同被采集对象一同拍摄。而后使用专用的软件完成定位、分割和颜色校正。尽管厂家提供了专门软件完成一系列工作,但是因为没有源代码或者应用编程接口(API),所以这些专门软件无法用于二次开发。在舌部图像标准化采集的过程中,拍摄环境受到严格限制,为定位分割ColorChecker提供了良好的环境,因此在此环境下开发算法难度较低。模板匹配是一种相对简易的定位方法,在这类严格限制的条件下编程简易,效果较好[3]。
基于模板匹配的ColorChecker定位和分割算法,包含以下几个步骤。首先,需要通过欠采样和标准差将图像转换为合适尺寸的二值图像,其次要通过模式匹配找到ColorChecker所在位置的坐标。在第一步中,需要为后续步骤做好准备形成较容易且算法代价较低的图像。传统的边界检测多用差分或者微分实现。这种计算方法,计算数值微分代价较大。使用差分时,需要确定差分的阈值,对于某些色块,无法有效的检测出边界,例如左上角的黑色块,颜色值几乎没有差别,如图1。此外,由于不同色块与背景颜色差不同,每个色块都需要确定阈值。由于受到采集环境的影响,无法预知色块拍摄出的颜色值,也就无法确定阈值。即使用这类方法取得边界,所得的边界因为各种因素中断、扭曲,对进一步的处理造成影响。由于ColorChecker上色块、背景内颜色一致,所以临近像素的标准差对于颜色值的变化有着非常高的敏感度。这一指标不仅不用计算数值微分,而且不需要颜色值和确定阈值。而且一定数量的像素范围内的标准差,很好地解决了个别像素因为拍摄设备等问题出现异常值造成边界中断,提高了算法的稳定性。此外,还需要对图像进行欠采样。欠采样后图像缩小,运算量降低,提高了计算速度。在测试中,可以采用少量的图像实验确定图像缩小比例以及求标准差的邻近像素数。最后,通过判断标准差将图像二值化成为黑白图像。
在模式匹配这一步骤,整图匹配需要搜索整张图片。尽管经过缩小,匹配效率仍旧较低。为此,可以将图像整体转换为模式串,而后匹配速度可以提高。转换的方法为首先将整张图像设置为模式o,而后将某一范围内连续出现的黑色或者白色像素变为s或者l两种模式。同样可以通过少量图像实验,确定l和s对应的连续出现像素的个数。在x或者y轴先行转换后,在另一轴再次转换,即可得到最终的模式图像。此时进行模式串匹配,仅需要一次查找字符串操作即可完成模式串匹配。
图1 使用差分阈值判定边界时,色块边界出现了中断。图中为ColorChecker左上角接近于背景色的两个色块。
最终设计出的基于模板匹配的ColorChecker定位和分割算法见表1。首先通过欠采样将原始图像缩小为原来的1/n2。而后通过临近b像素值的标准差判别将图像二值化。最后通过模式匹配,找到ColorChecker的位置并分割,保存图像。
表1 基于模板匹配的ColorChecker定位和分割算法
因为涉及到大量的矩阵元素操作,程序通过R语言实现,版本为2.15.2,也可以在3.3.0版本运行[4]。
使用从体检中心采集的1400例舌部图像运行该算法。这些图像使用改进型YM-III型舌诊仪,佳能1100D数码相机采集,每幅图像像素数为4272×2848。首先通过在10幅图像试运行确定参数范围。最终确定n值为4,b值为2,s取值范围为2到8,l为40到55。测试运行的结果见图2。
图2 测试实验结果。左:欠采样后的图像,中:二值化后的图像,右:分离后的ColorChecker。
实际运行中因为ColorChecker还可以用于定位舌部图像,因此加入了剪裁图像的功能,得到的结果见图3。处理1400幅图像,共用时23小时13分17秒。
图3 实际运行结果。为了进一步减少未来工作的压力,加入了图片剪裁功能。
本文提出了一种基于模板匹配的ColorChecker定位分割算法,并成功地应用在图像预处理。这一算法不需要ColorChecker的颜色信息,而使用图像中边界信息。因此只要其全部位于图像内就可以定位并分割。但是该方法对无法处理过度倾斜、ColorChecker面积不足等图像,需要进一步改进。此外,舌部图像是在严格限制的环境下采集的,所以图片上没有出现光斑、遮挡等噪声,如何处理这些噪声,也是需要进一步需要研究和改进的。此外,作为实验算法,这一算法使用效率较低的语言编写而成,在使用的过程中可以改用MATLAB或者其他语言重写以提高效率。也可以经过简单改造,用于不同的环境下 (本文受天津市卫生与计划委员会中医中西医结合科研课题2015081资助)。
[1]徐广辉,石俊生,黄小乔等.利用自然光照明办公环境特性化相机校正手掌颜色的研究[J].云南师范大学学报(自然科学版),2013,05:48-53.
[2]梁静,赵辉.基于ProfileMaker的数码相机色彩管理实施方案[J].数码印刷,2009,02:44-46.
[3]张靖娅,刘昶,刘丽萍.一种特征加权模板匹配的钢板喷印字符识别方法[J].沈阳理工大学学报,2015,06:72-76.
[4]R Core Team(2016).R:A Language and Environment for Statistical Computing.R Foundation for Statistical Computing,Vienna,Austria.URL https://www.R-project.org/.
ColorChecker;Positioning;Segmentation;Algorithm
A Positioning and Segmentation Algorithm for ColorChecker Based on Template Matching
CUI Yan
(Department of Common Required Courses,Tianjin University of Traditional Chinese Medicine,Tianjin 300193)
Proposes a positioning and segmentation algorithm for ColorChecker based on template matching,this algorithm avoids using color value because its difference will lead to unsuccessfully positioning.After tuning parameters,this algorithm segments colorcheckers in 1400 tongue images successfully.Modifications for this algorithm will lead more efficient and can be used in other developments.
1007-1423(2016)29-0078-03
10.3969/j.issn.1007-1423.2016.29.019
崔岩,男,天津市人,硕士,副教授,研究方向为模式识别与智能系统,Email:cuiyan_tju@126.com或cuiyan@tjutcm.edu.cn
2016-08-16
2016-09-19