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