王廣來,王恩鳳,王聰聰,劉大洋
東北林業(yè)大學機電工程學院, 黑龍江 哈爾濱 150000
梨在儲藏、 包裝和運輸?shù)冗^程中均可能發(fā)生不同程度的機械損傷,若不及時剔除損傷梨,隨著時間的推移,損傷會逐漸加重而演變成腐爛,造成巨大的經(jīng)濟損失[1]。由于梨的果皮顏色較暗,輕度皮下?lián)p傷依靠肉眼難以識別,實現(xiàn)梨損傷的自動化識別可以有效減小經(jīng)濟損失。此外,對梨損傷時間的評估有助于采用不同手段對梨進行加工處理,同時可以根據(jù)損傷時間對梨在儲藏、 包裝和運輸?shù)纫讚p傷環(huán)節(jié)進行監(jiān)控及改善,從而減少不必要的浪費和經(jīng)濟損失[2]。因此,建立一種梨早期損傷檢測及損傷時間評估的快速、 無損檢測方法對梨產(chǎn)業(yè)的健康發(fā)展具有重要意義。
高光譜圖像融合了圖像與光譜信息,可以同時采集果品的內外部品質信息,已經(jīng)廣泛地應用于蘋果[2]、 藍莓[3]、 棗[4]和梨[5-6]等果品的機械損傷檢測中。近年來,深度學習在大數(shù)據(jù)處理方面獲得了快速發(fā)展,通過對模型的預訓練,特征的自動提取與優(yōu)化,可以快速批量處理數(shù)據(jù),目前已越來越多地應用于果品檢測領域[7]。其中,Zhang等結合全卷積網(wǎng)絡與光譜透射圖像,對機械損傷后30 min的藍莓及其花萼部分進行分割,測試集準確率達到81.2%[8]。Wang等將高光譜圖像與深度學習相結合,使用AlexNet和ResNet兩種模型對藍莓機械損傷進行識別,兩個模型的精度分別為88.44%和89.52%[9]。Azizah等結合RGB圖像和卷積神經(jīng)網(wǎng)絡,使用卷積神經(jīng)網(wǎng)絡模型和4-折交叉驗證實現(xiàn)二值分類,對山竹表面缺陷識別準確率達到97.5%[10]。Bai等將光譜指紋特征與深度學習和多元回歸分析相結合,建立多產(chǎn)地蘋果的糖度預測模型,測試集的相關系數(shù)和均方根誤差分別為0.990和0.274,均優(yōu)于單產(chǎn)地模型[11]。以上研究說明,深度學習算法在高光譜圖像等大數(shù)據(jù)處理方面有較大的應用前景。
在對梨損傷檢測的研究中,針對損傷時間進行檢測的研究較少;另外,現(xiàn)有的關于果品損傷識別研究大多使用傳統(tǒng)的機器學習方法,這些方法在處理高光譜圖像數(shù)據(jù)時存在計算耗時長、 準確率低等問題,基于深度學習的遷移學習模型可以對小數(shù)據(jù)集實現(xiàn)精確的遷移學習,同時保證識別準確率和識別效率,目前尚未有將基于深度學習的遷移學習模型應用到高光譜技術檢測果品損傷的研究中。
水晶梨的抗旱、 抗寒能力強,果樹易種植,果實耐儲存,且價格相對實惠,受眾面廣,因此選用水晶梨作為研究對象。本研究的主要目的是應用高光譜圖像結合基于深度學習的遷移學習模型無損檢測不同損傷時間的水晶梨,具體過程如下:(1)使用主成分分析法對高光譜圖像降維,提取檢測損傷的主成分圖像;(2)將提取的主成分圖像拼接后進行數(shù)據(jù)擴充,分別采用傳統(tǒng)機器學習算法和基于ResNet50網(wǎng)絡的遷移學習模型檢測不同損傷時間的水晶梨;(3)綜合比較各模型的識別準確率,得到水晶梨損傷時間檢測的最優(yōu)模型。
高光譜采集系統(tǒng)如圖1所示,主要包括芬蘭Specim公司FX10系列的圖像光譜儀(SPECIM, Spectral Imaging Ltd, Finland)、 電動控制移動平臺、 6盞50 W鹵素燈和計算機等,在波長范圍400~1 000 nm內每隔2.62 nm采集一次圖像,共224幅圖像,一次采集六個樣本的高光譜圖像信息,像素大小為1 198×512,通過軟件ENVI 5.1(The Environment for Visualizing Images)對原圖像進行裁剪,一幅圖像保留一個樣本的高光譜信息,圖片的尺寸和光譜波段數(shù)為340×220×224。程序處理使用集成開發(fā)工具Pycharm 2019.3.3專業(yè)版,Python 3.7.1,開源深度學習框架Pytorch,版本1.6.0。
圖1 高光譜圖像采集系統(tǒng)示意圖Fig.1 Schematic diagram of hyperspectralimage acquisition system
于黑龍江省哈爾濱市的家樂福超市購買水晶梨樣本160個,從中挑選形狀規(guī)整、 大小均勻、 表面無明顯劃痕、 無腐爛的樣本80個。買回后置于實驗室(22~25 ℃)中24 h,使樣本溫度達到室溫,用毛巾擦去梨表面的污漬與灰塵,排除溫度、 水等其他因素的干擾。用萬能試驗機以5 mm·min-1的速度緩慢擠壓使每個樣本發(fā)生5 mm形變,損傷形成前后的樣本如圖2所示。采集高光譜圖像時先采集無損傷樣本的高光譜圖像,在形成損傷后24和48 h各采集一次高光譜圖像。
圖2 水晶梨擠壓前(a)和擠壓損傷后(b)圖像Fig.2 Images of crystal pear before (a) and after (b) crushing
為獲取清晰且不失真的高光譜圖像,設定平臺移動速度5.5 mm·s-1,移動平臺與鏡頭之間的距離為40 cm。通過橡膠圈將樣本固定在移動平臺上,使標記損傷部位與鏡頭垂直。
高光譜圖像系統(tǒng)獲取的是未經(jīng)黑白校正的原始高光譜圖像,為排除光線以及暗電流等因素的干擾,需要對原始高光譜圖像進行黑白校正,校正公式如式(1)
(1)
式(1)中,I是校正后的圖像,Iraw是原始圖像,Iwhite是標準白板的校正圖像,Idark是反射率接近0的暗光譜校正圖像。
1.4.1 主成分分析
原始光譜提供了豐富的信息,但各波長之間存在一定的相關性,可能會有重疊冗余的信息,常使用主成分分析(principal component analysis, PCA)減少各波長之間的線性相關影響,保留下來的特征信息之間沒有重復或冗余。
1.4.2 支持向量機
支持向量機(support vector machine, SVM)是基于統(tǒng)計學習方法提出的一種機器學習方法,其核心思想是通過核函數(shù)將輸入向量映射到一個更高維的空間,在這個空間中尋找一個超平面,使得超平面與各數(shù)據(jù)點之間的距離最大。SVM適用于高維度、 小樣本、 非線性等問題,本研究中數(shù)據(jù)量少,樣本分布不明確,所以使用SVM識別梨的早期損傷及損傷時間[12]。
1.4.3 k-近鄰算法
k近鄰(k-nearest neighbor, k-NN)算法是一種簡單、 有效的算法,主要思想是在確定已知類別的樣本后,計算特征空間中未知樣本與最近k個已知類別樣本的距離來確定未知樣本的屬類[4]。
1.4.4 ResNet50網(wǎng)絡與遷移學習
深度學習在應用過程中,大多使用RGB圖像,而果實的內部缺陷等信息并不能直觀的由RGB圖像顯示,需要通過高光譜圖像反映,但高光譜圖像所包含的數(shù)據(jù)信息較大,大數(shù)據(jù)集的建立較難,處理相比于RGB圖像更加復雜,導致訓練出來的模型精度不夠。遷移學習是一種新的學習范式,可以大大縮短訓練時間,并且對小數(shù)據(jù)集也能實現(xiàn)較高的精度[13]。
RestNet50網(wǎng)絡由16個殘差塊堆疊而成,網(wǎng)絡深度達到50層,有較強的特征提取能力,并且能夠解決網(wǎng)絡深度帶來的網(wǎng)絡退化和梯度消失等問題,使得網(wǎng)絡的性能不會因為網(wǎng)絡深度增加而下降,而且殘差塊中的跳躍連接沒有引入新參數(shù),也沒有增加模型計算量[14-15]。使用ImageNet數(shù)據(jù)集預訓練ResNet50網(wǎng)絡,把預訓練好的權重作為初始化權值遷移到水晶梨損傷數(shù)據(jù)集上進行訓練與微調,最終得到基于ResNet50網(wǎng)絡遷移學習的水晶梨損傷時間檢測模型。
為了選擇合適的特征圖像,保留更多損傷信息,對原始圖像先使用PCA降維,前8個主成分包含了原圖像99%的信息,如圖3所示。由圖3可見,PC4、 PC5和PC6中均清晰地顯示了梨的損傷區(qū)域,將這3個主成分作為檢測水晶梨壓傷的特征圖像,然后用掩模圖像與特征圖像相乘,減少計算量并消除背景的影響,得到去除背景后的光譜圖像。
圖3 基于輕微損傷樣本全波段PCA的前8個主成分圖像Fig.3 The first 8 PC images based on full-band PCA of slightly bruised samples
為了增加樣本數(shù)量,對拼接后的水晶梨特征圖像隨機進行上下翻轉、 左右翻轉,最終得到無損傷、 擠壓損傷24 h和擠壓損傷48 h的特征圖像各160張,然后按照9∶1比例隨機劃分樣本的訓練集和測試集。為使輸入的圖像數(shù)據(jù)符合基于ResNet50網(wǎng)絡遷移學習的要求,把圖像尺寸縮放成224×224×3;對于k-NN和SVM,因為計算時參數(shù)過多需要花費的時間過長,將圖像縮放為64×64×3后輸入2種模型。
SVM模型采用徑向基核函數(shù)(RBF),通過網(wǎng)格搜索確定懲罰因子C=4,回歸誤差權重γ設置為樣本特征數(shù)的倒數(shù)。k-NN模型的性能與k值、 權重值(weights)以及距離計算公式緊密相關。權重有兩個取值,一個是uniform,每個相鄰點與觀測點距離的權重都是相同的,另一個取值為distance,權重值為鄰近點到該點距離的倒數(shù),距查詢點近的近鄰比遠處的近鄰具有更大的影響力。通過網(wǎng)格搜索確定模型參數(shù)k=8,權重選用distance,距離計算公式為曼哈頓距離。相比于原來的ResNet50網(wǎng)絡,基于ResNet50網(wǎng)絡的遷移學習模型更改了全連接層模塊結構,在分類器中添加dropout操作。加入一個線性函數(shù),把最后一個全連接層的輸入連接到有256個輸出單元的線性層,接著連接Relu層和dropout層,設置dropout=0.4,訓練時隨機舍棄全連接層40%的神經(jīng)元個數(shù)用于防止過擬合,最后是256×3的線性層,輸出為3通道的softmax層。各模型對梨損傷的識別結果如表1所示。
從表1可見,基于ResNet50網(wǎng)絡的遷移學習模型預測識別率為93.75%,優(yōu)于SVM的83.33%和k-NN的85.42%。另外,SVM和k-NN模型的訓練集精度遠高于測試集,出現(xiàn)了過擬合現(xiàn)象。總體上,基于ResNet50網(wǎng)絡的遷移學習模型預測效果最好,SVM模型的預測效果最差。
表1 SVM,k-NN和ResNet50網(wǎng)絡遷移學習判別模型識別結果
各模型對擠壓損傷識別的混淆矩陣如圖4所示,從圖中可見,對于無損傷樣本3個模型均能正確識別,SVM將31%損傷24 h的樣本誤判為損傷48 h,將16%損傷48 h的樣本誤判為無損傷樣本,將5%損傷48 h的樣本誤判為損傷24 h;k-NN分別將7%損傷24 h和7%損傷48 h的樣本誤判為無損傷樣本,7%損傷24 h的樣本誤判為損傷48 h,27%損傷48 h的樣本誤判為損傷24 h;ResNet50網(wǎng)絡遷移學習模型將17%損傷24 h的樣本誤判為損傷48 h,將5%損傷48 h的樣本誤判為損傷24 h。結果表明,ResNet50網(wǎng)絡遷移學習模型對擠壓損傷24 h和擠壓損傷48 h樣本均具有較高的識別準確率。
與本研究相似的還有陳欣欣等[5]2017年利用高光譜成像技術對庫爾勒梨早期損傷進行快速識別檢測,采集了無損傷樣本和損傷后1~7 d樣本的高光譜圖像,建立支持向量機判別模型,識別準確率達到93.75%;林思寒等[16]2018年以翠冠梨表面機械碰壓損傷為研究對象,分別采集了無損傷樣本、 損傷后1~7,11和14 d的翠冠梨高光譜圖像數(shù)據(jù),建立偏最小二乘線性判別分析模型,整體識別率為84%,去除第一天的損傷數(shù)據(jù)識別準確率達到92.22%- 損傷24 h內的樣本識別難度較大。
圖4 各模型對擠壓損傷時間預測識別的混淆矩陣Fig.4 Confusion matrix of each model for the identification of crush bruise time
采用高光譜圖像技術建立了無損傷、 擠壓損傷24 h和擠壓損傷48 h的水晶梨樣品識別模型,對高光譜圖像進行主成分分析及數(shù)據(jù)擴充后,分別建立了SVM、 k-NN和基于ResNet50網(wǎng)絡的遷移學習識別模型,并綜合比較了各模型的識別效果。結果表明,主成分分析能夠快速、 有效地提取特征圖像、 減少模型輸入變量;基于ResNet50網(wǎng)絡的遷移學習模型識別效果最佳,其對測試集無損傷、 擠壓損傷24 h和擠壓損傷48 h的水晶梨正確識別率分別達到100%,83%和95%;表明,高光譜圖像技術結合基于ResNet50網(wǎng)絡的遷移學習方法可以快速、 無損地預測水晶梨的損傷時間。