APP下载

深度学习结合快速导向滤波识别自然环境下脐橙果实

2022-07-07熊正午吴瑞梅黄俊仕李霸聪戴仕明艾施荣

江西农业大学学报 2022年3期
关键词:脐橙滤波聚类

熊正午,吴瑞梅,黄俊仕,李霸聪,戴仕明,艾施荣*

(1.江西农业大学 软件学院,江西 南昌 330045;2.江西农业大学 工学院,江西 南昌 330045)

【研究意义】脐橙具有味道芳香浓甜、果肉营养丰富等特点,深受消费者喜爱。脐橙种植收益高,而目前脐橙采摘以人工为主,耗时长、时效差、采摘周期短,短期内采摘强度大,采摘成本占到全部生产成本的30%~40%[1]。实现脐橙自动化智能化采摘已成为亟需解决的问题。随着智慧农业科技的应用,采摘机器人必将成为未来农业机器人发展的重要方向。而要实现采摘机器人工作在自然环境下果实的成功采摘,必须能从复杂的自然环境中准确地识别目标,计算其三维空间坐标,将果实进行准确定位,指导机器人末端执行机构精确完成目标果实的采摘。【前人研究进展】国内外研究者采用机器视觉技术结合图像处理技术实现非接触式单个果实的快速识别进行了大量研究[2-6]。在自然环境下果实生长环境和生长背景较为复杂,传统图像识别算法难以满足识别精度要求,而深度卷积神经网络对如强光、弱光、果实重叠和枝叶遮挡等自然环境下的目标识别和检测都具有较强的鲁棒性和识别性能,基于卷积神经网络的深度学习算法已成为计算机视觉研究的主要方向[2]。彭红星等[3]提出一种基于(single shot multibox detector,SSD)改进的目标检测方法,使用ResNet-101 主干网络替代原始SSD 模型中的VGG16 主干网络,该模型对荔枝、皇帝柑、苹果和脐橙等4 种水果的平均识别精度达到88.4%。熊俊涛等[4]利用Faster R-CNN 网络模型对自然环境下绿色柑橘果实进行识别研究,其综合识别率达到77.45%。Mao 等[5]提出一种基于多路径卷积神经网络(MPCNN)的黄瓜果实识别新方法,结合颜色特征和支持向量机算法,识别率达90%以上。Tian 等[6]通过对YOLO v3 进行改进,实现了对处于生长时期不同阶段苹果的有效识别,该模型对生长期的苹果识别的F1 值达到78.3%、膨果期的F1 值达到79.1%、成熟期的F1 值达到80.9%。

【本研究切入点】面对自然环境下果实采摘的识别问题,自然环境下光照等噪声信息会导致采集图像模糊,影响结果分析。目前,有研究者采用导向滤波方法去除各类噪声信息,该方法能有效平缓图像噪声,同时又能运用于图像去雾[7]和红外图像的增强和融合等[8-9]。考虑去除自然环境下光照等噪声因素及所建立果实识别模型的识别速度和准确率,快速导向滤波图像去噪方法和带有残差模块的YOLO v3目标检测方法能解决上述问题。【拟解决的关键问题】为提高在自然环境下脐橙果实的识别准确率,本文以赣南脐橙为研究对象,提出一种基于多尺度卷积神经网络的非接触的脐橙果实识别方法,改进YOLO v3 目标检测算法,将多尺度融合的3 尺度检测网络减少为2 尺度检测网络,设计自然环境下脐橙果实快速识别模型,模型融合快速导向滤波算法,使用GIoU 边界损失函数替代原有损失函数,通过DBSCAN+Kmeans聚类算法,对训练数据集进行聚类分析,优化2个预测分支的先验框尺寸。在脐橙真实种植环境下,利用自然环境下脐橙果实快速识别模型,可以从脐橙数据集图像中去除光照等噪声信息,突出脐橙图像的颜色和纹理特征,同时获取目标类别与预测框位置,设计单果、向光、背光、果实重叠、枝叶遮挡5组不同环境下测试集的对比实验,验证在复杂自然环境下模型的识别性能。

1 材料与方法

1.1 脐橙数据采集

脐橙果实图像采集于江西绿萌科技控股有限公司赣南脐橙基地(2019 年11 月、2020 年11 月),采集时间为08:00—17:00,图像采集设备为Canon EOS 70D,图像格式为JPG 格式,图像分辨率为4 032×3 024 像素,脐橙的种植方式为篱壁式和宽行窄株式两种,共采集自然环境下原始图像2 400 幅,如图1 所示。

图1 自然环境下脐橙果实图像样本Fig.1 Sample image of navel orange fruit in natural environment

