楊 心, 朱偉興
(江蘇大學(xué)電氣信息工程學(xué)院,江蘇鎮(zhèn)江 212013)
隨著計算機(jī)和數(shù)字圖像處理技術(shù)的發(fā)展,機(jī)器視覺越來越多地應(yīng)用到生產(chǎn)和生活的各個領(lǐng)域。在養(yǎng)豬領(lǐng)域內(nèi),隨著規(guī)模化、集約化程度的不斷提高,需要長時間對豬的生長和健康狀況監(jiān)控,其中,豬的個體身份識別和行為識別是監(jiān)控的關(guān)鍵。然而,在豬的群養(yǎng)條件下,豬之間會存在粘連情況,不能直接得到完整的豬只輪廓。因此,準(zhǔn)確地分割出粘連豬群是進(jìn)行豬個體身份與行為識別的前提。
在農(nóng)業(yè)、生物圖像粘連目標(biāo)分割方面,處理細(xì)胞、谷粒[1]等類圓形狀目標(biāo)比較多,對于形狀不規(guī)則的目標(biāo)分割方面研究比較少。Liao等研究了基于瓶頸檢測和橢圓擬合的細(xì)胞圖像分割,但是分割的目標(biāo)是類圓形狀的粘連細(xì)胞[2]。Lu等通過對粘連幼豬進(jìn)行凹點提取和橢圓擬合,實現(xiàn)了粗略分割,達(dá)到幼豬計數(shù)的目的,并沒有研究豬體的形狀特征[3]。唐莉萍等對粘連纖維的外輪廓進(jìn)行剝離確定分割點,利用距離變換對粘連纖維進(jìn)行準(zhǔn)確分割[4]。李文勇等利用形狀因子對害蟲的粘連區(qū)域進(jìn)行判定,最后利用距離變換對粘連害蟲進(jìn)行分割[5]。綜上所述,基于凹點和橢圓擬合的方法分割的主要是類圓目標(biāo),對于不規(guī)則形狀的目標(biāo)輪廓會導(dǎo)致凹點搜索困難,真實凹點難以確定等問題;而分水嶺算法在粘連目標(biāo)的分割中應(yīng)用廣泛[6-8],但是容易出現(xiàn)分割位置不準(zhǔn)確等問題;利用距離變換的思想可以準(zhǔn)確地分割小目標(biāo)粘連物體,但是目前應(yīng)用在像豬這樣的體型較大的粘連目標(biāo)身上較少。此外,利用機(jī)器視覺技術(shù)對豬體頭尾特征部位的識別鮮有相關(guān)文獻(xiàn)報道。
考慮現(xiàn)代豬場養(yǎng)殖密度大,會造成豬之間的粘連,使得分析豬個體的行為和身份難度增大。因此借鑒前人對不規(guī)則形狀的小型目標(biāo)分割的研究方法,本研究提出了一種基于距離變換與橢圓擬合的分割算法,實現(xiàn)了粘連豬體的有效分割,再利用廣義Hough聚類對分割后的個體進(jìn)行頭尾識別。
試驗視頻的采集地點是江蘇丹陽榮鑫農(nóng)牧發(fā)展有限公司的規(guī)模養(yǎng)殖場。改建試驗豬舍,安裝俯視的視頻采集系統(tǒng),攝像機(jī)固定在豬舍正上方,相對地面垂直高度約3 m,拍攝的豬舍面積為3.5 m×3.0 m。監(jiān)控視頻在白天自然光照下拍攝,采用POINT GREY的攝像機(jī)(型號:FL3-U3-88S2C-C),圖像的分別率為1 760×1 840像素,拍攝了50段包含背景的7頭商品豬的RGB彩色視頻,共采集了近70 000幀圖像。
所設(shè)計的方法均在CPU為因特爾酷睿i5 2 540M、6 G內(nèi)存的Thinkpad計算機(jī)上運(yùn)行,開發(fā)軟件是MATLAB 2014b。
算法的主要流程包括:首先進(jìn)行圖像預(yù)處理,獲取二值圖像,然后根據(jù)形狀因子判定出粘連豬體,利用距離變換對粘連豬體進(jìn)行分割,最后對分割后豬體輪廓的粘連處進(jìn)行橢圓擬合修復(fù),直到所有粘連豬體分離完成。
1.2.1 粘連目標(biāo)的判定與選取 基于粘連豬體的邊界輪廓比單頭豬的邊界輪廓更復(fù)雜的原理,可以選擇描述目標(biāo)邊界輪廓復(fù)雜程度的形狀因子作為粘連判定的依據(jù)。形狀因子(shape factor)的定義為[9]:
(1)
式中:S為連通區(qū)域的面積像素,C為連通區(qū)域周長像素。需要注意的是多豬粘連可能形成空洞區(qū)域,那么周長即為內(nèi)周長和外周長之和。形狀因子的取值范圍為0

