劉 豹,李 翌,李 峰,鮑 煦
(1.江蘇大學(xué) 計算機科學(xué)與通信工程學(xué)院,江蘇 鎮(zhèn)江 212001;2.安利(中國)植物研發(fā)中心有限公司,江蘇 無錫 214000)
農(nóng)產(chǎn)品的產(chǎn)量和質(zhì)量一直以來備受人們關(guān)注[1-2]。溫室環(huán)境穩(wěn)定且濕潤,易滋生各種害蟲,已經(jīng)成為影響溫室農(nóng)作物產(chǎn)量和質(zhì)量的重要因素[3-5]。傳統(tǒng)溫室害蟲防治措施主要為使用大量化學(xué)藥物進行消殺,對環(huán)境造成危害的同時也對人體健康產(chǎn)生了威脅[6]。隨著計算機視覺和模式識別技術(shù)的發(fā)展,害蟲的科學(xué)防治成為可能。目前,圖像處理技術(shù)與機器學(xué)習(xí)算法相結(jié)合成為害蟲識別領(lǐng)域新的發(fā)展方向,并逐漸形成圖像預(yù)處理、圖像分割、特征提取以及分類器構(gòu)建等標(biāo)準(zhǔn)處理流程,現(xiàn)有研究已取得了較為豐碩的成果[7-12]。然而,標(biāo)準(zhǔn)處理流程較為復(fù)雜,例如需要對粘蟲板圖像上數(shù)量眾多的害蟲進行精準(zhǔn)的分割提取、選擇區(qū)分度最高的分類特征等。溫室環(huán)境中采集的粘蟲板圖像包含大量噪聲,對目標(biāo)分割、特征選取以及最終識別的準(zhǔn)確率有較大影響,導(dǎo)致許多方法害蟲識別率不穩(wěn)定,難以應(yīng)用于實際生產(chǎn)環(huán)境中。線性支持向量機作為機器學(xué)習(xí)領(lǐng)域應(yīng)用廣泛的分類算法[13-16],是針對小樣本訓(xùn)練數(shù)據(jù)的最佳實踐,為溫室害蟲識別提供了新的研究方向。
溫室復(fù)雜環(huán)境下拍攝的粘蟲板圖像中害蟲數(shù)量多且互相之間有粘連,因此本文基于圖像分割算法與線性支持向量機構(gòu)建一個溫室害蟲智能識別系統(tǒng)。該系統(tǒng)首先對粘蟲板圖像灰度圖分別進行Prewitt 和Canny 邊緣檢測[17-18],將得到的二值圖融合后再進行全局閥值分割,實現(xiàn)目標(biāo)區(qū)域的精準(zhǔn)分割;然后對分割區(qū)域進行特征提取,選取9 種顏色特征和3 種形態(tài)特征構(gòu)建訓(xùn)練數(shù)據(jù)集[19],完成害蟲分類器的訓(xùn)練;最后以溫室實地采集的粘蟲板圖像作為系統(tǒng)輸入,通過圖像分割方法獲取害蟲圖像,根據(jù)害蟲圖像特點選取分類特征,訓(xùn)練適用于溫室害蟲識別的分類器模型,進行飛虱和薊馬的識別研究,以期為農(nóng)民、植保人員提供一種簡潔、易用、準(zhǔn)確的溫室害蟲種類識別、數(shù)量統(tǒng)計工具,并為溫室害蟲防治提供可靠的數(shù)據(jù)支撐。
害蟲識別系統(tǒng)分為圖像處理、害蟲識別和文件管理3個模塊,具體如圖1 所示。其中,圖像處理模塊主要完成圖像采集的前期處理工作,包括輸入圖像的灰度圖獲取、灰度圖像增強、粘蟲板上害蟲目標(biāo)區(qū)的分割提取等;害蟲識別模塊的主要功能包括訓(xùn)練數(shù)據(jù)集構(gòu)建、訓(xùn)練模型實現(xiàn)害蟲識別并對模型進行測試等;文件管理模塊的主要功能包括粘蟲板圖像文件的實時上傳與下載、害蟲數(shù)量統(tǒng)計、數(shù)據(jù)庫交互以及系統(tǒng)的日常操作等,有助于提高系統(tǒng)的可用性。
Fig.1 Function module of pest identification system圖1 害蟲識別系統(tǒng)功能模塊
1.2.1 目標(biāo)分割方法設(shè)計
不同害蟲之間或多或少會存在一定的特征差異,基于機器視覺實現(xiàn)飛虱和薊馬識別的關(guān)鍵在于提取出這兩種害蟲的分類特征。在溫室環(huán)境中采集的粘蟲板圖像存在大量噪聲,害蟲區(qū)域多、面積小且目標(biāo)區(qū)域之間存在粘連。如果使用傳統(tǒng)的單一目標(biāo)分割算法[20],難以將粘蟲板圖像上所有目標(biāo)區(qū)域精準(zhǔn)分割出來,導(dǎo)致后期識別準(zhǔn)確率低。因此,本文系統(tǒng)分別對輸入粘蟲板圖像進行Prewitt 邊緣檢測和Canny 邊緣檢測,將得到的兩類二值圖進行融合,然后使用全局閥值分割從粘蟲板圖像中精準(zhǔn)提取出全部目標(biāo)區(qū)域。
在溫室環(huán)境下采集的害蟲粘蟲板圖像普遍存在光照不均勻、背景復(fù)雜等問題,因此圖像分割方法必須克服復(fù)雜的背景干擾,準(zhǔn)確分割出害蟲區(qū)域。為此,本文對傳統(tǒng)邊緣檢測方法進行改進,結(jié)合全局閥值分割提出一套新的目標(biāo)分割流程。該系統(tǒng)圖像分割的目的是為分類器的訓(xùn)練提供特征數(shù)據(jù),分割結(jié)果對后期識別準(zhǔn)確率有很大影響,因此首先要確保目標(biāo)分割的準(zhǔn)確性,其次需要在粘蟲板圖像中快速分割所有害蟲區(qū)域。如果對采集的粘蟲板原始高清圖像直接進行分割會大大增加分割算法的計算量,降低算法效率。經(jīng)過測試發(fā)現(xiàn),將像素適當(dāng)降低不影響目標(biāo)分割的準(zhǔn)確率,因此系統(tǒng)將輸入圖像像素統(tǒng)一變換為1 500×2 000,大大提升了單張圖像的處理速度。圖像的害蟲區(qū)域分割僅用于構(gòu)建分類器訓(xùn)練、識別數(shù)據(jù),系統(tǒng)后期可直接調(diào)用訓(xùn)練好的識別模型。
1.2.2 目標(biāo)分割方法實現(xiàn)
本文提出的害蟲目標(biāo)區(qū)域分割算法具體流程如圖2所示。
Fig.2 Process of target segmentation algorithm for slime insect board image圖2 粘蟲板圖像目標(biāo)分割算法流程
現(xiàn)場采集的原始圖像為RGB 顏色空間圖像,將RGB圖像轉(zhuǎn)換為LAB 顏色空間,得到R分量和L分量灰度圖。采用灰度直方圖均衡化分別對R分量和L分量灰度圖進行圖像增強操作,得到對比度更高的灰度圖像。計算公式為:
式中:rk為原圖像灰度級;nk為原圖像灰度級所占像素的個數(shù);原圖的像素為M*N,SK為增強后的圖像灰度級。
對增強后的L分量灰度圖和R分量灰度圖分別使用Prewitt 邊緣檢測和Canny 邊緣檢測完成初步害蟲圖像分割。考慮到粘蟲板害蟲區(qū)域面積小且數(shù)量多,將傳統(tǒng)的邊緣檢測算子擴充為4 個,以增加邊緣檢測算法的靈敏度,將更多目標(biāo)區(qū)域邊緣點檢測出來,提升圖像分割的準(zhǔn)確率。具體計算公式為:
對兩次邊緣檢測得到的二值圖進行融合操作,避免單次目標(biāo)分割造成的目標(biāo)區(qū)域漏檢,增加了系統(tǒng)面對不同圖像輸入時的容錯率,至此得到初步分割結(jié)果。對初步分割結(jié)果二值圖進行腐蝕、開運算等形態(tài)學(xué)處理,優(yōu)化分割結(jié)果。對優(yōu)化后的二值圖進行全局閥值分割,得到最終害蟲圖像分割結(jié)果。
1.3.1 數(shù)據(jù)來源
本文使用的粘蟲板圖像數(shù)據(jù)集采集自無錫安利植物技術(shù)研發(fā)中心的一號溫室大棚(見圖3),大棚中共9 排農(nóng)作物,每排農(nóng)作物放置5 張粘蟲板,放置時間為1 個月,一次可采集90 張粘蟲板圖像。項目進行過程中共前往采集6次,得到原始高清粘蟲板圖像共540張。
Fig.3 Greenhouse圖3 溫室大棚
1.3.2 訓(xùn)練數(shù)據(jù)集構(gòu)建
常用圖像分類特征包括顏色特征、形態(tài)特征、空間特征以及紋理特征[21],通常選取區(qū)分度最高的特征組合構(gòu)建訓(xùn)練數(shù)據(jù)集。研究發(fā)現(xiàn),在飛虱、薊馬的識別過程中,對分類器貢獻率最高的分類特征依次為顏色特征、形態(tài)特征和紋理特征,這也符合直觀感受。觀察圖像分割得到的害蟲圖像,飛虱成蟲一般呈現(xiàn)白色,且體型較小,而薊馬成蟲一般呈現(xiàn)黑色且蟲體較長、體型較大。因此,本文選取9 種顏色特征和3 種形態(tài)特征構(gòu)建訓(xùn)練數(shù)據(jù)集,完成分類器的訓(xùn)練。
顏色特征選取的為害蟲圖像RGB 顏色空間、HSV 顏色空間以及LAB 顏色空間各分量灰度圖的一階矩(共9 個特征參數(shù))。計算方法為:
式中:ρ為所截取的害蟲區(qū)域像素總數(shù);ρi為i點處像素的灰度值。
通過觀察飛虱和薊馬成蟲的形態(tài)區(qū)別,選取目標(biāo)區(qū)域面積、周長和復(fù)雜程度3 種形態(tài)特征。復(fù)雜程度的計算公式為C=P*P/4πA,其中P為目標(biāo)區(qū)域的周長,A 為目標(biāo)區(qū)域的面積。至此,系統(tǒng)完成了分類特征提取與訓(xùn)練數(shù)據(jù)構(gòu)建任務(wù)。
1.3.3 分類器模型構(gòu)建
常見分類器包括支持向量機、決策樹以及貝葉斯分類器。線性支持向量機是使用最為廣泛的分類器,其針對小樣本訓(xùn)練數(shù)據(jù)集有較好的處理能力,且使用相對簡單。前期實驗結(jié)果表明,線性支持向量機分類器對本文訓(xùn)練數(shù)據(jù)集的識別效果優(yōu)于上述其他分類器。
線性支持向量機實現(xiàn)二分類的關(guān)鍵在于在特征空間中尋找最優(yōu)分類超平面,其數(shù)學(xué)表達式見式(5)。最優(yōu)分類超平面要滿足距離平面最近的特征數(shù)據(jù)到分類平面的距離最遠這一限制條件,根據(jù)該條件構(gòu)建二次凸優(yōu)化問題的數(shù)學(xué)模型,目標(biāo)函數(shù)見式(6),限制條件見式(7)。
式中:w、b為待求權(quán)重,x為訓(xùn)練特征數(shù)據(jù)。
本文選取6 張粘蟲板圖像提取特征數(shù)據(jù)進行人工標(biāo)記用于分類器的訓(xùn)練與測試,標(biāo)記步驟為:
您當(dāng)前已標(biāo)記32只昆蟲,請標(biāo)記227號昆蟲:0
您當(dāng)前已標(biāo)記33只昆蟲,請標(biāo)記323號昆蟲:*
標(biāo)記錯誤(僅支持0-9),請重新標(biāo)記!
您當(dāng)前已標(biāo)記33只昆蟲,請標(biāo)記323號昆蟲:1
您當(dāng)前已標(biāo)記34只昆蟲,請標(biāo)記332號昆蟲:0
您當(dāng)前已標(biāo)記35只昆蟲,請標(biāo)記153號昆蟲:0
您當(dāng)前已標(biāo)記36只昆蟲,請標(biāo)記82號昆蟲:q
昆蟲標(biāo)簽保存成功==>1-1-1-A.txt
隨機抽取昆蟲特征保存成功==>1-1-1-A.txt
其中3 張粘蟲板圖像作為訓(xùn)練數(shù)據(jù)集,另外3 張圖像作為測試數(shù)據(jù)集。訓(xùn)練數(shù)據(jù)集中共標(biāo)記害蟲1 211 只,其中飛虱587 只,薊馬624 只,兩類害蟲數(shù)量大致相當(dāng),保證了訓(xùn)練數(shù)據(jù)的平衡性;測試數(shù)據(jù)集中共標(biāo)記害蟲1 463 只,其中飛虱768只,薊馬695只。
采用梯度下降法進行分類器訓(xùn)練,訓(xùn)練好的分類模型在訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集上均有較好表現(xiàn),準(zhǔn)確率均達到96%以上,系統(tǒng)輸出結(jié)果為:
蟲種識別模型:Model4April.pkl寫入成功!
數(shù)據(jù)縮放器:Model4April_scaler.pkl寫入成功!
訓(xùn)練集精度:0.964387
測試集精度:0.961702
后期系統(tǒng)可直接調(diào)用訓(xùn)練好的識別模型完成識別任務(wù),不需要額外的人機交互。
本文系統(tǒng)中的溫室害蟲圖像分割算法使用PyCharm編程實現(xiàn);基于線性支持向量機的害蟲識別模型是在Sklearn 機器學(xué)習(xí)庫的基礎(chǔ)上使用PyCharm 編程實現(xiàn);害蟲智能識別系統(tǒng)使用PyCharm 與Python 編程實現(xiàn)。
將所有輸入圖像大小統(tǒng)一調(diào)整為高1 500 像素,長2 000 像素。導(dǎo)入圖像后,粘蟲板原始圖像存放在相應(yīng)的文件夾內(nèi),系統(tǒng)依次讀取并根據(jù)圖2 流程進行圖像處理,根據(jù)式(1)對導(dǎo)入圖像進行灰度圖增強,獲得增強后的L分量灰度圖通過式(2)進行邊緣檢測完成初步目標(biāo)分割,R分量灰度圖使用Canny 邊緣檢測完成初步目標(biāo)分割。系統(tǒng)對兩類邊緣檢測二值圖進行融合操作,并按照設(shè)定閥值對融合圖像進行全局閥值分割,最終分割結(jié)果依次保存在相關(guān)文件夾內(nèi)。
使用本文算法對采集的粘蟲板圖像進行分割實驗,結(jié)果見圖4??梢钥闯觯撍惴苡行^(qū)分目標(biāo)區(qū)域與粘蟲板背景,而且準(zhǔn)確提取出了薊馬區(qū)域和飛虱區(qū)域。
Fig.4 Results of pest region segmentation圖4 害蟲區(qū)域分割結(jié)果
為進一步驗證系統(tǒng)目標(biāo)分割算法的有效性,選取K 均值聚類分割算法[22]和大津分割算法[23]進行比較實驗,其中L分量灰度圖使用K 均值聚類分割,R分量灰度圖使用大津分割算法,分割結(jié)果如圖5 所示??梢钥闯?,K 均值聚類算法和大津分割算法面對復(fù)雜環(huán)境下拍攝的粘蟲板圖像時均無法準(zhǔn)確、完整地分割出所有害蟲區(qū)域,圖像中復(fù)雜的背景噪聲降低了兩種算法分割結(jié)果的準(zhǔn)確性。
Fig.5 Comparison of different segmentation methods圖5 不同分割方法比較
Fig.6 Pest identification and statistics module圖 6 害蟲識別統(tǒng)計模塊
為了量化比較本文目標(biāo)分割算法與以上兩種比較算法的性能,選取目標(biāo)提取準(zhǔn)確率作為評價指標(biāo)。計算公式為:
式中:EA為目標(biāo)提取準(zhǔn)確率,Ncorrect為正確提取害蟲的數(shù)量,N為粘蟲板上害蟲的實際數(shù)量。
計算結(jié)果表明,K 均值聚類、大津分割算法、本文算法的目標(biāo)提取準(zhǔn)確率分別為83.2%、67.6%和96.3%,此結(jié)果為4 張粘蟲板圖像目標(biāo)區(qū)域提取準(zhǔn)確率的平均值。分割結(jié)果表明,本文算法可對復(fù)雜環(huán)境下拍攝的粘蟲板圖像實現(xiàn)精準(zhǔn)目標(biāo)分割,為后續(xù)特征提取、模型訓(xùn)練提供準(zhǔn)確數(shù)據(jù)源。
圖6 為害蟲識別統(tǒng)計模塊,該模塊可實現(xiàn)一鍵自動化圖片導(dǎo)入、圖像增強、目標(biāo)分割、模型識別以及數(shù)據(jù)的前端展示。數(shù)據(jù)展示面板顯示了輸入系統(tǒng)的所有粘蟲板圖像中每一類害蟲的數(shù)量。
構(gòu)建訓(xùn)練數(shù)據(jù)集后,系統(tǒng)采用梯度下降法對害蟲分類器進行訓(xùn)練。準(zhǔn)確率和精準(zhǔn)度是評價分類器訓(xùn)練效果的重要指標(biāo),其中準(zhǔn)確率為所有預(yù)測正確的樣本占總樣本的比例,精準(zhǔn)度為少數(shù)類的預(yù)測準(zhǔn)確率。
本文系統(tǒng)識別的害蟲為飛虱和薊馬,不存在少數(shù)類,因此采用準(zhǔn)確率作為評價指標(biāo)。經(jīng)統(tǒng)計,該系統(tǒng)分類器訓(xùn)練集和測試集的準(zhǔn)確率分別為96.4%和96.1%,訓(xùn)練結(jié)果比較理想。
模型訓(xùn)練完成后,采用測試數(shù)據(jù)集進行測試。為直觀展示害蟲分類器的識別效果,本文采用混淆矩陣的評價方式。由圖7 可知,害蟲分類器正確識別了733 個飛虱樣本,673 個薊馬樣本。其中35 個飛虱樣本被錯誤識別為薊馬,占全部測試數(shù)據(jù)集1 463 個樣本的2%;22 個薊馬樣本被識別為飛虱,占全部測試樣本的1.5%。經(jīng)計算,該系統(tǒng)害蟲識別分類器的準(zhǔn)確率為96.1%,其中飛虱的識別準(zhǔn)確率為95.4%,薊馬的識別準(zhǔn)確率為96.8%。從測試結(jié)果來看,該系統(tǒng)可準(zhǔn)確區(qū)分粘蟲板上的飛虱和薊馬,準(zhǔn)確率符合要求。
Fig.7 Confusion matrix圖7 混淆矩陣
針對溫室采集的粘蟲板圖像中含有燈光反射、不均勻光照等復(fù)雜噪聲的問題,本文提出一套新的目標(biāo)分割流程,實現(xiàn)了圖像目標(biāo)區(qū)域的精準(zhǔn)分割;同時基于線性支持向量機,以害蟲圖像作為輸入,實現(xiàn)了飛虱和薊馬兩種害蟲的準(zhǔn)確識別。由于受訓(xùn)練數(shù)據(jù)的限制,本文分類識別的害蟲只有飛虱和薊馬,導(dǎo)致應(yīng)用受到很大限制。在后續(xù)研究中可以構(gòu)建其他常見害蟲的特征數(shù)據(jù)進行模型訓(xùn)練,以進一步提升系統(tǒng)的實用價值。