基于深度学习的绵羊行为形态识别研究

基于多算法联合协作的绵羊体重预测

自己在研究深度学习任务时,发现在现代畜牧业管理中,动物体重的准确测量对于健康监测、喂养管理以及育种选择等方面至关重要。传统上,绵羊的体重测量需要物理称重,这个过程不仅耗时、劳力密集,而且可能对动物造成不必要的压力。随着精准畜牧业的发展,非侵入式的体重预测方法受到了广泛关注,其中图像处理技术因其高效性和低压力性而成为研究的热点。
近年来,深度学习和计算机视觉在图像识别和分析方面取得了显著进展。这些技术的应用使我们能够从绵羊的体型图像中提取关键的生物测量特征,并建立模型来预测体重。这种方法无需直接接触动物,减少了动物的压力和潜在的受伤风险,同时提高了数据收集的效率和安全性。
本章旨在探索一种基于绵羊体宽、体高和体长图像的体重预测模型,该模型结合了机器学习算法和图像分析技术。该方法能够自动分析绵羊图像,并给出其体重的准确预测。这不仅为畜牧业的数字化转型提供了技术支持,也为实现远程健康监测和管理提供了可能。

4.1 算法结构

4.1.1 算法结构总览

在这里插入图片描述

图4-1 多算法联合协作预测的绵羊形态识别研究
Figure 4-1 Sheep shape recognition based on multi-algorithm cooperative prediction
这个算法是一个融合了机器学习和深度学习技术的计算机视觉系统,专门设计用来预测绵羊的体重。其核心思想是通过精确的图像分割和特征提取来增强体重预测的准确性。以下是该算法结构的详细说明:
(1)数据采集
首先,算法从实际场景中收集绵羊的体宽、体高和体长的图像数据。这一步是整个过程的基础,确保获得高质量的图像数据是至关重要的。
(2)图像分割
采集到的图像数据将通过GraphCut算法进行处理。GraphCut是一种强大的图像分割方法,它通过建立像素之间的图模型,并找到最优切割来分离前景(绵羊)和背景。这种方法能有效地处理复杂背景下的图像分割任务,保证绵羊的轮廓被准确分割出来。
(3)深度特征提取
分割后的图像将输入到一个预训练的深度卷积神经网络,本算法选用了ResNet50的分类网络模型用于体重预测。这个网络深度学习的架构能够从分割的图像中提取高级特征,这些特征不仅包括绵羊的形状和大小,还能捕捉到更加细微的生物特征,为后续的预测任务提供丰富的信息。
(4)预测模型训练:
提取的特征将被用于训练一个预测模型,这个模型能够学习特征与绵羊体重之间的关系。在这个阶段,除了使用ResNet50进行特征提取用于绵羊体重预测,我们还引入了线性回归的机器学习算法用于体重预测的模型训练。两种算法的预测结果通过加权方法输出最终的绵羊算法结果。
(5)体重预测:
训练好的模型将用于预测新采集图像中绵羊的体重。由于模型已经被训练来识别和解释绵羊的关键视觉特征与体重之间的复杂关系,因此能够给出精确的体重预测。而机器学习的方法也能够弥补深度学习中可能存在的错误预测结果。因此,使用传统机器学习的线性回归方法与基于深度学习的计算机视觉方法结合实现的精准预测绵羊体重的算法。
整体而言,这个算法通过精确的图像分割和深入的特征学习,结合机器学习和深度学习的强大功能,为农业领域中的体重预测提供了一个创新和有效的解决方案。通过自动化图像分析过程,它不仅提高了预测的精度,还显著提升了效率,使得体重测量变得更加简单和非侵入性。

4.1.2 基于Graphcut的语义分割算法优化

4.1.2.1 分割算法优化动机

GraphCut算法是一种图像分割方法,主要基于图论通过建立一个图,其中节点代表图像的像素,边代表像素之间的关系(通常是相邻像素间的关系)[73]。在这个图中,每个边都有一个权重,代表着两个像素属于同一分割区域的可能性。权重低的边表示两个像素点在色彩或亮度上的差异大,很可能属于不同的区域。GraphCut算法的目标是找到一种分割方法,即一种切割图的方式,使得切割后的图中的前景和背景像素分组(通常是对象和背景)之间的边的权重和最小。这通常转化为一个能量最小化问题,其中能量函数由数据项(像素与其对应标签的相容性)和平滑项(相邻像素标签不一致的代价)组成。通过最小化这个能量函数,Graph Cut算法可以有效地分割出图像中的对象。在某些情况下,Graph Cut分割的结果可能需要进一步优化,特别是在无监督学习环境中,因为没有先验知识或标签来指导分割[74]。
为了优化GraphCut算法的分割效果,我们设计了一系列实验来验证改进方法的有效性。首先,我们从不同场景下采集了大量绵羊的图像数据。这些图像涵盖了多种背景和光照条件,以确保算法的通用性。然后,我们对比了原始GraphCut算法和引入Felz算法初始分割的优化GraphCut算法在分割精度和效率方面的表现。

