分享

基于机器视觉识别鸡冠颜色的病鸡检测方法

 GXF360 2017-05-31
基于机器视觉识别鸡冠颜色的病鸡检测方法

基于机器视觉识别鸡冠颜色的病鸡检测方法

李亚硕 毛文华 胡小安 张小超

(中国农业机械化科学研究院,北京,100083)

摘 要:病鸡最明显的体征之一是鸡冠颜色异常,健康鸡的鸡冠颜色鲜红,而病鸡的鸡冠发白、发绀或发黄,利用机器视觉检测鸡冠颜色是否异常成为一种病鸡检测的有效方法。本文在喂料机上搭建高清机器视觉系统,采用并行算法实现多路视频快速采集,基于L*a*b*空间a*分量的鸡冠区域提取算法,数理统计分析健康鸡与病鸡的鸡冠颜色特征差异;当鸡冠颜色不在健康鸡冠颜色阈值内,系统判定该鸡为病鸡,立即启动报警装置,定位出病鸡的具体位置。以白色蛋鸡进行试验,鸡冠的正确提取率为98%,病鸡的正确识别率为96%,误识别率为2%。

关键词:机器视觉,病鸡,鸡冠,并行算法,自动检测

0 引言

随着养殖规模的扩大和养殖密度的增加,自动化的疫情监测和控制亟待实现。我国现有的病鸡检测仍以人工为主,人工肉眼逐个查看鸡冠、翅膀、羽毛、行为体征状态来判断养殖鸡是否健康[1-5]。人工检测是一项琐碎而细致的工作,工人必须近距离对每个鸡笼进行仔细检查,而鸡场内有害气体的浓度较高、粉尘较多,长时间停留环境恶劣的鸡舍中对工人的身体健康将会产生不利的影响。由于养殖规模大,靠人工判断不但耗时费力,增加人工成本,也容易产生视觉疲劳导致误判漏检。因此,建立一个病鸡自动识别系统具有重要的实际应用价值。

当鸡患病时,鸡冠会呈现一定的病变状态,各种病症可以通过观察鸡冠的变化识别鸡病。因此,可以利用鸡冠的变化信息对病鸡进行识别。本文提出了一种基于鸡冠颜色和SVM的病鸡自动辨识方法,先根据L*a*b*空间a*分量提取鸡冠区域[6-7],再利用SVM对鸡冠像素点的RGB颜色信息进行统计分析[8-9],建立健康鸡与病鸡的鸡冠颜色特征判别模型。当鸡冠颜色不在健康鸡冠颜色阈值内就判定为病鸡并立即启动报警装置,同时定位出病鸡的具体位置。利用电子眼自动判断鸡冠颜色是否属于正常范围,不仅能够克服人眼的差异和视觉疲劳,而且精确度高、可进行批量检测。

1 病鸡自动检测方法

根据鸡冠判断鸡是否生病,主要工作是定位鸡冠并提取所需信息,找到判断是否生病的鸡冠颜色阈值,病鸡自动检测工作流程如图1所示。首先选取部分正常鸡和病鸡训练分类器模型,提取鸡冠信息并对数据进行训练分析,找到区分性最强的阈值。当有新的鸡需要检测时,定位其鸡冠并提取信息,根据已训练好的模型和阈值判别其是否正常,如果正常则处理下一只鸡,若异常则定位出其具体鸡笼位置并启动警报系统。

图1 病鸡检测流程图

1.1 鸡冠信息采集

真实鸡舍中病鸡数量比较少,为了训练数据接近真实情况,又能得到比较理想的训练效果,选取500只健康鸡和50只病鸡,对其鸡冠进行拍照。拍照环境也应尽量模拟真实鸡舍环境,将鸡放置在正常鸡舍中拍照。为了在不影响鸡的正常作息情况下获取真实有效的信息,将摄像头固定在喂料车上,在鸡进食的时候进行录像。因为当喂料车行进时,鸡都会探头进食,这样方便获取鸡冠图像。录像结束后,根据行车速度和鸡笼长度读取鸡笼图像,保证每个鸡笼都能有一副图片相对应。本文采用的摄像头读取速度是25帧/秒,鸡舍长度是30m,每排共有90个鸡笼,喂料车移动速度是0.125m/s。为了保证每只鸡都能取到图像并且不重复,录制视频后每隔67帧读取一次图像。

1.2 鸡冠信息提取与处理

