李 龍 彭彥昆 李永玉 王 凡 張 捷
(1.中國農(nóng)業(yè)大學工學院, 北京 100083; 2.國家農(nóng)產(chǎn)品加工技術(shù)裝備研發(fā)分中心, 北京 100083;3.北京出入境檢驗檢疫局檢驗檢疫技術(shù)中心, 北京 100026)
2016年中國蘋果產(chǎn)量已經(jīng)達到了4.3×107t[1]。隨著生活水平的提高,人們對蘋果的品質(zhì)要求越來越高,但傳統(tǒng)的蘋果外觀品質(zhì)分級主要依靠人工挑揀,存在耗時、準確率低,耗費人工的缺點。機器視覺技術(shù)幾十年的發(fā)展,在農(nóng)產(chǎn)品檢測中發(fā)揮出巨大的優(yōu)勢,具有檢測速度快、準確、智能化程度高的優(yōu)點。機器視覺技術(shù)可對蘋果的外觀品質(zhì)做出評判,主要包括傷痕、顏色和大小[2-6],其中蘋果的顏色和大小檢測已經(jīng)比較成熟的應(yīng)用于生產(chǎn)之中[7],但由于蘋果的表面?zhèn)劬哂信c果梗/花萼相似的特征,導(dǎo)致在實際生產(chǎn)中難以對蘋果的果梗/花萼和傷痕進行區(qū)分,所以解決蘋果果梗/花萼和傷痕的區(qū)分問題成為檢測蘋果傷痕的前提。
針對蘋果的外部傷痕檢測,國內(nèi)外學者進行了大量的研究。THROOP等[8]利用自行設(shè)計的蘋果定向結(jié)構(gòu),使得蘋果的果梗/花萼不在相機視場之內(nèi),但定向結(jié)構(gòu)復(fù)雜且成本較高。田有文等[9]利用高光譜成像技術(shù)結(jié)合紋理特征實現(xiàn)了對蘋果的缺陷和果梗/花萼的識別,結(jié)果表明,采用徑向基核函數(shù)所建立的SVM模型總體正確率為97.8%,但高光譜系統(tǒng)檢測速度較慢,不能滿足在線檢測蘋果外部品質(zhì)的需要。ZOU等[10]利用3個相機實現(xiàn)了對蘋果整個表面的信息獲取,并以此完成了蘋果外部傷痕的檢測,但未提及果梗/花萼對傷痕檢測的影響。ZHANG等[11]利用進化構(gòu)造(Evolutionary constructed,ECO)特征實現(xiàn)了蘋果果梗/花萼和外部傷痕的區(qū)分,區(qū)分的正確率達到94%。邱光應(yīng)[12]利用紋理特征的方法實現(xiàn)了蘋果外部傷痕和果梗/花萼的區(qū)分,但未對其應(yīng)用范圍作出規(guī)定。
針對目前蘋果外部傷痕檢測中存在的檢測結(jié)構(gòu)復(fù)雜、成本高和適用范圍不廣的問題,本文首先對蘋果外部傷痕的等級進行區(qū)分,對于早中期的蘋果傷痕,采用紋理特征的方法與果梗/花萼進行區(qū)分。而對于后期的蘋果傷痕,采用邊緣梯度特征的方法予以區(qū)分。再利用自行設(shè)計的蘋果外部品質(zhì)檢測系統(tǒng)對算法進行試驗驗證。
試驗所用材料購于北京美廉美超市,為產(chǎn)自山東省棲霞市的紅富士蘋果,共150個樣本,其中有外部傷痕的樣本為100個。鑒于碰傷是蘋果中最常見的傷痕類型,首先利用鋼制小球撞擊出50個碰傷蘋果樣本,同時在超市中選購帶有蟲蛀和劃傷的樣本各25個。小球的直徑為20 mm,質(zhì)量為200 g,每次從500 mm的高度落下,樣本可形成直徑為10 mm的碰痕,之后將所制作的碰傷蘋果和選購的樣本置于室溫(20℃)2 h后用于分析。為了探究紋理特征和邊緣梯度特征對不同時期傷痕的適用性,將形成傷痕24 h之內(nèi)的規(guī)定為早期傷痕樣本,早期傷痕的樣本褐變較輕微,表皮有褐變但未發(fā)黑,將形成傷痕24~48 h之內(nèi)的規(guī)定為中期傷痕,中期傷痕褐變較早期傷痕嚴重,果皮顏色為褐色。將形成傷痕48 h以上的規(guī)定為后期傷痕樣本,后期傷痕的樣本褐變嚴重,并且表皮發(fā)黑凹陷,與無傷痕果皮對比明顯,圖1為不同樣本的早期傷痕、中期傷痕和后期傷痕的對比圖。
圖1 早期傷痕、中期傷痕和后期傷痕樣本對比Fig.1 Comparison of early mid-term and late scars from different samples
圖2 機器視覺檢測系統(tǒng)結(jié)構(gòu)圖Fig.2 Structure diagram of machine vision inspection system1.相機 2.上光源 3.滾子 4.膠帶傳動模塊 5.下光源 6.支架
本文所采用的機器視覺圖像采集系統(tǒng)主要由相機、條形光源、支架、膠帶傳動模塊以及滾子組成。其總體結(jié)構(gòu)如圖2所示。其中,為了更好地照亮蘋果,光源分為4個上光源和4個下光源,上光源主要用于照亮蘋果的上部,下光源用于照亮蘋果的四周。為了增大蘋果有傷痕部分和無傷痕部分以及背景的對比度,光源選擇波長為730 nm的紅色光源[13]。相機采用的是大恒圖像公司生產(chǎn)的水星系列MER-130-30UM型相機,用于圖像采集并向計算機傳輸數(shù)據(jù)。滾子主要起到支撐蘋果向前運動,并在膠帶傳動模塊的帶動下帶動蘋果自轉(zhuǎn)的作用。其中兩個滾子組成1個工位,蘋果每自轉(zhuǎn)1次便向前運動1個工位,單個蘋果可采集3幅不同運動狀態(tài)的圖像。
相機所采集到的每幅圖像共包含3個不同樣本的圖像,其中單個樣本每前進1個工位被采集1次。為了將原圖像中單個蘋果樣本的外觀信息綜合成1幅圖像,利用OpenCV庫設(shè)計了自動分割合成算法,將單個樣本的3個不同運動狀態(tài)下的分割圖像合成為1幅圖像,用于后續(xù)分析。圖3為自動分割合成過程圖。分割過程包括:首先利用cvRect函數(shù)記錄每個工位的位置和大小,再將原圖像利用cvDrawRect函數(shù)進行區(qū)域分割和標記,最終利用cvSetImageROI函數(shù)將原圖像中不同樣本的單個運動狀態(tài)圖像分割出來。合成過程包括:首先利用標志位a記錄相機每次采集的圖像編號,同時利用標志位b記錄每個工位下的圖像編號,b的取值分別為1、2、3,分別代表了第1、2、3工位。再利用hconcat函數(shù)對分割后的圖像進行合成,最后利用合成后的圖像進行進一步處理分析。
圖3 自動分割合成過程Fig.3 Diagram of automatic segmentation synthesis process
相機所采集到的圖像尺寸為954像素×430像素,由于研究的目的是對傷痕以及果梗/花萼進行區(qū)分,而原圖像中的無用信息較多會降低紋理特征以及邊緣梯度特征的差異性,故需要將感興趣區(qū)域(即果梗/花萼和傷痕區(qū)域)提取出來,以此設(shè)計了感興趣區(qū)域提取算法。算法利用OpenCV庫函數(shù),首先對原圖像進行Otsu二值化[14-15],之后利用boundingRect函數(shù)擬合傷痕以及果梗/花萼區(qū)域,最終利用所得到的矩形大小和位置將原圖像中的感興趣區(qū)域提取出來。感興趣區(qū)域提取過程如圖4所示。
圖4 感興趣區(qū)域提取過程Fig.4 Extraction process of region of interest
1.5.1灰度共生矩陣
灰度共生矩陣(Gray level co-occurrence matrix, GLCM)是一種常用的反映紋理特征的圖像分析方法。由于紋理是灰度分布在空間位置上反復(fù)出現(xiàn)的結(jié)果,故在一幅灰度圖像上,任意2個像素點之間存在一定的灰度關(guān)聯(lián)性質(zhì)[16]?;叶裙采仃囀巧婕跋袼攸c距離和角度的矩陣函數(shù)[17-18],通過計算感興趣區(qū)域圖像中一定角度和距離的兩點灰度之間的關(guān)聯(lián)性,來反映圖像在間隔、方向、變化幅度和快慢上的綜合紋理信息。灰度共生矩陣的計算方法為
P(i,j,d,θ)=[(x,y)(x+D,y+D)|{f(x,y)=i;
f(x+D,y+D)=j}]
(1)
式中P——灰度共生矩陣
(x,y)——原圖像中任意點的像素坐標
i——位于(x,y)處像素點的灰度
j——位于(x+D,y+D)處像素點的灰度
θ、D——(x+D,y+D)和(x,y)像素點之間偏移的角度和距離
f(x,y)——圖像中坐標為(x,y)的灰度
d——灰度共生矩陣的步長,取1
其中角度一般選取為0°、90°、135°和180°,在實際計算中,為了使得參數(shù)具有旋轉(zhuǎn)不變性,將4個角度所計算出的特征值取平均值。
1.5.2紋理特征參數(shù)的提取
由于原始圖像中的灰度為255,共生矩陣的計算量較大,會導(dǎo)致檢測速度變慢且不適用于在線檢測,故在計算灰度共生矩陣之前,先將灰度進行降維,使其在保留原有紋理特征的基礎(chǔ)上簡化計算,之后通過式(1)計算得出圖像的灰度共生矩陣。再基于所得矩陣計算其二次統(tǒng)計特征值,本文選擇具有代表性的4種特征值進行后續(xù)分析,分別為能量/角二階矩(Angular second moment, ASM)、對比度(Contrast, CON)、逆差矩(Inverse different moment, IDM)和熵值(Entropy, ENT)。4種特征量的計算方法為
(2)
式中A——能量/角二階矩
p(i,j)——灰度共生矩陣元素值
k——灰度共生矩陣的維數(shù)
能量/角二階矩主要反映了圖像灰度分布均勻的程度和紋理的粗細程度。
(3)
式中C——對比度
其反映了某個像素點與領(lǐng)域像素點亮度的對比情況,主要用于反映圖像的清晰程度和紋理的深淺程度。紋理越清晰,對比度越大,反之對比度則越小。
(4)
式中E——熵值
熵值是一個隨機性的度量,當灰度共生矩陣的元素取值具有較大的隨機性,則熵值也隨之較大。熵值表示了原圖像灰度分布的復(fù)雜程度,原圖像越復(fù)雜則熵值也就越大。
(5)
式中I——逆差矩
逆差矩用于度量局部紋理變化的情況,逆差距越大則表明原圖像中的紋理特征越缺少變化,局部越均勻,反之則局部差異越大。
通過灰度共生矩陣提取上述4個特征參數(shù),通過對比早期傷痕、中期傷痕、后期傷痕以及果梗/花萼紋理特征參數(shù),發(fā)現(xiàn)果梗/花萼的紋理特征參數(shù)與后期傷痕較為相似,但早中期傷痕與果梗/花萼的紋理差異明顯。表1為蘋果傷痕以及果梗/花萼紋理特征變量的統(tǒng)計結(jié)果,其中熵值和能量/角二階矩最能反映果梗/花萼與早中期傷痕的紋理特點,故在后續(xù)分析中,采用能量/角二階矩和熵值作為紋理特征變量參與建模。
表1 蘋果傷痕紋理特征統(tǒng)計結(jié)果Tab.1 Statistical results of apple scar texture feature
1.6.1邊緣梯度特征曲線的獲取
邊緣梯度特征值用于表征傷痕或果梗/花萼邊緣變化的規(guī)律。在獲得邊緣梯度特征值之前,需提取蘋果傷痕和果梗/花萼的邊緣梯度特征曲線。邊緣梯度特征曲線的提取過程如圖5所示,首先對原圖像進行Otsu二值化,利用所提取處的傷痕或果梗/花萼輪廓進行橢圓擬合并提取其中心坐標與橢圓的長軸長,由于果梗/花萼二值化處理后提取的輪廓較小,橢圓擬合之后長軸長不會超過80個像素點,故當長軸長大于80個像素點時,即實際尺寸超過5 cm,可直接判斷該輪廓為傷痕輪廓,再提取其余圖像橢圓擬合中心坐標正方向上80個像素點的灰度保存在double類型的數(shù)組中。其中由于原圖像中存在噪聲,故對得到的特征曲線進行S-G多項式擬合平滑,并以平滑后的曲線作為邊緣梯度特征曲線。
圖5 邊緣梯度特征曲線提取方法Fig.5 Edge gradient feature curve extraction method
1.6.2邊緣梯度特征參數(shù)的提取
由于不同樣本之間果梗/花萼的大小和灰度規(guī)律比較相近[19],從圖6b所示的果梗/花萼的邊緣梯度特征曲線來看,其曲線的趨勢和規(guī)律性基本一致。與果梗/花萼的邊緣梯度特征曲線相比,后期傷痕由于顏色較深,曲線從傷痕部分過渡到無傷痕果皮部分時,邊緣梯度特征曲線的斜率較大。其中果梗/花萼中心點的灰度與后期傷痕較為接近,一般為0~58,無傷痕果皮部分的灰度為200~250。
圖6 邊緣梯度特征曲線Fig.6 Characteristic curves of edge gradient
圖7 求取一階導(dǎo)數(shù)后邊緣梯度特征曲線Fig.7 Characteristic curves of edge gradient after the first derivative was obtained
為了進一步突出果梗/花萼與后期傷痕之間的邊緣梯度特征曲線的差異性,對圖6所示的邊緣梯度特征曲線進行多項式擬合求導(dǎo),其中多項式選擇為2階,擬合的窗口數(shù)選擇為11。圖7為求取一階導(dǎo)數(shù)后的邊緣梯度特征曲線。從圖7反映的邊緣梯度特征規(guī)律來看,對于果梗/花萼,其一階導(dǎo)數(shù)曲線特征比較明顯,在距橢圓中心點20像素左右會出現(xiàn)一個特征峰,相比后期傷痕其特征峰出現(xiàn)的位置較為隨機。且后期傷痕特征峰的峰強明顯要高于果梗/花萼。故在后續(xù)的建模分析中,提取一階導(dǎo)數(shù)處理后邊緣梯度特征曲線中的峰位置和峰強度兩個邊緣梯度特征變量,進行后續(xù)建模分析。表2為蘋果果梗/花萼與后期傷痕的邊緣梯度特征值的統(tǒng)計結(jié)果。
表2 蘋果傷痕邊緣梯度特征統(tǒng)計結(jié)果Tab.2 Statistical results of apple scar edge gradient feature
支持向量機算法(Support vector machine,SVM)是建立在統(tǒng)計學理論基礎(chǔ)上的一種機器學習算法,已經(jīng)在定性和定量判別方面有較多應(yīng)用[20-24]。本文首先利用上述所提取出的6個特征變量分別建立支持向量機模型,再對變量建模結(jié)果進行比較,確定不同特征變量的適用范圍。
2.1.1早中期傷痕
利用所提取到的紋理特征建立SVM模型。由于果梗/花萼的紋理特征比早中期傷痕復(fù)雜,導(dǎo)致果梗/花萼的熵偏大,能量值偏小,故能量/角二階矩和熵反映果梗/花萼和早中期傷痕之間的差異效果較好。并且從表3所示的蘋果早中期傷痕紋理特征的建模效果來看,熵值和能量組合所建立的支持向量機模型正確率可達到97%。但若將所提取到的邊緣梯度特征參與到早中期傷痕的建模,其判別正確率僅有72%,故紋理特征可以滿足果梗/花萼與早中期傷痕的識別。圖8為采用線性建模的方式所建立的SVM模型結(jié)果。
表3 蘋果早中期傷痕檢測結(jié)果Tab.3 Apple early and mid-term scar test results
圖8 紋理特征SVM建模結(jié)果Fig.8 SVM modeling results of texture feature
2.1.2后期傷痕
蘋果傷痕破壞了表皮下細胞組織結(jié)構(gòu)的完整性,使得本應(yīng)區(qū)域化分布而被分隔開的多酚氧化酶(Polyphenol oxidase,PPO)和酚類物質(zhì)接觸,誘發(fā)了酶促褐變反應(yīng)[25-26]。而后期傷痕由于酶促褐變反應(yīng)的時間較長,蘋果傷痕處果肉失水嚴重導(dǎo)致傷痕處會形成凹陷,且傷痕處已經(jīng)發(fā)黑,造成傷痕部分的紋理特征與果梗/花萼相近。故在利用紋理特征去辨識果梗/花萼與此類傷痕時效果較差,但由于傷痕發(fā)黑嚴重,圖像的灰度從傷痕部分過渡到無傷痕部分時的梯度較為明顯,所以利用提取到的邊緣梯度特征變量辨識的效果較好。圖9為后期傷痕和果梗/花萼感興趣區(qū)域提取圖像對比。
圖9 典型樣本后期傷痕和果梗/花萼感興趣區(qū)域提取圖像對比Fig.9 Comparison of apple’s late bruised and stems/calyxes in typical sample
利用所提取到的峰強度和峰位置2個邊緣梯度特征變量建立線性SVM模型,其中果梗/花萼的判別正確率為94%,傷痕的判別正確率為98%,總體的判斷正確率為96%。表4為后期傷痕的SVM建模效果,從圖10所示的SVM線性判別模型的建模結(jié)果來看,果梗/花萼的邊緣梯度特征值的分布較為集中,這與圖7b所示的果梗/花萼的一階導(dǎo)數(shù)處理后的邊緣梯度特征曲線的規(guī)律一致。
表4 蘋果后期傷痕檢測結(jié)果Tab.4 Verification results of apple late scar detection algorithm
圖10 邊緣梯度特征SVM建模結(jié)果Fig.10 SVM modeling results of edge gradient feature
由于單個運動狀態(tài)下的蘋果果梗與花萼不可能同時存在,故當提取輪廓的個數(shù)大于2時,可直接判斷為該蘋果是有傷痕的蘋果。再結(jié)合上述所得到的模型,設(shè)計了整體的檢測算法,如圖11所示。算法首先對提取到的感興趣區(qū)域的圖像計算其紋理特征參數(shù)并代入紋理特征模型,當其判斷為果梗/花萼時,再利用邊緣梯度特征提取算法提取感興趣區(qū)域的邊緣梯度特征參數(shù)代入邊緣梯度特征模型,并最終判斷其是否為果梗/花萼或傷痕。
圖11 整體算法流程圖Fig.11 Flow chart of overall algorithm
為了驗證算法的正確性,在市場選購帶有傷痕和不帶有傷痕的蘋果各40個,并在選購的時候不進行早期傷痕、中期傷痕和后期傷痕的區(qū)分。表5為算法驗證的結(jié)果,其中對于果梗/花萼的判別正確率為100%,傷痕的判斷正確率為90%,總體的判斷正確率為95%。這表明,利用紋理特征參數(shù)與邊緣梯度特征參數(shù)結(jié)合可以實現(xiàn)對蘋果果梗/花萼與傷痕的識別。
表5 算法驗證結(jié)果Tab.5 Algorithm verification results
本文基于自行設(shè)計的蘋果機器視覺檢測系統(tǒng),先利用自動分割合成算法對單個蘋果3個不同運動狀態(tài)下的圖像進行融合,使得合成后的圖像包含蘋果的整個外部信息,再利用感興趣區(qū)域提取算法提取蘋果中的果梗/花萼或傷痕圖像,并最終利用特征參數(shù)提取算法提取感興趣區(qū)域中的紋理特征和邊緣梯度特征進行果梗/花萼和傷痕的區(qū)分。試驗結(jié)果表明,對于早中期傷痕,紋理特征可以較好的區(qū)分,SVM模型對于果梗/花萼和傷痕的判斷正確率總體為97%。但對于后期褐變較為嚴重的樣本紋理特征并不適用,故采用邊緣梯度特征的方法對后期傷痕和果梗/花萼進行辨識,果梗/花萼和傷痕的判斷正確率為96%,裝置每秒可檢測3個蘋果樣品。以上結(jié)果表明,利用紋理和邊緣梯度特征可以滿足蘋果傷痕和果梗/花萼的識別,并且系統(tǒng)整體結(jié)構(gòu)較為簡單,算法的適用范圍廣。
(1)基于OpenCV庫編寫了自動分割合成算法,使得合成后的圖像包含單個樣本3個不同運動狀態(tài),以獲得蘋果完整的表面信息。為了減小背景對算法的影響,對合成后的圖像利用感興趣區(qū)域提取算法,將果梗/花萼與傷痕輪廓提取出來再進行后續(xù)處理。
(2)利用灰度共生矩陣法提取感興趣區(qū)域中的紋理特征,并選取最能反映早中期傷痕和果梗/花萼區(qū)別的能量/角二階矩和熵值兩個變量用于后續(xù)的SVM建模分析。其中,果梗/花萼的判別正確率為98%,傷痕的判別正確率為96%,總體的判斷正確率為97%。
(3)鑒于對后期傷痕利用紋理特征判別效果不佳,為了擴大總體算法的應(yīng)用范圍,利用邊緣梯度特征提取算法提取感興趣區(qū)域的邊緣梯度特征曲線,再將所提取到的峰位置和峰強度參與SVM建模分析。其中,果梗/花萼的判別正確率為94%,傷痕的判別正確率為98%,總體判別正確率為96%。
(4)綜合上述建模結(jié)果,設(shè)計了果梗/花萼和傷痕區(qū)分的總體算法,算法可適用于任意時期的傷痕與果梗/花萼的區(qū)分。對算法的判別效果進行試驗驗證,果梗/花萼的判別正確率為100%,傷痕的判別正確率為90%,總體正確率為95%。驗證結(jié)果表明,算法可以實現(xiàn)對果梗/花萼和傷痕的區(qū)分。