基于神经网络和机器学习的白羽肉鸡体重估测算法

2021-07-29 08:44沈明霞刘龙申郑荷花王梦雨
中国农业大学学报 2021年7期
关键词:肉鸡椭圆卷积

庄 超 沈明霞* 刘龙申 姚 文 郑荷花 王梦雨

(1.南京农业大学 工学院,南京 210031;2.南京农业大学 动物科技学院,南京 210031;3.新希望六合股份有限公司,山东 青岛 266100)

肉鸡体重是反应肉鸡健康程度的重要指标,有效地监测肉鸡体重是肉鸡规模化养殖过程中亟需解决的问题[1-2]。目前对于肉鸡体重的监测主要依靠饲养员观察和手动测量,这些肉鸡体重监测方法不仅劳动力成本高而且会使肉鸡产生应激反应。

随着机器视觉技术的发展,已有研究使用机器视觉技术对畜禽体重进行探索[3],具体研究成果如下:1)获取并分析了大量的猪只数字图像特征信息与猪只体重增长之间的关系[4-7];2)使用3D相机获取奶牛属性特征,建立奶牛体重和属性特征的线性模型[8];3)利用3D视觉技术提取和肉鸡体重相关的13 种肉鸡特征信息,并建立5 种肉鸡体重估测模型[9];4)采用基于深度图像的肉鸡体重估测方法,该方法首先通过传统的图像处理技术提取和肉鸡体重相关的特征,并结合BP模型对单只肉鸡进行体重估测[10]。

与传统的数字图像处理技术相比,神经网络对于复杂图像的处理更加高效和稳定。本研究拟采用目标识别算法YOLOv3和神经网络分割算法FCN提取图像中的肉鸡区域,以期为构建高效、精准的肉鸡体重估测模型和肉鸡体重智能监测系统提供理论和技术支撑。

1 材料与方法

1.1 试验材料

试验地点位于山东省平度市新希望六和平养肉鸡养殖中心,肉鸡图像采集时间为2019-08-15—2019-08-20。试验选择52 只不同批次20~35日龄、体重1.43~3.00 kg的白羽肉鸡,室内温度维持在30 ℃左右,鸡舍内保持通风。

1.2 试验方法

1.2.1试验设计

在试验鸡舍内搭建图像采集装置(图1):四周使用栅栏围住,在栅栏内的支架(1.2 m×1 m)上安装深度相机,型号为XBOX ONE/S Kinect 2.0,该设备可连续采集肉鸡的红外图像,设置采样频率为1 min。深度相机通过网络转发模块树莓派(4 G内存)以TCP/IP协议将深度相机采集的图像传输到目标主机,通过手工方式用磅秤测量肉鸡的真实体重。

1.围栏;2.鸡舍;3.深度相机;4.支架;5.白羽肉鸡1.Fence; 2.Chicken house; 3.Depth camera; 4.Bracket; 5.White feather broiler图1 白羽肉鸡图像采集示意图Fig.1 Schematic diagram of image acquisition of white feather broiler

1.2.2试验数据采集和数据集划分

肉鸡图像采集时间为每天10:00—16:00,肉鸡处于趴卧状态,通过运行深度相机的驱动程序将采集的肉鸡深度信息保存在txt类型的文件中。

对采集的图像进行标记和分类,得到有效数据集共1 300张,使用开源工具LabelImage进行人工标注后生成后缀为.xml的文件,该文件记录目标区域的位置等信息。为了提高模型的准确性和鲁棒性,按约9∶1的比例划分获得的数据集[11-13],本研究将不同体重的肉鸡图像数据均匀划分在训练集和测试集上,划分后得到训练集1 170张,测试集130张。

1.3 目标检测算法YOLOv3和卷积分割算法FCN

1.3.1目标检测算法YOLOv3和卷积分割算法FCN的构建

本研究使用目标检测算法YOLOv3和卷积分割算法FCN可以快速准确的定位和分割肉鸡区域。YOLOv3作为目标检测和分类算法,在保证比较高的检测精度的同时,检测速度也得到很大的提升,YOLOv3算法采用的网络结构是Darknet-53,该网络结构由卷积层、激活层等构成,卷积层的作用是获得输入的红外图像中的肉鸡特征,位于卷积层之后是激活层,激活层对归一化后的神经元单元进行非线性处理,最后获得图像中肉鸡区域的位置信息(图2);FCN分割算法[14-15]将采集的肉鸡红外图像作为卷积神经网络的输入,经过卷积网络阶段运算后获得21 维特征图,通过3 次反卷积运算(Deconvolution Operation)得到肉鸡的掩膜和二值化图像(图3)。

图2 YOLOv3肉鸡图像检测示意图Fig.2 Schematic diagram of YOLOv3 algorithm for broiler image detection

