汪 威 劉亞川 呂 斌 胡新宇
(湖北工業大學機械工程學院,湖北 武漢 430068)
機器視覺與圖像處理作為一種無損檢測方法[1],在農產品檢測方面應用廣泛。其主要是通過對采集到的農產品圖像進行大小、形狀、顏色和表面缺陷等特征提取,給予其約束條件以達到分級的目的。Pauly等[2]利用機器視覺技術根據芒果的形狀特征對芒果進行分級,其分級準確率達83.3%。楊濤等[3]提出了從成熟度、質量、形狀3方面綜合評估草莓等級,其分級準確率達90%以上;王陽陽等[4]利用同態濾波和改進的 K-means算法解決了蘋果分級過程中,光線不均導致的表面反光和陰影問題。鐘小華等[5]設計了一種利用鏡面反射原理的紅棗表面信息采集機構,能夠采集紅棗全表面的特征。Innocent等[6]開發了一種從深度圖像中提取2D和3D特征的算法來估算番茄的體積和重量。香菇(shiitake mushroom)可分為花菇、冬菇和香覃,文章主要研究對象為冬菇。夏青[7]對干香菇進行了正反面識別、菇柄識別、破損識別以及紋理識別等方面的研究,但主要是對不同種類的香菇進行分類。Wang等[8]提出了一種基于分水嶺算法的圖像算法對白蘑菇進行分級,該算法消除了陰影和葉柄對圖像的影響。綜上,多數研究均是根據香菇的基本形狀進行分級,對其細節的研究較少,大部分細節研究都是針對香菇的破損,沒有對香菇各區域的細節進行研究;且分級均是針對干香菇,而對鮮香菇的分級研究較少,并且這些對鮮香菇的研究中僅是對香菇大小分級,未考慮其他特征,分級效果并不理想。研究擬以去柄鮮香菇為對象,基于機器視覺技術,利用顏色特征建立高斯混合模型,對香菇圖像不同區域進行識別,再提取各區域的幾何特征參數,根據相關標準設立分級標準,實現香菇的智能分級,旨在提高香菇分級的效率與準確率,以代替人工分級。
香菇分級系統主要由視覺子系統、上料機構、皮帶線、翻面機構和分撥機構等組成(圖1)。其中上料機構為振料盤,將散亂的待分級香菇有序地排列并輸送至皮帶線上。皮帶線利用差速原理拉開香菇個體間距,使其能逐一通過視覺檢測區域,并保證工業相機的視野范圍內只出現一個待檢對象。視覺系統包含兩組由光源、工業鏡頭、工業相機和相應的算法軟件構成的視覺檢測工位,兩組視覺檢測工位之間裝有一套香菇翻面機構。兩組視覺檢測工位分別承擔香菇正、反兩面的視覺檢測功能,利用圖像處理算法判定被檢香菇等級。在視覺系統下游,沿皮帶運行方向依次布置3組分料機構,可最多實現對香菇4個等級的分撥。分撥機構主要由步進電機和撥片構成,以達到最高撥5次/s的設計要求。香菇分級系統的工作流程如圖2所示。
去柄后的香菇主要分為菌蓋、菌褶和包邊等部分[9](見圖3)。香菇等級主要與其直徑、圓度、包邊厚度、均勻性及占比等參數有關,文中將香菇分為4個等級,其評判依據如表1所示。

1. 工控機 2. 千兆網線 3. 工業相機 4. 環形光源 5. 傳感器 6. 試驗香菇 7. 上料機構 8. 調速器 9. 步進電機 10. 傳送帶 11. 翻轉機構 12. 分撥機構 13. PLC控制器圖1 香菇分級系統機械結構圖Figure 1 Mechanical structure of Shiitake grading system

圖2 香菇分級系統工作流程圖Figure 2 Shiitake grading system workflow

圖3 香菇各區域名稱類別Figure 3 Description of each area name of shiitake

