基于深度学习的复杂自然环境下桑树枝干识别方法*

发布时间:2023-08-31 10:15:16   来源:心得体会    点击:   
字号:

任浩,李丽,卢世博,陈静姚,张云峰

(1. 西南大学工程技术学院,重庆市,400715;

2. 宜宾西南大学研究院,四川宜宾,644000;
3. 重庆祥飞蚕桑有限公司,重庆市,401520)

我国蚕桑产业是汉文化的主体文化,其代表着丝绸文化。为契合“一带一路”中“一路”丝绸产业的提升,促进乡村振兴、切合国家“十四五”规划、促使蚕桑产业的快速发展,国家及相关部门出台了一系列政策文件[1-2],鼓励因地制宜发展蚕桑等特色产业。蚕桑属于种植与养殖相结合的产业,由统计数据[3]可知,2021年中国桑蚕茧的产值达367.15亿元,较上年增加52.99%。现阶段,随着工业经济与第三产业的发展促使大量劳动力进入城市,农村桑园留守劳动力老龄化严重,蚕桑行业受到打击。现虽有一些相关机械设备[4],但并未实现智能化,如胡迎春等研发的摇杆式桑叶采摘机、往复式桑叶采摘机、螺旋式桑叶采摘机[5]和杨自栋[6]教授团队研发的梳刷式电动树叶采摘收集机,都需要先手动对枝干定位再进行采摘。我国桑树从伐条后发芽到九月下旬期间,桑叶的生长量占到了总生长量的约85%。在这期间,要进行多次桑叶采摘,并要求采摘桑叶时不能损伤桑树枝干并保留顶端用于喂养幼蚕的嫩叶。集中大量的桑叶采摘工作要求蚕桑产业由传统向现代转变,由人力向智能化转变[7]。

为实现桑叶采摘机的智能化,首先要实现在复杂自然条件下完成对桑树枝干的识别。张富贵等[8]通过对RGB图像分量的分析和阈值处理对果树进行分割,准确率为79.67%。贺磊盈等[9]通过双轮廓同步跟踪方法对无叶核桃树进行枝干重建,但不适用于桑树叶片较多的场景。Tabb等[10]通过超像素确定背景低纹理区域再对果树枝干进行分割,适应于简单背景。Amatya等[11]通过聚类以及几何方法实现对樱桃树单条枝干的检测。Majeed等[12]使用卷积神经网络和Kinect V2相机实现了对苹果树无遮挡的主干和分支的分割,精度分别为92%和93%。Shalal等[13]利用相机和激光扫描仪对果树树干进行检测,其检测精度为96.64%,该方法适应于对较粗的主树干进行检测,不适应于桑枝这类较细枝干的识别。Zhang等[14]通过RCNN与拟合的方式对苹果树分支进行检测,其平均召回率与准确率分别为91.5%和85.5%,该方法仍是针对单条无遮挡的枝干。

对于复杂自然条件下桑树枝干的识别,目前有以下几处难点:(1)自然条件下室外光照变化较大;
(2)桑树叶片大且多,会遮挡枝干;
(3)桑树分支较多。本文针对以上问题,在自然场景下采集不同时段、不同天气情况的桑树图像,并利用多种图像处理技术对采集的数据集进行扩展,模拟各类自然场景,再结合深度学习理论,构建出能够在复杂自然条件下完成对桑树枝干进行识别的目标检测模型,并获取坐标信息,为自主研发的桑叶采摘机实现智能化奠定基础。

本研究采用的图像采集设备为Intel Realsense D435i型相机,通过USB3.0接口与电脑连接。相机有效识别范围为0.105~10 m,分辨率为1 280×800 dpi,帧率为可达90 fps,像元尺寸为3 μm×3 μm,深度学习试验硬件环境为搭载Intel(R) Xeon(R) Gold 5118 CPU @ 2.30GHz 2.29GHz+NVIDIA Quadro P4000显卡的工业计算机,深度学习使用Halcon19.11软件平台,图像处理使用OpenCV软件库,技术路线如图1所示。

图1 技术路线

2.1 图像数据采集

桑树枝干的图像是从重庆某公司合川桑园采集的,品种为农桑14号,枝干粗约1.2 cm。桑树在露天环境并排种植便于机械收获。为了匹配样本环境的多样性,在晴天和阴天的不同时段(8:00,13:00,18:00)分别采集图像。考虑到拍摄角度会影响检测性能,在图像采集过程中从多个拍摄角度采集图像,共1 000张照片,采集的部分图像如图2所示。

(a) 晴天

(b) 阴天

2.2 基于OpenCV的图像数据扩展

由于光线的角度和强度在一天中变化很大,神经网络处理在一天中不同时间收集的图像的能力取决于训练数据集的完整性。为了增强数据的多样性,提高模型在不同图像下的识别能力,对收集的图像进行了镜像旋转、镜像翻转、色彩增强和同态滤波的图像处理,处理后的图像如图3所示。

