謝云鵬,李艷梅,杜 潔
(甘肅農(nóng)業(yè)大學(xué) 信息科學(xué)技術(shù)學(xué)院,蘭州 730000)
目前,新疆褐牛體型鑒定及分級主要采用人工鑒定分級的方法.該方法依據(jù)新疆褐牛的體型結(jié)構(gòu)、肌肉度、細致度和乳房形狀等特點,由工作人員根據(jù)自身工作經(jīng)驗得到褐牛體型鑒定結(jié)果.該方法工作量繁重,工作效率低,主觀性強,已不能滿足生產(chǎn)實踐需求,因此研究客觀,高效的牛體型鑒定及自動分級方法對提高新疆褐牛選優(yōu)育種水平具有重要的實用價值.
隨著計算機視覺技術(shù)與圖像處理技術(shù)的飛速發(fā)展,機器視覺技術(shù)和數(shù)字圖像處理技術(shù)的研究與應(yīng)用已擴展到農(nóng)業(yè)工程領(lǐng)域,并在許多方面取得了重大成果.為提高新疆褐牛體型鑒定的工作效率,解決傳統(tǒng)鑒定方法存在的問題,研究開發(fā)基于機器視覺的新疆褐牛體型智能鑒定及自動分級系統(tǒng)勢在必行.
牛背線是指牛體胸后到十字步的之間的邊緣,它是新疆褐牛體型鑒定及分級的重要指標(biāo)之一,背線的水平程度反應(yīng)了牛的生長狀況,是選優(yōu)育種的重要指標(biāo).在實際生產(chǎn)過程中,工作人員根據(jù)自身經(jīng)驗給出背線的五種生長情況:弓背程度較大、一般、平整、下塌、嚴重下塌.如圖1至圖5所示.在對牛體背線分級的過程中把弓背程度較大的確定為分值最高,也就是牛生長狀態(tài)最好的,一般為較好,幾乎平整的為中等,下塌的為較差,嚴重下塌的為最差,相應(yīng)的分值最低.
圖1 弓背較大
圖2 弓背一般
圖3 弓背平整
圖4 下塌
圖5 嚴重下塌
本文依據(jù)新疆褐牛體型線性鑒定標(biāo)準[1],以牛側(cè)面圖像為研究對象,結(jié)合計算機視覺和數(shù)字圖像處理的技術(shù)對牛背線的五種生長情況進行量化,根據(jù)分析采集到的數(shù)據(jù)實現(xiàn)對牛背線的自動分級判定.
采用型號為MV-VEM200SC的小型GigE工業(yè)網(wǎng)絡(luò)數(shù)字攝像機,型號為AFT-0814MP的高精度百萬像素8mm鏡頭,進行肉牛活體側(cè)面圖像數(shù)據(jù)的采集.利用Visual Basic 2010作為實驗數(shù)據(jù)分析軟件,利用數(shù)字圖像處理中的灰度圖像生成算法、二值化算法、邊緣檢測算法等對采集到的牛側(cè)面圖像進行處理和分析,提取出牛體背線的變化情況,實現(xiàn)對牛體背線的智能自動分級.
由于用型號為MV-VEM200SC的攝像機采集到的為彩色圖像,所以要先對其采集到的圖片進行圖像預(yù)處理,使其彩色圖像轉(zhuǎn)化為灰度圖像,為了得到更好的邊緣,再對其灰度圖進行圖像二值化處理,最后采用經(jīng)典的Roberts算子進行邊緣檢測,提取褐牛背線邊緣數(shù)據(jù).
圖像灰化是將獲得的彩色數(shù)碼圖像轉(zhuǎn)化為由“黑”到“白”(從0-255共256個整數(shù)灰度級)的黑白圖像,便于進行圖像二值化處理[2].
本文采用為灰度圖像生成方法為加權(quán)平均法:
式中R,G,B分別表示的是像素顏色的分量.在把圖像灰度處理之后,圖像中的每一個像素點就有一個值,即決定像素明暗程度的灰度值.
首先將牛側(cè)面灰度圖進行二值化處理,減少信息量,在利用Roberts算子進行邊緣檢測提取背線邊緣點,得到背線邊緣點的數(shù)據(jù).
只有兩個灰度值的灰度圖像稱為二值化的灰度圖像,其兩個灰度值分別為0和255[3].
對牛體側(cè)面灰度圖像的背線提取時,需要對圖像進行二值化處理,將生成的牛體側(cè)面灰度圖像處理成只包括黑色像素點和白色像素點的二值化圖像,便于背線的準確提取.
二值化處理過程中,閾值的選取是二值化處理的關(guān)鍵,如何選取合適的閾值T,是本算法的一個關(guān)鍵技術(shù).Otsu算法被認為是圖像分割中閾值選取的最佳算法,計算簡單,不受圖像亮度和對比度的影響[4].由于褐牛的側(cè)面圖像顏色比較單一,主要以黃褐色為主,為了得到更好的閥值,閾值的選取采用經(jīng)典的Otsu算法.Otsu算法能夠依據(jù)圖片信息自動計算出合適的、比較準確的閾值T.
褐牛五種生長狀態(tài)的實體圖如圖1至圖5中的(a)所示,對應(yīng)的二值化效果圖如圖1至圖5中的(b)所示.
從圖像上可以看出二值化后的圖像信息量大大減少,減少了噪聲的影響,使背線邊緣更加明顯,邊緣處的像素變化差距提升,側(cè)重了對背線的分級.
物體圖像的邊緣信息特征因為顏色、紋理結(jié)構(gòu)和灰度值的變化是以不連續(xù)性的形式出現(xiàn),是圖像最基本、也是最重要的特征之一[5].
圖像的邊緣即圖像中部分灰度值變化大的地方,主要存在于圖像的目標(biāo)和背景之間、不同的區(qū)域之間,是進行模式識別、目標(biāo)檢測和圖像分割等的重要基礎(chǔ)[6].
邊緣檢測法提取圖像特征是圖像識別中的一個重要過程,圖像邊緣檢測結(jié)果對后續(xù)圖像處理和理解有著直接的影響[7].本試驗中采用經(jīng)典的Roberts算法進行邊緣檢測.
任意一對互相垂直方向上的差分可以看成求梯度的近似方法,Roberts算子是利用這種原理,采用的對角方向相鄰兩像素值之差代替該梯度值[8].表示為:
式中,f(i,j)是具有整數(shù)像素坐標(biāo)的輸入圖像,g(i,j)是輸出圖像,如圖6和圖7所示為Roberts的邊緣算子模板[9,10].在該研究中用的是圖7所示的模板.
圖6 模板一
圖7 模板二
Roberts邊緣提取的效果圖如圖8所示.
與原圖(圖1至圖5)相比,從圖8中可以清晰的顯示出背線(白色曲線)及變化情況.便于分析出背線的分級方法.
圖8 邊緣檢測效果圖
創(chuàng)建一個保存像素點的橫坐標(biāo)x和縱坐標(biāo)y的自定義數(shù)組,命名為Coors,它包含x、y兩個屬性.定義一個Coors類型的數(shù)組ECoors(i)(i=1,2,3,…,n)用來保存牛背線邊緣點的坐標(biāo).將經(jīng)過邊緣檢測后的圖像由左向右并且由上向下進行遍歷,將每一次垂直方向上最先出現(xiàn)的白色像素點坐標(biāo)保存ECoors中.
(1)遍歷邊緣坐標(biāo)數(shù)組ECoors(i)中的數(shù)據(jù),找出ECoors(i).y,(i=1,2,3,···,n)中的最值,即ECoors(i).ymax和ECoors(i).ymin以 及相對應(yīng)的ECoors(i).x.
(2)將提取出來的背線邊緣點繪制到坐標(biāo)圖中,如圖9所示.分析背線坐標(biāo)點的數(shù)據(jù),從坐標(biāo)圖中得出背線生長情況的特征都體現(xiàn)在背線的中間部位的y值的大小.因此可將提取出的背線分成三個數(shù)據(jù)段,起始段,中間段,結(jié)尾段.
(3)仔細觀察發(fā)現(xiàn):① 當(dāng)最大值和最小值同時出現(xiàn)在同一段時,弓背幾乎水平;② 當(dāng)只有最大值出現(xiàn)在中間段時,則可確定背線的情況為下榻;③ 當(dāng)只有最小值出現(xiàn)在中間段時,則可確定背線的情況為弓背.
圖9 背線坐標(biāo)圖
(4)為了能對背線進行準確分級,對(3)中確定好是弓背或下榻的數(shù)據(jù)進行細化,因此還需根據(jù)牛體背線生長標(biāo)準確定一個閥值a,為了與背線為水平狀態(tài)區(qū)別,還需定義一個閥值b,且b小于a.
(5)對(4)的具體分析:
① 如果是弓背,則用:
若c1>a,則是弓背程度較大,若a>c1>b,則為弓背程一般.若c1
② 如果是下塌,則用: