周 軍, 蔡 建, 郭俊先, 張 靜, 史建新, 艾力·哈斯木, 姜彥武
(新疆農(nóng)業(yè)大學(xué)機(jī)電工程學(xué)院,新疆烏魯木齊 830052)
核桃是新疆的特色果品,在經(jīng)過(guò)破殼初加工后得到的核桃仁顏色深淺不同、大小各異。不同大小和顏色的核桃仁價(jià)格差異較大,用途也不同,因此核桃仁分級(jí)系統(tǒng)的研究在核桃加工生產(chǎn)中具有重要意義。目前對(duì)核桃仁分級(jí)技術(shù)的研究仍處于起步階段,我國(guó)核桃仁大小分級(jí)仍主要靠人工進(jìn)行分揀,這種方法不僅過(guò)程繁瑣、效率低下,同時(shí)還容易受人的主觀因素影響,不能保證分級(jí)的客觀性和標(biāo)準(zhǔn)化。為了實(shí)現(xiàn)對(duì)核桃仁大小、顏色的快速檢測(cè)、分選,判別核桃仁級(jí)別,采用機(jī)器視覺(jué)技術(shù)構(gòu)建核桃仁RGB圖像采集系統(tǒng),分析不同尺寸大小與顏色不同核桃仁的光學(xué)特性和成像特點(diǎn),分析確定每一級(jí)別核桃仁的特征值,建立較優(yōu)的核桃仁特征提取、分級(jí)方法、分選算法、識(shí)別模型,最終為今后該領(lǐng)域設(shè)備的研發(fā)奠定研究基礎(chǔ)。郭俊先等采用基于特征優(yōu)選方法確定41個(gè)主要特征,二次判別函數(shù)的判別分析法來(lái)分級(jí)蘋(píng)果,驗(yàn)證集分級(jí)準(zhǔn)確率達(dá)到98.7%[1];李衛(wèi)軍等對(duì)信號(hào)采集與處理部件通過(guò)提取玉米籽粒胚面的SIFT特征來(lái)判斷籽粒屬性,并將屬性結(jié)果發(fā)送給籽粒分選部件,分選部件根據(jù)結(jié)果控制直線(xiàn)滑臺(tái)的運(yùn)動(dòng)以實(shí)現(xiàn)籽粒篩選,系統(tǒng)對(duì)單倍體的正確識(shí)別率為95%[2];韓仲志等測(cè)量每個(gè)花生籽粒的54個(gè)外觀特征,采用主分量分析(PCA)進(jìn)行特征優(yōu)化,構(gòu)建并比較BP神經(jīng)網(wǎng)絡(luò)(ANN)和支持向量機(jī)(SVM)品質(zhì)檢測(cè)模型,檢測(cè)完全正確率達(dá)到了92%[3];張龍翔等提出了采用計(jì)算機(jī)視覺(jué)的花生外觀品質(zhì)的檢測(cè)分析方法,并基于圖形用戶(hù)界面(GUI)環(huán)境建立仿真平臺(tái),建立了3層神經(jīng)網(wǎng)絡(luò)進(jìn)行相關(guān)的品質(zhì)和品種識(shí)別,總體識(shí)別率達(dá)到了96%以上[4];陳紅基于計(jì)算機(jī)視覺(jué)提取破損區(qū)域的顏色特征,基于模式匹配,建立了以RGB顏色信息為特征參數(shù)的破損花生仁檢測(cè)系統(tǒng),實(shí)現(xiàn)完好花生仁與破損花生仁的自動(dòng)識(shí)別,檢測(cè)準(zhǔn)確率為80.12%[5];宋鵬等基于計(jì)算機(jī)視覺(jué)設(shè)計(jì)了玉米單倍體自動(dòng)分選系統(tǒng),分選系統(tǒng)主要由種子輸送單元、圖像采集處理單元、分揀卸料單元及系統(tǒng)控制單元組成,采用氣吸方式分離雜合體籽粒,系統(tǒng)分揀速度可達(dá)500粒/min[6]。針對(duì)人工核桃仁分選主觀因素影響大、速度慢、耗時(shí)長(zhǎng)、衛(wèi)生條件難以保證等缺點(diǎn),通過(guò)運(yùn)用VS2010和OpenCV2.4.9圖像數(shù)據(jù)庫(kù)對(duì)采集到的樣本圖像進(jìn)行處理,研究出提取最優(yōu)特征集和分分級(jí)算法,提高分級(jí)系統(tǒng)的準(zhǔn)確率。
要實(shí)現(xiàn)在線(xiàn)快速準(zhǔn)確進(jìn)行核桃仁分級(jí),必須解決2個(gè)關(guān)鍵問(wèn)題。其一是特征提取,確定何種算法或方法可以獲得核桃仁等級(jí)數(shù)據(jù),表征的信息量最大,該技術(shù)是核心;其二是核桃仁分選方法,要滿(mǎn)足識(shí)別速度快、準(zhǔn)確度高、穩(wěn)定性好的要求,是關(guān)鍵技術(shù)之一。
本檢測(cè)分級(jí)系統(tǒng)分為硬件和軟件2個(gè)部分,硬件部分由核桃仁輸送系統(tǒng)、恒大工業(yè)數(shù)字?jǐn)z像機(jī)、圖像采集系統(tǒng)、分級(jí)執(zhí)行機(jī)構(gòu)組成,軟件部分由設(shè)計(jì)分級(jí)軟件界面的VS2010和提供機(jī)器視覺(jué)的函數(shù)庫(kù)的OpenCV和Windows7 PC操作系統(tǒng)組成。
如圖1所示,輸送系統(tǒng)將核桃仁輸送至工業(yè)相機(jī)下,圖像采集系統(tǒng)拍下核桃仁圖像,圖像處理軟件系統(tǒng)進(jìn)行圖像處理,并將分級(jí)信號(hào)輸出給分級(jí)執(zhí)行機(jī)構(gòu),氣動(dòng)電磁閥結(jié)構(gòu)信號(hào)指令后動(dòng)作,完成分級(jí)任務(wù),因此分級(jí)軟件中的核桃仁分級(jí)特征和分級(jí)方法至關(guān)重要,直接決定分級(jí)的速度和準(zhǔn)確率。
1.2.1 顏色空間轉(zhuǎn)換 從核桃仁等級(jí)來(lái)看,核桃仁顏色分為淡黃、淡琥珀、深色3種(人眼視覺(jué)的辨別),相機(jī)拍攝的數(shù)字圖像使用RGB顏色空間表達(dá),即以紅、綠、藍(lán)三原色的混合表示物體顏色,是一種與硬件相關(guān)的顏色模型。但RGB空間結(jié)構(gòu)并不符合人們對(duì)顏色相似性的主觀判斷,所以本研究將RGB空間轉(zhuǎn)換為符合人眼對(duì)顏色主觀認(rèn)識(shí)的HSV顏色空間,并主要在HSV顏色空間進(jìn)行顏色特征的提取。
HSV顏色空間模型,即用H(色調(diào))、S(飽和度)和V(明度)表征顏色,如圖2所示。
給定RGB顏色空間的值(r,g,b),其中r,g,b∈[0,255],設(shè)m=max(r,g,b),n=min(r,g,b),則轉(zhuǎn)換到HSV空間的h、s、v值算法為:
(1)
(2)
(3)
if(h<0),h=b。
(4)
這里h∈[0,360],s∈[0,1],v∈[0,1]。
OpenCV中使用函數(shù)cvtColor()實(shí)現(xiàn)圖像空間的轉(zhuǎn)換,并使用函數(shù)split()進(jìn)行顏色通道的分離。此處需要注意的是空間轉(zhuǎn)換函數(shù)使用參數(shù)COLOR_BGR2HSV轉(zhuǎn)換后h∈[0,179],使用參數(shù)COLOR_BGR2HSV_FULL轉(zhuǎn)換后h∈[0,255],2種轉(zhuǎn)換均有s∈[0,255∈[0,255]。
1.2.2 顏色特征提取 本研究使用顏色直方圖和顏色矩的方法提取核桃仁顏色特征。
顏色直方圖描述不同色彩在圖像中所占的比例,具有圖像縮放和旋轉(zhuǎn)不變性,即對(duì)于核桃仁動(dòng)態(tài)分級(jí)下位置不一致時(shí)具有良好的魯棒性。由圖3可知,色調(diào)分布在0°~360°的圓上。將色調(diào)等間隔量化為180等份(bin),分別隨機(jī)選取淡黃色仁、淡琥珀色仁以及等外仁各10個(gè),作色調(diào)直方圖如圖3所示,其縱坐標(biāo)為對(duì)應(yīng)色調(diào)區(qū)間像素所占的頻率,從直方圖中可以看出各等級(jí)核桃仁的色調(diào)主要分布在0~30范圍內(nèi),即紅色到黃色(0°~60°)的范圍,則可以提取0~30共31個(gè)色調(diào)頻率作為一部分色調(diào)特征,組成基于顏色直方圖的從bin0~bin30的31個(gè)色調(diào)特征。OpenCV計(jì)算直方圖的函數(shù)為calcHist(),本研究采用掩膜的方式計(jì)算直方圖,即只計(jì)算核桃仁區(qū)域,去除核桃仁區(qū)域外零值像素的影響。
顏色矩是一種簡(jiǎn)單有效的顏色特征表示方法。由于圖像的顏色信息主要分布在低階矩中,所以其一階矩(均值)、二階矩(方差)和三階矩(偏度)足以表達(dá)圖像顏色分布。3個(gè)顏色矩的數(shù)學(xué)公式如下所示:
(5)
(6)
(7)
式中:pi,j表示彩色圖像第i個(gè)通道像素j的值。OpenCV中使用函數(shù)meanStdDev()求得圖像的均值與標(biāo)準(zhǔn)差,但并沒(méi)有計(jì)算偏度的函數(shù)可供使用,可在圖像均值的基礎(chǔ)上編寫(xiě)計(jì)算偏度的C++代碼,其中需要注意的是函數(shù)pow()(乘方函數(shù))不能對(duì)負(fù)數(shù)開(kāi)三次方,可對(duì)其取絕對(duì)值開(kāi)三次方后取負(fù)。為減小光源變化對(duì)圖像特征提取的影響,此處選擇圖像的色調(diào)H和飽和度S,分別計(jì)算其3個(gè)低階矩Hμ、Hv、Hs和Sμ、Sv、Ss組成表達(dá)顏色分布的6個(gè)特征。
結(jié)合基于色調(diào)直方圖的31個(gè)顏色特征和基于顏色矩的6個(gè)特征,本研究共提取與核桃仁圖像顏色有關(guān)的37個(gè)特征作為核桃仁顏色分級(jí)的原始特征。
1.2.3 完整度特征提取 通過(guò)分析不同完整度核桃仁的特點(diǎn),可以選取2個(gè)特征表征核桃仁完整度的差異,分別是核桃仁輪廓面積與其最小外接圓面積的比值以及輪廓最小外界矩形長(zhǎng)寬比。本研究為避免相機(jī)高度對(duì)核桃仁數(shù)據(jù)的影響,故暫不采用直接提取面積的方式判斷完整度。
由圖4知核桃仁輪廓最小外接矩形長(zhǎng)寬比為:
(8)
其中輪廓最小外接矩形由OpenCV中minAreaRec()函數(shù)求得。核桃仁輪廓面積與其最小外接圓輪廓面積之比為:
(9)
其中核桃仁輪廓面積S由輪廓面積函數(shù)contoursArea()計(jì)算,最小外接圓由函數(shù)minEnclosingCircle()求得。
分別對(duì)10個(gè)四分仁和二分仁的這2種形狀特征K1、K2作散點(diǎn)圖(圖5和圖6),可以看出,這2個(gè)特征的值均可較為容易地區(qū)分這2種不同的完整度。
Hu矩為圖像的幾何不變矩[7],是利用二階和三階中心矩構(gòu)造的7個(gè)矩,它們?cè)趫D像平移、旋轉(zhuǎn)和比例變化時(shí)保持不變,可用于輪廓形狀識(shí)別。M×N的平面數(shù)字圖像(離散化)f(x,y) 的(p+q)階原點(diǎn)矩與中心矩以及歸一化中心矩定義為:
(10)
(11)
(12)
Hu矩的數(shù)學(xué)定義為:
I1=y20+y02;
(13)
(14)
I3=(y30+3y)2+(3y21-y03)2;
(15)
I4=(y30+y12)2+(y21+y03)2;
(16)
I5=(y30-y12)(y30+y12)[(y30+y12)2-3(y21+y03)2]+(3y21-y03)(y21+y30)[3(y30+y12)2-(y21+y03)2];
(17)
I6=(y20-y02)[(y30+y12)2-(y21+y03)2]+4y11(y30+y12)(y21+y03);
(18)
I7=(3y21+y03)(y30+y12)[(y30+y12)2-3(y21+y03)2]+(y30-3y12)(y21+y30)[3(y30+y12)2-(y21+y03)2]。
(19)
OpenCV中使用函數(shù)moments()計(jì)算輪廓的中心矩,函數(shù)HuMoments()用來(lái)計(jì)算其Hu不變矩。結(jié)合K1、K2,則可構(gòu)成與核桃仁形狀相關(guān)的9個(gè)特征用于辨別核桃仁的完整度。
通過(guò)人工分級(jí),取不同等級(jí)核桃仁樣本各30個(gè),通過(guò)以上圖像處理與特征提取方式得到30×5個(gè)樣本特征的數(shù)據(jù)。對(duì)于OpenCV和Matlab,它們對(duì)圖像特征處理函數(shù)的輸入量均為矩陣,且多數(shù)函數(shù)要求矩陣的每一行(Row)為一個(gè)樣本,每一列(Col)為一個(gè)特征,則由所有樣本的特征數(shù)據(jù)可得到用于特征選擇與模型訓(xùn)練的訓(xùn)練矩陣150(Row)×46(Col),其中Col代表的特征如表1所示。由于不同特征之間的數(shù)值可能相差較大,一些特征選擇算法對(duì)此類(lèi)數(shù)據(jù)較為敏感,如mRMR算法,可能造成特征選擇不準(zhǔn)確的情況,將訓(xùn)練矩陣中每一列數(shù)據(jù)進(jìn)行歸一化處理可避免這種情況,本研究將訓(xùn)練矩陣通過(guò)OpenCV歸一化函數(shù)normalize()將每一列的數(shù)值線(xiàn)性映射到[0,1]區(qū)間內(nèi)。根據(jù)5個(gè)等級(jí)的劃分,建立對(duì)應(yīng)的標(biāo)簽矩陣150行(與樣本矩陣一一對(duì)應(yīng))1列,內(nèi)容為整數(shù)1~5表示5個(gè)等級(jí)。需要注意的是OpenCV中分類(lèi)器規(guī)定訓(xùn)練數(shù)據(jù)需要以float型(浮點(diǎn)型CV_32FC1)保存。
表1 特征與列號(hào)對(duì)照
mRMR(最大相關(guān)最小冗余)算法是一種在保證最大相關(guān)性的同時(shí),又去除冗余特征的方法[8]。算法利用互信息衡量特征子集中特征與特征之間、特征與類(lèi)別之間的相關(guān)度,互信息是2個(gè)隨機(jī)變量統(tǒng)計(jì)相關(guān)性的測(cè)度,可以看成是一個(gè)隨機(jī)變量中包含的關(guān)于另一個(gè)隨機(jī)變量的信息量,或者是一個(gè)隨機(jī)變量由于已知另一個(gè)隨機(jī)變量而減少的不確定性。mRMR可有效減少特征向量中的冗余特征,設(shè)2個(gè)隨機(jī)變量(X、Y)的聯(lián)合分布為p(x,y),邊際分布分別為p(x)、p(y),則互信息I(X;Y)為聯(lián)合分布p(x,y)與乘積分布p(x)p(y)的相對(duì)熵,其公式定義為:
(22)
對(duì)于離散型變量衡量,通過(guò)以下公式使得相關(guān)性最大和冗余性最?。?/p>
(23)
(24)
式中:S為特征集合;c為目標(biāo)類(lèi)別;I(xi;c)為目標(biāo)類(lèi)別c與特征i之間的互信息,I(xi;xj)為特征i與j之間的互信息。
對(duì)多元變量Sm和目標(biāo)類(lèi)別c,互信息定義為:
(25)
則可定義max(D-R)或max(D/R)來(lái)統(tǒng)籌考慮相關(guān)性與冗余性,作為評(píng)價(jià)特征的準(zhǔn)則,即互信息差(MID)與互信息商(MIQ)。對(duì)有m個(gè)特征的數(shù)據(jù)集Sm,需要從數(shù)據(jù)集{S-Sm}中選擇使得D-R最大化的第m+1個(gè)特征為:
(26)
使得D/R的最大化的第m+1個(gè)特征為:
(27)
使用基于mRMR的MID、MIQ這2種算法對(duì)訓(xùn)練樣本矩陣進(jìn)行特征選擇,取算法選擇的前15個(gè)特征如表2所示。
表2 MID、MIQ特征選擇結(jié)果
經(jīng)mRMR的MID和MIQ特征選擇算法對(duì)特征重要性做了排序[9],但不能確定到底使用幾個(gè)特征對(duì)分類(lèi)效果最好,因此,本研究分別對(duì)選擇后的特征采用序列向前選擇(SFS,屬于啟發(fā)式搜索)的方法選擇訓(xùn)練集,即從1個(gè)特征開(kāi)始,每次加入1個(gè)特征,組成訓(xùn)練集,分別送入3個(gè)分類(lèi)器中進(jìn)行訓(xùn)練,生成相應(yīng)模型。
另取不同等級(jí)核桃仁各30個(gè)作為測(cè)試樣本,使用各個(gè)模型對(duì)這批測(cè)試樣本的靜態(tài)圖像作分級(jí)測(cè)試,對(duì)MID算法選擇的特征序列,其測(cè)試效果如圖7所示。橫坐標(biāo)為加入的特征,縱坐標(biāo)為分級(jí)正確率,可以看到SVM在使用11個(gè)特征后分級(jí)正確率達(dá)到最大值85.33%,決策樹(shù)在使用3個(gè)特征后正確率達(dá)到最大值96.00%,樸素貝葉斯在使用3個(gè)特征后正確率達(dá)到最大值97.33%。
對(duì)MIQ算法選擇的特征序列,其測(cè)試效果如圖8所示。可以看到由于選擇的前3個(gè)特征相同,決策樹(shù)與樸素貝葉斯效果與MID算法一致,但對(duì)于使用較多特征的支持向量機(jī),在使用5個(gè)特征后即達(dá)到最大正確率85.33%。
用以上ReliefF算法篩選的特征集作為樣本訓(xùn)練數(shù)據(jù)(特征按照算法排好的順序組成訓(xùn)練矩陣),使用OpenCV決策樹(shù)類(lèi)進(jìn)行特征選擇時(shí),使用CvDtree::getVarImportance()函數(shù)計(jì)算特征的重要性。去除重要性為0的特征,留下3個(gè)重要特征為:K1、bin19和bin17。用這3個(gè)特征重新訓(xùn)練決策樹(shù)、SVM和樸素貝葉斯模型,對(duì)測(cè)試樣本進(jìn)行訓(xùn)練的效果如表3所示。
表3 決策樹(shù)選擇特征測(cè)試效果
在靜態(tài)樣本圖像下,通過(guò)對(duì)不同特征選擇算法的測(cè)試可知,幾種特征選擇算法對(duì)重要特征的選擇很接近,且樸素貝葉斯分類(lèi)器的效果均要好于其他2個(gè)分類(lèi)器,支持向量機(jī)的分類(lèi)效果最差。若使用支持向量機(jī)分類(lèi),當(dāng)選用最少5個(gè)特征bin19、K1、bin15、bin16和bin13訓(xùn)練分類(lèi)器時(shí),分類(lèi)正確率達(dá)到最大為85.33%;若使用決策樹(shù)分類(lèi),當(dāng)選用3個(gè)特征bin19、K1和bin15訓(xùn)練分類(lèi)器時(shí),分類(lèi)正確率達(dá)到最大為 96.00%;若使用樸素貝葉斯分類(lèi),當(dāng)選用3個(gè)特征bin19、K1和bin15訓(xùn)練分類(lèi)器時(shí),分類(lèi)正確率達(dá)到最大為97.33%。
綜上所述,本次試驗(yàn)可選擇特征bin19、K1和bin15,并利用分類(lèi)效果最佳的樸素貝葉斯分類(lèi)方法對(duì)核桃仁進(jìn)行分級(jí),對(duì)不同等級(jí)的分類(lèi)效果如表4所示。
表4 樸素貝葉斯模型分級(jí)效果
首先將核桃仁圖像從RGB顏色空間轉(zhuǎn)換到HSV顏色空間,在色調(diào)直方圖的基礎(chǔ)上提取了核桃仁色調(diào)圖像從紅色到黃色(0°~60°)范圍內(nèi)的31個(gè)顏色特征, 基于顏色矩的方法
提取了色調(diào)和飽和度各3個(gè)低階矩共6個(gè)特征,然后與核桃仁輪廓面積與其最小外接圓面積的比值以及輪廓最小外界矩形長(zhǎng)寬比2個(gè)完整度特征組成原始特征集,利用mRMR特征選擇算法篩選原始特征集并對(duì)特征的重要性進(jìn)行排列,最后通過(guò)對(duì)支持向量機(jī)、決策樹(shù)和樸素貝葉斯3種機(jī)器學(xué)習(xí)算法進(jìn)行模型訓(xùn)練和測(cè)試,得出在使用特征bin19、K1和bin15訓(xùn)練樸素貝葉斯分類(lèi)器時(shí),分類(lèi)正確率達(dá)到最大為97.33%的結(jié)論。
參考文獻(xiàn):
[1]郭俊先,李俊偉,胡光輝,等. 新疆冰糖心紅富士蘋(píng)果RGB圖像多指標(biāo)分析[J]. 新疆農(nóng)業(yè)科學(xué),2013,50(3):509-517.
[2]李衛(wèi)軍,劉玉梅,陳紹江,等. 基于機(jī)器視覺(jué)的玉米單倍體自動(dòng)分選系統(tǒng)[J]. 農(nóng)機(jī)化研究,2016(1):81-85.
[3]韓仲志,趙友剛. 基于計(jì)算機(jī)視覺(jué)的花生品質(zhì)分級(jí)檢測(cè)研究[J]. 中國(guó)農(nóng)業(yè)科學(xué),2010,43(18):3882-3891.
[4]張龍翔 .基于計(jì)算機(jī)視覺(jué)的花生品質(zhì)檢測(cè)分析平臺(tái)[J]. 微計(jì)算機(jī)信息,2011(9):134-136.
[5]陳 紅. 基于計(jì)算機(jī)視覺(jué)的花生仁外觀品質(zhì)無(wú)損檢測(cè)方法的研究[D]. 武漢:華中農(nóng)業(yè)大學(xué),2008.
[6]宋 鵬,吳科斌,張俊雄,等. 基于計(jì)算機(jī)視覺(jué)的玉米單倍體自動(dòng)分選系統(tǒng)[J]. 農(nóng)業(yè)機(jī)械學(xué)報(bào),2010,41(增刊1):249-252.
[7]丁幼春,陳 紅,熊利榮. 計(jì)算機(jī)視覺(jué)技術(shù)在花生仁表皮破損檢測(cè)中的應(yīng)用[J]. 糧油加工,2007(8):93-95.
[8]劉建軍,姚立健,彭樟林. 基于機(jī)器視覺(jué)的山核桃等級(jí)檢測(cè)技術(shù)[J]. 浙江農(nóng)業(yè)學(xué)報(bào),2010,22(6):854-858.
[9]方建軍,劉仕良,張 虎. 基于機(jī)器視覺(jué)的板栗實(shí)時(shí)分級(jí)系統(tǒng)[J]. 輕工機(jī)械,2004(3):92-94.