李 茜 文 豪 曲蘊慧 湯 偉
(陜西科技大學電氣與信息工程學院,陜西西安,710021)
·多紙病圖像·
邊緣跟蹤算法在多紙病圖像分割中的應用
李 茜 文 豪*曲蘊慧 湯 偉
(陜西科技大學電氣與信息工程學院,陜西西安,710021)
為了解決紙病檢測中多紙病圖像分割問題,提出了一種改進的邊緣跟蹤算法。該算法首先搜索得出紙病邊緣的鏈碼,并通過記錄坐標取得圖像的外接矩形,然后提取每個矩形中的紙病圖像。結果表明,該算法能夠有效提取紙病圖像的邊緣,并對多紙病圖像能夠完成精確的分割。
多紙病圖像;邊緣跟蹤;紙病檢測
(*E-mail: flowsign@icloud.com)
從紙張的生產過程來講,紙張的質量是造紙生產環節中各個要素的一個綜合反映,由于設備磨損、環境污染或操作不當等原因,紙幅表面會產生一些缺陷,稱其為紙病[1],如塵埃、斑點、條痕、皺褶、孔洞和破邊等,這些紙病會影響紙張的外觀和使用,所以將紙病完全準確地檢測出來顯得至關重要。目前紙病檢測的主要方法之一是基于機器視覺的方法,該方法的基本思路是首先通過高速CCD相機采集紙病圖像,然后通過數字圖像處理技術對紙病圖像進行預處理、提取紙病區域,最后通過分析紙病區域的特征來判斷出紙病的類型[2]。
提取紙病區域需要通過邊緣檢測來完成。邊緣檢測的實質是采用某種算法將目標與背景分離開,最常用的算法有閾值法[3]、基于微分算子的方法[4]和基于數學形態學的方法[5]。閾值法是通過設置閾值來完成檢測,其特點是操作簡便而且效果明顯,但也存在著無法適應不同紙張紙病的缺陷,有提出通過使用迭代的方法選取閾值克服這一缺陷,卻帶來了計算量增大的問題。基于微分算子的方法中,Canny算子的使用最為廣泛,它的參數允許根據特定的要求進行調整以識別不同的邊緣特性,但對于計算機的性能有著非常高的要求。基于數學形態學的方法是運用形態學腐蝕的結果圖與原圖像之差來得到圖像邊緣,邊緣定位精度高,但容易受灰度值變化的影響。
本課題提出改進的邊緣跟蹤算法進行邊緣檢測。傳統的邊緣跟蹤算法能準確地檢測出圖像的輪廓,提取出目標的形狀特征,同時在跟蹤的過程中使用鏈碼對邊緣像素進行編碼,可以壓縮存儲圖像的數據量,從而提高檢測系統的運行效率[6]。本課題在傳統邊緣跟蹤算法的基礎上加以改進,以完成多紙病圖像分割的任務。首先確定鏈碼的搜索方式,制定搜索規則;然后在邊緣跟蹤的同時記錄圖像的邊緣坐標,得出紙病的最小外接矩形;最后通過矩形區域,獨立地對多紙病圖像的各個紙病進行檢測,即可得出多紙病圖像的紙病輪廓。
邊緣跟蹤算法是沿著圖像的邊界輪廓進行搜索,并將搜索到的邊界點的位置逐一記錄下來,生成一個點的集合,這個集合即表示該圖像的輪廓。邊緣跟蹤的結果用鏈碼表示,通過鏈碼可以快速地提取出邊界的形狀特征,因此算法的核心是制定相應的跟蹤規則來獲取鏈碼。
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 邊緣跟蹤算法流程
實驗平臺如圖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 多紙病圖像處理結果
本課題提出邊緣跟蹤算法用于紙病檢測,該算法是由傳統的邊緣跟蹤算法進行改進得到的,與目前常用的邊緣檢測算法相比,其優勢主要體現在:①該算法設置了嚴謹的鏈碼提取規則,此規則易于實現,且編碼的方式壓縮了圖像數據大小,提高了系統的運行效率;②該算法在設計過程中考慮到了多紙病共存的情況,能夠有效完成對多紙病圖像的分割。在實驗結果中,可通過本課題算法提取的紙病圖像輪廓,真實地反映紙病信息,保證了特征提取及識別能夠取得更好的效果,從而使紙病檢測系統得以優化。
[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
*通信作者:文 豪,在讀碩士研究生;研究方向為圖像處理。