999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于卷積神經網絡的馬鈴薯葉片病害識別系統

2018-02-13 11:27:24趙建敏蘆建文
江蘇農業科學 2018年24期
關鍵詞:模型

趙建敏, 李 艷, 李 琦, 蘆建文,2

(1.內蒙古科技大學信息工程學院,內蒙古包頭 014010; 2.包鋼集團公司信息服務中心,內蒙古包頭 014010)

2006年多倫多大學Hinton等采用深層神經網絡進行特征降維,開啟了深度學習的時代[1-2]。近年來,基于卷積神經網絡的深度學習已經廣泛運用于圖像識別領域,2012年,Hinton等采用深層網絡自動提取特征,在Image Net圖像集分類問題上取得了很好的結果[3]。深度學習應用于圖像識別避免了人工特征提取的算法消耗,并且深度學習對輸入樣本的平移、縮放、扭曲保持高度不變性,訓練時共享權值,降低了訓練時間,大大提高了準確性[3-4]。

在國內農業圖像應用領域,楊國國等基于卷積神經網絡在復雜自然背景下定位和識別茶園害蟲,識別率達到90%以上,取得較好的效果[5]。譚文學等設計了多層卷積神經網絡,采用彈性動量的參數學習方法,通過識別果體病理圖像,診斷常見病害,識別率高達95%以上[6]。張帥等搭建了8層卷積神經網絡模型在Pl@antNet和自擴展葉片庫上進行訓練和測試,簡單背景下葉片識別率均達到90%以上[7]。魯恒等在無人機影像耕地信息提取中,利用深度神經網絡提取耕地特征,達到較高的識別精度[8]。針對馬鈴薯早疫病識別,徐明珠等應用高譜成像技術,建立了多種特征波長的BP神經網絡和支持向量機模型,識別率高達98%以上,為早疫病快速識別提供理論依據[9]。

本研究首次將分層卷積神經網絡技術應用于馬鈴薯病害識別中,基于TensorFlow平臺設計了馬鈴薯病害特征提取和病害識別算法,并全棧式開發了病害識別系統的服務器和前端,實現了手機端采集、上傳病害圖片、服務器處理推送識別結果,經測試可以滿足識別和訪問要求。

1 材料與方法

1.1 材料

以馬鈴薯病害圖像為識別對象,所有原始數據均采集于內蒙古中部周邊馬鈴薯種植區。共有4類病害圖像樣本 6 000 張,代表性樣本見圖1。4類病害圖像經過預處理,得到4 000張圖像作為訓練樣本,1 000張作驗證樣本,1 000張作測試樣本。其中,驗證樣本用來檢驗神經網絡中樣本是否出現過擬合現象。驗證樣本與訓練樣本同時作為神經網絡的輸入,計算損失函數大小,但驗證樣本損失函數大小僅用來判斷網絡是否過擬合,而不參與網絡參數調整。

為提高模型的特征學習能力和抗干擾能力,對原始圖像進行隨機反轉、亮度和對比度調節等預處理,并將處理后的圖片作為訓練集,訓練模型網絡,預處理函數如下:

tf. image. random_ flip_ left_ right ()隨機翻轉。

tf.image.random_flip_left_right(distorted_image)隨機亮度變換。

tf.Image.random_contrast (distorted_image) 隨機對比度變換。

最后對數據做白化處理,均衡均值與方差,降低圖像采樣中明暗、光照差異引起的影響。

TensorBoard是TensorFlow可視化平臺,模型對輸入圖像進行變換之后TensorBoard顯示的結果見圖2,從圖2可以看出,變換之后的圖像比原圖像更加光滑并且降低圖像明暗、光照差異引起的影響。

TensorFlow平臺輸入數據格式有圖片格式、二進制格式、文本格式以及標準的TensorFlow格式。本研究采用的是二進制格式的讀入。首先初始化讀入數據量、類別、標簽字節大小、尺寸和通道數,應用tf.FixedLengthRecordReader()函數讀取固定長度的樣本字節(包括label);之后用tf.decode_raw()函數進行解析。

1.2 方法

馬鈴薯病害圖像識別系統由服務器端和前端組成。服務器端在ubuntu操作系統上基于TensorFlow計算框架,搭建了多層卷積神經網絡病害識別模型;后端搭建了Mysql病害數據庫,采用flask框架,異步讀寫數據;手機端基于vue.js開發了Web app,完成圖像采集并通過rest API接口上傳到服務器,并實時獲取病害識別結果,總體結構見圖3。

