APP下载

基于改进YOLOv5的牛个体图像识别方法

2023-09-06刘琪伟郭小燕李纯斌杨道涵

软件工程 2023年9期
关键词:图像识别

刘琪伟 郭小燕 李纯斌 杨道涵

关键词:YOLOv5;牛个体;图像识别;轻量级

中图分类号:TP391 文献标志码:A

0 引言(Introduction)

随着我国整体生活水平的提高,人们对牛肉制品和牛奶制品的需求日益增大,快速有效地进行牲畜个体身份识别是开展精细化饲养、牲畜体征监测、畜产品溯源工作的基础。目前,识别牛个体图像的方法主要有接触式识别和非接触式机器视觉识别两种。接触式识别方法又可以分为永久性识别法(Permanent Identification Methodology,PIM)、半永久性识别法(Semi-permanent Identification Methodology,SIM)及临时性识别法(Temporary Identification Methodology,TIM)[1]。PIM主要通过耳槽、耳纹、热铁标记和冷冻烙印等方式识别牛个体,会对牛个体造成不同程度的伤害,容易造成牛个体感染疾病[2]。SIM主要通过耳标进行牛个体识别,耳标的类型有塑料吊坠、塑料条形码、金属耳夹等,如果长期使用这些耳标,会造成牛个体的耳朵腐烂;此外,耳标可以复制、伪造,并且有遗失风险,容易造成牛个体的错误识别或者无法识别[3]。TIM 包括染色和无线射频识别技术(Radio Frequency Identification,RFID)等,基于RFID的耳标虽然可快速读取牛个体的个体信息,但是染色的效果受奶牛花色影响,同时该技术识别距离有限且技术应用成本高,因此有较大的局限性[4]。

1 相关研究(Related research)

随着计算机视觉与人工智能技术的发展,目标检测技术被广泛应用在牛脸识别等计算机视觉领域。根据对图像进行识别与定位的特征,目标检测技术可分为One Stage和TwoStage两种,其中Two Stage目标检测算法首先对输入的图像进行区域推荐(Region Proposal),生成一系列的候选区域,其次通过卷积神经网络对这些候选的区域进行分类和回归[5-6]。典型的算法有RCNN[7]、Fast-RCNN[8]、SPP-Net[9]、Faster RCNN[10]等,它们将其识别过程分为两个阶段,检测速度较慢。One Stage算法将边框回归与目标识别合并为一个步骤,拥有更高的检测速度。其中,代表性的算法有SSD[11-12]系列、FCOS[13]、YOLO[14-15]系列算法,其中YOLO 算法参数量、计算量较少,因此检测速度较快,在牛个体图像识别方面已经得到了广泛应用。姜世奇[16]在YOLOv3的基础上进行改进,使用Microsoft COCO数据集进行模型预训练,通过构建的目标检测数据集进行微调并应用于牛面部识别。SHEN等[17]首先将奶牛的侧视图图像分割成头部、躯干和腿部三个部分,其次利用YOLO算法檢测图像中的奶牛对象,最后使用优化的CNN模型进行牛个体身份识别,检测准确率为96.65%。YOLOv5作为典型的One Stage识别方法,具有复杂场景下目标检测识别的优势,已经被广泛应用于农业目标实时检测与识别中,但其模型的体积较大、参数多,需要大量的样本进行模型训练,对运算的软件和硬件设备要求高,而高质量的牛个体样本数据的获取费时、费力。因此,设计一个轻量、高效的非接触式牛个体识别模型,使其可以在样本数量有限的情况下,运行于手机、平板电脑等移动设备中,方便牧民与养殖户进行牛个体身份识别,显得非常必要。

本文以YOLOv5为基础模型,设计了一个轻量级牛个体识别模型(Light YOLO Net,LY-Net),利用轻量级网络GhostNet作为主干网络模型,并减少C3参数,采用CARAFE作为上采样算子,采用EIoU Loss作为损失函数,在保证识别精度的情况下实现了减少网络参数、提升识别速度的目标。该模型通过对30 头牛个体,共6 775 幅自建数据进行测试,识别精确率约为99.6%。实验表明,该模型在实现轻量化设计的同时,可以高效、准确地进行牛个体图像识别。

