一种快速红枣表面缺陷识别方法

2024-01-12 13:03
大众标准化 2023年23期
关键词:红枣损失卷积

蒋 平

(榆林学院信息工程学院,陕西 榆林 719000)

随着产品市场化程度越来越高以及人们消费水平的提高,给红枣产业带来了巨大发展机遇,同时也为红枣产业的发展带来了新的挑战。机遇在于果品企业将红枣产品进行分级、包装后可大大提高红枣的附加值,为企业创造更多的利润。而挑战也在于此,传统的分级是通过人工进行,人工分选的问题在于主观性强、错误率高、劳动强度大、分选效率低,同时大大增加了人工成本,这严重阻碍了红枣产业的发展,因此研究开发一种红枣分级设备,由机器代替人工成为当前亟待解决的问题。

文章针对场景如图1 所示,利用辊轮传输带输送红枣从照相机下方通过,红枣可以滚动,所以能够拍摄到红枣的全部表面。红枣和辊轮都在一起运动前进,换而言之,连续视频中运动的不仅有红枣,还有辊轮,因而基于背景差分类的快速目标分割方式不适合该场景。

图1 红枣传输示意图

文章采用卷积神经网络分割图像方式分割红枣区域,然后对红枣单体目标再进行识别。设计的方法 采 用ERFNet (Efficient Residual Factorized Network) 分 割 红 枣, 然 后 再 用GCN(Gabor Convolutional Network)对红枣进行分类。

文章主要贡献有两点:

(1)设计了一种快速红枣分割以及红枣权限识别的方法,红枣分割耗时约0.02 s,单个红枣识别耗时约0.03 s;

(2)构建了一个红枣数据集,含有3 737 张用于分割训练红枣图像;3 022 张用于训练识别的单体红枣图片。

1 相关工作

1.1 ERFNet

文章方法采用的ERFNet 框架如图2 所示,整个网络分成两个部分,第一部分是编码,第二个部分是解码。

图2 文章采用的ERFNet 主干网络

输入图像大小为320×240×3 彩色图像,经过三次降采样,然后再经过三次上采样,最终输出320×240×2 特征图,一个320×240 的特征图对应背景,另一个对应目标红枣区域。

1.2 GCN

GCN 结合了普通卷积神经网络和Gabor 滤波两者的优势,对纹理检测非常有效,通常只需普通卷积神经网络的1/3 资源就能达到同等的性能。

文 章 采 用 的GCN 结 构 如 图3 所 示, 输 入100×100 的RGB 图像,先经过一个标准卷积层,转换为4×100×100 特征图,然后连续经过4 个Gabor 卷积层,再经过一个最大化操作和全卷积,最终输出2 000×1 的特征向量。该模型非常轻量,准确率与ResNet-18 相当,但计算速度快4~5 倍。

图3 文章采用的GCN 网络框架图

2 红枣表面缺陷快速检测方法

文章提出的红枣表面缺陷快速检测方法首先采用ERFNet 检测红枣区域,然后利用GCN 对单体红枣目标提取特征并识别。

提出方法主要流程如图4 所示,算法步骤如下:

图4 红枣表面缺陷快速识别流程图

(1) 单 帧640×480×3 图 像Img 转 换 成320×240×3 后输入ERFNet(如图2 所示),输出2 个320×240 特征图,并变换成640×480 特征图,最后两个特征图中对应像素点值大设1,反之设0,得到红枣区域对应的掩模mask。

(2)在mask 中采用OpenCV 中的findContours提取轮廓,若轮廓面积大于2 000 则认为是红枣区域,再采用minAreaRect 方法获得矩形坐标,在原图Img 中剪裁出相应的区域,并转换成100×100 大小,形成单体红枣图像img_crop。

(3)img_crop 输入GCN(如图3 所示),输出结果中最大值对应的类别就是识别结果。

红枣外部缺陷检测,实质上就是一个图像分割任务,再加分类任务。

3 仿真实验及结果

3.1 数据集及训练过程

3.1.1 数据集

采集了3 737 张红枣图像,利用Labelme 标注工具标注红枣轮廓,共有3 737 张图像用于训练ERFNet 模型。

利用训练好的方法分割模型,切割出4 908 张单枣图片,每张图片由10 名观察者给出选项(正常枣、烂枣、霉枣、不确定),定义为得票超过5 的类别,最终获得1 880 正常枣、678 烂枣、464 霉枣图像。

3.1.2 模型训练

文中涉及到EFRNet 和GCN 两个模型参数的训练。训练分割模型EFRNet 时,共有3 737 张图像,其中90%用于训练,10%用于验证。损失是Dice 损失和标准交叉熵损失(Softmax 损失)之和,采用RMSProp(Root Mean Square Propagation) 优化方法,迭代100 Epoch,每批处理64 张图片;初始学习率设置为0.005,分别在第30、80 Epoch 时下降90%。

训练GCN 模型时,共有4 908 张图片,其中正常枣、烂枣、霉枣各选取100 张,共300 张用于测试,训练图像4 608 张。采用标准交叉熵损失和标准随机梯度下降优化方法,初始学习率0.001,训练100 Epoch,40 Epoch 后每隔10 Epoch,学习率下降20%;每批处理64 张图片。

3.2 实验结果

训练机配置为:Intel 至强银牌CPU,内存32G,RTX 3090 显 卡, 操 作 系 统 为Windows Server 2020, 开 发 环 境 是Python 3.8 + Torch 1.12.0。

EFRNet 模型训练时的损失如图5(a),交叉熵损失和Dice 损失均保持在0.01 左右,总损失0.02。验证集的精度(Dice 系数)如图5(b)所示,最后保持在0.985 左右,非常接近于理想值1。

图5 EFRNet 和GCN 模型训练时损失和精度

GCN 模型训练时的损失如图5(c)所示,训练集的损失几乎是平稳下降,测试集的损失在前期波动非常大,后期也有较小的波动。识别准确度如图5(d)所示,训练集的准确率稳定上升,后期一直保持在100%,而测试集的准确度有较大波动,后期基本保持在97.5%左右,最高达到98.7%。

提出方法的仿真系统如图6 所示,PyQT 编写界面,在CPU 处理下,红枣分割耗时0.02 s,单个红枣识别耗时0.03 s。

图6 红枣检测仿真系统

4 结束语

文章设计了一种快速检测红枣表面缺陷的方法,采用了先分割红枣区域,后识别的方法,速度达到20帧/秒,基本达到实时要求。

猜你喜欢
红枣损失卷积
基于3D-Winograd的快速卷积算法设计及FPGA实现
胖胖损失了多少元
一颗大红枣
我爱家乡的红枣
从滤波器理解卷积
红枣期货价格大涨之后怎么走
玉米抽穗前倒伏怎么办?怎么减少损失?
基于傅里叶域卷积表示的目标跟踪算法
分红枣
一般自由碰撞的最大动能损失