?

設施蔬菜病害識別中的CNN池化選擇

2021-12-29 01:10劉之瑜張淑芬張振斌董燕靈羅長銀
新一代信息技術 2021年22期
關鍵詞:池化卷積準確率

劉之瑜,張淑芬,張振斌,董燕靈,羅長銀

(1. 華北理工大學 理學院, 河北 唐山 063210;2. 華北理工大學 河北省數據科學與應用重點實驗室,河北 唐山 063210;3. 華北理工大學 唐山市數據科學重點實驗室,河北 唐山 063210)

0 引言

設施蔬菜可以隨時隨地監控設施內環境參數并及時調節,可以為設施內的蔬菜提供合適的生長環境提高蔬菜的產量和質量,因此設施蔬菜的建設規模發展迅速。相較于設施內蔬菜生長需要的空氣溫度和濕度、土壤的溫度和濕度、光照強度、CO2濃度、土壤酸堿度等環境條件,蔬菜病蟲害是影響設施蔬菜產量的最主要因素。很長時間內務農人員在管理設施蔬菜的時候只能靠肉眼去觀察蔬菜的生長情況,是否有病蟲害以及病蟲害的危害程度,往往很難及時發現并采取措施,蔬菜病蟲害總會造成蔬菜產量的減少和質量的降低,不止給務農人員造成了經濟損失,也對人們的菜籃子造成了影響。

為了最大限度地減少生產損失和保持蔬菜作物的可持續性,必須采取適當的疾病管理和控制措施,突出對蔬菜作物的持續監測,并結合病蟲害的快速準確診斷[1]。圖像采集設備采集的蔬菜圖像,由于其中細微的類間差異和較大的背景變化,大規模圖像數據集的視覺分類具有挑戰性。深度卷積神經網絡(CNNs)是迄今為止解決這一問題最成功的模型,不斷有各種卷積神經網絡結構被提出來提高分類性能,如ResNet[2]、SENet[3]、InceptionNet[4]、VGGNet[5]。從網絡結構的角度看,卷積神經網絡主要包括卷積層、池化層和全連接層三個基本操作,卷積層通過卷積核從圖像中提取有效特征[6-8],此外卷積層后常跟一個激活函數,如線性整流單元(ReLU)[9],以完成對網絡的非線性變換;池化層是卷積神經網絡中常用的另一個關鍵操作,經過池化操作可以有效降低特征圖的維數,降低計算量同時增強對輸入圖像變化的魯棒性,一定程度上可以減少過擬合,卷積神經網絡常用的池化類型有最大池化[10]和平均池化[11],也有一些網絡拋棄了池化操作,如ResNet[2],使用跨步卷積將池化層以1× 1卷積核代替,這樣操作是有效的但不能確定所選節點是不是最有效的點;而全連接層起到了分類器的作用,將卷積層提取到的特征映射到樣本標記空間,完成分類。

與卷積操作相比,池化操作較難手動選擇,往往根據性能或經驗來確定,需要在實驗和錯誤中付出時間和精力來確定池化參數,如何根據不同類型的數據選擇池化類型也是一個問題。本文對最大池化和平均池化的選擇進行了研究,根據圖像梯度的變異系數對池化的類型進行選擇,將原數據集劃分為最大池化部分和平均池化部分,再進行訓練,實驗驗證了可行性。

1 卷積神經網絡中的池化

在卷積神經網絡被廣泛應用之前,傳統的圖像識別算法采用人工設計特征提取算子的方法來提取圖像特征,比較著名的有 SIFT[12]和 HOG[13]特征提取算子,大多數特征提取算子都采用池化操作來減少特征向量的大小。池化的數據掃描方式類似于卷積核,一個4×4的矩陣經過2×2大小步長為2的滑動窗口池化操作后尺寸變為2×2的矩陣,最大池化對輸入的特征圖矩陣采用取最大值的操作,滑動窗口掃過的區域取四個元素中的最大值,最大池化窗口覆蓋區域取值過程如圖 1所示。平均池化對輸入的特征圖矩陣采取求均值的操作,滑動窗口掃過的區域取四個元素的平均值,平均池化窗口覆蓋區域取值過程如圖2所示。

圖1 最大池化窗口取值效果Fig.1 value taking effect of maximum pooling window

圖2 平均池化窗口取值效果Fig.2 average pooling window value effect

