APP下载

基于边缘计算的柑橘果实识别系统的设计

2022-01-07黄河清胡嘉沛李震魏志威吕石磊

关键词:柑橘聚类卷积

黄河清,胡嘉沛,李震,3,4*,魏志威,吕石磊,4

(1.华南农业大学电子工程学院(人工智能学院),广东 广州 510642;2.国家柑橘产业技术体系机械化研究室,广东 广州 510642;3.广东省农情信息监测工程技术研究中心,广东 广州 510642;4.人工智能与数字经济广东省实验室,广东 广州 510330)

随着智慧农业[1]以及计算机视觉技术[2]的不断发展,通过目标检测识别来定位果树果实的位置、协助机器人进行精准采摘并估产、测产等技术已具有较高的可行性,但当前对柑橘果实进行识别时大多还需要在高性能服务器端运行,无法兼具实时性和便携性,运用于实际场景中还比较困难。

目前对农业视觉任务的处理多应用深度学习技术[3–5]。王书志等[6]设计了显著性目标检测的葡萄叶片病害分割方法,通过多分辨率的网络来融合提取特征,并用形态学方法进行后处理,取得了62.5%的马修斯相关系数,结果高于全卷积神经网络,该方法具有较高的泛化性。李衡霞等[7]使用VGG16特征提取网络生成油菜害虫的初步位置候选框,进行分类和定位,对5 种油菜害虫的识别平均准确率达到94.12%。SA 等[8]通过迁移学习对水果进行目标检测,此方法兼顾了检测的准确性和召回性。薛月菊等[9]使用改进的YOLOv2 目标检测算法识别未成熟的芒果,在前景和背景颜色差别极小的情况下,检测性能显著提升,对果实的识别准确率达到97.02%,召回率达到了95.1%。TIAN 等[10]使用改进的YOLOv3 目标检测算法在3000 像素×3000 像素的图像分辨率下平均检测时间为0.304 s,可以实现对水果的实时检测。

将目标检测技术应用到柑橘作业任务中同样具有较好的识别效果。胡友呈等[11]通过将柑橘彩色图像的特征生成特征向量,降维后提取模型感兴趣的区域,获取得分最高的识别区域为最佳区域,对柑橘果实的识别准确率达到94%,具有较高的检测精度。郭泽方等[12]通过改进SSD,将主干网络更换为轻量级的Mobilenets,加快了对柑橘果实检测的识别速度,模型的识别速度达到38.48 帧/s,较改进前提高了3.18 倍。毕松等[13]使用深度学习算法提取柑橘检测网路中的高层语义信息,通过迁移学习、多重分割的方法增强了对柑橘果实检测的效果,减少了遮挡、重叠带来的影响,模型具有良好的鲁棒性。上述对柑橘果实检测的模型虽然获得了较好的效果,但是模型占用的内存和显存较多,导致检测速度的下降,若移植到嵌入式端,需进一步考虑柑橘检测的实时性需求。

为了解决当前柑橘检测模型不具备在真实场景中应用的条件和检测实时性不足的问题,笔者设计了基于边缘计算的便携式实时柑橘果实检测系统。通过优化YOLOv4–Tiny 网络模型,将批量归一化层(batch normalization 层)[14]合并到卷积层,使用K–means 聚类[15]方法得到适合柑橘数据集的先验框,更换损失函数为GIOU 边框度量函数[16],提高网络对柑橘图像密集区域的检测效率;基于边缘计算设备,将优化的目标检测算法移植到Jetson nano 嵌入式平台,以期得到更精确和实时的柑橘果实识别效果。

1 数据处理与平台选择

1.1 数据的采集与数据集制作

2019 年10 月,在湖南省宜章县柑橘果园拍摄果实图像,其中,室外图像1413 张,室内图像200张。从微软开源的COCO 数据集中提取柑橘果实类别图像400 张。将两类图像数据整合在一起之后,选取其中的900 张柑橘果实图像,运用Matlab 软件对柑橘果实图像使用调整亮度、对比度、色彩饱和度等数据增强方法,统一裁剪为416 像素×416 像素,又得到900 张增强后的图像。至此,数据集共包含2913 张柑橘果实类别图像。