特征图大小表示为,高×宽×通道数,高、宽单位为像素。The feature map size is expressed as height×width×number of channels. The unit of height and width is pixel.图3 FCN肉鸡图像分割示意图Fig.3 Schematic diagram of FCN algorithm for broiler image segmentation

1.3.2检测模型YOLOv3和分割模型FCN的评价指标

1)通过损失函数(Loss)判断YOLOv3模型和FCN模型是否收敛。在模型训练的过程中,随着迭代次数的增加,损失函数值不断减小,最终在某一范围内稳定变化。

YOLOv3模型的损失函数定义为:

(1)

式中:s×s表示栅格数;Losscoord、Lossiou和Losscls分别为定位误差、IOU误差和分类误差,计算公式为:

(2)

(3)

(4)

FCN模型的损失函数定义为:

(5)

式中:Ncls和Nreg为像素类别总数;i为某一像素点;Losscls和Lossreg分别为分类损失和回归损失,具体计算公式为:

(6)

(7)

2)使用查准率Pre(Precision)、查全率Rec(Recall)作为检测和分割模型性能评价指标。计算公式为:

(8)

(9)

式中:TP(True positive)为被模型预测为正的正样本;FP(False positive)为被模型预测为假的正样本;Pos为被模型预测为正的正样本和假的负样本。

1.4 肉鸡体重特征参数

目标检测算法YOLOv3和卷积分割算法FCN可以快速准确的定位和分割图像中的肉鸡区域,但是由于鸡头和鸡尾活动频繁,对于特征参数的提取会造成很大误差,为了保证特征参数提取的准确性,本研究采用椭圆拟合的方式计算出投影面积,从而去除鸡头和鸡尾在特征提取时对结果产生的误差。本研究结合多维特征作为输入[16-18],提取和肉鸡体重相关的5个特征,分别是投影面积A、投影周长、椭圆短轴长轴比、平均深度Md(Mean depth)和最大深度,其中投影面积、投影周长和椭圆拟合短轴长轴比属于二维特征,平均深度和最大深度属于三维特征。具体特征定义和计算方式如下:

1)投影面积为拟合椭圆(图4)的面积。具体计算公式为:

图4 肉鸡图像检测和分割后的拟合椭圆Fig.4 Ellipse fitting map after broiler image detection and segmentation

(10)

(11)

式中:x,y为肉鸡质心;(xi,yi)为图像中某一像素点坐标;n为区域内点的数量。

通过质心求得边缘像素点到质心的最短距离d,以d为半径构建拟合圆,掩膜内的鸡体边缘像素点为测量点,并构建圆锥曲线方程:

(12)

根据最小二乘原理,得到椭圆目标函数:

(13)

式中:p1,p2,…,p5为拟合系数;N为拟合圆的边缘点数量;F(p)为目标函数,通过求导,可以得到拟合椭圆的长轴a、短轴b和面积A,具体计算公式为:

(14)

(15)

A=3.14ab

(16)

2)平均深度(Md)为拟合椭圆内像素点的平均深度,计算公式为:

(17)

式中:n为拟合椭圆内内像素点个数;di为拟合椭圆内每个像素点的高度,mm。

3)投影周长、椭圆短轴长轴比和最大深度分别为拟合椭圆边缘像素点个数、拟合椭圆短轴与长轴之比和拟合椭圆区域内像素点的最大深度。

1.5 肉鸡体重估测模型

1.5.1建立ABR肉鸡体重估测模型

为了使模型具有很好的动态性、容错性和鲁棒性,本研究采用回归树算法DTR(Decision tree regressor)、线性回归算法LR(Linear regressor)、支持向量回归算法SVR(Support vector regressor)、K近邻回归算法KNR(Kneighbors regressor)、随机森林回归算法RFR(Random forest regressor)、梯度提升回归算法GBR(Gradient boosting regressor)和AdaBoost回归算法ABR(Adaboost regressor)7 种回归算法对特征数据集进行训练,最终选择得分较高的ABR模型作为白羽肉鸡体重预测模型。ABR算法在特征训练集上使用初始权重训练出弱学习器1,根据弱学习的学习误差率更新训练样本的权重2,重复进行训练和改变权重,直到弱学习器数达到事先指定的数目T,最终将这T个弱学习器通过集合策略进行整合,得到最终的肉鸡体重预测模型(图5)。

图5 ABR模型工作原理图Fig.5 ABR model working principle diagram

1.5.2肉鸡体重估测模型的评价指标

为了选择较优的肉鸡体重预测模型,使用均方误差MSE和决定系数R2计算出得分S较高的模型,模型的得分越高,拟合效果越好。模型评价指标的具体计算公式为:

(18)

(19)

S=0.6R2-0.4MSE

(20)

2 结果与分析

在PyCharm、Python和Pytorch环境下,对采集的1 300 张肉鸡的红外图像进行处理,开发程序对肉鸡图像进行检测和分割,在提取本研究中5 种肉鸡特征的基础上,对模型进行训练和评分,最终得到较优的白羽肉鸡体重预测模型。

