殷文俊,張新偉,易克傳
(1.滁州城市職業(yè)學(xué)院 網(wǎng)絡(luò)信息中心,安徽 滁州,239000;2.安徽科技學(xué)院 機(jī)械工程學(xué)院,安徽 鳳陽,233100)
隨著經(jīng)濟(jì)的快速發(fā)展,人們對商品核桃的品質(zhì)要求越來越高[1]。核桃品質(zhì)主要分為外部品質(zhì)和內(nèi)部品質(zhì)。所謂外部品質(zhì)是只外殼完好,不存在裂紋或果殼破損等肉眼可見的缺陷;內(nèi)部品質(zhì)是指核桃是否存在空殼無仁、果仁干癟、果仁變壞、發(fā)黑發(fā)霉等。如果核桃表面存在裂紋或破損,則加工過程中某些物質(zhì)(如脫皮過程中的清洗水)就會進(jìn)入核桃內(nèi)部,使其內(nèi)部果仁受到污染,發(fā)黑發(fā)霉,甚至產(chǎn)生致癌的黃曲霉毒素[2],所以核桃外部品質(zhì)對其內(nèi)部品質(zhì)有直接影響。要想提高核桃的品質(zhì),就必須首先對外部存在裂紋或破損的核桃進(jìn)行前期分選。
核桃的外部品質(zhì)檢測已引起重視并取得一定成果,如張新偉等[3]采用6尺度數(shù)學(xué)形態(tài)學(xué)方法對核桃表面裂紋進(jìn)行檢測,通過實(shí)體加權(quán)融合與信息熵結(jié)合的融合方法對核桃圖像進(jìn)行融合,試驗(yàn)發(fā)現(xiàn)多尺度數(shù)學(xué)形態(tài)學(xué)方法的總體檢測準(zhǔn)確率為94%;劉軍等[4]建立基于貝葉斯、神經(jīng)網(wǎng)絡(luò)和SVM的核桃外部缺陷模型。試驗(yàn)發(fā)現(xiàn),基于徑向基的SVM識別模型效果最為理想,對裂紋、破殼和黑斑這3類缺陷的識別準(zhǔn)確率依次為93.06%、88.31%和89.27%,對核桃外部缺陷的總體識別率為90.21%;李成吉等[5]采用RC和SPA方法優(yōu)選參數(shù)并建立PLS模型,試驗(yàn)發(fā)現(xiàn),對正常、黑斑和破裂3類核桃的識別準(zhǔn)確率依次為88.9%、83.3%和94.6%,總體判別率為88.9%。
研究發(fā)現(xiàn),現(xiàn)有的缺陷檢測方法存在檢測精度低、過分割以及程序運(yùn)行時間長等問題。最大類間方差閾值分割方法是在傳統(tǒng)的最小二乘法原理基礎(chǔ)上發(fā)展起來的一種方法,其檢測精度較高,已得到廣泛應(yīng)用[6-14],但計(jì)算量非常大[15]。遺傳算法是非線性求解的過程,對于每一個染色體其評價(jià)函數(shù)的求解是分開的,其遺傳運(yùn)算相對獨(dú)立,這一點(diǎn)適應(yīng)于并行運(yùn)算,可滿足實(shí)時性的要求[16-18]。所以,本研究采用最大類間方差閾值法為主要方法,同時引入遺傳算法以解決其計(jì)算量大的缺陷,實(shí)現(xiàn)對核桃表面裂紋的快速檢測。
試驗(yàn)核桃為溫宿185。
試驗(yàn)設(shè)備主要由計(jì)算機(jī)(聯(lián)想天逸pro510,酷睿i7-9700,SSD+2T機(jī)械硬盤,GT730獨(dú)立顯卡,21英寸顯示器)和SMZ800體視顯微鏡組成,用于對核桃表面裂紋進(jìn)行肉眼觀察以及裂紋圖像的采集。
試驗(yàn)流程如下:
1.2.1 圖像預(yù)處理 將待檢測的核桃圖像下采樣為640像素×480像素,保存格式為JPG。采用卡爾曼濾波方法對待處理的核桃圖像進(jìn)行處理,為下一步的核桃表面裂紋檢測做準(zhǔn)備。
1.2.2 核桃表面裂紋檢測 運(yùn)用OTSU與遺傳算法相結(jié)合的方法對核桃表面存在的裂紋進(jìn)行檢測操作。
裂紋檢測準(zhǔn)確率采用文獻(xiàn)[3]中的計(jì)算方法。
1.2.3 核桃圖像后處理 為提高裂紋的檢測準(zhǔn)確率,采用形態(tài)學(xué)方法對檢測后核桃圖像進(jìn)行數(shù)據(jù)點(diǎn)連接操作。
OTSU算法是由日本的大津展在上世紀(jì)80年代由最小二乘法原理推導(dǎo)得出,其基本的思想是將圖像的直方圖以某一灰度為閾值,將圖像分成兩組并計(jì)算兩組的方差,當(dāng)被分成的兩組間的方差最大時,就以這個灰度為閾值分割圖像[19-20]。
設(shè)一幅圖像的灰度值為m個,灰度值為i的像素?cái)?shù)為ni,則得到的總像素?cái)?shù)為:
(1)
各灰度值的概率為:
(2)
C0和C1組的平均灰度值為:
(3)
(4)
整體平均灰度值為:
(5)
式中,閾值為k時灰度的平均值為:
(6)
采樣的平均灰度值為d(k)=w0(u0-u)2+w1(u-u1)2,并將式(5)代入其中,得到
d(k)=w0w1(u1-u2)2
(7)
在1~m范圍內(nèi)改變k值,求k’,使得d(k')=max(d(k));然后,以k’為閾值分割圖像,這樣就可以得到最佳的分割效果,但是要想得到式(7)的最大值d(k’),就必須要對1~m范圍內(nèi)的所有灰度值進(jìn)行方差計(jì)算,最后比較得到最大的方差。上述操作的計(jì)算量是巨大的。本研究引入遺傳算法[21],利用其收斂速度快的特點(diǎn),解決大計(jì)算量的問題。
本研究利用OTSU算法在解空間中查找到一個最優(yōu)解,使得其方差最大,再利用遺傳算法非線性快速查找最優(yōu)解k’用最大的方差。查閱參考文獻(xiàn)[22-23],檢測步驟如下:
(1)編碼并生成染色體,為下一步種群的初始化做準(zhǔn)備。
(2)初始化種群。本研究中設(shè)置染色體長度為8,種群大小為10,最大代數(shù)為150。
(3)解碼。將OTSU得到的方差作為每一個染色體的適應(yīng)函數(shù)。根據(jù)公式(7)依次計(jì)算出所有染色體的適應(yīng)值。以最大值對應(yīng)的染色體作為遺傳種子。
(4)遺傳運(yùn)算。本研究中采用雙點(diǎn)交叉方法,雜交概率為0.7,變異概率為0.4。
為比較本研究方法的有效性,選用OTSU、遺傳算法、改進(jìn)分水嶺以及本研究方法依次對核桃表面裂紋進(jìn)行檢測處理。采用的評價(jià)指標(biāo)參見文獻(xiàn)[24]。所有算法均是在matlab 2017b環(huán)境下進(jìn)行,不同檢測方法的評價(jià)指標(biāo)如表1所示。
表1 核桃表面裂紋檢測指標(biāo)對比
通過表1發(fā)現(xiàn),本研究方法的檢測準(zhǔn)確率最高,為96%,超出改進(jìn)分水嶺算法11%,比單獨(dú)的OTSU高出24%,可見將OTSU與遺傳算法相結(jié)合,可以有效地提高核桃表面裂紋的檢測準(zhǔn)確率;從交叉熵指標(biāo)來看,本研究方法最小,為0.0318,與單獨(dú)的OTSU方法較為接近,但遠(yuǎn)小于改進(jìn)分水嶺;從形狀測度維數(shù)指標(biāo)來看,本研究方法最高,為0.9293;從運(yùn)行時間來看,本研究方法檢測同一張核桃圖片的運(yùn)行時間最短,為0.54 s,較單獨(dú)的OTSU方法減少0.44 s。可見,在OTSU方法檢測核桃表面裂紋過程引入遺傳算法可以有效地縮短檢測時間,主要是由于遺傳算法對最大方差的求解速度進(jìn)行快速收斂,從而縮短了OTSU算法的運(yùn)行時間。
不同方法檢測核桃表面裂紋的效果如圖1所示。
圖1 不同方法檢測核桃表面裂紋的效果對比
從圖3可以看出,改進(jìn)分水嶺算法出現(xiàn)了過分割現(xiàn)象(如圖3b所示),檢測結(jié)果與文獻(xiàn)[21]相同。與改進(jìn)分水嶺方法相比較,OTSU方法沒有出現(xiàn)過分割的問題,但在核桃圖片中產(chǎn)生椒鹽噪聲(如圖3c所示),產(chǎn)生原因可能是因?yàn)楹颂覉D像二值化處理過程中的閾值選擇不夠精確。與其他檢測方法相比,本研究方法的檢測效果最為理想(如圖3d所示),其既不存在過分割的問題,同時檢測后的核桃圖片上也不存在明顯的椒鹽噪聲,并且視覺效果與表1中的試驗(yàn)數(shù)據(jù)前后一致。原因是遺傳算法在反復(fù)的繁衍過程中,隨著新種群的出現(xiàn),不斷產(chǎn)生新的遺傳算子,從而使得遺傳算法在不斷的繁衍中得到最大方差的最優(yōu)解。
本研究針對核桃表面裂紋的檢測問題進(jìn)行研究,得到如下結(jié)論:
(1)根據(jù)OTSU的最大方差以及遺傳算法并行計(jì)算、收斂速度快的特點(diǎn),將OTSU與遺傳算法相結(jié)合,實(shí)現(xiàn)對核桃表面裂紋的檢測,檢測準(zhǔn)確率為96%。
(2)OTSU結(jié)合遺傳算法的裂紋檢測方法的交叉熵、形狀測試維數(shù)評價(jià)指標(biāo)依次為0.0318和0.9293,優(yōu)于改進(jìn)分水嶺、單獨(dú)的OTSU方法。
(3)本研究方法檢測一幅核桃圖像的時間為0.54 s,運(yùn)行時間最短。