(a) 旋转

(b) 镜像翻转

(c) 色彩增强

(d) 同态滤波

2.2.1 图像旋转法的数据扩展

考虑到图像目标检测任务中存在待测目标多角度问题,将原始图像进行旋转和镜像翻转的几何变换操作得到扩展数据,可以使得模型在训练过程中学习到具有旋转不变形的特征,处理的图像数量为1 000张,图像旋转的原理如下。

以图像中心作为旋转中心,用img.shape获得图像的宽度和高度值,除以2即为图像中心点坐标,这里定义为(x0,y0)、顺时针旋转角度定义为θ,图像旋转前坐标定义为(x,y),旋转后坐标定义为(xa,ya),计算方法见式(1)。

(1)

2.2.2 图像翻转法的数据扩展

镜像翻转法同样作为几何变换中的一种方法,对于模型的训练有和旋转法相同的作用,处理的图像数量为1 000张,镜像翻转的原理如下。

将图像沿垂直中轴线进行轴对称变换,图像宽度为w,原像素点(x,y)以垂直中轴线为中心进行左右对换,翻转后坐标定义为(xb,yb),计算方法见式(2)。

(2)

式中:MAF——镜像翻转矩阵。

2.2.3 色彩增强法的数据扩展

不同的照明条件会导致图像颜色与真实颜色之间出现一定的偏差。在自然环境中的桑树林中,桑叶经常挡住阳光,这将导致枝干部分光线不足,对图像进行色彩增强处理可以模拟自然环境下光照不足的影响,提高检测模型的鲁棒性,处理的图像数量为1 000张,色彩增强的原理如下。

先将图像分割成RGB三个通道,然后对这些通道分别进行直方图均衡化,最后合并所有通道,直方图均衡化可以增加像素之间灰度值差别的动态范围,从而增强图像的对比度,计算方法见式(3)。

(3)

式中:sk——当前灰度级经过累积分布函数映射后的值;

N——图像中像素的总和;

nj——当前灰度级的像素个数;

T——变换函数;

r——待处理图像的灰度;

pr——概率密度函数;

L——图像中的灰度级总数。

2.2.4 同态滤波法的数据扩展

同态滤波利用去除乘性噪声(multiplicative noise),可以同时增加对比度以及标准化亮度,借此达到亮度增强的目的,从而模拟自然环境下光照极强时的情况。

一副图像可以表示为其照度(illumination)分量和反射(reflectance)分量的乘积,虽然在时域上这两者是不可分离的,但是经由傅立叶转换两者在频域中可以线性分离。通过分别处理照度和反射率对像元灰度值的影响,达到增强阴影区细节特征的目的,模拟自然环境下光照强烈的情况,处理的图像数量为1 000张,一个图像f(x,y)可以根据它的亮度和反射分量的乘积来表示[15]。

f(x,y)=i(x,y)r(x,y)

(4)

式中:i(x,y)——亮度函数;

r(x,y)——反射分量函数。

通过同时压缩亮度范围和增强对比度,来消除不均匀照度的影响而又不损失图像细节,同态滤波流程如图4所示。

图4 同态滤波流程图

具体计算过程如下。

1) 因为该性质是乘性的,所以不能直接使用傅里叶变换对i(x,y)和r(x,y)进行控制,因此先对f(x,y)取对数,分离i(x,y)和r(x,y)。

z(x,y)=lnf(x,y)=lni(x,y)+lnr(x,y)

(5)

2) 取傅里叶变换,得到。

F[z(x,y)]=F[lnf(x,y)]+F[lnr(x,y)]

(6)

变换为Z(u,v)=I(u,v)+R(u,v)

(7)

3) 使用滤波器H(u,v)对Z(u,v)进行滤波,有

S(u,v)=H(u,v)Z(u,v)

=H(u,v)I(u,v)+H(u,v)R(u,v)

(8)

(9)

4) 滤波后,进行反傅里叶变换

i′(x,y)=F-1[H(u,v)I(u,v)]

(10)

r′(x,y)=F-1[H(u,v)R(u,v)]

(11)

5) 取指数,得到最后处理后的图像g(x,y)。

i0(x,y)=exp[i′(x,y)]

(12)

r0(x,y)=exp[r′(x,y)]

(13)

g(x,y)=i0(x,y)r0(x,y)

(14)

式中:i0(x,y)、r0(x,y)——处理后图像的照射分量和入射分量。

四种数据扩展方式产生的图像数量汇总见表1。

表1 由数据扩展产生的图像数量Tab. 1 Number of images generated by data expansion