按林开颜[7]等提出的方法提取a*分量信息并进行分割和处理,得到鸡冠信息后进行SVM分类器训练。根据健康鸡和病鸡的鸡冠数据找到最有区分性的阈值。处理含有鸡冠的图像时,需要将鸡冠部分分割出来,选用的是L*a*b*颜色空间的a*分量对图像进行灰度化。将RGB颜色空间变换为XYZ空间,再从XYZ空间转化到L*a*b*颜色空间。提取a*为特征量,获得灰度图像[10]。颜色空间RGB到颜色空间XYZ的转化计算公式为:

从XYZ颜色空间到L*a*b*颜色空间的转换公式为:

式中,X,Y,Z分别是颜色空间XYZ的分量,分别是标准白色对应颜色空间XYZ的参数值。

由于养鸡场光线较暗,不同位置光线差异较大,特别是多层鸡舍,上面一层和下面一层差别更大,遮挡和阴影都会有影响,因此对于灰度化图像,利用Otsu法进行分割[11-12]。Otsu法是一种经典的全局、非参数、无监督自适应阈值选取方法。按图像的灰度特性,将图像分成背景和目标两大类。当背景和目标之间的类间方差越大,说明构成图像的两部分的差别越大。因此,使类间方差最大的分割意味着错分概率最小。先求出整体阈值进行初分割,求分割后的连通区域,对各连通区域再次分割。在该区域内,鸡冠与周围的区分性比较大,这样就能避免同一阈值不好选取和整体阈值造成部分区域识别错误。

图2 鸡的原始图像与鸡冠二值化图像

鸡冠分割效果如图2所示。阈值分割后的二值图像会存在一些噪声,即白色背景中除黑色目标之外还存在其他一些黑色小区域,黑色目标区域中也会存在一些不规则的黑色孔洞。针对这一问题,本文采用形态学特征运算对其进行去噪,运用膨胀、腐蚀[13-15]方法对图像进行后期处理,减少噪声干扰。

分割处理完成后,统计各连通区域,每个连通区域即为一个鸡冠位置。人工对健康鸡和病鸡的鸡冠进行标记,健康鸡的鸡冠作为正样本,标记为1,病鸡鸡冠作为负样本,标记为-1。

图3 鸡原始图像与鸡冠像素点RGB分布图

图3 左图中两只鸡,左侧的是健康鸡,右侧的是病鸡,可以看出病鸡的鸡冠明显比健康鸡的暗淡。右图中,每个点代表鸡冠位置像素点的RGB值。其中红色+号代表左侧鸡冠像素点RGB值,蓝色*号代表右侧鸡冠像素点RGB值。根据分类结果计算出阈值,作为病鸡判断标准。从图3 可以看出,虽然两类点有区分性,但是正常鸡冠和生病鸡冠的像素信息会有部分交叉,有时候重叠区域不小,这是因为鸡舍光线较差,并存在鸡冠被笼子或者其他鸡遮挡,鸡低头或者侧身等情况,使得检测误差较大。

统计每个鸡冠区域内像素的RGB值作为三维特征,和样本标号一起用SVM线性分类器训练分类器模型。对于已知分类和小样本分类问题,SVM线性分类器分类速度快,准确率高。

1.3 病鸡检测

利用SVM分类器建立模型,每个像素点特征为一个输入数据,数据类型包括四维特征,分别为:类别,R,G,B,其中正常鸡冠的类别为1,异常鸡冠的类别为-1,R、G、B数据范围为0-255。分类结果有两种,正常鸡冠像素点类型为1,病鸡鸡冠像素点类型为-1。试验中阈值设定为0.37是分类效果最好的,但考虑到实际情况对病鸡控制要求严格,应尽量避免漏检,当阈值是0.23时,训练样本漏检率为0,因此选0.23为判断阈值。

在检测时,根据得到的分类器模型,对每个鸡冠的像素点进行计算。当鸡冠像素点计算得分多数在阈值之上,就认为这只鸡是正常的,检测下一只鸡,一个鸡冠超过一半的像素点计算得分在阈值之下,就认为可能生病,定位此鸡所在位置并报警,让工作人员去指定位置核查。

2 实验

