張德軍,周學成,2,楊旭東
(1 華南農業(yè)大學 工程學院,廣東 廣州 510642; 2 華南農業(yè)大學 南方農業(yè)機械與裝備關鍵技術教育部重點實驗室,廣東 廣州 510642)
芒果Mangifera indica作為著名的熱帶亞熱帶水果,以其色香味俱佳而享有“熱帶果王”的美譽,具有極高的營養(yǎng)價值和經濟價值,在熱帶及南亞熱帶地區(qū)有廣泛栽培[1]。我國是芒果原生產地之一,種植歷史悠久,在海南、廣東、廣西、福建、云南、四川等省份建立的規(guī)模化種植的芒果園,成為重要的地區(qū)特色農業(yè)經濟產業(yè)。
由于長期施用過量的化學肥料和農藥,土壤環(huán)境不斷地發(fā)生惡化,果類病毒產生新的抗藥性,芒果出現新的感染狀況并產生諸多病癥,如海綿組織病、心腐病、軟鼻子病、空心病等生理性病害,對芒果的品質產生了嚴重的影響。在部分芒果產區(qū),由此類病害造成的芒果損失率甚至達到了30%以上?;加写祟惒『Φ拿⒐砻媾c沒有患病的芒果相比并無差異,憑肉眼無法觀測出來,經驗豐富的果農也無法準確對此類芒果做到挑揀和分類,這也就對芒果果實的品質檢測和分級技術提出了新的應用方向與挑戰(zhàn)[2-5]。
現代農業(yè)無損檢測技術正朝著智能化方向發(fā)展,結合計算機圖形圖像分析與深度學習的技術正成為水果品質檢測的新方向和研究熱點[5-7]。研究采用可見/近紅外光譜、核磁共振和X射線等檢測技術,無損地獲得果類果實的內部組織特征圖像,然后結合圖像處理和模式識別等相關技術,進行組織提取和病狀類型分析識別,從而實現果實品質檢測和分級[8-9]。
國內外眾多學者在農產品果類檢測方向開展了大量的研究。2018年余心杰[10]基于可見光和近紅外光 (Visible-near infrared, VIS-NIR)高光譜反射成像技術,研究開發(fā)了一種由堆棧自編碼器(Stacked auto-encoder,SAE)和全連接神經網絡組成的深度學習方法,用于預測收獲的庫爾勒香梨的硬度和可溶性固形物含量(Soluble solids content,SSC),證明了深度學習方法與高光譜成像技術相結合,可用于庫爾勒香梨的快速無損檢測硬度和SSC。2019年Nasiri等[11]采用深卷積神經網絡模型 (Convolutional neural network, CNN)VGG-16 在棗果圖像數據集上進行訓練和測試,來鑒別健康棗果和缺陷棗果并用來預測健康棗的成熟期,VGG-16模型的分類準確率達到了96.98%,證明了深卷積神經網絡模型優(yōu)于傳統(tǒng)的基于圖像特征的棗果圖像分類方法。2019年Wan等[12]提出了一種改進的快速R-CNN深度學習網絡模型,用于機器人視覺系統(tǒng),實現了蘋果、芒果和桔子等多類水果檢測,達到了91%以上的檢測正確率,該深度學習模型提高了圖像處理速度,也更適合于實際場景。2020年Osako等[13]通過對預訓練的VGG16網絡進行微調,構建了荔枝品種識別模型,該模型對荔枝水果圖像進行品種識別,實現了98.33%的準確性,研究表明深度學習可用于區(qū)分荔枝品種。
遷移學習是一種機器學習的方法[14-17],是解決訓練數據不足這一基本問題而發(fā)展起來的重要方法,其基本原理是通過已學習的相關任務中知識轉移來改進新任務的學習[17-20]。近年來深度學習技術在圖像識別分析領域取得了長足的進步,但是必須要有海量的訓練數據作為支撐,來理解數據的潛在模式,才能夠實現網絡模型的訓練[20-22]。深度遷移學習將在原域中預先訓練好的深度學習網絡結構重新利用,將其用于目標領域的深度神經網絡的一部分,因為原網絡已經學習了圖像豐富特征,有很好的泛化性,通過網絡微調可以實現相應的目標領域學習,大大加快了學習速度[23-25]。
本文基于芒果果實計算機層析成像(Computed tomography,CT)設備所得的芒果CT序列圖像,提出了傳統(tǒng)圖像處理技術和深度遷移技術相結合的芒果病狀識別判斷方法。工作內容包括:1)芒果果實CT序列圖像內部壞損區(qū)域的提取方法研究;2)利用AlexNet和GoogLeNet[26-28]預訓練網絡開展芒果病狀的識別研究。
基于平板探測器的計算機層析成像系統(tǒng)(圖1)采集芒果CT序列圖像。該系統(tǒng)主要由X射線源分系統(tǒng)、平板探測器分系統(tǒng)、機械掃描分系統(tǒng)、圖像處理分系統(tǒng)以及安全及輔助分系統(tǒng)組成[29]。該系統(tǒng)采用的平板探測器為VARIAN PaxScan2520V,其像元尺寸為0.127 mm,A/D轉換器位數為14位。
圖 1 基于平板探測器的計算機層析成像(CT)系統(tǒng)Fig. 1 Computer tomography (CT) system based on flat panel detector
選擇外表無破損、內部組織壞損的芒果類型。實驗室環(huán)境要求常溫,濕度小于82%,磁場干擾較小,所有芒果樣品圖像采集的過程中實驗室條件、采集方法和參數設置必須一致,這樣才能減少誤差。設備參數:平板探測器的積分時間為200 ms,X光機的電壓為 45~50 kV,電流為 1 mA,CT 檢測時根據檢測對象大小設置熱區(qū)參數,掃描方式為標準連續(xù)掃描。
本文采集海綿組織病和空心病芒果16位DICOM格式CT序列圖像(512×512),海綿組織病序列圖像650張,空心病序列圖像379張,有效圖像分別為624張和365張。海綿組織病和空心病芒果CT序列圖像如圖2所示。
芒果CT圖像的像素點的灰度值集中分布在0~35以內,芒果外區(qū)域集中在0~10。圖3中的a和b分別是對海綿組織病芒果和空心病的CT序列圖像作灰度值統(tǒng)計,驗證了芒果有效像素值分布在灰度值較低范圍,截取256灰度級的原始圖像灰度。
圖 2 海綿組織病芒果和空心病芒果Fig. 2 Mango with spongy tissue disease and mango with hollow disease
圖 3 海綿組織病芒果和空心病芒果CT圖像灰度值分布Fig. 3 Gray value distribution in CT images of mango with spongy tissue disease and mango with hollow disease
灰度變換是實現圖像對比度增強的重要手段,最終的目的是為了增強圖像清晰度,讓圖像細節(jié)更加突出。在樣本的處理中發(fā)現未壞損區(qū)域的灰度值接近于恒定在14~35,根據灰度的分布特點,結合實際的圖像效果,本文采用了分段函數法來實現圖像對比度增強。
分段函數法又稱為分段變換,為了突出感興趣的目標或灰度區(qū)間,抑制不感興趣的目標或灰度區(qū)間,常采用分段線性變換法。芒果圖像未壞損區(qū)域的灰度值接近于恒定在14~35,采用分段函數將未壞損區(qū)域的灰度值拉伸變大,壞損區(qū)域的灰度值保持不變,公式如下:
采用分段函數的效果,如圖4和圖5所示。
圖 4 海綿組織病芒果圖像采用分段函數法變換Fig. 4 Piecewise function to transform image of mango with spongy tissue disease
圖 5 空心病芒果圖像采用分段函數法變換Fig. 5 Piecewise function to transform image of mango with hollow disease
芒果CT序列圖像在獲取的過程中,因為受到溫濕度、磁場干擾、信號傳輸過程中的損耗、振動噪聲等試驗條件的限制,降低了圖像的質量,造成最終的成像效果失真,這樣必然影響后續(xù)的圖像分析與研究,采用圖像濾波處理的方法來進行降噪處理。根據獲取的芒果CT序列圖像的成像特點,研究采用空間域濾波處理的方式??臻g域濾波包括線性濾波和非線性濾波。最終采用了中值濾波和雙邊濾波相結合的方法,對圖像實現降噪處理。中值濾波有去除脈沖噪聲和椒鹽噪聲,保留圖像的邊緣細節(jié)的作用。其算法原理是基于濾波器所在圖像區(qū)域中像素灰度值的排序,由排序結果決定的值R代替中心像素的值,公式如下:
雙邊濾波是高斯濾波的改進,高斯濾波中只有關于空間距離的權重,而雙邊濾波在此基礎上添加了關于灰度距離的權重,可以消除圖像噪聲,實現圖像平滑,同時保留邊緣信息。實現方法:1個與空間距離相關的高斯函數與1個灰度距離相關的高斯函數相乘,得到最終的卷積模板,雙邊濾波需要每個中心點鄰域的灰度信息來確定其系數,計算量增長速度為核大小的平方??臻g距離指的是當前點與中心點的歐式距離??臻g域高斯函數其數學形式為:
將得到的權重與鄰域像素灰度值相乘并疊加,然后再除以權重和,最終獲得該像素點的灰度值:
由于X射線在穿透物體時,光子會發(fā)生散射、折射和衍射等現象,在芒果CT圖像區(qū)域會形成大量的椒鹽噪聲(如圖6所示)。要求去除椒鹽噪聲,盡量保留壞損區(qū)域的邊緣信息和實現圖像平滑,確定先雙邊濾波,再進行中值濾波的濾波處理方案。選定中值濾波窗口尺寸為4×4,雙邊濾波參數:濾波半徑=5,全局方差=8,局部方差=0.2,達到了較好的圖像處理效果。
圖 6 芒果CT圖像椒鹽噪聲分布Fig. 6 Distribution of salt and pepper noise in mango CT image
從整體和細節(jié)放大角度進行了對比分析,以海綿組織病芒果的第300層CT序列圖像為例,進行了濾波效果展示。通過圖7、圖8分析,中值濾波結合雙邊濾波的圖像濾波處理方案是可行的,能夠去除椒鹽噪聲,實現圖像平滑,壞損區(qū)域邊緣信息得到了保留。文中采用的均值濾波器和高斯濾波器模板如圖9所示。
圖 7 芒果CT圖像多方案濾波效果對比Fig. 7 Effect comparison of several filtering schemes in mango CT images
圖 8 芒果CT圖像多方案濾波效果細節(jié)放大對比Fig. 8 Effect comparison of several filtering schemes with detail amplification in mango CT images
圖 9 均值濾波器和高斯濾波器模板Fig. 9 Mean filter and Gaussian filter templates
圖像分割是為了提取芒果CT圖像內部組織壞損區(qū)域,對芒果果實內部的各種病害進行特征分析。不同病狀芒果以及同一芒果不同層級序列圖像呈現出不同的差異特點,使用圖像二值化、形態(tài)學填充和差影法相結合的圖像分割算法。
因為芒果CT序列圖像上的不同部分具有不同亮度,局部自適應閾值法可以在同一幅圖像上的不同區(qū)域采用的是不同的閾值,亮度較高的圖像區(qū)域的二值化閾值通常會較高,而亮度較低的圖像區(qū)域的二值化閾值則會相應地變小,從而在亮度不同的情況下得到更好的結果。本文選擇了局部自適應閾值法,進行圖像的二值化處理。局部自適應閾值法步驟:
1)均值平滑圖像(本文采用4×4模板)。
2)求平滑圖像梯度圖:
3)平滑圖像作Laplacian運算:
4)新建與原圖像同樣大小的零矩陣圖像,用原始圖像候選點中的灰度值代替零矩陣圖像中對應像素的灰度值。
5)多次迭代求閾值面:
6)根據閾值面作二值分割:
本文對海綿組織病和空心病芒果所有有效層CT圖像做了二值化處理。以圖10中海綿組織病芒果二值化圖像為例,局部自適應閾值法可以準確地將壞損區(qū)域和正常果肉區(qū)域分開,各相近層提取的壞損區(qū)域之間表現出明顯的連續(xù)性。
圖 10 海綿組織病芒果二值化序列圖像Fig. 10 Binary sequence images of mangoes with spongy tissue disease
研究的病狀芒果果實樣品都是外部完好、內部出現壞損的類型,果實的邊緣部分都是封閉的,所以本文中采用了基于邊界封閉的種子填充形態(tài)學方法進行芒果果實圖像內部區(qū)域填充[30]。種子填充算法定義:
點X0像素灰度值為1,B表示結構元,⊕表示形態(tài)學膨脹運算,如果Xk=Xk?1,則算法在迭代的第k步結束,用1填完所有孔洞。Xk和A的并集包含被填充的集合和它的邊界。利用Ac的交集將結果限制在感興趣區(qū)域內,實現條件膨脹。本文選擇種子填充算法,孔洞填充后效果如圖11b、圖12b所示。差影法多應用于同一背景的圖片中搜索差異。圖像f1被填充,其背景、位置在填充過程中沒有發(fā)生改變,整個區(qū)域的值都為255,得到填充圖像f2;未填充的圖像f1保留著內部壞損信息(壞損區(qū)域值為0),與f2做差影,得到圖像f3。差影法公式:
空心病芒果序列圖像的第300層和海綿組織病芒果序列圖像的第300層的圖像分割效果,如圖11、圖12所示。
圖 11 空心病芒果圖像差影法分割效果(第300層)Fig. 11 Image segmentation effect of mango with hollow disease using background subtraction (The 300th layer)
圖 12 海綿組織病芒果圖像差影法分割效果(第300層)Fig. 12 Image segmentation effect of mango with spongy tissue disease using background subtraction (The 300th layer)
深度遷移學習模型,針對未做圖像處理和已做圖像處理的芒果圖像數據開展訓練和測試,分析分類識別效果?;贏lexNet和GoogLeNet深度學習網絡模型,芒果序列圖像數據集作為訓練數據開展遷移學習,調整超參數,完成訓練過程的網絡微調,實現分類任務。在不同模型下,對比了未做圖像處理和做了圖像處理的芒果圖像測試集在模型的分類結果。
AlexNet和GoogLeNet已基于超過一百萬個圖像進行訓練,將圖像分為1 000個對象類別,學習了豐富的特征表示。AlexNet是在LeNet的基礎上加深了網絡的結構,學習更豐富更高維的圖像特征,其特點包括:更深的網絡結構;使用層疊的卷積層和池化層來提取圖像的特征;使用Dropout抑制過擬合;使用數據增強抑制過擬合;使用Relu替換之前的Sigmoid的作為激活函數。GoogLeNet相比與AlexNet網絡,增加了網絡層數和Inception模塊增強卷積模塊功能,在增加網絡深度和寬度的同時減少了參數,其參數數量約為AlexNet的1/12,提升了計算性能。
修改預先訓練好的網絡并使用遷移學習進行訓練以執(zhí)行新識別任務,微調預先訓練好的網絡比構造和訓練新網絡更快、更容易,使用更少數量的訓練圖像迅速遷移學習到新任務。遷移學習的算法流程,如圖13所示。
圖 13 深度遷移學習算法流程圖Fig. 13 Flow chart of deep transfer learning algorithm
最后3層替換為全連接層、softmax層和分類輸出層,將層遷移到新分類任務。根據芒果數據指定新的全連接層的選項,將全連接層分類值設置為分類數目。對于遷移學習,要保留預訓練網絡的較淺層中的特征(遷移層權重),通過增大全連接層的學習率因子,加快新的最終層中的學習速度,這種學習率設置組會加快新層中的學習速度;執(zhí)行遷移學習時,所需的訓練輪數相對較少,一輪訓練是對整個訓練數據集的一個完整訓練周期。
網絡評估的目的是為了提高模型在應用過程的準確率,可以繼續(xù)迭代,重新研究訓練方案、檢查數據以及重新配置模型參數。評估分類模型指標有精準率(Precision)、召回率(Recall)、F1分值(F1-score)、準確率(Accuracy)和宏平均(Macroaverage)。
式中,TP表示樣本屬于正類,且被正確地歸為正類;FP表示樣本不屬于正類,但被錯誤地歸為正類;FN表示樣本屬于正類,但被錯誤地歸為其他類;TN表示樣本屬于其他類,且被正確地歸為其他類,n表示類的個數。Precision衡量正樣本的分類準確率,Recall表示分類正確的正樣本占總的正樣本的比例,F1-score是Precision和Recall的調和平均,Accuracy衡量所有樣本被分類準確的比例。Macroaverage則是綜合了性能指標的Precision、Recall和F1-score的信息,常和Accuracy一起用來評價模型整體的分類性能。
芒果數據集分為訓練集、驗證集和測試集,打上標簽。芒果圖像數據集分為兩大類,即未經圖像處理數據集和經圖像處理后的數據集。其中未經圖像處理數據集包括3類:無病癥芒果CT圖片(2 168 張),海綿組織病芒果 CT 圖片 (1 924 張),空心病芒果CT圖像(864張)。經圖像處理后的數據集包括5類:無病癥芒果圖片(2 168張)、海綿組織病芒果圖片(1 924張)、空心病芒果圖片(864張)、海綿組織病壞損區(qū)域圖片(1 920張)、空心病壞損區(qū)域圖片(864張)。通過水平翻轉、垂直翻轉、順時針旋轉90°得到了更多的圖像數據,圖14和圖15分別展示了未經圖像處理數據集和經圖像處理后的數據集其變換后的形式。
圖 14 未處理芒果圖像Fig. 14 Unprocessed mango image
圖 15 處理后的圖像Fig. 15 Mango image after image processing
未經圖像處理數據集分為訓練集、驗證集和測試集,隨機取各類圖片數目的60%作為訓練集,20%作為驗證集,20%作為測試集。訓練集是作為模型擬合的數據樣本,驗證集用于調整模型的超參數和對分類模型的能力進行初步評估,測試集是用于評估分類模型的泛化能力。
深度遷移學習模型訓練階段監(jiān)視模型的訓練準確率、訓練損失、驗證準確率和驗證損失,在訓練過程中,通過調整超參數來優(yōu)化分類模型,調整的超參數:迭代輪數 (Epoch)、最小批 (Mini batch)和學習速率(Learning rate)。迭代1輪是指訓練算法完全通過整個訓練集,訓練迭代輪數越多,網絡訓練時間越長,準確率會隨著每次迭代而提高。最小批是指在CPU上處理的訓練數據集的子集,最小批越大,訓練速度越快。學習速率是控制訓練精度的主要參數,學習速率越低,訓練結果準確率越高,但網絡訓練時間會更長?;谖刺幚淼拿⒐麍D像數據集進行訓練時,迭代輪數設為3,最小批值設置為64,不斷調整學習速率來優(yōu)化分類模型?;贏lexNet和GoogLeNet網絡通過設置學習率不同值,開展訓練,現分別取值為 0.000 8、0.000 5 和0.000 2,進行分類模型性能的評估。表1中展示了各個模型針對未處理芒果圖像的分類性能參數。所有模型的迭代次數均為138。
表 1 深度遷移學習模型性能參數(未處理圖像)Table 1 Performance parameters of deep transfer learning model (Unprocessed image)
文中加載未經圖像處理數據集,通過訓練深度遷移學習模型,構建了多種分類算法模型。AlexNet模型在學習率 0.000 8、0.000 5 和 0.000 2下,Accuracy分別為84.88%、90.22%和94.15%,Macro-average分別為83.18%、88.47%和92.93%。GoogLeNet模型在學習率 0.000 8、0.000 5 和 0.000 2下,Accuracy分別為90.73%、95.36%和98.79%,Macro-average分別為89.14%、94.38%和98.41%。當學習率為0.000 5和0.000 2,深度遷移學習模型分類效果較優(yōu);學習率值變小,深度遷移學習模型的分類性能有較大提升;在同一學習率下,GoogLeNet網絡的分類效果明顯優(yōu)于AlexNet網絡。
與未處理圖像的分類比例相同,隨機取各類圖片數目的60%作為訓練集,20%作為驗證集,20%作為測試集。圖像處理數據集與未經處理數據集相比,增加了海綿組織病壞損區(qū)域圖片和空心病壞損區(qū)域圖片,為保證對比效果,其他各類圖片數量保持不變。對處理的數據集進行模型訓練時,將迭代輪數值固定為3,將最小批值設置為64,不斷調整學習速率值來優(yōu)化分類模型?;贏lexNet和GoogLeNet網絡訓練模型的學習率分別取值為0.000 8、0.000 5 和 0.000 2,進行性能的評估。表 2中展示了各個模型針對未處理芒果圖像的分類性能參數。所有的模型的迭代次數均為216。
表 2 深度遷移學習模型性能參數(處理圖像)Table 2 Deep transfer learning model performance parameters (Processed image)
加載圖像處理數據集,訓練深度遷移學習模型。深度遷移學習模型在圖像處理數據集下的分類模型分類指標較未處理的數據集下有較大的提升。
AlexNet模型在學習率 0.0008、0.0005 和 0.0002下,Accuracy分別為95.39%、97.40%和100%,Macro-average分別為94.95%、96.93%和100%。GoogLeNet模型在學習率 0.0008、0.0005 和 0.0002下,Accuracy分別為98.05%、100%和100%,Macro-average分別為97.70%、100%和100%。基于同一數據集并且超參數一致時,GoogLeNet網絡的分類效果明顯優(yōu)于AlexNet網絡。GoogLeNet網絡的訓練時間較長。在學習率為0.000 5和0.000 2時,基于圖像處理數據集得到的GoogLeNet分類模型,達到了100%的分類精度。相較于芒果圖像識別算法的計數識別準確率82.3%[24],基于改進Faster R-CNN的芒果識別平均識別精度均值為88.94%[28],有極大提升。
綜合考慮模型的性能參數和訓練時間,選用基于GoogLeNet網絡深度遷移學習模型在學習率為0.0002、迭代輪數為3、最小批值為64時,開展訓練,將所得模型作為最終的分類模型。
1)針對芒果CT序列圖像壞損區(qū)域獲取的問題,本文采用分段函數法、中值濾波結合雙邊濾波的圖像處理方案實現圖像增強,通過局部閾值自適應法開展圖像二值化處理,然后通過形態(tài)學種子填充法進行填充,最后利用差影法提取了芒果內部組織的壞損區(qū)域,能夠準確地分割出壞損區(qū)域,分割效果較好。
2)本文訓練AlexNet和GoogLeNet分類模型,通過比較Accuracy和Macro-average分類性能參數,GoogLeNet網絡對芒果圖像分類識別的效果最優(yōu)。當學習速率為0.0002,基于未處理數據集和處理過的數據集進行分類,GoogLeNet網絡分類模型性能極佳,可以作為本文芒果數據的分類模型。深度遷移學習模型在水果圖像分類領域大有可為。
3)本文分割提取后的芒果壞損區(qū)域圖像,特征明顯,易于區(qū)分,在類型識別過程中可達到極高準確度,體現了結合圖像處理技術開展深度學習分類識別,具有較高的實際意義。
4)算法的局限性。文中的芒果數據并不能代表所有的海綿組織病和空心病芒果的壞損情況,主要是由于芒果有自己的生長周期,并且壞損情況受到溫濕度、土壤水平和種植手段等多方面的影響,在未來的研究中,可以通過增加數據量來探究某類型病狀芒果內部壞損的演變過程。