楊 芳, 高曉陽*, 李紅嶺, 楊 梅, 邵世祿
(1.甘肅農(nóng)業(yè)大學(xué)機(jī)電工程學(xué)院,甘肅 蘭州730070;2.甘肅省葡萄與葡萄酒工程學(xué)重點(diǎn)實(shí)驗(yàn)室,甘肅 蘭州 730070;3.甘肅省干旱生境作物學(xué)重點(diǎn)實(shí)驗(yàn)室,甘肅 蘭州 730070)
葡萄種植過程中,營養(yǎng)元素對葡萄品質(zhì)有很大的影響,其中元素鉀在葡萄所含的礦物質(zhì)中含量最高[1]。當(dāng)葡萄植株缺鉀時(shí),會在一定程度上抑制其對氮含量的吸收,降低葉片的光合作用,葉子會出現(xiàn)發(fā)黃長斑的現(xiàn)象,抗病蟲能力降低。適時(shí)施用鉀肥,對促進(jìn)漿果上色、成熟,提高含糖量及風(fēng)味有明顯效果,對促進(jìn)根系與枝條生長、增強(qiáng)植株抗寒和抗旱效果顯著。傳統(tǒng)的植物營養(yǎng)檢測方法都是對采摘樣本進(jìn)行實(shí)驗(yàn)室分析,如酶學(xué)診斷法、化學(xué)檢測法、施肥檢測法、形態(tài)檢測法等,目前國內(nèi)外對植物營養(yǎng)元素含量的快速非化學(xué)檢測方法已成為研究熱點(diǎn)。Wiwart等[2]對蠶豆、豌豆和羽扁豆采集的圖像顏色進(jìn)行了分析,進(jìn)而采用數(shù)字圖像處理分析了三種豆類的N、P、K、Mg營養(yǎng)元素狀況。Fitzgerald等[3]運(yùn)用圖像光譜技術(shù),對小麥氮營養(yǎng)元素進(jìn)行檢測,建立了預(yù)測小麥氮素的模型,其相對系數(shù)達(dá)到97%。Subhash等[4]通過葉綠素?zé)晒夥治黾夹g(shù)研究了水稻營養(yǎng)元素,結(jié)果發(fā)現(xiàn)熒光強(qiáng)度比值F740/F725和F690/F750能更好地反應(yīng)出水稻營養(yǎng)元素匱乏狀況。這些研究解決了實(shí)驗(yàn)室分析方法及根據(jù)種植經(jīng)驗(yàn)判斷等耗時(shí)耗力的弊端,探究了植物營養(yǎng)元素的無損檢測技術(shù),為科學(xué)種植高品質(zhì)農(nóng)作物提供了技術(shù)保障。
近年來,深度學(xué)習(xí)在農(nóng)業(yè)檢測和圖像識別領(lǐng)域應(yīng)用迅猛[5-7]。深度學(xué)習(xí)(Deep Learning)是機(jī)器學(xué)習(xí)中具有深層結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò)算法,目前流行的深度學(xué)習(xí)模型之一是1989年LeCun et al.等提出的卷積神經(jīng)網(wǎng)絡(luò)(Convolutional neural networks,CNN)[8-9]。Krizhevsky等利用非線性激活函數(shù)ReLu[10]與Dropout[11]方法,提出了經(jīng)典CNN結(jié)構(gòu)AlexNet[12],接著相繼出現(xiàn)了ZFNet[13]、VGGNet[14]、GoogleNet[15]、ResNet[16]等。目前深度學(xué)習(xí)的主流框架有Caffe、Tensorflow、Keras、Pytorch、MXNet、Theano等。與深度學(xué)習(xí)主流框架TensorFlow相比,PyTorch使用動態(tài)而不是靜態(tài)計(jì)算圖,使用GPU和CPU優(yōu)化深度學(xué)習(xí)張量庫,其框架運(yùn)用Python編寫,使得源碼更簡潔高效。
在國內(nèi),屈莎等[17]以開花期植株氮素積累量、植株氮素含量、葉片氮素累積量等指標(biāo)作為中間變量,研究采用支持向量機(jī)建立冬小麥的GPC預(yù)測模型,實(shí)現(xiàn)氮素營養(yǎng)指標(biāo)的估測。李小正等[18]從棉花葉片圖像中提取R、G、B值和H、I、S值以及組合相對應(yīng)的氮含量,選取6種輸入向量組合,利用線性網(wǎng)絡(luò)、BP網(wǎng)絡(luò)以及徑向基網(wǎng)絡(luò)3種神經(jīng)網(wǎng)絡(luò)進(jìn)行比較,篩選出了最適宜網(wǎng)絡(luò)模型和最佳輸入組合。劉連忠等[19]從原始茶樹葉片圖像中提取葉片的R、G、B均值,并計(jì)算歸一化NRI、NGI、NBI及H、S、I均值,選15種顏色特征對含氮量進(jìn)行回歸分析,建立茶樹氮營養(yǎng)元素估算模型。但以上模型檢測的準(zhǔn)確率均較低。
謝忠紅等[20]將深度學(xué)習(xí)和光譜分析相結(jié)合,將菠菜劃分為新鮮、次新鮮和腐敗三個(gè)等級,拍攝菠菜葉片的高光譜圖像,計(jì)算ROI反射率均值,篩選出訓(xùn)練集和測試集,使用SVM分類器,找出識別率均值最高的3個(gè)波長,搭建CNN實(shí)現(xiàn)了圓葉菠菜新鮮度的無損檢測。
本試驗(yàn)針對甘肅紅提葡萄,采集不同物候期的葡萄葉片實(shí)時(shí)圖像信息,提取顏色特征,構(gòu)建訓(xùn)練基于葡萄圖像的深度卷積神經(jīng)網(wǎng)絡(luò),實(shí)現(xiàn)快速無損檢測葡萄葉片鉀含量,有利于實(shí)時(shí)制定葡萄田施肥管理適宜措施。本研究對葡萄生長期營養(yǎng)狀況監(jiān)控和提高葡萄品質(zhì)具有重要意義。
本試驗(yàn)在甘肅農(nóng)業(yè)大學(xué)的甘肅省葡萄與葡萄酒工程重點(diǎn)實(shí)驗(yàn)室的葡萄試驗(yàn)園進(jìn)行。試驗(yàn)園位于甘肅省蘭州市安寧區(qū)黃河北岸(36°03′N、103°53′E),蘭州地處內(nèi)陸腹地,干旱少雨,年平均日照數(shù)26 070.6 h,年平均氣溫9.1 ℃,年極端最高溫39.1 ℃,年極端最低溫度-23.1 ℃,年平均降水量為250~350 mm,并集中分布在6~9月,氣候條件為大陸性季風(fēng)氣候明顯。試驗(yàn)材料選用適宜在干旱與半干旱地區(qū)栽培的紅地球葡萄。3月下旬葡萄行兩頭通風(fēng),4月上旬發(fā)芽,4月中旬上架,人工施肥,噴灌方式為滴灌,整形方式為“廠”字形,南北行向,株行距為1 m×2 m,單側(cè)蔓。
本試驗(yàn)軟件環(huán)境為Ununtu 16.04 LTS 64 位系統(tǒng),采用Pytorch深度學(xué)習(xí)開源框架,選用python作為編程語言。硬件環(huán)境為搭載Intel Xeon(R)Silver 4110 CPU @ 2.10GHz x16處理器,計(jì)算機(jī)操作系統(tǒng)類型為64位,內(nèi)存45 GB,并采用英偉達(dá)GTX980Ti顯卡加速圖像處理。
為獲得不同鉀含量的葡萄葉片樣本,從萌芽展葉期到果實(shí)成熟期的葡萄整個(gè)生育過程中,將試驗(yàn)區(qū)域劃分為A、B兩塊區(qū)域,兩區(qū)域占地比為5∶1。A區(qū)和B區(qū)正常施肥管理共6次,其中A區(qū)在新梢生長期(6月22日)和果實(shí)膨大期(8月30日)各追肥一次,試驗(yàn)期追加施肥用量為NPK配比關(guān)系。試驗(yàn)用鉀量見表1。
表1 植株生育期施鉀肥方案 kg/hm2
深度卷積神經(jīng)網(wǎng)絡(luò)模型的訓(xùn)練樣本收集試驗(yàn)自4月13日葡萄上架開始,采集葡萄葉片直至10月22日霜降落葉,試驗(yàn)期為192天。以三天為一周期采集葡萄葉片,采集的葡萄葉片來自不同植株不同母枝的不同分枝,每次采摘葉片A、B兩區(qū)共計(jì)20片,其中選擇A區(qū)和B區(qū)各一組植株用于分析不同施肥處理區(qū)域植株上葉片鉀含量分布,采集葉片放置陰涼處自然晾干。采集紅地球葡萄葉片共計(jì)1 280片,其中A區(qū)葉片960片,B區(qū)葉片320片。按照采集日期將陰干的葉片稱重、磨粉與裝袋,做好相應(yīng)日期與區(qū)域的標(biāo)記,送至甘肅省農(nóng)科院進(jìn)行葡萄葉片全鉀含量檢測,檢測結(jié)果制作為模型訓(xùn)練的標(biāo)簽(Labels)。試驗(yàn)采集圖片所用儀器是數(shù)碼照相機(jī),葉片采摘后第一時(shí)間帶回實(shí)驗(yàn)室,將葉片平放到白色的背景紙上,相機(jī)與背景紙距離保持60 cm進(jìn)行垂直拍攝。然后用Photoshop軟件將圖片統(tǒng)一裁剪為416×416像素大小,JPG格式。試驗(yàn)樣本處理如圖1所示,圖1(a)為試驗(yàn)采集的葡萄葉片樣本照片,圖1(b)為干燥的葡萄葉片經(jīng)粉碎處理后的粉末樣本。
圖1 試驗(yàn)樣本處理
鑒于采集葉片工作量大且周期長,另外采集葉片過多還會影響葡萄正常生長,為提高圖像分類的準(zhǔn)確性,并使訓(xùn)練模型更加精準(zhǔn),本試驗(yàn)對已有采集樣本進(jìn)行了數(shù)據(jù)集擴(kuò)展處理。目前圖像擴(kuò)展方法包括圖像旋轉(zhuǎn)(線性變換、矢量相加)、透視變換、仿射變換(平移、旋轉(zhuǎn)、縮放、翻轉(zhuǎn)、錯(cuò)切)和強(qiáng)度變換(對比度、亮度增強(qiáng)、顏色和噪聲)等。本文對原始圖像進(jìn)行仿射和強(qiáng)度變換,利用Photoshop對原始圖像進(jìn)行顏色、亮度和對比度的減弱與增強(qiáng),添加噪聲,翻轉(zhuǎn)與縮放的動作處理。這樣使每張?jiān)紙D片產(chǎn)生9張擴(kuò)展圖片,數(shù)據(jù)集由原來的1 280片擴(kuò)展至11 520張樣本。本試驗(yàn)中CNN模型訓(xùn)練樣本分為訓(xùn)練集和測試集,其中訓(xùn)練集隨機(jī)取7 680張,測試集3 840張用來驗(yàn)證模型的準(zhǔn)確性,訓(xùn)練集和測試集中A、B兩區(qū)采集的樣本數(shù)量比為30∶1。
試驗(yàn)首先運(yùn)用Photoshop獲取葉片圖像直方圖的R、G、B值,再用OpenCV+python將R、G、B歸一化至[0,1]區(qū)間,轉(zhuǎn)換為HSI顏色空間。葡萄葉片樣本選擇的圖像特征值包括紅光值(R)、綠光值(G)、藍(lán)光值(B)、色調(diào)(H)、色飽和度(S)、亮度(I)、紅光標(biāo)準(zhǔn)化值(NRI)、綠光標(biāo)準(zhǔn)化值(NGI)和藍(lán)光標(biāo)準(zhǔn)化值(NBI)。其中,NRI(normalized redness intensity)=R/(R+G+B)、NGI(normalized greenness intensity)=G/(R+G+B)、NBI(normalized blueness intensity)=B/(R+G+B)。本試驗(yàn)中B區(qū)部分試驗(yàn)樣本不同生育期鉀含量對應(yīng)數(shù)字圖像特征值見表2。
表2 不同生育期葉片鉀含量對應(yīng)數(shù)字圖像特征值
1.4.1 相關(guān)性分析
采用Microsoft Excel 2010進(jìn)行圖像特征值的處理與分析。對B區(qū)不同生育期葡萄葉片提取的特征值R、G、B、H、S、I、NRI、NGI、NBI、R/(R+B-G)、B/(R+B-G)、G/(R+B-G)與植株鉀素營養(yǎng)參數(shù)做相關(guān)性回歸分析,見表3。結(jié)果表明指標(biāo)R、G、B、NRI、NBI與葉片鉀素呈正相關(guān)關(guān)系,指標(biāo)NGI、R/(R+B-G)、B/(R+B-G)、G/(R+B-G)與葉片鉀素呈負(fù)相關(guān)關(guān)系。
表3 植株葉片數(shù)字圖像特征值與鉀素營養(yǎng)參數(shù)的相關(guān)系數(shù)
1.4.2 不同施肥區(qū)域植株葉片鉀含量變化分析
隨機(jī)選擇試驗(yàn)A區(qū)第二顆葡萄植株上半部的1個(gè)結(jié)果枝條,并選該枝條靠近母枝端葡萄果穗處的葉片作為分析鉀含量的樣本,由于1片葡萄干燥后重量偏輕,因而選定樣本葉片后,采摘同一株葡萄不同枝條上的5片葉片理想化為1片葉片,記為L1。B區(qū)采用和A區(qū)相同的采樣方法。不同區(qū)域不同植株的結(jié)果枝葉位的葉片鉀含量變化趨勢如圖2所示。由圖2可見,常規(guī)施肥不追肥B區(qū)和追肥A區(qū)結(jié)果枝的葉片鉀含量變化差異較為明顯。由于葉位L1靠近果穗的生長位置,這個(gè)區(qū)域的葉片光合作用能力較強(qiáng),光合作用產(chǎn)生的有機(jī)物質(zhì)傳輸予果實(shí),其鉀含量的變化幅度較大。常規(guī)施肥B區(qū)葉片的鉀含量變動幅度較追肥A區(qū)鉀含量變動幅度變化小,在6月22日膨大期追肥試驗(yàn)后不久,肥料開始分解,植株吸收肥料中的鉀,此時(shí)植株獲得的營養(yǎng)充足,A區(qū)葉片鉀含量在這一階段呈上升趨勢,6月28日鉀含量開始有所下降。7月21日,植株進(jìn)入果實(shí)膨大期,果實(shí)逐漸成熟,此時(shí)葉片中的鉀元素開始向果實(shí)轉(zhuǎn)移,葉片鉀含量繼續(xù)下降,8月30日進(jìn)行著色成熟期第二次追肥試驗(yàn)后,葉片中的鉀含量下降緩慢。B區(qū)葉片的鉀含量變化趨勢與A區(qū)相似,自開花期后,葉片鉀含量逐漸減少且隨追肥波動。
圖2 A區(qū)和B區(qū)不同生育期葉片鉀含量變化
Darknet-53網(wǎng)絡(luò)主要是由一系列1×1與3×3的卷積層組成,每個(gè)卷積層(Convolutional layer)之后都會有BN(Batch Normalization)批標(biāo)準(zhǔn)化歸一層和Leaky ReLU層,如圖3所示。網(wǎng)絡(luò)中共有53層卷積層。
圖3 卷積層(Conv)的網(wǎng)絡(luò)結(jié)構(gòu)
BN即批標(biāo)準(zhǔn)歸一化,是由Google于2015年提出,其在一定程度上解決了深層網(wǎng)絡(luò)訓(xùn)練過程中的“梯度彌散”現(xiàn)象。
YoLoV3是一種使用深度卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練得到的特征來檢測對象的目標(biāo)檢測器,其最大的特點(diǎn)是提出新型的圖片特征提取網(wǎng)絡(luò)Darknet-53作為YoLoV3的全卷積神經(jīng)網(wǎng)絡(luò)(Fully Convolutional Networks,F(xiàn)CN)[21]。傳統(tǒng)基于CNN的圖像分類方法所需的存儲空間很大,且計(jì)算效率低,像素塊的大小限制了感知域的大小,從而導(dǎo)致分類性能受限。FCN將傳統(tǒng)CNN的全連接層轉(zhuǎn)化為卷積層,能對樣本圖像進(jìn)行像素級分類。YoLoV3網(wǎng)絡(luò)結(jié)構(gòu)見表4。
表4 YoLoV3網(wǎng)絡(luò)結(jié)構(gòu)
1.5.1 測試數(shù)據(jù)集
本試驗(yàn)采集不同生育期內(nèi)葉片,在采摘后第一時(shí)間帶回進(jìn)行相機(jī)采樣。以不同生育期不同葉位鉀含量的不同為依據(jù)自建訓(xùn)練樣本集。訓(xùn)練樣本集部分實(shí)例如圖4所示。
圖4 不同鉀含量訓(xùn)練樣本集
1.5.2 YoLoV3-M1網(wǎng)絡(luò)模型
本試驗(yàn)將網(wǎng)絡(luò)模型改進(jìn)為YoLov3-M1,合并BN層到卷積層,提升模型前向推理的速度。BN層能夠加速網(wǎng)絡(luò)收斂,控制訓(xùn)練樣本時(shí)過擬合的問題。雖然BN層在訓(xùn)練樣本時(shí)能起到積極的作用,但在網(wǎng)絡(luò)前向推理時(shí)增加了運(yùn)算,影響了模型的性能。
表示卷積層的計(jì)算見式(1)。每個(gè)輸出像素計(jì)算中x表示輸入圖像中的像素,w表示該層的權(quán)重,b表示偏置項(xiàng)。
outj=xi*w0+xi+1*w1+xi+2*w2
+…+xi+k*wk+b
(1)
BN層對該卷積層輸出執(zhí)行的計(jì)算見式(2)。
bnj=γ*(outj-mean)sqrt(variance)+β
(2)
為了將BN層合并到卷積層,需要改變式(1)和式(2)來計(jì)算卷積層新的權(quán)重和偏置項(xiàng),如式(3)、式(4)所示。
wnew=γ*wsqrt(variance)
(3)
bnew=γ*b-meansqrtvariance+β
(4)
這樣就得到新的卷積層,與原始卷積+BN層得到相同的結(jié)果,網(wǎng)絡(luò)性能上沒有損失。YoloV3改進(jìn)網(wǎng)絡(luò)中只使用卷積層,但要使用調(diào)整后的權(quán)重wnew和偏置項(xiàng)bnew。
試驗(yàn)的訓(xùn)練樣本分為訓(xùn)練集和測試集,對訓(xùn)練樣本進(jìn)行分批次(batch)訓(xùn)練,訓(xùn)練集train batch_size為64,即訓(xùn)練集圖片分120次訓(xùn)練完成,每個(gè)批次訓(xùn)練64張樣本圖片。測試集test batch_size為60,即測試集圖片分64次測試完成,每個(gè)批次測試60張樣本圖片。一個(gè)完整數(shù)據(jù)集通過神經(jīng)網(wǎng)絡(luò)一次并且返回了一次稱為一個(gè)迭代(epoch),共迭代40 000次,學(xué)習(xí)率為0.01。輸入已做標(biāo)記的紅地球葡萄葉片圖像,feature map=3。Detection層劃分grid數(shù)目,對規(guī)模為13、26、52的boxes回歸值進(jìn)行預(yù)測。卷積的Strides默認(rèn)為(1,1),邊界填充padding默認(rèn)為same,當(dāng)Strides為(2,2)時(shí),padding默認(rèn)為valid。過濾器(filters)值為32,輸入特征圖尺寸為416×416×32。共進(jìn)行5次下采樣,提取特征。
YoLoV3-M1網(wǎng)絡(luò)在訓(xùn)練過程中訓(xùn)練精確度(accuracy)和交叉熵(cross entropy)變化曲線如圖5所示。從圖5中可以看出在整個(gè)YoLoV3-M1模型訓(xùn)練過程中,交叉熵下降較快,迭代次數(shù)2 100次時(shí)曲線趨于穩(wěn)定。訓(xùn)練準(zhǔn)確度上升也較快,并且很快就趨于平穩(wěn)。
圖5 YoLoV3-M1訓(xùn)練曲線
單個(gè)類別的檢測準(zhǔn)確率(accuracy,Acc)為正確檢測的正反例數(shù)/類別總數(shù),即:
Acc=Xn
(5)
搭建網(wǎng)絡(luò)模型平均檢測準(zhǔn)確率(Average accuracy)為單個(gè)類別的檢測準(zhǔn)確率之和/總類別數(shù),即:
Aac=AccN
(6)
其中樣本類別是根據(jù)試驗(yàn)中采摘不同葉位不同生育期樣本的編號進(jìn)行分類,本試驗(yàn)樣本類別總數(shù)分別為A區(qū)n為45、N為192,B區(qū)n為45、N為64。本試驗(yàn)部分訓(xùn)練樣本對應(yīng)鉀含量的檢測準(zhǔn)確率見表5。
表5 樣本鉀含量檢測結(jié)果
本試驗(yàn)以甘肅紅提葡萄為研究對象,在葡萄整個(gè)生育期的鉀含量測定試驗(yàn)基礎(chǔ)上構(gòu)建基于數(shù)字圖像特征的卷積神經(jīng)網(wǎng)絡(luò)模型,葡萄葉片鉀含量無損檢測方法的試驗(yàn)平均準(zhǔn)確率為94.49。本研究選用圖像檢測更為精確的YoloV3卷積批歸一化層改進(jìn)模型,以深度學(xué)習(xí)框架(Pytorch)實(shí)現(xiàn)動態(tài)檢測的模型架構(gòu),搭建實(shí)現(xiàn)對葡萄葉圖像優(yōu)化調(diào)節(jié)模型參數(shù),在網(wǎng)絡(luò)迭代2 000次后就能達(dá)到90%以上的檢測準(zhǔn)確率。但試驗(yàn)中也發(fā)現(xiàn)極個(gè)別樣本的預(yù)測結(jié)果與化學(xué)檢測鉀含量值差異較大,這與獲取葡萄葉片數(shù)字圖像顏色特征值時(shí)的試驗(yàn)處理誤差有關(guān),其主要來自采集葉片樣本時(shí)的小部分缺損或干枯或病害因素,使顏色信息受干擾而影響結(jié)果的準(zhǔn)確性。本試驗(yàn)采用圖像處理技術(shù)與深度學(xué)習(xí)方法實(shí)現(xiàn)葡萄葉片鉀含量的無損檢測,為現(xiàn)代精準(zhǔn)園藝農(nóng)業(yè)的信息化發(fā)展提供了技術(shù)支持。