4.1.2.2 分割算法优化实验步骤

我们从实际牧场中采集了3000张绵羊的图像,这些图像分别在不同的天气、光照和背景条件下拍摄。每张图像都包含了完整的绵羊轮廓,并且标注了体长、体高和体宽等关键生物测量特征。
我们采用Python的skimage库中的GraphCut算法进行初始分割。随后,使用Felz算法对输入图像进行初步分割,生成初始区域边界。通过Felz算法的分割结果,可以有效捕捉图像中的自然边界,提高GraphCut算法的分割效率和精度。
UNSUPERVISED IMAGE SEGMENTATION BY BACKPROPAGATION是指一种算法,它在无监督的设置中使用反向传播来优化GraphCut的结果。在无监督图像分割中,算法的目标是自动发现输入图像中的模式和结构,并将图像分割成有意义的区域,而不需要任何预先的标注或分类信息[75]。这个过程通常涉及以下几个步骤:首先,初始的图像分割通常依赖于聚类算法,如k-means或者更高级的聚类方法。这些算法将像素根据它们的特征(如颜色、纹理、亮度等)进行分组,试图将具有相似特征的像素聚集在一起[76]。然后该算法利用特征提取步骤使用传统的图像处理技术,如Python的skimage.segmentation模块中提供的算法,或者像SLIC这样的算法,它们可以在不同的尺度上识别图像中的区域。在进行多次的迭代聚类后,通过反向传播用于优化分割的结果。这个过程不同于监督学习中的反向传播,因为它不依赖于预先标记的数据。相反,它可能依赖于某种形式的自我监督或内在的评价机制,例如图像重建误差,分割的连续性和一致性等,通过反向传播来优化这些指标。
最后,算法会输出分割的图像,提取分割出的图像边缘,以细化Graphcut算法的分割结果。具体实现上,我们将该算法的输出结果进行二值化处理,其中绵羊像素设置为1,背景设置为0。然后,我们将这个二值化结果与Graph Cut算法的分割结果相结合。通过两个图像的逐像素相乘,我们能够利用二值化图像的精细边界来修正Graph Cut结果中的不精确部分。这样的操作不仅提高了分割的精确度,还保持了分割结果的鲁棒性。
分割后的图像将输入到预训练的ResNet50模型中,提取高级特征绵羊的轮廓面积,为后续的体重预测模型提供了丰富的数据支持。为了计算绵羊的轮廓面积,为了计算绵羊在整张图中的像素占比,我们使用分割图像后,计算绵羊区域的像素数量与整张图像像素数量的比值,作为面积值。实际实现过程中,我们首先将分割后的图像进行二值化处理,其中绵羊区域的像素值为1,背景区域的像素值为0。然后,我们统计绵羊区域的像素数量,并计算其占整张图像的比例,作为面积值。
以下是部分提取到的面积值样例:
图像样例 面积相对值 可视化结果
图像样例正面 0.386
图像样例背面 0.364
图像样例侧面 0.382
这种方法结合了GraphCut算法的选择性分割优势和无监督图像分割算法的边界细化能力,以提高分割的精确度并克服各自的局限。的结合使用提高了绵羊体重预测任务中分割阶段的准确性,为后续的特征提取和体重预测模型训练提供了更精确的输入数据。通过这种创新的改进,算法能够更有效地处理复杂背景下的图像,同时提高预测模型的性能。
为了进行体重预测,我们使用Pytorch框架实现了ResNet50模型,并在ImageNet预训练权重的基础上进行微调。具体步骤如下:
模型加载: 首先加载预训练的ResNet50模型,去除其最后一层全连接层,以保留特征提取部分。
特征提取层: 在预训练模型的基础上,添加全局平均池化层,进一步提取图像的高级特征。
新输出层: 添加新的全连接层,输出绵羊体重预测值。
训练过程: 使用提取的面积值和已知体重数据进行模型训练。编译模型时,选择合适的优化器和损失函数,进行模型训练和验证。
其中ResNet50的模型结构如下:
1)输入层:接收尺寸为224x224x3的RGB图像。
2)初始卷积和池化层:一个7x7的卷积层,具有64个滤波器,步长为2,紧随其后的是一个3x3的最大池化层(Max Pooling),步长为2。
3)残差模块1(Conv Block 1):包含3个残差单元(Residual Units),每个单元包含三个卷积层:1x1卷积(64个滤波器),3x3卷积(64个滤波器),1x1卷积(256个滤波器)。第一个残差单元通过一个1x1卷积层调整维度,确保捷径连接能够匹配输出的维度。
4)残差模块2(Conv Block 2):包含4个残差单元,每个单元包含三个卷积层:1x1卷积(128个滤波器),3x3卷积(128个滤波器),1x1卷积(512个滤波器)。第一个残差单元通过一个1x1卷积层调整维度。
5)残差模块3(Conv Block 3):包含6个残差单元,每个单元包含三个卷积层:1x1卷积(256个滤波器),3x3卷积(256个滤波器),1x1卷积(1024个滤波器)。
第一个残差单元通过一个1x1卷积层调整维度。
6)残差模块4(Conv Block 4):包含3个残差单元,每个单元包含三个卷积层:1x1卷积(512个滤波器),3x3卷积(512个滤波器),1x1卷积(2048个滤波器)。第一个残差单元通过一个1x1卷积层调整维度。
7)全局平均池化层(Global Average Pooling):将每个特征图的尺寸缩小到1x1,得到2048个特征值。
8)全连接层(Fully Connected Layer):在经典的ResNet50中,连接到全局平均池化层的是一个全连接层,输出为图像的分类结果。
具体实现代码截图如下:
在这里插入图片描述

