1. 引言
现行的牛羊统计方法主要是人工统计,逐级汇总,工作量大,耗费时间长。因此,需要探索出一种新的统计方法。目前很少有研究人员在做这方面的工作,不过有很多研究人员在从事着基于图像处理技术的自动识别和技术 [1] [2] [3] 。这方面应用主要在颗粒、菌落、细胞和大米自动计数上 [4] [5] [6] [7] 。
周莹莉、曾立波 [8] 等人针对菌落图像特点,提出使用最大类间方差法对采集的菌落图像进行分割,分析菌落种类、大小和形态,并对分割后的菌落进行统计。G. Corkidi [9] 等研制出菌落图像分析系统,能够对不均匀、存在粘连菌落的图像进行分割、计数、分析。尤育赛 [10] 等人对重叠的红细胞图像进行研究分析,提高自动分割的精度。中国农业研究院的张云鹤 [11] 研究出了用于农作物计数的自动颗粒计数仪,该系统在PC机上可以实现,但由于需要特定的LED灯光照明,所以使用起来不是很方便。赵增华 [12] 等人曾以“绿僵菌”为研究对象,采用基于小波理论的图象分析法实现菌种的自动分类和计数。凌云 [13] 等人设计出检测大米外观品质参数的装置,该装置基于机器视觉能够实现对大米粒型参数的检测及数目统计。宋强 [14] 等人据此对棒材端面图像进行分析,实现了棒材的自动计数。
大学也针对不同用途的计数系统做过研究,如天津大学,重庆邮电大学,东北电力大学,吉林大学,包括一些国外的大学都进行过类似研究 [15] - [20] 。
虽然基于图像处理技术的颗粒、菌落、细胞和大米等自动识别和技术的研究比较多,但是却不能完全适用于牛羊统计中。因此本文在颗粒、菌落、细胞和大米等的成熟自动计数理论之上,提出了一种基于水平集的高分辨率影像牛羊自动检测的方法,可自动统计牛羊个数。
2. 研究方法
2.1. 图像分类分割
水平集图像处理的核心思想是不断求解关于水平集演化过程的函数,该函数是一个n维变量 [21] [22] [23] [24] 。
在这零水平集C(t)时所对应的水平集函数j,得到公式1所示:
(1)
在公式1中,动力F是一个速度函数,它为法向速率,N是单位法向的方向。
对公式1中的(2)式,进行时间t的偏导数,可以得到以下的公式推导过程:
即化简为
(2)
在公式2中,Ñj是j的梯度是个向量,可以得到公式3:
(3)
在公式2中,
也是个向量,可以得到公式4:
(4)
公式3和4与公式1中(1)式是一致的,又因为以下公式5:
(5)
说明公式5与水平集函数定义有关。
即j是沿着曲线C的方向变化量为零,只能沿着其法线方向变化。
把5式带入公式1中(1)式中,再接着把公式1中(1)式带入2式中。
即可得
(6)
公式6就是水平集函数的真实演化函数。
基本方程式式6是一个水平集函数,是在法向力F的推动下的演化方程。
本文选择水平集作为牛羊图像分割方法。
2.2. 牛羊提取
经过上面处理的图像,圈出牛羊区域,若统计牛羊数量,还需进一步处理。故在这引入了图像二值化的方法,图像二值化是为了从高分辨率率影像中检测出牛羊,即将图像分成牛羊和背景两个区域。通常的办法是假设一个阈值为θ,定义水平集分割出来的牛羊图像中灰度级大于θ的像素群为牛羊部分,灰度级小于θ的像素群为背景区域 [25] [26] [27] [28] [29] ,例如设原始图像为
,二值化后图像为
,则得到公式7,如下所示:
(7)
通过处理,仍然还有一些杂物需要处理。
2.3. 杂物剔除与牛羊统计
剔除杂物会出现两种特殊情况 [30] [31] 。
第一种是有一些小块的背景区域被误当成了牛羊区域,本文选择数学形态学,图像膨胀、合并、开运算等,对细碎的牛羊部分合并,除牛羊之间相连现象。
第二种是有一些牛羊因为裁剪或拍摄等原因,使牛羊出现在高分辨率影像的边界上,出现在边界部分有一些牛羊不完全,而且还会影响后面的统计。针对这种情况,本文采取了边缘过滤的方法。即把边缘的牛羊部分全部变成背景区域,不加入统计。
本文采用四邻域标号搜索方法统计经过数学形态学处理产生的连通域。
2.4. 牛羊统计
虽然图像经过了以上二值化、滤波等处理过程,但总会存在一些残余的背景连通区域,而且图像中的多个牛羊可能在图像中聚在一起。因此所得到的连通区域数目不一定等于所要统计的牛羊个数。为了更为准确地统计牛羊数目,采用统计修正的方法来尽可能地减少这些不利因素的影响。
通过比较连通域的大小,当连通区域的大小小于平均连通域大小的1.5倍时,这时只算一只牛羊;当连通区域的大小大于平均连通区域大小的1.5倍且小于平均连通区域大小的2.5倍时,这时算两只牛羊;当连通区域的大小大于平均连通区域大小的2.5倍且小于平均连通区域大小的3.5倍时,这时算三只牛羊;当连通区域的大小大于平均连通区域的大小的3.5倍这时默认为不属于牛羊,属于其他杂物,删除该连通区域。
3. 实验结果与分析
3.1. 图像分类分割实验
在这里,因为水平集的动态处理步骤都是一样的,故在这做了一组简单实验,方便显示看效果和五组牛羊数目较多的情况下的实验。
首先,设定水平集函数的初态,得到如图1(a);其次,确定迭代次数,本文中数据选取的迭代次数为1000次;然后,按基本方程推演水平集函数的各个状态,对于每一水平集函数的状态求解零水平集。分别得出迭代次数为120次,400次,640次,880次的结果,如图1(b)~图1(e);最后,迭代次数完成1000次,牛羊也完全分出来了,得到结果图1(f)。
为了定量水平集算法的检测性能,本文采用了三个定量评价指标,分别是:漏检率(Omitted error)、误检率(Committed error),及总错误率(Total error) [32] ,分别定义:
漏检率:
(8)
误检率:
(9)
总错误率:
(10)
此中,
是真实的牛羊连通区域数,
是没有检测到的牛羊连通区域数,
为非牛羊连通区域数。漏检率、误检率、总错误率都是数值越小表明算法的效果越好。
对五组高分辨率影像(图4)分别获取真实的牛羊连通区域数
,未检测到的牛羊连通区域数
,非牛羊连通区域数
。通过公式8、9和10求取漏检率
、误检率
和总误差率
,得出表1。通过表1可以看出,最大的漏检率为4.76%,最小的漏检率为1.35%,平均误检率为3.176%;最大的误检率为5.75%,最小的误检率为0,平均误检率为3.158%;最大的总误差率为10.35,最小的总误差率为3.07%,平均总误差率为6.334%。这些误差主要是因为出现了一些不可避免的图像噪声所引起的。但明显发现第四、五组实验的三个定量评价指标误差大于第一、二组实验的三个定量评价指标误差,这是因为当统计黑色牛的时候,有可能会把一些牛的阴影统计进去,为统计牛带来了一定的误差,然而当统计白色羊的时候,黑色的阴影可以自动过滤掉,不存在阴影带来的误差,所以相对来说统计羊的误差明显小于统计牛的误差。
查看使用水平集圈出牛羊的5组高分辨率影像的结果图,虽然有部分轮廓不太完全,还有些地方错误圈出牛羊,但是基本上能达到所期望的情况,而且最大平均误差率缩小至6.334%。所以使用水平集圈出牛羊的方法是可行的。
3.2. 牛羊提取实验
本文因为在选取合适的实验数据上比较困难,故人为的在图像中添加了右下角的白色区域(如图2(a)),可以检验水平集的区分结果,水平集结果之内的分为白色区域,水平集结果之外的分为黑色区域。得到结果图2(b)。
3.3. 杂物剔除实验
通过观看图2,能明显的看出牛羊区域已经大致区分出来了,就是右下角的白色背景区域误算入了牛羊区域。在这实验中采取形态学的开运算,令经过二值化处理过后的图像为A,选取合适的结构元素B,得到结果图3(a)。观看结果,右下角的白色背景区域已经去除了,达到了预期的目的。而通过边缘过滤的过程,得到了图3(b),观看结果,已经去除了边缘部分的牛羊区域。

