武錦龍,苗榮慧,黃鋒華,楊華
(山西農(nóng)業(yè)大學(xué) 信息科學(xué)與工程學(xué)院,山西 太谷 030801)
水果在采摘、運(yùn)輸、銷售的過程中極易受到外力的影響形成機(jī)械損傷[1]。而輕微損傷在形成初期肉眼難以分辨,隨著時間推移,損傷部位會逐漸褐變甚至腐爛,這將嚴(yán)重影響水果的品質(zhì)和口感[2]。因此,在損傷形成初期對水果的損傷部位進(jìn)行快速檢測和識別對提高水果品質(zhì)具有重要意義[3]。油桃具有極高的營養(yǎng)價值,除含有人體所必需的多種氨基酸外,油桃還可以補(bǔ)氣養(yǎng)血、提高免疫力,具有較高的藥用價值[4]。
目前,國內(nèi)外對于水果輕微損傷檢測的研究報道較多。黃文倩等[5]以阿克蘇蘋果為研究對象,檢測損傷發(fā)生僅為半小時的蘋果,重點(diǎn)研究輕微損傷檢測中有效波長的提取。汪成龍等[6]以馬鈴薯為研究對象,針對其表面凹凸不平、具有芽眼的特性,提出了一種基于流行學(xué)習(xí)算法的機(jī)械損傷檢測方法。試驗(yàn)結(jié)果表明,采用PCA(Principal component analysis)-SVM(Support Vector Machine)方法對馬鈴薯機(jī)械損傷檢測效果最優(yōu)。趙杰文等[7]實(shí)現(xiàn)了對蘋果的輕微損傷檢測,在主成分分析的基礎(chǔ)上選取單波段波長圖像,結(jié)合高光譜成像技術(shù)和圖像分析技術(shù)實(shí)現(xiàn)了輕微損傷區(qū)域的提取。然而,傳統(tǒng)的水果損傷區(qū)域檢測算法主要包括特征提取與構(gòu)建分類器2部分內(nèi)容,該方法在特征提取與分類器構(gòu)建的選擇上具有一定的盲目性,沒有統(tǒng)一的標(biāo)準(zhǔn),很難達(dá)到最優(yōu)結(jié)果[8]。卷積神經(jīng)網(wǎng)絡(luò)(Convolutional neural network,CNN)可以將特征提取與構(gòu)建分類器合二為一,直接根據(jù)原始圖像進(jìn)行模式識別,已廣泛應(yīng)用于各個領(lǐng)域,尤其在作物種子識別[9]、蔬菜病蟲害檢測[10]、動物目標(biāo)檢測[11]和身份識別[12]等方面具有較好的識別結(jié)果。
本研究以油桃高光譜圖像為研究對象,在圖像分塊的基礎(chǔ)上,提出了基于卷積神經(jīng)網(wǎng)絡(luò)的損傷區(qū)域檢測算法。首先,針對原始圖像存在的復(fù)雜背景,采用基于顏色特征的圖像分割算法實(shí)現(xiàn)油桃與背景的分離。然后,采用分塊算法對圖像進(jìn)行處理,將分塊的數(shù)據(jù)標(biāo)記為正常、損傷和背景區(qū)域,并將獲取的數(shù)據(jù)分成訓(xùn)練集和測試集。最后,構(gòu)建卷積神經(jīng)網(wǎng)絡(luò)模型,利用訓(xùn)練集設(shè)置模型參數(shù),通過測試集進(jìn)行識別驗(yàn)證。圖1為油桃表面輕微損傷檢測流程圖。
圖1 油桃表面輕微損傷檢測流程Fig.1 Slight bruises detection procedure of nectarine
試驗(yàn)研究對象為“中油四號”油桃,樣本采集于山西省運(yùn)城市萬榮縣,共采集200個表面無明顯缺陷、形狀相近、大小相似的油桃樣本,采用人工模擬方式[13]在油桃表面制造輕微損傷,放置數(shù)天。采用高光譜圖像采集儀對獲得的帶有輕微損傷的油桃樣本進(jìn)行高光譜數(shù)據(jù)獲取,共采集了具有輕微損傷的油桃樣本圖像132幅。圖2為獲取的油桃樣本圖像。
圖2 油桃表面輕微損傷樣本圖像Fig.2 Sample image of nectarine with slight bruises
HyperSIS高光譜圖像采集系統(tǒng)(380~1 023 nm)如圖3所示。該系統(tǒng)主要包括:ImSpector V10E型光譜儀(Specim,F(xiàn)inland)和CCD面陣探測器,150 W光纖鹵素?zé)?IIumination,USA),電控移動平臺,計算機(jī)和暗箱等設(shè)備。儀器設(shè)備的主要參數(shù)為:光譜分辨率為1.2 nm;CCD面陣探測器的大小為672×1297;入射光狹縫寬度為30 μm。樣本采集在暗箱中進(jìn)行,獲取油桃樣本反射光譜數(shù)據(jù)。高光譜圖像是由一系列連續(xù)的波段圖像組成的三維圖像數(shù)據(jù)塊,可以同時獲取試驗(yàn)?zāi)繕?biāo)的光譜信息和圖像信息。
圖3 高光譜圖像采集系統(tǒng)Fig.3 Hyper-spectral image acquisition system 注:1.相機(jī); 2.光譜儀; 3.鏡頭; 4.光源; 5.樣本; 6.傳送帶; 7.暗室; 8.步進(jìn)電動機(jī); 9.計算機(jī)。Note:1. Camera; 2.Spectrograph; 3.Camera lens; 4. Illuminant; 5. Sample; 6. Conveyor; 7. Darkroom; 8. Stepping motor; 9.Computer.
在采集油桃樣本高光譜圖像數(shù)據(jù)時,為了避免采集過程中出現(xiàn)過度飽和、成像失真等問題,需要設(shè)置電控移動平臺的移動速度和設(shè)備的曝光時間。針對油桃樣本,經(jīng)多次試驗(yàn)確定最佳光譜數(shù)據(jù)采集參數(shù)為:電控移動平臺移動速度為2.0 mm·s-1曝光時間為15 ms。將油桃置于水平傳送帶上,采集每個油桃損傷部位的高光譜圖像。
為了消除光強(qiáng)變化和鏡頭中暗電流對成像造成的影響,以及計算掃描物體的相對反射光譜值,需在光譜采集前進(jìn)行黑白板校正[14]。計算公式為:
(1)
式中:R—校正后的漫反射光譜圖像;IR—樣本原始的漫反射光譜圖像;ID—黑板校正圖像;IW—白板校正圖像。
將油桃置于水平傳送帶上,采集每個油桃損傷部位的高光譜圖像。
采用ENVI 4.7(Research System Inc., USA),Matlab 7.5(The MathWorks Inc., USA)軟件對獲取的油桃高光譜數(shù)據(jù)進(jìn)行圖像和光譜數(shù)據(jù)分析。
傳統(tǒng)的模式識別方法大多注重基于人工設(shè)計的特征提取方法的研究,這些方法一般基于圖像的低層特征進(jìn)行學(xué)習(xí)且應(yīng)用領(lǐng)域較局限,不能夠較好地表達(dá)目標(biāo)的高層語義信息,因此,其判別性能和泛化能力較弱[15]。與傳統(tǒng)的人工設(shè)計特征不同,卷積神經(jīng)網(wǎng)絡(luò)可以根據(jù)已有的圖像信息通過自學(xué)習(xí)從低層特征逐層獲得高層抽象語義信息,具有較強(qiáng)地的判別和泛化能力[16]。因此,本研究采用卷積神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)油桃損傷部位的檢測。
對油桃樣本圖像識別之前,需要對圖像進(jìn)行圖像分割,實(shí)現(xiàn)油桃與背景的分離。由于油桃外表同時具有紅和綠兩種顏色,因此,本研究基于顏色特征對圖像進(jìn)行分割。圖4為油桃樣本單波段RGB通道圖像的灰度直方圖,其中(a)(b)(c)分別為油桃樣本R紅色、G綠色、B藍(lán)色通道的灰度直方圖。通過分析,圖4(a)與其它兩圖相比,具有明顯的雙峰性質(zhì),可以作為油桃圖像的分割依據(jù)。
圖4 油桃樣本RGB通道灰度直方圖Fig.4 RGB channel gray histogram of nectarine samples
圖5和圖6分別為采用自適應(yīng)閾值方式分割不同油桃樣本圖像的結(jié)果。圖5(a)、(b)、(c)和圖6(a)、(b)、(c)分別為紅色油桃樣本和綠色油桃樣本圖像對應(yīng)的RGB通道灰度圖,圖5(d)和6(d)為樣本圖像的分割結(jié)果。從圖5(d)和6(d)中可看出,該方法可較好地將油桃樣本從復(fù)雜背景中分離開。圖7為分別采用傳統(tǒng)的大津算法[17](OTSU)、迭代閾值法[18]、區(qū)域生長法[19]的分割結(jié)果,針對圖中兩樣本,OTSU算法分割的最佳閾值分別為53和92,迭代閾值法分割的最佳閾值為54和93。從圖中可看出,兩者分割結(jié)果相似,但都存在過分割現(xiàn)象,不能較好地實(shí)現(xiàn)油桃輪廓的分割。區(qū)域生長的基本思想是將具有相似性質(zhì)的像素集合起來構(gòu)成一個區(qū)域,實(shí)質(zhì)是將具有相似特性的像素元素連接成區(qū)域,圖6(d)中的生長點(diǎn)分別為[211,229]和[108,222],在種子點(diǎn)處進(jìn)行8鄰域擴(kuò)充,從圖中可看出,該方法不適用于灰度值相差不大的圖像,其分割結(jié)果最差。因此,本研究采用基于顏色特征的分割結(jié)果進(jìn)行后續(xù)試驗(yàn)。
圖5 基于顏色特征的油桃樣本1分割結(jié)果Fig.5 Segmentation results of sample 1 based on color features
圖6 基于顏色特征的油桃樣本2分割結(jié)果Fig.6 Segmentation results of sample 2 based on color features
圖7 傳統(tǒng)方法的油桃圖像分割結(jié)果Fig.7 Image segmentation results of nectarine by traditional methods
由于有輕微損傷的油桃樣本圖像中損傷部位一般占比較小,可將原始圖像采用分塊方法分成損傷部位、正常部位和背景區(qū)域。分塊過程為:將原始圖像進(jìn)行歸一化處理,統(tǒng)一大小為256×256的圖像;將圖像分割成32×32、64×64尺寸的塊,分塊重疊率為50%,那么每幅圖像將被分成15×15(即225)塊、7×7(即49)塊。圖8為油桃圖像分塊過程。通過分析可知,64×64尺寸的圖像塊攜帶的信息量大,效果較好,因此,采用64×64的尺寸制作數(shù)據(jù)集。
圖8 油桃圖像分塊過程Fig.8 Block segmentation of nectarine images
為每個分塊圖像制作標(biāo)簽,將圖像分為3類,即背景、正常油桃部位和損傷油桃部位,其中將白色背景標(biāo)記為1,正常油桃部位標(biāo)記為2,損傷油桃部位標(biāo)記為3。在標(biāo)簽制作的過程中,背景像素比例超過50%則標(biāo)記該塊為背景,油桃像素超過50%則標(biāo)記該塊為正常油桃,由于損傷部位一般都較小,損傷部位超過25%,則認(rèn)為該塊為損傷部位,通過這種方式可以有效的增大損傷區(qū)域塊與背景區(qū)域塊之間的差異,便于神經(jīng)網(wǎng)絡(luò)模型的區(qū)分。
采用典型的七層卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)[20]:輸入層、卷積層S1、下采樣層C1(即池化層)、卷積層S2、下采樣層C2、全連接層、輸出層。圖9為卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。
圖9 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)Fig.9 CNN structure
假設(shè)輸入圖像為X,卷積神經(jīng)網(wǎng)絡(luò)通過多層次的卷積層和下采樣層對輸入圖像進(jìn)行特征提取和降維[21]。在網(wǎng)絡(luò)中,用i表示網(wǎng)絡(luò)層數(shù),其中i=1,2,…,7,用Hi表示第i層的特征圖,如果第i層為卷積層,則Hi可表示為:
Hi=f(Wi?Hi-1+bi)
(2)
式中,Wi代表卷積神經(jīng)網(wǎng)絡(luò)中第i層卷積核的權(quán)值,Hi-1代表第i-1層的特征圖,bi為偏移向量,f(X)為激勵函數(shù)。Wi與Hi-1進(jìn)行卷積運(yùn)算,然后與當(dāng)前層的偏移向量bi相加,最終經(jīng)過非線性函數(shù)f(X)的激勵,獲得當(dāng)前層的特征圖Hi。
下采樣層的作用是針對特征圖進(jìn)行降維,并保證特征的尺度不變性[22],通過不同的下采樣方法(最大池化max-pooling、均值池化mean-pooling)針對特征圖進(jìn)行操作,得到采樣后的特征Hi:
Hi=subsampling(Hi-1)
(3)
經(jīng)過上述操作,輸入圖像X經(jīng)過多層次的卷積層和下采樣層分別進(jìn)行特征提取與降維,最后通過全連接層對變換后的特征進(jìn)行分類達(dá)到識別目的:
Y(m)=P(L=lm|H0;(W,b))
(4)
式(4)中,m是針對標(biāo)簽類別的索引,卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程就是最小化網(wǎng)絡(luò)損失函數(shù)L(W,b)的過程。
原始圖像共132幅,通過圖像分塊操作將原始圖像分成6 468幅圖。由于損傷區(qū)域數(shù)據(jù)集規(guī)模相對較小,需采用適當(dāng)?shù)臄?shù)據(jù)增強(qiáng)技術(shù)對數(shù)據(jù)集進(jìn)行擴(kuò)充。本文將圖像進(jìn)行水平鏡像變換、垂直鏡像變換、旋轉(zhuǎn)變換(90°、180°和270°),共構(gòu)造了38 808幅圖。經(jīng)篩選去除部分奇異樣本,剩余32 000圖像作為數(shù)據(jù)集,然后采用KS(kennard-Stone)方法將分塊圖像與其對應(yīng)的標(biāo)簽按照3∶1的比例隨機(jī)分成訓(xùn)練集(24 000個)和測試集(8 000個),輸入卷積神經(jīng)網(wǎng)絡(luò)模型中實(shí)現(xiàn)損傷檢測。
在卷積神經(jīng)網(wǎng)絡(luò)模型中,經(jīng)過多次試驗(yàn),模型參數(shù)設(shè)置如下:輸入層大小為64×64;卷積層S1的卷積核大小為5×5,卷積面?zhèn)€數(shù)為6;下采樣層C1和C2采用了非重疊的滑動窗口為2×2的下采樣區(qū)域,采用平均下采樣策略;卷積層S2的卷積核大小5×5,卷積面?zhèn)€數(shù)為12,最終各列網(wǎng)絡(luò)都通過全連接層輸出該網(wǎng)絡(luò)對于油桃損傷部位的判別結(jié)果。
表1為油桃損傷區(qū)域識別結(jié)果。在訓(xùn)練過程中設(shè)置不同學(xué)習(xí)率和訓(xùn)練塊,對比分析不同參數(shù)的識別率。從表1中可看出,在數(shù)據(jù)集相同的情況下,學(xué)習(xí)率為0.1,訓(xùn)練塊大小為50,其識別正確率最高為88.2%,卷積神經(jīng)網(wǎng)絡(luò)對油桃訓(xùn)練數(shù)據(jù)完成了480輪梯度下降(batch gradient descent)訓(xùn)練。表2為對應(yīng)3種區(qū)域的識別結(jié)果。從表2中可看出,背景、損傷區(qū)域和正常區(qū)域的識別正確率分別為92.7%,82.8%和85.7%,其中背景的識別率最高,損傷部位識別最低;背景的錯分?jǐn)?shù)目大多被分成正常區(qū)域,損傷區(qū)域的錯誤數(shù)目大多被分成正常區(qū)域,而正常區(qū)域的錯分?jǐn)?shù)目大多被分成背景,這是因?yàn)楸尘芭c正常區(qū)域和損傷區(qū)域差異性較大,損傷部位與正常區(qū)域本身存在相似性。
表1 油桃損傷區(qū)域識別結(jié)果Table 1 Bruises identification results of nectarines
表2 油桃三種區(qū)域識別結(jié)果Table 2 Three area identification results of nectarine
圖10為卷積層(S1)6個卷積面的權(quán)值參數(shù)可視化結(jié)果。圖10為卷積層S1部分輸出結(jié)果。試驗(yàn)結(jié)果表明,原始圖像可以通過不同的卷積面作用得到不同的卷積結(jié)果圖。從圖11中可看出,這些圖可以顯示原始圖像的輪廓信息、邊緣信息和顏色信息,能夠很好的提取不同特征。
以“中油四號”油桃為研究對象,在圖像分割、圖像分塊的基礎(chǔ)上,采用卷積神經(jīng)網(wǎng)絡(luò)方法實(shí)現(xiàn)油桃損傷部位的檢測。
圖10 卷積層(S1)6個卷積面的權(quán)值參數(shù)可視化Fig.10 Weight visualization results of six convolution planes (S1)
圖11 卷積層(S1)部分輸出結(jié)果Fig.11 Convolution layer (S1) partial output results
(1)利用本文方法對油桃損傷區(qū)域進(jìn)行識別,準(zhǔn)確率為88.2%,比傳統(tǒng)特征提取方法識別準(zhǔn)確率高。
(2)與傳統(tǒng)的人工設(shè)計特征相比,卷積神經(jīng)網(wǎng)絡(luò)的遷移學(xué)習(xí)特征方法在模式識別領(lǐng)域中具有更好的判別和泛化性能。
(3)由于油桃外表同時具有紅和綠2種顏色,其表面的輕微損傷較難檢測,本文采用基于顏色特征的分割方法將油桃從復(fù)雜背景中分離,具有較好地適應(yīng)性。后續(xù)可進(jìn)一步對油桃的自然缺陷損傷進(jìn)行研究,提高算法的識別范圍和能力。