使用Labelme 图像标注工具,对图像中的柑橘果实目标进行标注。将数据集2913 张图像按70%、20%、10%的比例拆分,训练集、验证集、测试集图像分别为2039、582、292 张。

1.2 边缘计算设备

柑橘果实识别系统中硬件设备主要由边缘计算开发板、可视化所需要的显示屏、外接摄像头和供电模块组成。选择Jetson nano 嵌入式平台作为外接USB 的主机接口,该平台配置了四核ARM Cortex–A57 CPU 处理器、4GB LPDDR4 内存和16GB 存储空间;使用Maxwell 架构GPU,浮点运算能力可达472 GFLOPS。平台支持多个处理器处理,具有丰富的AI编程神经元,加快设备运行深度学习算法速度;操作系统为Ubuntu18.04;平台在显示视频检测的工况下功率为5 W。系统平台供电电源模块为5000 mAh、12 V 的可均衡充电锂电池。

2 改进的YOLOVv4-Tiny 网络模型

2.1 YOLOv4–Tiny 网络模型结构

柑橘果实检测算法采用图1 所示的网络结构,模型输入为416 像素×416 像素分辨率的柑橘果实图像,经过特征提取网络提取特征后,通过2 个检测分支分别输出13 像素×13 像素、26 像素×26 像素分辨率的特征图,以供模型推理使用。

图1 改进的YOLOv4–Tiny 网络模型框架Fig.1 Framework diagram of improved YOLOv4-Tiny network model

2.2 算法改进

2.2.1 合并批量归一化层到卷积层

在网络的每一个卷积层之后,使用批量归一化层(BN)对网络超参数进行归一化处理,再使用激活函数激活,送入网络的下一层,使一个批量数据中的所有样本都被关联在一起,网络的输出不再局限于样本自身,可有效解决梯度消失与梯度爆炸的问题,一定程度上解决参数难以控制的问题。其前向传导公式如式(1)、式(2)所示。式(2)引入超参数γ、β,对整体作重构变换。

当批量归一化层单独为一层时,会影响模型整体计算速度,且占用嵌入式设备大量的内存和显存空间。在识别成批量的柑橘图像时,模型的前向推理速度直接影响识别效率,对嵌入式设备检测柑橘图像的实时性有较大的影响。将BN 层合并到卷积层,在不影响精度的情况下,加快了模型的推理速度。BN 层既可以避免网络的过拟合问题,也可以控制超参数的变化,加快模型的收敛速度。从映射的角度来看,BN 层的映射公式如式(3)所示。考虑卷积层也是一个线性映射,将二者合并,得到新的映射如式(4)所示,用一个卷积层来代替两层的运算。

式中:W为卷积核的权重值;b为偏移量;Fi,j表示卷积层的输入。

2.2.2 使用K–means 聚类算法改变先验框大小

K–means 聚类算法聚类原始数据时只有标注框的检测数据集,使用YOLOv4–Tiny 中产生的标注位置和类别的txt 文件,包括目标的相对区域位于原图的位置信息(x,y),以及目标框的宽和高(w,h),通过传统的K–means 聚类算法聚类k个相应高度和宽度的Anchor box 大小;引入IOU 值,最后得到的Anchor box 与每一个bounding box 计算IOU值,选取最大值,计算得出不同图像尺度下Anchor box 的大小;在所有的标注框都分配完毕后,为每个区域重新计算聚类中心,计算方式如式(5)、式(6)所示,其中N为样本总数。

在柑橘数据集中,由于柑橘果实相互之间的重叠、柑橘果实较小、与树叶之间的密集遮挡等问题,对柑橘的检测造成困难。通过使用K–means 聚类算法重新聚类原始的先验框大小,进而最大化匹配柑橘小目标。

2.2.3 基于GIOU 的边框损失函数

引入边框度量函数GIOU 检测边界框的优劣。在计算时,若A 框与B 框的相交区域为0 时,GIOU=IOU。GIOU 不仅关注重叠的区域,还高度关注非重合区域,当A 与B 的面积并集相对于最小外接矩形的面积很小时,GIOU 收敛于–1,更能反映两者的重合度。在使用的柑橘数据集中,柑橘果实密集重叠且难以轻易被识别,使用GIOU 作为柑橘目标检测网络的损失函数,使网络对遮挡、重叠的柑橘果实识别效果更好。

