張冬妍 張瑞 韓睿 曹軍
(東北林業大學,哈爾濱,150040)
榛子形似板栗,果仁口感香酥、營養價值高,被贊譽為“堅果之王”。作為林業副產品中的優質資源,在烘焙食用、油料加工等方面的需求量極大[1-3]。受生長環境、保存條件等影響,榛子仁中常有干癟、蟲蛀、發霉、腐爛等缺陷。以往對其分類識別,主要依靠人工分揀,但人工分揀效率低,且評判標準不一,很容易出現檢測結果的差異。且榛子仁個體間形狀大致相近,肉眼可見差別不大;由于產地、種類及采摘期不同等原因,對于榛子仁的識別、分類難度會進一步加大。采用圖像處理技術[4-7],可提高榛子仁缺陷識別效率和準確率,減少人力資源的浪費。
由于榛子仁表面種皮粗糙,圖像邊界模糊,采用傳統的閾值分割難以清晰地將樣本與背景分開。而模糊C均值聚類(FCM)算法選取的聚類值具有非概率特性,聚類結果靈活[8],可以把目標與背景間邊界模糊不清的榛子仁個體,完整地從整體圖像中提取出來。但傳統的模糊C均值聚類算法對噪聲不敏感。本研究以榛子仁為檢測樣本,采用模糊C均值聚類算法進行圖像分割;利用飛蛾撲火(MFO)算法[9-11]改進其目標函數;利用函數對個體樣本邊緣提取[12-14],標記邊緣拐點位置,計算拐點個數;對邊緣圖像進行霍夫(Hough)變換的橢圓曲線擬合,標記并輸出飽滿籽粒個數;依據試驗數據,分析應用改進的模糊C均值聚類算法和霍夫變換對榛子仁缺陷檢測的效果。旨在為準確有效地對榛子仁中的缺陷籽粒進行識別檢測、提高榛子仁加工過程中的分揀效率提供參考。
榛子仁:試驗樣本選自大興安嶺地區的野生榛子。根據樣本實際情況,結合表1的定義標準[15-16],將其劃分為飽滿、干癟、霉斑、蟲蛀、腐爛5個不同種類,除飽滿粒外,其他種類均為缺陷。從已有1 000顆榛子仁中,分類選取350顆(包括飽滿粒100顆、干癟粒100顆、霉斑粒50顆、蟲蛀粒50顆、腐爛粒50顆),作為試驗樣本進行圖像采集。

表1 堅果類食品術語和定義
模糊C均值聚類(FCM)算法[17]由Bezdek在1993年首次提出,主要是通過隸屬度優化目標函數,定量表示樣本間關系,盡可能減小類內差別,增大類間差別,以便自動對樣本數據進行分類。先將該算法的聚類類別定義為C,當中包括N個L維向量數據,用x(k)表示,表示數據元素xj被劃分為第i類的概率,即元素隸屬度記作uij,可以通過式(1)求最小值。

