杨 心, 朱伟兴
(江苏大学电气信息工程学院,江苏镇江 212013)
随着计算机和数字图像处理技术的发展,机器视觉越来越多地应用到生产和生活的各个领域。在养猪领域内,随着规模化、集约化程度的不断提高,需要长时间对猪的生长和健康状况监控,其中,猪的个体身份识别和行为识别是监控的关键。然而,在猪的群养条件下,猪之间会存在粘连情况,不能直接得到完整的猪只轮廓。因此,准确地分割出粘连猪群是进行猪个体身份与行为识别的前提。
在农业、生物图像粘连目标分割方面,处理细胞、谷粒[1]等类圆形状目标比较多,对于形状不规则的目标分割方面研究比较少。Liao等研究了基于瓶颈检测和椭圆拟合的细胞图像分割,但是分割的目标是类圆形状的粘连细胞[2]。Lu等通过对粘连幼猪进行凹点提取和椭圆拟合,实现了粗略分割,达到幼猪计数的目的,并没有研究猪体的形状特征[3]。唐莉萍等对粘连纤维的外轮廓进行剥离确定分割点,利用距离变换对粘连纤维进行准确分割[4]。李文勇等利用形状因子对害虫的粘连区域进行判定,最后利用距离变换对粘连害虫进行分割[5]。综上所述,基于凹点和椭圆拟合的方法分割的主要是类圆目标,对于不规则形状的目标轮廓会导致凹点搜索困难,真实凹点难以确定等问题;而分水岭算法在粘连目标的分割中应用广泛[6-8],但是容易出现分割位置不准确等问题;利用距离变换的思想可以准确地分割小目标粘连物体,但是目前应用在像猪这样的体型较大的粘连目标身上较少。此外,利用机器视觉技术对猪体头尾特征部位的识别鲜有相关文献报道。
考虑现代猪场养殖密度大,会造成猪之间的粘连,使得分析猪个体的行为和身份难度增大。因此借鉴前人对不规则形状的小型目标分割的研究方法,本研究提出了一种基于距离变换与椭圆拟合的分割算法,实现了粘连猪体的有效分割,再利用广义Hough聚类对分割后的个体进行头尾识别。
试验视频的采集地点是江苏丹阳荣鑫农牧发展有限公司的规模养殖场。改建试验猪舍,安装俯视的视频采集系统,摄像机固定在猪舍正上方,相对地面垂直高度约3 m,拍摄的猪舍面积为3.5 m×3.0 m。监控视频在白天自然光照下拍摄,采用POINT GREY的摄像机(型号:FL3-U3-88S2C-C),图像的分别率为1 760×1 840像素,拍摄了50段包含背景的7头商品猪的RGB彩色视频,共采集了近70 000帧图像。
所设计的方法均在CPU为因特尔酷睿i5 2 540M、6 G内存的Thinkpad计算机上运行,开发软件是MATLAB 2014b。
算法的主要流程包括:首先进行图像预处理,获取二值图像,然后根据形状因子判定出粘连猪体,利用距离变换对粘连猪体进行分割,最后对分割后猪体轮廓的粘连处进行椭圆拟合修复,直到所有粘连猪体分离完成。
1.2.1 粘连目标的判定与选取 基于粘连猪体的边界轮廓比单头猪的边界轮廓更复杂的原理,可以选择描述目标边界轮廓复杂程度的形状因子作为粘连判定的依据。形状因子(shape factor)的定义为[9]:
(1)
式中:S为连通区域的面积像素,C为连通区域周长像素。需要注意的是多猪粘连可能形成空洞区域,那么周长即为内周长和外周长之和。形状因子的取值范围为0
1.2.2 基于距离变换的分割算法 数字图像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)是数字图像I的欧式距离变换,在图像变换过程中满足精度要求,反映图像的真实信息。
对一个粘连目标,按欧式距离值从小到大排列,距离值所对应的像素值的集合分别为Sd1,Sd2……,对粘连目标进行八领域轮廓跟踪可以得到对应的像素点集合W1,W2……,然后从W中剥离掉Sd,这个操作称为基于外轮廓的剥离。重复上述所说的过程可以分离出粘连猪群。具体算法过程可以描述如下:
(1)对获取的视频图像进行预处理,得到二值图像;根据形状因子判定出粘连目标,并选出粘连猪体;然后计算出二值图像的欧式距离变换,如图2,是对图1中粘连猪体进行选定和欧氏距离变换。
(2)根据视频中未粘连猪体的图像分别计算出7头猪的俯视可见面积,取得平均值5.293 cm2(每帧图像的总面积为224.438 cm2),设定5.293 cm2为面积阈值Sth。
(3)在二值图像中对选定的粘连目标对象O进行基于欧式距离变换的外轮廓的剥离。在剥离过程中粘连目标发生分离,与步骤(2)的面积阈值Sth进行比较,根据多次试验可以判定,如果分离出来的目标面积小于Sth的1/5,则认定为猪的器官部分,不是真正的粘连处,需要继续进行剥离,直至找到真正的粘连分割点,剥离过程如图3所示。
(4)经过剥离找到分割点T,并在原图上标记出对应的分割线pq(图4)。重复以上步骤,直到所有粘连猪体都标记出分割线。
1.2.3 局部轮廓修复算法 椭圆拟合算法对目标轮廓的不完整性具有一定的修复能力,因此当利用剥离算法对粘连猪体进行剥离确定分割线时, 可以利用椭圆拟合算法对缺失的目标轮廓进行局部修复,从而尽量保证粘连猪体分割后的完整性。
一般的二次曲线方程可以表示为:
F(A,X)=ATX=ax2+bxy+cy2+dx+ey+f=0。
(4)
式中:A=[a,b,c,d,e,f]T是曲线的参数,X=[x2,xy,y2,xy,1]T,x和y分别代表曲线上横坐标和纵坐标。当方程(4)的系数满足4ac-b2=1时,此时曲线方程表示为椭圆[10]。具体的轮廓修复过程可以描述如下:
(1)对经过剥离算法确定了分割线的二值图像进行轮廓提取,并标记分割线对应的分割点对(p1,q1)、(p2,q2)。
(2)为了便于拟合的椭圆参数的确定,考虑到猪体的形状特征,本研究对轮廓采用曲率采样法[11]。曲率采样法的原则是:小曲率区域保留少量的点,而大曲率区域则保留足够多的点,以精确完整地表示轮廓特征。这样依靠曲率进行采样可以防止猪体轮廓的细节特征丢失。采样点确定之后,每个猪体轮廓分别以分割点作为选取特征点的起始点,依次取3个特征点,共6个特征点来确定拟合的椭圆参数。
(3)通过分割点对把每个拟合的椭圆分割成2个弧,保留分割后原始轮廓缺失的弧,删除椭圆的剩余部分。
(4)重复以上步骤,直至拟合出所有的经过剥离算法分割后的粘连猪体,轮廓的修复过程如图5所示。
针对粘连猪中直接进行个体头部和尾部判定的困难,本研究提出先对粘连猪体分割,然后再对分割后个体进行头部和尾部的判定。考虑到Hough聚类识别只适用明确解析定义的曲线,已有学者提出了广义Hough聚类方法[12-13],使用一组离散的边界参数表来描述任意形状的边界曲线。广义Hough聚类变换的关键在于任意形状曲线的参数描述,这给猪体的头/尾识别提供了良好途径。
考虑到只需要判定猪体的头尾部分,因此截取相应比例的头尾轮廓部分就可以实现判定的目的,根据多次试验,分别截取占身长1/4的头、尾轮廓可以达到较好的试验效果。本研究根据猪体整体椭圆性和位置的多样性,自适应建立直角坐标系(图6)。随机选取俯视角度下猪体的抬头、低头2种最常见姿势建立坐标系,以椭圆长轴方向为横坐标、短轴方向为纵坐标来建立坐标系,根据预设比例截取头/尾轮廓部分,本研究的截取方法具有旋转不变性,保持了原始猪个体位置的固定性和上下轮廓对称性。按照比例截取出来的轮廓如图7所示。
针对猪体头尾形状的差异性,利用广义Hough聚类识别对头尾进行判定。传统的广义Hough聚类采样的方法是在轮廓曲线上连续采样,这样的方法生成的圆数量多、圆的半径范围大、计算量大。因此针对传统的采样方法,提出了新的采样方法。以图7中2种姿势的猪体头/尾轮廓作为采样对象,以曲线的其中1个端点为起始点,在曲线上每隔τ个像素点确定1个采样点(τ根据实际试验聚类效果来确定,本试验τ=4),按照此过程,将轮廓曲线用点的形式表示,如图8所示,这样的采样方法可以克服圆的数量过多、圆的半径范围大等缺点,提高聚类效率。
将确定的轮廓采样点用一系列坐标表示,{(x1,y1),(x2,y2), (x3,y3)… (xj,yj)},其中j表示每段轮廓曲线确定的采样点总个数。根据任意不共线3点可唯一确定1个圆的原理,在轮廓采样点上按顺序选出3点(xi,yi)、(xi+1,yi+1)、(xi+2,yi+2)确定圆及圆心,圆心(m,n)的计算公式如下[14]:
(5)
(6)
考虑头尾形状差异性,尾部的轮廓更接近圆形,圆心点在参数空间分布更集中。图10是对图6选取出的猪体头尾轮廓在参数空间内的圆心点的映射结果,很显然2种常见姿势的猪体尾部轮廓的圆心点聚集度都更高,而头部轮廓的圆心点就相对分散。聚集度G的计算公式如下[15]:
(7)
式中:(m′,n′)是猪体头尾轮廓映射后的圆心点,(s,t)是聚类中心的坐标,K是每段轮廓聚类后的圆心点总个数。
首先从采集到的群养猪视频中选取出其中200帧粘连图像进行实验,这些图像中都存在明显粘连。接着对选取出来的图像进行灰度化、二值化、距离变换等预处理,对预处理后的图像分别用分水岭和本研究提出来的方法进行分割,随机取其中4种粘连图像进行比较(图11)。
从图11的结果分析,分水岭方法由于无法准确地找到粘连处,在分割过程中产生较多的误分割现象。在图11中的a1、b1、c1、d1都出现多处猪的耳朵、头等部位被分割出来,此外,分割后提取的猪体轮廓缺损较多,与实际猪体轮廓存在较大差距。而本研究提出的方法由于利用基于欧式距离的外轮廓剥离和椭圆拟合的原理,在分割过程中不但能准确地找到粘连处,而且可以较好地恢复猪体原始轮廓,如图11中的a2、b2、c2、d2所示。试验结果表明,本研究方法的分割准确率高于分水岭的分割方法。
为了验证本研究提出的分割方法的有效性,利用广义Hough聚类方法对分割后的猪体头部和尾部进行判定。总共进行了2组对比试验:第一组试验是对200帧经过分水岭和本研究方法分割后的粘连图像进行猪体头尾判定,对比结果如图12所示。第二组试验是先对200帧本研究方法分割后的粘连图像的猪体头尾判定,然后再选取200帧非粘连图像进行头尾判定对比,结果如图13所示。利用识别的正确率P进行结果表示,计算公式如下:
(8)
式中:Nr表示正确判定出的猪体头尾数,N表示每帧图像中猪体头尾总数。
第一组试验的对比结果如图12所示,利用分水岭分割后的猪体头/尾判定的平均正确率为76.61%,变化范围从 50%~100%,本研究提出的方法分割后的猪体头/尾判定的平均正确率为87.28%,变化范围为57.1%%~100%,在第19、150、180等帧图像分水岭的正确率只有65%左右,而本研究的分割方法的识别率可以达到85%左右,本研究提出的分割方法高于分水岭11%左右。试验结果表明,经本研究分割后的头/尾判定的正确率明显高于分水岭分割后的头/尾判定。
第二组试验的对比结果如图13所示,利用广义Hough聚类识别非粘连猪体头/尾的平均正确率为90.72%,变化范围为64.3%~100%,经本研究方法分割后粘连猪体头/尾聚类识别的平均正确率为87.28%,变化范围为57.1%~100%,在第91帧图像的猪体受到光照、重度重叠等现象,使得头尾识别率较低。对比本研究方法分割后的粘连猪头尾识别和非粘连猪的头尾识别2种情况,二者利用广义Hough聚类识别猪体头尾的正确率相差3%左右,识别率接近。通过图13的对比试验,进一步证明了本研究分割方法的有效性。
此外,综合图12和图13的对比结果,通过广义Hough聚类识别对粘连和非粘连猪体的头尾判定的平均正确率为 84.87%,处理每帧图像平均耗时1.736 s,不同的头尾识别判定算法的对比结果如表1所示。表1的对比结果表明,综合比较识别率和时间复杂度2方面,本研究的算法较圆度、面积等算法效果要好,可以满足试验需求。
表1 不同的猪体头尾识别算法的比较
本研究提出来的基于距离变换与椭圆拟合结合的分割方法可以有效分割粘连猪体,粘连处定位准确,并较好地保证猪体轮廓的完整性,分割整体性能优于分水岭算法。
本研究的广义Hough聚类方法分别对不同分割方法下的200帧粘连图像中猪的头尾判定,基于本研究分割方法的头尾识别率高出基于分水岭的11%左右;此外,对基于本研究分割方法的200帧粘连图像与非粘连的200帧图像的猪个体头尾识别结果进行对比,识别率接近,证明本研究的分割方法对猪的头/尾判定是有效的。
本研究的广义Hough聚类识别方法识别判定群养猪中个体的头部和尾部,平均正确率84.87%,处理每帧平均耗时 1.736 s,在识别率和运算效率上都可以满足试验需求。
结合试验结果分析,本研究提出的分割粘连猪体和头尾判定的方法对观察和研究视频中猪群的行为和身份提供了前期准备和新的思想。目前,本研究的分割方法在时间复杂度上还需要进一步优化,此外该方法处理重度重叠猪体的有效性还在进一步研究。
:
[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]. 东华大学学报(自然科学版),2009,35(5):560-565.
[5]李文勇,李 明,钱建平,等. 基于形状因子和分割点定位的粘连害虫图像分割方法[J]. 农业工程学报,2015,31(5):175-180.
[6]苗玉彬,王浙明,刘 秦. 水果轮廓特征提取的Zernike矩分水岭分割方法[J]. 农业工程学报,2013,29(1):158-163.
[7]任守纲,马 超,谢忠红,等. 基于分水岭和梯度的蝴蝶兰图像分割方法[J]. 农业工程学报,2012,28(9):125-129.
[8]杨蜀秦,何东健,宁纪锋. 一种基于分水岭的连接米粒自动分割算法[J]. 光子学报,2009,38(10):2728-2732.
[9]劳凤丹,滕光辉,李 卓,等. 复杂环境中蛋鸡识别及粘连分离方法研究[J]. 农业机械学报,2013,44(4):213-216.
[10]朱 周,路小波. 基于椭圆拟合的车辆遮挡处理算法[J]. 仪器仪表学报,2015,36(1):209-214.
[11]吴禄慎,李 泽,陈华伟,等. 改进的重采样算法研究[J]. 机械设计与制造,2015(4):244-247.
[12]宋晓宇,袁 帅,郭寒冰,等. 基于自适应阈值区间的广义Hough变换图形识别算法[J]. 仪器仪表学报,2014,35(5):1109-1117.
[13]初未萌. 一种基于广义Hough变换的动物图像识别方法研究[D]. 哈尔滨:哈尔滨工业大学,2013.
[14]欧海晨. 基于区域划分与自适应聚类算法的随机Hough变换对直线及圆的提取研究[D]. 昆明:昆明理工大学,2015.
[15]杨 强,黄 兵,刘青宝. 基于成员聚散度的群组运动模式比较分析[J]. 科学技术与工程,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]. 农业工程学报,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]. 计算机工程与设计,2008,29(21):5516-5518.
[23]闫文忠,沈树群. 分水岭算法在粘连染色体图像分割中的应用[C].中国过程控制会议, 2008.
[24]童 振,蒲立新,董方杰. 基于改进分水岭算法和凹点搜索的乳腺癌粘连细胞分割[J]. 生物医学工程学杂志,2013(4):692-696.
[25]邹益民,汪 渤. 一种基于最小二乘的不完整椭圆拟合算法[J]. 仪器仪表学报,2006,27(7):808-812.
[26]傅 蓉,申 洪,陈 浩. 基于凹点搜寻的重叠细胞图像自动分离的算法研究[J]. 计算机工程与应用,2007,43(17):21-23.