3 模型评估与验证

3.1 试验平台与数据

将算法移植到Jetson nano 嵌入式平台,主要参数设置为:每次迭代训练的样本数为64,共16 批次,对这些样本迭代12 000 次,每迭代1000 次,保存一次网络模型权重,初始学习率为0.001,在2000、6000 次迭代时使用动量相加的方式改变学习率。YOLOv4–Tiny 原算法在训练集上迭代9000 次后趋于稳定,改进的YOLOv4–Tiny 算法3000 次迭代之后稳定,模型拟合能力更强,学习效果更优。

3.2 评估指标

使用YOLOv4–Tiny 在COCO 数据集上得到的预训练权重进行迁移学习,通过反向传播算法来更新参数,不断回传参数来降低损失值。在训练过程中,运用多尺度训练策略,提高模型识别不同分辨率柑橘图像的效果。参照文献[17–18]的方法,选用平均准确率、对单张图片的处理速度和对视频帧的处理速度作为评价指标。

3.3 评估结果

3.3.1 使用BN 层合并到卷积层的检测结果

将BN 层合并到卷积层,以提升模型性能。表1 为各模型在Jetson nano 嵌入式平台和2080Ti 显卡上的推理时间对比。在不影响精度的情况下,对柑橘测试集500 张图片的前向推理时间为110 s,比合并前减少了36 s。

表1 在不同处理器上对柑橘果实检测的推理时间Table 1 Forward reasoning time of citrus fruit detection on different processors

3.3.2 使用改进的YOLOv4–Tiny 在Jetson nano应用的模型效果

为了验证改进后的YOLOv4–Tiny 在Jetson nano 嵌入式平台上运行的效果,通过比对不同网络框架与不同模型之间在Jetson nano 运行的差别来判断模型效果。对比结果如表 2 所示,其中YOLOv4– Leaky 为YOLOv4 模型将Mish 激活函数改为LeakyReLU。改进的算法与原始的YOLOv4相比,模型对图片的推理时间缩短2.25 s,视频的推理速率提高了15.5 帧/s;与YOLOv4–Tiny 相比,在准确率提高0.94% 的情况下,平均每张图片的推理时间快0.07 s,视频推理速率提高4 帧/s。

表2 不同网络模型对柑橘果实检测的效果Table 2 Effects of different network models on citrus detection

图2 为改进前后模型对同一张柑橘图像的识别效果,可以清晰地看到部分受密集遮挡未被识别的柑橘果实在改进的算法中被标识出来,体现了改进的柑橘果实检测模型的有效性。

图2 模型改进前后对同一柑橘果实图像的检测结果Fig.2 The result of detection for the same citrus fruit image before and after the model improvement

使用改进的YOLOv4–Tiny 对拍摄的柑橘果实图像进行检测,效果如图3 所示。

图3 对拍摄的柑橘图像的检测效果Fig.3 Detection results of captured citrus images

3.4 在拍摄的柑橘果实视频中实现对柑橘果实的检测

在Jetson nano 中使用改进YOLOv4–Tiny 算法对柑橘果实视频进行检测,结果模型对柑橘视频的处理速度为16 帧/s,可以快速有效地识别自然环境下的柑橘果实,在识别速度和便携性方面具有优势,可满足对柑橘果实识别的实时性要求。截取柑橘视频中连续的4 帧图像进行展示,如图4 所示,在每个框所显示的百分比数字为该类别的置信度,即模型认为检测框中存在目标的确信度。可以看出,模型对柑橘视频帧的检测效果较为理想,对被遮挡的柑橘果实也有较好的识别效果。

图4 视频中连续帧柑橘的检测Fig.4 Detection results of continuous frames in video

猜你喜欢

柑橘聚类卷积
一种傅里叶域海量数据高速谱聚类方法
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
一种改进K-means聚类的近邻传播最大最小距离算法
AR-Grams:一种应用于网络舆情热点发现的文本聚类方法
柑橘家族
从滤波器理解卷积
柑橘的秘密
基于Spark平台的K-means聚类算法改进及并行化实现