宋中山,汪進,鄭祿,帖軍,朱祖桐
(1.中南民族大學計算機科學學院,武漢市,430074; 2.湖北省制造企業智能管理工程技術研究中心,武漢市,430074)
柑橘為世界最重要的經濟作物、國際農產品和加工品之一,也是國際貿易第一大水果。我國是柑橘主要原產國之一。2020年,我國柑橘產量為35 600 kt,占世界柑橘產量的四分之一。然而,柑橘病害種類繁多且頻發,柑橘在病害感染下容易導致產量下降,嚴重制約著我國柑橘產業的發展。因此,對柑橘病害的檢測和識別研究是保證柑橘產量的重要措施,也對其他農作物病害識別提供解決方法和應用思路。
Faster R-CNN主要是針對于目標檢測任務的網絡模型,其主干網絡作為卷積神經網絡特征提取。在對病蟲害圖像的柑橘葉片進行檢測與識別研究,各科研學者提出不同的思路,蘇鴻等[1]在柑橘病蟲害中基于34層ResNet主干網的專用R-CNN模型結構改進提出區域神經網絡,在自建數據集的情況下,模型準確率達到90.23%,但是模型精確度相比于經典模型較低且模型的速度較慢。王建濤等[2]在自建數據集的情況下,利用卷積神經網絡和高光譜相結合的方法來檢測柑橘病蟲害,該方法運用卷積神經網絡和高光圖譜相結合作為新方法應用在柑橘病害的圖像識別領域,已有學者通過深度學習的方法進行研究。張敏等[3]提出先使用卷積神經網絡模型Alexnet對柑橘潰瘍病進行識別的方法,然后在保證準確率基本不變的情況下,優化網絡模型結構,減小網絡參數量,使用卷積神經網絡后,它對正樣本、負樣本的識別率達到98%。Sharif等[4]提出柑橘疾病檢測和分類的混合方法,通過優化的加權分割方法提取柑橘病斑圖像,然后將顏色、紋理和幾何特征融合到密碼本中,選定的特征將饋送到多類支持向量機(M-SVM),以進行最終的柑橘疾病分類,在柑橘類疾病圖庫數據集上實現97%的分類精度,在組合數據集上實現89%的分類精度,在本地數據集上實現90.4%的分類精度。上述文獻均使用全連接層作為整個網絡的分類器,但由于全連接層存在數據冗余問題,網絡參數約占整個網絡的90%左右。上述文獻中的模型在Rol pooling層處理Rol都會經過全連接層,并且其計算方法為單獨計算,沒有實現共享計算,從而導致訓練速度過慢,所以改進全連接層是當下研究的熱點問題,也是實現輕量級網絡的前提。
基于以上全連接層的問題,本文針對具有全連接層的Faster R-CNN網絡,提出二值化Faster R-CNN(Binary Faster R-CNN)其中主要改進為將二階段的全卷積神經網絡代替原始的全連接層。改進后的模型由于二值網絡權值W中的元素只占一位二進制,因此在保存訓練好后的模型時所需的內存可以節省90%的壓縮率,同時又去除普通的乘法操作。
為研究柑橘病害,需采集相關柑橘病害圖像,建立柑橘病害圖像數據集。收集到的數據集圖像由網上公開數據集與自建數據集兩部分組成,未進行增強處理的數據集共10 397張。其中,公開數據集來源于PlantVillage,PlantVillage是一個通用的農作物病害數據庫,主要用于供科研工作者進行農作物病害檢測算法研究,包含黃龍病病害圖像5 507張。自建數據集拍攝于桂林市靈川縣九屋鎮果園,包含潰瘍病病害圖像2 423張、瘡痂病病害圖像175張、黑斑病病害圖像283張、健康葉片圖像2 009張。圖像采集所用的拍攝設備是三星S10手機,圖像的分辨率4 032像素×3 024像素。考慮到現實情況的多變性,選擇在陰天和晴天兩種情況下進行拍攝,拍攝時間包括下午2點和下午5點;拍攝的距離分別為距離樹干1.0 m和0.5 m。采集樣本的圖像如圖1所示。





