年前做招聘网站话术,网站建设公司营销话术,佛山响应式网站公司,淘宝网商务网站建设目的融合YOLOv5s与通道剪枝算法的奶牛轻量化个体识别方法 Light-weight recognition network for dairy cows based on the fusion of YOLOv5s and channel pruning algorithm
论文链接 知网链接 DOI链接 该文章讨论了奶牛花斑、光照条件、不同剪枝方法、不同剪枝率对准确率的影响…融合YOLOv5s与通道剪枝算法的奶牛轻量化个体识别方法 Light-weight recognition network for dairy cows based on the fusion of YOLOv5s and channel pruning algorithm
论文链接 知网链接 DOI链接 该文章讨论了奶牛花斑、光照条件、不同剪枝方法、不同剪枝率对准确率的影响。 引用格式 许兴时王云飞华志新等. 融合YOLOv5s与通道剪枝算法的奶牛轻量化个体识别方法[J].农业工程学报2023, 39(15): 153-163 doi: 10.11975/j.issn.1002-6819.202303122 XU Xingshi, WANG Yunfei, HUA Zhixin, et al. Light-weight recognition network for dairy cows based on the fusion of YOLOv5s and channel pruning algorithm[J]. Transactions of the Chinese Society of Agricultural Engineering (Transactions of the CSAE), 2023, 39(15): 153-163 doi: 10.11975/j.issn.1002-6819.202303122 相关视频资料超链接 https://www.bilibili.com/video/BV1ii4y1C75h/?vd_sourced68da64987fce61a59890c929d25cd3d 摘要
实时准确地识别奶牛个体身份是构建完善的奶牛精准养殖技术架构的先决条件。如何在快速精准识别奶牛个体的同时保证模型的轻量化是至关重要的。**本文提出了一种在低计算量和低参数量条件下快速准确识别奶牛个体身份的方法。**研究采用YOLOv5s作为原始模型利用BN层中缩放因子对模型中通道的重要性进行判断并剪除不重要的通道从而降低网络复杂度。为了更加有效地压缩模型本研究在损失函数中增加稀疏损失项实现模型通道的稀疏化。测试试验结果表明剪枝后的模型平均精度mAP为99.50%计算量为8.1 G参数量为1.630 M每秒帧数为135.14 帧。相比其他具有代表性的目标检测模型本文方法拥有最小的模型复杂度。此外相比其他模型本文方法对奶牛斑纹特征依赖程度更低在低照度条件下有着更加出色的表现。考虑该方法具有快速、准确、鲁棒、低计算量和低参数量的特点在推进养殖场中奶牛精细化养殖方面具有巨大潜能。
材料部分 方法部分
本研究在这一部分的技术路线如下图所示。首先利用手工标准的数据集训练奶牛个体识别YOLOv5s网络。其次 对已得到的奶牛个体识别YOLOv5s网络进行稀疏训练、通道剪枝和微调操作最终在保证准确度的前提条件下减小模型大小、提高运行速度最终实现实时准确的多目标奶牛个体识别。 选用YOLOv5s作为基础网络。 按照功能网络结构可分为Backbone、Neck、Head三部分。Backbone主要由Focus、Conv和C3组成作用是将图像中信息进行提取并供后面的网络使用。Neck的作用是将提取出的特征进行融合与强化。由于高层特征图感受野大相较于低层特征图通常语义信息更强位置信息较差为了强化语义信息和特征信息的融合YOLOv5采取FPNPAN结构搭建Neck。Head部分的作用是利用之前所得到的特征实现检测。
为获得用于奶牛个体识别的YOLOv5s网络 2509张图像和2509个对应的标签文件所组成的训练集被使用。本研究在训练YOLOv5 时设定的参数如表3所示为减小网络训练时的运算量本文将训练集图像尺寸缩小为640px×640pxbatch-size大小设定为8选取随机梯度下降算法(SGD)对模型进行调优初始学习率设置为0.001并使用余弦退火衰减算法对学习率更新调整类别数设置为91epoch的数量设定为300。模型每经历一个epoch后用验证集对当前模型效果进行评估并保存本次训练得到的权重文件。模型训练结束后保留模型训练效果最好的权重文件。
在YOLOv5s网络训练的过程中模型首先需要进行前向传播计算损失值其次通过反向传播更新模型参数使损失值逐步降低实现预测结果与实际标签之间差距的逐步接近。本研究中YOLOv5的损失值由分类损失、定位损失和置信度损失三个部分组成分类损失使用BCE Loss计算物体的真实类别概率和预测类别概率之间的差异定位损失使用GIOU_loss来衡量预测框和B-Box之间大小和位置的偏差程度置信度损失使用BCE Loss来量化模型能够正确判断物体是否存在的能力。
在检测时模型首先根据预测框的置信度判断该预测框内是否存在目标并保留存在目标的预测框。接着利用非极大值抑制算法筛选预测框避免同一目标被重复标记。最后根据筛选后预测框的类别概率定义目标的类别。
利用通道剪枝算法实现快速轻量的个体识别 巨大的参数量带给模型强大的学习能力和表达能力但这些参数对于模型最终性能的作用并不相同(论文Pruning is All You Need)。在保证模型准确率的前提条件下剪除网络中作用不大的参数进一步减小模型大小、提高检测速度十分必要。权重剪枝算法灵活性高但需要特殊的硬件来加速相反整层剪枝算法易于实现但极易剪掉一些重要的参数论文:networksliming。为了兼顾剪枝算法的灵活性和实施成本一些学者尝试对模型中不重要的通道进行剪枝并取得很好效果(DandanWanga DongjianHe_BE;Dihua_computer; Shuxiang Fan_computer)。 在YOLOv5s模型上实现通道剪枝需要借助网络的BN层。BN层被认为能够有效提高网络泛化能力、加快网络训练速度、解决“Internal Covariate Shift”问题。BN层的具体操作如论文中所示。
式中规模因子γ、偏置因子β是可学习参数它们通过网络训练得到。γ越接近于0对应的通道对结果的影响程度越小相反当γ的值越大对应的通道就越重要。由于规模因子γ可以有效地表示一个通道的重要性通道剪枝算法通过判别γ值的大小实现剪枝。如图4所示通道剪枝算法首先通过稀疏训练使BN层中的参数γ趋向于0之后保留贡献度高的通道并剪除贡献度较小的通道实现模型的压缩。图4中的公式中(x,y)为训练数据集的样本点W为模型权重Σ_((x,y) ) L(f(x,W),y)为模型的原始损失函数λ为稀疏权重因子g(γ)为稀疏损失项γ为规模因子α为通道重要性阈值。
本研究中通道剪枝算法具体步骤如下 步骤1通道稀疏训练 由于在原始网络的BN层中γ近于0的情况很少直接对网络的通道进行剪枝很难有效地压缩模型。为解决这一问题需要对模型BN层中的γ值进行稀疏训练。本研究选取2.2.1节中模型效果最好的权重文件作为用作稀疏训练的原始网络权重文件训练时通过在正常训练的损失函数基础上添加对γ的L1正则化约束项实现模型的通道稀疏化。 训练过程中使用ADAM作为优化器用于更新模型参数初始学习率设定为0.0005稀疏权重因子λ设定为0.015。如图所示模型经过200个epoch后参数γ的分布中心接近于0且不再发生明显变化模型已完成稀疏化训练。
步骤2剪除低贡献度通道 稀疏化训练完成后设定通道重要性阈值α对参数γ没有超过α的通道进行剪除。过小的剪枝率不利于模型压缩过大的剪枝率可能会严重影响模型性能。本研究中α的最佳大小由多次实验确定。如图6所示本研究对59个BN层中的9632个通道的重要性进行判断在保证模型性能没有严重退化的条件下裁剪掉5324个通道。
步骤3对剪枝后的模型进行微调 剪枝后模型大小和参数量的大幅度减小会带给模型一定程度上的精度损失为减轻通道剪枝算法带来的负面影响本研究对剪枝后的模型进行微调。由于剪枝后的模型相对较小学习能力相对较弱需要更多的迭代次数恢复精度。本文微调过程中选用随机梯度下降算法作为优化算法初始学习率设置为0.001并使用余弦退火衰减算法对学习率更新调整 epoch设定为350。
实验结果 文章结论