1.2 脐橙数据集及标签制作

本研究脐橙图像背景包括向光、背光、独立与相邻、遮挡等几种情况(图1 所示),其中独立与相邻是指单个脐橙果实和多个脐橙果实且没有枝叶遮挡或枝叶遮挡小于1/4 的情况,遮挡表示单个脐橙果实和多个脐橙果实有枝叶遮挡超过1/4。从拍摄的2 400 幅脐橙果实图像中筛选出清晰的、具有代表性的脐橙图像1 500 幅。将经过预处理后的脐橙图像样本存入orange 文件夹下,并统一批量重命名为000x.jpg 格式。使用图像标注软件labelImg 进行标签制作,按照POSCAL VOC2007 数据集格式划分训练集和测试集。

1.3 脐橙图像快速导向滤波方法预处理

快速导向滤波(fast guided filter)是一种基于局部线性模型的保边滤波算法,该方法在导向滤波基础上进行改进,在导向图像指导滤波过程利用线性可变原理,有效地减少噪声,增强图像信息细节,准确实现边保持,减少光晕现象,同时减少算法的运算时间[10-12]。快速导向滤波去噪实现原理如下,其中,p为输入图像,q为输出图像,I为导向图像,则滤波模型定义为:

式中,i,j为图像的像素点,Wij为导向图像I和输入图像p的函数。

在以像素点k为中心、r为半径的局部方形窗口ωk中,q和I之间存在线性关系,线性核函数可表示为:

式中,ak表示该线性函数的权重值,bk表示该线性函数的偏置值。

ak和bk在中心点k及半径r都不变的局部窗口ωk中为定值,ak和bk值由最小二乘法最小化输出图像q与输入图像p之间的平方差求得,即:

式中,ϵ表示正则化参数,参数ϵ能防止ak值过大,且保证输入图像p与输出图像q之间的差值减小,该参数值需经大量试验并反复对比图像质量得到,ak和bk值由线性变换得到:

式中,μk为I窗口ωk的均值为I窗口ωk的方差,|ω|表示窗口ωk的像素总数,pˉ表示p在窗口ωk的像素均值。

由于像素i存在多个窗口ωk,故取所有窗口的均值为系数ak和bk:

算法是在导向滤波的基础上通过下采样减少像素点,在计算线性函数的权重值ak与线性函数的偏置值bk的均值后进行上采样恢复到原有尺寸大小。如缩放比例为S,则缩小后像素点的个数为N/S2,时间复杂度为O(N/S2)。

1.4 深度学习算法及优化

YOLO(You only look once)是深度学习中一种基于端到端的单阶段目标检测与识别算法,其主要思想是将一个分类检测问题转换为一个数学回归问题,实现目标位置与分类识别的结合,具有实时性等突出特征。YOLO 对输入图像的全局区域进行学习,可加快训练速度,且能更好地区分目标和背景。在主干网络完成对脐橙果实的特征提取后,通过Bounding box 预测的方式,能够同时完成目标位置和目标类别的预测任务。

1.4.1 YOLO 网络模型 YOLO 有一系列网络模型如YOLO v1、YOLO v2、YOLO v3,其中YOLO v1 存在目标定位不准确与网络模型检测精度低等缺陷,YOLO v2为进一步提升网络模型性能,通过修改网络结构,同时加入批量归一化、锚点框和高分辨率分类器等方法进行改进,提高识别速度,但对目标重叠的情况识别率较差,YOLO v3改变网络模型结构,引入多尺度融合训练、锚点框选择机制和残差模块等操作,极大提升了网络模型性能。本文选用YOLO v3 网络模型,根据脐橙果实在自然环境下的生长特征,对YOLO v3网络模型中的相关参数进行调整和改进,实现自然环境下脐橙果实的识别,由于小目标识别存在漏检率高等缺陷,主干网络相对于YOLO v2的Darknet-19网络,采用综合性能更好的Darknet-53网络来进行特征提取,将多尺度融合的3尺度检测网络减少为2尺度检测网络,该网络增加了残差模块,运用残差网络,可保证网络在结构较深情况下,模型能够继续收敛且不断被训练,获得高维特征,从而提高预测准确率[13]。