(a) 黃龍病 (b) 黑斑病 (c) 潰瘍病 (d) 瘡痂病 (e) 健康
由于數據集在每類柑橘病害的樣本分布不均衡,有限的數據訓練容易使模型過擬合。在深度學習中,使用數據增強的方法對數據集進行擴充,可以提高模型的準確率與泛化能力[5]。訓練集采用的數據增強的手段主要包括以下4類:(1)圖像旋轉:對本數據集的圖像進行逆時針旋轉90°、180°、270°,以及水平翻轉與垂直翻轉處理;(2)色彩平衡:對圖像進行色彩平衡控制,改變圖像顏色構成,控制圖像單一化[5-6];(3)高斯模糊添加噪聲干擾:對圖像添加高斯噪聲與椒鹽噪聲,模擬在不同條件下拍攝的清晰度,從而來減少圖像噪聲帶來的干擾;(4)HSV(Hue, Saturation, Value)亮度增強:通過更改色調(H)、飽和度(S)、亮度(V),即改變亮度V與飽和度S的分量,讓色調H保持不變,從而達到增亮的效果,同時防止模型過擬合。如圖2所示。
經過上述柑橘病害圖像進行分類擴充,最后得到51 985張有效圖像數據集。如表1所示。
在虛擬環境下搭建labelImg標注工具,對訓練集圖像數據集進行分類標注,citrus_greening表示黃龍病病害,black spot表示黑斑病病害,ulcer表示潰瘍病病害,Scab表示瘡痂病病害,health表示正常葉片。對每幅病害圖像用一個矩形框進行標注并且標注對應的病害標簽,保證矩形框的內容盡可能單一,每張圖像至少包含一個對象,然后會生成特征工程的數據集合,其類型是具有封裝的XML文件。
樣本通過K次折中交叉驗證(K=1)方式,選取9份作為訓練集,1份作為驗證集,選取方式為隨機選取。訓練集中黑斑病選取樣本數量為1 275張,黃龍病樣本數量為24 780張,瘡痂病樣本數量為790張,潰瘍病樣本數量為10 900張,健康葉片樣本數量為9 040張。

圖2 各類數據增強預處理效果圖

表1 數據預處理統計圖Tab. 1 Statistical chart of data preprocessing
建立目標檢測模型的目的是將目標物體進行定位和識別,Faster R-CNN在相同的數據集上準確率要高于其他檢測算法如YOLO系列、SSD等[7-8]。原始的Faster R-CNN網絡結構包括特征提取網絡(Feature Extraction Network)、區域建議網絡(Region Proposal Network,RPN)和區域卷積神經網絡(Region with Convolutional Neural Network Features, R-CNN)3個部分,具體的模型框架圖如圖3所示。
Faster R-CNN卷積神經網絡可以自動提取圖像特征,并將所得特征圖像共享給后續的區域建議網絡(RPN)和R-CNN。目前,VGG-16[9]等卷積神經網絡都具有很強的特征提取能力,因此選取VGG-16卷積神經網絡作為Faster R-CNN的特征提取網絡,同時選取VGG-16、ResNet50兩個卷積神經網絡作為對比試驗,以便對比分析不同特征提取網絡模型的性能。Faster R-CNN的區域建議網絡是一個全卷積神經網絡。通過RPN中IOU可得到目標物體的分數和對應的區域建議框,用于判斷該區內的目標屬于前景或背景,右邊的錨框用于檢測不同形狀物體,具體如圖4所示。

圖3 Faster R-CNN原始模型圖

圖4 原始模型架構設計圖
RPN整體的損失函數如式(1)所示。
L=Lcls+Lreg
(1)
式中:L——RPN的損失值;
Lcls——分類層損失值;
Lreg——回歸層損失值。
由式(1)所知,RPN整體的損失值可以分成分類損失值與回歸損失值,分類損失函數與回歸損失函數如式(2)~式(3)所示。
Lcls=-log[pipi*+(1-pi*)(1-pi)]
(2)
Lreg(ti,ti*)=∑smoothL1(ti-ti*)
(3)

(4)
smoothL1(ti-ti*)=
(5)
(6)
式中:Ncls——分類樣本數;
Nreg——回歸樣本數;
pi——目標的預測概率;
pi*——區域建議值;
ti——預測邊界框坐標向量;
ti*——真實邊界框的坐標向量;
i——第i個區域建議框;
λ——權重參數;
smoothL1——平滑損失函數。
改進二值化的Faster R-CNN(Binary Faster R-CNN)網絡模型:卷積網絡VGG-16作為骨干網絡,VGG-16網絡包括13個卷積層、5個最大池化層、3個全連接層、1個softmax層,在VGG-16網絡中嵌入RPN層和ROI池化層進行池化與歸一化處理,然后經過三次全連接,將原始分類網絡中的全連接層fc6和fc7轉換為二進制網絡的卷積層。第一層全連接層fc6的卷積運算在conv5_3之后實現步幅為1的7×7濾波器,其中VGG-16網絡每個卷積block包含2個或3個卷積層,conv5表示第五個卷積block,conv5_3表示第五個卷積block里面的第三個卷積層,并且對第二層全連接層fc7的卷積運算轉換為步幅為1的1×1濾波器,得到構建的二值化的Faster R-CNN網絡模型,再通過一個FC-1000的全連接層得到分類的類別數,最后通過一層softmax層分類器,得到分類結果[10-13]。
2.2.1 權重量化
在權重選擇量化正則化使其分布成正態分布,其中它的上界為b,下界為-b,其中b層權重絕對值不超過1,考慮到網絡有可能難以收斂,對網絡進行裁剪,在l-th層網絡,其中l是網絡的層數(l=1,2, …,n),依次求出裁剪之后的網絡,是其向前傳播與向后傳播,Wl∈Rnl×kl×kl是l全精度權重,nl和kl表示特征數與內核大小。
(7)
clip(x,b)=max(-b,min(x,b))
(8)

