盧 巍
(昆明文理學(xué)院信息工程學(xué)院,昆明 650222)
隨著人工智能在工業(yè)和農(nóng)業(yè)中的逐步運(yùn)用,傳統(tǒng)的手工業(yè)行業(yè)都在探索機(jī)器視覺下的自動控制技術(shù),計(jì)算機(jī)視覺下的水果采摘也在如火如荼的研究當(dāng)中。目前大多數(shù)計(jì)算機(jī)視覺下的水果采摘研究,關(guān)注點(diǎn)都放在水果品種和大小分類的算法研究上,而對直接進(jìn)行果樹上水果和背景分離的計(jì)算機(jī)視覺算法研究不多。這主要是當(dāng)前市場對分鏈需求的導(dǎo)向所致。但是,從長遠(yuǎn)人工智能發(fā)展角度來看,機(jī)械采摘技術(shù)也會不斷發(fā)展和運(yùn)用。云南有著大量的大樹楊梅種植,傳統(tǒng)人工采摘技術(shù)耗工耗時(shí),機(jī)械臂采摘可以解決這一問題。要研究機(jī)械臂采摘,就要解決計(jì)算機(jī)視覺下的水果和背景分離,使機(jī)械臂能準(zhǔn)確定位水果,完成采摘。
K-means 聚類是這樣一種聚類算法,它用質(zhì)心定義數(shù)據(jù)原型。算法開始時(shí),將數(shù)據(jù)根據(jù)其到初始質(zhì)心的距離不同隨機(jī)指派到一個(gè)最近鄰的質(zhì)心形成簇。為了將數(shù)據(jù)指派到最近鄰的質(zhì)心,就需要一個(gè)鄰近性度量來量化所謂數(shù)據(jù)的“最近”概念。在聚類算法中,通常使用歐幾里德距離并同時(shí)對數(shù)據(jù)文檔使用余弦相似性進(jìn)行度量??墒?,由于K-means聚類所使用的鄰近性度量非常簡單,因?yàn)樗惴ㄒ粩嗟刂貜?fù)計(jì)算每個(gè)數(shù)據(jù)點(diǎn)與質(zhì)心之間的鄰近度??紤]鄰近性度量為歐幾里德距離的數(shù)據(jù)。所以使用誤差的平方和(sum of the squared error,)作為度量聚類質(zhì)量的目標(biāo)函數(shù)。也稱為散布。換言之,計(jì)算每個(gè)數(shù)據(jù)點(diǎn)到近鄰質(zhì)心的歐幾里德距離,也就是每個(gè)數(shù)據(jù)點(diǎn)的誤差,然后計(jì)算誤差的平方和。給定由兩次運(yùn)行后產(chǎn)生的兩個(gè)不同的,我們更喜歡誤差的平方和最小的那個(gè),因?yàn)樗f明聚類的質(zhì)心可以更好地代表族的中心。的定義如式(1)所示:
其中,是歐幾里德空間中兩個(gè)對象之間的標(biāo)準(zhǔn)歐幾里德距離。對于給定一個(gè),可以把聚類問題看為優(yōu)化問題。更確切的說是可以看為一個(gè)全局最優(yōu)問題,解決這個(gè)問題的一種方法是窮舉法,即找到將所有數(shù)據(jù)點(diǎn)劃分成簇的所有可能方法,然后選擇最好的滿足目標(biāo)的一個(gè)。這種方法可以保證實(shí)現(xiàn)誤差最小化算法,可是,在實(shí)際運(yùn)用中,這種方法沒有計(jì)算可行性,因此,需要尋找一個(gè)更加實(shí)際的方法,在數(shù)據(jù)挖掘領(lǐng)域一種常用的解決這個(gè)問題的方法是梯度下降法。這個(gè)方法雖然無法保證實(shí)現(xiàn)最優(yōu)解,可是它卻是實(shí)際可行的。對于這種方法,只需要選擇一個(gè)初始解,然后重復(fù)計(jì)算最好的優(yōu)化目標(biāo)函數(shù)的解的改變和更新解這兩個(gè)步驟。將其運(yùn)用到要解決的問題中,現(xiàn)假定數(shù)據(jù)是一維的,即滿足式(2):
這個(gè)假設(shè)沒有改變?nèi)魏螙|西,但是可以大大地簡化所需要的論證過程?,F(xiàn)在的目標(biāo)是最小化,因?yàn)樽钚』涂梢缘玫終-means的最優(yōu)化質(zhì)心。對于式(1),當(dāng)數(shù)據(jù)是一維數(shù)組的時(shí)候,可以簡化為式(3):
其中C是第個(gè)簇,是C中的點(diǎn),c是第個(gè)簇的均值。
對第個(gè)質(zhì)心c求解,最小化式(3),也就是對求導(dǎo),求導(dǎo)過程如下所示,得到式(4):
將式(4)進(jìn)行進(jìn)一步化簡,可以推導(dǎo)得到式(5):
并最終推導(dǎo)得到式(6):
從式(6)可以看出一個(gè)重要的結(jié)論,簇最小化的最佳質(zhì)心是簇中各點(diǎn)的均值。至此,證明了質(zhì)心的最優(yōu)取得是各點(diǎn)的均值??墒?,同時(shí)也帶來另外一個(gè)問題,這樣的質(zhì)心是否可以運(yùn)用于各種不同的目標(biāo)函數(shù)。這個(gè)問題在數(shù)學(xué)上可以表示為將數(shù)據(jù)劃分為個(gè)簇,使得數(shù)據(jù)點(diǎn)到其簇中心的曼哈頓距離()之和最小。即把目標(biāo)轉(zhuǎn)化為尋求最小化,式(7)給出了的絕對誤差和。
其中dist是的距離。為了簡單起見,再次使用一維數(shù)據(jù),即dist= ∣c-∣。
可以對第個(gè)質(zhì)心c求解,最小化式(7),即對求導(dǎo),令導(dǎo)數(shù)等于0,并求解c,得到式(8)。
對c求解,可以發(fā)現(xiàn)求解結(jié)果就是各點(diǎn)的中位數(shù)。同時(shí),這也為計(jì)算帶來方便,因?yàn)橐唤M點(diǎn)的中位數(shù)的計(jì)算是簡單明了的,而且受到離群點(diǎn)影響較小。以上解釋了算法中用均值作為質(zhì)心,同時(shí),證明了這樣的質(zhì)心具有普適性。根據(jù)式(6),定義第個(gè)簇的質(zhì)心(均值)為式(9):
K-means 算法接下來的步驟是最小化,這個(gè)步驟是通過將數(shù)據(jù)中每個(gè)點(diǎn)指派到最近鄰的質(zhì)心形成簇,判斷是否達(dá)到局部最優(yōu),若沒有,就更新質(zhì)心,重新指派,直至達(dá)到局部最優(yōu)。
總體來說,K-means 是以局部最優(yōu)為原則,通過不斷更新質(zhì)心的迭代手段來實(shí)現(xiàn)對數(shù)據(jù)的聚類。其適應(yīng)性較強(qiáng),對數(shù)據(jù)所服從的分布沒有任何依賴,為聚類一些服從復(fù)雜分布的數(shù)據(jù)開辟了一個(gè)新的空間。
模仿機(jī)械臂安裝后計(jì)算機(jī)視覺成像距離進(jìn)行圖片拍攝,將拍攝好的大樹楊梅圖片先進(jìn)行灰度化處理,處理后的數(shù)據(jù)進(jìn)行擬合優(yōu)度檢測,運(yùn)用柯爾莫哥洛夫-斯米諾夫檢驗(yàn)(KS 檢測),來判斷圖像數(shù)據(jù)的統(tǒng)計(jì)分布特性,進(jìn)一步運(yùn)用擬合優(yōu)度檢驗(yàn)法對其進(jìn)行參數(shù)估計(jì),建立基礎(chǔ)分布模型,后嘗試數(shù)據(jù)聚類。
根據(jù)K-means 聚類原理,將其運(yùn)用到前期處理好的圖像數(shù)據(jù)中,根據(jù)實(shí)際圖片情況,初始選取質(zhì)心時(shí),將成熟楊梅顏色數(shù)據(jù)均值,未成熟果實(shí)和樹葉顏色數(shù)據(jù)和其它雜項(xiàng)數(shù)據(jù)均值選取為兩個(gè)質(zhì)心,進(jìn)行算法迭代,算法流程如圖1所示。
圖1 K-means聚類算法流程圖
根據(jù)圖1 所示算法編寫算法程序,運(yùn)用Kmeans聚類算法分析所采集的實(shí)驗(yàn)圖片數(shù)據(jù),期望能證明其分類的有效性并找出此方法在數(shù)據(jù)運(yùn)用中存在的不足。筆者在實(shí)驗(yàn)基地運(yùn)用高清照相機(jī)采集400張成熟期大樹楊梅的圖像進(jìn)行實(shí)驗(yàn),為了實(shí)驗(yàn)方便,采用圖形圖像處理軟件對圖片進(jìn)行歸一化處理,將圖片像素統(tǒng)一成800×600,并對圖像做包括尺寸裁剪、濾波、圖像增強(qiáng)、特征抽取和分割等預(yù)處理后進(jìn)行聚類實(shí)驗(yàn)。
實(shí)驗(yàn)中使用的數(shù)據(jù)信息如表1所示。
表1 測試樣本參數(shù)對照
表1中3個(gè)測試樣本均選取圖片中包含20個(gè)成熟楊梅果實(shí)圖片樣本。3個(gè)測試樣本都是同一角度下拍攝樣本,但拍攝光線不同,測試樣本一是在正常自然光線下拍攝,測試樣本二為正常光照不充分時(shí)拍攝樣本,模擬實(shí)際采摘中晨昏或者由于栽種密集而導(dǎo)致光線不足情況,測試樣本三為夜間人為打光光線下拍攝樣本。
實(shí)驗(yàn):驗(yàn)證K-means 聚類效果為檢驗(yàn)Kmeans 聚類算法數(shù)據(jù)的分類效果,運(yùn)用K-means聚類算法對測試樣本一和測試樣本二進(jìn)行聚類,其聚類結(jié)果如表2所示,表中顯示分類正誤個(gè)數(shù)和分類正確率。
表2 K-means聚類混合K分布數(shù)據(jù)效果
從表2可以看出,運(yùn)用K-means聚類算法可以較好地聚類大樹楊梅圖片數(shù)據(jù),測試樣本迭代5 次達(dá)到收斂。在對測試樣本一中400 個(gè)樣本進(jìn)行聚類時(shí),正確率93.26%,說明在光線充足的情況下,通過聚類可以很好地識別成熟楊梅果實(shí)和其他顏色背景。但是在測試樣本二中400個(gè)樣本進(jìn)行聚類可以看出,自然光照對算法聚類的準(zhǔn)確性有一定影響。測試樣本三的聚類效果不甚理想。分析原因,光照不充足,導(dǎo)致照片成像色彩變化,加之前期圖像處理過程中引入的誤差疊加,導(dǎo)致邊界模糊所致,特別是當(dāng)人為補(bǔ)光時(shí),照片色彩和自然光線下照片色彩改變較大,使得邊界模糊現(xiàn)象更加突出。
以具有豐富信息的彩色圖像為處理對象,本文給出了運(yùn)用K-means 聚類算法對云南當(dāng)?shù)剞r(nóng)作物大樹楊梅進(jìn)行聚類的一種算法,算法初始選取兩個(gè)質(zhì)心進(jìn)行迭代,經(jīng)過5次迭代,可以實(shí)現(xiàn)將大樹楊梅成熟果實(shí)和其它背景識別的目標(biāo)。同時(shí),由于K-means 聚類對異常數(shù)據(jù)的敏感性,當(dāng)圖片數(shù)據(jù)邊界模糊時(shí),對質(zhì)心的選取提出苛刻要求。綜上所述,算法可以快速、準(zhǔn)確地對楊梅水果圖像進(jìn)行識別,具有較好的魯棒性和泛化能力,可為水果采摘機(jī)器人視覺識別系統(tǒng)提供技術(shù)和理論支持。