1.2.1 卷積神經網絡模型設計 深度卷積神經網絡模型設計包括樣本預處理、神經網絡搭建、模型訓練及模型評估。本研究初始馬鈴薯病害圖片樣本經過預處理,整理得到6 000張病害樣本圖片,設計了8層CNN+Softmax神經網絡模型,通過梯度下降法進行訓練,在單病斑樣本測試中得到了較好的準確率。TensorFlow已經廣泛用于圖像識別等多項機器深度學習領域,先后提出了AlexNet[10]、VGG[11]、GoogLeNet[12]、PReLU-net[13]等代表性網絡結構。在TensorFlow平臺上,參照Alex Krizhevsky在CIFAR-10[10]數據集上應用的深度卷積置信網絡,搭建了3個卷積層、2個全連接層,網絡結構見圖4。在卷積層中分為卷積、池化過程,全連接層包括ReLu(Rectified Linear Units)非線性映射和dropout 2個過程,網絡結構見圖4。

1.2.2 服務器設計 馬鈴薯病害應用系統分為服務器和前端2個部分,識別系統前端-后端結構見圖5。服務器由服務進程、神經網絡識別進程、數據庫和Web服務構成,采用RESTful API接口。前端設計了基于Vue的web app,實現了手機端拍照上傳,服務器端識別病害、存儲信息并推送識別結果的功能。

本研究服務器的構建采用Python Web框架Flask和Nginx Web服務器。Flask是一個輕量級的Python Web框架,通過uWSGI服務網關接口可實現Nginx和Flask的交互,執行Python應用[14]。

以上傳病害圖片和獲取識別結果為例,服務器軟件設計結構和原理見圖6。用戶上傳病害照片時,手機端通過網頁地址訪問服務器,采用標準RESTful接口,經過網頁地址解析產生POST /pttdmap請求。本研究創建了Flask實例fapp,fapp通過路由router操作,fapp.route修飾器把修飾的函數注冊為路由,轉入執行Insert2tab()業務,將圖片存入病害數據庫。

用戶獲取病害識別結果時,通過網頁地址訪問服務器,經過解析產生GET /pttdisease請求,fapp通過路由執行Getds()業務。本研究設計了病害識別線程,該線程無識別請求時掛起,線程中開啟SOCKET連接,方法如下:

pttdregsver=socket.socket(socket.AF_UNIX,socket.SOCK_STREAM)

if os.path.exists(“/usr/pttdreg.sock”):

os.unlink(“/usr/pttdreg.sock ”);

pttdregsver.bind(“/usr/pttdreg.sock ”);

pttdregsver.listen(0);

Getds()業務創建pttdregclient SOCKET,通過pttdregclient.connet(“/usr/pttdreg.sock”)連接pttdregsver[],client.send(pttdmap)將圖片送到模型并啟動識別模型,完成Step1。之后Step2、Step3完成識別結果存儲,并響應手機的請求返回識別結果。

1.2.3 手機web app設計 為提高跨平臺、可移植性,本研究手機端應用web app方式,采用MVVM框架Vue.js,它具有數據雙向綁定,異步實時更新數據的功能,運行在移動端,方便快捷??蛻舳俗R別系統主要采用的技術棧有vue.js、vue-recource、vue-router,Vue.js是輕巧的可組件化MVVM庫;vue-recource負責與服務器進行數據交互;vue-router完成界面跳轉[15-16]。各項功能的代碼完成后用webpack打包部署到Nginx服務器,供移動端訪問。

2 結果與分析

2.1 特征提取及分類過程分析

在圖4所示的模型結構中,圖像通過輸入層、卷積層、全連接層自動學習特征并送入softmax分類器,過程如下:

輸入層:CNNs具有對二維圖像的特征進行自主學習的特性,故在此將原始圖像像素直接作為網絡輸入,輸入大小為227×227×3,其中3表示顏色通道,表示輸入為RGB圖像。

卷積層C1(conv1),由48個11×11卷積核,步長為4,采用ReLu非線性映射激勵,產生55×55×48個特征映射,之后輸入池化層S2(pool1),經過3×3過濾器、步長為2的max pooling重疊池化,學習到27×27×48個特征。關鍵代碼如下所示:

with tf.variable_scope(‘conv1’) as scope:

kernel=_variable_with_weight_decay(‘weights’,shape=[11,11,4,48],stddev=1e-4,wd=0.0)

對于Δt的兩個解,根據實際抓取情況進行取舍,然后確定抓取位置和抓取路徑。如果兩個解全部符合要求,那么選擇時間比較短的解;如果兩個解全部不符合要求,那么將放棄對此工件的抓取同時做好漏抓記錄。

conv=tf.nn.conv2d(images,kernel,[1,1,1,1],padding=‘SAME’)

biases=_variable_on_gpu(‘biases’,[48],tf.constant_initializer(0.0))

bias=tf.nn.bias_add(conv,biases)

conv1=tf.nn.relu(bias,name=scope.name)

_activation_summary(conv1)

pool1=tf.nn.max_pool(conv1,ksize=[1,3,3,1],strides=[1,2,2,1],padding=‘SAME’,name=‘pool1’)

卷積層C3過濾器大小為5×5,深度為128,移動步長為1,C3特征映射大小為27×27×128,激勵函數采用Relu。池化層S4仍然采用3×3濾波器、步長為2,max pooling重疊池化,輸出特征個數為13×13×128。卷積層C5過濾器大小為3×3,深度為192,移動步長為1,本層輸出矩陣大小為13×13×192。池化層S6采用3×3濾波器、步長為2重疊池化,輸出特征矩陣為6×6×192。

卷積核、池化核、步長大小的選取,整體的預測模型參數(包括學習率、學習策略)均是通過試驗得到最佳。卷積核尺寸根據圖像明顯特征所占像素大小確定,奇數尺寸的濾波器能獲取到更好的中心,故特征卷積核設為奇數。重疊池化能夠在一定程度上防止過擬合[12]降低識別錯誤率,故采用重疊池化。全連接層采用的ReLu激活函數,其優點為梯度不飽和、計算速度快;梯度計算公式為(1),在反向傳播過程中減輕了梯度彌散問題,神經網絡前幾層的參數也可以很快地更新。正向傳播過程中ReLu函數僅須要設置閾值,加快了正向傳播的計算速度,可以極大地加快收斂速度,dropout的設置是為了防止過擬合。

本研究采用多項式邏輯回歸(也稱為Softmax回歸)方法進行分類,Softmax回歸在網絡的輸出層上計算歸一化的預測值和標簽的交叉熵,模型的目標函數是求交叉熵損失和所有權重衰減項的和。使用cross_entropy計算交叉熵,然后計算一個batch運算后的平均值,tf.add_to_ collection計算總損失。本研究模型使用標準的梯度下降算法來訓練模型。

梯度下降法的迭代公式為

(1)

2.2 模型特性分析

模型評估使用測試集樣本來評估訓練模型的預測性能。為了得到可靠穩定的模型及對模型性能進行無偏估計,使用交叉驗證的方法,也就是對分類器進行訓練后利用測試集來測試訓練得到的模型,以此來作為評價分類器的性能指標。

本研究搭建的神經網絡學習速率設置為0.01。訓練過程中得到的損失函數隨迭代次數變而變化的曲線、正確率隨著迭代次數變而變化的曲線見圖7、圖8。

從圖7可以看出,隨著迭代次數增加,損失函數值越來越小,幾乎接近于0,說明函數擬合越來越好。訓練樣本識別精度到93%時基本收斂。訓練在服務器上進行,CPU采用Intel i7 4核、單GPU GTX980、4 G顯存,訓練用時不到1 h。用測試集樣本測試訓練好的模型,測試集樣本1 000個,測試時間為1.97 s,簡單背景、單病斑圖像測試準確率達到86%,其與迭代次數關系見圖8。

從表1可以看出,炭疽病和早疫病相互誤判率較高,灰霉病和晚疫病相互誤判率次之,炭疽病被誤判成早疫病的比率也較高,表明本研究模型針對上述病斑的特征提取效果有待進一步提高。筆者所在課題組嘗試增加CNN層數,由于樣本數量受限,當增加到6層CNN時出現過擬合現象。通過對比,在當前條件下設置3個卷積層的網絡取得的識別效果相對較好。

表1 病害分類測試準確率統計

2.3 手機端應用軟件測試

手機端app應用界面見圖9。身份驗證觸發POST請求,從后臺獲取token,通過驗證后進入系統。病害識別界面有拍攝病害圖像、上傳圖片功能,執行POST函數將手機病害圖像上傳到后臺服務器,點擊獲取通過get請求將獲取識別結果顯示在客戶端。