(9)

(10)
選取每個元素Q(i=1,2,…,nl×kl×kl)。

(11)
使用式(11)獲得比例因子
(12)
對于前向傳播的神經元x的分類二值化,使用式(13)計算。
(13)

(14)
2.2.2 二進制網絡概述
二進制網絡是前向傳播采用權重W激活值修飾的神經元和二值化構成的隱藏層網絡,其中二值化隱藏層網絡值為1或-1。二值化的優點有:使模型的參數占用更小的存儲空間,同時利用位移操作來代替網絡中的乘法運算,大大降低運算時間,由于二值網絡只是將網絡的參數和激活值二值化,并沒有改變網絡的結構,所以它跟全精度一樣。神經網絡對weights的二值化并不是非常敏感,所以提出對實值weights每個輸出通道方向上提取出一個scaling factor,用于恢復二值化weights的信息,同時對activation在HW方向上每個pixel上提取一個scaling factor,用于恢復二值化activations的信息,這兩種scaling factor都無須學習,直接計算相應的L1范數就能得到,且不影響二值化高效的卷積計算過程[14-21],二進制網絡模型圖如圖5所示。
針對檢測任務微調預訓練的VGG-16模型,使用二進制權重量化底層的權重,并對網絡進行微調,直到收斂為止。在下一階段,凍結這些底層,并繼續對下一層的權重進行量化,除卷積網絡中的分類和位置層。改進后的二進制網絡模型如圖6所示。

圖5 二進制網絡模型圖

圖6 改進二值化的Faster R-CNN模型圖
權重更新算法是二值網絡的訓練算法,其中包括權重更新和前向傳播。
前向傳播:二化值網絡訓練時的權值參數W,包含實數型的參數,將實數型權值參數二值化得到二值型權值參數,即Wkb=Binarize(Wk)。通過利用二值化后的參數計算得到實數型的中間向量,然后該目標向量再通過歸一化操作,得到實數型的隱藏層激活向量。實數型權值參數在輸出層的之前,就將該向量二值化。

試驗操作平臺、運行環境、處理器、運行內存、顯卡與深度學習框架參數如表2所示。

表2 環境參數Tab. 2 Environmental parameters
在試驗中,特征提取的特征選擇尤為重要,故選用預訓練模型,其目的可以極大地節省成本與算力,配合自建數據集聯合訓練的方式,相比于傳統的訓練方式快捷、方便且模型運行速度大幅度提高,試驗按照規定的初始化模型參數如表3所示。

表3 參數設置Tab. 3 Parameter setting
試驗采用不同的網絡模型(Binary Faster R-CNN、Faster R-CNN、VGG-16、ResNet50)對柑橘葉片進行目標檢測。模型評價指標采用平均精度與模型訓練速度作為整個模型的試驗結果,如表4所示。

表4 不同模型性能結果分析Tab. 4 Performance analysis of different models
表4模型網絡中,ResNet50、Faster R-CNN、VGG-16與Binary Faster R-CNN中識別率Faster R-CNN表現更佳,達到87%。在識別效率Binary Faster R-CNN上表現更佳突出,平均識別圖片時間0.31 s,模型參數方面Binary Faster R-CNN最小,大小為15.3 MB,在浮點運算能力方面也是Binary Faster R-CNN最佳,FLOPs為2.58×109。由上述試驗數據可以看出,Binary Faster R-CNN識別效率與模型的內存占用方面都表現更佳,Faster R-CNN雖然識別能力更優,但識別效率較差,Binary Faster R-CNN在識別效果與識別率上都表現更好。Binary Faster R-CNN表現好的原因有:一是全卷積神經網絡替代全連接層,二是二進制網絡表現了良好的輕量級特性。改進后的Binary Faster R-CNN深度學習網絡能夠較好地進行病害檢測,其識別結果如圖7所示。



(a) 黃龍病 (b) 黑斑病 (c) 潰瘍病