表1 香菇等級評判依據
香菇分級視覺系統通過彩色工業相機獲取香菇圖像,根據表1中的分級要求,先將香菇從背景中分離,然后分割出菌蓋、包邊和菌褶,再對各特征指標進行量化,最終實現分級。其中,香菇區域的分割是圖像處理的關鍵步驟。
樣本訓練的目的是對香菇進行區域分割,首先由人工或者利用傳統的區域分割算法將有限的樣本分為背景、菌蓋、菌褶和包邊4個區域。顏色是區域劃分的重要特征,其中菌蓋和包邊的顏色特征一致,但由于菌蓋與菌褶互斥,即不出現在同一樣本圖像中。因此可根據樣本圖像中菌褶顏色特征的分布情況區分樣本圖像中的菌蓋和包邊,因此利用高斯混合模型[10]實現對圖像區域的分割。假設不同區域的顏色特征服從混合高斯分布(GMM),根據之前已劃分好區域的樣本圖像進行模型訓練,估計GMM參數。將GMM中所有可能存在的結果儲存于查找表(LUT)中,輸入實時香菇圖像,使用查找表對多通道圖像進行像素分類,即可得到香菇圖像的區域分割結果。最終的分級部分則根據分割后的香菇區域圖像,提取香菇等級相關的特征參數,根據相關標準設置香菇分級標準。其工作流程如圖4所示。
2.3.1 圖像預處理 為簡化訓練樣本的制作,將有限個具有各種特征的香菇圖像進行組合,制作成一張訓練圖片如圖5所示。
先將原始圖像由RGB色彩空間轉換為HSI[11]色彩空間。在傳統的RGB顏色空間中,任何顏色都可由分量 R、G、B 不同的取值表示,3個分量間具有較強的相關性,在香菇圖像分割中很難將各區域進行分割。HSI顏色空間即色調、飽和度、亮度。相比原始的RGB圖像,HSI圖像對顏色信息的利用率更高,在香菇圖像區域分割時更容易將各區域進行分隔。香菇訓練圖像的HSI各分量圖像如圖6所示。

圖4 視覺系統工作流程圖Figure 4 Vision system workflow

圖5 香菇訓練圖像Figure 5 Shiitake training image
分別對圖6中3個通道的圖像進行閾值分割、膨脹腐蝕等處理,再根據形狀、特征選擇區域等圖像處理后,將訓練圖像中的各個區域進行分割,分割結果如圖7所示。
2.3.2 香菇區域分割的GMM建模與求解 在采集到的彩色香菇圖像中,所有的像素顏色特征組合成一個高斯混合模型。將香菇圖像分為菌蓋(包邊)、菌褶、背景3個部分,設置的高斯混合模型由K=3個高斯分布組成,其中每一個高斯分布都是該高斯混合模型的子分布。其是由H、S、I 3個維度的顏色特征組成的多維數據的單高斯模型,其樣本數據可記作x=[xH,xS,xI]。求解其中每一個高斯模型的期望、方差及其在混合模型中的概率,即該高斯混合模型的訓練。

圖6 訓練圖像的HSI各分量圖像Figure 6 HSI component image of training image

圖7 香菇訓練圖像區域分割結果Figure 7 Region segmentation results of mushroom training image
對于單高斯模型,當樣本數據x為一維數據時,高斯分布遵從概率密度函數:
(1)
式中:
μ——數據均值(期望);
σ——數據標準差。
針對香菇彩色圖像,像素的樣本數據x是一個包含H、S、I 3個通道多維數據的三維矢量,即當x=[xH,xS,xI]時,高斯分布遵從概率密度函數:
(2)
式中:
μ——3個通道的平均矢量(即平均色調、平均飽和度、平均亮度);
∑——一個3×3的協方差矩陣,對角線上的元素表征3個維度上變量的方差;
D——數據維度,取3。
混合模型是一個可以用來表示在總體分布中含有K個子分布的概率模型。高斯混合模型的概率分布為:
(3)
式中:
K——混合模型中子模型數量,取K=3;