2 YOLOv5 网络模型改进(YOLOv5 networkmodel improvements)

本文采用YOLOv5s 6.1版本作为基础网络模型,该模型主要由输入端Input、Backbone、Neck及Head四个部分组成。与YOLOv5s 5.x相比,YOLOv5s 6.1版本将Backbone Focus层换成一个6×6大小的卷积层,目的是扩大卷积核的感受野;在Neck中将SPP换为SPPF结构,提高运行速度。为了进一步实现网络轻量级的目标,本文将YOLOv5s 6.1模型的主干网络替换为轻量级网络Ghost Net,并减少C3参数,在识别精度不受影响的情况下实现了网络模型的轻量化、速度提升的目标,网络使用轻量高效的上采样算子CARAFE,进一步减少网络参数,采用Focal-EIoU Loss作为损失函数,加速收敛。

2.1LY-Net网络结构

首先将一幅经过预处理的大小为3×640×640的RGB图像进行归一化操作,送入Backbone主干网络进行特征提取,其次利用Neck将浅层的特征与深层特征进行特征融合以丰富网络模型的特征信息,在Head输出20×20、40×40、80×80三种像素的矩形识别区域,分别对应于不同图像大小的牛个体,图1为本文所使用的LY-Net模型框架图。

2.2 轻量级网络Ghost Net

YOLOv5主干特征提取网络采用C3结构,因为参数量较大,所以影响了检测速度。C3是删除BottleneckCSP中的部分Conv模块后产生的新模块,C3根据是否使用Shortcut连接分为C3-False和C3-True两个模块。C3模块能够增强对浅层特征的提取能力,利用Shortcut连接浅层特征,最终在增强整个神经网络学习能力的同时降低计算成本。针对本文采用的数据集牛个体图像检测的特点,本文将YOLOv5模型的主干网络替换为轻量级网络Ghost Net,并减少C3参数,将Backbone部分中的C3数量从(3,9,9,3)减少为(2,6,8,2),从而减少特征信息丢失且降低计算量。

相比传统的卷积,Ghost Net[18]分为两步走,首先GhostNet采用正常的卷积计算,得到Channel较少的特征图,其次利用Cheap Operation得到更多的特征图,最后将不同的特征图叠加,组合成新的Output。图2为传统卷积和Ghost Net卷积的对比图。

2.3 上采样算子CARAFE

YOLOv5中默认使用最近邻插值(Neares),也称为零阶插值,这是最简单的插值方法,仅通过像素点的空间位置决定上采样核,没有使用特征图的语义信息,可以看作是一種“均匀”的上采样,而且感知域通常很小(最近邻1×1,双线性2×2)。针对这些问题,本文使用轻量高效的上采样算子CARAFE,通过少量参数和计算保持轻量级功能。CARAFE分为两个主要模块,分别是上采样核预测模块和特征重组模块。假设上采样倍率为σ,给定一个形状为H ×W ×C 的输入特征图,CARAFE首先利用上采样核预测模块预测上采样核,其次利用特征重组模块完成上采样,得到形状为σH ×σW ×C 的输出特征图[19]。

2.4Focal-EIoU Loss

YOLOv5使用CIoU Loss作为Bounding Box的损失函数,同时采用Logits损失函数和二进制交叉熵(BCE)分别计算目标得分和类概率的损失。CIoU Loss虽然考虑了边界框回归的重叠面积、中心点距离、纵横比,但是纵横比的差异不是宽高分别与其置信度的真实差异,所以有时会阻碍模型有效地优化相似性。针对这一问题,本文采用Focal-EIoU Loss损失函数替换CIoU Loss损失函数。将纵横比的损失项拆分成预测的宽高分别与最小外接框宽高的差值,加速了收敛,提高了回归精度。