Table 1. The error table of the level set algorithm
表1. 水平集算法的误差表
(a) 背景去除实验数据
(b) 二值化
Figure 2. Extraction of cattle and sheep
图2. 牛羊提取
(a) 形态学滤波
(b) 边缘过滤
Figure 3. Sundries culling
图3. 杂物剔除
3.4. 牛羊数量统计实验
为了确定牛羊自动检测方法的准确性,当数据很少的情况下,直接人为的就可数出来,对实验完全不起作用,故选取了相对有较多牛羊的图像。特意做了5组实验,第一组是羊相对较少的情况,第二组是羊相对较多的情况下,第三组是牛羊混合的情况下,该组情况下,是进行分别统计牛羊个数,第四组是牛相对较少的情况下,第五组是牛相对较多的情况下。分别对应图4下列的各种情况。

Table 2. Comparison between artificial counting and automatic counting of cattle and sheep
表2. 牛羊的人工计数和自动计数的比较
再对5组高分辨率影像中的牛羊分别进行准确的人工计数和系统自动计数,试验结果如表2所示。从表2可看出,自动计数结果与人工计数结果的相比,最大相对误差为3.54%,最小相对误差为1.25%,平均相对误差为2.541%。这些误差主要由于多个牛羊相互连接在一起,而且体型相对较小,造成误统计情形,极少数的其他类似于牛羊形状的生物或一些不可避免的图像噪声所引起,例如阴影会给统计黑色的牛带来一定的干扰。由于5组自动统计结果的相对误差均小于允许误差5%,而且在实际的大样本的人工计数中,其相对误差往往大于自动计数的相对误差,所以该方法的自动计数结果是可行的。而且达到了预想情况。
4. 结论
本文基于图像水平集分割方法,提出了一个完整的牛羊数量统计方法。并通过5组实际采集的图像进行实验,结果表明本文提出的方法简单可行,可自动化实现牛羊的统计。但其中还是存在一些影响统计数量的因素,例如图片之中的阴影和一些与牛羊相似的地物等等。故后面还需要对这些影响因素进行细致的分析和区别。
基金项目
国家自然科学基金(编号:41571369);青海省科技计划项目(编号:2016-NK-138);科技创新服务能力建设基本科研业务费(科研类)(编号:025185305000/143)。
NOTES
*通讯作者。