孔德鋒, 劉 聰
(湖北工業(yè)大學, 湖北 武漢 430070)
番茄是消耗量較大的蔬菜之一。防治番茄病害的關鍵是認清病害的種類,根據(jù)其發(fā)生流行規(guī)律,采取相應的管理措施,消除利于病害發(fā)生發(fā)展的環(huán)境條件,并根據(jù)不同的發(fā)病情況,對癥采取相應的措施,及時控制病害的發(fā)生[1]。但番茄病害初期葉片上的細微變化,很難憑借經(jīng)驗用肉眼識別。
2017年斯坦福大學研究團隊運用深度神經(jīng)卷積網(wǎng)絡CNN[2]對129 450張皮膚圖片進行訓練,訓練完成后對該網(wǎng)絡進行驗證的結(jié)果顯示,其可較好地識別健康皮膚和患癌皮膚。魏楊等[3]運用深度神經(jīng)網(wǎng)絡能夠有效地提升農(nóng)業(yè)害蟲類別判斷的準確度,精準定位農(nóng)業(yè)害蟲。
此研究對深度學習方法的運用為番茄病害檢測提供了啟發(fā)。隨著目標檢測算法研究的不斷深入,F(xiàn)aster R-CNN和單次多框目標檢測器(Single Shot MultiBox Detector,SSD)在目標檢測上應用取得很好效果,但在小目標檢測方面仍存在誤檢和漏檢現(xiàn)象。針對此問題,李鳳菊等[4]提出基于SSD算法融合上下文語義信息的反卷積網(wǎng)絡,此網(wǎng)絡在小目標檢測上有較好的表現(xiàn)。江鵬等[5]使用SSD算法對蘋果褐斑病、花葉病及鐵銹病等3種常見葉片病害進行識別檢測,其綜合檢測精確度達79.63%。
在番茄病害智能檢測問題上,對小目標仍然出現(xiàn)漏檢和誤檢的情況。鑒于此,在反卷單發(fā)多框檢測(Deconvolutional Single Shot Detector,DSSD)算法基礎上,采用K-means算法和手肘法對預選框?qū)捀弑戎匦戮垲?,選出更合適真實目標框的預選框?qū)捀弑染S度來提高檢測精度;在此基礎上以AlexNet[6]、Inception-V3[7]和ResNet101[8]不同算法為基礎網(wǎng)絡模型進行遷移學習,選取最佳遷移學習算法的基礎網(wǎng)絡模型,旨在解決小數(shù)據(jù)集造成的檢測精度不高和收斂速度慢等問題,為提高番茄病害預測預報的時效性和檢測精確度提供依據(jù)。
自然狀態(tài)下番茄早疫病病葉及健康葉圖片,采用VIVO Y81S手機在湖北省京山縣修遠蔬菜育苗專業(yè)合作社自然環(huán)境下拍攝,圖像拍攝角度與距離隨機。共拍攝1 436張圖片,其中,病葉圖片包括番茄早疫病發(fā)病初期到發(fā)病晚期不同階段的病害葉片,包含大小不一、單個或多個的目標(圖1)。
1.2.1 網(wǎng)絡結(jié)構(gòu) DSSD網(wǎng)絡結(jié)構(gòu)(圖2)的基礎網(wǎng)絡為ResNet101,網(wǎng)絡中conv3_x層為ResNet101中的卷積層。在conv5_x區(qū)塊后面增加了5層逐漸減小的卷積層,其與conv3_x共同組成為DSSD網(wǎng)絡的特征層。后面增加反卷積模塊用于融合先前的特征層和反卷積層的上下文信息;同時,DSSD設計了新的預測模塊將多尺度特征圖導入由殘差單元組成的預測模塊中進行預測。
1.2.2 DSSD運算過程 DSSD網(wǎng)絡目標檢測是一個回歸分類問題,其損失函數(shù)表達式如下:
式中,N是先驗框的正樣本數(shù)量;Lconf(x,c)為前景的分類誤差平方和(SSE,sum of the squared errors)與背景的分類誤差平方和的和;c為類別置信度;a為權重,設置為1;Lloc(x,l,g)為定位損失,是預測框l與實際目標框g間的Smooth L1損失;l=(lx,ly,lw,lh),(x,y)為預測邊框的中心位置,w、h為預測邊框的寬和高;g=(gx,gy,gw,gh),(x,y)為真實目標的中心位置,w、h為真實邊框的寬和高。
番茄葉片病害的檢測包括6個步驟:第一,先驗框匹配真實目標框;第二,匹配完成后將真實目標的位置信息映射到先驗框上;第三,對各個特征圖中的正負樣本進行預測得到預測框的置信度和位置信息;第四, 預測框的置信度和位置信息再與先前得到的先驗框進行損失計算;第五,依據(jù)類別置信度確定番茄葉片病害的類別且剔除背景;第六, 運用NMS算法[9]隔離重疊度較大的預測框。
1.3.1 預選框?qū)捀弑鹊倪x取 由DSSD的目標檢測原理知道,預選框越多匹配到真實目標的概率越大,從而提高檢測精度,但在預測及進行NMS過程中也增加了計算量?;诖耍x取合適的寬高比尤其重要。通過引進K-means聚類算法獲取番茄葉片病變區(qū)域?qū)捀弑鹊膋個聚類中心,并且利用手肘法尋找聚類的最佳簇數(shù)。手肘法的核心指標是誤差平方和(SSE),最佳k值出現(xiàn)在SSE值下降最明顯的位置(圖3)。
DSSD生成預測框的原始方法是把固定數(shù)值作為寬高比,即使在訓練過程中不斷調(diào)整預選框的寬高比,最終得到預選框的維度也不能吻合檢測物體的實際寬高。因此,依據(jù)YOLOv2生成預測框的方法,使用K-means聚類,計算出更精確的預選框?qū)?W)高(H)比。在原算法中,人為設定6種預選框{1,2,3,1/2,1/3,1},通過聚類試驗選取k=5,從標簽文件中獲取番茄早疫病病害區(qū)域的寬高比,然后以獲取到的寬高比數(shù)據(jù)進行目標框維度聚類試驗。
式中,md表示降采樣倍率,ωr表示預選框的寬度,ωk表示輸入圖像的寬度,hr表示預選框高度,hk表示輸入圖像的高度。
1.3.2 網(wǎng)絡參數(shù)設置與測試樣本制作
1) 測試樣本制作。為了直觀地看到用K聚類重新選取預選框后在小目標上檢測能力更強,選取有代表性的樣本圖片進行對比,定義分辨率小于50×50像素的障礙物為小目標,在測試樣本中標注物體共計954個,屬于小目標的物體占比為75%。
2) 番茄葉片病害檢測網(wǎng)絡參數(shù)設置。為提高算法檢測的正確率,在不同的訓練階段需調(diào)節(jié)學習率讓模型收斂更快。在訓練的初始階段,隨機權重與最優(yōu)值差距較大,設置較大學習率。隨著迭代次數(shù)的增加差距縮小,不斷下調(diào)學習率,使神經(jīng)網(wǎng)絡的權重更精細。設置訓練模型學習率初始值0.001,迭代3 000次后更改為0.000 1,迭代10 000次后更改為0.000 01。采用隨機梯度下降算法優(yōu)化,訓練的batch_size大小為64。對于DSSD網(wǎng)絡的訓練,設置迭代次數(shù)為100 000,loss為0.25。訓練結(jié)束后將測試集的圖像輸入模型進行測試,選取0.5作為置信度閾值,將K聚類方法選取先驗框維度的DSSD算法與原默認先驗框的DSSD算法目標檢測結(jié)果準確率(mAP)比較,以此驗證新方法在檢測目標物上有更高的精確度。
1.3.3 遷移學習 通常傳統(tǒng)機器學習和深度學習算法在設計上獨立工作,其訓練用于解決特定的問題。一旦特征空間的分布發(fā)生變化,就需要從頭開始重新構(gòu)建模型。遷移學習[10]具有可以合理利用現(xiàn)有網(wǎng)絡的優(yōu)點,當神經(jīng)網(wǎng)絡非常大型時,采用遷移學習通??晒灿们懊鎺讓拥挠柧?,解決此類相互隔離的學習方式,并使用從其他任務獲取的知識去解決相關的問題。因此,遷移學習摒棄了傳統(tǒng)機器學習算法的兩大基本假設: 1) 原有的訓練樣本和新的測試樣本之間滿足獨立同分布;2) 訓練樣本量決定模型好壞。對于計算機視覺需要大量的數(shù)據(jù),而且運算量很大,合理利用現(xiàn)有訓練好的網(wǎng)絡進行遷移學習,可以提高工作效率。通常可以使用域、任務和邊緣概率定義遷移學習框架。域D定義為由特征空間X和邊緣概率P(X)組成雙元素元組;任務T可定義為標簽空間y和目標函數(shù)P(Y|X)的雙元素元組。在此選用之前已經(jīng)訓練好的3個最優(yōu)DSSD模型AlexNet、VGG16和ResNet101進行測試,同時測試其無遷移學習的檢測效果以作比較。
D={X,P(X)}
T={y,P(Y|X)}
Y={y1,…,yn},y1∈y
式中,X為特征空間(抽樣數(shù)據(jù)點);P(X)而特征空間對應的邊緣特征概率分布;y為標簽空間,P(Y|X)為目標函數(shù)。
從表1看出,通過聚類試驗得到先驗框的寬高比為1~3,大致聚為5類。寬高比,5類的平均寬高比在1.02~2.98,其中,Ⅴ類最高,平均寬高比為2.98,最高為2.98;Ⅱ類其次,平均寬高比為1.48,最高為1.48;Ⅲ類最低,平均寬高比約為0.49,最大為2.03。各類在試驗總數(shù)中的占比依次為Ⅰ>Ⅱ>Ⅲ>Ⅳ>Ⅴ,依次為41.3%、25.6%、16.2%、10.1%和6.8%。表明,更符合樣本的寬高比為1.0、1.5、2.0和3.0。
表1 檢測輸入圖像寬高比的聚類結(jié)果
從表2看出,DSSD算法中原始默認預選框?qū)Ψ巡『毼⒘5臋z測mAP為72.3%,而通過K聚類算法重新選取先驗框后的mAP達86.1%;經(jīng)過優(yōu)化先驗框的寬高比后,該檢測方法的mAP提高13.8百分點,表明,通過K聚類算法選取的寬高比能提高目標檢測精確度,降低漏檢和誤檢率。
從圖4看出,按照默認預選框DSSD網(wǎng)絡檢測的結(jié)果(a)與通過K-means重新選取預選框?qū)捀弑群驞SSD網(wǎng)絡檢測出的結(jié)果(b)存在差異,改進算法可以檢測出原算法漏檢的部分目標。表明,改進算法對小目標有更好的檢測能力。
表2 默認預選框與K聚類預選框檢測番茄病害葉片精度
從表3看出,遷移學習在小數(shù)據(jù)集上對檢測準確率產(chǎn)生了積極作用。AlexNet、VGG16和ResNet101 3種DSSD模型無遷移學習算法的檢測準確率為61.3%~78.2%,而遷移學習算法的檢測準確率為72.6%~86.0%,均以ResNet101為基礎網(wǎng)絡的DSSD模型具有最高的檢測準確率;3種DSSD模型遷移學習算法較無遷移學習算法的檢測精度分別提高18.43%、13.22%和9.97%。因此,可以選定ResNet101為遷移學習算法的基礎模型。
表3 遷移學習與非遷移學習檢測精度
采用K-means和手肘法確定K值,運用聚類方法選取預選框合適的寬高比,并結(jié)合遷移學習優(yōu)化AlexNet、VGG16和ResNet101為基礎網(wǎng)絡的DSSD模型構(gòu)建番茄病害檢測識別方法。研究結(jié)果表明,經(jīng)優(yōu)化后的AlexNet、VGG16和ResNet101為基礎網(wǎng)絡的DSSD模型,通過自制數(shù)據(jù)集,利用遷移學習算法解決了小量數(shù)據(jù)樣本檢測精度不夠高的問題,其檢測準確率為72.6%~86.0%;其中,以ResNet101為遷移學習算法的基礎網(wǎng)絡的DSSD模型對番茄病害的識別精確度較其余2種模型的更高,其對番茄病害的檢測精確度達86%。該圖像識別算法后期可集成于番茄病害檢測系統(tǒng),用于幫助番茄種植戶方便、快速、及時且準確地檢測番茄病害,做到早發(fā)現(xiàn)、早預防和早治療。