◎张琰张博汉傅彦宁沈安南黄宇奇
基于LabVIEW与MATLAB的雏鸡早期雌雄鉴别
◎张琰1张博汉1傅彦宁1沈安南2黄宇奇1
雏鸡的早起雌雄鉴别在养鸡生产中具有极其重要的意义。当下雏鸡雌雄识别主要通过人工施以翻肛鉴别法完成,既将雏鸡肛门完全暴露在空气中,人工查看肛门处是否存在一生殖突起。然而雏鸡养殖量大,大量而重复的工作对鉴别员提出了极高的要求。一直以来,雏鸡雌雄鉴别完全依赖于人工鉴别,也没有可用于建设自动化鉴别系统的理论依据,基于此,本文采用LabVIEW与Mat lab相结合的方法提取雏鸡生殖突起特征,通过对原始图像进行预处理,灰度化处理,二值化处理,增强处理,提取轮廓特征,从而判别雏鸡是否存在生殖突起。
随着图像处理分析技术的发展,图像处理已广泛应用于工业、医学、军事等各个领域,如医学影像与显微图像处理、工业检测与过程控制和产品无损探伤。这些基于图像识别技术的处理、检测系统,既大大的提高了自动化程度,也节约了宝贵的时间。雏鸡的早期雌雄鉴别在养鸡生产中极其重要,既方便饲养管理,进行早期的选种选育,也能提高母雏成活率,节省饲料,禽舍,劳动力和饲养成本。以往文献提到的众多方法中,使用较广泛的是翻肛鉴别法。一直以来,雏鸡雌雄的的早期鉴别主要依赖于人工鉴别,到目前尚无人做出将鉴别过程自动化或半自动化的工作,基于此,本文提出一种基于LabVIEW与Mat lab的雏鸡雌雄机器识别方法。
时间要求:雏鸡破壳后4~12小时内,生殖突起形态差别最明显,易于区分。在这段时间中,雏鸡容易抓握,且腹部充实,容易将肛门翻出。
鉴别依据:
图一为公雏母雏生殖器官差异。公雏肛门处可见生殖突起,并且生殖突起充实,有光泽,轮廓鲜明。母雏肛门处一般无生殖突起,或有残留生殖突起,但是多呈萎缩状,不饱满,无弹性无光泽。
识别处理流程如下:
获取图像。在LabVIEW中完成以下程序,用以完成调用摄像头获取图像,一种调用摄像头拍照的程序源码如下图二:
右图三为一普通USB摄像头,免驱动,带可调焦镜头,有支撑镜头的底座,方便。另外,也可以使用微距镜头,或利用3D打印机针对不同的环境和需求打印不同的镜头支架。
图像预处理。在获取图像时,图像常被环境中的噪声(如椒盐噪声,脉冲噪声,高斯噪声)所污染。在对图像进行后续的处理前,必须对图像进行预处理,即除去图像中的随机噪声。中值滤波算法可以有效去除噪声的同时保持图像的边缘细节,是图像处理中常用的滤波方法。然而常规的中值滤波算法主要依赖于快速排序算法,运算时间复杂度高,运算速度慢。均值加速的快速中值滤波算法突破了对所有元素进行快速排序的限制,只在于快速找到滤波子窗的像素中间值,有效降低了中值滤波算法的时间复杂度,将计算效率和运算速度提高到传统滤波算法的两倍以上。
灰度化处理。彩色图像中每个像素的颜色由R,G,B三个分量决定,每个分量有255个中值可选,这样一个像素点的变化范围很大。而灰度图像是R,G,B三个分量相同的一种特殊的彩色图像,像素点变化范围共255种。而灰度图像与彩色图像一样仍然反映了整幅图像的整体和局部的色度和亮度等级分布和特征,是一种简化了的彩色图像。
图像的灰度化处理可由以下两种方法实现:
第一种方法是求出每个像素点的R,G,B三个分量的平均值,然后将此平均值赋予这个像素的三个分量:R1=G1=B1=(R1+G1+B1)/3
第二种方法是根据YUV颜色空间,Y分量代表亮度,其值大小反映亮度等级,根据RGB和YUV颜色空间的变化关系可建立亮度Y与R,G,B三个颜色分量的对应,以此亮度值表示图像的灰度值。R1=G1=B1 =0.2989R+0.5870G+0.1140B
本文采用第二种方法,通过调用Mat lab函数rgb2ga()完成对图像的灰度化处理。
处理结果如下:
二值化处理。二值图像中,每一点的像素只有两种可能的取值状态(0和1),占用空间少,可以将图像中的轮廓很清晰的表示出来,从而更容易识别图像的结构特征。Matlab中,二值图像中的数据类型为logical型,0代表黑色,1代表白色。所以二值图像实际上是一幅黑白图像。为了将灰度图转化为二值图像,常用“阀值法”。在给定了阀值后,小于阀值的像素点取0,其它的全部取1。调用im2bw()函数即可完成二值化处理。
处理结果如下:
图像增强处理。图像增强处理即图像锐化处理,目的在于突出图像中的细节(图像的边缘及灰度跳变部分),便于后续处理。为了实现在图像锐化,可采用它的反运算“微分”。以求出信号的变化率,加强高频分量,从而达到使图像轮廓趋于清晰的作用。这里采用以下梯度算法:
对图像函数),(yxf,它在点),(yx处的梯度可定义为另一个矢量:
在点(x,y)处梯度矢量的方向是f(x,y)在这一点的变化率最大的方向。梯度幅度用G[f(x,y)] 表示,其表达式如下:
对于数字图像而言,梯度幅度可以差分运算替代微分运算的方式简化:
以上梯度法是水平垂直差分法,另一种是交叉差分计算法,公式如下:
以上两种方法在图像最后一行或最后一列的像素的梯度无法标得,可以前一行和前一列的梯度值近似表示。由此可知,在图像中灰度变化较大的边沿区域起梯度大,在灰度变化平缓的区域起梯度小,而在灰度均匀的区域去梯度值为零。
求出图像梯度变化后,图像的灰度表示为:
其中:T为阀值,此法将背景和边缘用二值图像表示。
边缘提取。图像经上述处理后,轮廓已经被清晰的显示出来。这时图像可以用一个二维数组表示,便可用如下算法进行边界坐标提取:
识别。在本文开头关于识别原理中提到:公雏和母雏生殖突起差异明显,且母雏可能有呈萎缩状的生殖突起。为了使计算机可识别公雏与母雏之间的差别,本文提出以下方法:
根据轮廓面积及轮廓坐标方差两条标准进行区分。当轮廓包围的面积大于经验值0ε且轮廓坐标方差D小于0µ(需经统计分析确定)时,即可认为识别对象为公雏。
轮廓坐标方差D计算公式:
由于尚无前人工作可供参考,本文提出的基于LabVIEW和Matlab的别雏鸡雌雄的方法的精度有待提高。值得注意的是,在雏鸡识别过程中必须在外力作用下将雏鸡肛门完全暴露在取像镜头取景范围内,且施力者只能是人,这其中需要掌握一定的技巧,力道适中,避免对雏鸡的伤害。因此,关于准确的自动化的鉴别雏鸡雌雄的方法还需进一步探讨。
(作者单位:1.长江大学地球物理与石油资源学院;2.长江大学地球科学学院)
大学生创新创业项目,项目编号:2015308。