Halcon是由德国某公司研发的一款具有非常高效能的机器视觉软件,不仅提供了功能全面的图像处理库,而且还提供了先进的技术算法包[16]。Halocn中的深度学习方法包括分类、目标检测和语义分割,所有这些都基于卷积神经网络的原理(CNN)。卷积神经网络包含了一个由卷积层和子采样层构成的特征抽取器[17]。在卷积神经网络的卷积层中,一个神经元只与部分邻层神经元相连接。在CNN的一个卷积层中,通常包含若干个特征平面,每个特征平面都由一些矩形排列的神经元组成,同一特征平面的神经元共享权重参数,这里共享的权重参数就是卷积核。卷积核一般由随机小数矩阵的形式初始化,随着神经网络的不断训练,卷积核将会学习到更合理的权值。共享权值(卷积核)可以减少网络各层之间的连接,同时降低过拟合的风险。子采样可以看作一个特殊的卷积过程。卷积和子采样可以简化模型的复杂度,减少模型的参数。

卷积神经网络的基本结构见图5,由三部分组成:输入层、n个卷积层和池化层的组合、全连接的多层感知机分类器。针对目前桑叶采摘机的枝干检测需求,本文提出一种基于Halcon深度学习的桑树枝干识别方法。

图5 卷积神经网络的基本结构

3.1 数据标注与数据集划分

在数据整理阶段,采集了晴天和阴天时桑树枝干的照片,并如上文进行了四类数据扩展后,获得5 000张含有桑树枝干的图片作为目标检测模型训练的数据集,使用MVTec Deep Learning Tool工具进行标注,标注信息包含类别、定向矩形中心坐标、矩形框的宽度和高度,生成字典类型的标注文件。将数据集划分为训练集和测试集,本文分配比例为7∶3。在目标检测中,网络必须学习如何找到实例并判断它的可能位置,且由于实际需求,桑叶采摘过程中需要避免损伤顶端用于喂养幼蚕的嫩叶及影响枝干的继续生长,所以从枝干顶端往下大概4~6片的枝干位置进行标注,这个位置也将作为桑叶采摘机的行程起点,标注过程见图6。

图6 标注界面

3.2 模型的构建与训练

为了减少所需的资源数量和加快训练,这里使用迁移学习的方法[18],即将从一个训练数据集上训练好的网络迁移到目标数据集上,迁移学习的工作流程如图7所示:(1)读取原训练网络;
(2)用标注出桑树枝干的训练集对网络进行训练;
(3)训练模型具有了识别桑树枝干的新功能;
(4)实现对新图像中桑树枝干的检测。Halcon中使用的网络优化算法是随机梯度下降法,大致思路是在训练数据集中,随机取出一部分数据集对网络进行训练,这样能加快每次学习的速度,并以此对滤波器的权重进行更新,其目的在于找到一个使得损失函数值最小的网络权重值,除了权重这类网络自身的参数会影响训练过程之外,一些类如学习率、迭代次数等超参数也会影响训练过程。

(1)

(2)

(3)

(4)

本文研究的图像背景复杂,需要更稳定的鲁棒性,故选用Resnet50目标检测网络模型。通过算子set_dl_model_param()设置学习率、迭代次数等模型参数,经过训练确定所用参数值。

在训练过程中,学习率分别设置为0.000 5、0.001、0.001 5和0.002,迭代次数设置为1 000,不同学习率的损失函数曲线见图8,由图可知,学习率为0.001时,损失函数收敛速度最快,且最终的损失函数值最小。损失函数曲线在迭代次数达到200次以后,下降速度逐渐变慢,达到600次以后损失函数曲线趋于水平,因此训练模型的学习率设置为0.001,迭代次数设置为600。

图8 不同学习率的损失曲线

3.3 模型的性能评价指标

训练模型的主要评估指标有平均精度均值(mean Average Precision,mAP)、交并比(Intersection over Union,IoU)、损失函数曲线、精度和召回率等[19]。本文使用精度P、召回率R、mAP和F1五个常用指标来验证模型的性能。对于二元分类问题,根据样本的真实类别和预测类别的组合,样本可分为四种类型:TP(真正例)、FP(假正例)、TN(真反例)和FN(假反例)。在本文中,当IoU≥0.5,为真阳性;
当0

表2 分类结果的混淆矩阵Tab. 2 Confusion matrix for the classification results.

精度P和召回率R定义为式(15)和式(16)。P被用来描述预测为正的样本与预测为正的样本的比例。R用于描述标记为阳性的比例与预测为阳性的比例。这两个值越高,算法的性能越好。

(15)

(16)

F1分数是从召回率和精度中得出的参考值,其值通常接近两者中的较小值。如果F1的分数很高,这表明调用和精度都很高,因此希望获得较高的F1分数。F1成绩定义为

(17)

