劉 韋
(濟(jì)南大學(xué) 泉城學(xué)院,山東 蓬萊 265600)
雙孢蘑菇(Agaricus bisporus)的質(zhì)地厚實(shí)、味道鮮美、顏色潔白,是目前世界上生產(chǎn)量最大、栽培區(qū)域最廣的食用菌品種,又被稱為洋蘑菇、白蘑菇和口蘑等[1-2]。隨著雙孢蘑菇需求量的不斷增加,現(xiàn)階段已經(jīng)實(shí)現(xiàn)工廠化生產(chǎn),較大規(guī)模工廠每日生產(chǎn)的雙孢蘑菇高達(dá)上百噸[3]。目前,國內(nèi)主要通過人工對雙孢蘑菇進(jìn)行分級處理,工人自身素質(zhì)會(huì)影響到人工分級的精準(zhǔn)度,且人工分級還存在分級精度不穩(wěn)定、勞動(dòng)量大、分級標(biāo)準(zhǔn)不統(tǒng)一和生產(chǎn)效率低的問題,因此需要研究雙孢蘑菇的采收和分級方法[4]。
邢士元等[5]提出基于機(jī)器視覺的產(chǎn)品分級方法,該方法結(jié)合邊界跟蹤法和中值濾波法可對蘑菇圖像進(jìn)行預(yù)處理,通過外界矩形旋轉(zhuǎn)法和三點(diǎn)一線法計(jì)算蘑菇的縱軸長和橫軸長, 將蘑菇的中軸曲率、橫軸長、偏心率、縱軸長、似圓度作為分級特征,通過BP神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)蘑菇分級,該方法存在特征提取精準(zhǔn)度低的問題。顏秉忠等[6]提出基于計(jì)算機(jī)技術(shù)的分級方法。在計(jì)算機(jī)中輸入蘑菇的圖像,并對其做灰度化處理,分割獲得的灰度圖像,根據(jù)分割結(jié)果提取蘑菇的輪廓,將輪廓的長寬作為參數(shù),對新鮮雙孢蘑菇進(jìn)行分級,該方法提取蘑菇輪廓所用的時(shí)間較長,分級效率低。
綜上所述,提出新鮮雙孢蘑菇采收和自動(dòng)化分級方法。
新鮮雙孢蘑菇采收和自動(dòng)化分級方法通過機(jī)械采收器采收雙孢蘑菇,具體步驟,見圖1。
圖1 機(jī)械采收器的采收步驟Fig.1 Mechanical harvester harvesting steps
通過圖1可知,采用機(jī)械采收器采收雙孢蘑菇主要包括兩個(gè)步驟,分別是采收雙孢蘑菇和將雙孢蘑菇從菌床中運(yùn)走。
在采收雙孢蘑菇時(shí),需要切斷雙孢蘑菇的菌柄,并使雙孢蘑菇直立,將雙孢蘑菇與菌簇分開。
傳送雙孢蘑菇時(shí)的主要步驟為:分割菌床,將雙孢蘑菇從床面上提起,并使雙孢蘑菇離開菌床,將其放到傳送帶中或容器中。
新鮮雙孢蘑菇采收和自動(dòng)化分級方法在雙孢蘑菇行業(yè)標(biāo)準(zhǔn)的基礎(chǔ)上,將雙孢蘑菇分為小、中、大三個(gè)級別。采集新鮮雙孢蘑菇圖像,提取圖像中新鮮雙孢蘑菇的特征參數(shù)時(shí),發(fā)現(xiàn)雙孢蘑菇的柄部和圖像中存在的陰影是影響特征提取精準(zhǔn)度的主要影響因素,因此新鮮雙孢蘑菇采收和自動(dòng)化分級方法結(jié)合尋找最大閾值分割法和全局閾值分割法對雙孢蘑菇圖像進(jìn)行第一次分水嶺處理,去除雙孢蘑菇圖像中存在的陰影,之后結(jié)合閉運(yùn)算和Canny算子對雙孢蘑菇圖像進(jìn)行第二次分水嶺處理,去除圖像中的非邊緣部分,具體過程如下:
3.1.1 獲得閾值T1
通過全局閾值法對雙孢蘑菇進(jìn)行第一次分水嶺處理之前,提取雙孢蘑菇圖像中的感興趣區(qū)域,具體步驟如下:
針對全局閾值,設(shè)定初始估計(jì)值G。采用估計(jì)值G對雙孢蘑菇圖像進(jìn)行分割,獲得兩組像素。分別是由灰度值高于G的像素構(gòu)成的G1,以及由小于等于G的像素構(gòu)成的G2。
設(shè)g1、g2分別代表的是像素G1、G2對應(yīng)的平均灰度值,通過上述參數(shù)獲得新閾值G的計(jì)算公式如下:
重復(fù)上述過程,當(dāng)閾值G在迭代過程中的差值滿足零時(shí),停止迭代,最后獲得的G即為閾值T1。
二值化處理雙孢蘑菇圖像之前,需要用灰度圖代替原始雙孢蘑菇圖像,當(dāng)閾值T1小于像素點(diǎn)的灰度值時(shí),此時(shí)像素點(diǎn)變?yōu)榘咨?,對?yīng)的灰度值為255;當(dāng)閾值T1大于像素點(diǎn)的灰度值時(shí),此時(shí)像素點(diǎn)為黑色,對應(yīng)的灰度值為0,獲得雙孢蘑菇圖像1。
3.1.2 獲得閾值T2
隨機(jī)變量的不確定性可以用熵描述,隨機(jī)變量的不確定性越高,對應(yīng)的熵值越大。在雙孢蘑菇圖像中,背景和前景交界處之間存在的信息最多,對應(yīng)的熵值越大。
新鮮雙孢蘑菇采收和自動(dòng)化分級方法通過KSW算法確定閾值并使熵值最大。
設(shè)t代表的是分割閾值;L代表的是雙孢蘑菇圖像中存在的灰度級總數(shù),存在公式:
式中:i=0,1,L,L-1;Pi代表的是第i個(gè)灰度在圖像中出現(xiàn)的概率。
設(shè)T代表的是{0,1,2L,t}對應(yīng)的灰度密度;B代表的是{t+1,t+2,L,L-1}對應(yīng)的灰度密度,則:
上述公式中參數(shù)Pn的計(jì)算公式如下:
設(shè)H(T)代表的是灰度密度T對應(yīng)的熵;H(B)代表的是灰度密度B對應(yīng)的熵,其計(jì)算公式分別如下:
設(shè)?(t)代表的是熵函數(shù),其計(jì)算公式如下:
通過上述計(jì)算得到的最大熵函數(shù)對應(yīng)的灰度級即為閾值T2。將雙孢蘑菇圖像轉(zhuǎn)變?yōu)榛叶葓D后對其進(jìn)行二值化處理,當(dāng)閾值T2的值小于像素點(diǎn)對應(yīng)的灰度值時(shí),此時(shí)像素點(diǎn)呈灰色,灰度值為128;當(dāng)閾值T2的值大于像素點(diǎn)對應(yīng)的灰度值時(shí),此時(shí)像素點(diǎn)呈黑色,灰度值為0,獲得雙孢蘑菇圖像2。
3.1.3 第一次分水嶺
標(biāo)記的雙孢蘑菇圖像的前景選用圖像1的前景,此時(shí)像素點(diǎn)呈白色,對應(yīng)的灰度值為255;標(biāo)記的雙孢蘑菇圖像的背景選用圖像2的背景,此時(shí)像素點(diǎn)呈灰色,對應(yīng)的灰度值為128;剩余像素點(diǎn)呈黑色,對應(yīng)的灰度值為0。在雙孢蘑菇圖像中標(biāo)記出前景區(qū)域,獲取不確定區(qū)域和背景區(qū)域,在背景特征和前景特征的基礎(chǔ)上采用分水嶺算法去除雙孢蘑菇圖像中的陰影。
3.1.4 第二次分水嶺
Canny算子被廣泛的應(yīng)用在邊緣檢測領(lǐng)域中,將獲得的閾值T1和T2分別作為高低閾值。在由低閾值構(gòu)成的邊緣分布圖中,只保存存在連接鏈路的邊緣點(diǎn),并將由高閾值構(gòu)成的邊緣分布圖邊緣和低閾值構(gòu)成的邊緣分布圖中保存的點(diǎn)連接,獲得雙孢蘑菇第一輪的輪廓圖contours1,通過上述過程去除了低閾值分布圖中存在的邊緣點(diǎn)對應(yīng)的孤立鏈,保存了高閾值分布圖中存在的邊緣點(diǎn)。
將雙孢蘑菇圖像前景對應(yīng)的像素點(diǎn)灰度值設(shè)置為0,像素點(diǎn)呈現(xiàn)黑色,背景對應(yīng)的像素點(diǎn)灰度值為255,像素點(diǎn)呈現(xiàn)白色。通過Canny算子挖掘雙孢蘑菇輪廓,即contours1的前景對應(yīng)的像素點(diǎn)灰度值設(shè)置為255。此時(shí)前景呈現(xiàn)為白色;將背景像素點(diǎn)對應(yīng)的灰度值設(shè)置為0,此時(shí)背景呈現(xiàn)為黑色。將上述兩個(gè)圖像做運(yùn)算或邏輯,如果其中一個(gè)圖像的值為1,則結(jié)果為1;如果以上兩個(gè)圖像的值都為0,則結(jié)果為0,獲得result1圖像。對獲得的result1圖像做閉運(yùn)算處理,去除雙孢蘑菇圖像中存在的非邊緣,保留雙孢蘑菇的內(nèi)部邊緣。
新鮮雙孢蘑菇采收和自動(dòng)化分級方法提取雙孢蘑菇的大小特征和形狀特征,將提取到的雙孢蘑菇的大小特征和形狀特征輸入分類函數(shù)中,實(shí)現(xiàn)新鮮雙孢蘑菇的自動(dòng)化分級,具體步驟如下:
3.2.1 雙孢蘑菇大小特征提取
根據(jù)得到的雙孢蘑菇的輪廓,通過曲線對輪廓中的點(diǎn)進(jìn)行描繪,設(shè)代表的是該區(qū)域?qū)?yīng)的中心,可通過下式計(jì)算得到:
式中:n描述的是像素的總數(shù);xi、yi描述的是第i個(gè)像素點(diǎn)的坐標(biāo)。
計(jì)算輪廓中各像素點(diǎn)和中心之間存在的距離,并將距離平均值當(dāng)做雙孢蘑菇的直徑r0,其計(jì)算公式如下:
3.2.2 雙孢蘑菇形狀特征提取
根據(jù)中心點(diǎn)對應(yīng)的坐標(biāo)獲取與中心點(diǎn)橫坐標(biāo)相同的一個(gè)點(diǎn),以及與中心點(diǎn)縱坐標(biāo)相同的另一個(gè)點(diǎn),通過下式計(jì)算兩個(gè)點(diǎn)與中心點(diǎn)之間的距離d:
將上式計(jì)算得到的兩個(gè)距離值進(jìn)行比值處理,如果比值與1接近,表明雙孢蘑菇的形狀較好,如果比值與0較近,表明雙孢蘑菇的形狀較差。
將提取的雙孢蘑菇大小特征和顏色特征輸入支持向量機(jī)分類函數(shù)k(x,xi)中,完成雙孢蘑菇的自動(dòng)化分級,支持向量機(jī)分類函數(shù)k(x,xi)的表達(dá)式如下:
為了驗(yàn)證新鮮雙孢蘑菇采收和自動(dòng)化分級方法的整體有效性,在Matlab平臺中對新鮮雙孢蘑菇采收和自動(dòng)化分級方法進(jìn)行測試,對雙孢蘑菇分級的基礎(chǔ)是提出雙孢蘑菇的特征,分別采用新鮮雙孢蘑菇采收和自動(dòng)化分級方法(方法1)、基于機(jī)器視覺的蘑菇分級方法(方法2)和基于計(jì)算機(jī)技術(shù)的分級方法(方法3)進(jìn)行測試,對比3種不同方法的特征提取精準(zhǔn)度如圖2所示。
圖2 3種不同方法的特征提取精準(zhǔn)度Fig.2 Feature extraction accuracy of three different methods
分析圖2可知,采用新鮮雙孢蘑菇采收和自動(dòng)化分級方法在多次迭代中獲得的特征提取精準(zhǔn)度均高于基于機(jī)器視覺的蘑菇分級方法和基于計(jì)算機(jī)技術(shù)的分級方法,原因在于新鮮雙孢蘑菇采收和自動(dòng)化分級方法進(jìn)行特征提取之前去除了雙孢蘑菇圖像中存在的陰影,減少了陰影對特征提取結(jié)果造成的影響,提高了特征提取精準(zhǔn)度。
測試3種不同方法的分級時(shí)間,結(jié)果見圖3。
圖3 3種不同方法的分級時(shí)間Fig.3 Classification time of three different methods
分析圖3(a)可知,采用新鮮雙孢蘑菇采收和自動(dòng)化分級方法對雙孢蘑菇進(jìn)行分級處理時(shí),在多次迭代中所用的時(shí)間均在0.2 s以下;分析圖3(b)和圖3(c)可知,采用基于機(jī)器視覺的蘑菇分級方法和基于計(jì)算機(jī)技術(shù)的分級方法對雙孢蘑菇進(jìn)行分級處理時(shí),所用的分級時(shí)間在0.4 s和0.5 s附近波動(dòng)。對比上述測試結(jié)果可知,新鮮雙孢蘑菇采收和自動(dòng)化分級方法所用的分級時(shí)間均少于試驗(yàn)對比方法。去除雙孢蘑菇圖像中存在的非邊緣,減少特征提取過程中需要計(jì)算的數(shù)據(jù)量,縮短對雙孢蘑菇分級所用的時(shí)間,具有較高的分級效率。
工業(yè)化生產(chǎn)流水線中較為重要的環(huán)節(jié)是分揀不合格產(chǎn)品和次品。工業(yè)產(chǎn)品具有一致性和規(guī)則性,對產(chǎn)品進(jìn)行分級是較為容易的,但是農(nóng)產(chǎn)品具有數(shù)量龐大和品種繁多的特點(diǎn),由于營養(yǎng)、生長環(huán)境等因素相同農(nóng)產(chǎn)品也會(huì)存在差異,使分級成為農(nóng)產(chǎn)品領(lǐng)域中的難點(diǎn)問題。當(dāng)前雙孢蘑菇分級方法存在特征提取精準(zhǔn)度低和分級效率低的問題,提出新鮮雙孢蘑菇采收和自動(dòng)化分級方法,試驗(yàn)結(jié)果表明,本文方法可精準(zhǔn)的提取出雙孢蘑菇的特征,在較短的時(shí)間內(nèi)完成雙孢蘑菇的分級,解決了雙孢蘑菇分級中存在的問題。