Focal-EIoU Loss将纵横比的损失项拆分成预测的宽高分别与最小外接框宽高的差值,加速了收敛,提高了回归精度,并引入Focal Loss优化边界框回归任务中的样本不平衡问题,即减少与目标框重叠较少的大量锚框对Bounding Box回归的优化贡献,使回归过程专注于高质量锚框[20]。LEIoU 损失计算公式分别如公式(1)、公式(2)、公式(3)所示:

3 实验材料处理(Experiment and result analysis)

3.1 数据集获取

本文使用的牛个体图像数据集于2022年5月在甘肃省张掖市某养殖场内采集,采集设备为Nikon D810相机,拍摄图像分辨率为4 000×2 248像素,图像格式为JPEG。为满足在不同地点和时间条件下的检测需要,分别在生活区和休闲区(时间段为早晨、正午和傍晚)进行图像采集。期间共采集有效图像6 775幅,对图片进行背景模糊等操作,分别以Cow1~Cow30对牛个体进行编号,制作了样本数据集。表1为该数据集30头牛个体样本信息。图3为数据集牛个体样本图像。

3.2 数据标注

使用可视化标注工具LabelImg进行数据集标注,以目标的最小外接矩形进行标记,标注文件类型为txt格式,以YOLO格式进行存储,存储信息包括类别代号、标注框横向的相对中心坐标x _center、标注框纵向的相对中心坐标y_center、标注框相对宽度w、标注框相对高度h[21]。

3.3 数据增强

为扩大自建数据的数量,采用Mosaic操作进行数据增强。首先随机选择图像,分别进行翻转、缩放和色域变化等数据增广操作,并粘贴至与最终输出图像大小相等掩模的对应位置,其次截取包含牛脸部的区域,最后将4幅图像拼接成1幅新的图片。该操作不仅增加了数据的多样性,还丰富了图片的背景,增强了网络的鲁棒性,Mosaic处理的训练图如图4所示。

4 实验与结果分析(Experiment and resultanalysis)

4.1 实验样本设置

同一群体的形态相近的甘肃省张掖市某养殖场的30头牛进行数据集制作,得到有效数据6 775幅,包含牛在不同时间、不同地点的活动情况,采用人工方式进行牛个体图像定位与标签设定,部分标签设定如0(Cow1)、1(Cow2)和2(Cow3)等30头牛。

4.2 实验评价指标

不同于其他的目标检测任务,本文对于牛个体的个体识别检测仅通过准确度作为评估指标是不够的,还应该考虑模型的检测速度。因此,本文选取了精确率(Precision,P)、召回率(Recall,R)、平均精度均值(Mean Average Precision,mAP)、参数量(Parameter)和模型计算力(Flops)5个评价指标对网络模型进行评价。P 用来评价模型对牛个体图像的检测准确程度,R 用来评价模型检测的全面性[22];计算公式分别如公式(4)、公式(5)所示:

4.3 实验参数设置

本文针对牛个体图像的识别使用的是优化的YOLOv5算法,为验证算法的有效性,在所有超参数、模型训练环境相关参数均保持一致的情况下,对YOLOv5算法与其在改良后的效果进行对比。使用的GPU 为NVIDIA GeForce RTX 3050Laptop GPU,CUDA版本11.2,Pytorch版本1.7.1,Python版本3.7,Windows版本Windows 11家庭中文版。实验中的参数设置如表2所示。

4.4 对比实验

为了验证LY-Net模型的可靠性,将LY-Net与YOLOv5模型的训练结果进行对比,表3描述了不同网络模型占用内存大小和针对本数据集的平均识别精确率。由表3 可知,YOLOv5的识别精确率约为99.5%。相比YOLOv5,本文模型的识别精确率约为99.6%,因此在牛个体图像识别率方面,本文模型有一定的优势。在模型参数方面,YOLOv5参数量较大,为7.2 MB。本文模型经过训练后的参数量仅为3.8 MB,因此在模型参数量方面,本文模型也有一定优势。