3 結論與討論

本研究設計了8層CNN+softmax分層卷積神經網絡模型,對于簡單背景單一病斑識別率達到86%。但是,由于病害圖像的特殊性,局部和全局取樣對識別效果影響很大,以191農資人上傳的呼倫貝爾某地區馬鈴薯葉片病害圖為例,系統識別為炭疽?。蝗舨捎镁植咳?,將病斑單獨取樣,系統識別為早疫病,差異很大(圖10)。

針對這一問題可采用CNN物體檢測方法,Gishick等在基于神經網絡的物體檢測領域進行了深入研究[17],筆者所在課題組正在嘗試采用R-CNN[17]算法和Fast R-CNN[18],即Regions with Convolution Neural Network Features和快速R-CNN算法予以改進。

此外,馬鈴薯病害種類多、分布分散,葉片、莖、塊莖等部位均有病害癥狀,病害除本研究列出的早疫病、晚疫病、灰霉病、炭疽病,還包括小葉病、青枯病、葉斑病、病毒,塊莖部位癌腫、根腐、黑痣、瘡痂病等,筆者所在課題組正在不斷搜集整理病害圖片樣本,制作樣本庫,為模型設計提供數據支撐。

本研究搭建的Nginx Web服務器,應用flask框架開發后臺服務,基于Vue.js開發手機端APP,實現采集、上傳、識別功能,滿足了系統要求,為相關應用提供了完整全棧式解決方案。

猜你喜歡
模型
一半模型
一種去中心化的域名服務本地化模型
適用于BDS-3 PPP的隨機模型
提煉模型 突破難點
函數模型及應用
p150Glued在帕金森病模型中的表達及分布
函數模型及應用
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
3D打印中的模型分割與打包
主站蜘蛛池模板: 欧美色香蕉| 国产黑丝一区| 青青青国产视频手机| 国产美女无遮挡免费视频| 国产资源免费观看| 亚洲午夜天堂| 免费一级毛片在线播放傲雪网| 成人国产精品一级毛片天堂 | 手机永久AV在线播放| 99色亚洲国产精品11p| 3p叠罗汉国产精品久久| 国产精品99一区不卡| 九九久久99精品| 久久鸭综合久久国产| 成人国产精品网站在线看| 最新国产精品第1页| 国产精品太粉嫩高中在线观看| 欧美高清日韩| 视频二区亚洲精品| 久草青青在线视频| 又粗又硬又大又爽免费视频播放| 中文字幕啪啪| 白浆视频在线观看| 亚洲男人在线| 制服丝袜一区二区三区在线| 人妻丰满熟妇αv无码| 成人在线观看一区| 91国内外精品自在线播放| 欧美精品三级在线| 中文字幕色在线| 99热国产在线精品99| 无码国产伊人| 日韩区欧美区| 色久综合在线| 伊人久久综在合线亚洲2019| 久久久精品无码一二三区| 国产丝袜无码精品| 一本色道久久88| 九九热视频精品在线| 国产成人一区二区| 国产在线小视频| 日韩国产黄色网站| 亚洲黄色成人| 一区二区在线视频免费观看| 欧美性久久久久| 国产成人在线无码免费视频| 露脸一二三区国语对白| 久久国产精品嫖妓| 二级毛片免费观看全程| 亚洲综合婷婷激情| 激情乱人伦| 噜噜噜久久| 久久婷婷五月综合色一区二区| 国产精品成| 国产成人a毛片在线| 999福利激情视频| 色综合天天视频在线观看| 中文字幕无码中文字幕有码在线 | 无码国产伊人| 亚洲日韩精品伊甸| 性做久久久久久久免费看| 国产精品久久久久久搜索| 亚洲天堂网视频| 国产欧美日韩精品第二区| 亚洲综合第一页| 狠狠色香婷婷久久亚洲精品| 国产精品久久久久无码网站| 亚洲综合久久成人AV| 日韩毛片免费观看| 久久精品人人做人人爽电影蜜月| 国产免费久久精品99re丫丫一| 波多野结衣一区二区三区88| 99草精品视频| 日韩精品一区二区深田咏美| 欧美曰批视频免费播放免费| 国产欧美中文字幕| 在线观看热码亚洲av每日更新| av在线手机播放| 国产又色又爽又黄| 91精品专区| 91福利国产成人精品导航| 亚洲男人天堂网址|