在鸡舍喂料车上架设摄像头拍照,训练样本选用1000只建康鸡和20只病鸡。在现实养鸡环境中,对病鸡控制的很严格,基本不允许病鸡的存在,因此想在真实环境中找到病鸡做实验有一定的难度。根据病鸡特征,事先人工对部分鸡冠染色,使其与病鸡鸡冠颜色接近来模拟病鸡,放置在固定鸡笼位置。获取视频信息后再根据每67帧取一副图像,将这些图像提取a*分量信息并进行分割和处理,得到鸡冠信息后进行SVM分类器训练。得到分类器模型后,再用养鸡场一个鸡舍的所有鸡进行测试。测试方法也是人工对部分鸡冠染色,使其与病鸡鸡冠颜色接近来模拟病鸡。鸡的总数为3725,模拟病鸡个数为30。按同样的鸡冠信息提取方法,用SVM分类器模型对鸡冠像素点信息分类,根据阈值判断是否生病。实验结果如表1所示。

表1 病鸡检测识别结果

总数鸡冠识别数病鸡识别数误识别数3725 3655 29 58

虽然鸡在进食时会探头,容易捕获鸡冠,但此时也比较活跃,遮挡情况不可避免,经计算,鸡冠正确识别率为98.1%,病鸡识别正确率为96.7%,误识别率为1.6%。所以本文方法保守的鸡冠正确提取率为98%,病鸡的正确识别率为96%,误识别率为2%。

3 结论

鸡生病时鸡冠颜色变化是最明显的体态特征,因此本文提出了一种基于鸡冠颜色的病鸡自动检测方法,由于鸡舍光线较暗,需要对图像进行特殊处理,Otsu分割方法比较适合这种光线不一的情况。分割之后对图像再进行膨胀腐蚀处理,减少噪声干扰。对得到的图像信息采用SVM训练分类器训练分类,分类速度快,准确率高。根据分类器阈值筛选疑似病鸡,定位其位置并启动警报,再进行人工检测。实验结果表明,本文方法检测准确率高,有效地节省了人工成本。

参考文献:

[1] Leroy T,Vranken E,Van Brecht A,et al.A computer vision method for on—line behavioral quantification of individually caged poultry[J].Transactions of the American Society of Agricultural and Biological Engineers,2006,49(3):795-802.

[2] Aydin A,Cangar O,Eren O S,et al.Application of a fully automatic analysis tool to assess the activity of broiler chickens with different gait scores[J].Computers and Electronics in Agriculture,2010,73(2):194-199.

[3] Ramazani R B,Krishnan H R,Bergeson S E,et al.Computer automated movement detection for the analysis of behavior[J].Journal of Neuroscience Methods,2007,162(1/2):171-179.

[4] Dawkins M S,Lee Hyoung-joo,Waitt C D,et al.Optical flow paterns in broiler chicken flocks as automated measures of behaviour and gait[J].Applied Animal Behaviour Science,2009,119(3/4):203-209.

[5] Leroy T,Vranken E,Struelens E,et al.Computer vision based recognition of behavior phenotypes of laying hens[C] The 2005 ASAE Annual International Meeting.Tampa,Florida,2005.

[6] 余卫宇,曹燕,余英林.基于语义的图像物体提取的新方法[J].微计算机信息,2007,23(21):211-213.

[7] 林开颜,吴军辉,徐立鸿.彩色图像分割方法综述[J].中国图象图形学报,2005,10(1):1-10.

[8] Han P Hui,Mao Binghuan,Lv Hairong,et al.One—Sided Fuzzy SVM Based on Sphere for Imbalanced Data Sets Learning[C] In proceedings of the Fourth International Conference on Fuzzy Systems and Knowledge Discovery,Washington. IEEE Computer Society.2007:166-170.

[9] Melgani F, Bruzzone L. Classification of hyperspectral remote sensing images with support vector machine.IEEE Trans. Geosci. Remote Sens,2004,42(8) :1778 -1790.

[10]谢志勇,张铁中. 基于RGB彩色模型的草莓图像色调分割算法[J].中国农业大学学报,2006,1.

[11] Otsu N.A threshold selection method from gray level histograms[J]. IEEE Transon System,Man and Cybernetics SMC,1979,9(1):62-66.

[12]范九伦,赵凤.灰度图像的二维 Otsu 曲线阈值分割法.电子学报,2007.

[13]陆宗骐,朱煜. 用带形状校正的腐蚀膨胀实现Euclidean距离变换[J]. 中国图象图形学报,2010,15(2).

[14] Conzalez R C,Woods R E.Digital Image Processing[M].2ndEd.Beijing:Publishing House of Electronics Industry,2002: 519-549.

[15]陆宗骐,朱煜.数学形态学腐蚀膨胀运算的快速算法[C] .第十三届全国图象图形学学术会议论文集.北京:清华大学出版社,2006:306-311.

本项目由国家高技术研究发展计划(863计划)资助,项目编号2012AA041507。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多