i=1、2、3、…、C,j=1、2、3、…、N。
(1)
據經驗,一般賦值m=2,uij需滿足:
∑iuij=1,?i,i=1、2、3、…、C。
(2)
0<∑iuij (3) 各變量偏導可通過以上約束條件求得式(1)最小時相應的隸屬度變量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],該算法尋優能力良好,參數少。設飛蛾位置為空間變量,飛蛾不斷改變位置矢量飛行于超維空間。飛蛾和火焰兩者區別,為算法迭代與更新方式間的差異。飛蛾不斷進行空間搜索,將飛蛾當前獲最優位置看作火焰。在該算法中,將更新位置的主要機制設為對數螺旋,公式為: Mi=Di·ebθ·cos(2πθ)+Fj。 (6) 式中:θ是為-1~1間的隨機數;b為常數;Mi為飛蛾i;Fj為火焰j;Di為兩者間的間距,Di=|Fj-Mi|。 飛蛾路徑如圖1所示。θ為收斂常數,定義飛蛾的下一次位置靠近火焰程度,θ=-1時飛蛾離火焰最近、θ=1時飛蛾離火焰距離最遠。 圖1 參數θ的分布 式(6)僅定義飛蛾撲火的過程,易收斂過快,致局部最優。為了避免此種情況,需計算飛蛾適應度值,火焰以適應度值為標準排序,飛蛾通過式(6)更新位置逐次迭代。通過這種方式,每只飛蛾與一簇火焰對應,初始飛蛾靠向最優火焰,末尾飛蛾靠向最差火焰。同時,對于火焰采用自適應,減少機制,增大效率,尋找最優解。當迭代至最后一次,將保留唯一火焰作為全局最優解。公式為: f=r[N-t(N-1)/T]。 (7) 式中:f為當前迭代次數的火焰數量;r為向下取整操作的函數;t為迭代次數;T為最大迭代次數;N為初始火焰數。 傳統FCM算法是通過類梯度下降方法求取目標函數J(U,V)的最優解。由于隸屬度變量U為模糊值且不斷變化,通過類梯度下降法求目標函數的最優解,函數收斂較慢,且易于陷入局部極小值化。因此,結合圖像像素點位置坐標,并引入飛蛾撲火算法,對其進行改進。首先通過腐蝕膨脹開閉運算將位置固定,并求得各樣本聚類中心,而后在進行模糊均值聚類時,通過式(8)求得聚類距離(D)。 D=R2+G2+B2+X2+Y2。 (8) 式中:R、G、B為RGB色彩圖像中顏色通道色彩分量;X、Y為當前像素點到聚類中心點間距離,避免了目標函數陷入局部極小值化。 引入飛蛾撲火算法,隨機選取飛蛾初始位置并計算其適應度值,通過式(6)迭代,直至達到最大迭代次數,保留最佳位置作為新的聚類中心對圖像數據元素進行重新聚類劃分。 樣本圖像膨脹、腐蝕處理及中心點繪制過程見圖2。預處理過程中,由于部分樣本發霉、蟲蛀等缺陷,導致二值化圖片有白色空洞,為了將其填補從而獲得更加完整準確的圖像,對樣本圖像進行膨脹處理。同時,針對試驗過程中,樣本個體間存在黏連現象,對樣本圖像進行腐蝕處理。通過不斷的膨脹腐蝕開閉運算,直至將樣本個體彼此間清晰分開,繼而通過搜索連通域,選取連通域中心點。 圖2 樣本預處理圖像 用FCM改進前后的兩種方法對整體樣本圖像進行分割后得到樣本個體圖像,分別從中隨機選取飽滿、干癟、霉斑、蟲蛀、腐爛5種圖像(見圖3、圖4)。對比可見,傳統方法所得圖像,細節處分割效果不佳,且存在像素失真現象;對于存在缺陷的干癟、霉斑、蟲蛀等籽粒,分割邊界不夠清晰。改進后的FCM算法分割所得圖像,邊緣更加清晰流暢,更有利于試驗的后期處理。 圖3 傳統FCM算法處理圖像 圖4 飛蛾撲火優化的FCM算法處理圖像 在圖像處理過程中,通過邊緣拐點分布情況,能更準確地了解圖像的形狀特征,解決實際問題[19]。試驗中,飽滿樣本的邊緣較為平滑,而干癟、霉斑、蟲蛀、腐爛樣本,由于表面缺陷導致其邊緣曲線平滑度較差。因此,對個體樣本進行邊緣提取,并以通過拐點個數的多少判斷樣本表面光整度,從而對其達到缺陷識別效果。與其他算子(如索貝爾(Sobel)算子)相比,康尼(Canny)算子[20-21]因其抗噪能力強,能檢測到易被忽略的弱邊緣。因此,選取Canny算子提取樣本邊緣,以便更好識別出樣本邊緣輪廓間的細微差異。圖5為通過Canny算子對5種樣本圖像進行邊緣檢測所得圖像,圖6為樣本拐點標記圖像。 圖5 采用Canny算子邊緣提取樣本圖像 圖6 拐點標記樣本圖像 圖6中檢測到的拐點個數,飽滿粒為6、干癟粒為8、霉斑粒為32、蟲蛀粒為24、腐爛粒為20。可見,飽滿粒、干癟粒,由于表面相對光滑,通過對其邊緣檢測,得到的拐點數在10個以下;而霉斑、蟲蛀、腐爛粒,由于變質、表面損壞等原因,拐點個數均大于10;因此,擬將邊緣圖像拐點數作為榛子仁缺陷檢測的區分指標之一。為了使試驗結果更具有普遍性、代表性,現從已采集的5種樣本圖像中選取清晰圖像進行邊緣檢測處理,并求取拐點個數(見表2)。由表2可見:96.94%的飽滿粒檢測到的拐點數在10個以下,95.88%的干癟粒檢測到的拐點數在10個以下,其余3種缺陷(包括霉斑、蟲蛀、腐爛粒)邊緣拐點個數10個以上所占比例均達到了95%以上。由此得出,在誤差允許范圍內(小于0.05),樣本圖像邊緣輪廓檢測到的拐點數大于10個,即可標記為缺陷。 表2 數據集樣本邊緣輪廓檢測到的拐點個數及所占比例 飽滿樣本與其他幾種樣本相比,邊緣更加圓潤,邊緣曲線接近橢圓,因此將提取到的邊緣圖像進行橢圓曲線擬合。對于可以識別檢測到的橢圓圖像標記為飽滿,否則標記為缺陷。現有的橢圓檢測方法中,最小二乘法[22]、依據Hough變換法[23-24]最為常用。但最小二乘法對于孤立點的判斷,易受到噪聲的影響,擬合誤差很大。因此在橢圓輪廓提取中,Hough變換法效果更好。 將圖6中樣本邊緣圖像通過Hough變換進行橢圓曲線擬合,其中只有飽滿籽粒邊緣得到橢圓擬合曲線(見圖7),其余籽粒均未檢測到橢圓擬合曲線,標記為缺陷粒。 圖7 Hough變換邊緣橢圓擬合曲線圖像 由表3可見:飽滿樣本中有96.94%可以得到橢圓擬合曲線,干癟樣本中僅有3.09%可以得到橢圓擬合曲線,而霉斑、蟲蛀、腐爛樣本均未輸出橢圓擬合曲線,未輸出擬合曲線樣本均被標記為缺陷,在誤差允許范圍內(小于0.05),可以很好地實現對榛子仁缺陷準確識別的目的。 表3 數據集樣本橢圓曲線擬合結果 對榛子仁缺陷檢測提出了一種新的方法。通過結合像素點空間位置,并引入飛蛾撲火算法對FCM算法進行改進,從整體樣本圖像中獲得清晰且分割效果良好的樣本個體圖像。通過對樣本圖像形態學分析,利用拐點數的標識計算,判斷榛子仁表面外輪廓光滑度及果仁飽滿程度,識別出樣本是否存在缺陷并分類標記,從而實現榛子仁的缺陷檢測。結果表明,本研究所提的改進方法對于榛子仁樣本缺陷識別準確率達到96%以上。在未來的研究中,可推廣用于其他堅果類的分類識別中,為林下產品加工行業的檢測與識別提供有力的技術支持。
1.3 飛蛾撲火算法

1.4 飛蛾撲火算法改進的FCM算法原理
2 結果與分析
2.1 改進FCM算法的圖像分割



2.2 樣本圖像的邊緣提取



2.3 樣本圖像邊緣的橢圓曲線擬合


3 結論