王 粵 黃肖琳 余杭州 葛光濤
(浙江工商大學(xué),杭州 310018)
大米的外觀是大米品質(zhì)的一項(xiàng)十分重要的指標(biāo),也是影響大米市場(chǎng)價(jià)格的重要因素。影響大米外觀最重要的幾個(gè)因素有大米的碎米率,大米的堊白米粒率和黃米粒率。傳統(tǒng)的人工檢測(cè)由于效率低,準(zhǔn)確率低已經(jīng)不能滿足我們的需要,近幾年,基于機(jī)器視覺的大米質(zhì)量檢測(cè)已成為研究的熱點(diǎn)。由于在利用機(jī)器視覺方法檢測(cè)抽樣米粒的各種外觀指標(biāo)時(shí),米粒是隨意放置在載樣臺(tái)或傳送帶上的,有些米粒會(huì)不可避免地互相碰觸,由此造成在圖像預(yù)處理時(shí)獲取的米粒輪廓線互相粘連在一起,從而在后續(xù)的檢測(cè)中粘連在一起的多顆米粒會(huì)被誤判為是一顆米粒,致使大米外觀指標(biāo)如碎米率,堊白米粒率,黃米粒率的檢測(cè)都出現(xiàn)錯(cuò)誤。因此,利用基于機(jī)器視覺的米粒自動(dòng)分割算法來(lái)分割粘連在一起的米粒就非常必要了。Shatadal等[1]根據(jù)數(shù)學(xué)形態(tài)法分割粘連的籽粒,但適用于單點(diǎn)接觸的籽粒。ISEN等[2]根據(jù)曲率識(shí)別接觸點(diǎn),且根據(jù)最短距離判斷接觸點(diǎn)對(duì),但該算法容易誤判接觸點(diǎn)對(duì)。凌云等[3]基于面積閾值識(shí)別單個(gè)和粘連的籽粒,并利用形態(tài)學(xué)方法分割粘連米粒。荀一等[4]利用腐蝕膨脹處理,提出了一種基于公共區(qū)域和籽粒輪廓尋找分割點(diǎn)的方法。該算法在檢測(cè)較小的圓形籽粒粘連時(shí),易發(fā)生誤判識(shí)別成單個(gè)籽粒。楊蜀秦等[5]提出了一種基于主動(dòng)輪廓模型的分割算法,將通過(guò)膨脹算子獲得的區(qū)域作為初始曲線,在主動(dòng)輪廓模型的指導(dǎo)下,曲線向籽粒邊界演化,最終實(shí)現(xiàn)米粒分割。文獻(xiàn)[6]則利用曲率來(lái)檢測(cè)分割點(diǎn),但算法只能用于檢測(cè)簡(jiǎn)單的粘連,復(fù)雜粘連不能正確分割。劉慶杰[7]采用輕微振動(dòng)玻璃板的方法,對(duì)抖動(dòng)前后的兩幅圖像去背景后求解光流矢量,最后結(jié)合歸一化割法實(shí)現(xiàn)水稻害蟲的粘連分割。戴丹[8]設(shè)計(jì)了一種改進(jìn)分水嶺算法,利用大津閾值分割及分水嶺算法實(shí)現(xiàn)粘連籽粒的分割。于建寧[9]以粘連米粒為對(duì)象,分別以間隔90°的4個(gè)方向和不同高度的光源采集大米圖像,然后對(duì)采集到的一系列圖像用LOG算子進(jìn)行邊緣檢測(cè),綜合不同條件下的邊緣,得到粘連分界線。洪浩等[10]將GA算法與最大類間方差的結(jié)合引入圖像分割。P.Lin等[11]提出了通過(guò)尋找輪廓曲線的曲率極小值點(diǎn)來(lái)確定凹點(diǎn),凸點(diǎn),并認(rèn)定其為粘連點(diǎn),然后實(shí)施分割的算法。但該算法計(jì)算復(fù)雜度較高,且輪廓線中的曲率極小值點(diǎn)不僅僅只有米粒粘連點(diǎn),米粒長(zhǎng)度方向的兩個(gè)端點(diǎn)也會(huì)是曲率極小值點(diǎn),還有米粒輪廓線上的非平滑的一些轉(zhuǎn)角稍陡峭的點(diǎn)都很容易被誤判為粘連點(diǎn)。閆磊等[12]首先使用分水嶺算法對(duì)粘連顆粒進(jìn)行分割,接著提取各個(gè)顆粒的形態(tài)特征和顏色特征,然后計(jì)算馬氏距離,并比較它們的馬氏距離與設(shè)定的閾值,來(lái)識(shí)別混雜在谷物中的雜質(zhì),該算法計(jì)算復(fù)雜度較高,且在復(fù)雜米粒粘連時(shí)分割精度不高。
本研究提出了一種新的粘連米粒的分割算法,首先對(duì)采集米粒圖像進(jìn)行預(yù)處理,獲得米粒的輪廓線,然后逐個(gè)檢測(cè)內(nèi)外米粒輪廓線上的各像素點(diǎn)的曲率方向,當(dāng)外輪廓線上的像素點(diǎn)曲率方向指向米粒外部,而內(nèi)輪廓上的像素點(diǎn)曲率方向指向內(nèi)輪廓內(nèi)部時(shí)可以認(rèn)為檢測(cè)到了粘連接觸點(diǎn),然后按照各接觸點(diǎn)的曲率方向及距離可將檢測(cè)到的接觸點(diǎn)一一配對(duì)成最佳分割點(diǎn)對(duì),從而實(shí)現(xiàn)粘連米粒的準(zhǔn)確分割。
為了有效檢測(cè)大米的碎米率,堊白米粒率,黃米粒率等大米的質(zhì)量指標(biāo),我們開發(fā)了基于機(jī)器視覺的大米外觀質(zhì)量檢測(cè)設(shè)備,該設(shè)備示意圖如圖1所示。鏡頭采用24位真彩色高清攝像鏡頭,分辨率在1024×768及以上,并配合環(huán)形光源,能采集到準(zhǔn)確不失真清晰的數(shù)字圖像信息。接通電源,通過(guò)放置在主板插槽中的CF卡上的軟件程序,控制攝像機(jī)鏡頭采集米粒數(shù)字圖像信息,并對(duì)其做相應(yīng)的處理。米粒放置托盤和卡槽可以讓托盤隨時(shí)抽出來(lái)放置檢測(cè)樣本及退回裝置內(nèi)部,托盤被刷成黑色。
圖1 大米外觀質(zhì)量檢測(cè)設(shè)備結(jié)構(gòu)示意圖
圖2為設(shè)備前面板示意圖,通過(guò)分析圖像信息,檢測(cè)放置在面板的米粒樣本是否有粘連,若有粘連采用本研究的算法進(jìn)行分割之后,可繼續(xù)計(jì)算碎米率,堊白米粒率,堊白度,黃米粒率等質(zhì)量指標(biāo)[13],并將結(jié)果顯示在LED液晶觸摸顯示屏上。顯示屏上也可以分別顯示拍攝的原始圖像,粘連米粒進(jìn)行切割之后的圖像,檢測(cè)出來(lái)的堊白米圖像及堊白米的堊白部分二值圖像,碎米圖像及黃米粒圖像等。
圖2 前面板示意圖
為了進(jìn)行粘連米粒分割,我們選用了市場(chǎng)上比較常見的米粒作為實(shí)驗(yàn)類型,將其隨意放置在試驗(yàn)托盤上,米?;ハ嘀g有粘連。
圖3 米粒實(shí)驗(yàn)樣本
1.3.1 粘連米粒圖像預(yù)處理
首先將攝像頭拍到的米粒RGB圖像轉(zhuǎn)換成灰度圖像,然后做3×3中值濾波去除噪聲,之后采用類間最大方差法(OTUS)計(jì)算自適應(yīng)分割閾值,并按照計(jì)算出的閾值將灰度圖像變換成米粒為白色,背景為黑色的二值黑白圖像,再按照區(qū)域連通法獲得米粒的輪廓圖像,若米粒無(wú)粘連,獲得的輪廓線就是一顆米粒的完整輪廓線,且其輪廓線上的每個(gè)點(diǎn)的曲率方向都指向輪廓線內(nèi)部,若米粒有粘連,處理后獲得的輪廓線有兩種情況,一種是粘連米粒會(huì)聯(lián)通成一個(gè)封閉的外輪廓線,其內(nèi)部無(wú)小輪廓線,如圖4a所示。另一種則是聯(lián)通成一個(gè)封閉的外部輪廓線,在其內(nèi)部還包含了一個(gè)或多個(gè)小的封閉的內(nèi)部輪廓線的內(nèi)外輪廓線組合,如圖4b所示,該樣本原圖像為圖3樣本2,其處理后獲得的輪廓線有內(nèi)外兩層,外輪廓線的內(nèi)部還有3個(gè)小的封閉的內(nèi)輪廓線。這兩種米粒輪廓若不經(jīng)過(guò)進(jìn)一步的圖像分割的話就會(huì)在后續(xù)的處理中造成檢測(cè)錯(cuò)誤。本研究中,我們采集了200組以各種不同方式多個(gè)米粒粘連在一起的米粒粘連圖像,并對(duì)這些不同的粘連米粒的粘連點(diǎn)的位置信息進(jìn)行綜合分析后,發(fā)現(xiàn)了兩個(gè)特征:第一,外輪廓線上的粘連點(diǎn)的曲率方向指向米粒輪廓線的外部,而內(nèi)輪廓線上的粘連點(diǎn)的曲率方向指向內(nèi)輪廓線內(nèi)部,且對(duì)應(yīng)的一對(duì)粘連點(diǎn)其曲率方向之間的夾角為鈍角。第二,粘連點(diǎn)對(duì)之間的距離是在滿足第一條件基礎(chǔ)之上最短的距離。由此,提出了本研究的分割算法。
圖4 內(nèi)外輪廓線上米粒粘連點(diǎn)特征示意圖
1.3.2 米粒輪廓線上粘連點(diǎn)的檢測(cè)
首先,根據(jù)上一節(jié)獲得的內(nèi)外輪廓線,逐點(diǎn)搜索每一個(gè)封閉輪廓線,圖4中的a封閉輪廓線只有外輪廓,b輪廓線則由封閉的外輪廓線及內(nèi)部3個(gè)封閉的內(nèi)輪廓線組成,因此,我們采用如下策略進(jìn)行搜索:若只有外輪廓?jiǎng)t只搜索外輪廓線,若外輪廓線內(nèi)部還有內(nèi)輪廓線,則也要逐一搜索。搜索時(shí)獲取當(dāng)前像素點(diǎn)S1的向前第五個(gè)點(diǎn)S11的坐標(biāo)值S11.x和S11.y以及向后第五個(gè)點(diǎn)S21的坐標(biāo)值S21.x和S21.y,然后可以計(jì)算出這兩條線S1S11及S1S21的斜率:
(1)
(2)
并由此獲得兩條線之間的夾角θ:
(3)
θ=acos(X)×180/π
(4)
X為夾角θ的余弦值,公式(4)求出的夾角θ只是兩條直線S1S11及S1S21之間形成的銳角,而在輪廓線逐點(diǎn)搜索過(guò)程中直線S1S11及S1S21之間可能是銳角也可能是鈍角,因此,需要根據(jù)S1S11及S1S21線段在不同的象限的不同情況,分別求得這兩條直線的夾角θ,如表1所示。
表1 兩條直線間夾角θ的求法
之后還需要確定S1點(diǎn)的曲率方向上離S1點(diǎn)距離15個(gè)像素的像素點(diǎn)W1,具體的求法如下:
從圖5的示意圖可以知道,需要求得S1的曲率方向與x軸的夾角δ,然后根據(jù)公式可以求出像素點(diǎn)W1的x,y坐標(biāo)W1.x及W1.y:
δ={atan[fabs(k1)]+atan[fabs(k1)]}×
180/2π
(5)
W1.x=S1.x+ceil[15×cos(δ)]
(6)
W1.y=S1.y+ceil[15×sin(δ)]
(7)
式中:S1.x和S1.y分別是S1點(diǎn)的x和y坐標(biāo);ceil為返回小數(shù)向上最接近的整數(shù)。
圖5 S1點(diǎn)曲率方向上W1點(diǎn)示意圖
對(duì)于夾角δ及W1的坐標(biāo)的求法,由于S1S11及S1S21線段若在不同的象限,求法則有所區(qū)別,如表2所示。
接下來(lái),判斷米粒的粘連點(diǎn),需要滿足如下條件: ①外輪廓線上的粘連點(diǎn)其對(duì)應(yīng)的W1像素點(diǎn)在封閉外輪廓線的外部,即該點(diǎn)的曲率方向指向米粒的外部,而內(nèi)輪廓線上的粘連點(diǎn)其對(duì)應(yīng)的W1像素點(diǎn)則落在封閉內(nèi)輪廓線的內(nèi)部,意味著該點(diǎn)的曲率方向也指向米粒的外部。② 夾角θ>閾值Dθ,這里設(shè)定閾值Dθ的原因是在搜索粘連點(diǎn)時(shí)發(fā)現(xiàn),若只滿足條件1會(huì)導(dǎo)致輪廓線上某些非粘連點(diǎn)的細(xì)小尖銳,凹凸不平的陡峭點(diǎn),也被認(rèn)定為粘連點(diǎn),而這些點(diǎn)所對(duì)應(yīng)的夾角θ通常都是一個(gè)很小的夾角,由此,設(shè)定了閾值Dθ來(lái)排除掉這些非粘連點(diǎn),本研究中,設(shè)定的Dθ為35。根據(jù)這兩個(gè)條件,在遍搜米粒的輪廓線時(shí)就可以判別該米粒是否有粘連,若是沒(méi)有粘連的米粒輪廓,則所有點(diǎn)對(duì)應(yīng)的W1像素點(diǎn)都指向封閉輪廓線的內(nèi)部,而有粘連的米粒,其粘連點(diǎn)則會(huì)滿足上述的兩個(gè)條件,且粘連點(diǎn)總數(shù)應(yīng)該是一個(gè)偶數(shù)。
表2 兩條直線間夾角θ的求法
注:g1=atan(fabs(k1))×180/π;g2=atan(fabs(k2))×180/π。
1.3.3 粘連點(diǎn)對(duì)的配對(duì)
在1.3.1節(jié)已經(jīng)提出了粘連點(diǎn)對(duì)的配對(duì)需要滿足的兩個(gè)條件: 1)粘連點(diǎn)對(duì)的曲率方向之間的夾角形成一個(gè)鈍角。2)粘連點(diǎn)對(duì)的兩像素點(diǎn)S1,S2之間的距離是最小的。
圖6 內(nèi)外輪廓線上米粒粘連點(diǎn)對(duì)曲率示意圖
由此,提出了檢測(cè)粘連點(diǎn)對(duì)的曲率方向是否配對(duì)的算法:
首先定義了如圖7所示的曲率歸一化示意圖,按照前面計(jì)算出的角度δ,將每一個(gè)粘點(diǎn)的曲率方向歸一到了如圖7所示的0~7,共8個(gè)方向,比如,當(dāng)曲率方向在第一象限,且22.5<δ≤67.5,可以將其歸一到1方向。當(dāng)曲率方向在第一象限,且夾角δ≤22.5的范圍內(nèi),可以將其歸一到0方向。依次類推,我們就可以將所有的粘連點(diǎn)的曲率方向做一個(gè)歸一化,而互相配對(duì)的粘連點(diǎn)則必須滿足歸一化后的兩個(gè)方向之間的夾角不能小于135°。由此,在匹配粘連點(diǎn)對(duì)時(shí),只需要保證若兩個(gè)粘連點(diǎn)的曲率方向滿足上述要求,且其兩點(diǎn)之間的距離最短,就可以確定其為最佳匹配粘連點(diǎn)對(duì)。
圖7 粘連點(diǎn)曲率方向歸一化示意圖
1.3.4 粘連點(diǎn)分割
確定出粘連點(diǎn)對(duì)中每個(gè)粘連點(diǎn)的前第3個(gè)及后第3個(gè)輪廓像素點(diǎn)(兩個(gè)粘連點(diǎn)共4個(gè)像素點(diǎn)),判斷這4個(gè)像素點(diǎn)的位置,將4個(gè)像素點(diǎn)連接成兩條不相交的直線,然后將米粒輪廓二值圖像上各邊界點(diǎn)及其前后第一、第二像素點(diǎn)刪除掉,輪廓線分割即可完成,之后則可以根據(jù)輪廓線信息及原圖像信息,進(jìn)一步實(shí)施米粒個(gè)數(shù),堊白米粒率,黃粒米粒率等米粒外觀質(zhì)量指標(biāo)的進(jìn)一步檢測(cè)。
為了驗(yàn)證算法的有效性,首先對(duì)1.2節(jié)給出的4種典型樣本按1.3.1節(jié)提出的方法做了圖像預(yù)處理,獲得了米粒圖像的輪廓圖如圖8所示。
圖8 米粒樣本圖像輪廓線
對(duì)這些樣本按照1.3節(jié)的分割算法對(duì)其進(jìn)行了分割,為了清楚地顯示分割效果,做了分割后的輪廓線圖,以方便與原米粒輪廓線作比較,如圖9所示。
圖9 米粒樣本分割后輪廓線
由圖8的樣本輪廓線可以看出,樣本1為11顆米粒互相粘連,樣本2為7顆米?;ハ嗾尺B,樣本3為多個(gè)2~7個(gè)互相粘連的米粒,樣本4為多個(gè)2~26顆米?;ハ嗾尺B在一起,依據(jù)本分割算法,均可以準(zhǔn)確地進(jìn)行分割,如圖9所示,與文獻(xiàn)[5]中只能分割2~5個(gè)粘連點(diǎn)的結(jié)果相比,有較強(qiáng)的優(yōu)勢(shì)。
另外,由于本研究提出的算法只需要將預(yù)處理獲得的米粒圖像的內(nèi)外輪廓線逐個(gè)辨識(shí)一次,就可以獲得準(zhǔn)確的粘連點(diǎn)對(duì),并不會(huì)有算法上的迭代收斂問(wèn)題,因此,從運(yùn)行速度上來(lái)說(shuō)相對(duì)于文獻(xiàn)[5]有較大優(yōu)勢(shì),如表1所示。
可以看出,本研究的分割算法準(zhǔn)確率相對(duì)于其他文獻(xiàn)中提到的算法,分割準(zhǔn)確率有較明顯的優(yōu)勢(shì)。同時(shí),相對(duì)于文獻(xiàn)[5,12]中所述,由于其算法在分割過(guò)程中,使用了形態(tài)膨脹和細(xì)化,造成米粒邊緣信息丟失,由此,分割后的米粒圖像在像素級(jí)精度上有所降低,繼而造成后續(xù)的碎米率等米粒外觀指標(biāo)計(jì)算時(shí)精度隨之降低。本研究提出的算法則避免了上述問(wèn)題的存在,直接在搜索到粘連點(diǎn)對(duì)后進(jìn)行準(zhǔn)確分割,使得米粒邊緣信息盡可能多地予以保留,保證了后續(xù)的米粒外觀指標(biāo)計(jì)算的精度不會(huì)降低。
表3 本研究算法與文獻(xiàn)[5]比較
本研究提出了一種通過(guò)搜索粘連米粒內(nèi)外輪廓線上的各像素點(diǎn)的曲率方向特征的方法來(lái)獲得粘連米粒的粘連點(diǎn),并且根據(jù)粘連點(diǎn)的曲率伸展方向和粘連點(diǎn)之間的距離,計(jì)算出最佳粘連配對(duì)點(diǎn),從而實(shí)現(xiàn)粘連米粒的精確分割。本算法不采用迭代算法,且搜索復(fù)雜度較低,與目前已提出的其他分割算法相比有快速,精確度高等特點(diǎn),不僅適用于粘連大米米粒的分割,同樣也適用于其他農(nóng)作物籽粒的實(shí)時(shí)在線或離線分割,具有很強(qiáng)的實(shí)用性,在產(chǎn)品應(yīng)用中有很廣闊的前景。