1.2.2 基于距離變換的分割算法 數(shù)字圖像I是像素點I(x,y)的集合,像素點由對象點O和背景點B組成。距離變換就是求對象點O中任意一點I(x,y)到最近的背景點B的距離,用dxy表示。
dxy=min{[(x,y),(i,j)](i,j)∈B}。
(2)
式(2)中,
(3)
式(3)是數(shù)字圖像I的歐式距離變換,在圖像變換過程中滿足精度要求,反映圖像的真實信息。
對一個粘連目標(biāo),按歐式距離值從小到大排列,距離值所對應(yīng)的像素值的集合分別為Sd1,Sd2……,對粘連目標(biāo)進(jìn)行八領(lǐng)域輪廓跟蹤可以得到對應(yīng)的像素點集合W1,W2……,然后從W中剝離掉Sd,這個操作稱為基于外輪廓的剝離。重復(fù)上述所說的過程可以分離出粘連豬群。具體算法過程可以描述如下:
(1)對獲取的視頻圖像進(jìn)行預(yù)處理,得到二值圖像;根據(jù)形狀因子判定出粘連目標(biāo),并選出粘連豬體;然后計算出二值圖像的歐式距離變換,如圖2,是對圖1中粘連豬體進(jìn)行選定和歐氏距離變換。

(2)根據(jù)視頻中未粘連豬體的圖像分別計算出7頭豬的俯視可見面積,取得平均值5.293 cm2(每幀圖像的總面積為224.438 cm2),設(shè)定5.293 cm2為面積閾值Sth。
(3)在二值圖像中對選定的粘連目標(biāo)對象O進(jìn)行基于歐式距離變換的外輪廓的剝離。在剝離過程中粘連目標(biāo)發(fā)生分離,與步驟(2)的面積閾值Sth進(jìn)行比較,根據(jù)多次試驗可以判定,如果分離出來的目標(biāo)面積小于Sth的1/5,則認(rèn)定為豬的器官部分,不是真正的粘連處,需要繼續(xù)進(jìn)行剝離,直至找到真正的粘連分割點,剝離過程如圖3所示。

(4)經(jīng)過剝離找到分割點T,并在原圖上標(biāo)記出對應(yīng)的分割線pq(圖4)。重復(fù)以上步驟,直到所有粘連豬體都標(biāo)記出分割線。
1.2.3 局部輪廓修復(fù)算法 橢圓擬合算法對目標(biāo)輪廓的不完整性具有一定的修復(fù)能力,因此當(dāng)利用剝離算法對粘連豬體進(jìn)行剝離確定分割線時, 可以利用橢圓擬合算法對缺失的目標(biāo)輪廓進(jìn)行局部修復(fù),從而盡量保證粘連豬體分割后的完整性。