表3还给出了本文模型与YOLOv5模型的模型计算力的对比结果。从结果来看,本文模型的模型计算力为8.9 B,远远小于YOLOv5的模型计算力,本文模型在参数量、模型计算力、精确率方面均占有一定的优势。

如图5所示,模型训练到50次以后开始慢慢收敛,其中box_loss、obj_loss、cls_loss 已經降到了较低的水平。其中,box_loss 是bounding box(边界框)的定位损失,也就是模型预测框与真实框的差值,差值越小,说明模型预测框越准;obj_loss 为置信度损失,损失越小,说明目标检测准确度越高;cls_loss 为分类损失,数值越小,说明分类准确度越高。总的损失函数就是计算三者之和,所以损失函数的变化就是box_loss、obj_loss 和cls_loss 的变化。算法的整体损失值随训练轮次迭代减少,其中检测框回归损失使用的是Focal-EIoULoss,直接最小化了目标盒和锚定盒的宽度和高度之差,这使得更快的收敛速度和更好的定位结果。

4.5 消融实验

为了验证经过改进模型相对于原始模型的有效性,利用验证集数据,对经过训练后获得的YOLOv5数据,加入GhostNet的数据和CARAFE上采样算子的数据,与经过最终改进后的LY-Net模型数据进行对比验证,由图6可以看出,最终改进后的模型在识别精确度上高于原模型和其他改进的模型,并且更加稳定,更早收敛,由此可以得出本文所提改进后的模型是成功的、有效的。

4.6 模型识别结果

使用训练好的LY-Net模型对测试集数据进行预测,精确率约为99.6%,召回率约为99.5%,该模型可有效识别出图像中牛个体的图像信息。本文模型的输出为30头牛个体,识别结果如表4所示。

由图7可以看出,本文所提出的LY-Net模型在迭代次数小于20轮时,模型的精确率、召回率不太理想。但是,随着迭代轮数的不断提升,模型的精确率不断提升且趋于稳定,从而使牛个体的检测效果提升。对YOLOv5进行了更换主干网络、替换损失函数等优化操作,令针对牛个体图像目标的检测效果得到提升,在100轮次的训练下,算法优化后的精确率(P)约为99.6%,召回率(R )约为99.5%,mAP @0.5为99.5%,能较为准确地识别牛个体图像。

5 结论(Conclusion)

本文针对传统牛个体目标检测模型存在资源占用较大、模型体积大、参数多、受限硬件条件网络收敛速度慢的问题,以YOLOv5网络为基础模型,设计了一个轻量级牛个体识别模型(Light YOLO Net,LY-Net),并自建数据集进行验证,模型训练结果表明,在一定范围内,模型的迭代次数越多,模型的识别精确率越高,但是超过一定范围,模型的识别精确率不再增长,本文模型在运行速率、模型大小及识别时间方面均优于YOLOv5模型。目前,研究仍处于模型优化阶段,但为未来牧民与养殖户能够利用手机、平板电脑等移动设备进行牛个体身份识别的研究奠定了基础。

作者简介:

刘琪伟(1998-),男,硕士生。研究领域:图像识别,目标检测。

郭小燕(1976-),女,博士,教授。研究领域:智能信息处理,智能优化算法。本文通信作者。

李纯斌(1972-),男,博士,副教授。研究领域:资源利用与环境变化。

杨道涵(1995-),男,硕士生。研究领域:资源利用与环境变化。

猜你喜欢

图像识别
支持向量机的舰船图像识别与分类技术
浅谈图像识别技术在打击绿通假证逃费中的应用
基于图像识别和多感知融合的列车自动防护方案
基于Resnet-50的猫狗图像识别
高速公路图像识别技术应用探讨
图像识别在物联网上的应用
图像识别在水质检测中的应用
一种基于TuriCreate和OpenCV的实时图像识别系统设计
基于图像识别的田间玉米秆识别系统设计与实现
浅谈模式识别在图像识别中的应用