另外,为了更好地改善无监督分割算法的分割速度,使用Felz算法替代SLIC算法对输入图像进行初始分割,以生成区域边界。Felz算法的引入是为了在生成较少的区域的同时,捕捉到更多的“正确边界”。这是因为Felz算法更加倾向于保留图像的自然边界,而不是像SLIC算法那样划分均匀的超像素块[77]。选择Felz算法还因为它在实践中往往需要更少的迭代次数来达到满意的分割效果,这可能是因为它侧重于图像中的自然边界,而不是追求超像素的均匀性。减少迭代次数意味着在处理大量数据或需要实时处理的应用中,这种改进可以提高分割算法的效率和速度。

4.1.3 基于线性回归与深度学习的加权预测方法

线性回归是一种预测模型,用于建立一个或多个自变量(预测变量)与一个因变量(响应变量)之间的线性关系。在用线性回归预测绵羊体重的情境下,模型会试图找出绵羊的体长、体高和体宽(这些是自变量)与其体重(因变量)之间的线性关系[78]。
表4-1 绵羊体型体态对体重的相关分析
Table 4-1 Correlation analysis of body type and body shape to body weight of sheep
在这里插入图片描述
根据绵羊体型体态数据进行相关分析和逐步回归,得到回归模型的相关分析结果(表 4-1), 将3个体型体态数据变量引入回归分析模型,得到对体重的相关系数R为0.997, 相关指数R2达到0.994, 校正相关系数R2为0.994, 误差概率P<0.000,达到极显著性水平,可见体型体态数据对体重预测具有重要作用。
表4-2 回归系数和回归常数的显著性检验
Table 4-2 Significance test of regression coefficient and regression constant
在这里插入图片描述

根据相关分析结果, 对绵羊体尺数据进行回归系数的显著性检验(表4-2), 结果显示,绵羊体长(β₁)、体高(β₂)、体宽(β₃)对体重均有极显著的作用(P<0.01)。将这三个体尺数据与体重构建多元回归方程:
Y=-57.746+0.508\beta_{1\ }+0.194\beta_2+0.630\beta_3
表4-3 多元回归方程的方差分析
Table 4-3 Analysis of variance of multiple regression equation
在这里插入图片描述

对构建的多元回归方程进行方差分析(表 4-3),结果表明回归方程达到极显著水平(F=5526.002,P<0.01), 表明回归方程具有统计学意义。
对比图像分析模型和线性回归模型,评估它们的预测准确性。这可以通过比较模型预测的体重与已知的实际体重,并计算误差指标,如MSE、RMSE、MAE等。通常,更准确的模型会被赋予更大的权重。若某方法的RMSE较小,则可能会给这个模型更高的权重。通过这种加权方法,可以结合不同模型的优势,减少任一单一模型可能存在的偏差,从而提高预测的总体准确性。这种方法在机器学习和统计建模中被广泛应用,尤其是在模型的预测结果需要综合多种信息源时。