φ(x|θk)——第k個子模型的高斯分布密度函數(即菌蓋、菌褶和背景中某個區域中像素的高斯分布密度函數)。
式(3)中,參數θ=(μk,σk,φk)T,即每個子模型的期望、方差、在混合模型中的概率。求解出θ即可完成高斯混合模型的訓練[12]。
對于單高斯模型,一般使用最大似然法估計參數θ的值。
θ=argmaxθLθ。
(4)
因為香菇圖像中每個像素的顏色特征都是獨立的,故在計算中每個數據點也可以看成是獨立的,則其似然函數即為概率密度函數。
(5)
式中:
xj——第j個觀測數據,j=1,2,3,…,N。
單高斯模型中,觀測數據可能屬于HSI中任意一維的數據,即x=xH或x=xS或x=xI。
由于圖像分辨率較高,故每個點發生的概率都很小,乘積也會變得極其小,不利于計算和觀察,因此通常用Maximum Log-Likelihood計算:
(6)
對于高斯混合模型而言,Log-Likelihood函數為:
(7)
因此,無法使用單高斯模型的最大似然法進行求導,求得使likelihood最大的參數,因為每個像素點屬于哪個區域是未知的,即某個像素屬于不同區域的概率是隱變量。因此使用EM算法進行求解。EM算法是一種迭代算法,1977年由Dempster等[13]總結提出,用于含有隱變量的概率模型參數的最大似然估計。
利用EM算法迭代更新高斯混合模型參數的方法如下:
先初始化參數(μ,∑,π)。
E步:求期望E(γjk|X,θ),j=1,2,3,…,N。其中,γjk表示香菇圖像中第j個像素數據屬于第k個子模型的概率。
依據初始化的參數求解γjk:
(8)
M步:求解參數的極大值,計算新一輪迭代的模型參數,分別如式(9)~式(11)所示。
(9)
(10)
(11)
其中,計算∑k時用到的是該論更新過的μk。重復計算E步和M步直至收斂,即找到高斯混合模型的參數。
2.3.3 香菇圖像的區域分割 香菇圖像區域分割中,使用查找表對多通道圖像進行像素分類。LUT是用簡單的查詢操作替換運行時的計算步驟。由于從內存中提取數值比計算快,所以得到的速度提升效果很顯著。
讀取上一步高斯混合模型訓練結果,建立一個LUT,將GMM的每一個可能的響應都存儲至LUT中。將相機實時拍攝的圖像轉換為HSI色彩空間,再重新組合為多通道圖像。使用LUT對該多通道圖像進行像素分類,因為不再需要對每個圖像點的類別進行估計,因此像素分類的速度得到了很大的提高。分別對每一個像素點進行像素分類,即完成了香菇的圖像區域分割。
要實現香菇分級,需對分級標準進行量化,根據NY/T 1061—2006以及相關特征參數和人工分級結果,特制定香菇的量化分級標準流程如圖8所示。
2.4.1 正反面的判斷 由表1可知,關于香菇分級的特征參數多在香菇的反面,所以先對香菇的正反面進行判斷。判斷香菇的正反面可通過圖像中菌褶的面積占比進行確定。通常香菇的菌褶只存在于香菇背面,可通過菌褶面積占比識別香菇的正反,分別計算香菇整體和菌褶面積,記為Sentire和Slamella,定義rLE=Slamella/Sentire作為正反面的識別因子。如設當rLE<0.1時,當前圖像為正面,反之則為背面。

圖8 香菇分級量化標準Figure 8 Classification and quantification standards
2.4.2 直徑和圓度 以香菇輪廓區域的形心為起始點,等角度間距δA引出直線段,每條直線段的終點為其與香菇輪廓邊緣的交點,一般設δA=1°,如圖9所示。

圖9 香菇圖像和由線段組成的輪廓圖Figure 9 Shiitake image and outline composed ofline segments
設直線段的長度為L=[L0,L1,…,LN],N=360/δA。則定義香菇直徑D和圓度C為:
D=uL,
(12)
(13)
(14)
(15)
其中,C的值越接近于1,圓度越好。
2.4.3 破損或畸形度的計算 香菇的破損或畸形主要體現在菌褶區域,計算香菇的破損度可以將香菇菌褶區域的圖像進行凸包性轉換。凸包是將二維平面上的點集最外層的點連接起來構成的凸多邊形,其能包含點集中所有的點。對香菇輪廓圖像進行凸包性轉換可以方便地計算破損區域面積。香菇整體區域和經凸包轉換后的區域示意圖如圖10所示。
對圖10(b)和圖10(c)兩個區域進行減法運算,所得區域即定義為香菇的缺陷部分(見圖11)。
將香菇破損區域面積定義為Sbroken,香菇的破損率可定義為tbroken,并按式(16)計算。
(16)
2.4.4 包邊厚度、均勻性及占比 香菇菌蓋外翻至背面的部分稱為包邊,包邊厚度、均勻性和占比是影響香菇等級的重要因素。其包邊示意圖如圖12所示。