1.4.2 多尺度检测模型改进 为了更好地对脐橙目标进行检测,本文在尺度融合部分对YOLO v3 网络进行改进,改进的YOLO v3 网络结构如图2 所示。图中DBL 模块是该网络的基本组件,包括卷积、批量归一化(batch normalization,BN)和激励(leaky ReLU)操作;Res Block 表示残差模块,Res_unit 表示残差单元,使用残差结构,可以使网络结构更深,从而获得高维特征。该网络结构中,每一个Res Block由n个Res_unit 构成,且每个Res_unit 都需要一个add 层,故共含有23 个add 层。张量拼接(concat)功能主要是为了实现网络多层特征的复用和融合,将卷积前后的特征图进行拼接;相比于其他网络,该网络通过改变卷积核的步长来实现张量尺寸的变换,删去所有的池化层和全连接层,进而减少检测时间。同时为了提高分类准确度,将用于多标签多分类的逻辑回归层替代原单标签的softmax 层。该网络为针对果园中脐橙果实进行检测,将原始高分辨率的图片统一转化成512×512 的图片,以YOLO v3 网络为基础,采用Darknet-53 为特征提取网络,将多尺度融合的3 尺度检测网络减少为2 尺度检测网络,最后在16×16 和32×32尺度的边界框上进行目标检测。

图2 改进的YOLO v3网络结构Fig.2 Network structure of improved YOLO v3

1.4.3 损失函数改进 为了提高自然环境下脐橙果实快速识别模型的识别精度,通过优化训练模型的损失函数,使得目标置信度、目标位置和目标类别三者的训练误差达到平衡[14]。YOLO v3的损失函数为:

式中,δ(box)为预测边界框box的误差函数;δ(conf)为预测置信度conf的误差函数;δ(c)为预测类别c的误差函数;kbox、kconf、kc为误差权重系数;L为损失函数。

对于目标检测的边界框回归指标,大多数网络均采用L1 和L2 范数作为边界框回归损失函数,其计算损失值实际是通过间接的相对距离计算,但没有考虑在边界框回归中真实框和预测框之间的交并比IoU的作用,IoU定义如下:

式中,P是目标的预测框;G是目标的真实框;IoU是真实框和预测框之间的交并比。

IoU是比较预测框与真实框之间最常用的度量标准,但IoU无法直接作为回归距离,为了提高位置精度,本文使用GIoU距离作为边界框的损失评价标准[15],GIoU距离计算具体如下:

(2)计算矩形框BP、Bg面积及交集I、并集U面积;

(6)输出GIoU距离LGIoU=1 -GIoU。

将式(7)中δ(box)用GIoU距离进行替代,使用改进的损失函数进行模型训练。

1.4.4 目标先验框聚类算法 原始YOLO v3 中先验框尺寸是基于COCO 数据集和PASCAL VOC 数据集先验框大小设定的,相较于COCO 数据集和PASCAL VOC 数据集,本文训练所使用的脐橙数据集中样本类型较少、尺度跨度较小,为了保证先验框与其相邻的预测框之间能有更大的IoU,本文对聚类算法进行优化,在所构建的脐橙数据集上,使用DBSCAN(density-based spatial clustering of applications with noise)聚类算法+Kmeans 聚类算法对训练数据集聚类分析。首先使用DBSCAN 聚类算法分析聚类个数和聚类包含的点,可以解决聚类时噪音点或者孤立点对聚类结果的影响,同时可以为Kmeans 聚类算法提供准确的K值;再通过Kmeans 聚类算法对DBSCAN 聚类结果分析确定聚类中心[16]。

本文使用优化后的聚类算法对脐橙数据集进行先验框聚类分析,经DBSCAN 聚类算法分析确定K值为6,然后使用Kmeans 聚类算法进行迭代后选取的先验框尺寸为(37×30)、(43×40)、(50×34)、(57×43)、(68×54)、(86×67),得到2个预测分支的先验框尺寸。表1展示了聚类算法改进前后,不同先验框尺寸和检测结果对比,改进后的聚类算法得到的先验框尺寸对检测结果具有较大的提升,识别速度比原网络提高到27.42 fps,F1值达到了93.23%,提高了0.52个百分点。

表1 不同先验框检测结果对比Tab.1 Comparison of detection results of different anchor box

1.4.5 脐橙果实识别模型架构及评价指标 本文构建的自然环境下脐橙果实快速识别模型主要包含数据预处理和脐橙果实快速检测网络两个模块,数据预处理模块是在采集数据样本后进行图像处理,如减小光照影响,数据增强以及归一化处理等,快速检测网络模块是基于Darknet-53 为特征提取网络,快速提取训练集和验证集中在自然环境下脐橙果实的主要特征,结合多尺度检测模块,同时获取目标类别与预测框位置,根据改进后的损失函数,使优化器不断调整参数,最后训练出脐橙识别模型。自然环境下脐橙果实快速识别模型架构如图3所示。

图3 自然环境下脐橙果实快速识别模型的架构Fig.3 Framework of fast recognition model for navel oranges under natural environment