4.2 评价指标

这些评价指标是用来衡量统计模型预测性能的常见指标,特别是在回归分析中。以下是对每个指标的说明:
(1)均方误差 (MSE,Mean Squared Error)
MSE 是实际值与预测值差的平方的平均值。它是衡量预测误差大小的指标。计算公式:
在这里插入图片描述

(2)均方根误差 (RMSE,Root Mean Squared Error):
RMSE 是 MSE 的平方根。它提供了预测误差的标准化量度。RMSE 给出了误差的大小的直观感受,并且和被预测的变量在同一量纲上。和 MSE 一样,RMSE 越小,模型越好。计算公式:
在这里插入图片描述

(3)平均绝对误差 (MAE,Mean Absolute Error):
MAE 是实际值与预测值差的绝对值的平均值。MAE 提供了对误差大小的另一种衡量,它不像 MSE 那样对大误差给予更大的权重。MAE 越小,预测性能越好。计算公式:
在这里插入图片描述
(4)决定系数(R²,Coefficient of Determination):
R² 是衡量模型对数据变化解释程度的指标。它是通过比较模型的预测值和实际值的方差来计算的。R²值越接近 1,表明模型的解释能力越强,即模型能够更好地捕捉数据中的变异性。R² 也可以是负数,这表明模型的预测效果比使用平均值还要差。计算公式:
在这里插入图片描述

4.3 试验结果与分析

4.3.1 数据集说明

本研究使用了三组绵羊的照片数据,以及与之对应的体宽、体高的量化数据(表2-1)。每组数据均为小尾寒羊,年龄2月龄~2年龄不等,性别选取雌性和雄性绵羊,确保了试验的多样性和代表性。照片数据经过预处理,以标准化图像大小和解析度,以适应后续的图像分割和特征提取步骤。

4.3.2 对比方法

使用LinearRegression算法用于绵羊体重预测,分别将绵羊的体宽、体高、体长作为输入,绵羊体重作为输出,进行算法训练。分别计算出均方误差MSE、均方根误差RMSE、平均绝对误差MAE、决定系数R2。另外,为了更好的获得预测结果,将体宽、体高、体长一起作为输入,进行预测,计算出上述指标。

4.3.3 分割算法优化结果比较

图4-2 GraphCut算法与本章节分割算法的可视化结果对比
在这里插入图片描述

Figure 4-2 A comparison of the GraphCut algorithm with the visualization results of the segmentation algorithm in this chapter
从可视化结果的角度分析绵羊的边界细化,提出了绵羊头部和尾部的像素,精确的分割结果。另外,也要承认本方法的局限性,如数据量偏小、模型过拟合的可能性,或者算法在特定条件下的局限性。同时,提出未来研究的方向,包括如何进一步改进算法或扩展到其他动物体重预测的应用。
第一张图(带有黑色和白色绵羊的):第二列显示的分割结果在将绵羊从背景中分离出来时存在一定的误差。我们可以看到,在某些绵羊的轮廓部分,背景没有被完全去除,仍然留有背景的碎片,尤其是在绵羊的腿部区域。第三列的分割结果更为精细。绵羊的轮廓被更准确地提取出来,背景的干扰被有效地去除,尤其是在绵羊的底部和腿部区域。分割算法似乎对毛发的纹理也有较好的处理,保留了更多的毛发细节。
第二张图第二列的分割结果同样显示出一些不足。尽管整体上绵羊被分离出来,但在某些边缘部分,如尾部和腿部,背景与绵羊的分界不够清晰。第三列的分割结果显示出更优的性能。绵羊的形状和轮廓被清晰地识别,几乎没有背景残留。毛发的细节和纹理处理得更好,绵羊的轮廓更加顺滑和自然。
表4-7 三组绵羊背部轮廓语义分割算法对比结果
Table 4-7 Comparison results of three groups of sheep back contour semantic segmentation algorithms
在这里插入图片描述

