朱 玲
(湖北工業(yè)大學(xué) 工程技術(shù)學(xué)院,武漢 430068)
高品質(zhì)的水果和蔬菜是在當(dāng)今競(jìng)爭(zhēng)激烈市場(chǎng)成功的首要條件,也是水果加工成果汁、糖漿和葡萄酒的基礎(chǔ),人們對(duì)優(yōu)質(zhì)和新鮮的水果需求不斷增長。傳統(tǒng)的水果和蔬菜分類和分級(jí)耗時(shí)長,需要大量的人力物力。本文采用K-means聚類和BP神經(jīng)網(wǎng)絡(luò)相結(jié)合的方法,設(shè)計(jì)了一種水果等級(jí)分類識(shí)別模型,可以實(shí)現(xiàn)對(duì)水果質(zhì)量等級(jí)的自動(dòng)分類,能夠大大提高水果等級(jí)分類效率。
所謂“聚類”,就是將統(tǒng)一類型的成員集中進(jìn)行管理和分類,是數(shù)據(jù)挖掘技術(shù)的一個(gè)重要分支。在數(shù)據(jù)挖掘算法中,聚類算法主要包括基于層次、密度、劃分、網(wǎng)絡(luò)和模型的5種基本算法,而K-means是聚類算法中一種常用的基于劃分的算法。
K-means聚類算法的簡要描述如下:假設(shè)有1個(gè)樣本集X={xi|i=1,2,3,…,N},存在K個(gè)等級(jí)類型Cj(j=1,2,…,K)和K個(gè)聚類中心Aj(j=1,2,3,…,K),則N個(gè)樣本間的歐式距離公式為
(1)
樣本集X的聚類中心為
(2)
K-means聚類算法的核心思想是:確定k個(gè)中心點(diǎn),進(jìn)行最小化聚類誤差,而聚類誤差定義為所有數(shù)據(jù)點(diǎn)到其各自聚類中心的距離之和,從而判斷該對(duì)象是屬于哪一類。
(3)
其中,Cj為第j個(gè)等級(jí)集合的樣本數(shù)據(jù);cj為第j個(gè)等級(jí)類型的聚類中心;E為樣本聚類誤差平方準(zhǔn)則和,當(dāng)E逐漸收斂時(shí),聚類過程結(jié)束。
K-means算法采用模糊分組的方法,將n個(gè)向量Xi(i=1,2,...,n)分為c組,并求每組的聚類中心,隸屬矩陣u允許有取值在0,1間的元素,通過歸一化規(guī)定,1個(gè)數(shù)據(jù)集的隸屬度的和總等于1,其表達(dá)式為
(4)
則可以得到FCM的目標(biāo)函數(shù)為
(5)
其中,ci為模糊組I的聚類中心;dij=‖ci-xj‖為第I個(gè)聚類中心與第J個(gè)數(shù)據(jù)點(diǎn)間的歐幾里德距離,且m∈[1,∞)是一個(gè)加權(quán)指數(shù)。通過構(gòu)造如下新的目標(biāo)函數(shù),可求得使式(2)達(dá)到最小值的必要條件,即
(6)
其中,λj、j=1~n是式(1)的n個(gè)約束式的拉格朗日乘子,對(duì)所有輸入?yún)⒘壳髮?dǎo),使式(2)達(dá)到最小的必要條件為
(7)
(8)
假設(shè)采集到的農(nóng)作物環(huán)境分類數(shù)據(jù)集合為X={x1,x2,...,xN},其中每一個(gè)數(shù)據(jù)集合xk有n個(gè)特性指標(biāo),設(shè)為Xk={x1k,x2k,...,xNk}T。
K-means聚類算法流程如下:
1)隨機(jī)選擇k個(gè)模式作為初始k中心,分配剩下N-k模式到中心最近的聚類,并計(jì)算所獲得聚類的新中心。
2)根據(jù)歐式距離公式(1),計(jì)算距離聚類中心的距離,并選擇最小值的類作為該對(duì)象的所屬類別,即
(9)
其中,xi=(xi1,xi2,…,xip)和xj=(xj1,xj2,…,xjp)為包含P維的對(duì)象。
3)在每個(gè)類簇中,計(jì)算數(shù)據(jù)對(duì)象均值,從而得到新的聚類中心,即
(10)
4)一直重復(fù)進(jìn)行2)和3),直至結(jié)果趨于收斂。
為了更清晰地表達(dá)聚類算法的核心思想,本文將用一組數(shù)據(jù)詳細(xì)描述K-means算法流程,假設(shè)存在10個(gè)樣本對(duì)象{x1,x2,x3,…,x10},而每個(gè)樣本有兩種屬性{xi1,xi2},如表1所示。
表1 K-means聚類算法數(shù)據(jù)集Table 1 The data set of K-means clustering algorithms。
設(shè)定聚類數(shù)為2,采用K-means聚類算法分別計(jì)算各對(duì)象到聚類中心的距離,迭代的過程如圖1和圖2所示(實(shí)圓為類簇中心)。當(dāng)?shù)降?次時(shí),趨于收斂。因此,經(jīng)過K-means計(jì)算得到兩類分別為{x1,x8,x9,x10}和{x2,x3,x4,x5,x6,x7},總共迭代了4次。
根據(jù)歐式距離公式(1),計(jì)算距離聚類中心的距離,并選擇最小值的類作為該對(duì)象的所屬類別。
圖1 K-means聚類算法第1次迭代Fig.1 The first iteration of K-means clustering algorithm。
圖2 K-means聚類算法第4次迭代Fig.2 The fourth iteration of K-means clustering algorithm。
為了盡量逼近真實(shí)識(shí)別分類環(huán)境,采集到具有代表性的樣本。試驗(yàn)采用1200萬像素的相機(jī)對(duì)水果進(jìn)行拍攝,背景色均為白色,分別在不同光線、角度獲取了大量原始數(shù)據(jù)。本文采集到的水果主要包括蘋果、梨子、火龍果、石榴、香蕉、橘子等水果,每種水果分別獲取了500張高清的相片,共計(jì)3000幅。獲取到的水果圖像如圖3所示。
圖3 獲取到的水果圖像Fig.3 The obtained fruit image。
在水果圖像拍攝過程中,充分考慮了角度、光線和遮擋問題,使得拍攝到的圖像更加符合要求,如圖4所示。
圖4 不同角度、光線和遮擋下采集到的水果圖像Fig.4 The captured fruit images from different angles, light and occlusion。
為了方便處理,采用Photoshop CS6.0軟件對(duì)采集到的相片進(jìn)行歸一化處理,得到了640×480的圖像。
水果圖像預(yù)處理主要包括尺寸裁剪、濾波、圖像增強(qiáng)、特征抽取和分割等,是進(jìn)行水果等級(jí)識(shí)別分類的基礎(chǔ),且圖像增強(qiáng)是非常關(guān)鍵的一個(gè)環(huán)節(jié)。為了實(shí)現(xiàn)更好的圖像預(yù)處理,對(duì)圖像進(jìn)行了彩色空間選擇和濾波。
1)彩色空間選擇。圖像預(yù)處理中有很多的顏色空間模型,其中RGB顏色模型的亮度和色彩未實(shí)現(xiàn)分離,具有較強(qiáng)的關(guān)聯(lián)性,邊緣像素?zé)o法較好地保存。RGB顏色模型如圖5所示。
圖5 RGB顏色模型Fig.5 RGB color model。
HSV模型中,H通道可以消除目標(biāo)物體受到亮度的影響,V通道則可以反應(yīng)出目標(biāo)物體的信號(hào)強(qiáng)度。顏色模型如圖6所示。
圖6 HSI顏色模型Fig.6 HIS color model。
在進(jìn)行圖像預(yù)處理過程中,先將采集到的圖像轉(zhuǎn)為HSV模型,然后對(duì)圖片進(jìn)行亮度、均衡化、閾值化等處理,再轉(zhuǎn)換成RGB顏色模型進(jìn)行最終的圖像增強(qiáng)。RGB顏色模型轉(zhuǎn)化成HSV模型的公式為
Max←max(B,G,R)
(11)
Min←min(B,G,R)
(12)
(13)
(14)
V←Max
(15)
其中,H為色調(diào)值;S為飽和度值;V為明度值;R為紅;G為綠;B為藍(lán)。Max和Min分別為B、G和R中的最大值、最小值。H∈[0,360]為角度的色相角,而S、V∈[0,1]為飽和度和亮度值。
2)濾波器選擇。圖像處理常用的有均值、高斯、直方圖均衡化和中值等濾波算法,在研究過程中,為了提高圖像處理的質(zhì)量,采用了中值和直方圖均衡化兩種算法。
直方圖均衡化處理中的主要濾波函數(shù)為
(15)
其中,0≤rj≤1,k=0,1,2,3,…,l-1;l為灰度級(jí)所有的數(shù)目;Pr(rj)為灰度第j級(jí)的的概率;nj和n為灰度出現(xiàn)的次數(shù)和總數(shù)。
中值濾波的基本思想是使用標(biāo)準(zhǔn)模板在原始圖像中滑動(dòng),對(duì)原始圖像內(nèi)的像素做大小排序,取序列的中值作為圖像該像素點(diǎn)處中值濾波的結(jié)果。中值濾波器計(jì)算公式為
yk=med(xk-n,xk-n+1,xk-n,…,xk,xk+n+1,xk+n)
(16)
為了提高系統(tǒng)分類識(shí)別的精準(zhǔn)度,在K-means聚類算法的基礎(chǔ)上增加了BP神經(jīng)網(wǎng)絡(luò)算法。二者結(jié)合的構(gòu)造分類模型,如圖7所示。
圖7 水果等級(jí)識(shí)別的分類模型Fig.7 The classification model of fruit grade recognition。
水果等級(jí)識(shí)別的分類模型描述如下:
輸入:待識(shí)別分類的水果圖像;
輸出:已經(jīng)識(shí)別分類的水果圖像。
本文研究的K-means聚類和BP神經(jīng)網(wǎng)絡(luò)相結(jié)合的水果等級(jí)識(shí)別方法的實(shí)現(xiàn)過程如下:
1)提出特征參數(shù)。對(duì)輸入的圖像進(jìn)行圖像預(yù)處理,然后提取水果圖像的特征值。
2)聚類。選取分類類別為特級(jí)、一級(jí)、二級(jí)、三級(jí)等4個(gè)等級(jí),對(duì)等待識(shí)別分類的圖像利用K-means方法進(jìn)行聚類,得到準(zhǔn)確的聚類中心。
3)BP神經(jīng)網(wǎng)絡(luò)。設(shè)置神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),確定輸入、隱藏和輸出等網(wǎng)絡(luò)層數(shù)、訓(xùn)練函數(shù)、實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)的識(shí)別分類器。
4)分類識(shí)別。對(duì)訓(xùn)練完成的分類模型輸入測(cè)試數(shù)據(jù),計(jì)算出識(shí)別分類的正確率。
本文總共采集了3 000張水果圖像,其中2 100張用于分類模型的訓(xùn)練集,600張用于測(cè)試集,300張用于試驗(yàn)驗(yàn)證。試驗(yàn)中,將水果圖像直接作為分類模型的輸入圖像,分別制作訓(xùn)練集和試驗(yàn)集水果的等級(jí)標(biāo)簽,標(biāo)簽用特級(jí)、一級(jí)、二級(jí)和三級(jí)表示;將訓(xùn)練集、試驗(yàn)集和水果便簽放于K-means聚類和BP神經(jīng)網(wǎng)絡(luò)相結(jié)合的水果分類模型中訓(xùn)練,驗(yàn)證分類模型的性能。判定標(biāo)準(zhǔn)為:分類識(shí)別正確率越高,模型性能越好。
分類識(shí)別正確率為
(17)
其中,la和label分別為數(shù)據(jù)輸入、輸出的標(biāo)簽;sum表示分類的總和。
訓(xùn)練完成后,對(duì)50張石榴圖像進(jìn)行了分類測(cè)試試驗(yàn),分別采用K-means算法、BP神經(jīng)網(wǎng)絡(luò)算法和二者結(jié)合的分類算法進(jìn)行了分類識(shí)別。通過3種算法的識(shí)別正確率,可以判斷出哪種算法最優(yōu)。石榴圖像如圖8所示,3種算法的等級(jí)分類識(shí)別正確率如表2所示。
圖8 石榴圖像Fig.8 The pomegranate image。
表2 3種算法的等級(jí)分類識(shí)別正確率Table 2 The recognition correct rate of classification of three algorithms。
由表1可以看出:單獨(dú)采用K-means算法的等級(jí)分類正確率為91.52%,BP神經(jīng)網(wǎng)絡(luò)算法為89.36%,采用K-means聚類和BP神經(jīng)網(wǎng)絡(luò)相結(jié)合的水果分類算法的正確率為96.28%。因此,采用K-means聚類和BP神經(jīng)網(wǎng)絡(luò)相結(jié)合的方法,大大提高了水果分類識(shí)別的準(zhǔn)確率,并使得識(shí)別時(shí)間大幅縮短,具有一定的現(xiàn)實(shí)意義。
針對(duì)目前水果質(zhì)量等級(jí)分類難、耗時(shí)長的問題,采用K-means聚類和BP神經(jīng)網(wǎng)絡(luò)相結(jié)合的方法,設(shè)計(jì)了一種水果等級(jí)分類識(shí)別算法,可以實(shí)現(xiàn)對(duì)水果質(zhì)量等級(jí)的自動(dòng)分類。試驗(yàn)結(jié)果表明:采用K-means聚類和BP神經(jīng)網(wǎng)絡(luò)相結(jié)合的方法,大大提高了水果分類識(shí)別的準(zhǔn)確率,并使得識(shí)別時(shí)間大幅降低,具有一定的現(xiàn)實(shí)意義。