除了最常用的最大與平均池化,許多新的池化方法也被提出,Dingjun Yu等[14]提出了一種稱為混合池的特征池化方法來對卷積神經網絡進行正則化,用最大和平均池化的隨機選擇過程代替了確定性池化操作,并有效降低了過擬合,經測試該方法優于單獨使用最大或平均池化。Caglar Gulcehre等[15]提出了Lp范數[16]池化,通過訓練參數P將Lp范數變的可訓練,參數P由取值1的平均池化到取值∞的最大池化,實驗證明有助于提高模型準確率。ChenYu Lee等[17]通過樹形結構合并最大和平均池化,結合之后得到的新的池化層是可訓練的,并易于實現,通過實驗證明樹形合并操作提高了模型的準確率,并適用于不同的模型。Lin Min等[18]提出了一種全局平均池(Gap),全局平均池將輸出特征平均化,然后將特征傳給分類器,與傳統的全連接層相比,可以減少過擬合,在CIFAR-10和CIFAR-100數據集上驗證了模型可行性。Faraz Saeedan等[19]提出了一種保留特征細節的自適應池化,可放大空間變化保留結構細節,細節保留池化可隨網絡訓練,實驗證明在不同網絡模型上占有優勢。Kobayashi Takumi[20]提出了根據輸入特征自適應調整池化功能的池化方法,無需手動調整,將池化的合并方式以參數化的形式導出,通過輸入特征圖中的全局統計信息來估計參數,以實現池化的靈活組合,實驗證明在多種模型中有效。Weitao Wan等[21]提出了一種用于語義感知特征池的基于熵的特征加權方法,該方法可輕松集成到各種CNN體系結構中進行訓練,核心思想是使用信息熵來量化網絡對其類預測的不確定性,并以此估計特征向量在特征圖中空間位置處的重要性,將網絡的注意力集中在語義上重要的圖像區域上,從而改善了大規模分類和弱監督語義分割任務。在許多網絡模型中,由于網絡層參數結構的原因,需要將輸入圖像強制縮放成固定大小的尺寸,He Kaiming等[22]提出了空間金字塔池化(SPP),是一種自適應的池化操作,該方法對輸入尺寸沒有要求,采用不同的池化窗口進行池化,將得到的結果合并產生固定大小的輸出,解決了網絡要求輸入固定大小的圖像的問題。

2 變異系數指導的池化選擇

池化操作除了有消除冗余信息降低特征圖維數的作用,還有對特征圖中的特征信息進行選擇性保留的作用。最大和平均池化都對特征圖進行了下采樣,但最大池化在一定程度上對特征做出了選擇,將分類識別度更高的特征提取出來,更多的保留了圖像的紋理信息,也起到了非線性作用,因紋理特征的重要性最大池化的可選擇性更大;平均池化更善于對圖像的整體特征信息進行下采樣,更有利于信息的完整傳遞,其貢獻度主要集中在減少特征圖維度上。池化操作在卷積神經網絡的設計中必不可少。

池化操作特征提取的誤差主要來自滑動窗口大小受限造成的估計值方差增大和卷積層參數誤差造成估計均值的偏移,平均池化能減小滑動窗口大小受限造成的估計值方差增大帶來的誤差,更多的保留圖像的背景信息,最大池化能減小卷積層參數誤差造成估計均值的偏移帶來的誤差,更多的保留紋理信息[23]。

本文在進行最大池化和平均池化的選擇時,采用了變異系數作為指導選擇參數,變異系數又稱標準離差率,是衡量數據值離散程度的一個統計量,適用于數據值測量尺度相差太大的情況。

變異系數cv為標準差與平均值之比,公式如下:

數學中的梯度以向量表示,函數 f( x, y)在點(x, y)處的梯度記作 ? f ( x, y)。梯度的計算公式如下。

梯度向量:

梯度的值:

梯度的方向角:

圖像的梯度值代表了圖像像素值的變化量,梯度值的大小代表了像素值的差異性,而圖像的特征邊緣往往梯度值變化明顯,蔬菜葉片病蟲害圖像的健康區域和病害區域差異明顯,如西紅柿早疫病,會使葉片枯黃,與健康葉片的綠色差異明顯。通過統計梯度值的分布情況可以在一定程度上分析圖像特征的離散程度,計算圖像梯度值的標準差、均值和變異系數,分析標準差和均值的對比,若比值大于1則表明圖像的方差標準差的比重更大,需要采用平均池化來降低誤差,若比值小于1則表明圖像均值的比重更大,需要采用最大池化來降低誤差。

算法描述如下:

輸入:待處理的圖像數據集

