边缘跟踪算法在多纸病图像分割中的应用
2017-09-15曲蕴慧
李 茜 文 豪 曲蕴慧 汤 伟
(陕西科技大学电气与信息工程学院,陕西西安,710021)
·多纸病图像·
边缘跟踪算法在多纸病图像分割中的应用
李 茜 文 豪*曲蕴慧 汤 伟
(陕西科技大学电气与信息工程学院,陕西西安,710021)
为了解决纸病检测中多纸病图像分割问题,提出了一种改进的边缘跟踪算法。该算法首先搜索得出纸病边缘的链码,并通过记录坐标取得图像的外接矩形,然后提取每个矩形中的纸病图像。结果表明,该算法能够有效提取纸病图像的边缘,并对多纸病图像能够完成精确的分割。
多纸病图像;边缘跟踪;纸病检测
(*E-mail: flowsign@icloud.com)
从纸张的生产过程来讲,纸张的质量是造纸生产环节中各个要素的一个综合反映,由于设备磨损、环境污染或操作不当等原因,纸幅表面会产生一些缺陷,称其为纸病[1],如尘埃、斑点、条痕、皱褶、孔洞和破边等,这些纸病会影响纸张的外观和使用,所以将纸病完全准确地检测出来显得至关重要。目前纸病检测的主要方法之一是基于机器视觉的方法,该方法的基本思路是首先通过高速CCD相机采集纸病图像,然后通过数字图像处理技术对纸病图像进行预处理、提取纸病区域,最后通过分析纸病区域的特征来判断出纸病的类型[2]。
提取纸病区域需要通过边缘检测来完成。边缘检测的实质是采用某种算法将目标与背景分离开,最常用的算法有阈值法[3]、基于微分算子的方法[4]和基于数学形态学的方法[5]。阈值法是通过设置阈值来完成检测,其特点是操作简便而且效果明显,但也存在着无法适应不同纸张纸病的缺陷,有提出通过使用迭代的方法选取阈值克服这一缺陷,却带来了计算量增大的问题。基于微分算子的方法中,Canny算子的使用最为广泛,它的参数允许根据特定的要求进行调整以识别不同的边缘特性,但对于计算机的性能有着非常高的要求。基于数学形态学的方法是运用形态学腐蚀的结果图与原图像之差来得到图像边缘,边缘定位精度高,但容易受灰度值变化的影响。
本课题提出改进的边缘跟踪算法进行边缘检测。传统的边缘跟踪算法能准确地检测出图像的轮廓,提取出目标的形状特征,同时在跟踪的过程中使用链码对边缘像素进行编码,可以压缩存储图像的数据量,从而提高检测系统的运行效率[6]。本课题在传统边缘跟踪算法的基础上加以改进,以完成多纸病图像分割的任务。首先确定链码的搜索方式,制定搜索规则;然后在边缘跟踪的同时记录图像的边缘坐标,得出纸病的最小外接矩形;最后通过矩形区域,独立地对多纸病图像的各个纸病进行检测,即可得出多纸病图像的纸病轮廓。
1 链码与边缘跟踪算法
边缘跟踪算法是沿着图像的边界轮廓进行搜索,并将搜索到的边界点的位置逐一记录下来,生成一个点的集合,这个集合即表示该图像的轮廓。边缘跟踪的结果用链码表示,通过链码可以快速地提取出边界的形状特征,因此算法的核心是制定相应的跟踪规则来获取链码。
1.1 链码
链码用来表示由顺次连接的具有指定长度和方向的直线段组成的边界线,每一段的方向使用数字编号方法进行编码,方向编号称为码值[7]。本课题使用如图1所示的8向链码,8向链码比4向码增加了4个斜方向,因为任意一个像素周围均有8个邻接点,而8向链码正好与像素点的实际情况相符,能够准确地描述中心像素点与其邻接点的信息。
图1 8向链码的方向编号
图2所示为数字图像矩阵,图2中每个点表示一个像素,其中白点表示背景像素,黑点表示目标像素。可以看到图中黑点构成了一个完整的图形。从图像底部左方第一个点开始,在找到图像的起始点后,进行下一个点的搜索,直到找到起始点为止。考虑到搜索的不同情况,下面给出搜索规则:
(1)对于起始点的邻点进行搜索时,搜索码值0,1,2三个方向即可。
图2 待处理图像
(2)对与第二个点的邻点进行搜索时,由于起始点是从图像底部左方开始检查得到的,所以不再考虑码值4,5,6三个方向。
(3)其余点的搜索可按照表1所示顺序依次进行,而且在前一次搜索中被检验过的像素不再检验。
表1 搜索规则
(4)如果在一次搜索中检验到起始点,则搜索结束。
按照上述规则进行搜索可以得到目标图像的链码,从而得到图像的轮廓,完成边缘检测。
对于图2的链码提取过程如下:
首先从图像底部左方第一个点开始搜索,直到搜索到第一个黑点,如图2所示的虚线所指为目标图像的起始点,然后按照上述规则进行搜索,从而依次搜索到所有位于边界的黑点,最后得到的所有编号为图像的链码,即“011233455677”。
上述规则适用于诸如孔洞、黑斑等类型纸病的检测。当对皱褶类型的纸病进行检测时,由于此类型的纸病多呈线状结构,搜索从一端开始到尾端后,需要从原路返回,才能再次回到起始点,因此需要添加新的规则,使其能够兼容对皱褶类型纸病的搜索。
增加规则如下:
(1)对搜索到的黑点进行标记,搜索的起始点标记为3,第一次搜索到的黑点标记为1。
(2)当搜索到某一点时其邻域内只有标记为1的黑点,则将此点标记为2,对标记2的点不再搜索。重复进行,直到回到起始点即标记为3的点为止。
1.2 边缘跟踪算法
传统的边缘跟踪算法是利用链码跟踪图像目标区域的边缘,把目标和背景分为两个区域,然后得到目标的轮廓。此方法可以检测出单纸病图像中的纸病,但是对存在多个纸病的纸病图像进行检测时,链码第一次搜索到起点时算法结束,便不再继续检测后续的纸病,无法检测出所有的纸病。因此需要对此算法加以改进,使其能更全面地进行纸病检测工作。
改进的边缘跟踪算法主要思想是检测出一个纸病后,将此纸病所在的区域的灰度值置为背景的灰度值,然后再次进行检测,以此检测出所给图像中的所有纸病。检测流程如图3所示,具体步骤如下:
(1)获取纸病图像。
(2)纸病图像的预处理。由于本课题算法适用于不含噪声干扰的二值图像,所以需要对原始图像进行预处理。
首先,为了减少CCD相机自身问题、纸张材质问题或者光线问题等可能产生的噪声,对原始图像进行中值滤波,中值滤波在去除脉冲噪声、椒盐噪声的同时又能保留图像的边缘细节[8]。
然后,为了得到二值图像,对中值滤波后的图像进行阈值化。由于不同纸病具有各异的灰度特征,所以需要设定合适的阈值[9],使其能够真实地反映纸病的边缘。本课题使用自适应阈值选取的方法确定阈值,首先计算对应元素一定邻域的灰度平均值X,然后减去设定的差值α(可以为负数)得到阈值thresh,如式(1),再用此点的灰度值与得到的阈值进行比较,并进行相应判断,如式(2)所示。
thresh=X-α
(1)
(2)
式中,thresh表示判断的阈值,a表示背景灰度值,b表示目标灰度值,(x,y)表示像素点所在位置的坐标,src(x,y)表示该点像素当前的灰度值,dst(x,y)表示该点像素阈值化后的像素值。
此外,如果此图中所有的像素点的灰度值都大于阈值,则表明不存在纸病,那么直接结束检测。
(3)确定链码起点。按照从下到上、从左到右的顺序进行扫描,将扫描得到的第一个黑点作为起始点记为pStart,同时记录此点的坐标(x0,y0)。
(4)链码搜索。根据链码的搜索规则从起始点开始搜索,直到起始点结束,并记录链码上所有点的坐标(xi,yi),i表示第i个点的像素坐标。
(5)确定纸病区域。通过比较所有记录的点横纵坐标值的大小可以得到xmax、xmin、ymax、ymin,从而得出纸病区域的外接矩形S,即(xmin,ymin)、(xmin,ymax)、(xmax,ymax)、(xmax,ymin)所围起来的矩形区域。
(6)提取纸病。将矩形S中的图像提取出来就得到了图像中的纸病,然后将此区域中的灰度值置为背景灰度值。检测图像中是否存在灰度值不大于阈值的像素点,如果存在转到步骤(3),如果不存在则结束检测。
图3 边缘跟踪算法流程
2 实 验
实验平台如图4所示,上位机软件采用Visual Studio 2010,编程语言为C++,使用OpenCV函数进行图像处理,并通过CCD相机配套的SDK开发包进行软件编写。实验中相机采集的图像分辨率为4096×1048,高分辨率可以更加真实地反映纸病边缘信息。
图4 纸病检测实验平台
实验分两部分进行:实验1使用边缘跟踪算法对只有单一纸病的纸病图像进行检测,为了便于观察,描绘出了纸病图像的轮廓,同时使用阈值法、基于Canny算子的方法和基于数学形态学的方法检测,并对结果进行对比分析;实验2使用边缘跟踪算法对含有3个纸病的纸病图像进行检测,同样为了便于观察,描绘出纸病图像的外接矩形和纸病轮廓,以此来验证本课题算法对于多纸病图像进行纸病检测的有效性。
实验1:含有单一纸病图像的检测
图5 单一纸病图像
图6 单一纸病图像处理结果及与不同算法的对比
使用本课题算法对单一纸病的纸病图像进行验证,纸病如图5所示,为一个近似椭圆形的黑斑纸病。从图6(a)阈值法检测的结果可以看出,阈值法对于灰度值变化的边缘比较敏感,导致检测结果的轮廓产生了断裂。图6(b)为数学形态学的方法进行检测的结果,在原纸病图像右上方灰度值低的区域得出的轮廓也较为不清晰,此结果会导致纸病检测的特征提取环节出现偏差。图6(c)为Canny算子检测的结果,边缘轮廓完整,但是在右方出现了多余的轮廓信息,同样会影响特征提取的准确性。图6(d)为本课题算法的检测结果,可以看出边缘较为完整,有效避免了因灰度值变化而出现的断裂,轮廓比较清晰。
实验2:含有多纸病图像的检测
使用本课题的算法对含有3个不同纸病的图像进行验证,纸病含有孔洞、皱褶、黑斑,如图7所示。处理结果如图8所示,从实验结果中看出,矩形框准确地定位了纸病,并逐个提取出来,实现了对多纸病同时存在时图像的准确提取,证明了本课题中算法准确有效。
图7 多纸病图像
图8 多纸病图像处理结果
3 结 论
本课题提出边缘跟踪算法用于纸病检测,该算法是由传统的边缘跟踪算法进行改进得到的,与目前常用的边缘检测算法相比,其优势主要体现在:①该算法设置了严谨的链码提取规则,此规则易于实现,且编码的方式压缩了图像数据大小,提高了系统的运行效率;②该算法在设计过程中考虑到了多纸病共存的情况,能够有效完成对多纸病图像的分割。在实验结果中,可通过本课题算法提取的纸病图像轮廓,真实地反映纸病信息,保证了特征提取及识别能够取得更好的效果,从而使纸病检测系统得以优化。
[1] WANG Xian-tong. Research and implementation of web inspection system based on machine vision[D]. Xi’an: Shaanxi University of Science & Technology, 2016. 王先通. 基于机器视觉的纸病检测系统的研究与实现[D]. 西安: 陕西科技大学, 2016.
[2] ZHOU Qiang, CHEN Ying, SHEN Tian-yu. Review of Paper Defect Detection System Based on Machine Vision Technology[J]. China Pulp & Paper, 2016, 35(5): 72. 周 强, 陈 颖, 沈天宇, 等. 基于机器视觉的纸病检测系统发展综述[J]. 中国造纸, 2016, 35(5): 72.
[3] LIU Dong-ju. The research of image segementation based on thresholds[D]. Beijing: Beijing Jiaotong University, 2009 刘东菊. 基于阈值的图像分割算法的研究 [D]. 北京:北京交通大学, 2009.
[4] Dan Dan Han, Tian Chi Zhang, Jing Zhang. Research and Implementation of an Improved Canny Edge Detection Algorithm[J]. Key Engineering Materials, 2014, 2616(572): 566.
[5] ZHANG Cong, TANG Wei. Paper defect detection based on PSO and mathematical morphology[J]. Paper Science & Technology, 2014, 33(2): 60. 张 聪, 汤 伟. 基于粒子群优化算法与形态学的纸病图像检测方法[J]. 造纸科学与技术, 2014, 33(2): 60.
[6] DONG Jian, CHEN Wen-yi. A General Algorithm for Edge Tracking of Binary Images[J]. Information and Control, 1990(2): 60. 董 健, 陈文毅. 一种二值图象边缘跟踪的通用算法[J]. 信息与控制, 1990(2): 60.
[7] YANG Wan-kou. Research on Partial Algorithm Based on Chain Code[D]. Nanjing: Nanjing University of Science and Technology, 2004. 杨万扣. 基于链码的部分算法研究[D]. 南京: 南京理工大学, 2004.
[8] WU Yu-lian. Median Filtering Method for Image Processing and Its Application[D]. Xi’an: Xidian University, 2006. 吴玉莲. 图像处理的中值滤波方法及其应用 [D]. 西安: 西安电子科技大学, 2006.
(责任编辑:马 忻)
Application of Edge Tracking Algorithm to Multiple Paper Defects Segmentation
LI Qian WEN Hao*QU Yun-hui TANG Wei
(CollegeofElectronicsandInformationEngineering,ShaanxiUniversityofScienceandTechnology,Xi’an,ShaanxiProvince, 710021)
Aiming at the problem of multiple paper defects segmentation in web inspection system, an improved edge tracking algorithm was proposed in this paper. This algorithm firstly tracked the chain code of paper defect edge, and recorded the coordinates to get the bounding rectangle of the image, then extracted defect image of each rectangle. The results showed that the presented algorithm not only could effectively extract the edge of paper defect, but also precisely completed the segmentation of multiple paper defects.
multiple paper defects; edge tracking; web inspection system
李 茜女士,硕士,教授;研究方向:工业自动化与智能控制。
2017- 04- 01(修改稿)
TP27
A
10.11980/j.issn.0254- 508X.2017.08.008
*通信作者:文 豪,在读硕士研究生;研究方向为图像处理。