平均精度(AP)可以显示模型在不同分数阈值下的整体性能。本文中,AP通过平均精度均值曲线上的精度值获得,定义为式(18)。mAP是所有类别/类别数的AP值之和,C是类别数。由于本文仅检测到桑树枝干,因此本研究中使用了C=1。

(18)

(19)

3.4 试验结果

为了检验训练得到的算法模型是否可以在各类模拟自然环境下实现对桑树顶端4~6片桑叶以下枝干的位置完成识别,使用测试集对模型进行测试,得到如图9的识别结果。

为验证这四种数据扩展方法对算法性能的影响,采用变量控制法删除全数据集中每种数据扩展方法对应的图像数据,分别生成四个算法模型,利用测试集对这四个算法模型进行测试,试验1~4分别对应删除旋转集、删除镜像翻转集、删除色彩增强集和删除同态滤波集,得到的平均精度均值曲线见图10,P-R曲线见图11。

(a) 原图

(b) 旋转

(c) 镜像翻转

图10 平均精度均值曲线

图11 各试验的P-R曲线

各模型的性能评价指标如表3所示。

表3 不同数据扩展方法的识别效果Tab. 3 Recognition effect of different data extension methods

由表3可知,经试验,全数据集对应的算法模型检测准确率P达到87.42%,召回率R为85.93%,均在85%以上。通过与全数据集的算法模型性能评价指标进行对比可以看出,在本文试验条件下,旋转法对于提高模型检测精度的影响最大,通过删除旋转法生成的图像所生成算法模型的AP降低了12.8%,F1评分降低了0.11。镜像翻转方法对提高模型检测精度的影响最小。删除镜像翻转图像后,训练模型的性能仅略低于完整数据集的性能,模型的AP降低了3.7%,F1评分降低了0.03。色彩增强方法和同态滤波处理方法对提高模型检测精度的影响适中,删除色彩增强方法处理的图像后,模型的AP下降7.8%,F1得分降低了0.09。删除同态滤波处理的图像后,模型的AP降低了7.2%,F1评分降低了0.05。

进行实地检测前,需要进行相机标定,标定的过程实际是建立图像世界与三维世界的关系,从而通过图像准确得知三维世界的真实状态[20]。相机镜头在拍摄物体时存在成像的畸变,对图像的后续处理会产生干扰,尤其对于测量,需要更高精度的矫正。因此使用Halcon标定助手,设置标定板的文件及摄像机参数。本文选取32 cm×32 cm,图像阵列为7×7的圆心陈列型平面标定模板进行标定,检测结果界面见图12。

图12 检测结果界面

在现场进行实时检测,固定相机位置,用杆件标定画面左上角原点位置,将算法检测出的枝干位置在桑树枝上标定,测量标定点相对于原点的实际坐标,将算法检测结果与现场人工测量结果进行对比,结果见表4。算法测量和人工测量的最大偏差为1.46 cm,最小偏差为0.43 cm,平均偏差为0.975 cm,满足要求。

表4 桑树枝干坐标检测结果对比表Tab. 4 Comparison table of the results of mulberry branch and trunk coordinates testing

本文基于深度学习理论构建了一种在复杂自然条件实现桑树枝干识别的模型,通过对模型的评估得出其识别准确率,并对不同图像处理方法有效性进行实验验证,又对检测模型得出的坐标结果与实际测量结果进行对比,得出以下主要结论。

1) 将深度学习理论用于复杂自然环境下桑树枝干的识别之中,算法模型在室外光照条件复杂、桑叶对枝干存在遮挡以及分枝较多的情况下仍有较好的检测效果,且检测到的枝干位置均在顶端4~6片桑叶以下的位置,有效地避免了采摘过程中损伤顶端嫩叶,检测模型准确率为87.42%,召回率为85.93%,已满足实际需求。

2) 使用不同的图像扩展方法模拟了枝干倾斜角度大、昏暗环境及光照极强环境,试验表明四种数据扩展方法对于提高模型的检测精度都有一定的效果。

3) 算法模型的检测结果与实际测量结果的平均误差为0.975 cm,满足实际应用要求,为桑叶采摘机的智能化发展奠定了基础。

猜你喜欢枝干桑树桑叶何 芳东坡赤壁诗词(2022年4期)2022-10-30发酵桑叶在动物生产中的应用四川蚕业(2022年1期)2022-06-06马桑树儿搭灯台音乐教育与创作(2022年1期)2022-04-26桑叶茶成“致富茶”今日农业(2021年21期)2021-11-26阳城:桑叶茶『火』了 农民乐了今日农业(2021年13期)2021-08-14桑树变身增收“摇钱树”今日农业(2020年16期)2020-12-14玫瑰或刺意林(2020年9期)2020-06-01玫瑰或刺领导文萃(2020年7期)2020-05-15奶奶家的桑树小学生作文(中高年级适用)(2018年3期)2018-04-18桑叶迷宫快乐语文(2018年36期)2018-03-12