張冬妍 張瑞 韓睿 曹軍
(東北林業(yè)大學(xué),哈爾濱,150040)
榛子形似板栗,果仁口感香酥、營養(yǎng)價值高,被贊譽為“堅果之王”。作為林業(yè)副產(chǎn)品中的優(yōu)質(zhì)資源,在烘焙食用、油料加工等方面的需求量極大[1-3]。受生長環(huán)境、保存條件等影響,榛子仁中常有干癟、蟲蛀、發(fā)霉、腐爛等缺陷。以往對其分類識別,主要依靠人工分揀,但人工分揀效率低,且評判標準不一,很容易出現(xiàn)檢測結(jié)果的差異。且榛子仁個體間形狀大致相近,肉眼可見差別不大;由于產(chǎn)地、種類及采摘期不同等原因,對于榛子仁的識別、分類難度會進一步加大。采用圖像處理技術(shù)[4-7],可提高榛子仁缺陷識別效率和準確率,減少人力資源的浪費。
由于榛子仁表面種皮粗糙,圖像邊界模糊,采用傳統(tǒng)的閾值分割難以清晰地將樣本與背景分開。而模糊C均值聚類(FCM)算法選取的聚類值具有非概率特性,聚類結(jié)果靈活[8],可以把目標與背景間邊界模糊不清的榛子仁個體,完整地從整體圖像中提取出來。但傳統(tǒng)的模糊C均值聚類算法對噪聲不敏感。本研究以榛子仁為檢測樣本,采用模糊C均值聚類算法進行圖像分割;利用飛蛾撲火(MFO)算法[9-11]改進其目標函數(shù);利用函數(shù)對個體樣本邊緣提取[12-14],標記邊緣拐點位置,計算拐點個數(shù);對邊緣圖像進行霍夫(Hough)變換的橢圓曲線擬合,標記并輸出飽滿籽粒個數(shù);依據(jù)試驗數(shù)據(jù),分析應(yīng)用改進的模糊C均值聚類算法和霍夫變換對榛子仁缺陷檢測的效果。旨在為準確有效地對榛子仁中的缺陷籽粒進行識別檢測、提高榛子仁加工過程中的分揀效率提供參考。
榛子仁:試驗樣本選自大興安嶺地區(qū)的野生榛子。根據(jù)樣本實際情況,結(jié)合表1的定義標準[15-16],將其劃分為飽滿、干癟、霉斑、蟲蛀、腐爛5個不同種類,除飽滿粒外,其他種類均為缺陷。從已有1 000顆榛子仁中,分類選取350顆(包括飽滿粒100顆、干癟粒100顆、霉斑粒50顆、蟲蛀粒50顆、腐爛粒50顆),作為試驗樣本進行圖像采集。
表1 堅果類食品術(shù)語和定義
模糊C均值聚類(FCM)算法[17]由Bezdek在1993年首次提出,主要是通過隸屬度優(yōu)化目標函數(shù),定量表示樣本間關(guān)系,盡可能減小類內(nèi)差別,增大類間差別,以便自動對樣本數(shù)據(jù)進行分類。先將該算法的聚類類別定義為C,當中包括N個L維向量數(shù)據(jù),用x(k)表示,表示數(shù)據(jù)元素xj被劃分為第i類的概率,即元素隸屬度記作uij,可以通過式(1)求最小值。
i=1、2、3、…、C,j=1、2、3、…、N。
(1)
據(jù)經(jīng)驗,一般賦值m=2,uij需滿足:
∑iuij=1,?i,i=1、2、3、…、C。
(2)
0<∑iuij (3) 各變量偏導(dǎo)可通過以上約束條件求得式(1)最小時相應(yīng)的隸屬度變量uij與聚類中心vi。 uij=1/∑k[d2(xj,vi)/d2(xj,vk)]2/(m-1), k=1、2、3、…、C。 (4) j=1、2、3、…、N。 (5) 2015年,Seyedali首次提出飛蛾撲火(MFO)概念[18],該算法尋優(yōu)能力良好,參數(shù)少。設(shè)飛蛾位置為空間變量,飛蛾不斷改變位置矢量飛行于超維空間。飛蛾和火焰兩者區(qū)別,為算法迭代與更新方式間的差異。飛蛾不斷進行空間搜索,將飛蛾當前獲最優(yōu)位置看作火焰。在該算法中,將更新位置的主要機制設(shè)為對數(shù)螺旋,公式為: Mi=Di·ebθ·cos(2πθ)+Fj。 (6) 式中:θ是為-1~1間的隨機數(shù);b為常數(shù);Mi為飛蛾i;Fj為火焰j;Di為兩者間的間距,Di=|Fj-Mi|。 飛蛾路徑如圖1所示。θ為收斂常數(shù),定義飛蛾的下一次位置靠近火焰程度,θ=-1時飛蛾離火焰最近、θ=1時飛蛾離火焰距離最遠。 圖1 參數(shù)θ的分布 式(6)僅定義飛蛾撲火的過程,易收斂過快,致局部最優(yōu)。為了避免此種情況,需計算飛蛾適應(yīng)度值,火焰以適應(yīng)度值為標準排序,飛蛾通過式(6)更新位置逐次迭代。通過這種方式,每只飛蛾與一簇火焰對應(yīng),初始飛蛾靠向最優(yōu)火焰,末尾飛蛾靠向最差火焰。同時,對于火焰采用自適應(yīng),減少機制,增大效率,尋找最優(yōu)解。當?shù)磷詈笠淮?,將保留唯一火焰作為全局最?yōu)解。公式為: f=r[N-t(N-1)/T]。 (7) 式中:f為當前迭代次數(shù)的火焰數(shù)量;r為向下取整操作的函數(shù);t為迭代次數(shù);T為最大迭代次數(shù);N為初始火焰數(shù)。 傳統(tǒng)FCM算法是通過類梯度下降方法求取目標函數(shù)J(U,V)的最優(yōu)解。由于隸屬度變量U為模糊值且不斷變化,通過類梯度下降法求目標函數(shù)的最優(yōu)解,函數(shù)收斂較慢,且易于陷入局部極小值化。因此,結(jié)合圖像像素點位置坐標,并引入飛蛾撲火算法,對其進行改進。首先通過腐蝕膨脹開閉運算將位置固定,并求得各樣本聚類中心,而后在進行模糊均值聚類時,通過式(8)求得聚類距離(D)。 D=R2+G2+B2+X2+Y2。 (8) 式中:R、G、B為RGB色彩圖像中顏色通道色彩分量;X、Y為當前像素點到聚類中心點間距離,避免了目標函數(shù)陷入局部極小值化。 引入飛蛾撲火算法,隨機選取飛蛾初始位置并計算其適應(yīng)度值,通過式(6)迭代,直至達到最大迭代次數(shù),保留最佳位置作為新的聚類中心對圖像數(shù)據(jù)元素進行重新聚類劃分。 樣本圖像膨脹、腐蝕處理及中心點繪制過程見圖2。預(yù)處理過程中,由于部分樣本發(fā)霉、蟲蛀等缺陷,導(dǎo)致二值化圖片有白色空洞,為了將其填補從而獲得更加完整準確的圖像,對樣本圖像進行膨脹處理。同時,針對試驗過程中,樣本個體間存在黏連現(xiàn)象,對樣本圖像進行腐蝕處理。通過不斷的膨脹腐蝕開閉運算,直至將樣本個體彼此間清晰分開,繼而通過搜索連通域,選取連通域中心點。 圖2 樣本預(yù)處理圖像 用FCM改進前后的兩種方法對整體樣本圖像進行分割后得到樣本個體圖像,分別從中隨機選取飽滿、干癟、霉斑、蟲蛀、腐爛5種圖像(見圖3、圖4)。對比可見,傳統(tǒng)方法所得圖像,細節(jié)處分割效果不佳,且存在像素失真現(xiàn)象;對于存在缺陷的干癟、霉斑、蟲蛀等籽粒,分割邊界不夠清晰。改進后的FCM算法分割所得圖像,邊緣更加清晰流暢,更有利于試驗的后期處理。 圖3 傳統(tǒng)FCM算法處理圖像 圖4 飛蛾撲火優(yōu)化的FCM算法處理圖像 在圖像處理過程中,通過邊緣拐點分布情況,能更準確地了解圖像的形狀特征,解決實際問題[19]。試驗中,飽滿樣本的邊緣較為平滑,而干癟、霉斑、蟲蛀、腐爛樣本,由于表面缺陷導(dǎo)致其邊緣曲線平滑度較差。因此,對個體樣本進行邊緣提取,并以通過拐點個數(shù)的多少判斷樣本表面光整度,從而對其達到缺陷識別效果。與其他算子(如索貝爾(Sobel)算子)相比,康尼(Canny)算子[20-21]因其抗噪能力強,能檢測到易被忽略的弱邊緣。因此,選取Canny算子提取樣本邊緣,以便更好識別出樣本邊緣輪廓間的細微差異。圖5為通過Canny算子對5種樣本圖像進行邊緣檢測所得圖像,圖6為樣本拐點標記圖像。 圖5 采用Canny算子邊緣提取樣本圖像 圖6 拐點標記樣本圖像 圖6中檢測到的拐點個數(shù),飽滿粒為6、干癟粒為8、霉斑粒為32、蟲蛀粒為24、腐爛粒為20??梢?,飽滿粒、干癟粒,由于表面相對光滑,通過對其邊緣檢測,得到的拐點數(shù)在10個以下;而霉斑、蟲蛀、腐爛粒,由于變質(zhì)、表面損壞等原因,拐點個數(shù)均大于10;因此,擬將邊緣圖像拐點數(shù)作為榛子仁缺陷檢測的區(qū)分指標之一。為了使試驗結(jié)果更具有普遍性、代表性,現(xiàn)從已采集的5種樣本圖像中選取清晰圖像進行邊緣檢測處理,并求取拐點個數(shù)(見表2)。由表2可見:96.94%的飽滿粒檢測到的拐點數(shù)在10個以下,95.88%的干癟粒檢測到的拐點數(shù)在10個以下,其余3種缺陷(包括霉斑、蟲蛀、腐爛粒)邊緣拐點個數(shù)10個以上所占比例均達到了95%以上。由此得出,在誤差允許范圍內(nèi)(小于0.05),樣本圖像邊緣輪廓檢測到的拐點數(shù)大于10個,即可標記為缺陷。 表2 數(shù)據(jù)集樣本邊緣輪廓檢測到的拐點個數(shù)及所占比例 飽滿樣本與其他幾種樣本相比,邊緣更加圓潤,邊緣曲線接近橢圓,因此將提取到的邊緣圖像進行橢圓曲線擬合。對于可以識別檢測到的橢圓圖像標記為飽滿,否則標記為缺陷?,F(xiàn)有的橢圓檢測方法中,最小二乘法[22]、依據(jù)Hough變換法[23-24]最為常用。但最小二乘法對于孤立點的判斷,易受到噪聲的影響,擬合誤差很大。因此在橢圓輪廓提取中,Hough變換法效果更好。 將圖6中樣本邊緣圖像通過Hough變換進行橢圓曲線擬合,其中只有飽滿籽粒邊緣得到橢圓擬合曲線(見圖7),其余籽粒均未檢測到橢圓擬合曲線,標記為缺陷粒。 圖7 Hough變換邊緣橢圓擬合曲線圖像 由表3可見:飽滿樣本中有96.94%可以得到橢圓擬合曲線,干癟樣本中僅有3.09%可以得到橢圓擬合曲線,而霉斑、蟲蛀、腐爛樣本均未輸出橢圓擬合曲線,未輸出擬合曲線樣本均被標記為缺陷,在誤差允許范圍內(nèi)(小于0.05),可以很好地實現(xiàn)對榛子仁缺陷準確識別的目的。 表3 數(shù)據(jù)集樣本橢圓曲線擬合結(jié)果 對榛子仁缺陷檢測提出了一種新的方法。通過結(jié)合像素點空間位置,并引入飛蛾撲火算法對FCM算法進行改進,從整體樣本圖像中獲得清晰且分割效果良好的樣本個體圖像。通過對樣本圖像形態(tài)學(xué)分析,利用拐點數(shù)的標識計算,判斷榛子仁表面外輪廓光滑度及果仁飽滿程度,識別出樣本是否存在缺陷并分類標記,從而實現(xiàn)榛子仁的缺陷檢測。結(jié)果表明,本研究所提的改進方法對于榛子仁樣本缺陷識別準確率達到96%以上。在未來的研究中,可推廣用于其他堅果類的分類識別中,為林下產(chǎn)品加工行業(yè)的檢測與識別提供有力的技術(shù)支持。1.3 飛蛾撲火算法
1.4 飛蛾撲火算法改進的FCM算法原理
2 結(jié)果與分析
2.1 改進FCM算法的圖像分割
2.2 樣本圖像的邊緣提取
2.3 樣本圖像邊緣的橢圓曲線擬合
3 結(jié)論