張一明,張景異,高宏偉
(沈陽理工大學 自動化與電氣工程學院,沈陽 110159)
隨著收藏家的大量涌現(xiàn),紀念幣成為一種值得珍藏的流通貨幣。在制造硬幣過程中,經(jīng)常會因為環(huán)境的不確定性而受到磨損、劃傷等不可控制的因素,如若受到刮蹭就會留下劃痕;紀念幣與空氣、水分或酸性物質(zhì)等接觸,其表面易發(fā)生化學變化,也會產(chǎn)生變色和腐蝕等現(xiàn)象[1]。因此在制幣生產(chǎn)中會有一些對硬幣保護的工藝手段,如在造幣過程中對表面電鍍一層耐腐蝕性較強的金屬或合金來對硬幣進行保護和防腐[2],或在銀幣鍍上電解保護和浸漬抗變色劑的多層組合防護膜[3]等。如果生產(chǎn)后的紀念幣存在表面缺陷,不僅影響產(chǎn)品的美觀,也會對收藏的價值帶來影響,因此生產(chǎn)企業(yè)對紀念幣的表面缺陷檢測非常重視。以往的紀念幣工件瑕疵劃痕檢測都是通過人眼目視檢測[4],人工檢測是產(chǎn)品表面缺陷的傳統(tǒng)檢測方法,該方法抽檢率低、準確性不高、實時性差、效率低、勞動強度大、受人工經(jīng)驗和主觀因素的影響大,而基于機器視覺的檢測方法可以很大程度上克服上述弊端。文獻[5]中采用的是將硬幣分為鏡面部分和紋理部分,分別處理檢測表面瑕疵,運用標準品與待檢測硬幣作圖像匹準,得到劃痕的特征信息。文獻[6]利用一種多尺度多方向的形態(tài)學方法對劃痕進行特征提取。本文研究在沒有紀念幣標準品的前提下檢測劃痕位置,提出一種基于機器視覺的紀念幣表面劃痕的提取算法,以提高檢測效率與準確性。
根據(jù)紀念幣的表面金屬特性,在圖像獲取的階段可能會出現(xiàn)圖像的噪聲點、曝光不均勻、對比度不均勻等不可避免的場外因素,因此對圖像前期預處理是必不可少的流程。工業(yè)中常用到的圖像預處理方法有:圖像濾波、圖像增強、二值化、亮度校正等。對本實驗中的紀念幣采取兩種圖像前期的處理:圖像濾波和圖像增強。
圖像濾波是為去除在圖像獲取過程中產(chǎn)生的雜質(zhì)信息。這里將自適應中值濾波的濾波方式用在對紀念幣的圖像處理中。
圖像濾波可通過式(1)進行計算。
(1)
式中:K為一個大小為m×n的模板,其中m=2a+1,n=2b+1,a、b均為正整數(shù)。對于一個M×N的圖像I(i,j),i=0,1,2…M-1和j=0,1,2…N-1,依次應用公式(1),從而完成對于圖像I所有像素的處理,得到新的圖像O。
為克服在圖像獲取中光照對圖像照射的不均勻,需對紀念幣進行圖像增強[7]處理,本文選擇通過直方圖均衡化進行圖像增強。直方圖均衡化既能提高圖像的對比度,也可改善圖像的視覺效果,達到凸顯紀念幣劃痕的目的,為圖像特征提取的后續(xù)工作做準備。
圖像分割指的是根據(jù)灰度、顏色、紋理和形狀等特征把圖像劃分成若干互不交迭的區(qū)域,并使這些特征在同一區(qū)域內(nèi)呈現(xiàn)出相似性,而在不同區(qū)域間呈現(xiàn)出明顯的差異性。
閾值分割法是圖像分割中的經(jīng)典方法,利用圖像中要提取的目標物體和背景在灰度上的差異,通過設置閾值把像素點按灰度級分為若干類,從而實現(xiàn)圖像分割。通過判斷圖像中每一個像素點的特征屬性是否滿足閾值要求,來確定圖像中該像素點是屬于目標區(qū)域還是背景區(qū)域,從而將一幅灰度圖像轉(zhuǎn)換成二值圖像,這是閾值分割的最簡單形式 。
設原始圖像f(x,y),T為閾值,分割圖像時則滿足下式
(2)
式中T為閾值,當g(i,j)=1時為圖像圖案,當g(i,j)=0時為圖像背景。因此選擇合適的灰度閾值T,是圖像分割的關鍵。
粒子群算法是一種以群體為基礎的最優(yōu)化啟發(fā)式算法。
其基本算法如式(3)、式(4)所示。
Vid(t+1)=w×Vid(t)+c1×rand()×[Pid(t)-xid(t)]+c2×rand()×[Pgd(t)-xid(t)]
(3)
xid(t+1)=xid(t)+vid(t+1)
1≤i≤n,1≤d≤D
(4)
式中:Vid為第i個粒子在d維的速度,其范圍為[-VMAXd,VMAXd];c1、c2為學習參數(shù);rand()為[0,1]之間的隨機數(shù);w為慣性因子;Pid(t)為第t個粒子搜索到的最優(yōu)值;Xid為第i個粒子的當前位置;Pgd代表整個集群搜索到的最優(yōu)值;第d(1≤d≤D)維的位置變化范圍為[-XMAXd,XMAXd]。
粒子群分割是利用當前圖像灰度值和幀圖像像素領域的灰度級構成的二元組,通過計算均值和方差,建立一個二維的模型,然后再結合粒子群算法計算出圖像的最優(yōu)閾值,找到適合圖像的最優(yōu)灰度值。粒子群算法只需要少數(shù)的參數(shù)調(diào)整,且能夠加速收斂至最優(yōu)解。首先對紀念幣通過粒子群算法來獲得最佳閾值[9],計算出圖像的最優(yōu)閾值在131~154之間,通過對閾值區(qū)間的分析發(fā)現(xiàn),當選取136閾值對圖像進行分割時,圖像分割效果最明顯。
紀念幣的黑色背景位置均有可能存在劃痕問題,對這種情況下閾值的分割進行改進,將紀念幣分割成多個N×N的區(qū)域,對這些區(qū)域求其最佳閾值,將局部的粒子群算法獲得的閾值與全局的閾值相結合。
局部閾值分割算法的步驟:
①采用粒子群算法對紀念幣的全局圖像計算其閾值TA;
②將紀念幣分割成若干不重疊的N×N區(qū)域,計算每一區(qū)域的閾值TB1、TB2、TB3…TBN;
③將每一區(qū)域計算得出的閾值應用到相應的區(qū)域;得出對應的圖像。
由于紀念幣種類繁多,不能根據(jù)標準模板對紀念幣的劃痕進行標記與識別,在沒有標準樣品的條件下,本文采取一種針對沒有標準品紀念幣表面劃痕的標識方法進行檢測。圖1為是紀念幣劃痕特征提取流程圖。
圖1 紀念幣劃痕特征提取流程圖
2.3.1 移動固定閾值窗口分割圖像
紀念幣的大小為1280×960的圖片,采用10×10大小的窗口對圖像逐行掃描,以窗口一半的長度移動,求窗口內(nèi)灰度均值,若大于分割閾值的灰度均值時,表示此處為圖像紋理,建立一個與圖像內(nèi)存大小相同的數(shù)字內(nèi)存aa,目的是存儲紋理信息,其內(nèi)存中不包括劃痕的信息。
2.3.2 邊緣提取
通過邊緣檢測算子突出圖像中的細節(jié),且增強被模糊了的細節(jié),突出其邊緣信息。邊緣意味有階躍變化或是屋脊狀變化的像素集合,邊緣是圖像分割、圖像理解及圖像識別的重要特征。 本文采用高斯-拉普拉斯算子[9]進行邊緣提取。高斯-拉普拉斯算子將高斯平滑濾波器與拉普拉斯邊緣銳化濾波器結合在一起,先對圖像平滑,然后進行去噪處理,最后對圖像邊緣檢測。
拉普拉斯算子定義如下。
(5)
經(jīng)過分析,得到圖像的所有邊緣信息,包括圖片的紋理和缺陷邊緣信息,將這些信息放入數(shù)組bb中,在bb中消除數(shù)組aa中含有的紋理信息,得到劃痕缺陷的信息。
2.3.3 劃痕識別
對圖像進行劃痕識別就是將這些劃痕的信息進行定位與標記。將分割后的圖像進行特征描述,本文選擇幾何特征描述。測量所選紀念幣的最大劃痕為20個像素,長度為30mm,因此主要選擇的是面積和周長作為特征描述子。將分割后的圖像與劃痕的模板進行匹配,模板與原圖進行比較,以確定原圖像是否存在與模板相同或相似的區(qū)域,找到屬于劃痕的所有點的區(qū)域。模板匹配[10]是將模板與原圖像相對應的區(qū)域相比較,求其誤差的平方和。誤差平方和測度定義如下:
(6)
展開得
(7)
令
(8)
(9)
(10)
式中:f(x,y)為圖像1280×960的原圖像;t(j,k)為j×k大小的模板;DS(x,y))稱為原圖像與模板圖像對應區(qū)域的能量,與(x,y)像素的位置有關;DST(x,y)是模板與原圖像對應區(qū)域的互相關,隨像素(x,y)成函數(shù)關系,隨著其位置變化而緩慢變化,當模板區(qū)域與圖像對應的區(qū)域相互匹配時,DST(x,y)的值為最大值;DT(x,y)稱為模板能量。根據(jù)公式(8)~(10)計算記錄下劃痕像素的具體位置,將數(shù)據(jù)存入數(shù)組cc中。
2.3.4 劃痕量化
劃痕的像素已存入數(shù)組cc中,對其離散的像素點進行歸類,屬于同一條線上的劃痕進行連接標記,將相鄰的點歸在一起算做一條劃痕,既鄰域標記。對于這些離散的點歸類,有4鄰域和8鄰域擴展法,如果兩個像素有公共邊界,則稱其互為4鄰域;如果兩個像素至少有一個頂角是共享的,則稱其為8鄰域。由于圖像表面可能是斷續(xù)的劃痕,這里采用8鄰域擴展法。圖2a、圖2b分別為4鄰域和8鄰域示意圖。
圖2 領域示意圖
本次實驗在Windows 7 系統(tǒng)、S2010環(huán)境下完成,電腦配置為i5-3230M CPU,2.6GHz主頻,4GB內(nèi)存,算法運用opencv算法庫和C++語言實現(xiàn)。在實驗測試中,有150種不同樣式的紀念幣,選取其中4種紀念幣進行實驗,運用本文敘述的檢測紀念幣劃痕并標記的方法進行檢測,圖3和圖4分別為傳統(tǒng)閾值分割和改進的局部分割效果圖,顯然,經(jīng)過改進的局部閾值分割對圖像的分割更明顯,既能還原紀念幣本身的細節(jié),也能突出紀念幣表面劃痕的特征。圖5為紀念幣檢測劃痕的效果圖,圖5顯示能準確找到紀念幣表面劃痕的連通域并標記連線。
圖3 傳統(tǒng)閾值分割效果圖
圖4 改進的局部分割效果圖
圖5 紀念幣檢測劃痕結果
表1為圖5所示4種不同類型紀念幣的劃痕檢測數(shù)量和位置標記的結果,4種紀念幣的表面都存在幾條不同位置的劃痕,檢測結果存在一些誤差,有些劃痕未能檢測到,可能由于對圖像的前期預處理使劃痕特征被清除,因此優(yōu)化前期圖像的獲取和預處理能提高對劃痕的檢測效率。
表1 紀念幣劃痕檢測結果
研究了一種在沒有標準樣品前提條件下檢測紀念幣表面劃痕的方法,闡述了圖像預處理與改進的閾值分割的方法與步驟,并對紀念幣進行特征提取,最終將劃痕標記。通過對數(shù)據(jù)庫中4種紀念幣模擬試驗,證明了該方法的可實行性,能夠準確的標記紀念幣表面的劃痕位置,減少人工工作量,提高工作效率。此外,有待改進和提高的部分,實際測試中若采用分辨率高的工業(yè)相機獲取圖像,對圖像劃痕缺陷完整的還原,瑕疵檢測算法的正確率還可提高。