如表4-7所示为本论文提出的分割算法与原有的Graphcut语义分割算法的试验结果对比,通过对比三组试验数据,我们可以看到,无论在哪个数据集上,本算法的MIOU值均高于传统的GraphCut算法。
第1组试验数据显示,GraphCut算法的MIOU为0.703,而本论文提出的算法达到了0.821,这表明本算法在分割绵羊背部轮廓时,能够更有效地区分绵羊与背景,尤其是在绵羊的头部和尾部区域;第2组试验数据进一步证实了本算法的优势,原有的GraphCut算法的MIOU仅有0.675,但本算法的MIOU仍然更高,达到了0.803。这一结果强调了本算法在处理不同数据集时的一致性和鲁棒性。在第3组试验数据中,GraphCut算法的MIOU为0.713,而本算法的MIOU为0.815,这一结果进一步证明了本算法在分割精度上的优势。
基于以上分析,我们可以得出结论,在这两张图中,第三列的图像分割算法表现最佳。这个算法能更好地处理绵羊的纹理细节,同时在难以区分的边缘部分(如腿部和尾部)也能保持较高的分割精度。它成功地减少了背景噪声的干扰,提供了更干净、更精确的目标对象轮廓。这种性能对于后续的图像分析和模型训练是非常有利的,可以提高模型对绵羊体型特征的识别和测量的准确性。而从MIOU分割指标上可以看出,本论文展示了两个算法在不同数据集上的性能提升,从而证明了改进的有效性。然而,本算法在特定条件下,如极端光照变化或复杂背景的情况下,可能仍存在一定的局限性。未来的研究可以探索算法对这些条件的适应性,以及如何进一步提升算法的鲁棒性。

4.3.4 数据方法结果比较

表4-4 第一组绵羊数据方法对比结果
![Table 4-4 The first group of sheep data method comparison results
方法
在这里插入图片描述
表4-5 第二组绵羊数据方法对比结果
Table 4-5 The second group of sheep data method comparison results
在这里插入图片描述

表4-6 第三组绵羊数据方法对比结果
Table 4-6 The third group of sheep data method comparison results
在这里插入图片描述

这些试验结果展示了在三组不同的绵羊数据集上,多种方法在预测精度上的表现。主要的评估指标包括均方误差(MSE)、均方根误差(RMSE)、平均绝对误差(MAE)和决定系数(R2)。
如上表所示,单个特征对绵羊体重的决定作用存在较大差异,对绵羊体重影响从大到小依次为体宽、体长、体高,三个指标的MSE、RMSE和MAE依次逐渐增高,R2逐渐降低,表明体宽对绵羊的影响最大,体长次之,体高影响最小,这与绵羊实际生长规律一致,当年龄增长到一定程度时,体高、体长增长缓慢,体重主要取决于体宽的长度。LN方法,特别是单独使用时(LN——体高、LN——体长、LN——体宽),与更复杂方法相比,误差较高,R2值较低。然而,LN——特征联合方法相比单独的LN方法有显著提升,表明综合考虑体尺数据在体重预测方面具有一定的指导意义。
DL+LN联合预测相较于单独的LN方法和Graphcut的DL方法,MSE、RMSE和MAE值低,R2较高,表明DL+LN联合预测误差较小,预测准确度高。LN——特征联合方法和Graphcut的DL方法也表现良好,通常优于单独的线性回归方法(LN——体高、LN——体长、LN——体宽、LN——特征联合)。
在所有三组数据中,本章算法一致表现出最佳性能,所有四个指标均最优:MSE、RMSE和MAE值最低,R2值最高。这表明该算法在不同数据集上都具有最高的准确性和一致性。从评价指标上进行对比,较低的MSE值表示误差平方和较小,预测精度较高。在所有方法中,本章算法在所有数据集中始终实现了最低的MSE,表明其在最小化预测误差方面的卓越性能。RMSE是MSE的平方根,直观地表示平均误差大小。同样,本章算法展现了最低的RMSE值,再次证明了其有效性。MAE提供了一种直接的平均误差大小测量方式,无需平方。本章算法实现的最低MAE值进一步确认了其准确性。R2值接近1表示模型预测与实际值更接近。所有方法的R2值都很高(大多在0.90以上),本章算法和组合预测方法(DL+LN联合预测和Graphcut的DL方法)实现了最高值(0.99),表明这些模型非常好地解释了数据的变化。

4.4 本章小结

本研究证明了基于线性回归的绵羊体重预测方法在精度和效率方面的优势。通过精确测量绵羊的体尺寸并应用统计模型进行分析,我们能够提供一个实用且成本效益高的解决方案,为畜牧业提供科学的体重管理工具。

  • 31
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值