Detection method of citrus in nighttime environment combined with active light source and improved YOLOv5s model
-
摘要:目的
解决夜间环境下遮挡和较小柑橘难以准确识别的问题,实现采摘机器人全天候智能化作业。
方法提出一种结合主动光源的夜间柑橘识别方法。首先,通过分析主动光源下颜色特征不同的夜间柑橘图像,选择最佳的光源色并进行图像采集。然后,提出一种夜间柑橘检测模型BI-YOLOv5s,该模型采用双向特征金字塔网络(Bi-FPN)进行多尺度交叉连接和加权特征融合,提高对遮挡和较小果实的识别能力;引入Coordinate attention (CA)注意力机制模块,进一步加强对目标位置信息的提取;采用融入Transformer结构的C3TR模块,在减少计算量的同时更好地提取全局信息。
结果本文提出的BI-YOLOv5s模型在测试集上的精准率、召回率、平均准确率分别为93.4%、92.2%和97.1%,相比YOLOv5s模型分别提升了3.2、1.5和2.3个百分点。在所采用的光源色环境下,模型对夜间柑橘识别的正确率为95.3%,相比白光环境下提高了10.4个百分点。
结论本文提出的方法对夜间环境下遮挡和小目标柑橘的识别具有较高的准确性,可为夜间果蔬智能化采摘的视觉精准识别提供技术支持。
Abstract:ObjectiveTo solve the problems of occlusion and difficult identification of small citrus in the nighttime environment and redlize the all-weather intelligent operation of picking robots.
MethodA nighttime citrus identification method combined with active light sources was proposed in this paper. Firstly, the best illuminant color was selected by analyzing nighttime citrus images with different color features under active light sources. Then, a nighttime citrus detection model named BI-YOLOv5s was proposed with bi-directional feature pyramid network (Bi-FPN) for multi-scale cross connection and weighted feature fusion to improve the detection performance of occlusion and small citruses. The coordinate attention (CA) module with attention mechanism was introduced to further strengthen the extraction of target location information. Meanwhile, the C3TR module integrated with a Transformer structure was adopted to reduce the computing amount and better extract global information.
ResultThe precision, recall and average precision of the citrus detection using the BI-YOLOv5s on test set were 93.4%, 92.2% and 97.1%, respectively, with 3.2, 1.5 and 2.3 percent higher than the YOLOv5s, respectively. Moreover, the identification accuracy of the proposed model with an active light source for nighttime citrus was 95.3%, with 10.4 percent higher than the model in the white light environment.
ConclusionThe proposed method in this paper has high accuracy for the identification of occlusion and small target citrus in the nighttime environment, and it can provide technical support for nighttime visual identification of intelligent picking of fruits and vegetables.
-
奶牛体尺能够反映其生长发育状况、繁殖能力、产奶能力及潜在经济价值等重要信息[1-3]。长期以来,我国奶牛体尺测量主要采用传统的接触式测量,由经验丰富的工作人员利用卡尺、皮尺、卷尺、测杖等工具测量或者通过人眼估算,存在复杂繁琐、测量效率低、易受环境和测量人员主观因素影响等问题[4]。
随着机器视觉技术的快速发展,家禽家畜的体尺测量有更多的解决方案,主要可分为基于二维图像的体尺测量和基于三维点云的体尺测量2种方式[4]。在基于二维图像的体尺测量方面,Tasdemir等[5]拍摄荷斯坦奶牛顶部和侧面RGB图像,采用直接线性变化法标定相机,利用图像分析软件基于点云计算奶牛体尺,该方法测得奶牛体高、臀高、体长、臀宽准确率分别为97.72%、98.00%、97.89%、95.25%。刘同海等[6]在饮水器正上方采集120日龄猪只的体尺图像,将猪体目标从二值图像中分割,实时提取体尺测点,该方法测得猪只体长的平均相对误差为0.92%。薛广顺等[7]利用Logitech Webcam Pro 9000摄像机采集牛体图像,采用贝叶斯决策皮肤检测法提取牛体,基于尺度不变特征变换(Scale-invariant feature transform,SIFT)算法实现特征点匹配,利用双目相机成像模型结合相机标定参数获取牛体三维点云。张晨光等[8]采用双目视觉技术进行奶牛图像采集,提取奶牛背部轮廓与侧面轮廓,通过SIFT算法,结合相机标定参数获取特征点空间坐标,最终利用欧式距离计算奶牛体高、体长和体宽。在基于三维点云的体尺测量方面,赵建敏等[9]使用双目相机采集体尺图像,利用YOLOv5检测牛体及牛头、躯干、牛蹄、牛尻、腿关节等特征部位,基于改进的Canny边缘检测算法及曲线拟合算法提取牛体局部边缘轮廓,通过U弦长得到体尺测量特征点,最终完成体高、体长、体斜长等体尺测量,该方法平均体尺测量误差为2.4%。Huang等[10]利用IFM O3D303相机获取秦川牛侧面点云数据,采用KD-Network训练牛体轮廓提取模型,通过快速点特征直方图获得特征表面中心完成体尺测量,该方法最大测量误差为2.0%。初梦苑等[11]使用Kinect DK深度相机拍摄奶牛侧面与俯视图像,基于视频错帧补全奶牛侧面点云,采用迭代最近点算法配准奶牛侧面点云与俯视点云,基于几何特征测量奶牛体直长、肩宽、臀宽等7种体尺参数。Yang等[12]使用智能手机环绕奶牛拍摄图像,通过运动结构法构造三维点云模型,根据形态特征自动标记体尺测量点,该方法体尺测量平均相对误差小于4.67%。基于三维点云的体尺测量方法提供了精确的测量,但计算量大、测量过程复杂、测量成本高,并且需要特定的环境条件,在规模化养殖场实现其快速准确体尺测量尚需进一步验证。相比之下,使用单个深度相机进行体尺测量具有计算负担低、测量设备部署简单和设备成本低等优点,更适合家禽家畜体尺参数的快速测量。
测量关键点的快速准确检测是奶牛体尺快速准确测量的前提。Yin等[13]采用对猪只身体部位平均分割的方法定位测量关键点,并将点云姿态标准化,实现了体尺的自动测量。Hu等[14]通过PointNet++对不同姿势的猪只点云进行分割,根据几何特征定位猪体测量关键点,该方法最大体尺测量误差为5.26%。陆明洲等[15]利用图像处理技术获取山羊体尺关键点,测量最大相对误差为5.5%。本研究基于YOLOv8n-Pose快速准确获取测量关键点,利用双目立体视觉模型获取深度信息,完成奶牛体尺的快速准确测量。
1. 数据采集及数据集制作
1.1 数据采集
奶牛双目图像数据采集自陕西省咸阳市杨陵区官村奶牛养殖场与杨凌科元克隆股份有限公司奶牛养殖场,采集时间为2022年11月至2023年4月,包括奶牛侧面双目图像及视频数据,采用ZED 2i相机采集奶牛侧面图像。图像数据的图像分辨率为2 208像素×1 242像素,用于构建目标检测及关键点检测数据集;双目视频数据的视频分辨率为4 416像素×1 242像素,帧率为15 帧/s,用于最终体尺测量。图1为数据采集及数据集构建示意图,图1a为数据采集平台示意图,ZED 2i双目立体相机固定于相机支架上,距离地面约1.1 m,将相机支架置于奶牛侧面2~3 m处,拍摄奶牛侧面图像或采集视频数据,在采集过程中避免阳光直射相机,减少阳光直射对立体匹配的影响;图1b为通过采集平台采集单幅奶牛侧面图像,共采集1 895幅图像,按8∶2划分训练集与验证集,构建奶牛目标检测及关键点检测数据集;图1c为视频数据采集及体尺测量数据集构建示意图,将图1a所示的采集平台置于奶牛挤奶通道外2.5 m处采集奶牛在挤奶通道的侧面视频,并将采集的视频进行分帧,以2帧/s构建体尺测量数据集。
1.2 体尺测量标准与数据标注
本研究涉及奶牛体斜长、体高、臀高和尻长4项体尺测量。图2为奶牛体尺测量标准的示意图,奶牛体斜长近似为坐骨端(C)到肩端(D)的直线距离,体高为鬐甲部最高点(A)到前蹄与地面交点(E1)的直线距离,臀高为臀部最高点(B)到后蹄与地面交点(E2)的直线距离,尻长为坐骨端(C)到尻尖(F)的直线距离。在构建的目标检测及关键点检测数据集中标注鬐甲部、尻尖、坐骨端、肩端、蹄部等8个测量关键点。
图 2 奶牛直线体尺测量标准A:鬐甲部最高点,B:臀部最高点,C:坐骨端,D:肩端,E1、E2:前、后蹄与地面的交点,F:尻尖;G:眼睛Figure 2. Standard for linear body size measurement of dairy cowA: The highest point of wither; B: The highest point of hip; C: Ischial tuberosity; D: Point of shoulder; E1, E2: Contact points of the front and rear hooves with the ground; F: Hip; G: Eye1.3 真实体尺数据获取
奶牛体尺真实数据的准确获取是试验测试的前提,但由于手动测量体尺依赖于人工经验,存在较大的偶然误差与粗大误差,Hu等[14]采用PointNet++分割奶牛点云后获取奶牛体尺,与手动测量相比,体长、体高的平均偏差仅为2.34%,说明点云数据测量与手动测量相差少。Tran等[16]和Deris等[17]证实了ZED相机在点云三维重建与测量方面具有高精度的优势。因此,本研究采用ZED 2i相机采集奶牛侧面点云数据并依据手动测量的方法获取体尺的真实值。
2. 基于CREStereo和YOLOv8n-Pose的体尺测量
2.1 基于CREStereo立体匹配的深度估计网络
2.1.1 小孔成像模型与视差计算
小孔成像模型是常用的相机模型,双目相机基于小孔成像模型,利用2个相机从不同角度同时拍摄,通过标定参数进行畸变矫正、极限矫正,根据拍摄点在左右图像中成像位置的差异,确定点在空间中的位置。根据文献[18],设计双目相机成像模型(图3),Ol和Or分别是双目立体相机左右相机的光心,ol和or分别是左右相机光轴与成像平面的交点,假设两成像平面宽度为W,成像平面与相机之间的距离为焦距f,P是三维空间中的一个点,pl和pr是点P在左右相机成像平面上的像点,xl和xr是pl和pr的x坐标,z为P到左右相机所在直线的距离,根据相似三角形可得公式(1):
图 3 双目相机成像模型Ol:左相机光心;Or:右相机光心;ol:左相机光轴与成像平面交点;or:右相机光轴与成像平面交点;W:成像平面宽度;f:相机焦距;P:三维空间中某点;pl和pr为点P在左右相机成像平面上的像点;xl和xr是pl和pr的x坐标;z为P到左右相机的距离;b:左右相机基线距离Figure 3. Binocular camera imaging modelOl: Optical center of the left camera; Or: Optical center of the right camera; ol: Intersection point of the left camera’s optical axis with the imaging plane; or: Intersection point of the right camera’s optical axis with the imaging plane; W: Width of the imaging plane; f: Camera focal length; P: A point in three-dimensional space; pl and pr: Image points of P on the imaging planes of the left and right cameras; xl and xr: x-coordinates of pl and pr; z: Distance from P to the cameras; b: Baseline distance between the left and right cameras$$ \dfrac{{z - f}}{z} = \dfrac{{b - \left( {{x_{\mathrm{l}}} - \dfrac{1}{2}W} \right) - \left( {\dfrac{1}{2}W - {x_{\mathrm{r}}}} \right)}}{b}, $$ (1) 式中,b为左右相机的基线距离。
令xl−xr为视差(d),根据公式(1),则点P的深度为:
$$ z = {{bf} \mathord{\left/ {\vphantom {{bf} d}} \right. } d}。 $$ (2) 根据视差值(d),结合双目立体相机标定参数基线(b)和焦距(f)推导每个像素点在三维空间中的深度,进而推导出三维空间坐标。
2.1.2 CREStereo立体匹配
立体匹配是从一对图像中推断每个像素的深度信息。传统的立体匹配算法是将立体匹配问题转化为在左右两幅图像中寻找最相似的像素点的过程。相比传统立体匹配算法,基于深度学习的立体匹配方法具有更高的精度和更好的鲁棒性,能够处理复杂的场景[19]。因此,本研究采用CREStereo算法[20]对奶牛双目图像进行立体匹配获取视差值。图4为CREStereo算法立体匹配推理过程,推理网络采用堆叠级联架构,在保证鲁棒性的基础下,保留高分辨率输入的细节,利用循环更新模块(Recurrent update module,RUM)处理实际应用中的非理想矫正情况,尽可能地缓解下采样过程中区域的特征退化。RUM采用循环架构,逐步更新和细化深度图,通过多次迭代整合上下文信息,提高视差计算的整体精度。
2.2 基于YOLOv8n-Pose的测量关键点检测网络
2.2.1 YOLOv8n-Pose估计网络
本文基于YOLOv8n-Pose估计网络、SimAM注意力机制[21]及CoordConv卷积[22]改进网络,提出适用于奶牛关键点检测的姿态估计模型。其中YOLOv8n-Pose网络是基于YOLOv8及YOLO-Pose估计网络而提出的多任务联合学习网络,能够同时实现目标分类及姿态估计任务。图5为改进的YOLOv8n-Pose估计网络。
2.2.2 SimAM注意力机制
SimAM注意力模块是Yang等[21]基于神经科学理论,受人脑注意力机制的启发,提出的一种3D注意力模块,SimAM注意力机制通过构建一个优化能量函数来挖掘神经元的重要性以计算注意力权重,公式(3)为能量函数(et):
$$\begin{split} {e_t}\left( {{w_t},{b_t},y,{x_i}} \right) = & \dfrac{1}{{M - 1}} \displaystyle\sum \limits_{i = 1}^{M - 1} {\left[ { - 1 - \left( {{w_t}{x_i} + {b_t}} \right)} \right]^2} +\\ & {\left[ { - 1 - \left( {{w_t}t + {b_t}} \right)} \right]^2} + \lambda {w_t}^2\text{,} \end{split} $$ (3) 式中,t为输入特征的目标神经元;λ为正则化系数;i为空间维度索引号;xi为其他神经元;M为通道上所有神经元的个数;y为标签值,用于确定该神经元是否为重要神经元;wt为权重;bt为偏置。根据公式(3),推导最小能量函数如公式(4):
$$ e_t^* = \dfrac{{4\left( { {{\hat \sigma ^2}} + \lambda } \right)}}{{{{\left( {t - \hat u} \right)}^2} + 2{{\hat \sigma }^2} + 2\lambda }}, $$ (4) 式中,û为输入特征t的均值,
${\hat \sigma ^2}$ 为输入特征t的方差。由公式(4)可知,能量越低,特征相关的神经元(t)与周围神经元区别越大,重要程度越高,则神经元重要性为1/et*。
本研究增加SimAM,位置如图5 Backbone部分所示,SimAM注意力模块嵌入在C2f与SPPF之间,以观察整个Backbone中的重要神经元,增强重要特征,抑制其他神经元,从而聚焦于更有利于奶牛关键点检测的特征表示。
2.2.3 CoordConv卷积
CoordConv卷积是由Liu等[22]开发的卷积方法,旨在提高神经网络对坐标信息的感知能力。图6为CoordConv结构,在传统的卷积神经网络中,通过1个拼接操作在通道维度上引入2个额外的通道,这2个通道分别包含x坐标(j)和y坐标(i)的信息。CoordConv显著提升了模型对空间布局的理解能力,使得网络能够更有效地处理具有明确空间关系的任务。在本研究中,参考PP-YOLO[23]网络,如图5 Head部分所示,在YOLOv8网络的Head部分引入2层卷积核大小为1×1的CoordConv卷积层,旨在增强网络对奶牛空间坐标的感知,从而提升目标检测及关键点检测的性能。
图 6 CoordConv结构h:输入特征的高度;w:输入特征的宽度;c:输入特征图通道数;i:特征的x坐标信息;j:特征的y坐标信息;h′:输出特征的高度;w′:输出特征的宽度;c′:输出特征图通道数Figure 6. CoordConv structureh: Height of input features; w: Width of input features; c: Number of channels in input feature map; i: x-coordinate information of features; j: y-coordinate information of features; h′: Height of output features; w′: Width of output features; c′: Number of channels in output feature map2.3 融合立体匹配与关键点检测的奶牛体尺测量
本研究中,奶牛直线体尺自动测量算法分为以下5个步骤:
1)利用双目相机拍摄奶牛侧面图像,并进行立体校正;
2)采用CREStereo算法对奶牛双目图像立体匹配,并计算左目图像深度信息;
3)采用改进YOLOv8n-Pose检测奶牛左目图像中的关键点,并分别计算每头奶牛目标检测及关键点检测置信度,优先选择关键点检测置信度高的奶牛作为最优体尺测量目标;
4)结合双目相机参数与左目图像深度信息,将奶牛关键点映射至三维空间中;
5)完成奶牛体斜长、体高、臀高和尻长指标的测量。
为计算奶牛体尺,需将关键点像素坐标映射到相机坐标系或世界坐标系下,采用相机坐标系作为三维空间坐标系,以减少因相机标定不准确及坐标变换对精度的影响。假设由步骤3)改进的YOLOv8n-Pose模型进行奶牛关键点检测后,奶牛鬐甲部最高点像素坐标为(uA, vA),臀部为(uB, vB),坐骨端为(uC, vC),肩端为(uD, vD),奶牛前、后蹄与地面交点为(uE1, vE1)和(uE2, vE2),尻尖为(uF, vF)。根据公式(2)得到对应的相机坐标为公式(5):
$$ \left\{ {\begin{array}{*{20}{c}} {{X'_{\mathrm{C}}} = \left( {u - {c_x}} \right) \times {Z'_{\mathrm{C}}}/{f_x}} \\ {{Y'_{\mathrm{C}}} = \left( {v - {c_y}} \right) \times {Z'_{\mathrm{C}}}/{f_y}} \end{array}} \right., $$ (5) 式中,(u, v)为图像坐标系的像素坐标,(
${X'_{\mathrm{C}}} $ ,${Y'_{\mathrm{C}}} $ ,${Z'_{\mathrm{C}}} $ )为像素坐标对应相机坐标系的坐标,fx为相机在水平方向的焦距,fy为相机在垂直方向的焦距。关键点像素坐标经公式(5),可映射到三维坐标系中,根据欧氏距离计算奶牛体斜长如公式(6):
$$ {l}_{体斜长}=\sqrt{{\left({X}_{\rm{C}}-{X}_{\rm{D}}\right)}^{2}+{\left({Y}_{\rm{C}}-{Y}_{\rm{D}}\right)}^{2}+{\left({Z}_{\rm{C}}-{Z}_{\rm{D}}\right)}^{2}} \text{,} $$ (6) 式中,(XC, YC, ZC)为坐骨端坐标,(XD, YD, ZD)为肩端坐标。
奶牛体高计算方法为鬐甲部最高点到地面距离,具体计算方式如公式(7):
$$ {h}_{体高}=\sqrt{{\left({X}_{\rm{A}}-{X}_{{\rm{E}}1}\right)}^{2}+{\left({Y}_{\rm{A}}-{Y}_{{\rm{E}}1}\right)}^{2}+{\left({Z}_{\rm{A}}-{Z}_{{\rm{E}}1}\right)}^{2}} \text{,} $$ (7) 式中,(XA, YA, ZA)为鬐甲部最高点坐标,(XE1, YE1, ZE1)为蹄部与地面交点坐标。
臀高为奶牛尻尖到地面的垂直距离,具体计算方式如公式(8):
$$ {h}_{臀高}=\sqrt{{\left({X}_{\rm{B}}-{X}_{{\rm{E}}2}\right)}^{2}+{\left({Y}_{\rm{B}}-{Y}_{{\rm{E}}2}\right)}^{2}+{\left({Z}_{\rm{B}}-{Z}_{{\rm{E}}2}\right)}^{2}} \text{,} $$ (8) 式中,(XB, YB, ZB)为臀部最高点坐标,(XE2, YE2, ZE2)为蹄部与地面交点坐标。
尻长为坐骨端与尻尖的直线距离,具体计算方式如公式(9):
$$ {l}_{尻长}=\sqrt{{\left({X}_{\rm{C}}-{X}_{\rm{F}}\right)}^{2}+{\left({Y}_{\rm{C}}-{Y}_{\rm{F}}\right)}^{2}+{\left({Z}_{\rm{C}}-{Z}_{\rm{F}}\right)}^{2}} \text{,} $$ (9) 式中,(XF, YF, ZF)为尻尖坐标。
3. 结果与分析
3.1 立体匹配测量与分析
为探究2~3 m不同距离的双目立体匹配结果,选用5头奶牛在距离2~3 m处进行立体匹配,图7为不同距离下立体匹配结果,表1为不同距离的体尺手动点云测量与人工测量的相对误差。可见,在2~3 m深度范围内CREStereo方法能正确地从ZED 2i拍摄的奶牛双目图像中估算深度信息,满足奶牛体尺测量要求,但在实际测量中为避免距离过近导致的信息缺失和距离过远造成的图像质量下降,应保证奶牛位于在双目图像中央完整且占据图像主体的距离。
表 1 不同距离下手动点云测量与人工测量奶牛体尺的相对误差Table 1. Relative errors of manual point clouds measurement compared to manual measurement of dairy cows body size at different distances% 距离/m
Distance体高
Body height体斜长
Body length臀高
Hip height尻长
Rump length2.00 3.01 2.87 2.96 5.00 2.25 2.85 2.81 2.98 4.52 2.50 2.77 2.74 2.67 3.26 2.75 2.62 2.62 2.55 2.73 3.00 2.81 2.75 2.67 2.66 3.2 YOLOv8n-Pose模型训练环境
本文提出的改进的YOLOv8n-Pose模型在GPU计算服务器训练的硬件配置为Intel(R) Xeon(R) Platinum 8255C CPU @ 2.50 GHz 12核、RTX 3090 24 GB、内存为43 GB;软件环境为Ubuntu18.04、Python3.8、PyTorch1.8.1、Cuda11.1;网络训练初始学习率为0.001,周期学习率为0.02,采用Adam优化器。
3.3 模型改进的消融试验
为了验证SimAM注意力机制和CoordConv卷积在奶牛关键点检测上的作用,以YOLOv8n-Pose模型为基础,设计消融试验验证改进效果,图8为消融试验结果。在YOLOv8n-Pose中分别添加SimAM机制和CoordConv后,重叠度(Intersection over union,IoU)阈值为50%的平均精确度均值(mAP50)和IoU阈值为50%~95%的平均精确度均值(mAP50~95)均有所提高,最终网络较原网络目标检测mAP50~95提高了1.1个百分点(图8a),关键点检测mAP50~95提高了4.5个百分点(图8b)。
图 8 消融试验测试YOLOv8n-Pose的改进效果mAP50:重叠度(Intersection over union,IoU)阈值为50%的平均精确度均值;mAP50~95:IoU为50%~95%的平均精确度均值Figure 8. Improvement effect of YOLOv8n-Pose tested by ablation experimentmAP50: Mean average precision at 50% intersection over union (IoU) threshold; mAP50−95: Mean average precision across IoU threshold from 50% to 95%表2为消融试验模型参数量与计算量的对比结果,从表2可以看出,最终改进模型的参数量仅增加了0.34%,而运算量降低了1.18%。
表 2 通过消融试验比较模型改进前后的参数量与计算量Table 2. Parameters and operations comparisons before and after model improvements through ablation tests模型
Model层数
Layers参数量/M
Parameters运算量/G
OperationsYOLOv8n-Pose 187 2.98 8.5 YOLOv8n-Pose+SimAM 189 3.01 8.6 YOLOv8n-Pose+CoordConv 195 3.01 8.5 YOLOv8n-Pose+SimAM+CoordConv 197 2.99 8.4 3.4 奶牛目标检测及关键点检测结果分析
为检验改进后模型的关键点检测性能,利用测试集验证改进的YOLOv8n-Pose模型,图9为模型在不同复杂情景下的奶牛关键点检测结果。如图9a为奶牛侧面存在遮挡时的检测结果,图9b为不同奶牛品种的检测结果,图9c为多目标奶牛检测结果;改进后的模型在多种复杂因素影响下均可较好地完成奶牛关键点检测任务。
为客观地衡量改进的YOLOv8n-Pose性能,与Hourglass[24]、HRNet[25]、SimCC[26]和RTMpose[27]等其他优秀算法比较,各算法使用相同数据集和软硬件环境,表3为对比结果。本文提出的改进YOLOv8n-Pose的精度最高,且模型参数量和浮点运算量均表现优秀。
表 3 不同算法关键点检测结果对比Table 3. Comparison of key point detection results by different algorithms方法
Method网络骨干
Backbone图像尺寸/像素
Image size参数量/M
Parameters计算量/G
Operations平均精确度均值/%
Mean average precision平均召回率/%
Average recall模型大小/MB
Model sizeHourglass Hourglass-52 384 94.85 64.48 85.9 88.2 362.0 SimCC HRNet-w32 384 × 288 28.54 17.33 89.3 91.4 110.0 HRNet HRNet-w48 384 × 288 63.60 35.48 89.5 92.2 244.0 RTMpose-m CSPNeXt-P5 256 × 192 13.25 1.90 92.5 94.7 101.0 改进YOLOv8n-Pose
Improved YOLOv8n-PoseCSPDarknet-P5 640 2.99 8.40 94.3 98.2 6.2 3.5 体尺测量结果对比与分析
在拍摄的15头奶牛的双目视频中分别选取5帧站立视频,计算体尺平均值作为测量值。图10为体尺测量最优目标判断结果,图10a为单头奶牛且环境较暗,图10b为两头奶牛,图10c多头奶牛且相互遮挡,图10d为多头奶牛且被栏杆遮挡。
表4为15头奶牛的体尺测量结果,测量值为本文提出的奶牛体尺测量方法的平均测量结果,真实值为通过点云数据手动平均测量结果。
表 4 15头奶牛的体尺测量结果Table 4. Body size measurement results of 15 dairy cows编号
Code体斜长/cm Body length 体高/cm Body height 臀高/cm Hip height 尻长/cm Rump length 测量值
Measured真实值
True测量值
Measured真实值
True测量值
Measured真实值
True测量值
Measured真实值
True1 169.56 165.91 147.29 151.92 157.31 159.19 45.45 47.78 2 172.35 170.61 135.24 135.14 146.82 141.46 54.06 51.19 3 167.93 171.47 152.99 154.52 157.03 158.44 58.84 56.92 4 163.25 160.63 146.40 145.99 148.92 148.16 46.46 49.56 5 162.10 165.91 140.63 143.59 150.46 152.35 50.05 54.77 6 176.91 171.69 135.27 144.74 155.02 148.18 51.48 54.12 7 170.31 172.68 150.45 147.24 146.01 148.92 54.22 55.69 8 175.99 178.13 154.96 159.60 143.14 153.83 56.23 58.59 9 178.34 171.91 146.60 146.08 148.84 151.09 57.69 56.73 10 171.47 175.43 138.61 152.57 141.76 154.10 59.16 57.35 11 174.62 174.09 151.92 153.80 152.05 150.60 61.93 61.52 12 169.25 172.57 156.13 153.88 138.83 152.74 56.04 53.23 13 175.21 172.34 151.94 156.04 154.99 152.90 51.71 51.95 14 179.81 184.20 158.55 159.31 160.85 158.09 52.79 57.39 15 168.69 167.72 145.67 148.28 148.95 150.37 55.24 53.38 利用箱线图分析各项体尺的相对误差,图11为体尺测量相对误差箱线图,其中体斜长相对误差最小,臀高相对误差最大。体斜长的最大相对误差为3.74%,平均相对误差为1.84%,平均绝对误差为3.2 cm;体高的最大相对误差为6.54%,平均相对误差为2.34%,平均绝对误差为3.5 cm;臀高的最大相对误差为9.11%,平均相对误差为2.98%,平均绝对误差为4.5 cm;尻长的最大相对误差为8.62%,平均相对误差为4.19%,平均绝对误差为2.3 cm。分析误差来源,主要如下:1)在奶牛关键点检测数据集中,部分奶牛轮廓不明显或标注不规范,导致奶牛关键点检测存在一定偏差;2)双目相机在实际使用中存在一定的畸变,奶牛深度信息计算的偏差导致体尺测量偏差。
图 11 体尺测量相对误差箱线图IQR:四分位距;25%~75%:数据的中间50%,从数据的第1四分位数到第3四分位数的范围;1.5IQR范围:从第1四分位数减去1.5倍IQR到第3四分位数加上1.5倍IQR,超出此范围的点为异常值Figure 11. Box diagram of relative error of body size measurementIQR: Interquartile range; 25%−75%: The middle 50% of the data, which ranges from the first quartile to the third quartile; 1.5IQR range: Extending from the first quartile minus 1.5 times IQR to the third quartile plus 1.5 times IQR, points outside this range are considered as outliers4. 结论
基于YOLOv8n-Pose模型,通过引入SimAM注意力机制和CoordConv卷积,提出了改进的YOLOv8n-Pose奶牛关键点检测模型,模型检测精度为94.30%,参数量为2.99 M,计算量为8.40 G,视频平均检测速度为55.6帧/s;相比于原网络,有着更好的精度,更小的计算量,更适合奶牛养殖场实际的部署与应用。本研究融合CREStereo立体匹配与改进的YOLOv8n-Pose,提出一种奶牛体尺测量方法,利用CREStereo对奶牛双目图像立体匹配计算视差值,利用改进的YOLOv8n-Pose检测左目图像中奶牛关键点,结合双目相机标定参数将奶牛关键点像素坐标转换至空间坐标,通过计算关键点间的欧氏距离完成奶牛体尺自动测量,体尺测量最大平均相对误差为4.19%。
-
图 2 Bi-FPN网络结构
C3~C7表示网络的层数;$ {{P}}_{{i}}^{\text{in}} $表示输入层,$ {{P}}_{{i}}^{\text{td}} $表示中间层,$ {{P}}_{{i}}^{\text{out}} $表示输出层;w和w′等表示不同的权值矩阵;为了避免数值不稳定的小数值,∈=0.001
Figure 2. Network architecture of Bi-FPN
C3~C7 represents the number of layers in the network; $ {{P}}_{{i}}^{\text{in}} $ represents the input layer, $ {{P}}_{{i}}^{\text{td}} $ represents the middle layer, $ {{P}}_{{i}}^{\text{out}} $ represents the output layer; w and w′ indicate different weight matrixes; In order to avoid the unstable small values, ∈=0.001
图 3 BI-YOLOv5s网络结构
Focus:采用切片操作将输入特征图拆成多个低分辨率特征图,CBS:卷积+批量归一化+SiLU激活函数,C3_B1:采用BottleNeck 1结构拼接的C3模块,C3_B2:采用BottleNeck 2结构拼接的C3模块,SPP:空间金字塔池化,C3TR:融入Transformer结构的C3模块,Bi_Concat:通过Bi-FPN结构连接
Figure 3. Network architecture of BI-YOLOv5s
Focus: Splitting the input feature map into multiple low-resolution feature maps by slicing operation, CBS: Convolution+ batch normalization+ SiLU activation function, C3_B1: A C3 module concatenated with BottleNeck1structure, C3_B2: A C3 module concatenated with BottleNeck 2 structure, SPP: Spatial pyramid pooling, C3TR: A C3 module integrated with a Transformer structure, Bi_Concat: Connecting by Bi-FPN structure
表 1 每轮柑橘和叶片HSV颜色距离
Table 1 HSV color distance between citruses and leaves in each round
图像
Image第1轮 Round 1 第2轮 Round 2 第3轮 Round 3 第4轮 Round 4 第5轮 Round 5 RGB 颜色距离
Color
distanceRGB 颜色距离
Color
distanceRGB 颜色距离
Color
distanceRGB 颜色距离
Color
distanceRGB 颜色距离
Color
distance1 R=128, G=0, B=128 2.02 R=64, G=0, B=192 2.04 R=96, G=0, B=224 2.15 R=96, G=0, B=224 2.15 R=96, G=0, B=224 2.15 2 R=64, G=0, B=128 1.99 R=96, G=0, B=192 2.00 R=80, G=0, B=224 2.04 R=96, G=0, B=216 1.90 R=92, G=0, B=224 2.09 3 R=64, G=0, B=64 1.78 R=32, G=0, B=192 1.62 R=112, G=0, B=224 2.06 R=96, G=0, B=232 1.91 R=100, G=0, B=224 1.88 4 R=64, G=0, B=192 2.04 R=32, G=0, B=160 1.41 R=112, G=0, B=208 2.03 R=88, G=0, B=232 1.87 R=100, G=0, B=220 1.84 5 R=128, G=0, B=192 1.80 R=64, G=0, B=160 2.01 R=96, G=0, B=208 2.01 R=88, G=0, B=224 1.89 R=96, G=0, B=220 2.16 6 R=192, G=0, B=192 1.90 R=96, G=0, B=160 2.06 R=80, G=0, B=208 1.84 R=88, G=0, B=216 1.92 R=92, G=0, B=220 2.06 7 R=192, G=0, B=128 2.07 R=96, G=0, B=224 2.15 R=80, G=0, B=240 1.86 R=112, G=0, B=216 2.01 R=92, G=0, B=228 1.93 8 R=192, G=0, B=64 1.91 R=64, G=0, B=224 1.89 R=96, G=0, B=240 1.82 R=112, G=0, B=224 2.06 R=96, G=0, B=228 1.92 9 R=128, G=0, B=64 1.98 R=32, G=0, B=224 1.79 R=112, G=0, B=240 1.87 R=112, G=0, B=232 2.08 R=100, G=0, B=228 1.95 表 2 各个模型消融试验
Table 2 Ablation experiment for each model
模型
Model精准率/%
Precision召回率/%
Recall平均准确率/%
Average precisionF1分数/%
F1 score检测速度/(帧·s−1)
Detection speedYOLOv5s 90.2 90.7 94.8 90.4 71 YOLOv5s+CA 91.5 91.0 95.8 91.2 58 YOLOv5s+Bi-FPN 92.3 92.2 96.2 92.2 62 YOLOv5s+Bi-FPN+CA 93.0 91.4 96.8 92.2 45 BI-YOLOv5s 93.4 92.2 97.1 92.8 40 表 3 不同模型测试结果对比
Table 3 Comparison of test results of different models
模型
Model精准率/%
Precision召回率/%
Recall平均准确率/%
Average precisionF1分数/%
F1 score检测速度/(帧·s−1)
DetectionspeedYOLOv5s 90.2 90.7 94.8 90.4 71 ShuffleNetV2-YOLOv5s 87.0 85.6 91.8 86.3 62 GhostNet-YOLOv5s 88.7 86.7 93.2 87.7 42 BI-YOLOv5s 93.4 92.2 97.1 92.8 40 表 4 不同模型对不同果实状态数据集的测试结果
Table 4 Test results of different models for data sets of different fruit states
模型
Model果实状态
Fruit state精准率/%
Precision召回率/%
Recall平均准确率/%
Average precisionF1分数/%
F1 scoreYOLOv5s 弱光照 Weak illumination 87.4 90.9 93.7 89.1 小目标 Small object 89.0 92.4 95.1 90.7 重叠遮挡 Overlap and occlusion 90.0 92.9 95.2 91.4 BI-YOLOv5s 弱光照 Weak illumination 88.2 91.8 95.7 90.0 小目标 Small object 92.1 92.6 96.8 92.3 重叠遮挡 Overlap and occlusion 93.5 94.4 97.7 93.9 表 5 2种灯光不同光照角度下BI-YOLOv5s模型检测的果实数量统计
Table 5 Quantity statistics of detected fruit by BI-YOLOv5s model under different angles of two lights
灯光类型
Light type光照角度
Illumination angle实际数量
Actual quantity正检数量
Positive quantity漏检数量
Missed quantity误检数量
False quantity正确率/%
AccuracyR光
R light顺光 Frontlighting 52 50 2 0 96.1 侧光 Sidelighting 34 32 2 2 94.1 整体 Overall 86 82 4 2 95.3 白光
White light顺光 Frontlighting 52 44 8 0 84.6 侧光 Sidelighting 34 29 5 0 85.3 整体 Overall 86 73 13 0 84.9 -
[1] 王刘坤, 祁春节. 中国柑橘主产区的区域比较优势及其影响因素研究: 基于省级面板数据的实证分析[J]. 中国农业资源与区划, 2018, 39(11): 121-128. [2] REN D, YANG S. Intelligent automation with applications to agriculture[J]. Intelligent Automation and Soft Computing, 2016, 22(2): 227-228. doi: 10.1080/10798587.2015.1095473
[3] KOIRALA A, WALSH K B, WANG Z, et al. Deep learning: Method overview and review of use for fruit detection and yield estimation[J]. Computers and Electronics in Agriculture, 2019, 162: 219-234. doi: 10.1016/j.compag.2019.04.017
[4] 杨长辉, 刘艳平, 王毅, 等. 自然环境下柑橘采摘机器人识别定位系统研究[J]. 农业机械学报, 2019, 50(12): 14-22. doi: 10.6041/j.issn.1000-1298.2019.12.002 [5] XIANG R. Image segmentation for whole tomato plant recognition at night[J]. Computers and Electronics in Agriculture, 2018, 154: 434-442. doi: 10.1016/j.compag.2018.09.034
[6] HAYASHI S, SHIGEMATSU K, YAMAMOTO S, et al. Evaluation of a strawberry-harvesting robot in a field test[J]. Biosystems Engineering, 2010, 105(2): 160-171. doi: 10.1016/j.biosystemseng.2009.09.011
[7] AREFI A, MOTLAGH A M, MOLLAZADE K, et al. Recognition and localization of ripen tomato based on machine vision[J]. Australian Journal of Crop Science, 2011, 5(10): 1144-1149.
[8] JI W, QIAN Z, XU B, et al. A nighttime image enhancement method based on Retinex and guided filter for object recognition of apple harvesting robot[J]. International Journal of Advanced Robotic Systems, 2018, 15(1): 1729881417753871.
[9] PAYNE A, WALSH K, SUBEDI P, et al. Estimating mango crop yield using image analysis using fruit at ‘stone hardening’ stage and night time imaging[J]. Computers and Electronics in Agriculture, 2014, 100: 160-167. doi: 10.1016/j.compag.2013.11.011
[10] TANG Y, CHEN M, WANG C, et al. Recognition and localization methods for vision-based fruit picking robots: A review[J]. Frontiers in Plant Science, 2020, 11: 510. doi: 10.3389/fpls.2020.00510.
[11] XIONG J, LIN R, LIU Z, et al. The recognition of litchi clusters and the calculation of picking point in a nocturnal natural environment[J]. Biosystems Engineering, 2018, 166: 44-57. doi: 10.1016/j.biosystemseng.2017.11.005
[12] FU L, WANG B, CUI Y, et al. Kiwifruit recognition at nighttime using artificial lighting based on machine vision[J]. International Journal of Agricultural and Biological Engineering, 2015, 8(4): 52-59.
[13] 项荣, 段鹏飞. 番茄采摘机器人夜间照明系统设计与试验[J]. 农业机械学报, 2016, 47(7): 8-14. doi: 10.6041/j.issn.1000-1298.2016.07.002 [14] 赵德安, 刘晓洋, 陈玉, 等. 苹果采摘机器人夜间识别方法[J]. 农业机械学报, 2015, 46(3): 15-22. doi: 10.6041/j.issn.1000-1298.2015.03.003 [15] LIANG C, XIONG J, ZHENG Z, et al. A visual detection method for nighttime litchi fruits and fruiting stems[J]. Computers and Electronics in Agriculture, 2020, 169: 105192. doi: 10.1016/j.compag.2019.105192.
[16] 王辉, 张帆, 刘晓凤, 等. 基于DarkNet-53和YOLOv3的水果图像识别[J]. 东北师大学报(自然科学版), 2020, 52(4): 60-65. [17] 熊俊涛, 郑镇辉, 梁嘉恩, 等. 基于改进YOLO v3网络的夜间环境柑橘识别方法[J]. 农业机械学报, 2020, 51(4): 199-206. doi: 10.6041/j.issn.1000-1298.2020.04.023 [18] 吕石磊, 卢思华, 李震, 等. 基于改进YOLOv3-LITE轻量级神经网络的柑橘识别方法[J]. 农业工程学报, 2019, 35(17): 205-214. doi: 10.11975/j.issn.1002-6819.2019.17.025 [19] 郑太雄, 江明哲, 冯明驰. 基于视觉的采摘机器人目标识别与定位方法研究综述[J]. 仪器仪表学报, 2021, 42(9): 28-51. [20] CHEN J, WU J, WANG Z, et al. Detecting ripe fruits under natural occlusion and illumination conditions[J]. Computers and Electronics in Agriculture, 2021, 190: 106450. doi: 10.1016/j.compag.2021.106450.
[21] 熊俊涛, 林睿, 刘振, 等. 夜间自然环境下荔枝采摘机器人别技术[J]. 农业机械学报, 2017, 48(11): 28-34. doi: 10.6041/j.issn.1000-1298.2017.11.004 [22] LIU X, ZHAO D, JIA W, et al. A method of segmenting apples at night based on color and position information[J]. Computers and Electronics in Agriculture, 2016, 122: 118-123. doi: 10.1016/j.compag.2016.01.023
[23] 贾伟宽, 赵德安, 阮承治, 等. 苹果采摘机器人夜间图像降噪算法[J]. 农业工程学报, 2015, 31(10): 219-226. doi: 10.11975/j.issn.1002-6819.2015.10.029 [24] 赵桂兰, 姚其. 蔬果照明光源与物体的照明光谱反射关系研究[J]. 灯与照明, 2019, 43(2): 1-5. doi: 10.3969/j.issn.1008-5521.2019.02.002 [25] HOU Q, ZHOU D, FENG J. Coordinate attention for efficient mobile network design[EB/OL]. arXiv: 2103.02907v1 (2021-03-04) [2022-09-09]. https://arxiv.org/pdf/2103.02907.pdf.
[26] TAN M, PANG R, LE Q. EfficientDet: Scalable and efficient object detection[C]//Proceedings of IEEE/CFV Conference on Computer Vision and Pattern Recognition (CVPR). Seattle: IEEE, 2020: 10781-10790.
[27] LIU S, QI L, QIN H, et al. Path aggregation network for instance segmentation[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. New York: IEEE, 2018: 8759-8768.
[28] ZHU X, LYU S, WANG X, et al. TPH-YOLOv5: Improved YOLOv5 based on transformer prediction head for object detection on drone-captured scenarios[C]//IEEE/CVF Conference on Computer Vision and Pattern Recognition Workshops. Virtual Conference: IEEE, 2021: 2778-2788.
[29] GLENN J. YOLOv5[CP/OL]. (2021-01-15) [2022-03-12]. https://github.com/ultralytics/yoloV5.