輸出:根據變異系數劃分完成的數據集

Step.1讀取數據集中的一張圖像,進行如下處理:

(1)將圖像矩陣中的像素值以二維數組的方式讀取

(2)調用函數計算圖像梯度值并保存為二維數組

(4)調用函數計算圖像梯度值的標準差σ

(6)if(cv≤1)

將圖片劃分到最大池化數據集

else

將圖片劃分到平均池化數據集

Step.2讀取待處理數據集中的下一張圖像,返回步驟(1),直至全部圖像處理完畢。

Step.3得到根據變異系數劃分完成的數據集

Step.4將劃分好的數據集放到卷積神經網絡中進行訓練

3 實驗

在本節介紹實驗所用數據集,網絡模型的搭建,實驗環境的參數和實驗結果及分析。

3.1 實驗環境

本文實驗設備為筆記本電腦,電腦操作系統為64位windows 10系統;CPU處理器為十代i7八核高性能處理器2.30 GHz;運行內存為16 GB海力士DDR4 3200 MH z;顯卡為 GeForce R TX 2060顯卡內存為6 GB,支持GPU加速;編譯語言為Python 3.8.5;深度學習框架為Pytorch 1.6.0。

3.2 數據集構建

本文采用 PlantVillage大型植物病害圖像數據集,選取其中六種植物十種病害作為實驗數據集,分別為健康藍莓葉片、健康櫻桃葉片、櫻桃白粉病、橘子綠病、桃核菌斑病、健康桃葉片、馬鈴薯早疫病、健康馬鈴薯葉片、馬鈴薯晚疫病、健康大豆葉片,共18 814張圖片,分為訓練集13 170張圖片和測試集 5 644張圖片,分別占比 70%和30%,六種植物病害圖像樣本示例如圖3所示。

圖3 六種植物病害圖像樣本示例Fig.3 image samples of six plant diseases

通過變異系數算法根據圖像池化選擇劃分原數據集為兩個數據集,劃分后的數據集包括最大和平均池化兩部分,數據集劃分前后分支結構分別如圖4所示,劃分后如圖5所示。

圖4 劃分前數據集結構Fig.4 dataset structure before partition

圖5 劃分后數據集結構Fig.5 pataset structure after partition

3.3 卷積神經網絡模型搭建

網絡模型的搭建和訓練測試均在 Pytorch 1.6.0框架下實現,Pytorch由Facebook公司基于Torch庫開發的基于Python的庫,支持動態神經網絡,設置網絡結構簡單直觀靈活,支持GPU加速的張量計算,框架簡潔快速高效有利于研究人員快速搭建出模型。本文采用Python語言來構建和訓練網絡,分別搭建AlexNet和VGG16網絡,AlexNet網絡結構和每層參數數量如圖 6所示,卷積層和全連接層參數依次為34 944、614 656、885 120、1 327 488、884 992和 37 752 832、16 781 312、4 090 700,總參數為62 378 344。參數統計如表1所示。

表1 AlexNet每層參數統計Tab.1 parameter statistics of each layer of AlexNet

圖6 AlexNet分層結構Fig.6 AlexNet hierarchy

VGG16網絡層級構和特征圖大小如圖 7所示,池化層無訓練參數,卷積層和全連接層參數依次為 1 792、36 928、73 856、147 584、295 168、590 080、590 080、1 180 160、2 359 808、2 359 808、2 359 808、2 359 808、2 359 808、102 764 544、16 781 312、86 037,總計134 346 581。參數統計如表2所示。

表2 VGG16每層參數統計Tab.2 parameter statistics of each layer of VGG16

圖7 VGG16模型參數結構Fig.7 parameter structure of VGG16 model

3.4 實驗和結果分析

首先 AlexNet模型使用未劃分數據集訓練,分別采用最大和平均池化分兩次進行了訓練,訓練過程中的loss值統計繪圖如圖8所示,準確率統計繪圖如圖9所示。圖8中lossAA曲線(虛線)為 AlexNet以平均池化訓練未劃分數據集的 loss值,lossAM曲線為AlexNet以最大池化訓練未劃分數據集的loss值,通過對比可以發現用最大池化來訓練loss值的時候loss值更低,網絡更穩定。圖9中accAA曲線(虛線)為AlexNet以平均池化訓練未劃分數據集的準確率,accAM 曲線為AlexNet以最大池化訓練未劃分數據集的準確率,二者基本持平,采用最大池化訓練準確率更高。