本文以准确率(precision,P)、查全率(recall,R)、F1值(F1-score)以及识别速度(speed,S)作为脐橙识别模型的性能评价指标,其中F1值能够同时考虑准确率和召回率两者,其计算公式为:

式中,TP表示实际为正样本且被检测为正样本的数量,FP表示实际为负样本且被检测为正样本的数量,FN表示实际为正样本且被检测为负样本的数量。

2 结果与分析

2.1 导向滤波结果分析

为有效保留脐橙图像的边缘信息,采用快速导向滤波法去噪时,导向图像I和输入图像p都采用原始图像。由式 (1)~(6)知,参数ak和r直接影响方法的去噪程度和边缘保留度,由式(3)知,ϵ的取值范围在0~1,且ϵ在ak分母部分,直接对ak产生影响,故可改变ϵ值来改变ak的大小。而r值直接控制窗口的大小,从而影响局部像素点的多少,当ϵ和r取不同值时,去噪效果不同,经过对比分析,当ϵ=0.01,r=4时,去噪效果最佳(图4红框所示)。由图可看出,原始脐橙图像经过快速导向滤波去噪及图像增强后,脐橙表面的颜色和纹理信息更加明显,在背景对比下更加突出,说明采用导向滤波方法能有效去除自然环境下背景噪音对脐橙图像信息的影响。

图4 不同参数下导向滤波去噪效果Fig.4 The denoising results by guided filtering with different parameters

2.2 不同去噪方法预处理效果对比

常用的图像去噪方法有最小二乘滤波、中值滤波、K 近邻平均滤波、小波阈值等,中值滤波是一种基于排序统计理论的经典去噪方法,能有效保护图像的边缘信息,小波阈值是一种基于傅里叶分析的去噪方法,能得到更多的边缘细节。

图5为基于中值滤波、小波阈值和导向滤波方法对脐橙图像去噪及增强效果图,由图5可看出,由快速导向滤波预处理后的脐橙图像,其颜色和纹理特征明显优于其他两种方法(图5中红框所示),说明导向滤波去除自然环境下各种噪音效果优于其他两种方法。

图5 不同去噪方法对脐橙图像去噪及增强对比Fig.5 Comparison of denoising and enhancement results with different denoising methods on navel orange leaves images

2.3 网络模型训练与结果分析

2.3.1 参数设置与模型训练 试验采用Darknet 深度学习框架,进行训练所用的PC 端配置为:Ubuntu 16.04LTS 操作系统,英特尔Xeon(至强)W-2133@3.60GHz 六核,显卡为两张Nvidia Quadro P2000,NVIDIA 440.82 驱动,CUDA 10.2 版本,CUDNN 神经网络加速库版本为7.6.5。网络参数是对YOLO v3论文[17]中部分参数进行修改,经多次试验后比较选取效果最优的参数。输入样本为512*512 像素,每次迭代训练的样本数(bath)为64 个,共32 批次,动量因子(momentum)为0.9,权重衰减系数(weight decay)为0.000 5;训练的最大迭代次数(max_bathes)为12 000,初始学习率(learning rate)为0.000 5,学习率调整策略为steps,学习率分别在迭代次数为9 600 和10 800 时减小到之前的0.1 倍,同时使用对比度调整、图像翻转、虚化等方法对训练集进行数据集增强,能够训练出更适用的脐橙果实识别模型。

采用迁移学习方法对样本集进行训练,训练集与验证集比重为8∶2,使用Darknet-53 网络在COCO数据集上的预训练权重作为模型的初始权重。对脐橙数据集进行模型训练,得到自然环境下脐橙果实的识别模型。对训练集和验证集进行12 000 次迭代训练后,其误差变化曲线如图6 所示,训练误差曲线可以清晰看出损失函数值的变化趋势,在前3 000 次迭代过程中,损失函数值下降较快,网络快速拟合;之后开始缓慢下降,中间有两次较大的波动,5 000次迭代后损失函数基本趋于平稳,损失函数值最低达到了0.15左右(图6虚线所示),由此可知改进的YOLO v3网络性能优良。

图6 训练误差变化曲线Fig.6 Training error curve

2.3.2 模型识别效果及对比 为了验证改进后模型对自然环境下脐橙果实的识别效果,设计了改进后模型与YOLO v3模型的识别效果对比试验。考虑不同网络在单果、向光、背光、果实重叠、枝叶遮挡等情况,脐橙果实识别效果对比试验结果如图7所示。

