基于LW-YOLOv3 模型的棉花主茎生长点检测与定位研究
2021-12-14吴华瑞朱华吉杨雨森何思琪王春山
孙 想,吴华瑞,朱华吉,杨雨森,陈 诚,何思琪,王春山
(1.国家农业信息化工程技术研究中心,北京 100097;2.北京农业信息技术研究中心,北京 100097;3.河北农业大学 信息科学与技术学院,河北 保定 071001;4.河北省农业大数据重点实验室,河北 保定071001;5.西南交通大学 利兹学院,四川 成都 611756)
棉花是中国最重要的经济作物之一,也是我国纺织工业的主要原料,每年产量约为600×104t,播种面积超过300×104hm2。棉花打顶(也称:棉花主茎生长点去除)是棉花栽培管理的1 个重要环节,通过打顶可减弱棉花顶端生长优势,改变养分输送方向,促进棉株结铃结桃,提高棉花产量和质量[1]。化学打顶和机械打顶是目前主流打顶方法,二者具有速度快、效率高的特点[2]。但是,由于不能实时精准地识别和定位棉花主茎生长点,化学打顶方法难以针对棉花顶进行定点施药,大面积喷洒药液,不仅对棉花其它部位的生长产生了抑制,而且容易造成药液浪费和环境污染。同样,机械打顶的切削刀具只能根据植株高度计算切削的位置,大多数情况下棉花顶与植株高度之间并不存在确定的数量关系,仅根据植株高度计算切削的位置导致过打顶和漏打顶现象比较严重。因此研究棉花主茎生长点识别和定位技术,是实现化学打顶中精准对点施药与机械打顶中刀具精确控制的关键。
随着目标检测和定位技术的迅猛发展,近年来,这些技术被广泛应用于各个领域,其中在农业领域也取得了显著的成果,这为探索棉花主茎生长点检测与定位提供了研究基础。目标检测算法主要分为传统检测算法和深度学习算法,传统目标检测算法在复杂多变的背景下其检测效果会受到较大的影响,研究者在此方法上做了进一步的改进。张豪[3]提出在HSV 颜色空间下使用二维Otsu 阈值和几何特征相结合的方法对棉花图像进行分割,并提出了基于遗传算法进行特征参数提取的方法对棉花成熟度判定。瞿端阳等[4]提取棉株株顶和叶片等其它部分的R,G,B 等3 通道的均值、方差与标准差,利用BP 神经网络对棉株株顶进行识别。沈晓晨[5]采用了Lab 空间模型a 单通道选型,进行降维处理手段,并利用自适应阈值分割,垂直投影算法,识别出棉株主茎杆特征。
随着深度学习卷积神经网络技术的不断发展,目标识别检测相较于传统方法展现出更高的优越性,目前的卷积神经网络主要分为两大类,一种是端到端的方法[6-8],主要有YOLO、SSD、RetinaNet,另一种是基于区域建议的方法[9-11],主要有Fast RCNN、Faster RCNN、Mask RCNN。 刘庆飞[12]提出基于SSD 方法和深度相机的棉花顶心识别与空间定位方法,首先对棉花顶芽进行识别检测,然后利用深度相机求得目标三维坐标信息;Fuentes[13]利用三大类检测器:Faster R-CNN、R-FCN 和SSD,对番茄病虫害实时识别检测,使用了局部和全局类注释和数据扩充的方法;赵德安等[14]使用YOLOv3 在实际环境下对苹果进行检测,运用类似于VGG 模型搭建13 层网络,使用2 种不同尺度的锚点提取图像信息;李润龙等[15]在SqueezeNet 网络结构基础上引用分组卷积并采用Channel-shuffle来解决分组卷积后的信息不流通问题。
尽管现有工作利用不同技术对棉花主茎生长点识别和定位进行了研究,但是仍存在模型参数量较多、检测时间慢、缺乏空间定位能力等问题[16-18]。本试验提出使用Mobilenet 轻量化网络与YOLOv3结合并改进,降低网络复杂度,提升检测效率,引入深度信息建立定位模型,为探索轻量化的棉花主茎生长点检测与定位方法提供了思路。
1 材料与方法
1.1 建立数据集
棉花打顶时间基本为每年的7 月中旬左右,在打顶前30 d 的时间主茎生长点特征已经显现,因此数据采集时间为每年的6 中旬至7 月中旬,为了保证数据集的多样性,分别在每天上午(9:00—11:00)、中午(13:00—14:00)和下午(16:00—18:00)的时间段采集棉株图像,在距离棉株顶部200 ~400 mm 之间进行拍摄,保证了在不同拍照距离、不同光照、不同拍摄角度的条件下采集棉株图像。本次研究所使用的数据集采自华北作物改良与调控国家重点实验室的实验基地。
将所拍摄的图像进行统一整理,保存为相同大小的文件,用LabelImg 标注工具对数据集进行人工标注,得到相关的标注信息xml 文件,其中包含了图像的宽高信息、目标类别信息以及目标矩形框左上角和右下角信息。将图像与xml 文件对应保存为PASCAL VOC 的格式,用于YOLOv3 网络模型的训练与测试,本次数据集共包括11 001 张图像与对应xml 文件。图1 为棉株在不同条件下的采集的主茎生长点图像。从图1 可见,主茎生长点叶片相较于其他普通叶片形状较小,颜色更偏嫩绿,随着光线强度、拍摄距离、拍摄角度的变化,其颜色、形状等会随之产生变化。图2 为人工标注图像。
图1 不同拍摄条件下棉株图像Fig.1 Images of cotton plants under different shooting conditions
图2 标注图像Fig.2 Label image
1.2 YOLOv3 网络
YOLOv3 网络使用darknet53 作为特征提取网络,darknet53 是由卷积模块和残差模块共同构成的,网络结构层次较深,卷积模块包括卷积层、BN、Leaky Relu, 2 个卷积模块和跳层连接构成残差单元,再由1、2、8、8、4 个残差单元组成5 个残差模块,这样设计有利于解决深层次网络的梯度问题,在保持速度的同时提高了准确率。其网络结构如图3 所示。
图3 darknet53 结构Fig.3 Structure of darknet53
YOLOv3 采用多尺度预测结构,使用多个尺度进行预测,在某些卷积层之后进行下采样,最后再通过上采样拼接完成多尺度检测。网络产生3 种不同尺寸大小的特征图,聚类生成9 种尺度先验框,其特征图先验框尺寸如表1 所示。
表1 特征图与先验框尺寸Table 1 Size of feature map and anchor
对于不同尺寸的特征图来说,13×13 大小特征图感受野较大,适合检测尺寸较大的物体,26×26大小特征图具有中等尺度感受野,适合检测中等尺寸物体,52×52 大小特征图感受野较小,适合检测小尺寸物体,YOLOv3 通过这3 种不同尺度特征图的方法达到检测不同尺度目标的目的。
1.3 YOLOv3 网络微调
为验证YOLOv3 网络在棉花主茎生长点图像数据检测效果并调整相关参数,在全部数据集中选取部分数据进行验证,分别使用了不同分辨率图像、不同学习率进行实验,通过实验结果对YOLOv3 网络进行微调。
网络训练默认保存10 个权重文件,将其中Validation loss 相对较低的权重文件加载到模型中,对未在训练集里的棉株图像测试,得到相关结果。结果如表2 所示。
表2 不同分辨率下的mAPTable 2 mAP at different resolutions
由表2 可知,当分辨率为1 024×1 024 时,模型mAP最高,但是在同等条件下其训练时间也会增加,而全部数据集较大,使用1 024×1 024 分辨率图像会造成参数量、训练时间过大,因此最终选用折中的 416×416 分辨率图片作为调试代码数据集。
将全部数据集中图像调整为416×416 大小,再调整学习率,通过调整学习率网络会出现不同的结果,初始学习率为1e-4,查看不同学习率下训练结果loss值如图4 所示。
图4 不同学习率Loss 图Fig.4 Loss changes in different learning rates
修改学习率可以提升模型最终结果的准确率,从图4 中可以看出,当学习率为0.4e-4 时,Loss 值下降过程较为稳定,几种Loss 值最终相差较小,不同学习率对最终检测准确率影响做对比,如表3 所示,确定学习率为0.4e-4。
表3 不同学习率对比Table 3 Comparison of different learning rates
2 轻量化YOLOv3 网络
2.1 MobileNet 网络
MobileNet 网络是Google 提出主要应用在移动端的轻量级网络[19],其中提出了深度可分离卷积,可以大量的减少参数数量,MobileNetv2 相比MobileNetv1 更高效,MobileNetv2 在使用深度可分离卷积的基础上引入了反向残差结构,反向残差结构如图5 所示。
图5 反向残差结构Fig.5 Structure of reverse residuals
图5 中 PW 为标准卷积,DW 为深度可分离卷积,反向残差结构与Resnet 网络中残差结构相比有所不同,Resnet 使用标准卷积提取特征,先降维、卷积、再升维,MobileNetv2 始终使用深度可分离卷积提取特征,先升维、卷积、再降维。使用MobileNetv2网络替换darknet53,特征提取网络结构如表4 所示。
表4 特征提取网络结构Table 4 Network structure of feature extraction
表4 中t表示“扩张”倍数,c表示输出通道数,n表示重复次数,s表示步长,convolutional 为卷积操作,inverted_residual 为反向残差模块。分别在输入为(52,52,32)、(26,26,96)、(13,13,320)时输出3 种不同尺度大小特征图(52,52,32)、(26,26,96)、(13,13,1 280),再分别做卷积操作,最终进行检测。
2.2 SqueezeNet 网络
SqueezeNet[20]是1 种轻量且高效的模型,它在ImageNet 上实现了和AlexNet 相同的正确率,但是只使用了1/50 的参数。SqueezeNet 网络基本单元是采用了模块化的卷积,其称为Fire module。Fire 模块主要包含2 层卷积操作:一是采用1×1 卷积核的squeeze 层;二是混合使用1×1 和3×3 卷积核的expand 层。将YOLOv3 网络与SqueezeNet 结合,原有特征提取网络替换为SqueezeNet,其特征提取结构如表5 所示。
表5 中s1×1、e1×1、e3×3分别代表1×1 卷积核squeeze 层输出通道数、1×1 卷积核expand 层输出通道数、3×3 卷积核expand 层输出通道数,s表示步长,分别在输入为(104,104,256)、(52,52,512)、(26,26,512) 时输出3 种不同尺度大小特征图(52,52,256)、(26,26,512)、(13,13,1 024),再分别做卷积操作,最后进行检测。
2.3 LW-YOLOv3 网络
为实现更加轻量化的网络,将YOLOv3 网络进行改进,得到改进后的网络LW-YOLOv3。LW-YOLOv3 将darknet53 特征提取网络替换为MobileNetv2网络,并借鉴其中深度可分离卷积思想,将YOLOv3 分支网络中标准3×3 卷积替换为深度可分离卷积,其中深度可分离卷积是由一个3×3 的深度卷积和一个1×1 的逐点卷积构成,激活函数使用Relu6,其余标准卷积激活函数使用Leaky Relu。LW-YOLOv3 整体结构如图6 所示,其中i_res 代表反向残差结构,sep 代表深度可分离卷积。
图6 中特征提取网络主要为卷积模块和反向残差模块构成,其中第一个DBL 卷积模块使用3×3卷积核、步长为2,接着经过6 个i_res 反向残差模块输出特征图(52,52,32)的结果之后继续提取特征并产生1 条预测分支,再经过7 个i_res 反向残差模块输出特征图(26,26,96)的结果之后继续提取特征并产生第二条预测分支,最后经过4 个i_res 反向残差模块和1 个DBL 卷积模块输出特征图(13,13,1 280)的结果之后结束特征提取,继续进行卷积等操作作为第三条预测分支。3 条预测分支之间使用类似于FPN 的方法进行特征融合,通过上采样与前一条分支结果进行拼接后继续操作。
图6 LW-YOLOv3 模型结构Fig.6 LW-YOLOv3 structure
3 实验过程与结果
3.1 实验环境配置
本次模型实验均在相同的硬件设备下进行,硬件配置为Intel® Core™ i9-9820X CPU @ 3.30 GHz× 20,64 G 内存,显卡为GeForce RTX 2080 Ti,操作系统为64 位Ubuntu 18.04.1 LTS。TensorFlow 框架版本为1.13.1,Cuda 版本为10.0,Python 版本为3.6。设置初始学习率为0.4e-4,随着训练迭代次数的不断增加,学习率随之变化,最终学习率为1e-6,IOU 阈值为0.5。
训练时批处理大小设置为3,总共迭代40 个Epoch,保存最后10 个Epoch 迭代得到的权重文件,使用权重文件在测试集上进行测试,计算精准率P、召回率R、平均准确率mAP,计算公式如下:
式中:TP—正确的将主茎生长点检测出来的数量。
FP—错误的将非主茎生长点检测为主茎生长点的数量。
FN—错误的将主茎生长点检测为背景的数量。
P和R在已知的情况可以得到P-R曲线,P-R曲线下与坐标轴之间包含的面积为准确率AP的值,mAP为所有检测类别AP的平均值,本文仅检测棉花主茎生长点1 个类别,因此mAP与AP相等。
3.2 模型实际效果验证
将几种模型在同一数据集上进行测试,使用mAP、检测时间、参数量等评价指标对YOLOv3 网络和轻量化YOLOv3 网络综合对比,画出几种模型Loss 曲线,分析模型最终结果,验证模型有效性与检测性能。5 种模型的损失值如图7 所示。
图7 不同模型的Loss 曲线Fig.7 Loss curves of different models
其中YOLOv3-SqueezeNet 模型最终Loss 值最高,其次是YOLOv3-MobileNetv1,而YOLOv3、YOLOv3-MobileNetv2、LW-YOLOv3 3 种模型Loss值最终结果相近,可从其他评价指标进一步分析,如表6 所示。
表6 不同模型对比结果Table 6 Comparison results of different models
综合对比几种模型结果,LW-YOLOv3 网络检测单张图片的时间较YOLOv3 网络减少3.2 ms ,参数量降低为原网络的10.85% ,权重文件大小降低为原网络的12.19% ,mAP仅下降 0.63% ,提升了模型的检测效率。为了验证模型在不同的拍照距离、不同光照条件下目标检测的鲁棒性,选取了多种拍照距离和多种光线强度下图像进行测试,结果如图8、图9 所示。从图8、图9 检测效果中可以看出,LWYOLOv3 网络在不同距离和不同时间段对棉花主茎生长点的检测效果较好。当拍摄距离不同时,目标在图像中尺寸不固定,会出现大目标和小目标的情况,而图8 中LW-YOLOv3 网络未检测出目标的主要原因是目标被周围叶片遮住部分,特征不够明显。当外部光照条件不同时,目标颜色受光照影响产生较大变化,图9 中每幅图片棉株的颜色均不相同,LW-YOLOv3 在目标颜色存在相似性差异的情况下能够将目标准确识别,在图9b 第一幅图中出现同一目标多框现象,主要由于网络特征学习不够充分,对类似特征识别不够精准,但网络整体检测性能较好。
图8 不同距离检测结果Fig.8 Test results at different distances
图9 不同时间段检测结果Fig.9 Test results in different times
4 目标三维空间定位
本文采用Intel Realsense D435(图10)深度相机作为棉花主茎生长点空间定位设备,该深度相机可以同时获取彩色图像与深度图像,通过红外传感器得到深度信息,彩色图像分辨率为1 280×720。
图10 Intel realsense D435Fig.10 Intel realsense D435
相机成像过程涉及4 个坐标系[21],分别是像素坐标系(u,v)、图像坐标系(x,y)、相机坐标系(Xc,Yc,Zc)、世界坐标系(Xw,Yw,Zw),像素坐标系与图像坐标系之间的关系可通过以下公式计算:
式中:dx,dy为每一个像素在u轴和v轴方向的物理尺寸。u0,v0为图像坐标系的原点在像素坐标系下的坐标。
通过针孔成像模型(图11)可知相机坐标系与图像坐标系之间存在相似三角形的关系,由相似三角形可得如下公式:
图11 相机成像模型Fig.11 Camera imaging model
式中:f为相机焦距,(Xc,Yc,Zc) —空间中一点在相机坐标系下坐标。
其中P(Xc,Yc,Zc)为在空间中一点,P′在图像坐标系中坐标为(x,y),在像素坐标系中坐标为(u,v)。相机可以得到fx,fy,u0,v04 个主要内部参数,fx=f/dx,fy=f/dy,通过相机内参以及相机成像原理即可得到空间中一点的三维坐标。
当模型检测出棉花主茎生长点,会返回检测框左上角与右下角的像素位置,通过检测框左上角与右下角像素点确定目标的中心点像素坐标C(uc,vc),将以上公式进行变形可得:
公式中各参数已知,即可得到目标在相机坐标系下的三维坐标,然后再通过相机外参的旋转矩阵和平移矩阵即可将相机坐标系转为世界坐标系。世界坐标系是系统的绝对坐标系,可建立在空间任意一点,根据公式计算可实现不同坐标系下的转换,在实际应用中得知目标中心点三维坐标之后经过系列变换将其传输给机械臂末端执行装置,当末端执行装置得到信息后执行相关操作则可成功实现棉花打顶。
在实际环境下对定位功能测试,得到多组X、Y、Z坐标,并与实际值对比计算误差,绝对误差=检测值-实际值,测试结果如表7 所示。
表7 测试结果Table 7 Test result
将以上数据中的绝对误差制作为折线图分别表示X、Y、Z误差信息,如图12 所示,其中Z方向误差起伏较小,维持在4 mm 误差范围内,X方向误差维持在9 mm 内,Y方向误差维持在8.5 mm 内,最大误差均未超过1 cm。而X、Y、Z方向平均误差分别为3.04、3.00、3.53 mm,满足了棉花打顶在定位精度方面的要求。
图12 空间定位误差分析Fig.12 Analysis of positioning error in space
5 棉花主茎生长点检测与定位模型
将定位功能嵌入到检测模型中,建立棉花主茎生长点实时检测与定位模型。首先调用深度相机,获取深度图像与彩色图像,由于深度图像与彩色图像视野范围不同,最终需要展示为彩色图像,因此先将深度图像对齐到彩色图像,保证相同视野。当检测模型检测到棉花主茎生长点时返回图像中心点二维坐标,通过相关参数公式等信息计算得到棉花主茎生长点此时的三维坐标,同时在窗口左上角显示坐标信息,整体流程如图13 所示。
图13 实时检测流程Fig.13 Real time detection process
实际检测效果如图14 所示,检测到棉花主茎生长点后使用矩形框将其选中,矩形框中心点为图像中白色点,返回该点二维坐标计算空间三维坐标,在视频中可同时显示目标信息与定位信息。
图14 实时检测效果Fig.14 Real time detection effect
6 结论
本文提出轻量化 YOLOv3 模型对棉花主茎生长点进行识别研究,在实际环境下对目标进行检测识别,通过调整分辨率以及学习率等参数对YOLOv3 模型进行微调,并对比了几种不同轻量化网络与 YOLOv3 网络进行结合的检测结果,使用 MobileNetv2 网络作为特征提取网络,同时改进YOLOv3 分支网络,最终mAP达到 88.66% ,总参数量以及权重文件大小有大幅度降低,提升了检测速度。在检测目标的基础之上提供目标所在相机坐标系下的空间位置,并对三维误差进行分析。实验表明,本试验所使用的YOLOv3 模型在棉花主茎生长点的识别与定位中具有速度快、准确率高的优势。