圖8 AlexNet訓練未劃分數據集loss值對比Fig.8 comparison of loss values in AlexNet training undivided dataset

圖9 AlexNet訓練未劃分數據集準確率對比Fig.9 comparison of accuracy of AlexNet training undivided datasets

然后用 AlexNet網絡訓練劃分好的數據集,先用使用最大池化的網絡訓練最大池化部分數據集,切換為平均池化網絡再行訓練平均池化部分,訓練過程中loss值統計繪圖如圖10所示,準確率統計繪圖如圖11所示。從圖10中可以看出loss值很低,在 0.1以下,說明網絡比較穩定,從圖11 中可以看出準確率很高而且很穩定,在 95%以上。AlexNet實驗過程中的準確率統計如表 3所示,其中平均準確率為后10次平均準確率,可以看出 AlexNet先劃分數據集再進行訓練的平均準確率最高,各自最高準確率基本持平,相差不超過 0.42%,說明通過變異系數對數據集的池化選擇在AlexNet中有效。

表3 AlexNet準確率統計Tab.3 AlexNet accuracy statistics

圖10 AlexNet訓練劃分好的數據集loss值Fig.10 loss value of dataset divided by AlexNet training

圖11 AlexNet訓練劃分好的數據集準確率Fig.11 accuracy rate of dataset divided by AlexNet training

使用VGG16模型使用未劃分數據集訓練,先用使用最大池化的網絡訓練最大池化部分數據集,切換為平均池化網絡再行訓練平均池化部分,訓練結束后loss值的統計繪圖如圖12所示,準確率的統計繪圖對比如圖13所示。圖12中lossVA曲線(虛線)為 VGG16以平均池化訓練未劃分數據集的loss值,lossVM曲線為VGG16以最大池化訓練未劃分數據集的loss值,通過對比可以發現用最大池化來訓練 loss值的時候 loss值更低,網絡更穩定。圖13中accVA(虛線)曲線為VGG16以平均池化訓練未劃分數據集的準確率,accVM曲線為VGG16以最大池化訓練未劃分數據集的準確率,二者基本持平,采用平均池化訓練準確率更高。

圖12 VGG16訓練未劃分數據集loss值對比Fig.12 comparison of loss values of VGG16 training undivided dataset

圖13 VGG16訓練未劃分數據集準確率對比Fig.13 accuracy comparison of VGG16 training datasets

然后用VGG16網絡訓練劃分好的數據集,先訓練最大池化部分數據集再行訓練平均池化部分,其訓練loss值統計繪圖如圖14所示,準確率統計繪圖如圖15所示。從圖14中可以看出loss值很低并趨于平穩,在 0.1以下,說明網絡比較穩定,從圖 15 中可以看出準確率很高而且很穩定,在95%以上。VGG16實驗過程中的準確率統計如表4所示,其中平均準確率為后10次平均準確率,可以看出 VGG16先劃分數據集再進行訓練的平均準確率最高,各自最高準確率基本持平,相差不超過 0.14%,說明通過變異系數對數據集的池化選擇在VGG16中有效。

表4 VGG16準確率統計Tab.4 accuracy statistics of VGG16

圖14 VGG16 訓練劃分好的數據集loss值Fig.14 loss value of VGG16 training divided dataset

圖15 VGG16訓練劃分好的數據集準確率Fig.15 accuracy of VGG16 training dataset

4 結論

卷積神經網絡在設施蔬菜病害識別中應用廣泛,本章對卷積神經網絡在進行病害圖像識別分類的訓練過程中,最大和平均池化的選擇進行了研究,通過計算圖像變異系數大小決定該圖像適合最大還是平均池化,變異系數大于1適合使用平均池化否則使用最大池化,將圖像劃分為最大池化訓練部分和平均池化訓練部分,再由卷積神經網絡訓練分類。經實驗驗證在 AlexNet和VGG16網絡中均有提升,準確率穩定在 95%以上,該方法有效。

猜你喜歡
池化卷積準確率
基于Sobel算子的池化算法設計
基于高斯函數的池化算法
卷積神經網絡中的自適應加權池化
基于3D-Winograd的快速卷積算法設計及FPGA實現
乳腺超聲檢查診斷乳腺腫瘤的特異度及準確率分析
不同序列磁共振成像診斷脊柱損傷的臨床準確率比較探討
2015—2017 年寧夏各天氣預報參考產品質量檢驗分析
從濾波器理解卷積
基于卷積神經網絡和池化算法的表情識別研究
高速公路車牌識別標識站準確率驗證法
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合