图7(a)是YOLO v3模型识别效果图,图7(b)是本文在YOLO v3基础上改进后模型识别效果图,由图可看出,YOLO v3 识别模型在单果大目标物体图像上只能大致识别出脐橙主体,但边缘出现了错检情况;改进后模型能够完整的识别出脐橙整体,且没有出现错检情况。YOLO v3识别模型在向光及背光图像上只能识别出脐橙主体,且出现了漏检情况;改进后模型在这两种图像上均能完整识别出脐橙整体,且对小目标物体识别效果理想,未出现漏检情况。YOLO v3 识别模型对果实重叠及枝叶遮挡图像上识别效果不佳,把重叠的3个脐橙识别成1个,对枝叶遮挡严重和图像边缘小物体均出现了漏检情况;改进后模型能把重叠的3个脐橙都识别出来,对枝叶遮挡严重和图像边缘小物体也能成功识别出来。两组测试结果说明了改进后模型的识别效果更优。

图7 脐橙果实识别图Fig.7 Navel orange fruit identification map

2.3.2 模型识别性能及对比 为进一步准确评估改进后模型对自然环境下脐橙果实的识别性能,将改进后模型与YOLO v3 模型、单阶段目标检测模型中的代表SSD 模型以及两阶段目标检测模型中的代表Faster R-CNN 模型进行识别性能对比,选择了50幅未参与训练的脐橙图像对模型性能进行对比试验,表2为4种识别模型的检测结果。

由表2 可以看出,改进后模型相较于同为单阶段模型的SSD 模型,F1 值提高了3.39 个百分点,各项指标均优于SSD 模型,但Faster R-CNN 模型的F1 值仍高于改进后模型,这是由于改进后模型与Faster R-CNN 模型相比,少了生成候选区域这一步骤,所以F1 值比Faster R-CNN 低了1.26 个百分点。虽然两阶段模型相较于单阶段模型而言,F1 值更好,但单阶段模型的识别速度在同等配置情况下远高于两阶段模型,YOLO v3 模型和SSD 模型的识别速度分别为25.86 fps 和22.56 fps,均远超于Faster R-CNN 的1.44 fps,相较于YOLO v3 模型,虽然加入了图像预处理模块,但由于将3 尺度检测网络减少为2 尺度检测网络,改进后模型的识别速度提升达到了26.48 fps,实时性较好,且F1 值提高了1.45 个百分点。试验结果表明,改进后模型综合性能最好,可以同时满足脐橙采摘机器人对脐橙果实识别精度和识别速度的需求。

表2 4种识别模型的检测结果Tab.2 Detection results of four recognition models

3 结论与讨论

为提高脐橙果实在自然环境下的识别率,本文根据脐橙果实在自然环境下的生长特点,通过改进导向滤波方法去除自然环境下脐橙图像的光照等噪声信息,突出图像的颜色和纹理特征。在YOLO v3 方法上基础上进行改进,采用带有残差模块的Darknet-53 作为特征提取网络,将多尺度融合的3 尺度检测网络减少为2 尺度检测网络,引入GIoU 边界损失函数代替原损失函数,使用DBSCAN+Kmeans 聚类算法,分析优化出两个预测分支的先验框尺寸,采用迁移学习方法进行模型训练,并与其他几种识别模型性能进行比较。研究表明,改进后模型对自然环境下脐橙果实的识别准确率达到了91.22%,召回率为97.30%,F1 平均值为94.16%,识别速度为26.48 fps,综合性能明显优于其他模型,为脐橙采摘机器人提供了可行的视觉识别思路。

在测试脐橙果实识别模型的过程中发现,模型无法对遮挡较为严重的脐橙果实进行识别,为进一步提高模型的识别性能,今后研究通过增强脐橙数据集和优化网络结构等方法,进行多种显著特征的提取,提高网络在各类自然环境下的识别能力,以适应果园中复杂多变的环境。目前改进的YOLO v3模型仅应用于成熟脐橙目标检测方面,而实际应用中往往会有不同成熟度的脐橙目标,因此将来可扩充不同成熟度的脐橙数据集,从而对不同成熟度的脐橙进行实时检测还可进一步研究。

致谢:江西绿萌科技控股有限公司对本研究给予了支持,谨致谢意!

猜你喜欢

脐橙滤波聚类
脐橙连上物联网 扫码便知“前世今生”
一种傅里叶域海量数据高速谱聚类方法
基于HP滤波与ARIMA-GARCH模型的柱塞泵泄漏量预测
基于改进自适应中值滤波的图像降噪方法*
基于知识图谱的k-modes文本聚类研究
一种改进K-means聚类的近邻传播最大最小距离算法
基于模糊聚类和支持向量回归的成绩预测
家乡的脐橙林
基于非下采样剪切波变换与引导滤波结合的遥感图像增强
奉节脐橙