一般的二次曲線方程可以表示為:
F(A,X)=ATX=ax2+bxy+cy2+dx+ey+f=0。
(4)
式中:A=[a,b,c,d,e,f]T是曲線的參數(shù),X=[x2,xy,y2,xy,1]T,x和y分別代表曲線上橫坐標(biāo)和縱坐標(biāo)。當(dāng)方程(4)的系數(shù)滿足4ac-b2=1時,此時曲線方程表示為橢圓[10]。具體的輪廓修復(fù)過程可以描述如下:
(1)對經(jīng)過剝離算法確定了分割線的二值圖像進(jìn)行輪廓提取,并標(biāo)記分割線對應(yīng)的分割點對(p1,q1)、(p2,q2)。
(2)為了便于擬合的橢圓參數(shù)的確定,考慮到豬體的形狀特征,本研究對輪廓采用曲率采樣法[11]。曲率采樣法的原則是:小曲率區(qū)域保留少量的點,而大曲率區(qū)域則保留足夠多的點,以精確完整地表示輪廓特征。這樣依靠曲率進(jìn)行采樣可以防止豬體輪廓的細(xì)節(jié)特征丟失。采樣點確定之后,每個豬體輪廓分別以分割點作為選取特征點的起始點,依次取3個特征點,共6個特征點來確定擬合的橢圓參數(shù)。
(3)通過分割點對把每個擬合的橢圓分割成2個弧,保留分割后原始輪廓缺失的弧,刪除橢圓的剩余部分。
(4)重復(fù)以上步驟,直至擬合出所有的經(jīng)過剝離算法分割后的粘連豬體,輪廓的修復(fù)過程如圖5所示。

針對粘連豬中直接進(jìn)行個體頭部和尾部判定的困難,本研究提出先對粘連豬體分割,然后再對分割后個體進(jìn)行頭部和尾部的判定。考慮到Hough聚類識別只適用明確解析定義的曲線,已有學(xué)者提出了廣義Hough聚類方法[12-13],使用一組離散的邊界參數(shù)表來描述任意形狀的邊界曲線。廣義Hough聚類變換的關(guān)鍵在于任意形狀曲線的參數(shù)描述,這給豬體的頭/尾識別提供了良好途徑。
考慮到只需要判定豬體的頭尾部分,因此截取相應(yīng)比例的頭尾輪廓部分就可以實現(xiàn)判定的目的,根據(jù)多次試驗,分別截取占身長1/4的頭、尾輪廓可以達(dá)到較好的試驗效果。本研究根據(jù)豬體整體橢圓性和位置的多樣性,自適應(yīng)建立直角坐標(biāo)系(圖6)。隨機(jī)選取俯視角度下豬體的抬頭、低頭2種最常見姿勢建立坐標(biāo)系,以橢圓長軸方向為橫坐標(biāo)、短軸方向為縱坐標(biāo)來建立坐標(biāo)系,根據(jù)預(yù)設(shè)比例截取頭/尾輪廓部分,本研究的截取方法具有旋轉(zhuǎn)不變性,保持了原始豬個體位置的固定性和上下輪廓對稱性。按照比例截取出來的輪廓如圖7所示。
針對豬體頭尾形狀的差異性,利用廣義Hough聚類識別對頭尾進(jìn)行判定。傳統(tǒng)的廣義Hough聚類采樣的方法是在輪廓曲線上連續(xù)采樣,這樣的方法生成的圓數(shù)量多、圓的半徑范圍大、計算量大。因此針對傳統(tǒng)的采樣方法,提出了新的采樣方法。以圖7中2種姿勢的豬體頭/尾輪廓作為采樣對象,以曲線的其中1個端點為起始點,在曲線上每隔τ個像素點確定1個采樣點(τ根據(jù)實際試驗聚類效果來確定,本試驗τ=4),按照此過程,將輪廓曲線用點的形式表示,如圖8所示,這樣的采樣方法可以克服圓的數(shù)量過多、圓的半徑范圍大等缺點,提高聚類效率。
將確定的輪廓采樣點用一系列坐標(biāo)表示,{(x1,y1),(x2,y2), (x3,y3)… (xj,yj)},其中j表示每段輪廓曲線確定的采樣點總個數(shù)。根據(jù)任意不共線3點可唯一確定1個圓的原理,在輪廓采樣點上按順序選出3點(xi,yi)、(xi+1,yi+1)、(xi+2,yi+2)確定圓及圓心,圓心(m,n)的計算公式如下[14]:

(5)
(6)




考慮頭尾形狀差異性,尾部的輪廓更接近圓形,圓心點在參數(shù)空間分布更集中。圖10是對圖6選取出的豬體頭尾輪廓在參數(shù)空間內(nèi)的圓心點的映射結(jié)果,很顯然2種常見姿勢的豬體尾部輪廓的圓心點聚集度都更高,而頭部輪廓的圓心點就相對分散。聚集度G的計算公式如下[15]:
(7)
式中:(m′,n′)是豬體頭尾輪廓映射后的圓心點,(s,t)是聚類中心的坐標(biāo),K是每段輪廓聚類后的圓心點總個數(shù)。

首先從采集到的群養(yǎng)豬視頻中選取出其中200幀粘連圖像進(jìn)行實驗,這些圖像中都存在明顯粘連。接著對選取出來的圖像進(jìn)行灰度化、二值化、距離變換等預(yù)處理,對預(yù)處理后的圖像分別用分水嶺和本研究提出來的方法進(jìn)行分割,隨機(jī)取其中4種粘連圖像進(jìn)行比較(圖11)。
從圖11的結(jié)果分析,分水嶺方法由于無法準(zhǔn)確地找到粘連處,在分割過程中產(chǎn)生較多的誤分割現(xiàn)象。在圖11中的a1、b1、c1、d1都出現(xiàn)多處豬的耳朵、頭等部位被分割出來,此外,分割后提取的豬體輪廓缺損較多,與實際豬體輪廓存在較大差距。而本研究提出的方法由于利用基于歐式距離的外輪廓剝離和橢圓擬合的原理,在分割過程中不但能準(zhǔn)確地找到粘連處,而且可以較好地恢復(fù)豬體原始輪廓,如圖11中的a2、b2、c2、d2所示。試驗結(jié)果表明,本研究方法的分割準(zhǔn)確率高于分水嶺的分割方法。
為了驗證本研究提出的分割方法的有效性,利用廣義Hough聚類方法對分割后的豬體頭部和尾部進(jìn)行判定。總共進(jìn)行了2組對比試驗:第一組試驗是對200幀經(jīng)過分水嶺和本研究方法分割后的粘連圖像進(jìn)行豬體頭尾判定,對比結(jié)果如圖12所示。第二組試驗是先對200幀本研究方法分割后的粘連圖像的豬體頭尾判定,然后再選取200幀非粘連圖像進(jìn)行頭尾判定對比,結(jié)果如圖13所示。利用識別的正確率P進(jìn)行結(jié)果表示,計算公式如下:
(8)
式中:Nr表示正確判定出的豬體頭尾數(shù),N表示每幀圖像中豬體頭尾總數(shù)。
第一組試驗的對比結(jié)果如圖12所示,利用分水嶺分割后的豬體頭/尾判定的平均正確率為76.61%,變化范圍從 50%~100%,本研究提出的方法分割后的豬體頭/尾判定的平均正確率為87.28%,變化范圍為57.1%%~100%,在第19、150、180等幀圖像分水嶺的正確率只有65%左右,而本研究的分割方法的識別率可以達(dá)到85%左右,本研究提出的分割方法高于分水嶺11%左右。試驗結(jié)果表明,經(jīng)本研究分割后的頭/尾判定的正確率明顯高于分水嶺分割后的頭/尾判定。


