閻園園, 陳 華, 姜 波
(新疆大學(xué)電氣工程學(xué)院,新疆烏魯木齊 830047)
針對作物病害的圖像處理技術(shù)研究及科技農(nóng)業(yè)發(fā)展給農(nóng)業(yè)生產(chǎn)帶來的巨大幫助。在1989年穗波信雄已經(jīng)提出,圖像分析技術(shù)與模式識別技術(shù)將成為診斷作物病害的研究發(fā)展趨勢[1-2]。作物病害在顏色、形狀、大小等一些外在特征上存在差異性,通過視覺可以直觀地獲取這些差異。如今在作物病害類型辨別方面,分類識別技術(shù)的研究已經(jīng)取得不錯的成果。基于分類器的識別技術(shù)主要包括主成分分析(principal component analysis,簡稱PCA)、BP(back propogation)統(tǒng)計(jì)分類模型識別、粒子群優(yōu)化(particle swarm optimization,簡稱PSO)算法等。田有文等提取玉米和葡萄葉片的色度矩特征信息,選擇不同核函數(shù)對支持向量機(jī)(support vector machine,簡稱SVM)模型進(jìn)行訓(xùn)練,結(jié)果表明,當(dāng)樣本數(shù)量在幾十之間,徑向基函數(shù)(radial basis function,簡稱RBF)下的SVM分類器對病害分類效率較高,樣本集數(shù)量較大或作物種類發(fā)生變化時,該方法實(shí)用性降低[3-4];張建華等用RBF-SVM模型對棉花病害進(jìn)行識別,將小波變換圖像在HIS(hue-saturation-intensity)顏色空間的特征值作為分類器的輸入,結(jié)果證明,RBF-SVM分類器的分類率達(dá)88%,為分類器最優(yōu)核函數(shù)的選擇提供了參考[5];房俊龍等用BP算法識別番茄正常果實(shí)與變異果實(shí),遺傳算法(genetil algorithm,簡稱GA)算法優(yōu)化BP網(wǎng)絡(luò)結(jié)構(gòu),根據(jù)番茄果實(shí)病害圖像中的果實(shí)形狀、圓度值、色度等之間的差異,實(shí)現(xiàn)了對番茄空洞果實(shí)、變形果實(shí)的識別[6]。
本研究以番茄常見病害類型如早疫病、晚疫病、灰霉病為識別對象,在對3種病害分類識別過程中將病害的特征值作為群智能分類器的輸入信號。在樣本有效特征提取時,一般選擇作物顏色、形狀、紋理3個方面的特征參數(shù)作為研究參數(shù),以番茄早疫病為例,提取早疫病這3方面的有效特征值,并計(jì)算均值與方差,包括RGB(red-green-blue)、HSV(hue-saturation-value)空間顏色通道的均值與方差、7個形狀不變矩、病斑周長、面積、形狀復(fù)雜性、矩形度、對比度、相關(guān)性、能量、熵的均值與方差共31個特征參數(shù),晚疫病和灰霉病的特征參數(shù)提取方法同早疫病,分別對3種病害的31個特征參數(shù)選擇不同分類模型進(jìn)行訓(xùn)練,檢驗(yàn)不同分類器的分類效果。
試驗(yàn)材料來自中糧新疆屯河吉木薩爾番茄產(chǎn)業(yè)種植基地,由新疆大學(xué)-中糧屯河產(chǎn)學(xué)研聯(lián)合培養(yǎng)研究生示范基地提供。采用MATLAB Version 8.0(R2012b)對數(shù)據(jù)進(jìn)行分析,圖片處理工具選擇(Image Processing Toolbox)Version 8.1(R2012b)以及IBM SPSS Statistics 25.0。
1.2.1 PCA方法 PCA方法是一種用較少變量代替原樣本中較多變量的線性變換方式,變換后的較少變量被稱作新變量,新變量在一定程度上包含原變量較多信息量,又稱降維。降維后的新變量之間保持線性互不相關(guān),并且變量之間滿足正交特性[7]。PCA方法的新變量自動按照Var(Fm)由大到小從高維空間映射。假設(shè)樣本有p個特征,分別為X1,X2,…,Xp,將p個特征的綜合反映記作Fm,F(xiàn)1代表原變量第1個主成分綜合指標(biāo),即F1=a11X1+a21X2+…+ap1Xp,方差Var(Fm)的大小代表主成分包含信息量的多少。以此類推構(gòu)造F1,F2,…,Fm為原變量指標(biāo)下X1,X2,…,Xp第1、第2、…、第m個主成分表達(dá)如下:
F1=a11X1+a12X2+…+a1pXp;
F2=a21X1+a22X2+…+a2pXp;
?
Fm=am1X1+am2X2+…+ampXp。
(1)
對樣本的31個特征參數(shù)值進(jìn)行PCA降維,根據(jù)主成分貢獻(xiàn)率的大小,通常選擇主成分累積貢獻(xiàn)率大于85%的成分作為樣本數(shù)據(jù)集的研究依據(jù),若貢獻(xiàn)率太小則不足以顯示樣本信息,會對樣本分類造成影響。以早疫病為例共采集30個樣本,每個樣本提取31個特征參數(shù),其他病害成分分析及降維方法同早疫病,早疫病樣本的PCA降維分析結(jié)果和主成分貢獻(xiàn)率分別如圖1、表1所示。
由圖1可知,成分1~7的特征值變化較快,第8個成分之后變化平緩,7個成分的累積貢獻(xiàn)率達(dá)到86.077%,所以把前7個成分作為樣本的主成分,成分因子不受影響。通過不斷改變樣本數(shù)量分析發(fā)現(xiàn),對樣本特征參數(shù)以及主成分?jǐn)?shù)進(jìn)行PCA降維不會導(dǎo)致成分因子變化,以7個主成分中的31個成分因子作為SVM算法的輸入,建立PCA-SVM的番茄病害分類模型。
1.2.2 PCA-SVM分類模型參數(shù)分析 SVM是一種分類建模的方法,在樣本容量小、數(shù)據(jù)非線性、數(shù)據(jù)緯度較高的特征空間被經(jīng)常用到,算法的關(guān)鍵是核函數(shù)的選擇,核函數(shù)在高維特征數(shù)據(jù)空間獲得分類函數(shù)相對比較容易,本研究選擇核函數(shù)RBF作為分類函數(shù),公式如下[8]:
表1 番茄早疫病樣本數(shù)據(jù)7個主成分的累計(jì)貢獻(xiàn)率
(2)
核函數(shù)RBF中σ2(核函數(shù)參數(shù))與γ(懲罰系數(shù))參數(shù)的選擇最重要,最終參數(shù)的確定要經(jīng)過不斷調(diào)試。核函數(shù)參數(shù)σ與γ的取值范圍通常在10-3~105之間[9]。在PCA-SVM分類模型中,以30個早疫病樣本為訓(xùn)練樣本,對優(yōu)化后的樣本特征向量進(jìn)行訓(xùn)練,另外建立30個早疫病測試樣本,樣本分類訓(xùn)練模型結(jié)果見圖2,可以看出60個樣本在基于核函數(shù)RBF的PCA-SVM分類器下的分類效果,早疫病與非早疫病分類中有1個樣本被錯分,早疫病的識別率達(dá)到96.7%。
對測試樣本識別時考慮到樣本集數(shù)量可能會對識別率造成影響,試驗(yàn)中不斷改變病害樣本集數(shù)量,比較不同數(shù)量樣本集下PCA-SVM模型的識別率,進(jìn)而判斷模型是否具有可行性,不同數(shù)量樣本集下PCA-SVM模型對3種病害類型的識別結(jié)果如表2所示。
表2 PCA-SVM模型下的早疫病及番茄其他病害識別結(jié)果
1.2.3 PCA-SVM分類模型分類結(jié)果分析 表2顯示,樣本數(shù)為30~50個時,PCA-SVM模型對測試集的病害識別率全部達(dá)到90%及以上,尤其當(dāng)早疫病測試集樣本數(shù)為20個時,識別率達(dá)到100%,隨著樣本量的增加,早疫病識別效率相應(yīng)降低,早疫病訓(xùn)練樣本量為60個時,測試集的識別率僅為88%,結(jié)果表明,識別率大小受樣本集大小影響,也證實(shí)PCA方法對樣本數(shù)量有一定要求,在灰霉病訓(xùn)練樣本數(shù)為60個時,測試集的識別率僅為80%,這種情況下要尋找新的分類模型解決大樣本下的識別率問題。
遺傳算法以種群為基準(zhǔn),通過計(jì)算隱藏在種群中的解集來描述實(shí)質(zhì)性的問題,每個個體的染色體攜帶特征不同,導(dǎo)致個體之間存在差異,多個個體之間的差異性組成一個個體種群,解集計(jì)算就是對種群適應(yīng)度、交叉概率(Pc)、變異概率(Pm)等參數(shù)的選擇,通常在算法執(zhí)行過程中要對個體進(jìn)行編碼產(chǎn)生新個體,通過不同方式的交叉、變異產(chǎn)生不同的Pc、Pm,選擇子代中適應(yīng)度最大的個體替代父代中適應(yīng)度最小的個體,稱作迭代尋優(yōu)[10-11]。目前GA參數(shù)取值有一定的范圍,種群大小在20~100個之間,Pc為0.40~0.99,Pm為0.001~0.100。分類器的輸入同樣是樣本數(shù)據(jù)的特征參數(shù),但分類模型中的輸入信號為原始特征參數(shù),不用對數(shù)據(jù)降維,這是GA-SVM模型與PCA-SVM模型的不同之處,這既保留了原始信息,又能夠自動定參。
1.3.1 GA-SVM分類模型的參數(shù)分析
1.3.1.1 種群大小(M) 根據(jù)試驗(yàn)要求及樣本對結(jié)果的影響程度決定初始種群大小(M),數(shù)目較大時,隱藏解的信息量相對較大,樣本集的全局最優(yōu)解相對更容易獲得,運(yùn)行時間要比小種群運(yùn)行時間長。
1.3.1.2 交叉概率(Pc)Pc是個體之間交叉獲得新個體的概率,其中個體自身作為父代,新個體稱作子代,交叉方式有單點(diǎn)、多點(diǎn)、兩點(diǎn)、洗牌等。Pc高低決定算法收斂速度,一般選擇較大的Pc,本研究選擇單點(diǎn)交叉方式,該方法簡單計(jì)算量小[12]。
1.3.1.3 變異概率 新個體的產(chǎn)生在交叉過程中出現(xiàn)變異個體,這種個體的產(chǎn)生導(dǎo)致樣本多樣性,所以Pm大小決定樣本的穩(wěn)定性,通常選擇Pm最小數(shù)值來減少對種群大小和Pc的影響。
1.3.1.4 進(jìn)化代數(shù) 進(jìn)化代數(shù)(Gm)反映樣本尋找最優(yōu)解的次數(shù),Gm越大迭代時間越長,最優(yōu)解獲得時間也相對較長,Gm通常在100~500代范圍內(nèi)[13]。
為更快獲得參數(shù)之間的關(guān)系來提高尋優(yōu)效率,本研究引入常見的尋優(yōu)函數(shù)De Jong函數(shù),由De Jong函數(shù)確定參數(shù)之間的最優(yōu)組合,對De Jong函數(shù)參數(shù)確定選用旋轉(zhuǎn)正交變換法,該方法可以提高參數(shù)搜索速度。分類模型算法流程如下[13]:首先編碼SVM中r與σ2;對樣本數(shù)據(jù)即種群進(jìn)行初始化,讓樣本隨機(jī)產(chǎn)生1組個體;輸入種群個體參數(shù)值作為SVM的輸入?yún)?shù),數(shù)據(jù)樣本集對模型進(jìn)行訓(xùn)練;通過計(jì)算樣本數(shù)據(jù)集正確分類數(shù)與樣本集總量的比值獲得適應(yīng)度;根據(jù)適應(yīng)度大小用輪盤賭法對樣本子代個體進(jìn)行選擇;重復(fù)上述操作完成GA的訓(xùn)練。GA-SVM分類模型在不同參數(shù)下分類結(jié)果如表3所示。
表3 GA-SVM分類器在不同參數(shù)指標(biāo)下的分類效果
1.3.2 GA-SVM分類器分類結(jié)果分析 由表3可知,測試組第5組在GA-SVM分類器中的分類效果最好,3種病害識別率平均值達(dá)到96.67%,此時M=40,樣本數(shù)=40,Pc=0.6,pm=0.001,早疫病識別率達(dá)到100%,灰霉病識別率 97.5%,晚疫病識別率為92.5%;當(dāng)M=80,樣本量=60,Pc=0.8,Pm=0.01時,分類器平均識別率最低,早疫病僅識別出52個,總體上講Pm越小,樣本量在30~60個之間識別率越高。就樣本量而言,GA-SVM模型比PCA-SVM模型對樣本量識別范圍大。
為考察遺傳算法中的交叉變異計(jì)算是否會對分類器參數(shù)產(chǎn)生影響,選擇經(jīng)PSO算法優(yōu)化的參數(shù)作為分類器的輸入來驗(yàn)證交叉變異的影響。PSO算法擺脫了智能算法中的交叉、變異、進(jìn)化等算子操作,將種群個體看作一個粒子,每個粒子都有對應(yīng)的適應(yīng)度值,用粒子每一速度下的個體最佳極值和整個群體的最佳極值進(jìn)行比較,或選擇種群中一部分粒子的最佳極值進(jìn)行比較。當(dāng)粒子適應(yīng)度值大于全局極值時,用適應(yīng)度值代替全局極值,在優(yōu)化過程中粒子速度、位置不斷變化,但都是朝著粒子最優(yōu)解和全局最優(yōu)解的位置搜索。粒子群算法在尋優(yōu)過程中減少了交叉、變異計(jì)算,相應(yīng)的運(yùn)算時間較短。
1.4.1 PSO-SVM分類模型參數(shù)分析 PSO算法也會受到參數(shù)大小的影響,例如慣性權(quán)重(ω)、群體規(guī)模(m)、學(xué)習(xí)因子(c1、c2)、種群結(jié)束條件、最大速度(vmax)等。粒子群算法中有2個學(xué)習(xí)因子——認(rèn)知學(xué)習(xí)因子和社會學(xué)習(xí)因子,學(xué)習(xí)因子能夠加速算法收斂性以及提高粒子搜索能力,兩者取值一般在 0~4 之間,通常學(xué)習(xí)因子與ω之間存在一定關(guān)系,c1參數(shù)取值一般為1.494、2.000、2.050、2.800;c2為1.300、1.494、2.000、2.050。ω在PSO算法中主要來決定粒子的局部搜索能力和全局搜索能力,Eberhart等對ω范圍作出總結(jié),在0.9~1.2之間時算法的優(yōu)化效果和搜索能力顯著提高。粒子群訓(xùn)練結(jié)束后,把種群中具有最大適應(yīng)度函數(shù)值的r和σ2作為支持向量機(jī)模型的最優(yōu)參數(shù)來完成模型搭建。
1.4.1.1 粒子初始化 假設(shè)種群大小用Z={Z1,Z2,…,Zm}表示,其中m為粒子數(shù)大小,粒子大小用來確定SVM算法中參數(shù)的可行解,r的取值在0~1 000 之間,σ2=[0,1]。
例如,在D維的目標(biāo)空間,粒子數(shù)為N個的一個群體中,假設(shè)其中的一個粒子記作i,它的D維向量表示為Xi=(xi1,xi2,…,xiD),i=1,2,…,N,該粒子的速度也是一個D維的向量,記作Vi=(vi1,vi2,…,viD),i=1,2,…,N,粒子搜索到的最優(yōu)位置也稱作個體的極值,記作pbest=(pi1,pi2,…,piD),i=1,2,…,N,整個粒子群搜索到最優(yōu)位置,即全局極值的表達(dá)式為gbest=(pg1,pg2,…,pgD),在找到這2個最優(yōu)值的過程中,粒子會根據(jù)以下公式來時刻更新自己的速度和位置[15-16]:
vid=ω×vid+c1r1(pid-xid)+c2r2(pgd-xid);
(3)
xid(t+1)=xid(t)+vid。
(4)
式中:t表示時間。vid∈[-vmax,vmax],vmax是常數(shù),根據(jù)需求設(shè)定,用來限制粒子的速度,r1和r2大小則是介于0~1之間的隨機(jī)數(shù)。
1.4.1.2 適應(yīng)度函數(shù)的選擇 粒子群算法的適應(yīng)度函數(shù)確定方式與GA適應(yīng)度函數(shù)選擇方式相同,都是測試樣本中正確分類個數(shù)(ano)與測試樣本總數(shù)(tno)的比值,記作f1=ano/tno。
1.4.1.3 粒子群更新 按照公式(3)、(4)找到個體極值與全局極值時,粒子會按照以上公式更新位置與速度,每1個粒子在尋優(yōu)的過程中都會自動尋找2個極值。
1.4.2 PSO-SVM分類器在不同參數(shù)下的分類結(jié)果分析 PSO算法中粒子的位置和速度受參數(shù)影響較大,以ω、c1、c2、群體規(guī)模作為研究參數(shù),用“1.3.1”節(jié)中的正交變換法對不同參數(shù)下的模型進(jìn)行驗(yàn)證,尋找參數(shù)與分類模型識別率之間的關(guān)系,正交試驗(yàn)法中的參數(shù)選擇4個,按照正交規(guī)則一共要產(chǎn)生42個試驗(yàn)組,從中選擇最佳參數(shù)組合建立PSO-SVM分類模型,正交試驗(yàn)下PSO參數(shù)及 PSO-SVM 分類模型對病害分類結(jié)果如表4所示。由表4可以看出,測試組7中的平均識別率達(dá)到96.67%,樣本量=40,種群規(guī)模=35,c1=2.05,c2=2.00;相對樣本量較大的測試組12、16,學(xué)習(xí)因子對識別率的影響效果不明顯,而樣本量和種群規(guī)模對識別率的影響較大,相對于前2種分類模型PSO-SVM分類模型在樣本量為30~40個,種群規(guī)模在25~35個之間時,平均識別率普遍在90%以上。說明參數(shù)對識別率的影響較大,要想獲得更高的識別率要不斷尋找最優(yōu)參數(shù)。較大的c1、c2對識別率影響也較大,16組試驗(yàn)中2個因子較大的試驗(yàn)組平均識別率普遍偏高。
為驗(yàn)證PCA-SVM分類模型的分類效果,增加對比試驗(yàn),其中試驗(yàn)樣本以及試驗(yàn)樣本數(shù)據(jù)特征均來自PCA-SVM試驗(yàn),2組對比試驗(yàn)?zāi)P头謩e為 GA-SVM 群智能分類模型、PSO-SVM群智能分類模型。根據(jù)3個分類器模型在不同參數(shù)下的分類效果,保留識別率大于90%的試驗(yàn)組作為評判分類模型性能的指標(biāo),對目標(biāo)試驗(yàn)組數(shù)的認(rèn)別率分別求平均值,綜合比較3種分類模型分別對番茄早疫病、晚疫病、灰霉病識別效果,不同分類模型的分類試驗(yàn)分析結(jié)果如表5所示。
表4 正交試驗(yàn)下PSO參數(shù)及番茄病害分類結(jié)果
表5 不同分類模型試驗(yàn)分析結(jié)果
綜上所述,在3種分類模型中,總體上PSO-SVM分類模型的分類效果最好,但在PCA-SVM模型中,早疫病和晚疫病在3種分類模型中識別率最高,而該模型對灰霉病的識別效果相對略差一些;在PSO-SVM分類模型中,灰霉病的識別率在3種分類模型中最高,達(dá)到93.87%,從平均值來看,3種分類模型中PCA-SVM識別率最高,這也證明了作物識別模型不具普遍適用性的特點(diǎn)。