圖10 破損香菇輪廓和凸包轉換后的輪廓Figure 10 The contour of the damaged Shiitake and the contour after the convex hull conversion

圖11 香菇破損區域Figure 11 Damaged area of shiitake

圖12 包邊示意圖Figure 12 Schematic diagram ofturned edge
操作步驟同2.4.2,得到一個由N條直線段組合成的圖像,其中N=360/δA,一般設δ=1°。將此圖像與香菇包邊區域相交,可得由N條線段組成的線段環,如圖13所示。
包邊厚度分布如圖14所示。
計算圖13輪廓環中所有線段長度,分別定義為l=[l0,l1,…,lN],包邊厚度則為所有線段長度的平均值,則定義香菇包邊厚度d為:
d=ul,
(17)
(18)
香菇包邊的均勻性可用標準差S表示:
(19)
其中,將香菇包邊部分的面積定義為Sedge,香菇包邊部分所占香菇整體的比例越大,則香菇品質越高,定義香菇包邊占比為tedge,則:
(20)
為驗證文中提出的分級方法,搭建了一套香菇智能分揀系統樣機。視覺部分采用IMI的716 G彩色工業相機,分辨率1 280×960,白色環形LED光源,焦距為8 mm 的工業相機鏡頭,采用Gige以太網傳輸圖像。工控機主要配置為Intel i7-7700K CPU,NVIDIA GTX1080Ti GPU,16 GB RAM,64位 Windows 7操作系統。
采用VS2015 C++與QT作為開發平臺,借助Halcon圖像處理算法庫,開發分級系統軟件,其主要界面如圖15所示。

圖13 香菇包邊輪廓的線段環Figure 13 Line segment ring of the mushroom turned edge

圖14 包邊線段長度分布直方圖Figure 14 Histogram of the length distribution of the turned edge line

圖15 軟件操作界面Figure 15 GUI of software
3.2.1 與人工分級結果對比 選取1 000個香菇進行分級測試,設置香菇等級劃分為Ⅰ級、Ⅱ級、Ⅲ級、Ⅳ級4類。同時,設定人工肉眼分級作為對照組,其分級結果見表2。

表2 系統分級與人工分級結果對比
由表2可知,與人工分級相比,香菇自動分級系統的整體準確率達96%以上。同時進行了系統分選速度測試試驗,將震料盤上料速度與傳送帶輸送速度均調整為最高,自動分級系統對1 000個香菇完成分級花費時間290 s,平均速度為3.4個/s,而人工手動分級的平均速度為0.7個/s,自動分級系統的平均速度為人工的5倍,且人工分級出現了后期速度變慢的問題。
3.2.2 圖像處理速度穩定性試驗 為驗證不同香菇圖像處理速度的穩定性以及不同等級的香菇圖像處理速度的差異性,選取已分級好的不同等級的香菇圖像各20張,輸入至分級系統,計算圖像處理時間,其結果見表3。由表3可知,不同等級香菇的平均圖像處理時間基本無顯著差異,說明圖像處理速度的穩定性較高。

表3 香菇圖像處理時間統計
基于機器視覺的香菇自動分級系統速度快、準確率高,可以充分滿足食品工業的生產要求。相對于人工手動分級,香菇自動分級系統不僅速度快而且可以長時間工作并保持較高的工作效率,且不存在主觀偶然性,分級標準永遠保持一致。
設計了一種基于機器視覺的香菇自動分級系統。在計算機視覺的基礎上,利用高斯混合模型(GMM)對香菇圖像進行區域分割,并結合LUT將香菇圖像分割成菌蓋、菌褶以及背景區域。結果表明:香菇自動分級系統的分級速度快、效率高、分級結果準確,可以有效替代人工分級并滿足食品工業企業的生產需要。但是目前的分級準確率和分級速度還有提升的空間,后續可以通過提高震料盤上料速度和皮帶線的運行速度,改進算法,有望將準確率提高至99%以上、分級速度達5個/s以上。此外,試驗僅測試了香菇中的冬菇,后續將增加對其他香菇品種的研究。