第二組試驗的對比結(jié)果如圖13所示,利用廣義Hough聚類識別非粘連豬體頭/尾的平均正確率為90.72%,變化范圍為64.3%~100%,經(jīng)本研究方法分割后粘連豬體頭/尾聚類識別的平均正確率為87.28%,變化范圍為57.1%~100%,在第91幀圖像的豬體受到光照、重度重疊等現(xiàn)象,使得頭尾識別率較低。對比本研究方法分割后的粘連豬頭尾識別和非粘連豬的頭尾識別2種情況,二者利用廣義Hough聚類識別豬體頭尾的正確率相差3%左右,識別率接近。通過圖13的對比試驗,進(jìn)一步證明了本研究分割方法的有效性。

此外,綜合圖12和圖13的對比結(jié)果,通過廣義Hough聚類識別對粘連和非粘連豬體的頭尾判定的平均正確率為 84.87%,處理每幀圖像平均耗時1.736 s,不同的頭尾識別判定算法的對比結(jié)果如表1所示。表1的對比結(jié)果表明,綜合比較識別率和時間復(fù)雜度2方面,本研究的算法較圓度、面積等算法效果要好,可以滿足試驗需求。

表1 不同的豬體頭尾識別算法的比較
本研究提出來的基于距離變換與橢圓擬合結(jié)合的分割方法可以有效分割粘連豬體,粘連處定位準(zhǔn)確,并較好地保證豬體輪廓的完整性,分割整體性能優(yōu)于分水嶺算法。
本研究的廣義Hough聚類方法分別對不同分割方法下的200幀粘連圖像中豬的頭尾判定,基于本研究分割方法的頭尾識別率高出基于分水嶺的11%左右;此外,對基于本研究分割方法的200幀粘連圖像與非粘連的200幀圖像的豬個體頭尾識別結(jié)果進(jìn)行對比,識別率接近,證明本研究的分割方法對豬的頭/尾判定是有效的。
本研究的廣義Hough聚類識別方法識別判定群養(yǎng)豬中個體的頭部和尾部,平均正確率84.87%,處理每幀平均耗時 1.736 s,在識別率和運(yùn)算效率上都可以滿足試驗需求。
結(jié)合試驗結(jié)果分析,本研究提出的分割粘連豬體和頭尾判定的方法對觀察和研究視頻中豬群的行為和身份提供了前期準(zhǔn)備和新的思想。目前,本研究的分割方法在時間復(fù)雜度上還需要進(jìn)一步優(yōu)化,此外該方法處理重度重疊豬體的有效性還在進(jìn)一步研究。
:
[1]Lin P,Chen Y M,He Y,et al. A novel matching algorithm for splitting touching rice kernels based on contour curvature analysis[J]. Computers & Electronics in Agriculture,2014,109:124-133.
[2]Liao M,Zhao Y Q,Li X H,et al. Automatic segmentation for cell images based on bottleneck detection and ellipse fitting[J]. Neurocomputing,2016,173(P3):615-622.
[3]Lu M,Xiong Y,Li K,et al. An automatic splitting method for the adhesive piglets’ gray scale image based on the ellipse shape feature[J]. Computers & Electronics in Agriculture,2016,120(C):53-62.
[4]唐莉萍,曾培峰,張 樂,等. 基于距離變換剝離的黏連纖維圖像分離算法[J]. 東華大學(xué)學(xué)報(自然科學(xué)版),2009,35(5):560-565.
[5]李文勇,李 明,錢建平,等. 基于形狀因子和分割點定位的粘連害蟲圖像分割方法[J]. 農(nóng)業(yè)工程學(xué)報,2015,31(5):175-180.
[6]苗玉彬,王浙明,劉 秦. 水果輪廓特征提取的Zernike矩分水嶺分割方法[J]. 農(nóng)業(yè)工程學(xué)報,2013,29(1):158-163.
[7]任守綱,馬 超,謝忠紅,等. 基于分水嶺和梯度的蝴蝶蘭圖像分割方法[J]. 農(nóng)業(yè)工程學(xué)報,2012,28(9):125-129.
[8]楊蜀秦,何東健,寧紀(jì)鋒. 一種基于分水嶺的連接米粒自動分割算法[J]. 光子學(xué)報,2009,38(10):2728-2732.
[9]勞鳳丹,滕光輝,李 卓,等. 復(fù)雜環(huán)境中蛋雞識別及粘連分離方法研究[J]. 農(nóng)業(yè)機(jī)械學(xué)報,2013,44(4):213-216.
[10]朱 周,路小波. 基于橢圓擬合的車輛遮擋處理算法[J]. 儀器儀表學(xué)報,2015,36(1):209-214.
[11]吳祿慎,李 澤,陳華偉,等. 改進(jìn)的重采樣算法研究[J]. 機(jī)械設(shè)計與制造,2015(4):244-247.
[12]宋曉宇,袁 帥,郭寒冰,等. 基于自適應(yīng)閾值區(qū)間的廣義Hough變換圖形識別算法[J]. 儀器儀表學(xué)報,2014,35(5):1109-1117.
[13]初未萌. 一種基于廣義Hough變換的動物圖像識別方法研究[D]. 哈爾濱:哈爾濱工業(yè)大學(xué),2013.
[14]歐海晨. 基于區(qū)域劃分與自適應(yīng)聚類算法的隨機(jī)Hough變換對直線及圓的提取研究[D]. 昆明:昆明理工大學(xué),2015.
[15]楊 強(qiáng),黃 兵,劉青寶. 基于成員聚散度的群組運(yùn)動模式比較分析[J]. 科學(xué)技術(shù)與工程,2014,14(21):141-145.
[16]Bai X,Sun C,Zhou F. Splitting touching cells based on concave points and ellipse fitting[J]. Pattern Recognition,2009,42(11):2434-2446.
[17]Bogovic J A,Prince J L,Bazin P L. A multiple object geometric deformable model for image segmentation[J]. Computer Vision & Image Understanding,2013,117(2):145-157.
[18]Kashiha M,Bahr C,Ott S,et al. Automatic weight estimation of individual pigs using image analysis[J]. Computers & Electronics in Agriculture,2014,107(3):38-44.
[19]Pauly M,Gross M,Kobbelt L P. Efficient simplification of point-sampled surfaces[C]. Vis IEEE,2002:163-170.
[20]郭依正,朱偉興,馬長華,等. 基于Isomap和支持向量機(jī)算法的俯視群養(yǎng)豬個體識別[J]. 農(nóng)業(yè)工程學(xué)報,2016(3):182-187.
[21]Guo Y Z,Zhu W X,Jiao P P,et al. Multi-object extraction from topview group-housed pig images based on adaptive partitioning and multilevel thresholding segmentation[J]. Biosystems Engineering,2015,135:54-60.
[22]彭 江,張建州,喻忠全. 基于歐氏距離變換的肺部粘連腫瘤分割算法[J]. 計算機(jī)工程與設(shè)計,2008,29(21):5516-5518.
[23]閆文忠,沈樹群. 分水嶺算法在粘連染色體圖像分割中的應(yīng)用[C].中國過程控制會議, 2008.
[24]童 振,蒲立新,董方杰. 基于改進(jìn)分水嶺算法和凹點搜索的乳腺癌粘連細(xì)胞分割[J]. 生物醫(yī)學(xué)工程學(xué)雜志,2013(4):692-696.
[25]鄒益民,汪 渤. 一種基于最小二乘的不完整橢圓擬合算法[J]. 儀器儀表學(xué)報,2006,27(7):808-812.
[26]傅 蓉,申 洪,陳 浩. 基于凹點搜尋的重疊細(xì)胞圖像自動分離的算法研究[J]. 計算機(jī)工程與應(yīng)用,2007,43(17):21-23.