(d) 瘡痂病 (e) 健康
通過二值化Faster R-CNN(Binary Faster R-CNN)網絡識別出來的目標,定為正樣本,未被檢測出來的目標定為負樣本。通過采用IOU(交并比)閾值為檢測統計指標,當IOU值大于0.5時,認定為檢測結果為前景(正樣本);反之,IOU值小于等于0.5時,檢測結果為背景(負樣本)。試驗有4種結果,分別為檢測出來IOU值大于0.5的目標TP、檢測結果小于等于0.5的目標FP、未檢查出來的真值目標FN。
(15)
(16)
式中召回率(Recall)為識別出的柑橘數占總目標總數的比例[22]。
(17)
式中:FN——正樣本被錯誤識別為負樣本的數量[22];
FP——負樣本被錯誤識別為正樣本的數量;
TP——正樣本被正確識別為正樣本的數量;
P——精確率;
R——召回率;
F1——精確率與召回率的調和均值。
為分析Binary Faster R-CNN與其他的網絡性能進行更好的比較,選用ResNet50、Faster R-CNN和VGG-16網絡在本柑橘數據集中進行對比試驗,結果如表5所示。

表5 不同網絡試驗對比Tab. 5 Comparison of different network experiments
試驗結果表明,Binary Faster R-CNN的平均準確率、平均召回率和總準確率與召回率的調和均值在4個模型對比試驗中都表現出良好性能,分別為87.52%、87.48%和87.56%。結合表4中模型參數、檢測圖像時間和FLOPs(浮點運算速度)等多個指標,所以選取二值化Faster R-CNN作為自然場景下的柑橘病害研究的網絡。為進一步比較該模型的性能,再次對柑橘病害數據集準確率的訓練過程進行比較[22-24],訓練過程中準確率曲線變化如圖8所示。

圖8 訓練過程中4種模型準確率曲線變化展示圖
在網絡數據集的制作過程中,根據預訓練模型改變數據集尺寸、大小、數量來控制數據模型的尺度,進而研究模型超參數和訓練次數對識別精度和訓練速度的影響。首先為防止模型的過擬合,采用early-stopping技術來減少過擬合帶來的性能影響。在訓練過程中,設置學習率取固定值0.001時,迭代樣本數為256,如圖9所示四種網絡在訓練過程中的平均損失值隨迭代次數變化曲線。試驗結果表明,網絡迭代次數超過3 000次之后,損失值趨于平穩,其中Faster R-CNN和binary Faster R-CNN的損失值(Loss)收斂較快且損失浮動較小,從參數收斂情況來看下降到0.25左右,兩模型開始收斂,并且收斂較快。結合圖8準確率與圖9收斂性可以看出,Faster R-CNN和Binary Faster R-CNN具有更好的魯棒性與泛化能力。

圖9 訓練過程中4種模型損失值曲線變化展示圖
四種網絡模型識別柑橘病害的混淆矩陣如圖10所示。

(a) Binary Faster R-CNN

(b) Faster R-CNN

(c) ResNet50

(d) VGG-16
混淆矩陣也是模型分類與檢測評價的指標之一。在混淆矩陣中,主對角線上的數字是正確預測的樣本圖像的數量,而其他位置的數字是正確預測的樣本圖像的錯誤預測,混淆矩陣的列標簽表示預測的類別,其對應的行數值總和作為該類別的樣本總數[25-27]。該試驗黃龍病選取400張圖片、黑斑病選取100張圖片、潰瘍病選取200張圖片、瘡痂病選取100張圖片、健康選取200張圖片來測試其準確率對該4個模型進行對比,每種類型疾病的識別平均準確率如圖10,從對角線的顏色越深表示模型的效果越好。4個模型的混淆矩陣對比中可以看出各類模型對于柑橘某種病害識別能力。可以看出Binary Faster R-CNN與Faster R-CNN識別率更優,VGG-16的識別誤差率最低,綜合表4結果,Binary Faster R-CNN綜合性能表現更佳突出,所以選取Binary Faster R-CNN作為柑橘病害檢測模型,可以為后續柑橘病害圖像識別提供借鑒。
1) 針對Faster R-CNN檢測網絡在柑橘病害圖像識別效率過慢的問題,在原始網絡基礎上提出一種對權值進行二值化實現快速檢測柑橘病害圖像的區域神經網絡模型。改進模型將二階段的全卷積神經網絡代替原始的全連接層,從而減少參數量,通過貪婪分層進行逐步訓練,保證模型快速收斂。通過試驗驗證模型具有較好的識別速度和魯棒性。
2) 通過試驗表明,改進后的模型性能表現良好,其中模型的總識別率為87.52%、模型的召回率為87.92%、模型大小縮小到15.3 MB、平均識別圖像時間0.31 s、FLOPs為2.58×109,同時Binary Faster R-CNN收斂性表現良好。
3) 本文提出的二進制網絡可以對深度神經網絡模型大小進行壓縮,為輕量級網絡研究提供了新的研究方法,同時也為深度學習在移動端的應用提供了借鑒。