申志超 趙志衡 盧 雷 孫 磊 羅思婕 胡琦淵
(哈爾濱工業(yè)大學(xué)電氣工程及自動(dòng)化學(xué)院1,哈爾濱 150001) (上海安西機(jī)械制造有限公司2,上海 201109)
農(nóng)作物篩選是將表皮顏色異常、存在某種缺陷以及形狀畸變等的不合格農(nóng)作物剔除出來從而留下優(yōu)良的農(nóng)作物[1,2]。在農(nóng)作物篩選難度高、工作量大或效率要求較高的情況下,人工篩選方法便顯現(xiàn)出了劣勢(shì)。因而有必要通過設(shè)計(jì)色選算法來高效、快速地完成農(nóng)作物篩選工作[3-5]。國內(nèi)外對(duì)于色選算法的研究已有多年[6-8]。李玉華等[9]為了提高馬鈴薯芽眼識(shí)別率和可靠性,提出了基于色飽和度三維幾何特征的馬鈴薯芽眼識(shí)別方法,該方法抗干擾能力強(qiáng),芽眼誤識(shí)別率為4.32%。Buzon等[10]研究開發(fā)了一個(gè)自動(dòng)化的、高通量的表型系統(tǒng),在一個(gè)包含許多水稻變種的溫室中進(jìn)行了測(cè)試,結(jié)果表明該系統(tǒng)可以自動(dòng)識(shí)別水稻的植物綠度和植物生物量。以上幾種方法大大提高了對(duì)農(nóng)作物的色選效率,但設(shè)計(jì)的算法均較為復(fù)雜,在色選機(jī)運(yùn)算資源有限的情況下實(shí)現(xiàn)難度較大。
在圖像分類領(lǐng)域,支持向量機(jī)(Support Vector Machine,SVM)得到了廣泛的應(yīng)用[11-14]。張成梁等[15]提出了使用遺傳算法優(yōu)化支持向量機(jī)參數(shù)的機(jī)采籽棉圖像分割、雜質(zhì)識(shí)別方法,最終測(cè)試表明該方法對(duì)雜質(zhì)的有效識(shí)別率為92.6%。周竹等[16]建立了基于最小二乘支持向量機(jī)分類器的霉變板栗識(shí)別模型,克服了板栗近紅外光譜變量多、共線性強(qiáng)等缺點(diǎn),應(yīng)用該模型后板栗的總體平均識(shí)別正確率提高到97.54%。但在實(shí)際農(nóng)作物色選中,由于采集圖像受到光線強(qiáng)弱以及品種差異等因素干擾,直接應(yīng)用以上方法進(jìn)行圖像分類的效果難以達(dá)到預(yù)期。為了解決這一問題,本研究在RGB空間對(duì)圖像進(jìn)行了顏色分割預(yù)處理,并采用軟間隔非線性SVM模型以提高分類準(zhǔn)確率。
本研究以花生圖像的分類為例,構(gòu)建了花生圖像數(shù)據(jù)集,并對(duì)圖像提取方向梯度直方圖(Histogram of Oriented Gradient,HOG)特征,利用線性SVM進(jìn)行分類;然后基于SVM對(duì)花生圖像進(jìn)行了顏色分割預(yù)處理;基于遺傳算法對(duì)軟間隔非線性SVM模型進(jìn)行了參數(shù)尋優(yōu);最后進(jìn)行了綜合優(yōu)化以提高花生圖像的分類準(zhǔn)確率。
本研究基于SVM對(duì)花生表皮是否破損進(jìn)行識(shí)別。以單個(gè)花生為識(shí)別對(duì)象,根據(jù)花生表皮的破損情況將花生分為2類:完好花生和表皮破損花生。在實(shí)際中,還存在花生籽粒破損的情況,由于花生籽粒破損時(shí)其表皮也會(huì)發(fā)生破損,因此本文將花生籽粒破損的情況與花生表皮破損的情況歸為一類。
圖1為色選系統(tǒng)工作原理圖。在實(shí)際篩選過程中,花生會(huì)經(jīng)過多條并行擺放的傳送帶,使得每條傳送帶上的花生稀疏分布而不會(huì)過于密集。同時(shí)傳送帶會(huì)通過抖動(dòng)以使得每個(gè)傳送帶上攜帶的花生均勻散落,盡可能使得花生不會(huì)重疊在一起。在色選系統(tǒng)履帶尾部采用了上下兩組攝像機(jī)同時(shí)拍攝花生的正反面圖像,保證能夠全方位檢測(cè)到破損。為了防止少量花生重疊在一起、或者第一次篩選中破損區(qū)域剛好位于攝像機(jī)死角位置而未能檢測(cè)到破損的情況,色選系統(tǒng)會(huì)對(duì)合格品進(jìn)行二次篩選,在最大程度上保證所有破損的花生能被檢測(cè)出來。
在采集花生圖像時(shí),選用彩色面陣CCD相機(jī)拍攝了多張不同品種、不同光照條件下的多花生圖像,圖2a為其中一張壓縮后的多花生圖像。由于相機(jī)拍攝的花生圖像中含若干個(gè)花生,且圖像中可能含噪聲[17],因此需要進(jìn)行圖像分割。本文通過采用圖像壓縮、二值化、邊緣輪廓檢測(cè)等方法實(shí)現(xiàn)了圖像分割[18-20],如圖2b所示。
圖2 圖像分割前后對(duì)比圖
在對(duì)多幅多花生圖像進(jìn)行圖像分割后,共獲得600張單花生圖像,對(duì)這些花生圖像進(jìn)行圖像增強(qiáng)并將其分辨率統(tǒng)一調(diào)整為64×64像素。然后將這些圖像隨機(jī)分為訓(xùn)練集和測(cè)試集,其中訓(xùn)練集占80%共480張,測(cè)試集占20%共120張,且訓(xùn)練集和測(cè)試集中2類花生各占50%。訓(xùn)練集中部分花生圖像如圖3所示。
圖3 訓(xùn)練集中部分花生圖像
在進(jìn)行圖像分類時(shí),首先要對(duì)圖像提取特征。由于方向梯度直方圖算法提取到的特征可以很好地描述圖像的局部紋理,因此本文提取了花生圖像的HOG特征。然后與線性SVM進(jìn)行結(jié)合,從而構(gòu)建出花生表皮破損識(shí)別算法。
1.2.1 HOG特征提取
HOG算法是通過統(tǒng)計(jì)圖像局部區(qū)域的梯度方向直方圖,并將其表示為特征向量的算法[21]。在檢測(cè)窗口大小為64×64像素、每個(gè)塊包含4個(gè)細(xì)胞、塊滑動(dòng)步長為1個(gè)細(xì)胞大小、細(xì)胞中梯度方向數(shù)為9的條件下,提取到的HOG維數(shù)dim(HOG)與細(xì)胞大小n×n的關(guān)系如式(1)所示。
(1)
分別選擇細(xì)胞大小n×n為:4×4、8×8、16×16、32×32,可獲得的HOG特征維數(shù)為8 100、1 764、324、36。圖4分別展示了對(duì)花生圖像選擇不同細(xì)胞大小提取HOG特征時(shí)的特征生成圖像。
圖4 花生及其HOG特征生成圖像
1.2.2 線性SVM構(gòu)建
由于線性SVM模型相對(duì)非線性SVM模型較為簡單,無需設(shè)置核參數(shù)和懲罰參數(shù),因此本文在構(gòu)建花生破損識(shí)別算法時(shí)首先選擇線性SVM模型。本文在MATLAB R2018b平臺(tái)上,首先對(duì)花生圖像進(jìn)行灰度化,然后將提取到的HOG特征輸入到線性SVM模型中進(jìn)行訓(xùn)練,在訓(xùn)練線性SVM模型時(shí)使用的工具箱為LibSVM。
為了方便選擇適合HOG特征的最佳細(xì)胞大小,同時(shí)加快模型訓(xùn)練速度,本文采用PCA算法對(duì)不同維數(shù)的HOG特征統(tǒng)一降維至36維。再對(duì)特征進(jìn)行歸一化。在訓(xùn)練線性SVM模型時(shí),采用5折交叉驗(yàn)證的方式獲得5折平均準(zhǔn)確率?;赟VM的花生表皮破損識(shí)別算法流程如圖5所示。
圖5 基于SVM的花生表皮破損識(shí)別算法流程
1.2.3 評(píng)價(jià)指標(biāo)
在評(píng)價(jià)分類結(jié)果時(shí)采用的指標(biāo)為準(zhǔn)確率,準(zhǔn)確率定義如式(2)所示。
(2)
在MATLAB R2018b平臺(tái)上對(duì)算法進(jìn)行仿真之后可知,在PCA降維前的HOG特征維數(shù)為324時(shí),對(duì)花生圖像的準(zhǔn)確率即可達(dá)到84%,此后隨著HOG特征維數(shù)的增加,準(zhǔn)確率不再提高。說明以準(zhǔn)確率為評(píng)價(jià)指標(biāo),HOG特征存在最佳的維數(shù),而并非特征維數(shù)越多分類準(zhǔn)確率也越高。
為了進(jìn)一步提高花生表皮破損識(shí)別算法的準(zhǔn)確率,本文進(jìn)行了兩方面的優(yōu)化:基于SVM的顏色分割和基于遺傳算法的參數(shù)尋優(yōu)。
本研究的分類目標(biāo)是根據(jù)花生表皮的破損情況將花生分為完好花生和表皮破損花生2類。由于完好花生的顏色即花生紅衣的顏色與花生表皮破損區(qū)域的顏色差別較大,因此本文將訓(xùn)練集中花生紅衣及花生表皮破損區(qū)域顏色的RGB值分別作為正、負(fù)樣本,利用線性SVM模型來尋找可以區(qū)分這2類顏色的RGB分割平面。得到的顏色分割平面的表達(dá)式如式(3)所示。正樣本、負(fù)樣本及顏色分割平面在RGB顏色空間的分布如圖6所示。
圖6 正樣本、負(fù)樣本及顏色分割平面在RGB顏色空間的分布圖
0.29×r-0.51×g+0.18×b+1.7=0
(3)
由圖6可知,線性SVM模型獲得的分割平面可以很好地將不同花生品種、不同光照條件下獲得的正樣本(花生紅衣區(qū)域的RGB值)與負(fù)樣本(花生表皮破損區(qū)域的RGB值)區(qū)分開來。因此在得到顏色分割平面之后,便可以區(qū)分花生圖像的紅衣區(qū)域顏色與表皮破損區(qū)域顏色。而花生圖像中還包含白色或淺色背景,這種背景像素點(diǎn)的典型特點(diǎn)是:在HSV顏色空間中的S分量值很小。本文認(rèn)為若像素點(diǎn)的S分量值小于0.2,即認(rèn)定為背景像素點(diǎn)。對(duì)一幅彩色花生圖像中每個(gè)像素點(diǎn)的預(yù)處理流程如圖7所示。
圖7 預(yù)處理流程及結(jié)果
對(duì)花生圖像進(jìn)行顏色分割具有十分重要的意義。因?yàn)閭鹘y(tǒng)設(shè)計(jì)的花生圖像分類算法在采集到彩色花生圖像之后,首先對(duì)圖像進(jìn)行灰度化,然后再進(jìn)行特征提取與分類。但是花生紅衣區(qū)域的部分像素點(diǎn)與花生表皮破損區(qū)域的部分像素點(diǎn)得到的灰度值可能相同。例如,當(dāng)利用灰度變換心理學(xué)公式計(jì)算某一像素點(diǎn)得到的灰度值為150時(shí),如式(4)所示。此時(shí),通過該像素點(diǎn)且平面法向量為(0.299,0.587,0.114)的灰度化平面方程如式(5)所示。灰度化平面、正樣本及負(fù)樣本在RGB顏色空間的分布如圖8所示。
0.299×r+0.587×g+0.114×b-150=0
(4)
Gray=0.299×rpixel+0.587×gpixel+0.114×bpixel=150
(5)
由圖8可知,有多個(gè)正樣本、負(fù)樣本均落到了灰度化平面上,說明花生紅衣區(qū)域的部分像素點(diǎn)與花生表皮破損區(qū)域的部分像素點(diǎn)灰度化可能得到相同的灰度值。因此對(duì)花生圖像進(jìn)行灰度化,將會(huì)降低花生紅衣區(qū)域與表皮破損區(qū)域的區(qū)分度,使得基于灰度化設(shè)計(jì)的花生圖像分類算法準(zhǔn)確率下降。
圖8 正樣本、負(fù)樣本及灰度化平面在RGB顏色空間的分布圖
但本研究設(shè)計(jì)的基于SVM的顏色分割預(yù)處理可以很好地解決這一問題。隨著花生品種和光照強(qiáng)度的變化,正負(fù)樣本始終位于分割平面兩側(cè)。因此顏色分割預(yù)處理對(duì)花生品種及光照變化有較強(qiáng)的魯棒性,對(duì)提高花生圖像分類算法準(zhǔn)確率具有重要的意義。
在構(gòu)建花生圖像分類算法時(shí),本文使用的模型是線性SVM。而使用軟間隔非線性SVM模型,通過尋找最優(yōu)參數(shù),可以獲得更高的準(zhǔn)確率[22]。
若超平面wx+b=0,w∈Rn,b∈R可以作為數(shù)據(jù)集的分界面,則對(duì)數(shù)據(jù)集的二分類即等價(jià)于對(duì)含有約束條件的問題進(jìn)行優(yōu)化。軟間隔非線性SVM模型對(duì)應(yīng)的最優(yōu)化問題如式(6)~式(8)所示[23,24]:
(x1,y1),…,(xn,yn),x∈Rn,y∈{+1,-1}
(6)
(7)
(8)
a≤ai≤C,i=1,2,…,n
在使用軟間隔非線性SVM模型時(shí),本文選用的核函數(shù)為徑向基(Radial Basis Function,RBF)核函數(shù),如式(9)所示:
K(xi,xj)=exp(-g‖xi-xj‖2),g>0
(9)
由式(8)~式(9)可知,在訓(xùn)練軟間隔非線性SVM模型時(shí),待優(yōu)化的參數(shù)有懲罰參數(shù)C和核參數(shù)g。本文選擇遺傳算法(Genetic Algorithm,GA)進(jìn)行參數(shù)尋優(yōu),它無需遍歷所有參數(shù)組合即可尋找到最優(yōu)參數(shù)[25,26]。GA-SVM算法流程如圖9所示。
圖9 GA與SVM算法流程
具體步驟:
Step 1:給定C范圍:[0,100],g范圍(0,10]。設(shè)置最大進(jìn)化代數(shù)為50代。
Step 2:將C、g參數(shù)用二進(jìn)制編碼為基因序列,每個(gè)參數(shù)的二進(jìn)制長度為8,并創(chuàng)建10個(gè)初始種群。
Step 3:將10個(gè)當(dāng)代種群分別通過五折交叉驗(yàn)證方式訓(xùn)練SVM模型,把得到的五折平均準(zhǔn)確率作為每個(gè)種群的適應(yīng)度函數(shù)值。
Step 4:判斷進(jìn)化代數(shù)是否達(dá)到50代,若不滿足條件,則進(jìn)入下一步;否則進(jìn)入Step 6。
Step 5:對(duì)當(dāng)代存活的種群進(jìn)行自然選擇、交叉及變異操作。其中自然選擇時(shí)采用輪盤賭方式進(jìn)行,交叉概率為70%,變異概率為4.375%。生成子代種群后,返回Step 3。
Step 6:解碼獲得的最優(yōu)基因序列,得到最優(yōu)C、g參數(shù)。
在RGB空間采用顏色分割對(duì)花生圖像數(shù)據(jù)集進(jìn)行預(yù)處理后,再在訓(xùn)練集中應(yīng)用基于SVM的花生表皮破損識(shí)別算法。與最初基于圖像灰度化構(gòu)建的算法相比,基于顏色分割預(yù)處理后的算法分類準(zhǔn)確率有明顯提升,如圖10所示。當(dāng)PCA降維前的HOG維數(shù)為324維時(shí),識(shí)別算法的分類準(zhǔn)確率最高達(dá)到94.83%。
圖10 顏色分割預(yù)處理前后識(shí)別算法準(zhǔn)確率對(duì)比
這一結(jié)果說明對(duì)彩色圖像進(jìn)行灰度化會(huì)降低花生圖像紅衣區(qū)域與表皮破損區(qū)域的區(qū)分度,使得兩區(qū)域的部分像素值發(fā)生重疊,不利于后續(xù)的圖像特征提取與分類。而采用基于SVM的顏色分割預(yù)處理,在將彩色圖像變?yōu)楹诎讏D像的同時(shí)能夠很好地保持圖像的區(qū)分度,對(duì)分類性能的提升有顯著效果。
采用遺傳算法對(duì)懲罰參數(shù)C和徑向基核核參數(shù)g進(jìn)行參數(shù)尋優(yōu)后,基于SVM的花生表皮破損識(shí)別算法的準(zhǔn)確率有所提高,如圖11所示。
圖11 遺傳算法參數(shù)尋優(yōu)前后的識(shí)別算法準(zhǔn)確率對(duì)比
當(dāng)PCA降維前的HOG維數(shù)為324時(shí),基于SVM的花生表皮破損識(shí)別算法分類準(zhǔn)確率最高達(dá)到91.04%。利用遺傳算法對(duì)其進(jìn)行參數(shù)尋優(yōu),在經(jīng)過50代進(jìn)化后,種群的最佳適應(yīng)度已經(jīng)基本不變,所以此時(shí)已經(jīng)尋找到了最優(yōu)參數(shù)組合。即當(dāng)C=3.61、g=1.96時(shí)基于SVM的花生表皮識(shí)別算法的適應(yīng)度即準(zhǔn)確率最高。
采用軟間隔非線性SVM模型相較于線性SVM模型,由于提高了模型的復(fù)雜度,使SVM模型具有了非線性分類能力,因此可以進(jìn)一步提高花生圖像分類的準(zhǔn)確率,同時(shí)也說明完好花生與表皮破損花生的HOG特征分類是一個(gè)非線性分類問題。
將基于SVM的顏色分割與基于遺傳算法的參數(shù)尋優(yōu)同時(shí)應(yīng)用到本文構(gòu)建的花生表皮破損識(shí)別算法上,在訓(xùn)練集中進(jìn)行五折交叉驗(yàn)證的結(jié)果如圖12所示。
圖12 綜合優(yōu)化前后花生表皮破損識(shí)別算法準(zhǔn)確率對(duì)比
從圖12可知,對(duì)于基于顏色分割與GA-SVM的花生表皮破損識(shí)別算法,當(dāng)PCA降維前的HOG維數(shù)為324維時(shí),分類準(zhǔn)確率最高達(dá)到了96.88%。遺傳算法對(duì)其進(jìn)行參數(shù)尋優(yōu)后可知,當(dāng)C=10.55、g=2時(shí)識(shí)別算法的適應(yīng)度即準(zhǔn)確率最高。
從分類的準(zhǔn)確率這一評(píng)價(jià)指標(biāo)來分析,經(jīng)過綜合優(yōu)化后的花生表皮破損識(shí)別算法的分類性能得到了較多的提升。僅需提取324維HOG特征即可達(dá)到最高的分類準(zhǔn)確率,因此基于顏色分割與GA-SVM的花生表皮破損識(shí)別算法的計(jì)算量較小,算法容易實(shí)現(xiàn)且準(zhǔn)確率很高。
為了檢驗(yàn)?zāi)P驮跍y(cè)試集上的分類效果,本文在CPU為Intel Core i5-4200M、MATLAB版本為R2018b環(huán)境中進(jìn)行測(cè)試。將綜合優(yōu)化后的花生表皮破損識(shí)別算法應(yīng)用測(cè)試集上,其中測(cè)試集共120張花生圖片,正負(fù)樣本各占50%。最終測(cè)得分類準(zhǔn)確率為100%,算法對(duì)測(cè)試集提取HOG特征與進(jìn)行分類預(yù)測(cè)的總時(shí)間為0.672 s,平均每張圖片耗時(shí)5.6 ms。因此綜合優(yōu)化后的分類算法的準(zhǔn)確率和實(shí)時(shí)性均表現(xiàn)良好,同時(shí)測(cè)試集上的仿真結(jié)果表明本文構(gòu)建的分類算法具有一定的泛化能力。
為了檢驗(yàn)?zāi)P蛯?duì)實(shí)際拍攝的多花生圖片的分類效果,本文采用彩色面陣CCD相機(jī)拍攝了多花生圖片,在MATLAB平臺(tái)上對(duì)圖片進(jìn)行圖像分割及SVM模型預(yù)測(cè)。根據(jù)預(yù)測(cè)結(jié)果對(duì)圖片進(jìn)行標(biāo)記,若為表皮破損花生,用方框進(jìn)行標(biāo)記。多花生圖片的分?jǐn)?shù)結(jié)果如圖13所示。本研究構(gòu)建的分類算法對(duì)圖中所有花生均分類正確。因此支持向量機(jī)適合對(duì)花生圖像進(jìn)行二分類。
圖13 多花生圖片的分類結(jié)果
構(gòu)建了不同品種、不同光照條件下的花生圖像數(shù)據(jù)集,對(duì)其提取HOG特征并利用SVM對(duì)花生表皮是否破損進(jìn)行了識(shí)別。采用了基于徑向基核的軟間隔非線性SVM模型,通過使用遺傳算法對(duì)模型參數(shù)進(jìn)行了優(yōu)化,提高了花生表皮破損識(shí)別算法的分類準(zhǔn)確率。
同時(shí)本研究提出了基于SVM的顏色分割預(yù)處理方法,能夠高效分割花生紅衣區(qū)域與花生表皮破損區(qū)域。相比于傳統(tǒng)的直接對(duì)彩色圖像進(jìn)行灰度化處理,本方法對(duì)花生品種及光照變化具有很強(qiáng)的魯棒性,能夠解決灰度變換后得到的黑白圖像相比于彩色圖像區(qū)分度下降的問題,從而改進(jìn)花生表皮破損識(shí)別算法的效果。
將綜合優(yōu)化后的花生表皮破損識(shí)別算法應(yīng)用到本文構(gòu)建的花生圖像訓(xùn)練集上,分類準(zhǔn)確率達(dá)到了96.88%,且僅需324維HOG特征,計(jì)算量較少。識(shí)別算法在測(cè)試集的準(zhǔn)確率達(dá)到了100%,且平均每張花生圖片僅耗時(shí)5.6 ms。綜合優(yōu)化及仿真測(cè)試結(jié)果表明SVM模型在花生圖像篩選領(lǐng)域表現(xiàn)突出,具有一定的泛化能力,且模型的實(shí)時(shí)性較好,具有良好的應(yīng)用前景。