卞玉麗,鄭力新,晏來成,徐園園
(華僑大學(xué) 信息科學(xué)與工程學(xué)院,福建 廈門361021)
我國是瓷磚生產(chǎn)大國,生產(chǎn)企業(yè)眾多。在一些中小企業(yè)中,由于生產(chǎn)條件、成本等因素的制約,往往多種花紋的瓷磚共用一條生產(chǎn)線,主要靠大人工將不同類別的瓷磚分開,勞動強(qiáng)度大,效率低下且出錯率高。國內(nèi)已展開與瓷磚相關(guān)的研究,如瓷磚的顏色分類、表面檢測等,當(dāng)前大部分的研究內(nèi)容,不管是分類還是缺陷識別,都涉及當(dāng)前瓷磚與模板庫中的瓷磚進(jìn)行比對匹配。參考文獻(xiàn)[1]檢測缺陷前根據(jù)瓷磚的邊緣進(jìn)行配準(zhǔn),然后再匹配,配準(zhǔn)前利用Hough變換檢測瓷磚的4個邊緣,計算量大,且檢測結(jié)果易受到噪聲干擾。參考文獻(xiàn)[2]在分類前假定生產(chǎn)線上瓷磚的擺放方式是固定的,這樣固然可以省去配準(zhǔn)的步驟,但是也會使實(shí)用性大打折扣,因為生產(chǎn)線瓷磚的擺放方式不可能是固定的。參考文獻(xiàn)[3]利用遺傳算法進(jìn)行配準(zhǔn),配準(zhǔn)后再用模板匹配識別,由于配準(zhǔn)和匹配都比較耗時,因此實(shí)時性較差,很難應(yīng)用于生產(chǎn)現(xiàn)場。在這種背景下,找到一種快速、與擺放位置無關(guān)或者關(guān)系較小的特征對于瓷磚的分類識別具有重要意義。本文首先通過形態(tài)學(xué)邊緣檢測算子檢測瓷磚的花紋,然后將瓷磚分成4×4的子塊,計算每個子塊的Hu不變矩,選取其中第1個和第4個最穩(wěn)定的兩個矩作為本子塊的特征,16個子塊的特征全部被提取后,輸入BP神經(jīng)網(wǎng)絡(luò)(Back Propagation Network)進(jìn)行分類識別。
對于分類識別問題,特征的選取具有極其重要的作用。對于瓷磚這樣表面具有明顯花紋的對象,選擇花紋作為分類依據(jù)是非常自然的選擇,且已有一些論文采用紋理特征,具體來說是采用灰度共生矩陣作為分類的依據(jù)。
圖1中的瓷磚圖片里充滿著肉眼很難發(fā)現(xiàn)的細(xì)小的紋理,但是之所以稱其為一類,不是由這些極小的細(xì)節(jié)決定的,而是由其宏觀的由若干個方格組成的圖案決定的。如果采用灰度共生矩陣,那些過小的細(xì)節(jié)被不太必要地考慮進(jìn)去,這樣不僅使得程序運(yùn)行速度較慢,而且過多的冗余信息可能會影響分類的正確率。
明顯的花紋形狀和走向是分類的主要依據(jù),基于這一事實(shí),本文首先通過邊緣檢測將花紋提取出來。圖2是對圖1 Canny邊緣檢測的結(jié)果。Canny等常見邊緣檢測算子歸根結(jié)底是對圖像進(jìn)行求導(dǎo)得到的,而瓷磚的表面其實(shí)有些許細(xì)小的、無規(guī)律的紋理,這些肉眼都無法看清楚的紋理對分成不同類別的瓷磚沒有太多價值(當(dāng)然,如果待分類的瓷磚只有極小的紋理不同時則令當(dāng)別論),且若處理不當(dāng)還會產(chǎn)生負(fù)面影響。
形態(tài)學(xué)梯度的定義為:
形態(tài)學(xué)梯度是通過膨脹后的圖像減去腐蝕后的圖像得到的。膨脹和腐蝕都可以指定結(jié)構(gòu)元素的形狀和尺寸,較大尺寸的結(jié)構(gòu)元素能夠檢測明顯花紋,較小尺寸的結(jié)構(gòu)元素則檢測細(xì)小的花紋。本文采用圓形結(jié)構(gòu)元素,尺寸為9×9。按照以下次序進(jìn)行處理即可:RGB圖像→灰度圖像→圖像中值濾波去除噪聲→形態(tài)學(xué)邊緣檢測→二值化→腐蝕運(yùn)算消除小的干擾點(diǎn)。圖3是形態(tài)學(xué)方法檢測的邊緣圖像,較好地反映了原圖的花紋走向,可以作為分類的依據(jù)。
不變矩是圖形的一種統(tǒng)計特征,它利用圖像的灰度分布的各階矩來描述圖像灰度的分布特征,在模式識別、目標(biāo)分類中得到了廣泛的應(yīng)用。
1.2.1 原點(diǎn)矩
二維原點(diǎn)矩的定義為:
對于離散圖像,通常近似為:
其中,ΔA表示像素的大小。
1.2.2 中心矩
然而,更多需求的是基本不變量,即希望得到的特征量與物體的位置、大小(即旋轉(zhuǎn))無關(guān)。中心矩具有位置無關(guān)性,其定義為:
1.2.3 不變矩
中心矩具有平移不變性,即其僅對位置變換保持不變,而對旋轉(zhuǎn)則不具有不變性。為了得到旋轉(zhuǎn)和尺度不變性,需正規(guī)化中心矩,于是定義:
在此基礎(chǔ)上可以計算出7個不變矩:
1.3.1 分塊特征選擇
表1 3種類別12種瓷磚的7個不變矩數(shù)據(jù)
表1是3種類別12種瓷磚的7個不變矩數(shù)據(jù)??梢钥闯觯活悇e的瓷磚的不變矩中有多個表現(xiàn)較為不穩(wěn)定,第5、6、7個,即便是同一塊瓷磚拍攝的多張照片之間也會有較大出入;但有些矩,比如第1、2、4個,則表現(xiàn)相對較為穩(wěn)定。如果僅僅采用穩(wěn)定的兩個或者3個矩特征作為分類的依據(jù),數(shù)量太少,勢必會使分類精度下降,尤其當(dāng)瓷磚之間的花紋差別不大時更為明顯。同時,不變矩描述的是圖像的整體特征,對局部信息的刻畫較差,即便不存在部分不變矩不穩(wěn)定的情況也是如此。在這種背景下,本文首先將瓷磚分成4×4個小塊,然后計算每個小塊的不變矩,從中選取兩個較為穩(wěn)定的,即整體共32個特征作為一個瓷磚的特征向量。這樣既去掉了不穩(wěn)定的高階矩,同時,采取分塊的思想后,瓷磚的每個子部分都有相對應(yīng)的矩,雖然對于子部分而言矩仍是全局特征,但對于整體來說,矩則變成了局部特征,描述刻畫對象的能力就更強(qiáng)了。
通過分析表1可以發(fā)現(xiàn),前4個不變矩比較穩(wěn)定,尤其是第1個、第2個及第4個距的數(shù)據(jù)在同類瓷磚之間比較接近,適合作為識別特征。本文選擇第1個與第4個不變矩(為了敘述方便,文中將7個不變矩分別簡稱一階矩、二階矩等)作為每個子塊的特征。
1.3.2 特征不變處理
不變矩本身與瓷磚的大小、擺放位置無關(guān),具有較好的魯棒性,但是由于進(jìn)行了分塊,這樣矩就與位置相關(guān)了。瓷磚在生產(chǎn)線上的擺放應(yīng)該是隨機(jī)的,為了更具有一般性,本文假定瓷磚為關(guān)于圓心不對稱的圖形。
圖4(a)是訓(xùn)練樣本庫中已知類別的某種瓷磚圖片,而圖4(b)是生產(chǎn)線上同類別的一個瓷磚圖片??梢钥闯?要想正確判斷出瓷磚的類別,必須將其旋轉(zhuǎn)成圖4(a)中的位置。但在分類之前根本無法判斷它是屬于哪種類別,更別說將其旋轉(zhuǎn)成所謂的正確位置了。本文的思路是,對于某一待識別的瓷磚,首先找出其最小外接矩形,由于瓷磚基本都是方形的,因此,最小外接矩形4個邊就是其4條邊線。分別計算最小外接矩形的4條邊與水平 線的 夾角,分 別為 θ1、θ2,找 出 它 們 中 較 小 的 那 個(如θ1),然后根據(jù)較小的角出現(xiàn)的位置,對應(yīng)地將瓷磚順時針或者逆時針旋轉(zhuǎn) θ1角度,圖4(b)旋轉(zhuǎn)之后變成了圖4(c)。可以看出此時與圖4(a)還是不同,但將圖4(a)逆時針旋轉(zhuǎn) 270°后即為圖 4(f),就與圖 4(c)一樣了。圖 4(d)、圖 4(e)、圖 4(f)分 別 是 將 圖 4(a)逆 時 針 旋 轉(zhuǎn) 90°、180°、270°后形成的3張圖片。那么同類別待識別的瓷磚,在將其按較小角θ1旋轉(zhuǎn)至水平位置后,總是可以與圖4(a)、圖 4(d)、圖 4(e)和圖 4(f)這4幅圖片中的一個相同。
綜上所述,解決分塊后位置相關(guān)性問題可以總結(jié)為:訓(xùn)練網(wǎng)絡(luò)時,首先將每個樣本旋轉(zhuǎn)至水平位置,提取其16個子塊的不變距作為特征值 (共32個),再將32個特征值作為一個特征向量。分別將樣本圖片逆時針旋轉(zhuǎn) 90°、180°、270°后再分塊提取特征, 這樣一個訓(xùn)練瓷磚圖片對應(yīng)4個特征向量。分類識別時,將待識別的瓷磚沿與水平線最小夾角旋轉(zhuǎn)后,提取16個子塊的不變矩特征值構(gòu)成特征向量,然后將特征向量作為識別網(wǎng)絡(luò)的輸入。這樣不管待識別的瓷磚位置如何,都能被正確地分類識別。
BP神經(jīng)網(wǎng)絡(luò)是應(yīng)用最多的一種神經(jīng)網(wǎng)絡(luò),它把網(wǎng)絡(luò)的學(xué)習(xí)過程分為正向傳播和反向傳播兩種交替過程,輸入的信號經(jīng)輸入層、隱含層的神經(jīng)元最終向前傳播到輸出層給出結(jié)果。如果在輸出層得不到期望的結(jié)果,則轉(zhuǎn)入逆向傳播過程,期望值與實(shí)際值之間的誤差反向傳播回去。通過修改各層神經(jīng)元權(quán)值使得誤差減小,然后再轉(zhuǎn)入正向過程,如此反復(fù),直至誤差滿足要求為止。本文采用的BP網(wǎng)絡(luò)具有三層,輸入層有32個點(diǎn),輸出4個神經(jīng)元。某個神經(jīng)元輸出為1代表結(jié)果為本類瓷磚,如0010代表結(jié)果為第2類瓷。由于S函數(shù)的特點(diǎn),輸出實(shí)際上很難是絕對的1或0,在本文中,輸出0.9代表1,0.1代表0。隱層神經(jīng)元的個數(shù)具有一定的隨意性,可以根據(jù)實(shí)際情況作相應(yīng)的調(diào)整,本文選8個隱層神經(jīng)元。整體的網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示。
BP算法在解空間中尋找能夠?qū)⒄`差最小化的網(wǎng)絡(luò)權(quán)值,由于S函數(shù)為非線性函數(shù),誤差曲面可能包含多個局部極小值,在搜索時有可能陷入到局部極小值中去,這是要盡量避免的。前文所述將初始值隨機(jī)取值也是避免局部極小值的一種手段,除此之外,本文還采用以下措施。
(1)增加動量因子。帶有附加動量因子的權(quán)值調(diào)整公式為:
其中,?為動量因子,一般取0.01~0.95。
增加動量因子后,在修正權(quán)值時,不僅要考慮誤差在梯度上的作用,而且還要考慮在誤差曲面上變化趨勢的影響。
(2)改變學(xué)習(xí)速率。較大的學(xué)習(xí)速率能夠在訓(xùn)練初期加快收斂過程,然而當(dāng)誤差較小時,過大的學(xué)習(xí)速率可能會越過誤差最小值點(diǎn),這樣反而不利于最優(yōu)值的求取。本文是在訓(xùn)練過程中逐漸減小學(xué)習(xí)速率。
對每個子塊,本文首先嘗試選取三種特征類型:單個一階不變矩,一階、二階兩個不變矩以及一階、四階兩個不變矩。有4種類別的訓(xùn)練樣本,如圖6所示,每種類別20個。測試圖片每種類別10個,以兩種不同擺放方式,共獲取20張圖片。程序基于VC++2008實(shí)現(xiàn),主要分為訓(xùn)練與識別兩部分[5]。訓(xùn)練誤差曲線如圖7~圖9所示。
三種特征類型期望的最后誤差都是0.001??梢钥闯?,單獨(dú)采用一階矩作為特征在8001代時誤差仍為0.001 344;采用一、二階矩表現(xiàn)稍微好些,8001代時誤差是0.001 167;而采用一、四階矩時誤差明顯減小,在5 023代時,誤差已經(jīng)在0.001之下了。與訓(xùn)練相一致,測試時,4種瓷磚共80張測試樣本,采用一階不變矩特征出現(xiàn)兩張誤判,一、二階不變矩組合兩張誤判,而一、四階不變矩組合0張誤判。由此可見,利用一、四階距組合識別準(zhǔn)確率很高。另外,每個瓷磚從特征提取到給出正確結(jié)果的時間為1 s,具有一定的實(shí)時性,能滿足生產(chǎn)線上的需求。
本文系統(tǒng)地介紹了基于分塊不變距特征的瓷磚分類識別的方法。利用形態(tài)學(xué)邊緣檢測提取瓷磚的花紋;再利用Hu不變矩針對部分不變矩不穩(wěn)定的問題提出分塊思想,分塊后提取每個子塊最穩(wěn)定的不變矩作為本子塊的特征,從而解決了分塊后帶來的位置相關(guān)性問題;最后用BP神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練來分類識別。實(shí)驗結(jié)果,表明此方法效果較好、速度快、準(zhǔn)確率高,且對瓷磚的擺放位置不作要求,可以實(shí)現(xiàn)瓷磚在線生產(chǎn)上的分類識別的實(shí)時性的需求。該方法具有一定的通用性,對以矩作為特征的分類識別問題具有一定的參考意義。
[1]劉笛.墻地磚顏色的自動分類研究[D].廣州:華南理工大學(xué),2004.
[2]蘇彩虹.墻地磚質(zhì)量自動檢測技術(shù)的研究[D].廣州:華南理工大學(xué),2004.
[3]鄭力新,姚強(qiáng),周凱汀.利用遺傳算法實(shí)現(xiàn)模板匹配的瓷磚分選[J].華僑大學(xué)學(xué)報(自然科學(xué)版),2010,31(6):632-635.
[4]李國祥,張顯全,秦芳遠(yuǎn).基于不變矩和BP神經(jīng)網(wǎng)絡(luò)的剪紙紋樣識別[J].計算機(jī)工程與應(yīng)用,2010,46(29):158-60.
[5]張錚,王艷平,薛桂香.數(shù)字圖像處理與機(jī)器視覺—Visual C++與 Matlab實(shí)現(xiàn)[M].北京:人民郵電出版社,2010.
[6]蔣憲剛.數(shù)字圖像模式識別工程軟件設(shè)計[M].北京:水利水電出版社,2008.
[7]韓力群.人工神經(jīng)網(wǎng)絡(luò)理論、設(shè)計及應(yīng)用[M].北京:化學(xué)工業(yè)出版社,2007.