周文歡,鄭力新
(1.華僑大學(xué) 信息科學(xué)與工程學(xué)院,福建 廈門 361000;2.華僑大學(xué) 信息科學(xué)與工程學(xué)院,福建 泉州 362021)
目前國內(nèi)的很多鋼材生產(chǎn)企業(yè)對棒材的計數(shù)主要通過人工來完成。人工計數(shù)不僅耗費工人大量的時間,而且容易引起人眼的疲勞,會產(chǎn)生較大誤差,給企業(yè)造成一定的經(jīng)濟損失,因此企業(yè)急需開發(fā)出一種準確率高、適應(yīng)性強的棒材自動計數(shù)系統(tǒng)。但是工業(yè)生產(chǎn)現(xiàn)場的環(huán)境惡劣,如捆扎棒材的堆放較近以及現(xiàn)場的一些光線等問題,使采集的圖片質(zhì)量較差,端面粘連比較嚴重,給棒材的計數(shù)增添了很大麻煩。針對這些問題,提出了一種基于提取連通分量的方法來實現(xiàn)目標棒材區(qū)域的自動定位分割,標注區(qū)域的連通分量,并通過區(qū)域周長校正方法,很好地解決了上述問題。
棒材自動計數(shù)系統(tǒng)流程框圖如圖1所示,其主要分為采集、預(yù)處理與計數(shù)三個階段。其中,圖像采集屬于采集階段;圖像平滑去噪、圖像二值化、區(qū)域定位分割、形態(tài)學(xué)處理為預(yù)處理階段;而標注連通分量、利用區(qū)域周長法進行校正實現(xiàn)對棒材的準確計數(shù)為計數(shù)階段。
圖1 棒材自動計數(shù)系統(tǒng)的流程框圖
利用攝像頭對棒材端面進行拍攝,獲取工業(yè)生產(chǎn)現(xiàn)場的棒材端面圖片。但由于工業(yè)現(xiàn)場的噪聲、光照以及其他的一些反光物體的影響,拍攝的圖像質(zhì)量很差,這給后續(xù)的圖像處理與棒材的計數(shù)帶來了很大難度。因此,應(yīng)該在采集圖像階段盡可能地獲得質(zhì)量較好的圖片,要求拍攝時應(yīng)與棒材橫截面的光照平行,有均勻、恒定和較高的照度,以減弱現(xiàn)場光照與其他反光物體等對采集圖片質(zhì)量的影響。圖2、圖3所示為不同采集環(huán)境下采集的圖片。
1.2.1 圖像的平滑
圖像平滑是一種可以減少和抑制圖像噪聲的實用數(shù)字圖像處理技術(shù)。由于工業(yè)現(xiàn)場的隨機噪聲較大,在此采用一種改進的中值濾波方法對采集的棒材端面圖像進行平滑去噪。
改進的中值濾波算法的思想是:逐行掃描圖像,當處理每一個像素時,判斷該像素是否是濾波窗口覆蓋下領(lǐng)域像素的極大或者極小值,如果是,則采用正常的中值濾波處理該像素;如果不是,則不予處理。
在實踐中該方法能夠非常有效地去除突發(fā)噪聲點,尤其是椒鹽噪聲,而且?guī)缀醪挥绊戇吘墶?/p>
1.2.2 圖像的二值化
圖像的二值化即選擇一個閾值,將圖像上的像素點的灰度值設(shè)置為0或255,令整個圖像呈現(xiàn)出明顯的黑白效果。在本文中,鑒于平滑后的棒材端面圖像目標與背景像素的比例相差不大,可對圖像進行二值化,能得到比較理想的效果。對圖2和圖3進行二值化的結(jié)果分別如圖 4、圖5所示。
提取連通分量[2-3,9-10]是針對二值圖像而言的,因此提取連通分量是提取相應(yīng)二值圖像的連通分量。算法實現(xiàn)的步驟如下:
①確定一個對應(yīng)于4連通和8連通[9]的3×3的模板結(jié)構(gòu)元素,并初始化連通分量的標號為1。
②備份要標注連通分量的原圖像,將圖像的四周邊界置為黑色(算法不處理邊界上的點),分配與原圖像大小相同的目標圖像空間,并初始化為全0(黑色為背景色,白色為前景色)。
③找到一個前景點 (即像素值為255),初始化目標圖像為只有連通區(qū)中的一點,從這一個點開始用3×3模板結(jié)構(gòu)元素進行膨脹,計算和原圖像的交集,限制膨脹不會超出區(qū)域。不斷執(zhí)行上述過程,直到與上一次膨脹后的結(jié)果相同,說明該連通區(qū)域已經(jīng)提取完畢。
④用標號標注剛剛找到的連通區(qū) (即將唯一的標號賦給該連通區(qū)內(nèi)的所有像素),記錄當前連通區(qū)所有點的坐標,并將連通區(qū)標號加1以標注下一個連通區(qū)。
⑤循環(huán)執(zhí)行步驟④~步驟⑤,直到找到所有的連通區(qū)域。
(2)棒材計數(shù)區(qū)域的自動定位分割算法
算法的實現(xiàn)步驟如下:
①對經(jīng)過預(yù)處理與二值化的圖像進行形態(tài)學(xué)處理,由于閉運算對目標圖像的整體邊界影響不大,在此對二值圖像進行兩次閉運算處理。
②用提取連通分量的算法來標注通過閉運算處理后的圖像中的每一個連通區(qū)域,并計算每一個連通區(qū)域的像素數(shù),即連通區(qū)域的面積。在實際應(yīng)用中,要檢測的目標區(qū)域的面積應(yīng)該是圖像連通區(qū)域的面積中最大的,可以利用這一點,對區(qū)域進行準確的定位。圖像中連通面積最大外接矩形即為要處理的目標區(qū)域,如圖6所示。
1.2.3 區(qū)域的自動定位分割
從平滑、二值化后的圖片可以發(fā)現(xiàn),由于工業(yè)現(xiàn)場復(fù)雜,不是所有的圖片進行預(yù)處理后都能得到比較理想的效果,如捆扎棒材堆放較近,或者周圍有什么反光物體,都會給計數(shù)帶來很大的麻煩。如圖5所示,即使通過形態(tài)學(xué)處理,要直接對目標區(qū)域進行準確的計數(shù)也是不可能的。對于這樣的目標區(qū)域,以往都采用手動分割,這給棒材的自動計數(shù)帶來了不必要的麻煩。本文提出了一種基于提取連通分量算法的自動定位分割算法,能準確地提取出目標圖像矩形區(qū)域。具體方法如下:
(1)提取連通分量算法
③矩形區(qū)域的確定。通過提取連通分量算法找到連通區(qū)域面積最大的區(qū)域(即找到連通區(qū)域標號相同像素數(shù)目最多的區(qū)域),計算最大連通區(qū)域中像素點坐標的水平方向與豎直方向的最小值、最大值以確定相應(yīng)的輪廓最小矩形區(qū)域,并通過這個最小矩形區(qū)域從原始圖像分割出目標區(qū)域,如圖7所示。
1.2.4 目標圖像的形態(tài)學(xué)處理
對定位分割出的目標圖像進行二值化,雖然經(jīng)過了濾波處理,但噪聲、區(qū)域粘連比較嚴重,要對其進行準確計數(shù),應(yīng)先對圖像進行腐蝕、膨脹、開與閉運算等相應(yīng)處理,以填充小的空洞,去除粘連與噪聲。
本文選擇3×3的矩形結(jié)構(gòu)元素與十字形結(jié)構(gòu)元素結(jié)合,對自動定位的目標圖像進行相應(yīng)的形態(tài)學(xué)處理,處理結(jié)果如圖8、圖9所示。
1.3.1 標注連通分量
在此用的標注連通分量算法與前文提取連通分量算法類似,但這里是用其來實現(xiàn)輪廓的標注,以方便后面的棒材的計數(shù)與校正。
1.3.2 計數(shù)與區(qū)域周長校正
對棒材實現(xiàn)準確的計數(shù),在這里給出兩種方式,即形態(tài)學(xué)處理后的有粘連的棒材計數(shù)以及形態(tài)學(xué)處理后無粘連棒材的計數(shù)。若通過形態(tài)學(xué)處理后的二值圖像的輪廓區(qū)域沒有粘連,則實際的棒材的根數(shù)即為提取的連通區(qū)域的個數(shù)。但在實際應(yīng)用中,有些圖像不論是進行怎樣的形態(tài)學(xué)處理,要對粘連區(qū)域進行理想分割是很難實現(xiàn)的。當然可以采用參考文獻[4]提出的區(qū)域面積法來實現(xiàn)棒材計數(shù)的校正,但是當區(qū)域腐蝕到一定程度時,區(qū)域變成扁平的形狀時,區(qū)域面積變得越來越小,區(qū)域面積校正法變得越來越不準確。但是區(qū)域的周長變化并不是很大,因此提出了一種基于區(qū)域周長校正的方法對棒材計數(shù)校正,對其能有很大程度改善,并有極高的準確率。
區(qū)域周長校正的具體步驟如下:
①計算所有提取外輪廓的周長,輪廓周長的計算采用Freeman鏈碼表[5-6]跟蹤輪廓邊界的方式來實現(xiàn),其計算的公式為:
其中,Noven為輪廓邊緣的鏈碼為偶數(shù)的個數(shù),Nodd為輪廓邊緣鏈碼為奇數(shù)的個數(shù),Perimeter為輪廓的周長。
②設(shè)定平均每個區(qū)域周長為meanperimeter,其計算公式為:
其中,參數(shù)Perimeter(i)為第i個區(qū)域的周長,N為提取的區(qū)域連通分量的個數(shù)。
③根據(jù)大量的實驗統(tǒng)計分析,制定校正規(guī)則如下:
(a)當 1.4×meanperimeter<Perimeter(i)<2.5×meanperimeter時,校正系數(shù)為 1,即棒材總數(shù)加 1;
(b)當 2.5×meanperimeter<Perimeter(i)<3.5×meanperimeter時,校正系數(shù)為 2,即棒材總數(shù)加 2;
(c)當 3.5×meanperimeter<Perimeter(i)<4.5×meanperimeter,校正系數(shù)為3,即棒材總數(shù)加3;
(d)當 Perimeter(i)>4.5×meanperimeter 時,說 明 粘 連太嚴重,提示圖像處理不夠理想,請重新處理。
在VS 2008+Opencv 2.1平臺下編寫棒材自動計數(shù)的MFC界面程序進行實驗,實驗圖片為某鋼廠現(xiàn)場采集的8幅不同棒材端面圖像,并與參考文獻[4]采用的面積法進行比較,測試結(jié)果如表1所示。
表1 不同捆扎棒材的測試結(jié)果
對其中的兩幅圖像進行分析,如圖10和圖11所示,圖10棒材的實際根數(shù)是140,檢測值為140根,輪廓數(shù)是130,周長校正系數(shù)為 10;圖 11實際根數(shù)是 120,檢測值為119,其中輪廓數(shù)是106,校正系數(shù)為13。其原因是圖像采集與預(yù)處理不夠理想,導(dǎo)致形態(tài)學(xué)處理之后實際的根數(shù)少了1根。針對這一情況,筆者猜想通過一種選擇性腐蝕算法來進行相應(yīng)改進,應(yīng)該能得到比較理想的結(jié)果。
從實驗數(shù)據(jù)分析可知,本文提出的方法不僅對經(jīng)過形態(tài)學(xué)處理效果較理想的圖片準確率高達100%,而且對處理效果不是很理想的圖片亦有極高的準確率。
盡管由于現(xiàn)場環(huán)境惡劣等原因,采集的圖片質(zhì)量較差,致使棒材計數(shù)變得困難,但本文提出了一種基于提取連通分量的方法,實現(xiàn)了目標棒材計數(shù)區(qū)域的準確定位,使得不必再通過手工去確定目標棒材計數(shù)區(qū)域,以實現(xiàn)棒材計數(shù)真正的自動化。本文提出了一種區(qū)域輪廓周長的校正方法,能很好地實現(xiàn)粘連棒材的準確計數(shù),測試結(jié)果說明了該方法的有效性、可行性與準確性,且對類似場合的粘連計數(shù)具有一定的通用性。
[1]0TSU N.A threshold selection method from gray 1evel histograms[J].IEEE Transactions on System Man and Cybernetic,1979,9(1);62-66.
[2]SKOURIKHINE A N.Dilated contour extraction and component labeling algorithm for object vector respresentation.Mathematical methods in pattern and image analysis:Proceedings of SPIE,2005,5916:1.
[3]Yan Shiju,Wang Chengtao.Application of a fast connected components labeling algorithm in processing landmark images[J].Journal of Shanghai Jiaotong University,2007,12(3):383-387.
[4]丁大弓朋,黃歡,羅山.基于圖像處理技術(shù)的棒材自動計數(shù)方法[J].山西電子技術(shù),2008(3):41-42.
[5]宋凱,紀建偉.鏈碼表和線段表在計算機圖像處理中的應(yīng)用[J].遼寧工程技術(shù)大學(xué)學(xué)報,2007(02):257-259.
[6]吳元敏.基于Freeman鏈碼的圖像中多個區(qū)域面積的計算方法[J].計算機工程與應(yīng)用,2008(15):199-201.
[7]成鵬飛 ,楊帆,言立強,等.基于機器視覺的鋼棒自動計數(shù)系統(tǒng)[J].冶金自動化,2008,32(1):22-26.
[8]鄧凱.針對鋼筋計數(shù)系統(tǒng)的圖像處理方法研究[D].南京:東南大學(xué),2006.
[9]張錚,王艷平,薛桂香.數(shù)字圖像處理與機器視覺[M].北京:人民郵電出版社,2010.
[10]GONZALEZ R C,WOODS R E,EDDINS S L.數(shù)字圖像處理[M].阮秋琦,譯.北京:電子工業(yè)出版社,2005.