
基于YOLOv5m的红花花冠目标检测与空间定位方法.docx
15页基于YOLOv5m的红花花冠目标检测与空间定位方法 郭 辉 陈海洋 高国民 周 伟 武天伦 邱兆鑫(新疆农业大学机电工程学院, 乌鲁木齐 830052)0 引言红花是一种集药用、油料为一体的特种经济作物,我国红花产地主要分布在新疆,占全国80%左右[1-3]由于红花花球多批次开花,花冠高低不一,采用传统机械化采收比较困难[4-5]人工采摘成本在红花产收成本中占比最大[6-7]而红花采摘机器人可有效解决上述问题由于红花生长环境为非结构化环境[8],且花冠小、姿态朝向各异,不易识别,因此红花花冠的目标检测与定位成为红花采摘机器人的关键技术目前针对花朵的目标检测大多采用传统目标检测方法,即利用花朵的颜色以及形状信息,通过人为提取图像特征完成花朵图像的分割[9-10]崔明等[11]针对草莓花朵图像特点,采用改进K均值聚类方法完成图像的分割,并利用形态学处理和连通区域特征分析提取花朵区域目标,完成对草莓花朵的识别JASON等[12]采用远近识别相结合的方法,使用相机对目标区域进行识别,根据花朵颜色特征利用分类器提取图像中可能存在花朵区域,再用迁移学习的方法判断在此区域中是否存在花朵目标。
在近距离识别中使用RGB-D相机(深度相机)以及实时定位与地图构建技术(Simultaneous localization and mapping,SLAM)对植株进行重构,再用分类算法对重构的植株图像中的花朵进行识别,总体准确率达到78.6%近几年,随着深度学习技术的快速发展,基于深度学习的目标检测方法在花朵目标检测领域中的应用也十分广泛WILLIAMS等[13]采用深度学习方法,通过Faster R-CNN网络算法对猕猴桃花朵数据集进行训练,模型平均精度为85.3%DIAS等[14]采用一种对杂乱和光照条件变化具有鲁棒性的花卉识别技术,对深度卷积神经网络进行调整,训练得到的模型准确率和召回率都高于90.0%TIAN等[15]采用多类别单次检测(Single shot multibox detector,SSD)深度学习方法,利用牛津大学出版的花卉数据集VOC2007和VOC2012进行训练,前者平均准确率为83.6%,后者平均准确率为87.0%,并可以检测多个目标花卉赵春江等[16]提出一种基于级联卷积神经网络的番茄花期识别检测方法,在玻璃温室环境下准确率为76.67%熊俊涛等[17]通过深度语义分割算法对荔枝花识别与分割,平均检测精度为87%。
针对红花检测,张天勇等[18]通过对比花丝颜色特征,运用色差法分析选用最大类间方差法提取花丝轮廓,并通过红花丝团簇状特征,提出改进的形态学处理方法最后结合改进质心法和最大内切圆法,确定花丝二维中心点坐标在盛花期检测准确度为93.3%,在败花期检测准确度为53.3%综上所述,传统目标检测方法提取的花朵特征有限,识别精度较低,适用性较差,且传统目标检测方法缺乏学习能力,不能根据图像的变化进行自动调整本文提出一种基于深度学习的移动式红花目标检测定位算法(Mobile safflower detection and position network,MSDP-Net)该算法主要由红花花冠目标检测算法以及红花花冠空间定位算法两部分组成,以期能够准确地检测出盛花期红花花冠,并输出其三维空间坐标1 红花花冠目标检测1.1 数据收集2022年7月在新疆维吾尔自治区昌吉回族自治州吉木萨尔县红旗农场采集红花图像共计3 200幅,并采用随机角度旋转、随机缩放、加入随机噪点等数据增强方法,将红花图像数据集扩展至6 400幅,并将其按照比例7∶2∶1随机划分为训练集、测试集和验证集,其中训练集4 480幅、验证集1 280幅、测试集640幅。
李彤彤[6]将红花开花过程分为4个阶段,分别为花蕾期、初花期、盛花期和败花期,如图1所示盛花期为符合本机器人采摘条件和经济效益的最佳时期[19-20]在不错标、不重标、不漏标的原则下,使用Make Sense[21]工具对每幅图像的盛花期红花花冠进行标注,得到其对应的标签文件,从而完成数据集建立图1 4种不同花期的红花花冠1.2 YOLO v5模型选择本文基于YOLO v5算法[22-23],提出一种改进的YOLO v5算法,用于红花花冠的目标检测利用同一红花数据集对YOLO v5的6种架构[24]进行训练,得到YOLO v5-Lite、YOLO v5s、YOLO v5n、YOLO v5m、YOLO v5l以及YOLO v5x 6种模型,并采用准确率(Precision,P)、召回率(Recall,R)、平均精度均值(Mean average precision,mAP)、帧速率(Frames per second,FPS)和模型内存占用量(Model size,Ms)作为衡量模型性能的主要指标,模型各项指标对比结果如表1所示表1 模型性能指标对比为了对以上6种模型进行更准确的性能评估,首先对各模型的指标进行归一化处理,以消除不同度量之间的量纲差异。
采用Min-Max归一化方法[25],将每个指标映射到0~1之间其次根据实际应用场景以及研究目标为各项指标分配以下权重:WPrecision=0.2;WRecall=0.3;WmAP=0.2;WFPS=0.2;WModel size=-0.1(负权重,较小的模型在实际应用中更具优势)根据上述权重分配计算每个模型的加权得分,计算式为(1)YOLO v5 6种模型的综合加权得分结果如表2所示表2 6种模型的综合加权得分根据表2可知,YOLO v5m的综合加权得分在6种模型中最高因此YOLO v5m针对红花花冠的目标检测更具有优势1.3 YOLO v5m模型优化为了进一步提升对红花花冠的检测精度,对YOLO v5m模型引入卷积块注意力模块(CBAM)[26-27]CBAM模块可以自适应地对输入的特征图进行调整,从而提升网络的性能和泛化能力[28]CBAM模块由通道注意力模块(CAM)以及空间注意力模块(SAM)两部分组成,其结构示意如图2所示图2 CBAM模块结构示意图通道注意力模块利用通道之间的关联性来提取图像的重要特征,从而更好地区分不同的目标该模块先对卷积层的输出进行全局平均池化和全局最大池化,得到每个通道的全局特征图,然后将其输入到2个全连接层中,分别学习每个通道的权重,最后将权重应用到每个通道的特征图上,从而得到加权后的特征图,如图3所示。
图3 通道注意力模块结构示意图空间注意力模块利用空间之间的关联性来提取图像的重要特征该模块的实现方式类似于通道注意力模块,但是在全连接层中需要学习每个空间位置的权重,最后将权重应用到每个空间位置的通道上,从而得到加权后的特征图,如图4所示图4 空间注意力模块结构示意图将CBAM模块插入到主干网络的最后1个卷积层和颈部网络的第1个卷积层之间以及颈部网络的最后1个卷积层之后,分别用于增强特征图的表达能力以及增强输出特征图的判别能力改进后的C-YOLO v5m网络结构如图5所示图5 C-YOLO v5m网络结构示意图2 红花花冠空间定位2.1 相机移动式空间定位方法采用双目视觉技术来对红花花冠进行空间定位,双目相机选用Stereolabs公司生产的ZED2双目相机[29]将双目相机连接在由步进电机驱动的滚珠丝杆平移台上,使其能够在采摘机器人左右方向上移动,如图6所示红花花冠空间定位流程如图7所示图6 目标检测定位系统位置结构示意图图7 红花花冠空间定位流程图系统上电后机器人移动到待作业区域,同时目标检测定位系统归零,进入待机状态开始作业后判断当前检测区域内是否有红花花冠,如没有,则平移台带动双目相机移动到下一块检测区域,并重新进行判断,双目相机移动示意如图8所示。
图8 双目相机移动示意图如检测到红花花冠,则将红花花冠二维检测框中心点坐标(X,Y)输入到ZED2双目相机的深度感知Stereo Vision算法[30]中,得到二维检测框中心点的深度Z将红花花冠三维空间坐标(X,Y,Z)通过CAN总线发送至机器人采摘机械臂分控制器中,完成此检测区域的采摘工作当完成所有4个检测区域采摘工作后,机器人向前行进至下一片作业区域,并判断是否到达垄行尽头的转向点,如到达转向点,则机器人转向后重新移动到待作业区域并重复以上步骤如没有到达转向点,则判断机器人是否到达结束点,如没有到达结束点,则目标检测定位系统重新进入待机状态并重复以上步骤如到达结束点,则结束红花花冠目标检测与定位并退出2.2 双目相机内参标定通过标定双目相机内参来得到图像像素坐标系到相机坐标系的转换关系采用张正友标定法[31]标定双目相机内参,标定结果如表3所示表3 ZED2双目相机内参图像像素坐标系到相机坐标系的转换关系为(2)式中 (u,v)——像素坐标系下坐标,像素fx、fy——等效焦距,mm(u0,v0)——图像中心像素坐标,像素(X,Y,Z)——相机坐标系下坐标,mm为了使得到的图像坐标更为准确,需要消除由于透镜成像和安装误差产生的畸变,即Xc=X(1+k1r2+k2r4+k3r6)+2p1XY+p2(r2+2X2)(3)Yc=Y(1+k1r2+k2r4+k3r6)+2p1XY+p2(r2+2Y2)(4)其中r2=X2+Y2式中 (X,Y)——校正前坐标,mm(Xc,Yc)——校正后坐标,mmk1、k2、k3——径向畸变系数p1、p2——切向畸变系数2.3 双目相机外参标定在实际双目相机使用过程中,除了标定双目相机的内参外,还需要标定双目相机的外参来获取相机坐标系到机械臂坐标系的转换关系。
双目相机坐标系定义其坐标原点位于左目相机光心Oc处,Z轴指向相机正前方,X轴与基线平行指向右侧镜头,左手大拇指指向Z轴,X轴沿四指方向旋转90°为Y轴正方向机械臂坐标系定义其坐标原点位于机械臂静平台中心点Ov处,Z轴垂直地面指向正下方,Y轴平行于地面指向机器人前进方向,X轴平行于地面指向机器人的右侧,如图9所示图9 相机坐标系和机械臂坐标系示意图相机坐标系到机械臂坐标系绕X、Y、Z轴旋转的角度α、θ、β用1个3×3的旋转矩阵R来表示相机坐标系原点到机械臂坐标系原点沿X、Y、Z轴平移的距离Δx、Δy、Δz用一个3×1的平移向量T来表示,相机坐标系到机械臂坐标系转换的数学模型为(5)式中 (Xv,Yv,Zv)——机械臂坐标系坐标,mm(Xc,Yc,Zc)——相机坐标系坐标,mm将相关参数代入式(5),可得(6)式中θ——相机坐标系绕Yc轴旋转角,取180°t——相机坐标系原点Oc沿Xc轴的平移向量偏差2.4 相机移动式空间定位坐标转换针对在目标检测过程中的遮挡问题,将双目相机安装在平移台上,以最大程度消除在目标检测中机器零部件对花冠的遮挡、红花植株对花冠的遮挡以及花冠与花冠之间的遮挡,如图10所示。
图10 目标检测过程中的遮挡读取步进电机控制器在运行过程中的脉冲数来计算出相机的移动距离,完成在移动定位时的坐标转换本文带动滚珠丝杆的步进电机的控制器选用Arduino UNO[32]单片机;步进电机为57系两相步进电机,步距角为1.8°;步进电机驱动器为普菲德TB6600(默认细分1);滚珠丝杆导程Ph为4 mm,总长为1 070 mm,左限位开关到右限位开关的距离为1 000 mm,相机移动距离计算式为(7)式中l——相机的移动距离,mmN——脉冲数,个|t|=500-l,通过替换式(6)中的|t|,可得(8)整合红花花冠目标检测算法和红花花冠空间定位算法,得到MSDP-Net算。
