劉闐宇,馮 全,楊 森
(甘肅農業(yè)大學機電工程學院,蘭州 730070)
近年來,我國釀酒葡萄產量居世界前列,葡萄酒需求增加。目前,識別葡萄病害多采用專家人工鑒定,人員素質要求高,無法實現(xiàn)病害自動化監(jiān)測與處理。葉片病害自動檢測對葡萄生長評估、病害危害程度評價等工作有重要意義。為此,本文提出一種基于卷積神經網絡葡萄病害檢測方法,首先對監(jiān)控視頻圖像中葡萄葉片檢測定位,在葉片有效區(qū)域準確檢測病害位置,可為后續(xù)病害處理措施提供技術支持(如檢測到病害區(qū)域可自動噴灑農藥等)。
基于機器視覺目標檢測算法,從滑動窗口類型目標檢測算法[1]到基于卷積神經網絡目標檢測算法[2-4]在檢測精度上有顯著提升?;跈C器視覺目標檢測方法應用廣泛,如人臉檢測[5-6]、行人檢測[7-8]、車輛檢測[9-10]等。將機器視覺目標檢測方法應用于葉片病害自動檢測,可實現(xiàn)后續(xù)病害處理工作自動化,提高葡萄產量、節(jié)約人力。
楊森等提出改進后可變部件模型(Deformable Parts Model,DPM)葡萄葉片檢測算法,可消除光照變化對葉片檢測結果影響,但對葉片間相互遮擋情況檢測效果較差。對葉片表面病害區(qū)域,不同病害呈現(xiàn)圖像特征不同,成片狀或點狀;同一病害不同發(fā)病階段特征變化,逐漸從點到片。在發(fā)病初期,病斑較小,在整幅圖像中所占面積較小,不易檢測。采用滑動窗口提取特征檢測方法對于病害區(qū)域檢測難度大。此外,現(xiàn)有基于機器視覺病害分析方法以病害識別為主,張建華等提出一種基于最優(yōu)二叉樹支持向量機(Support vector machine,SVM)蜜柚葉部病害識別方法可對黃斑病、炭疽病、瘡痂病、煤煙病等4種蜜柚葉部病害分類識別[11-12];王守志等提出基于核K-均值聚類算法植物葉部病害識別,對采集的玉米病害圖像用矢量中值濾波法去除噪聲,提取玉米葉部病害的紋理特征和顏色特征為特征向量,把輸入空間的樣本映射到高維特征空間作K-均值聚類及植物病害識別[13]。病害識別不同于病害檢測,無法自動從圖像中獲取病害區(qū)域,需要人工提取病害區(qū)域后識別[14-15]。
本文提出適用于復雜背景下葡萄葉片病害檢測方法,可準確定位葉片中病害區(qū)域。葉片中病害區(qū)域具有不規(guī)則、小尺寸特點,實際采集葉片圖像,背景部分(例如雜草、地面)與葉片表面病害區(qū)域相似,直接在原始圖像中病害檢測可造成誤檢,精度降低。褐斑病樣例見圖1,其中藍色和紅色框分別是錯誤和正確檢測結果。
圖1 病害檢測結果Fig.1 Diseases detection
本文檢測圖像中葉片區(qū)域為病害。由于葉片形狀較固定,圖像中占面積較大,相對病害斑點易檢測,可有效減少背景干擾。葉片形態(tài)多變,相互間存在遮擋,自然環(huán)境干擾(如風力影響)可使葡萄葉片形態(tài)發(fā)生變化,不同姿態(tài)葉片可影響檢測精度。
本文提出在基于卷積神經網絡區(qū)域建議算法(Faster-Region Convolutional Neural Network,Faster-RCNN)檢測結構基礎上,改進檢測結構中區(qū)域建議網絡[4]。通過對區(qū)域建議網絡(Region Proposal Network,RPN)[4]生成建議區(qū)域(Proposals)[16]多角度旋轉,選出最優(yōu)建議區(qū)域,提高建議區(qū)域質量。相較原Faster-RCNN檢測算法,對自然條件下多姿態(tài)葉片檢測精度更高。獲得葉片具體位置和區(qū)域后,本文在葉片上采用兩種方法檢測病害,檢測框架如圖2所示。
圖2 病害檢測框架Fig.2 Network architecture of diseases detection
試驗樣本圖像采集于甘肅農業(yè)大學釀酒葡萄試驗田及甘肅省天水市多個葡萄種植園,采集對象為自然條件下生長葉片,采集時間為農歷5~6月中旬,圖像采集過程中,不同角度拍攝取樣實際生長葉片,拍攝距離為距葉片1~4 m,綜合考慮天氣、光照變化影響,分別在光照充足、陰影和光照不足(陰天)3類情況下采集試驗樣本。3類試驗樣本中,按以下條件分類:①圖像中葉片間無互相遮擋,有完整葉片形狀;②圖像中葉片生長密集,存在相互遮擋;③自然條件下形態(tài)變化葉片,多為風力影響導致葉片形變、旋轉。采集圖像共6 000張,分為訓練集和測試集。其中,訓練集包含3 841幅圖像,分為葉片訓練集(3 500幅圖像)和病害訓練集(341幅圖像);測試集共2 159幅圖像,分為葉片測試集(1 800幅圖像)和病害測試集(359幅圖像)。病害類型包括下面幾種典型葡萄病害:褐斑病、白粉病、灰霉病、霜霉病、黑痘病和炭疽病,6種病害樣本如圖3所示。
圖3 葡萄病害葉片F(xiàn)ig.3 Example of leaf diseases
2.1.1 葉片檢測結構
在目標檢測任務中,基于深度學習目標檢測算法比傳統(tǒng)檢測算法在常見對象檢測方面精度高。其中Faster-RCNN是典型算法,引入RPN網絡,結合基礎區(qū)域建議卷積神經網絡(Fast-Region Convolutional Neural Network,Fast-RCNN)檢測結構,將整個檢測過程統(tǒng)一在1個網絡內,實現(xiàn)到端訓練[3]。本文發(fā)現(xiàn),自然生長葡萄葉片角度變化較大時,普通Faster-RCNN對葉片檢測效果下降。
本文使用Faster-RCNN作為基本檢測結構,葡萄葉片形態(tài)特點優(yōu)化檢測算法,檢測算法更適于葡萄葉片檢測,檢測精度提高。在葉片檢測過程中,F(xiàn)aster-RCNN利用卷積方式實現(xiàn)建議區(qū)域提取,在最后一層卷積特征圖上,加入RPN網絡結構提取候選區(qū),經候選區(qū)域(Region Of Interest,ROI)池化層將建議區(qū)域統(tǒng)一到同一尺度下,目標分類、邊框位置與尺寸預測[3],葉片檢測結構見圖4。
圖4 葉片檢測結構Fig.4 Network architecture of leaves detection
2.1.2 葉片檢測方法優(yōu)化
檢測結構中RPN區(qū)域建議網絡實現(xiàn)建議區(qū)域提取。原始RPN錨點采用三種尺度長寬比例(0.5、1.0、1.5)[4],為適應多類目標檢測(PASCALVOC數據集中為20類)[17]。但對特定對象,不合適錨點長寬比可降低檢測精度,考慮葡萄葉片形狀特點,需更緊致邊界框,本文將原始RPN錨點窗口優(yōu)化。自然條件下葉片姿態(tài)不同,同一地點不同時刻拍攝圖像,葉片角度可發(fā)生改變,影響檢測結果。為解決此問題,制作訓練集時對葉片圖像分類,其呈角度分4類:①葉片方向大體端正為第1類;②大體葉片大體呈45°或-45°為第2類;③葉片大體呈90°為第3類;④葉片側翻為第4類。本方法待檢測目標類為4種葉片類。分別對每一類葉片人工標定邊界框長寬聚類,得到錨點窗口4種優(yōu)化長寬比,分別是:第1類1∶0.86,第2類1∶1,第3類:1.16∶1,第四類:1.75∶1。此外,設置3種檢測尺度(64、128、256),以適應圖像中葉片尺寸(拍攝距離不同,同一張葉片在圖像中尺寸不同),每個錨點上合計12個檢測窗口。
在葉片圖像訓練過程中,輸入圖像經過Visual Geometry Group(VGG-16)網絡獲得特征圖[18],VGG-16為牛津視覺幾何組開發(fā)卷積神經網絡結構,在深度學習領域中應用廣泛,該網絡結構共16層,在最后一層特征圖上(即conv5_3,深度512維)[18],RPN網絡3×3滑動窗口掃描,找到窗口中心點在原圖對應點為錨點,以錨點為中心12個檢測窗口任一窗口與預先標定邊界框比較重疊區(qū)域,如果某個錨點上交疊率IOU(intersection over union,IOU)>0.7時[16],即一個目標正樣本(葉片區(qū)域);當IOU<0.3時,則為負樣本(背景區(qū)域)。當滑動窗口對整張?zhí)卣鲌D掃描完后,獲一幅圖像目標正樣本,對特征圖上目標正、負樣本位置窗口(3×3×512)經卷積操作,生成512維特征向量。最后對所有特征向量按照上述4類Faster RCNN損失函數分類和回歸訓練,可實現(xiàn)4類葉片分類和邊界框精細預測。訓練過程如下:
①用ImageNet-pre-trained VGG-16 net模型初始化[19],獨立訓練RPN網絡。
②以RPN網絡產生建議區(qū)域作為輸入,仍用ImageNet模型初始化Faster-RCNN,并訓練該網絡。此時Faster-RCNN網絡與RPN網絡并不共享參數(訓練前)。
③使用②訓練出Faster-RCNN初始化新RPN網絡,但在訓練時僅更新RPN網絡特有網絡層。訓練后,兩個網絡共享所有公共卷積層。
④固定2個網絡共享網絡層,加入Faster-RCNN特有網絡層,形成統(tǒng)一網絡,完成訓練。
在圖5中,圖5a為原始Faster RCNN算法檢測,紅框表示算法檢測到葉片,藍框表示算法未檢測到葉片。圖5b為本文改進后葉片檢測算法,可提高角度發(fā)生變化及有遮擋葉片檢測效果。
圖5 兩種葉片檢測方法檢測結果Fig.5 Example of leaf detection with two methods
檢測葉片后在葉片區(qū)域檢測病害,可縮小待檢測病害區(qū)域提升病害檢測準確率。本文病害檢測器用Faster-RCNN框架,檢測病害時采用以下兩種方法:
方法1:在葉片檢測結果中將各葉片區(qū)域提取,分別輸入病害檢測器中。由于將單個葉片作為獨立圖像輸入檢測器,可放大葉片及病害區(qū)域尺寸,利于提高病害檢測精度高,計算復雜度較高。方法2:在檢測葉片位置構建葉片掩膜(掩模見圖6),將整幅掩模圖像輸入病害檢測器。由于不放大葉片區(qū)域,病害區(qū)域尺寸較小,病害特征不顯著,檢測精度稍低(相比方法1)。但由于一幅圖像僅需一次病害檢測,速度較方法1提升。
在病害檢測過程中,將葉片有效區(qū)域(葉片掩?;騿蝹€已檢測到葉片)作為輸入圖像,網絡檢測到病害候選區(qū)后,與葉片檢測一樣,在VGG16卷積網絡最后一層特征圖上生成512維特征向量,將其輸入全連接層中分類(病害或非病害)。對病害區(qū)域分類采用Softmax分類器[20],將多個標量映射為一個概率分布,對于葉片病害訓練數據集
圖6 掩模示例Fig.6 Exampleof leaves mask
為測試葉片檢測算法有效性,將葉片作算法試驗,對比3種目標檢測算法(原Faster-RCNN、R-CNN和文獻[21]葉片檢測算法)。
操作系統(tǒng)為Windows 7操作系統(tǒng),在Matlab R2015b下編程實現(xiàn)本算法;硬件平臺為:CPU:Intel Xeon E5-2683v3;GPU:NVIDIA TESLA K20。自然條件多變因素,測試樣本分為光照充足(晴天)、陰影條件和光照不足(陰天)三大類,測試數據不包含訓練集,在測試集中:光照充足)圖片為700張;陰影環(huán)境圖片為500張;光照不足圖片為600張。
針對葉片檢測,用PASCAL目標檢測協(xié)議評價檢測精度,即當交疊率IOU>0.5時,認為檢測器檢測到目標。通過描繪各類測試數據集上不同算法精度(Precision)與召回率(Recall)曲線說明。其中,精度與召回率定義為:
式(3~4)中,TP(True Positive)為真陽性,檢測算法正確檢測到葉片數量。FP(False Positive)為假陽性,檢測算法檢測錯誤葉片數量;FN(False Nega?tive)為假陰性,未檢測到葉片數量。各算法葉片檢測精度與召回率(Precision-Recall)曲線如圖7所示,葉片檢測平均精度值(Mean Average Precision,mAP)如表1所示[16]。
圖7 各算法葉片檢測P-R曲線Fig.7 P-R curve in different detection algorithm
表1 各算法葉片檢測平均精度值Table 1 Average mAPof each algorithm for leaf detection (%)
試驗結果表明,算法對光照變化不同適應性不同,當光照不足與光照陰影條件下,各算法檢測精度均下降,其中葉片遮擋產生陰影條件下,各檢測算法精度下降最快,本文檢測算法優(yōu)于3種對比算法;特定光照條件下,無葉片遮擋情況下各算法檢測結果較好。葉片遮擋情況下,隨召回率增大,傳統(tǒng)算法(DPM)葉片檢測精度下降較快,本文改進后卷積神經網絡區(qū)域建議算法產生更高質量‘葉片建議區(qū)域’,檢測精度更高,由圖7可知,本文算法精度顯著高于其他3種對比算法,多種檢測條件下,本文算法、Faster-RCNN、R-CNN、DPM4種葉片檢測算法平均mAP分別為75.52%、70.29%、63.62%、55.12%。
由圖8可知,A1、A2、A3分別表示正常光照條件下(晴天),無葉片遮擋、有葉片遮擋、有一定旋轉角度葉片檢測實例;B1、B2、B3分別表示光照不足條件下(陰天),無葉片遮擋、有葉片遮擋、有一定旋轉角度葉片檢測例子;C1、C2分別表示陰影條件下,葉片遮擋、有一定旋轉角度葉片檢測。
圖8 本文算法葉片檢測結果Fig.8 Example of our algorithm for leaves detection
本文在葉片檢測基礎上檢測病害。檢測方法為2.2病害檢測中介紹兩種方法(掩模法檢測與每個葉片區(qū)域病害檢測)。通過數據統(tǒng)計分析,對比在原始圖像中病害檢測方法與本文方法,對6種病害(褐斑病、白粉病、灰霉病、霜霉病、黑痘病和炭疽病)作數據分析,在樣本測試集中,褐斑病葉片圖像共70張;白粉病共60張;灰霉病共55張;霜霉病共54張;黑痘病葉片圖像共63張;炭疽病共57張,病害圖像共計359張。各方法病害檢測結果評價準則與葉片檢測相同,仍然采用精度與召回率關系曲線,評價病害檢測方法性能。
由圖9可知,本文兩種方法均優(yōu)于后者,但方法一效果更好。
分別統(tǒng)計6種病害檢測分別數據,各病害檢測方法6種病害檢測精度召回率曲線見圖10,各病害檢測方法平均精度值見表2,方法1、2及原圖檢測平均檢測時間分別為1.416、0.352和0.196 s。
圖9 6種病害樣本總體檢測結果Fig.9 Result of six type of diseasesdetection
圖10 各方法病害檢測結果Fig.10 Result of each method for diseases detection
表2 各病害檢測方法平均精度值Table 2 Average mAPof each method for diseases detection (%)
由表2可知,本文提出病害檢測方法1對各種葡萄病害檢測效果良好。其中,方法1對褐斑病與白粉病mAP>70%,分別為72.64%與75.52%,炭疽病、霜霉病、灰霉病和黑痘病mAP均超過60%,分別為62.14%、65.19%、60.56%、62.78%,6種病害檢測平均值為66.47%;病害檢測方法2(掩模法)對各種病害檢測精度低于方法1,主要原因是掩模有效區(qū)域(檢測到葉片區(qū)域)與方法1相比減小,檢測過程中產生病害建議區(qū)域質量低于方法1,檢測精度下降。方法2對病害檢測效果最好為白粉病,mAP(%)達64.01%,其余5種病害(葡萄炭疽病、葡萄霜霉病、葡萄灰霉病、葡萄黑痘病、葡萄褐斑?。z測mAP分別為40.73%、51.53%、38.34%、54.15%、59.82%,平均值為51.43%,方法2對病害檢測精度下降,但檢測時間縮短,效率提高;在原圖直接病害檢測方法檢測精度最低,mAP平均值為34.04%,原圖中無效區(qū)域(葉片外區(qū)域)較多,在檢測器對病害建議區(qū)域打分時,部分背景區(qū)域在卷積特征上與病害區(qū)域相似,即檢測器誤將背景區(qū)域當作病害,此種方法檢測時間最短,但精度最低。
病害檢測結果如圖11~12所示。其中,A1、A2為各方法對葡萄白粉病檢測結果;B1、B2為各方法對葡萄褐斑病檢測結果;C1、C2為各方法對葡萄黑痘病檢測結果;D1、D2為各方法對葡萄灰霉病檢測結果;E1、E2為各方法對葡萄霜霉病檢測結果;F1、F2為各方法對葡萄炭疽病檢測結果。
圖11 方法1病害檢測圖Fig.11 Example of disease detection with method 1
圖12 方法2病害檢測圖Fig.12 Example of disease detection with method 2
本文以葡萄葉片病害檢測為研究對象,對自然條件下采集圖像,基于卷積神經網絡算法檢測葡萄病害。首先用多角度建議區(qū)域Faster-RCNN在圖像中檢測葡萄葉片,再檢測葉片區(qū)域病害。結果表明,葉片檢測算法精度顯著高于三種對比檢測算法,尤其對葉片旋轉具有較高魯棒性,對自然條件下葡萄葉片檢測適應性更好。在葉片檢測基礎上提出兩種不同病害檢測方案,檢測常見六種葡萄病害,其中方法1對葉片病害檢測精度更高。在實際應用中,當硬件條件允許情況下,方法1檢測葉片病害效果更好。
[參考文獻]
[1] Felzenszwalb P,Girshick R,Mcallester D,et al.Visual object detection with deformable part models[C].Florida:Computer Vision and Pattern Recognition.IEEE,2010.
[2] Girshick R,Donahue J,Darrell T,et al.Rich feature hierarchies for accurate object detection and semantic segmentation[C].Columbia:Proceedings of the IEEE conference on computer vision and pattern recognition,2014.
[3] Girshick R.Fast R-CNN[C].IEEE International Conference on Computer Vision.IEEEComputer Society,2015:1440-1448.
[4] Ren S,He K,Girshick R,et al.Faster R-CNN:Towards Real-Time Object Detection with Region Proposal Networks[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2017,39(6):1137-1149.
[5] Qin H,Yan J,Li X,et al.Joint training of cascaded cnn for face detection[C].Lasvegas:Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition.2016.
[6] Rowley H,Baluja S,Kanade T.Neural network-based face detec?tion[J].IEEETransactionson Pattern Analysisand Machine Intel?ligence,1998,20(1):23-38.
[7] 王斌,劉洋,唐勝,等.融合多模型和幀間信息行人檢測算法[J].計算機輔助設計與圖形學學報,2017,29(3):444-449.
[8] 芮挺,費建超,周遊,等.基于深度卷積神經網絡行人檢測[J].計算機工程與應用,2016,52(13):162-166.
[9] Chen X,Xiang S,Liu C L,et al.Vehicle detection in satellite images by hybrid deep convolutional neural networks[J].IEEE Geoscience and Remote Sensing Letters,2017,11(10):1797-1801.
[10] 曹詩雨,劉躍虎,李辛昭.基于Fast R-CNN車輛目標檢測[J].中國圖象圖形學報,2017,22(5):671-677.
[11] 張建華,孔繁濤,李哲敏,等.基于最優(yōu)二叉樹支持向量機蜜柚葉部病害識別[J].農業(yè)工程學報,2014,30(19):222-231.
[12] Adankon M M,Cheriet M.Support vector machine[C].Shenyang:Third International Conference on Intelligent Networks and Intel?ligent Systems.IEEEComputer Society,2010.
[13] 王守志,何東健,李文,等.基于核K-均值聚類算法植物葉部病害識別[J].農業(yè)機械學報,2009,40(3):152-155.
[14] 周愛武,于亞飛.K-Means聚類算法研究[J].計算機技術與發(fā)展,2011,21(2):62-65.
[15] 李永峰,丁潤濤,國澄明.一種彩色圖像濾波改進矢量中值濾波算法[J].數據采集與處理,2003,18(3):361-364.
[16]Hosang J,Dollar P,Dollar P,et al.What makesfor effectivedetec?tion proposals?[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2016,38(4):814-830.
[17] Everingham M,Gool L V,Williams CK I,et al.The pascal visual object classes(VOC)challenge[J].International Journal of Com?puter Vision,2010,88(2):303-338.
[18] Liu B,Zhang X,Gao Z,et al.Weld defect images classification with VGG16-based neural network[C].Shanghai:International Forum on Digital TV and Wireless Multimedia Communications.Springer,Singapore,2017.
[19] Krizhevsky A,Sutskever I,Hinton G E.Imagenet classification with deep convolutional neural networks[C].Nevada:Advances in neural information processingsystems.2012:1097-1105.
[20]Memisevic R,Zach C,Hinton G,et al.Gated softmax classification[C].Guangzhou:International Conference on Neural Information Processing Systems.Curran Associates Inc.2010.
[21] 楊森,馮全,王書志,等.基于改進可變形部件模型與判別模型葡萄葉片檢測與跟蹤[J].農業(yè)工程學報,2017,33(6):140-147.