2.1 YOLOv3识别模型和FCN分割模型的性能评估

使用PyCharm、Python和Pytorch搭建YOLOv3和FCN算法模型。将YOLOv3检测模型的迭代次数、动量(Momentum)和学习率(Learning rate)分别设置为23 000、0.9和0.001,在前2 000次迭代中损失函数值迅速下降,在2 000~23 000次迭代中损失函数值缓慢减少,迭代次数和损失函数值呈正相关,最终损失函数值稳定在0.2以下,检测模型处于收敛状态。

将FCN分割模型的迭代次数、初始学习率、动量和衰减速率分别设置为29 000、0.000 1、0.9和0.000 5,在前1 500次迭代中损失函数值迅速下降,在1 500~29 000 次迭代中损失函数值缓慢减少,最终平均损失函数值稳定在0.2以下,分割模型处于收敛状态。YOLOv3检测模型和FCN分割模型的性能见表1。

表1 YOLOv3检测模型和FCN分割模型的性能Table 1 Performance of YOLOv3 detection model andFCN segmentation model %

2.2 肉鸡特征的提取

对肉鸡图像进行检测和分割后,通过Opencv提取5 个不同维度的样本特征,分别是投影面积、投影周长、椭圆短轴长轴比、最大深度和平均深度。表2 示出部分肉鸡样本的特征提取结果。

表2 部分肉鸡样本的特征提取结果Table 2 Feature extraction results of some broiler samples

2.3 肉鸡体重预测模型的选择

将不同特征参数进行组合,当投影面积、投影周长、椭圆短轴长轴比和平均深度4 种特征参数同时作为回归算法的输入时,各个模型的拟合效果较好,比较各个模型的得分挑选出较优的模型。表3为ABR模型和SVR模型的部分肉鸡测试样本体重的预测结果。在测试集上,SVR模型的得分较低,肉鸡体重预测效果较差,肉鸡体重的绝对误差在0.18~0.82 kg;ABR模型的得分较高,预测效果较好,肉鸡体重的绝对误差(肉鸡真实体重值和预测体重值差值的绝对值)为0.01~0.32 kg,其中,编号13、14、15和20为低日龄的肉鸡体重预测结果,其绝对误差为0.01~0.04 kg,肉鸡体重预测误差较小,编号16、17、18和19为高日龄的肉鸡体重预测结果,其绝对误差为0.08~0.32 kg,肉鸡体重预测误差较大。随着肉鸡日龄的增长,由于肉鸡羽毛出现蓬松,对于投影面积等特征的提取会存在一定的误差,在本研究的ABR模型上,低日龄的肉鸡体重预测误差较小,高日龄的肉鸡体重预测误差较大。

表3 ABR模型和SVR模型对部分肉鸡样本体重的预测结果Table 3 ABR model and SVR model to predict the weight of some broiler samples kg

分别计算各模型的评价指标,结果见表4。比较各个模型的最终得分,模型得分越高,拟合效果越好。在测试集上,SVR模型得分较低为-10.35,决定系数为0.27,均方误差为26.29 kg,模型拟合效果较差,ABR模型得分较高为-0.21,决定系数为0.95,均方误差为1.94 kg,模型的拟合效果较好,所以最终选择ABR模型作为白羽肉鸡的体重估测模型。

表4 不同模型的评价指标计算结果Table 4 Calculation results of evaluation indicatorsof different models

3 结 论

1)本研究针对52 只白羽肉鸡进行了拍摄采样,以目标识别算法YOLOv3和卷积网络分割算法FCN为基础构建肉鸡区域提取模型,YOLOv3和FCN模型的查准率分别为98.1%和97.8%,查全率为100%,具有较好的检测和分割效果。选择4 个属性特征作为7 种回归算法的输入,在测试数据集上,ABR回归模型上取得了较好的预测结果,决定系数为0.95,均方误差为1.94 kg,评分为-0.21。

2)由于受光照和环境的影响,传统方法往往很难准确检测和分割出目标区域,本研究结果表明,基于神经网络的图像检测和分割算法更加稳定和准确,并且在本研究中采用高空悬挂深度相机的方式获得肉鸡的红外图像时,无需太多的依赖外界环境提供的可见光源,可对肉鸡进行实时体重监测。

猜你喜欢
肉鸡椭圆卷积
Heisenberg群上由加权次椭圆p-Laplace不等方程导出的Hardy型不等式及应用
基于3D-Winograd的快速卷积算法设计及FPGA实现
例谈椭圆的定义及其应用
肉鸡腹水咋防治
从滤波器理解卷积
一道椭圆试题的别样求法
基于傅里叶域卷积表示的目标跟踪算法
椭圆的三类切点弦的包络
肉鸡常见腹泻病的诊断和治疗
蛋鸡和肉鸡