于國(guó)慶,郝若帆,馬洪濤,吳賽敏,陳夢(mèng)雅
(河北科技大學(xué) 信息科學(xué)與工程學(xué)院,河北 石家莊 050018)
秸稈覆蓋率是檢測(cè)秸稈還田效果的最重要指標(biāo)。目前,其檢測(cè)方法主要分為傳統(tǒng)人工法和圖像處理法。傳統(tǒng)人工法主要是人工拉繩法、目測(cè)法等,效率極低、耗時(shí)耗力。圖像處理法主要是對(duì)通過(guò)技術(shù)手段獲得的田間秸稈圖像進(jìn)行分析處理,得到秸稈輪廓等參數(shù),計(jì)算出秸稈覆蓋率。目前,圖像處理法在對(duì)秸稈覆蓋率的識(shí)別研究上取得了一些研究成果。李洪文等[1]利用BP神經(jīng)網(wǎng)絡(luò)對(duì)秸稈紋理熵值進(jìn)行訓(xùn)練,檢測(cè)秸稈覆蓋率。結(jié)果表明,與傳統(tǒng)測(cè)量方法相比,檢測(cè)速度提升了50~120倍,但是前期工作量較大,需要訓(xùn)練大量的樣本。蘇艷坡等[2]基于自動(dòng)取閾分割算法對(duì)完整秸稈進(jìn)行了識(shí)別,但實(shí)際上田間秸稈覆蓋大部分為粉碎性秸稈,且此方法受光照影響較大。
由于秸稈的顏色易受光照的影響且紋理性較差,對(duì)粉碎秸稈的檢測(cè)存在準(zhǔn)確率較低、效率低的問(wèn)題, 基于此,采用基于灰度變換函數(shù)和支持向量機(jī)(即Support vector machine,簡(jiǎn)稱為SVM)算法相結(jié)合的秸稈識(shí)別方法,首先對(duì)不同光照下的圖像進(jìn)行灰度變換處理,對(duì)圖像灰度級(jí)進(jìn)行調(diào)整,解決秸稈識(shí)別過(guò)程中易受光照影響的問(wèn)題,然后用SVM算法進(jìn)行圖像識(shí)別,對(duì)粉碎后秸稈的圖像進(jìn)行訓(xùn)練,利用訓(xùn)練結(jié)果直接對(duì)其他秸稈圖像進(jìn)行預(yù)測(cè),以解決對(duì)細(xì)碎秸稈的識(shí)別問(wèn)題并提高粉碎秸稈覆蓋率檢測(cè)的準(zhǔn)確率和效率,實(shí)現(xiàn)田間秸稈覆蓋率的準(zhǔn)確、快速檢測(cè)。
采集的圖像均為秸稈還田機(jī)工作時(shí)機(jī)載攝像頭定位拍攝的由具有差分定位、4G圖傳功能的車機(jī)傳輸?shù)睫r(nóng)業(yè)服務(wù)器平臺(tái)上的田間秸稈覆蓋地塊(實(shí)際均為長(zhǎng)2 m,寬1 m)圖像。對(duì)定位點(diǎn)秸稈覆蓋進(jìn)行實(shí)際人工拉繩法測(cè)量,并從準(zhǔn)備的30個(gè)地塊圖像中選取5個(gè)地塊圖像進(jìn)行秸稈覆蓋率檢測(cè),其中2個(gè)不同作業(yè)區(qū)地塊圖像如圖1所示。
圖像采集系統(tǒng)由1輛工作中的秸稈還田機(jī)(雷沃1JHT系列)、1臺(tái)像素為640×480的攝像頭、1套帶差分定位模塊和4G傳輸模塊的車機(jī)(由石家莊信翔電子有限公司生產(chǎn))組成。
1.3.1 基于灰度均衡化的秸稈提取 由于圖1a中土地與秸稈的灰度梯度差較明顯,故采用基于灰度化原理的自定義灰度化法將圖像中的秸稈與土地進(jìn)行較明顯的灰度化分離。將圖像中所有像素點(diǎn)的 R、G、B三色素進(jìn)行通道分離[3],再將R、G、B三通道的值各自相加,得到R總、G總、B總。對(duì)三通道像素進(jìn)行自定義組合,即自定義灰度化,其公式如下。
a、b分別表示地塊1、地塊2
pic=xR總+yG總+zB總
(1)
1.3.2 圖像灰度變換處理 由于田間不同時(shí)間、不同光照條件下采集到的圖像受光照影響,灰度化后的圖像中各光譜能量依然存在較大的差異,而實(shí)際操作需要對(duì)多張不同光照條件下的秸稈圖片進(jìn)行預(yù)測(cè)分類,為了使SVM算法的所有訓(xùn)練樣本灰度級(jí)范圍保持一致,利用MATLAB灰度變換函數(shù)對(duì)進(jìn)行灰度均衡化后的圖像做進(jìn)一步的灰度級(jí)調(diào)整。調(diào)整函數(shù)如下。
pic=imadjust(pic1,[low_inhigh_in],[low_outhigh_out],gamma)
(2)
式中,pic1為輸入圖像;pic1中灰度值低于low_in的像素點(diǎn)在pic中灰度值被賦值為low_out,pic1中灰度值高于high_in的像素點(diǎn)變換到pic時(shí)其灰度值被賦值為high_out;參數(shù)gamma為灰度變換調(diào)整值。
1.4.1 SVM原理 為了識(shí)別圖像中的秸稈,采用SVM算法對(duì)秸稈和土地進(jìn)行識(shí)別檢測(cè)。SVM算法[4-10]在線性不可分的情況下,通過(guò)某種事先選擇的非線性映射(核函數(shù))將輸入變量映射到一個(gè)高維特征空間,在這個(gè)空間中構(gòu)造最優(yōu)分類超平面。
秸稈和土地間的分類問(wèn)題屬于非線性分類問(wèn)題,利用SVM的核函數(shù)映射特性可以較圓滿地解決這一問(wèn)題。分類時(shí),只需要對(duì)輸入數(shù)據(jù)的內(nèi)積運(yùn)算(xi,yi)做線性運(yùn)算,可省略在高維空間中繁瑣的運(yùn)算過(guò)程,在保證結(jié)果的同時(shí)避免了在原輸入空間中進(jìn)行非線性曲面分割計(jì)算。
SVM算法中常用到的核函數(shù)類型有以下幾種:
(1)線性核函數(shù):表達(dá)式為K(x,xi)=x·xi;
(2)多項(xiàng)式核函數(shù):表達(dá)式為K(x,xi)=[(x·xi)+1]q;
(3)高斯徑向基核函數(shù)(RBF核函數(shù)):表達(dá)式為K(x,xi)=exp(-γ‖x-xi‖2);
(4)線性Sigmoid核函數(shù):表達(dá)式為K(x,xi)=tanh[ν(x·xi)+c]。
這4種核函數(shù)有各自的特點(diǎn),根據(jù)輸入的原始數(shù)據(jù)不同,選取不同的核函數(shù)進(jìn)行映射到高維空間中使數(shù)據(jù)達(dá)到線性可分的狀態(tài)。
1.4.2 SVM分類模型 對(duì)待分類圖像進(jìn)行同一灰度級(jí)內(nèi)灰度變換處理,然后進(jìn)行訓(xùn)練樣本的提取,用于訓(xùn)練出樣本模型model文件,用樣本模型預(yù)測(cè)所有待分類圖像,得到預(yù)測(cè)結(jié)果。訓(xùn)練及預(yù)測(cè)流程如圖2所示。
圖2 訓(xùn)練及預(yù)測(cè)流程
應(yīng)用MATLAB數(shù)學(xué)工具箱,借助臺(tái)灣大學(xué)林智仁教授等開(kāi)發(fā)設(shè)計(jì)的一款名為L(zhǎng)IBSVM的軟件包,進(jìn)行快速有效地SVM模式識(shí)別與回歸。
首先,選取訓(xùn)練樣本點(diǎn)train_data,并依次賦予正確的標(biāo)簽train_label,本試驗(yàn)將秸稈標(biāo)記為1,將土地標(biāo)記為-1。應(yīng)用訓(xùn)練公式svmtrain進(jìn)行分類訓(xùn)練[11],其公式如下。
model=svmtrain(train_label,train_data,′-s-t-c-g′)
(3)
式(3)中,-s指的是SVM類型,對(duì)秸稈和土地進(jìn)行分類, 令參數(shù)s為0,代表C-SVC,即分類型SVM; -t指的是核函數(shù)類型;-c指的是C-SVC的參數(shù)C,-g指的是核函數(shù)中的參數(shù)γ。
將train_label和train_data帶入訓(xùn)練函數(shù)svmtrain進(jìn)行訓(xùn)練,將返回值model值存入文件保存。
1.4.3 SVM預(yù)測(cè)分類 對(duì)圖像進(jìn)行預(yù)測(cè)分類,將model文件導(dǎo)入MATLAB程序內(nèi),使用預(yù)測(cè)函數(shù)svmpredict進(jìn)行預(yù)測(cè)分類。預(yù)測(cè)函數(shù)公式如下。
[predict_label,accuracy,decision_value]=svmpredict(test_label,test_data,model)
(4)
式(4)中,test_label為預(yù)測(cè)標(biāo)簽,可以賦值為1或-1,或者不填;test_data為預(yù)測(cè)數(shù)據(jù)點(diǎn);model值為訓(xùn)練函數(shù)返回值;accuracy為預(yù)測(cè)結(jié)果相對(duì)于訓(xùn)練樣本的準(zhǔn)確率;decision_value用于函數(shù)回歸,與分類無(wú)關(guān)。
秸稈覆蓋率的計(jì)算如果直接按照秸稈圖像的像素點(diǎn)進(jìn)行統(tǒng)計(jì),與實(shí)際結(jié)果相比誤差較大。為得到準(zhǔn)確的秸稈覆蓋率,利用灰度圖像形態(tài)學(xué)原理對(duì)圖像做進(jìn)一步處理,去除噪聲點(diǎn),并將秸稈間空隙擴(kuò)充。對(duì)土地上細(xì)小的殘余秸稈作為椒鹽噪聲,利用一定形狀尺寸的結(jié)構(gòu)元素對(duì)二值化圖像進(jìn)行圖像腐蝕處理[12]。然后,利用另一形狀尺寸的結(jié)構(gòu)元素對(duì)圖像中余下的秸稈進(jìn)行膨脹操作,縮小或去除秸稈間的間隙,獲得準(zhǔn)確的秸稈覆蓋率。
1.5.1 形態(tài)學(xué)圖像處理 膨脹和腐蝕變換是以集合的和與差運(yùn)算為基礎(chǔ)進(jìn)行的復(fù)合形態(tài)變換或形態(tài)分析[13]。所有的形態(tài)學(xué)變換都可以由膨脹和腐蝕變換的各種復(fù)合運(yùn)算來(lái)實(shí)現(xiàn)[14]。 針對(duì)秸稈和覆蓋率的特性,用于腐蝕的結(jié)構(gòu)元素選取形狀為disk(圓盤),大小為3(半徑),用于膨脹的結(jié)構(gòu)元素選取形狀為disk(圓盤),大小為10(半徑)。
1.5.2 求取圖像覆蓋率 由于分類后的圖像為二值圖像,秸稈像素灰度值為0,土地像素灰度值為255??傻玫酵恋氐南袼仄骄叶戎礕round_ave如下。
Ground_ave=255×Groundvalue/All
(5)
式中,Groundvalue為土地的像素個(gè)數(shù)。All為整個(gè)圖像中的像素個(gè)數(shù)。則秸稈覆蓋率StrawCov如下。
StrawCov=(1-Ground_ave/255)×100%
(6)
首先對(duì)圖像進(jìn)行自定義灰度化,并根據(jù)灰度變換函數(shù)對(duì)灰度圖像進(jìn)行處理。為采用SVM進(jìn)行秸稈和土地的分類做前期準(zhǔn)備,并保證訓(xùn)練樣本結(jié)果不受光照條件的影響。
對(duì)圖像進(jìn)行灰度均衡化,得到式(1)中最佳系數(shù)x=0.09、y=0.80、z=0.11。地塊1灰度化結(jié)果如圖3a所示。
a.地塊1自定義灰度化結(jié)果;b.對(duì)地塊1調(diào)整固定灰度范圍的結(jié)果
通過(guò)對(duì)圖像的參數(shù)變換及對(duì)圖像的反復(fù)試驗(yàn),得到式(2)中最優(yōu)參數(shù)值low_in=0.3,high_in=0.9,low_out=0,high_out=0,gamma=1。對(duì)圖3a進(jìn)行自定義灰度化處理,調(diào)整固定灰度范圍,結(jié)果如圖3b所示,處理后的灰度圖像灰度級(jí)被調(diào)整到固定范圍內(nèi),避免了SVM算法進(jìn)行訓(xùn)練時(shí)結(jié)果圖像受光照影響,后續(xù)分類時(shí)可以直接調(diào)用訓(xùn)練文件,對(duì)灰度變換處理后的圖像直接進(jìn)行分類預(yù)測(cè),大大提高了后續(xù)SVM算法的分類效率和分類正確率。
試驗(yàn)通過(guò)對(duì)30張圖像中的像素點(diǎn)進(jìn)行選取,獲得代表土地和秸稈兩者不同的訓(xùn)練樣本共207 649個(gè),測(cè)試樣本186 461個(gè),進(jìn)行訓(xùn)練過(guò)程中參數(shù)的選取和性能的提升。
利用K-CV法,交叉驗(yàn)證選擇最佳參數(shù)C和γ,將部分訓(xùn)練集作為原始數(shù)據(jù)集,剩下的訓(xùn)練集模擬測(cè)試集,得到此組C和γ下訓(xùn)練集驗(yàn)證分類準(zhǔn)確率,最終取使得訓(xùn)練集驗(yàn)證分類準(zhǔn)確率最高的那組C和γ為最佳參數(shù)。結(jié)果如圖4所示。最優(yōu)懲罰因子C=0.25,γ=5.656 9。
將確定的參數(shù)c和g帶入訓(xùn)練函數(shù),此時(shí)需選取核函數(shù)的類型t,采用1.3.1中提到的4種核函數(shù)分別對(duì)經(jīng)過(guò)灰度變換處理的圖像進(jìn)行SVM秸稈識(shí)別,結(jié)果如圖5所示,其中土地用黑色像素點(diǎn)表示,秸稈用白色像素點(diǎn)表示。
圖4 參數(shù)c和g的最優(yōu)選擇
圖5 采用不同核函數(shù)的分類結(jié)果
表1為上述4種核函數(shù)在對(duì)圖5進(jìn)行分類時(shí)仿真結(jié)果中的正確分類像元數(shù)和訓(xùn)練函數(shù)輸出值中的分類精度,可更直觀明了地對(duì)比4種核函數(shù)的分類結(jié)果。
表1 4類核函數(shù)分類精度對(duì)比
通過(guò)對(duì)圖5和表1進(jìn)行分析得出,選用RBF核函數(shù)搭建的訓(xùn)練模型對(duì)秸稈圖像的分類結(jié)果最理想,分類精度最高,所以在訓(xùn)練函數(shù)中選擇參數(shù)t為2即RBF核函數(shù)對(duì)樣本進(jìn)行訓(xùn)練。其中,圖5c為地塊1的二值化最優(yōu)結(jié)果。
對(duì)圖像進(jìn)行秸稈分類后,將結(jié)果用不同顏色可視化。采用式(3)將SVM訓(xùn)練后的model文件直接導(dǎo)入進(jìn)行預(yù)測(cè),可視化結(jié)果即圖5c所示。
實(shí)際秸稈還田后,計(jì)算秸稈覆蓋率需要識(shí)別多張秸稈圖像。為提高檢測(cè)效率,需訓(xùn)練大量數(shù)據(jù),并將訓(xùn)練結(jié)果即model值保存并導(dǎo)入到工程目錄中,對(duì)其他需要檢測(cè)的圖像直接進(jìn)行預(yù)測(cè),不需要一一訓(xùn)練,節(jié)省了大量的秸稈圖像檢測(cè)時(shí)間,提高了效率。
對(duì)地塊2圖像(圖1b)進(jìn)行灰度變換處理后不需要進(jìn)行樣本訓(xùn)練,直接用model文件進(jìn)行預(yù)測(cè),可視化結(jié)果如圖6所示。
圖6 地塊2的可視化結(jié)果
由圖5c和圖6可以看出,用訓(xùn)練后的model文件對(duì)圖像直接預(yù)測(cè)分類,避免了繁瑣的訓(xùn)練過(guò)程,為后續(xù)秸稈圖像的分類節(jié)省了大量的訓(xùn)練模型時(shí)間,且準(zhǔn)確率高。
對(duì)圖5c的二值化圖像進(jìn)行形態(tài)學(xué)圖像處理后,結(jié)果如圖7所示??梢钥闯?,秸稈之間的縫隙一定程度上被填充,大面積土地中微小的秸稈殘?jiān)蛔鳛閳D像噪聲去除掉,使覆蓋率計(jì)算結(jié)果更貼近實(shí)際值。
圖7 形態(tài)學(xué)圖像處理
對(duì)包括地塊1和地塊2的5個(gè)不同地塊的秸稈圖像進(jìn)行灰度變換處理后,免去樣本訓(xùn)練環(huán)節(jié),直接利用試驗(yàn)得出的訓(xùn)練樣本model文件進(jìn)行預(yù)測(cè)。田間實(shí)際測(cè)量和本試驗(yàn)算法所得的秸稈覆蓋率結(jié)果如表2所示,其中,誤差率為本試驗(yàn)算法結(jié)果與田間實(shí)際測(cè)量結(jié)果之間的誤差百分比。由表2可見(jiàn),本試驗(yàn)算法得到的秸稈覆蓋率和田間實(shí)際測(cè)量的秸稈覆蓋率最大誤差率為3.20%,最小誤差率為1.00%。且試驗(yàn)統(tǒng)計(jì)的圖像分類過(guò)程所需時(shí)間小于2 s。
表2 5個(gè)不同地塊的秸稈覆蓋率測(cè)定結(jié)果 %
針對(duì)田間秸稈還田機(jī)作業(yè)后覆蓋細(xì)碎秸稈的土地,本試驗(yàn)采用SVM算法和灰度變換處理對(duì)獲取的粉碎后秸稈圖像進(jìn)行訓(xùn)練,利用訓(xùn)練結(jié)果直接對(duì)其他秸稈圖像進(jìn)行預(yù)測(cè),檢測(cè)秸稈覆蓋率。該方法比原有的基于自動(dòng)取閾分割算法的秸稈覆蓋率檢測(cè)系統(tǒng)對(duì)整體秸稈的識(shí)別[2]更具有實(shí)際意義。
田間試驗(yàn)結(jié)果表明,利用本算法檢測(cè)的秸稈覆蓋率誤差率最低為1.00%,最高為3.20%。試驗(yàn)中,通過(guò)對(duì)圖像進(jìn)行灰度變換處理,避免了由于光照產(chǎn)生的光譜能量不同導(dǎo)致的試驗(yàn)誤差,使訓(xùn)練結(jié)果可以應(yīng)用于不同作業(yè)地區(qū)、不同光照條件下的秸稈識(shí)別,更符合秸稈還田覆蓋率檢測(cè)的實(shí)際要求。
應(yīng)用SVM算法訓(xùn)練出的model文件可以直接對(duì)圖像進(jìn)行預(yù)測(cè),免去了每次秸稈檢測(cè)需要訓(xùn)練的繁瑣過(guò)程,運(yùn)算過(guò)程效率高、速度快。本試驗(yàn)對(duì)秸稈圖像的檢測(cè)時(shí)間小于2 s,是李洪文等[1]研究的基于人工神經(jīng)網(wǎng)絡(luò)的田間秸稈覆蓋率系統(tǒng)運(yùn)算速度[1]的2倍。
試驗(yàn)產(chǎn)生誤差的原因,一方面可能是由于采集圖像時(shí)攝像頭角度傾斜,引起圖像出現(xiàn)不同程度的失真現(xiàn)象,后期可以對(duì)圖像進(jìn)行尺度校正,改善由于拍攝角度引起的圖像失真問(wèn)題;另一方面,SVM訓(xùn)練時(shí)由于訓(xùn)練及預(yù)測(cè)函數(shù)中參數(shù)的選取存在誤差,下一步應(yīng)繼續(xù)對(duì)SVM訓(xùn)練研究,消除SVM算法計(jì)算產(chǎn)生的誤差結(jié)果;第三,不同地塊不同光照條件下秸稈的光譜能量不同,后期將增加對(duì)不同光譜能量的秸稈進(jìn)行采集,添加SVM算法訓(xùn)練樣本的種類。
目前,采用本試驗(yàn)算法對(duì)秸稈覆蓋率的檢測(cè)結(jié)果已與符合國(guó)家農(nóng)業(yè)秸稈還田的檢測(cè)系統(tǒng)平臺(tái)進(jìn)行復(fù)核,檢測(cè)結(jié)果達(dá)到要求。下一步將在單塊地塊的秸稈覆蓋率檢測(cè)基礎(chǔ)上,對(duì)指定區(qū)域的大面積秸稈覆蓋率進(jìn)行檢測(cè)和估算,以得到更加實(shí)際的效果。