基于机器视觉的群养猪个体身份识别的研究
2020-07-14李凯
【摘 要】为了增大我国对猪群饲养的规模,为了提高市场猪肉的质量和产量,为了响应国家对农业发展的大力支持,为了满足我国众多人口对猪肉的需求,本文契合时机地顺应当下机器视觉技术的蓬勃发展,将主要针对机器视觉图像处理方面的技术展开研究,以求达到对群养猪图像中的猪个体实现智能识别。首先,针对猪舍中恶劣的环境,为了减少阴影、光线不足的影响,取得较好的识别效果,本文选用猪舍正上方俯视拍摄群养猪视频序列的方法。由于猪舍背景复杂,目标提取难度大,所以在事先标定的有效区域内利用Visual Studio2015软件结合Open CV中的Crab Cut交互式目标提取的算法,对原始彩色图像中的7头猪进行初步目标分割,并结合简单的阈值分割、形态学处理和孔洞填充等操作,将目标尽可能完整地从背景中提取出来。其次,对猪舍中的7头猪个体分别建立样本图像库,依次提取灰度直方图、颜色矩、灰度共生矩阵、不变矩等多种特征。针对高维度的数据会增加算法复杂度,也可能会降低分类器识别率等问题。
【关键词】 群养猪;特征提取;图像分割;Crab Cut,Open Cv;智能识别
1. 绪论
1.1研究目的及意义
本研究主要对基于VS2015结合OpenCv的CrabCut算法对群养猪的图像分割进行重点研究,后续对数据优化和分类识别等方面作了简单介绍,简洁描述了样本库中猪个体提取颜色、纹理和形状等多种特征提取方法以及数据优化,最后介绍利用混合函数SVM完成对群养猪的个体身份识别。
1.2课题主要研究工作
基于opencv的机器视觉系统用于群养猪身份的自动识别,首先俯拍群养猪视频序列,在标定的区域内使用Grab Cut交互式目标提取算法,对彩色图像进行初步目标分割,并结合阈值分割、形态学处理和孔洞填充等操作,将目标提取出来。
2.群养猪视频采集及目标提取
基于在OpenCV中的“抠图”(Crab Cut)算法对目标提取上的轻量高效,本文主要采用VS配置OpenCV,并采用C++语言编写程序,在VS环境中对OpenCV中的函数进行调用,从而实现交互式Crab Cut算法对图像进行目标分割。
2.1群养猪俯视视频采集
采用俯拍方式拍摄群养猪的RGB图像序列,在进行拍摄猪群时,应在光照充足且均匀的环境下拍摄,避免阴影的影响造成拍摄模糊不清。在选择视频片段时,应避免采用存在某些猪个体卧躺、攀爬、争斗、重叠严重的情况,以免对后面的猪个体特征提取造成影响。本文选取了满足实验要求视频序列作为样本帧,图像如图(2-1)所示:
2.2群养猪个体目标提取
随着养猪业规模的不断发展,对群养猪进行个体身份识别、健康状况判断、行为分析等研究具有重要的实用价值。但是目前群养猪的检测技术依旧处于初级阶段,外加猪舍环境复杂,外界的干擾因素较多,分割难度也随之增大。
(1)传统目标分割算法。基于阈值的分割方法。灰度阈值分割法是一种最常用的并行区域技术,它是图像分割中应用数量最多的一类。阈值分割方法实际上是输入图像f到输出图像g的如下变换:其中,T为阈值;对于物体的图像元素,g(i,j)=1,对于背景的图像元素,g(i,j)=0。
(2)交互式Grab Cut算法。交互式图像分割(Crab Cut)算法只需用户输入一些简单的标记,就可以很好地解决自动分割的一些问题,使得目标提取更加完整。使用VS结合OpenCV操作方法简单,运行快速,轻量高效。
(3)猪目标提取方法及结果。本在window10系统下,采用VS2015结合OpenCV3.2来实现Crab Cut算法对图像进行的目标分割。在此之前要先将OpenCV加入系统环境变量中,并将OpenCV目录下build中的bin等文件地址添加到VS2015中等操作,完成OpenCV和VS2015的配置,并能够实现VS2015对OpenCV调用。在成功配置好OpenCV和VS2015后,需要编写程序来实现图像分割。基于对CrabCut函数的认识,在调用Grab Cut函数前需要建立鼠标回调函数-setMouseCallback并且还需建立-onMouse函数实现对矩形窗口区域进行处理。
在完成VS2015对猪群图片的读取后,在猪群中任选一头猪鼠标划出一个矩形框来完全框起这头猪。在框好之后,按“n”进行第一次迭代,在完成第一次迭代后,可继续按“n”可进行第二次迭代,以此类推,可进行多次迭代直到符合我们的要求即可。(注意,此处的“n”只是程序定义的开始符,也可以修改程序换为其他的标识符)。本文列举第1、3次迭代的实验结果如下:(下图为第一次迭代,第三次迭代)
根据实验结果,第三次迭代的效果产生了退化,所以不能采用第三次迭代的结果作为目标提取的最终结果,只能采用第一次迭代或第二次迭代。从分割效果上看,第一次和第二次迭代的区别不大,为了节省时间,此处选取第一次迭代结果作为样本。对猪群进行从左到右,从上到下进行1到7编号,重复上述操作得到的图片经过Crab Cut后的7个图像。但是这些图片还可能存在噪声干扰、边界不平滑或存在孔洞等问题,所以这些图像需要经过一些简单的处理才能得到准确的目标。
对于类似这类干扰、噪声太多的目标分割。一方面我们可以在原始3个图像中寻找合适的位置、有利于Crab Cut算法分割的,对目标进行分割。从而节约后续操作的时间,提高目标提取的精确度。另一方面我们可以通过一些简单的MATLAB处理,首先我们将Crab Cut处理过的7个图像导入到MATLAB新建的可执行文件所在的文件夹,为下面的图像处理做准备。(1)将交互式提取的图像转化为灰度图;(2)再将灰度图转化为合适的二值图,得到二值图图像如图下:
(3)最后,再利用imfill函数实现猪身目标区域内大孔洞的填充,用bwareaopen函数去除相对较大的干扰物,在处理完二值图噪声去除之后再将二值图转化为彩色图像。
2.3样本库的建立
本文采用俯视摄像机俯拍群养猪的运动视频,可以避免猪身阴影和相互紧贴、遮挡的影响,提高了特征提取的准确率。实验中的猪舍中包含一个喂食槽以及7头处于不同生长阶段的,皮毛颜色略有差异的猪只。为便于实验分析满足实验要求,选取的群养猪图片不存在群养猪之间攀爬、打斗、或重叠遮挡等情况。图(2.1)为某样本帧,采用编号顺序为:先从上到下,再从左到右依次进行编号,图像背景为黑色,保存为相同的图片格式(jpg),本文只列举身份编号为2的图像如下:
3.群养猪个体特征提取和特征数据的优化
3.1图像特征提取算法分类
图像特征可以表示为图像自身所具有、能用于区分自身的一些独特属性进行分类,具体的特征:纹理、颜色、轮廓等。
(1)颜色特征提取。颜色直方图:颜色直方图反映图像中彩色的分布比例,适合于不需要考虑目标空间位置的图像,但是具有忽视颜色相似性和空间分布信息的缺点。
(2)纹理特征提取。图像纹理就是由纹理基元按某种确定性的规律或者某种统计规律排列组成的,反映了图像亮度的空间变化情况。
(3)形状特征提取。图像经过边缘提取和图像分割,就会得到目标的边缘和区域,进而获得目标的形状。形状描述方法一般分为基于轮廓的和基于区域两类:基于边界的描述方法、基于区域的描述方法。
3.2猪个体特征提取方法
能否提取区分度大的特征是分类识别的关键,若特征选择不当,则会造成分类器识别率降低,不能满足要求。但若选择恰当,则会大大加强分类识别的准确性。
(1)颜色特征提取。图像基于RGB颜色空间,颜色特征对于猪个体是非常重要的一种特征,单靠颜色的不同,我们就可以把群养猪区分成不同的几类。除了分析和提取彩色空间的颜色特征以外,灰度特征也是用于描述猪个体的重要特征.
(2)纹理特征提取。纹理能表现出猪背部图像的粗糙或者细致程度,反应其灰度等级的变化,体现猪个体自身的属性。灰度共生矩阵()为其中应用最广泛、鉴别性能较好的算法之一。
(3)形状特征提取。由于实验对象的特殊性,不同大小的猪可能具有相近的颜色和纹理,本文把颜色、纹理与形状这几类特征相融合,构成特征矢量作为分类器识别的依据。首先将猪只彩色图像转换成二值图,再提取猪个体简单的、区分度大的边界特征和区域特征。
(4)数据降维方法简介。在信息化社会,大量数据都具有较高维数,比如在机器视觉、数据检索、身份识别等领域。降维算法多种多样,通常按照数据特性间的差异,存在线性与非线性降维方法;按照监督模式的差异,可以分为有监督、无监督和半监督降维方法;按照不同数据结构,又可以分为基于全局结构、基于局部邻域结构和基于稀疏结构的降维方法。
4.基于混合核函数SVM的猪个体身份识别
4.1 SVM基本内容
支持向量机(support vector machines, SVM)是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机。
(1)传统机器学习方法易产生过拟合问题,而利用现有样本信息的最优解且不考虑局部极值问题,专门针对了小样本问题。(2)根据统计学涉及到的一些理论知识可知,一些符合条件的函数均能作为中使用的核函数。(3)因为核一种典型局部核,核则拥有优良全局性,所以我们把核和核通过线性组合,可以得到混合核函数仍符合条件,且性能更好。
4.2图像处理界面设计
通过MATLAB GUI制作用户的图像处理软件界面,实现群养猪身份识别系统的可视化操作。在Grab Cut算法的提取后,处理后的终分割图像如下:
5.总结与展望
5.1本文总结
本文的核心在于果断地采用Visual Studio2015结合OpenCV的CrabCut简单高效地对群养猪图像进行目标分割,简单介绍了群养猪个体特征提取和对数据进行优化,并利用混合函数SVM完成了对群养猪的个体身份识别。
5.2未来的展望
整体上打破了传统上使用猪耳标或在猪体表绘写数字等其他识别方法,这些传统的方法总会随猪群的碰撞、生长以及泥泞的环境而无法识别,而基于机器视觉的图像捕捉的技术不仅更加方便有效,还提高了识别的稳定性,更加有利于饲养员的工作。此外,基于机器视觉的非接触群养猪智能识别,在未来还可以察觉许多人肉眼无法察觉的许多症状。例如有些猪的呼吸或心跳频率过高或过低,人是无法识别的,而这种症状极有可能是猪已经感染病毒的前期症状,如果不及时进行隔离极有可能感染其他猪,从而及时避免引发更大的麻烦。所以本文的研究对未来的群养猪个体身份识别可能有一定的推动作用。在未来的图像识别中还需要继续研究数据优化方面的技术和多元特征分析的技术,争取越来越高效地解决计算机在对群养猪个体身份识别中的时间过长和多角度全方位地有效识别等方面的问题。
参考文献
[1]王蜀金,郭春华,编译.全球猪肉市场纵览:附加生产力刺激世界猪肉产量[J].猪业科学,2014,12:24-25.
[2]王峰.种猪的饲养管理[J].农业技术与装备,2014,4:30-32.
[3]董晶,姜永增,郭艷宏.基于射频技术的生猪养殖监控系统的设计[J].黑龙江畜牧兽医,2014,4:83-85.
[4]沈明霞,刘龙申,闫丽.畜禽养殖个体信息监测技术研究进展[J].农业机械学报,2014,45(10):245-251.
[5]马丽,纪滨,刘宏申等.单只猪轮廓图的侧视图识别[J].农业工程学报,2013,29(10):168-174.
[6]刘同海.基于双目视觉的猪体体尺参数提取算法优化及三维重构[D].中国农业大学博士学位论文,2014.
基金项目:本文系江苏大学京江学院2019年度大学生实践创新训练计划项目,项目编号:201913986012Y。
作者简介:李凯(1997.2),男,汉族,江苏淮安人,江苏大学京江学院本科在读,研究方向为电气工程及其自动化。