汪 威 劉亞川 呂 斌 胡新宇
(湖北工業(yè)大學(xué)機(jī)械工程學(xué)院,湖北 武漢 430068)
機(jī)器視覺與圖像處理作為一種無損檢測(cè)方法[1],在農(nóng)產(chǎn)品檢測(cè)方面應(yīng)用廣泛。其主要是通過對(duì)采集到的農(nóng)產(chǎn)品圖像進(jìn)行大小、形狀、顏色和表面缺陷等特征提取,給予其約束條件以達(dá)到分級(jí)的目的。Pauly等[2]利用機(jī)器視覺技術(shù)根據(jù)芒果的形狀特征對(duì)芒果進(jìn)行分級(jí),其分級(jí)準(zhǔn)確率達(dá)83.3%。楊濤等[3]提出了從成熟度、質(zhì)量、形狀3方面綜合評(píng)估草莓等級(jí),其分級(jí)準(zhǔn)確率達(dá)90%以上;王陽陽等[4]利用同態(tài)濾波和改進(jìn)的 K-means算法解決了蘋果分級(jí)過程中,光線不均導(dǎo)致的表面反光和陰影問題。鐘小華等[5]設(shè)計(jì)了一種利用鏡面反射原理的紅棗表面信息采集機(jī)構(gòu),能夠采集紅棗全表面的特征。Innocent等[6]開發(fā)了一種從深度圖像中提取2D和3D特征的算法來估算番茄的體積和重量。香菇(shiitake mushroom)可分為花菇、冬菇和香覃,文章主要研究對(duì)象為冬菇。夏青[7]對(duì)干香菇進(jìn)行了正反面識(shí)別、菇柄識(shí)別、破損識(shí)別以及紋理識(shí)別等方面的研究,但主要是對(duì)不同種類的香菇進(jìn)行分類。Wang等[8]提出了一種基于分水嶺算法的圖像算法對(duì)白蘑菇進(jìn)行分級(jí),該算法消除了陰影和葉柄對(duì)圖像的影響。綜上,多數(shù)研究均是根據(jù)香菇的基本形狀進(jìn)行分級(jí),對(duì)其細(xì)節(jié)的研究較少,大部分細(xì)節(jié)研究都是針對(duì)香菇的破損,沒有對(duì)香菇各區(qū)域的細(xì)節(jié)進(jìn)行研究;且分級(jí)均是針對(duì)干香菇,而對(duì)鮮香菇的分級(jí)研究較少,并且這些對(duì)鮮香菇的研究中僅是對(duì)香菇大小分級(jí),未考慮其他特征,分級(jí)效果并不理想。研究擬以去柄鮮香菇為對(duì)象,基于機(jī)器視覺技術(shù),利用顏色特征建立高斯混合模型,對(duì)香菇圖像不同區(qū)域進(jìn)行識(shí)別,再提取各區(qū)域的幾何特征參數(shù),根據(jù)相關(guān)標(biāo)準(zhǔn)設(shè)立分級(jí)標(biāo)準(zhǔn),實(shí)現(xiàn)香菇的智能分級(jí),旨在提高香菇分級(jí)的效率與準(zhǔn)確率,以代替人工分級(jí)。
香菇分級(jí)系統(tǒng)主要由視覺子系統(tǒng)、上料機(jī)構(gòu)、皮帶線、翻面機(jī)構(gòu)和分撥機(jī)構(gòu)等組成(圖1)。其中上料機(jī)構(gòu)為振料盤,將散亂的待分級(jí)香菇有序地排列并輸送至皮帶線上。皮帶線利用差速原理拉開香菇個(gè)體間距,使其能逐一通過視覺檢測(cè)區(qū)域,并保證工業(yè)相機(jī)的視野范圍內(nèi)只出現(xiàn)一個(gè)待檢對(duì)象。視覺系統(tǒng)包含兩組由光源、工業(yè)鏡頭、工業(yè)相機(jī)和相應(yīng)的算法軟件構(gòu)成的視覺檢測(cè)工位,兩組視覺檢測(cè)工位之間裝有一套香菇翻面機(jī)構(gòu)。兩組視覺檢測(cè)工位分別承擔(dān)香菇正、反兩面的視覺檢測(cè)功能,利用圖像處理算法判定被檢香菇等級(jí)。在視覺系統(tǒng)下游,沿皮帶運(yùn)行方向依次布置3組分料機(jī)構(gòu),可最多實(shí)現(xiàn)對(duì)香菇4個(gè)等級(jí)的分撥。分撥機(jī)構(gòu)主要由步進(jìn)電機(jī)和撥片構(gòu)成,以達(dá)到最高撥5次/s的設(shè)計(jì)要求。香菇分級(jí)系統(tǒng)的工作流程如圖2所示。
去柄后的香菇主要分為菌蓋、菌褶和包邊等部分[9](見圖3)。香菇等級(jí)主要與其直徑、圓度、包邊厚度、均勻性及占比等參數(shù)有關(guān),文中將香菇分為4個(gè)等級(jí),其評(píng)判依據(jù)如表1所示。
1. 工控機(jī) 2. 千兆網(wǎng)線 3. 工業(yè)相機(jī) 4. 環(huán)形光源 5. 傳感器 6. 試驗(yàn)香菇 7. 上料機(jī)構(gòu) 8. 調(diào)速器 9. 步進(jìn)電機(jī) 10. 傳送帶 11. 翻轉(zhuǎn)機(jī)構(gòu) 12. 分撥機(jī)構(gòu) 13. PLC控制器圖1 香菇分級(jí)系統(tǒng)機(jī)械結(jié)構(gòu)圖Figure 1 Mechanical structure of Shiitake grading system
圖2 香菇分級(jí)系統(tǒng)工作流程圖Figure 2 Shiitake grading system workflow
圖3 香菇各區(qū)域名稱類別Figure 3 Description of each area name of shiitake
表1 香菇等級(jí)評(píng)判依據(jù)
香菇分級(jí)視覺系統(tǒng)通過彩色工業(yè)相機(jī)獲取香菇圖像,根據(jù)表1中的分級(jí)要求,先將香菇從背景中分離,然后分割出菌蓋、包邊和菌褶,再對(duì)各特征指標(biāo)進(jìn)行量化,最終實(shí)現(xiàn)分級(jí)。其中,香菇區(qū)域的分割是圖像處理的關(guān)鍵步驟。
樣本訓(xùn)練的目的是對(duì)香菇進(jìn)行區(qū)域分割,首先由人工或者利用傳統(tǒng)的區(qū)域分割算法將有限的樣本分為背景、菌蓋、菌褶和包邊4個(gè)區(qū)域。顏色是區(qū)域劃分的重要特征,其中菌蓋和包邊的顏色特征一致,但由于菌蓋與菌褶互斥,即不出現(xiàn)在同一樣本圖像中。因此可根據(jù)樣本圖像中菌褶顏色特征的分布情況區(qū)分樣本圖像中的菌蓋和包邊,因此利用高斯混合模型[10]實(shí)現(xiàn)對(duì)圖像區(qū)域的分割。假設(shè)不同區(qū)域的顏色特征服從混合高斯分布(GMM),根據(jù)之前已劃分好區(qū)域的樣本圖像進(jìn)行模型訓(xùn)練,估計(jì)GMM參數(shù)。將GMM中所有可能存在的結(jié)果儲(chǔ)存于查找表(LUT)中,輸入實(shí)時(shí)香菇圖像,使用查找表對(duì)多通道圖像進(jìn)行像素分類,即可得到香菇圖像的區(qū)域分割結(jié)果。最終的分級(jí)部分則根據(jù)分割后的香菇區(qū)域圖像,提取香菇等級(jí)相關(guān)的特征參數(shù),根據(jù)相關(guān)標(biāo)準(zhǔn)設(shè)置香菇分級(jí)標(biāo)準(zhǔn)。其工作流程如圖4所示。
2.3.1 圖像預(yù)處理 為簡(jiǎn)化訓(xùn)練樣本的制作,將有限個(gè)具有各種特征的香菇圖像進(jìn)行組合,制作成一張訓(xùn)練圖片如圖5所示。
先將原始圖像由RGB色彩空間轉(zhuǎn)換為HSI[11]色彩空間。在傳統(tǒng)的RGB顏色空間中,任何顏色都可由分量 R、G、B 不同的取值表示,3個(gè)分量間具有較強(qiáng)的相關(guān)性,在香菇圖像分割中很難將各區(qū)域進(jìn)行分割。HSI顏色空間即色調(diào)、飽和度、亮度。相比原始的RGB圖像,HSI圖像對(duì)顏色信息的利用率更高,在香菇圖像區(qū)域分割時(shí)更容易將各區(qū)域進(jìn)行分隔。香菇訓(xùn)練圖像的HSI各分量圖像如圖6所示。
圖4 視覺系統(tǒng)工作流程圖Figure 4 Vision system workflow
圖5 香菇訓(xùn)練圖像Figure 5 Shiitake training image
分別對(duì)圖6中3個(gè)通道的圖像進(jìn)行閾值分割、膨脹腐蝕等處理,再根據(jù)形狀、特征選擇區(qū)域等圖像處理后,將訓(xùn)練圖像中的各個(gè)區(qū)域進(jìn)行分割,分割結(jié)果如圖7所示。
2.3.2 香菇區(qū)域分割的GMM建模與求解 在采集到的彩色香菇圖像中,所有的像素顏色特征組合成一個(gè)高斯混合模型。將香菇圖像分為菌蓋(包邊)、菌褶、背景3個(gè)部分,設(shè)置的高斯混合模型由K=3個(gè)高斯分布組成,其中每一個(gè)高斯分布都是該高斯混合模型的子分布。其是由H、S、I 3個(gè)維度的顏色特征組成的多維數(shù)據(jù)的單高斯模型,其樣本數(shù)據(jù)可記作x=[xH,xS,xI]。求解其中每一個(gè)高斯模型的期望、方差及其在混合模型中的概率,即該高斯混合模型的訓(xùn)練。
圖6 訓(xùn)練圖像的HSI各分量圖像Figure 6 HSI component image of training image
圖7 香菇訓(xùn)練圖像區(qū)域分割結(jié)果Figure 7 Region segmentation results of mushroom training image
對(duì)于單高斯模型,當(dāng)樣本數(shù)據(jù)x為一維數(shù)據(jù)時(shí),高斯分布遵從概率密度函數(shù):
(1)
式中:
μ——數(shù)據(jù)均值(期望);
σ——數(shù)據(jù)標(biāo)準(zhǔn)差。
針對(duì)香菇彩色圖像,像素的樣本數(shù)據(jù)x是一個(gè)包含H、S、I 3個(gè)通道多維數(shù)據(jù)的三維矢量,即當(dāng)x=[xH,xS,xI]時(shí),高斯分布遵從概率密度函數(shù):
(2)
式中:
μ——3個(gè)通道的平均矢量(即平均色調(diào)、平均飽和度、平均亮度);
∑——一個(gè)3×3的協(xié)方差矩陣,對(duì)角線上的元素表征3個(gè)維度上變量的方差;
D——數(shù)據(jù)維度,取3。
混合模型是一個(gè)可以用來表示在總體分布中含有K個(gè)子分布的概率模型。高斯混合模型的概率分布為:
(3)
式中:
K——混合模型中子模型數(shù)量,取K=3;
φ(x|θk)——第k個(gè)子模型的高斯分布密度函數(shù)(即菌蓋、菌褶和背景中某個(gè)區(qū)域中像素的高斯分布密度函數(shù))。
式(3)中,參數(shù)θ=(μk,σk,φk)T,即每個(gè)子模型的期望、方差、在混合模型中的概率。求解出θ即可完成高斯混合模型的訓(xùn)練[12]。
對(duì)于單高斯模型,一般使用最大似然法估計(jì)參數(shù)θ的值。
θ=argmaxθLθ。
(4)
因?yàn)橄愎綀D像中每個(gè)像素的顏色特征都是獨(dú)立的,故在計(jì)算中每個(gè)數(shù)據(jù)點(diǎn)也可以看成是獨(dú)立的,則其似然函數(shù)即為概率密度函數(shù)。
(5)
式中:
xj——第j個(gè)觀測(cè)數(shù)據(jù),j=1,2,3,…,N。
單高斯模型中,觀測(cè)數(shù)據(jù)可能屬于HSI中任意一維的數(shù)據(jù),即x=xH或x=xS或x=xI。
由于圖像分辨率較高,故每個(gè)點(diǎn)發(fā)生的概率都很小,乘積也會(huì)變得極其小,不利于計(jì)算和觀察,因此通常用Maximum Log-Likelihood計(jì)算:
(6)
對(duì)于高斯混合模型而言,Log-Likelihood函數(shù)為:
(7)
因此,無法使用單高斯模型的最大似然法進(jìn)行求導(dǎo),求得使likelihood最大的參數(shù),因?yàn)槊總€(gè)像素點(diǎn)屬于哪個(gè)區(qū)域是未知的,即某個(gè)像素屬于不同區(qū)域的概率是隱變量。因此使用EM算法進(jìn)行求解。EM算法是一種迭代算法,1977年由Dempster等[13]總結(jié)提出,用于含有隱變量的概率模型參數(shù)的最大似然估計(jì)。
利用EM算法迭代更新高斯混合模型參數(shù)的方法如下:
先初始化參數(shù)(μ,∑,π)。
E步:求期望E(γjk|X,θ),j=1,2,3,…,N。其中,γjk表示香菇圖像中第j個(gè)像素?cái)?shù)據(jù)屬于第k個(gè)子模型的概率。
依據(jù)初始化的參數(shù)求解γjk:
(8)
M步:求解參數(shù)的極大值,計(jì)算新一輪迭代的模型參數(shù),分別如式(9)~式(11)所示。
(9)
(10)
(11)
其中,計(jì)算∑k時(shí)用到的是該論更新過的μk。重復(fù)計(jì)算E步和M步直至收斂,即找到高斯混合模型的參數(shù)。
2.3.3 香菇圖像的區(qū)域分割 香菇圖像區(qū)域分割中,使用查找表對(duì)多通道圖像進(jìn)行像素分類。LUT是用簡(jiǎn)單的查詢操作替換運(yùn)行時(shí)的計(jì)算步驟。由于從內(nèi)存中提取數(shù)值比計(jì)算快,所以得到的速度提升效果很顯著。
讀取上一步高斯混合模型訓(xùn)練結(jié)果,建立一個(gè)LUT,將GMM的每一個(gè)可能的響應(yīng)都存儲(chǔ)至LUT中。將相機(jī)實(shí)時(shí)拍攝的圖像轉(zhuǎn)換為HSI色彩空間,再重新組合為多通道圖像。使用LUT對(duì)該多通道圖像進(jìn)行像素分類,因?yàn)椴辉傩枰獙?duì)每個(gè)圖像點(diǎn)的類別進(jìn)行估計(jì),因此像素分類的速度得到了很大的提高。分別對(duì)每一個(gè)像素點(diǎn)進(jìn)行像素分類,即完成了香菇的圖像區(qū)域分割。
要實(shí)現(xiàn)香菇分級(jí),需對(duì)分級(jí)標(biāo)準(zhǔn)進(jìn)行量化,根據(jù)NY/T 1061—2006以及相關(guān)特征參數(shù)和人工分級(jí)結(jié)果,特制定香菇的量化分級(jí)標(biāo)準(zhǔn)流程如圖8所示。
2.4.1 正反面的判斷 由表1可知,關(guān)于香菇分級(jí)的特征參數(shù)多在香菇的反面,所以先對(duì)香菇的正反面進(jìn)行判斷。判斷香菇的正反面可通過圖像中菌褶的面積占比進(jìn)行確定。通常香菇的菌褶只存在于香菇背面,可通過菌褶面積占比識(shí)別香菇的正反,分別計(jì)算香菇整體和菌褶面積,記為Sentire和Slamella,定義rLE=Slamella/Sentire作為正反面的識(shí)別因子。如設(shè)當(dāng)rLE<0.1時(shí),當(dāng)前圖像為正面,反之則為背面。
圖8 香菇分級(jí)量化標(biāo)準(zhǔn)Figure 8 Classification and quantification standards
2.4.2 直徑和圓度 以香菇輪廓區(qū)域的形心為起始點(diǎn),等角度間距δA引出直線段,每條直線段的終點(diǎn)為其與香菇輪廓邊緣的交點(diǎn),一般設(shè)δA=1°,如圖9所示。
圖9 香菇圖像和由線段組成的輪廓圖Figure 9 Shiitake image and outline composed ofline segments
設(shè)直線段的長(zhǎng)度為L(zhǎng)=[L0,L1,…,LN],N=360/δA。則定義香菇直徑D和圓度C為:
D=uL,
(12)
(13)
(14)
(15)
其中,C的值越接近于1,圓度越好。
2.4.3 破損或畸形度的計(jì)算 香菇的破損或畸形主要體現(xiàn)在菌褶區(qū)域,計(jì)算香菇的破損度可以將香菇菌褶區(qū)域的圖像進(jìn)行凸包性轉(zhuǎn)換。凸包是將二維平面上的點(diǎn)集最外層的點(diǎn)連接起來構(gòu)成的凸多邊形,其能包含點(diǎn)集中所有的點(diǎn)。對(duì)香菇輪廓圖像進(jìn)行凸包性轉(zhuǎn)換可以方便地計(jì)算破損區(qū)域面積。香菇整體區(qū)域和經(jīng)凸包轉(zhuǎn)換后的區(qū)域示意圖如圖10所示。
對(duì)圖10(b)和圖10(c)兩個(gè)區(qū)域進(jìn)行減法運(yùn)算,所得區(qū)域即定義為香菇的缺陷部分(見圖11)。
將香菇破損區(qū)域面積定義為Sbroken,香菇的破損率可定義為tbroken,并按式(16)計(jì)算。
(16)
2.4.4 包邊厚度、均勻性及占比 香菇菌蓋外翻至背面的部分稱為包邊,包邊厚度、均勻性和占比是影響香菇等級(jí)的重要因素。其包邊示意圖如圖12所示。
圖10 破損香菇輪廓和凸包轉(zhuǎn)換后的輪廓Figure 10 The contour of the damaged Shiitake and the contour after the convex hull conversion
圖11 香菇破損區(qū)域Figure 11 Damaged area of shiitake
圖12 包邊示意圖Figure 12 Schematic diagram ofturned edge
操作步驟同2.4.2,得到一個(gè)由N條直線段組合成的圖像,其中N=360/δA,一般設(shè)δ=1°。將此圖像與香菇包邊區(qū)域相交,可得由N條線段組成的線段環(huán),如圖13所示。
包邊厚度分布如圖14所示。
計(jì)算圖13輪廓環(huán)中所有線段長(zhǎng)度,分別定義為l=[l0,l1,…,lN],包邊厚度則為所有線段長(zhǎng)度的平均值,則定義香菇包邊厚度d為:
d=ul,
(17)
(18)
香菇包邊的均勻性可用標(biāo)準(zhǔn)差S表示:
(19)
其中,將香菇包邊部分的面積定義為Sedge,香菇包邊部分所占香菇整體的比例越大,則香菇品質(zhì)越高,定義香菇包邊占比為tedge,則:
(20)
為驗(yàn)證文中提出的分級(jí)方法,搭建了一套香菇智能分揀系統(tǒng)樣機(jī)。視覺部分采用IMI的716 G彩色工業(yè)相機(jī),分辨率1 280×960,白色環(huán)形LED光源,焦距為8 mm 的工業(yè)相機(jī)鏡頭,采用Gige以太網(wǎng)傳輸圖像。工控機(jī)主要配置為Intel i7-7700K CPU,NVIDIA GTX1080Ti GPU,16 GB RAM,64位 Windows 7操作系統(tǒng)。
采用VS2015 C++與QT作為開發(fā)平臺(tái),借助Halcon圖像處理算法庫,開發(fā)分級(jí)系統(tǒng)軟件,其主要界面如圖15所示。
圖13 香菇包邊輪廓的線段環(huán)Figure 13 Line segment ring of the mushroom turned edge
圖14 包邊線段長(zhǎng)度分布直方圖Figure 14 Histogram of the length distribution of the turned edge line
圖15 軟件操作界面Figure 15 GUI of software
3.2.1 與人工分級(jí)結(jié)果對(duì)比 選取1 000個(gè)香菇進(jìn)行分級(jí)測(cè)試,設(shè)置香菇等級(jí)劃分為Ⅰ級(jí)、Ⅱ級(jí)、Ⅲ級(jí)、Ⅳ級(jí)4類。同時(shí),設(shè)定人工肉眼分級(jí)作為對(duì)照組,其分級(jí)結(jié)果見表2。
表2 系統(tǒng)分級(jí)與人工分級(jí)結(jié)果對(duì)比
由表2可知,與人工分級(jí)相比,香菇自動(dòng)分級(jí)系統(tǒng)的整體準(zhǔn)確率達(dá)96%以上。同時(shí)進(jìn)行了系統(tǒng)分選速度測(cè)試試驗(yàn),將震料盤上料速度與傳送帶輸送速度均調(diào)整為最高,自動(dòng)分級(jí)系統(tǒng)對(duì)1 000個(gè)香菇完成分級(jí)花費(fèi)時(shí)間290 s,平均速度為3.4個(gè)/s,而人工手動(dòng)分級(jí)的平均速度為0.7個(gè)/s,自動(dòng)分級(jí)系統(tǒng)的平均速度為人工的5倍,且人工分級(jí)出現(xiàn)了后期速度變慢的問題。
3.2.2 圖像處理速度穩(wěn)定性試驗(yàn) 為驗(yàn)證不同香菇圖像處理速度的穩(wěn)定性以及不同等級(jí)的香菇圖像處理速度的差異性,選取已分級(jí)好的不同等級(jí)的香菇圖像各20張,輸入至分級(jí)系統(tǒng),計(jì)算圖像處理時(shí)間,其結(jié)果見表3。由表3可知,不同等級(jí)香菇的平均圖像處理時(shí)間基本無顯著差異,說明圖像處理速度的穩(wěn)定性較高。
表3 香菇圖像處理時(shí)間統(tǒng)計(jì)
基于機(jī)器視覺的香菇自動(dòng)分級(jí)系統(tǒng)速度快、準(zhǔn)確率高,可以充分滿足食品工業(yè)的生產(chǎn)要求。相對(duì)于人工手動(dòng)分級(jí),香菇自動(dòng)分級(jí)系統(tǒng)不僅速度快而且可以長(zhǎng)時(shí)間工作并保持較高的工作效率,且不存在主觀偶然性,分級(jí)標(biāo)準(zhǔn)永遠(yuǎn)保持一致。
設(shè)計(jì)了一種基于機(jī)器視覺的香菇自動(dòng)分級(jí)系統(tǒng)。在計(jì)算機(jī)視覺的基礎(chǔ)上,利用高斯混合模型(GMM)對(duì)香菇圖像進(jìn)行區(qū)域分割,并結(jié)合LUT將香菇圖像分割成菌蓋、菌褶以及背景區(qū)域。結(jié)果表明:香菇自動(dòng)分級(jí)系統(tǒng)的分級(jí)速度快、效率高、分級(jí)結(jié)果準(zhǔn)確,可以有效替代人工分級(jí)并滿足食品工業(yè)企業(yè)的生產(chǎn)需要。但是目前的分級(jí)準(zhǔn)確率和分級(jí)速度還有提升的空間,后續(xù)可以通過提高震料盤上料速度和皮帶線的運(yùn)行速度,改進(jìn)算法,有望將準(zhǔn)確率提高至99%以上、分級(jí)速度達(dá)5個(gè)/s以上。此外,試驗(yàn)僅測(cè)試了香菇中的冬菇,后續(xù)將增加對(duì)其他香菇品種的研究。