基于改进YOLO
v7的笼养鸡_蛋自动识别与计数方法
基于
改进
YOLO
v7
笼养
自动识别
计数
方法
2023年第54卷第7 期月农业报学机械doi:10.6041/j.issn.1000-1298.2023.07.030基于改进YOLOv7的笼养鸡/蛋自动识别与计数方法赵春江1,2梁雪文1,2于合龙王海峰?樊世杰3李斌2(1.吉林农业大学信息技术学院,长春130 118;2.北京市农林科学院智能装备技术研究中心,北京10 0 0 97;3.北京市华都峪口禽业有限责任公司,北京10 12 0 6)摘要:笼养模式下鸡/蛋自动识别与计数在低产能鸡判别及鸡舍智能化管理方面具有重要作用,针对鸡舍内光线不均、鸡只与笼之间遮挡及鸡蛋粘连等因素导致自动计数困难的问题,本研究以笼养鸡只与鸡蛋为研究对象,基于YOLOv7-tiny提出一种轻量型网络YOLOv7-tiny-DO用于鸡只与鸡蛋识别,并设计自动化分笼计数方法。首先,采用JRWT1412型无畸变相机与巡检设备搭建自动化数据采集平台,获取2 146 幅笼养鸡只图像用于构建数据集。然后,在YOLOv7-tiny网络基础上应用指数线性单元(Exponentiallinearunit,ELU)激活函数减少模型训练时间;将高效层聚合网络(Efficient layeraggregation network,ELA N)中的常规卷积替换为深度卷积减少模型参数量,并在其基础上添加深度过参数化组件(深度卷积)构建深度过参数化深度卷积层(Depthwise over-parameterizeddepthwise convolutional layer,DOD Co n v),以提取目标深层特征;同时在特征融合模块引人坐标注意力机制(Co o r d i n a t e a t t e n t i o n m e c h a n i s m,Co o r d A t t),提升模型对目标空间位置信息的感知能力。试验结果表明,YOLOv7一tiny-DO识别鸡只和鸡蛋的平均精确率(Average precision,A P)分别为96.9%与99.3%,与YOLOv7-tiny相比,鸡只与鸡蛋的AP分别提高3.2、1.4个百分点;改进后模型内存占用量为5.6 MB,比原模型减小6.1MB,适合部署于算力相对有限的巡检机器人;YOLOv7-tiny-DO在局部遮挡、运动模糊和鸡蛋粘连情况下均能实现高精度识别与定位,在光线昏暗情况下识别结果优于其他模型,具有较强的鲁棒性。最后,将本文算法部署到NVIDIAJetsonAGXXavier边缘计算设备,在实际场景下选取30 个鸡笼开展计数测试,持续3d。结果表明,3个测试批次鸡只与鸡蛋的计数平均准确率均值分别为96.7%和96.3%,每笼平均绝对误差均值分别为0.13只鸡和0.0 9枚鸡蛋,可为规模化养殖场智能化管理提供参考。关键词:笼养鸡/蛋;YOLOv7t i n y;深度过参数化深度卷积层;计数;边缘计算中图分类号:TP391.41文献标识码:A文章编号:10 0 0-12 98(2 0 2 3)0 7-0 30 0-13OSID:台Automatic Identification and Counting Method of Caged Hens and EggsBased on Improved YOLO v7ZHAO Chunjiang1,2YU HelongWANGHaifeng12LIANG XuewenFAN Shijie3LI Bin222(1.College of Information and Technology,Jilin Agricultural University,Changchun 130118,China2.Intelligent Equipment Research Center,Beijing Academy of Agriculture and Forestry Sciences,Bejing 100097,China3.Bejing Huadu Yukou Poultry Co.,Ltd.,Beijing 101206,China)Abstract:In the cage mode,the elimination and death of laying hens will lead to changes in the numberof hens and eggs production in the cage,so it is necessary to update the number of laying hens in thecage in a timely manner.Traditional machine vision methods recognized poultry by morphology or color,but their detection accuracy was low for complex scenarios such as uneven lighting in the cages,hensobscured by cages and the eggs adhesion.Therefore,based on deep learning and image processing,alightweight network YOLO v7-tiny-DO was proposed for hens and eggs detection based on YOLO v7-tiny,and an automated counting method was designed.Firstly,the JRWT1412 distortion-free camera andthe inspection equipment were used to build an automated data acquisition platform,and a total of 2 146收稿日期:2 0 2 2-12-0 1修回日期:2 0 2 3-0 2-10基金项目:北京市平谷区博士农场项目、国家科技创新2 0 30-“新一代人工智能”重大项目(2 0 2 1ZD0113804)、北京市农林科学院改革发展专项、北京市农林科学院科研创新平台建设项目(PT2022-34)和北京市博士后基金项目(2 0 2 2-ZZ18)作者简介:赵春江(196 4一),男,研究员,中国工程院院士,主要从事智慧农业研究,E-mail:z h a o c j n e r c i t a.o r g.c n通信作者:李斌(198 3一),男,研究员,主要从事畜禽智能装备研究,E-mail:l i b n e r c i t a.o r g.c n301赵春江等:基于改进YOLOv7的笼养鸡/蛋自动识别与计数方法第7 期images of caged hens and eggs were acquired as data sources.Then the exponential linear unit(ELU)was applied to the YOLO v7-tiny network to reduce the training time of the model;the regularconvolution was replaced in efficient layer aggregation network(ELAN)with depthwise convolution toreduce the number of model parameters,and on this basis,a depthwise over-parameterized depthwiseconvolutional layer(DO-DConv)was constructed by adding a depthwise over-parametric component(depthwise convolution)to extract the deep features of hens and eggs.At the same time,coordinateattention mechanism(CoordAtt)was embedded into the feature fusion module to improve the modelsperception of the spatial location information of hens and eggs.The results showed that the averageprecision(AP)of YOLO v7-tiny-DO was 96.9%and 99.3%for hens and eggs respectively,andcompared with that of YOLO v7-tiny,the AP of hens and eggs was increased by 3.2 percentage pointsand 1.4 percentage points,respectively.The model size of YOLO v7-tiny-DO was 5.6 MB,which was6.1 MB less than the original model,and it was suitable to be deployed in the inspection robot whichlacked computing power.YOLO v7-tiny-DO could achieve high-precision detection and localizationunder partial occlusion,motion blur and eggs adhesion,and outperformed other models in dimenvironment,with strong robustness.YOLO v7-tiny-DO recognized that the F1 score of hens and eggswere 97.0%and 98.4%respectively.Compared with the mainstream object detection networks such asFaster R-CNN,SSD,YOLO v4-tiny and YOLO v5n,the F1 score of hens were increased by 21.0percentage points,4.0 percentage points,8.0 percentage points and 1.5 percentage points,respectively,and the F1 scores of eggs were increased by 31.4 percentage points,25.4 percentagepoints,6.4 percentage points and 4.4 percentage points,respectively.And frame rates were increasedby 95.2 f/s,34.8 f/s,18.4 f/s and 8.4 f/s,respectively.Finally,the algorithm was deployed to theNVIDIA Jetson AGX Xavier edge computing device and 30 cages were selected for counting tests in areal-world scenario for 3 d.The results showed that the average precision of counting hens and eggs forthe three test batches were 96.7%and 96.3%,respectively,and the mean absolute error were 0.13hens and 0.09 eggs per cage,respectively,which can provide a reference for digital management oflarge-scale farms.Key words:caged hens and eggs;YOLO v7-tiny;depthwise over-parameterized depthwiseconvolutional layer;counting;edge computing0引言作为重要的家禽种类之一,蛋鸡为人们提供了丰富的动物蛋白营养食源1。近年来,随着消费需求日益增加,规模化养殖趋势加速,立体笼养成为主要饲养模式2-4。死亡/低产蛋鸡的高效巡检与动态清零成为当前蛋鸡养殖产业的重要需求。一般来讲,笼内蛋鸡存活和产能状况通过笼内鸡/蛋数量精确盘点实现,而立体笼养模式下,养殖密度大、鸡只间遮挡和光线分布不均等因素使鸡只和鸡蛋准确识别与计数工作难度增加。当前,人工观测方法清点鸡只与鸡蛋数目效率低下且易使蛋鸡产生应激反应5。传统机器视觉方法主要应用特征信息提取和阅值分割技术开展鸡/蛋目标检测。毕敏娜等6 采用SVM算法检测散养病鸡,应用数码相机采集RGB图像,将鸡头鸡冠纹理特征和鸡眼瞳孔几何特征作为病鸡与健康鸡分类的特征向量,结果表明病鸡识别正确率为92.5%。IND RA 等7 基于大津阈值法设计鸡蛋检测模型,以获取受精卵和不育卵的信息。MUVVA等8 提出一种基于热度图和可见光图像的死鸡检测方法,使用阈值分割技术提取热度图中活鸡像素和可见光图像中所有肉鸡(活鸡和死鸡)的像素,根据两幅图像像素差值,输出死鸡坐标信息,该方法在常规饲养密度和稀疏饲养密度下肉鸡(5周龄)的死鸡识别正确率分别为90.7%与95.0%。LI等9开发了基于图像分析和体质量计数的母鸡传感器计数系统,图像分析计数是将原始彩色图像转换为灰度图,然后根据最终生成的二值图像中白色像素数确定母鸡数量,计数准确率为7 1.2 3%;体质量计数是指首先求得母鸡平均体质量,再根据传感器获得的笼内母鸡体质量计算母鸡数量,准确率达到99.70%,但是这种方法每次仅能检测8 只母鸡,效率低。上述基于各自研究场景下的检测研究虽然准确率较高,但无法解决笼养鸡舍内光线不均、鸡与笼之间遮挡及鸡蛋粘连等复杂场景下的鸡只与鸡蛋自动化识别与计数问题近年来,深度学习技术发展迅速,目标检测网络已在畜禽个体识别研究领域表现出优越性能10-12GEFFEN等13 利用FasterR-CNN网络实现笼养模式下母鸡的检测和计数工作,准确率为8 9.6%,平均绝对误差为每笼2.5只母鸡。LI等14 应用改进农3022023年机业报学械后网络QueryPNet检测和分割大鹅,大鹅检测与分割的准确率均为96.3%。JIANG等15 通过改进的YOLOv7网络实现实时监控麻鸭数量,平均精度均值(Meanaverageprecision,mAP)为97.57%。上述模型检测性能良好,但模型参数量较大,难以部署到GPU资源匮乏的边缘计算设备进行实时检测。面对轻简化设备的应用需求,模型小、检测速度快的轻量级目标检测网络优势较为突出16-18 。其中应用较为广泛的轻量级网络有SSD与YOLO微型系列网络。刘慧等19 应用改进的SSD网络实时检测田间行人,当交并比阈值为0.4时,模型mAP与检测速度分别为97.46%和6 2.5f/s。易诗等2 0 1提出一种基于YOLOv3-tiny的适宜于嵌人式系统部署的野鸡识别方法,模型mAP和检测速度分别为86.5%与6 2 f/s。ZH ENG 等2 1 使用改进的YOLOv5模型快速检测麻鸭,并对比了基于不同标注范围(鸭头和鸭身)的模型检测性能,结果表明,基于鸭头标注的模型检测性能更好,准确率与检测速度分别为99.2 9%和2 6 9.6 8 f/s。综上,轻量化网络的高实时性、少参数量和易部署等特点为实际场景下的应用研发提供了可能。基于此,针对立体笼养模式下巡检过程中存在的光线不均、鸡只易被遮挡和鸡蛋粘连等问题,本研究提出基于YOLOv7t i n y-D O 网络的笼养鸡/蛋自动化识别与分笼计数方法(Counting indifferentcages,CDC)。首先,在高效聚合层网络内构建深度过参数化深度卷积层提取目标深层特征,在特征融合模块引人坐标注意力机制提高模型捕获鸡只和鸡蛋空间位置信息的能力;然后,设计和发展自动化分笼计数方法;最后,将其部署到边缘计算设备进行实地测试验证,以期为规模化蛋鸡养殖智能化管理提供思路。1材料与方法1.1试验平台搭建为实现自动化数据采集和减少人工参与以保证数据的客观性,设计并搭建了鸡只视频数据采集平台,示意图如图1所示。该平台由视频采集单元、边缘计算单元、数据展示单元与电力供应单元组成。其中视频采集单元选用低成本JRWT1412型无畸变摄像头,内置RCB传感器(分辨率为6 40 像素480像素,顿率为30 f/s);边缘计算单元采用NVIDIAJetsonAGXXavier开发者套件,内置512 个NVIDIA CUDA Cores、6 4个 Tensor Cores、8 块 CarmelARM CPU、2 个 DL Accelerator 和 1 个 VisionAccelerator深度学习加速器引擎,以支持视频数据采集、模型部署与算法推理等功能的实现;数据展示单元采用11.6 寸IPS高清触摸屏,用以展示摄像头捕获的视频图像;电力供应单元采用便携式移动电源支撑巡检机器人运转,输出电压为48 V0.47 m8600.48m0.62m810图1视频数据采集平台Fig.1Collection platform of video data1.二维码2.蛋网3.食槽4.鸡笼5.视频采集单元6.数据展示单元7.边缘计算单元8.USB接口99.电力供应单元10.巡检机器人1.2数据获取与预处理本研究所有数据均采集于北京市华都峪口禽业有限责任公司第3场阶梯式鸡舍。采集对象为中层30笼鸡,品种为京粉1号蛋鸡。采集时间为2 0 2 1年10 月9 13日与2 0 2 2 年3月2 8 日4月14日06:0018:00,期间每隔2 h采集1批次视频,单个视频时长约2.5min,从中选取鸡头未被食槽完全遮挡的视频进行试验。数据采集流程如下:首先,在食槽特定位置张贴二维码作为鸡笼编号;其次,在相机镜头距鸡笼水平距离0.6 2 m处运行巡检机器人,以速度0.1m/s沿直线前进,行走过程中镜头距二维码与鸡笼的水平距离基本保持不变(误差小于0.005m);最后,获取的鸡只视频数据(分辨率为640像素48 0 像素)通过USB接口传输至边缘计算单元,在数据展示单元显示并保存到本地磁盘。共拍摄视频37 8 min,格式为MP4,率为30 f/s。采用OpenCV图像处理库每隔10 顿截取一幅图像,从中筛选出2 146 幅图像(分辨率为6 40 像素480像素)作为数据源,格式为JPG。由于笼养鸡舍内采用暖光灯照明,且鸡只灵活性较高,因此本文采集图像大多具有以下1种或多种特点:鸡只被铁丝或食槽遮挡(图2 a红色框)。鸡只快速移动产生运动模糊(图2 b蓝色框)。多枚鸡蛋粘连在一起(图2 c黄色框)。两个暖光灯中间位置光线昏暗(图2 d绿色框)。由于笼养模式下养殖密度大,鸡笼边界不易区分,本研究通过检测鸡头识别鸡只个体,检测二维码303赵春江等:基于改进YOLOv7的笼养鸡/蛋自动识别与计数方法第7 期(a)局部遮挡(b)运动模糊(c)鸡蛋粘连(d)光线昏暗图2不同场景下图像示例Fig.2Examples of images in different scenes区分不同鸡笼。在人工可识别情况下,采用Labellmg标注鸡只头部(head)、鸡蛋(egg)与二维码(q r c o d e),并生成包含目标类别、坐标及图像像素信息的.xml文件,最终得到2 146 幅图像和对应标注文件用于训练与测试网络模型性能。为增强模型泛化性和鲁棒性,在训练过程中应用在线数据增强,主要方法包括色调变换、仿射变换、Mosaic增强与Mixup增强,如图3所示。数据集按照比例7:2:1随机划分为训练集、验证集和测试集,对应图像分别为1501、430、2 15 幅。(a)原图(b)色调变换(c)仿射变换(d)Mosaic增强(e)Mixup增强图3在线数据增强Fig.3Online data augmentation1.3笼养鸡/蛋识别模型1.3.1YOLOv7-tiny网络模型结构YOLOv7-tiny22是YOLO系列的轻量化模型之一,该网络在公开数据集MicrosoftCoCoDataset上取得较高的精度与较快的速度。YOLOv7-tiny整个网络结构可分为Input、Ba c k b o n e 与Head共3部分,网络结构如图4所示。Input主要对输人数据进行预处理,对于输入的任意尺寸图像被自适应放缩为模型适用分辨率(6 40 像素48 0 像素),采用动态标签分配策略确定正负样本,并对数据进行Mosaic与Mixup增强Backbone由卷积模块、高效层聚合网络(Efficient layer aggregationnetwork,ELAN)与MP模块构成。卷积模块包含卷积层、数据归一化层与激活函数3部分,激活函数采用Sigmoid加权线性单元(Si g mo i d-w e i g h t e d l i n e a r u n i t,Si LU)2 3,其具有无上界、有下界、平滑与非单调等特点。ELAN通过控制最短与最长的梯度路径,使网络在不破坏原有梯度路径的情况下不断增强网络的特征学习能力,提高模型的鲁棒性。MP模块采用两个不同分支分别进行下采样操作,二者采用残差连接,以增强模型的特征提取能力。Head主要包含SPPCSPC、ELA N与Detect3个模块。SPPCSPC由金字塔池化结构(Spatialpyramidpooling,SPP)24与跨阶段区域网络(Cross stagepartial,CSP)2 5 组成,CSP将特征拆分为两部分,特征1经过SPP池化操作后与特征2 融合,获取4个不同尺寸(1、5、9、13)的感受野,以便Detect层检测不同大小的目标。Detect层输出目标边界框坐标、置信度和类别信息。原始YOLOv7-tiny对粘连的鸡蛋和光线较暗处目标检测性能较差,为提高模型整体检测精度,满足笼养鸡舍复杂环境的应用需求,本研究在YOLOv7-tiny网络的基础上,首先将SiLU激活函数替换为指数线性单元(Exponentiallinearunit,ELU),减少模型训练时间和提高目标检测网络的整体性能。其次在ELAN结构中采用深度过参数化深度卷积层(Depthwise over-parameterized depthwise convolutionallayer,DO-DConv)【2 6 提取目标深层特征,以提升光线较暗条件下目标的识别能力。最后在Head的第2、4层引人坐标注意力机制(Coordateattentionmechanism,CoordAtt)2 7】,提取特征图像中目标空间农2023年304机业报学械InputBackboneHead20 x20 x512SPPCSPC640 x640 x3CBSCBS ELANMPELANMPELANMPELAN40 x40 x25680 x80 x128Concat ELANCBSCBM20 x20 x24CBSsampleCBSELAN(1.1)(3,1)(3,2)ConvBNSiLUCBSConcatCBSCBSConcatELANCBSCBM40 x40 x24UpsampleCBSCBSCBSCBSConcatCBSELANCBSConcatELANCBSCBMCBS80 x80 x24MaxpoolCBSMaxpoolConcatMPCBSCBSMaxpoolConcatCBSCBSResize(nearest)MaxpoolUpsampleSPPCSPCConcatCBSCBMConvBNSigmodCBS图4YOLOv7-tiny网络结构Fig.4Network structure of YOLOv7-tiny位置信息。1.3.2激活函数深度学习中激活函数是将神经网络非线性化,激发隐藏结点,此类函数通常具有连续且可微等特点。SiLU激活函数虽然满足以上要求,但仅在深度神经网络的隐藏层中可用2 8 。因此,本研究引入ELU激活函数。图5为ELU与SiLU激活函数对比曲线图,可以看出,ELU函数在定义域内均连续且可微,满足激活函数的基本要求。当输入特征向量x大于0 时,输出为x本身,减轻了梯度弥散问题(导数为1);当x小于0 时,采用指数函数连接,避免陷人局部最优。ELU函数输出均值为O,与SiLU函数相比,降低了模型计算复杂度,且单侧饱和,使模型收敛效果更好1.3.3改进的高效层聚合网络目标检测模型中特征提取是后续特征融合的基础数据来源。YOLOv7-tiny网络中ELAN采用常规卷积提取目标特征,但实际鸡舍环境较为复杂,常10F-ELU1.08一SiLU110.860.640.4-ELU(Derivative)-SiLU(Derivative)20.200-10-50510-10-50510(a)原函数(b)导数图5激活函数ELU与SiLU的对比图Fig.5Comparison diagrams of activation functionsbetween ELU and SiLU规卷积操作难以挖掘目标深层次特征。因此,本研究将ELAN模块内的常规卷积层替换为深度卷积层(D e p t h w i s e c o n v o l u t i o n a l l a y e r,D Co n v)以减少模型参数量,并在其基础上添加过参数化组件(深度卷积)构建深度过参数化深度卷积层,改进后的ELAN结构如图6 所示。与常规卷积不同,DO-DConv模块不仅能够通过增加网络深度提高网络的表达能力,而且采用多层复合线性操作,使其在推理阶段折305赵春江等:基于改进YOLOv7的笼养鸡/蛋自动识别与计数方法第7 期HCBSDO-DConvDO-DConvELANConcatCBSCBS图6改进后的ELAN结构Fig.6Structure of improved efficient layer aggregationnetwork叠为单层形式,从而减少计算量。图7 为深度过参数化深度卷积层结构,可以看出,DOD C o n v 模块是由深度卷积内核DeN)。其计算流程如下:首先将深度卷积算子。应用于深度卷积内核D和输人特征P(PR(MM)Cca),经过深度卷积计算生成特征P=D。P;然后再将。应用于深度卷积内核W与P生成特征O=W。P;最后可将深度卷积过参数化深度卷积的输出表示为O=W。(D。P)。M、N为输人特征的空间维度,Cin、Cou分别为输入和输出特征的通道数,Dmul为深度卷积的深度乘数。DmulDMxNDmulCMxNPWCnDmulDmulP=DoPDCmulO=WoP图7深度过参数化深度卷积层结构Fig.7Structure of depthwise over-parameterizeddepthwise convolutional layer1.3.4坐标注意力机制为了进一步提升模型对鸡只和鸡蛋空间位置信息的捕获能力,本研究在网络Head端引人坐标注意力机制。CoordAtt通过精确的位置信息对通道关系和长期依赖性进行编码,形成一个对方向和位置敏感的特征图用于增强目标的特征表示。图8 为CoordAtt编码过程,总体可分为坐标信息嵌人与坐标注意力生成两部分。Input坐标信息嵌人ResidualCOH&W1111XAvg PoolY Avg Pool-C&H&IC&1&WConcat+Conv2dC/r&1&(W+H)11111BatchNorm+Non-linearC/r1&(W+H)111C&H&IConv2dConv2dC&1&W1111C&H1SigmoidSogmidC&1&W1111111Re-weightC&H&W11Output坐标注意力生成图:坐标注意力机制Fig.8Coordinate attention mechanism由图8 坐标信息嵌入模块可知,对于输人特征XeRcIx,采用尺寸为(H,1)和(1,W)的池化卷积核分别沿水平坐标与垂直坐标对每个通道进行编码,计算平均池化后,第c个通道上高度h和宽度w的编码可表示为z(h)与z(w),计算公式为1X.(h,i)hh(1)W0iW1X.(j,w)(2)H0H式中X,(h,i)一一高度h在第c个通道的分量Xj,w)一一宽度w在第c个通道的分量这种转换使注意力机制模块可以捕捉空间方向的长期依赖关系,并保存沿着另一空间方向特征的精确位置信息。经过信息嵌人模块的变换后,将两个方向的坐标信息进行拼接,然后输入11卷积函数F,中进行变换操作,计算公式为f=8(F,(2,2)(3)式中沿空间维度的串联操作线性激活函数对空间信息在水平与垂直方向进行编码的中间特征将f沿水平与垂直方向分解为张量eR-H和=R,然后分别采用11卷积F,和F.将与变换为同输人X具有相同通道数的张量,变换过程为g=0(F,(f)(4)=g(F(f)(5)式中Sigmoid激活函数hg沿水平方向特征张量g沿垂直方向特征张量维码检测框左侧上顶点横坐标2023年农306机业报学械由于计算耗时较大,为了加快运算速度,采用下采样比r减少f通道数。综上,对于输入X的第c个通道上高度i和宽度j的特征X。(i,j),经过坐标注意力模块的输出可表示为y(ij)=X(i,j)xg(i)g(j)(6)式中y。(i,j)一嵌人坐标注意力模块后的输出结果g(i)第个通道上水平方向的注意力权重g(i)第个通道上垂直方向的注意力权重1.4分笼计数法ALPATOV等2 9 提出车辆检测与道路标线检测算法,并根据道路标线算法划分车道从而实现多通道车辆计数,结果表明,5个通道平均计数准确率为98.9%。基于此,本研究通过检测二维码获取检测框坐标和存储信息区分不同鸡笼,并设计分笼计数法(Counting in different cages,CDC)实现鸡只与鸡蛋自动化计数。该算法可分为计数感兴趣区域(Co u n t i n g i n r e g i o n o f i n t e r e s t,CRo l)设置与自动化分笼计数两个阶段。CRoI设置流程如下:机器运动过程中,采用YOLOv7-tiny-DO检测图像中目标,当识别到2 个二维码时,根据其检测框坐标分别计算待测图像中鸡只与鸡蛋计数区域的横、纵坐标,并以此为边界划分目标CRoI,如图9a(红色框表示鸡只CRol,绿色框为鸡蛋CRol),计算过程为min=min(xg,xg+1)X=max(xg,xg+1)max.headY=0minhead(y,+yg+1)/2+40maxegg=y4minegg(y,+y4+1)/2+190max(q=0,1,.,29)(7)式中一二维码存储的鸡笼编号维码检测侧框左侧下顶点纵座标9min,Xmax计数区域横坐标取值范围headhead鸡只计数区域的纵坐标取值minmax范围eggegg鸡蛋计数区域的纵坐标取值minmax范围值得注意的是,若未识别到2 个二维码,则不进行CRol设置操作,跳至下一顿。选定CRoI后进行自动化分笼计数。过程如下:首先采用pyzbar函数识别二维码信息,选择较小数(a)修正前(b)修正后图9计数感兴趣区域Fig.9Counting in regions of interest值作为待测鸡笼编号q;然后获取当前顿F(k,q)所有鸡只与鸡蛋检测框的中心点坐标(x;,y),计算其在CRol范围内的目标个数观测值F(k,q)n u m,计算过程为nF(k,q)C(k,q)(xim)(8)numi=1其中1(x;,y:)ECRol)C(k,q)(xi.yi)0(xi,y,)&CRol)式中k-帧序号最后,当二维码信息发生变化时,统计鸡笼编号q所有视频顿的观测值,计算其均值作为目标数量预测值P(k,q),计算过程为P(k,g)=mean(F(ka,q).um)(9)式中一小数向上取整计算符号mean所有帧预测值的均值实际计数过程中,巡检机器人移动时获取的计数感兴趣区域与实际鸡笼区域相比误差较大,导致分笼计数错误(图9a绿色虚线框)。为减小运动过程中计数区域的误差,本研究采用单目相机标定模型30 对CRoI进行校正,实现CRoI在像素坐标与世界坐标之间的相互转换,坐标变换过程为(i,-c,)z)WX(i,-c,)2)(10)WW=Z1W.+CX22(11)W1+CZ式中图像中心点坐标(i,i,)一鸡笼边界坐标镜头到二维码的水平距离22镜头到鸡笼的水平距离(W,W,W.)(i,i,)转换后的世界坐标(l,l,)(i,i)纠正后坐标f、f,横、纵像素焦距307赵春江等:基于改进YOLOv7的笼养鸡/蛋自动识别与计数方法第7 期1.5模型训练1.5.1训练环境模型训练硬件环境主要包括Intel(R)C o r e(T M)i 9-10 90 0 X处理器,主频3.7 0 GHz,运行内存24 GB,GPU 型号为 Titan RTX,操作系统为 Ubantu18.04。软件环境为Python3.7语言版本、PyTorch1.7框架、OpenCV4.3.5图像处理库与pyzbar0.1.8二维码识别库。1.5.2参数设置网络训练参数设置如下:输入图像尺寸为6 40 像素48 0 像素,批量大小为32,初始学习率设置为0.001。采用随机梯度下降(Stochasticgradientdescent,SGD)方法优化模型,动量因子为0.937,权重衰减因子为0.0 0 0 5。模型共训练30 0 轮,迭代1个轮次保存一次模型权重,最终选择识别精度最高的模型。1.5.3评价指标采用精确率(Precision,P)、召回率(Recall,R)、平均精确率(Averageprecision,A P)、F1值、模型内存占用量(Modelsize)和率(Framesperseconds,FPS)来评价模型性能,采用平均绝对误差(Meanabsolute error,MAE)和平均准确率(Mean accuracyrate,MAR)评估分笼计数算法。2结果与分析2.1不同检测模型性能对比为验证YOLOv7-tiny-DO模型对鸡只与鸡蛋的识别能力,本研究选择主流目标检测网络FasterR-CNN、SSD、YO LO v 4-t i n y、YO LO v 5n、YO LOv7-tiny与YOLOv7-tiny-DO进行对比试验。训练过程中,所有网络使用相同训练集,并应用2 15幅测试集图像对模型性能进行综合评估。经完整测试后,不同模型检测结果如表1所示,表中APo.5表示交并比为0.5时的平均精确率。从表1可以看出,与FasterR-CNN、SSD、YO LO v 4-t i n y、YO LO v 5n和YOLOv7-tiny相比,YOLOv7-tiny-DO的F1值优势较为突出,鸡只的F1值为97.0%,分别高于以上模型2 1.0、4.0、8.0、1.5、1.7 个百分点;鸡蛋的F1值为98.4%,比其他模型分别高31.4、2 5.4、6.4、4.4、0.7 个百分点。表1不同检测网络对比Tab.1Comparison of differentdetection networksP/%R/%APo.5/%F1值/%模型内存占率/模型鸡