基于深度学习技术的烟梗形态分类与识别

2021-06-24 07:09肖雷雨刘渊根堵劲松徐大勇
烟草科技 2021年6期
关键词:类别分类图像

肖雷雨,王 澍,刘渊根,张 龙,王 玲,堵劲松,徐大勇*

1.安徽大学物质科学与信息技术研究院,合肥市蜀山区九龙路111 号 230601

2.中科院合肥物质科学研究院,合肥市蜀山湖路350 号 230031

3.中国烟草总公司郑州烟草研究院,郑州高新技术产业开发区枫杨街2 号 450001

4.安徽省烟草公司,合肥市政务区潜山南路666 号 230072

烟梗作为卷烟的主要原料之一,可以将其加工制成填充值高、燃烧性好的梗丝或梗粒,对于减害降焦、降低配方成本、改善卷烟物理质量具有重要作用。因此,长梗率、梗中含叶率、粗梗率、梗头比例等是衡量卷烟产品质量和加工水平的重要指标,且对切丝后梗丝结构、出丝率、梗签比例以及卷烟物理质量具有显著影响。针对此,李金学等[1]研究了梗丝结构对卷烟质量稳定性的影响;白永忠等[2]发现不同类别烟梗制成的梗丝在物理、化学、感官品质方面均存在差异。根据国家烟草专卖局《打叶复烤技术升级重大专项实施方案》,目前行业内打叶复烤技术与整个卷烟生产产业链相比明显处于滞后状态,亟需进行数字化技术升级。其中,烟梗的长梗率、梗中含叶率(梗含叶)、梗头比例及粗梗率等指标仍依靠人工在线取样检测,并采用“四分法”等方法进行分类,劳动强度高,检测误差大。因此,建立能够快速、准确识别烟梗形态和特征参数的方法,实现烟梗质量在线检测,对于提高打叶复烤和制丝加工工艺水平具有重要意义。近年来,计算机视觉技术在农作物生产管理和质量检测方面已有广泛应用,田有文等[3]对葡萄的病害图像进行处理和分类;王献锋等[4]提出了一种黄瓜叶片的病害图像分类识别方法。在模式识别与目标检测算法方面,深度学习技术依靠其自动构建特征工程的特性已逐步取代传统图像识别算法[5]。其中,洪金华等[6]使用YOLOv3 模型对烟虫进行检测;高震宇等[7]使用卷积神经网络检测烟丝物质组成。但对于烟梗分类识别的研究应用则鲜见报道。为此,在分析不同类别烟梗形态差异的基础上,建立了一种深度学习烟梗分类识别模型,通过在YOLOv3 骨干网络Darknet53[8]的3 层预输出中添加一条增强纹理特征的路径,提升模型对局部烟梗纹理特征的识别能力,并对模型性能进行验证,以期实现对3 个类别烟梗的精准分类识别,为提高烟梗质量在线检测水平提供参考。

1 材料与方法

1.1 实验材料

样品为2018 年福建南平C2F+C3F 配打后复烤前烟梗,直接在输送带上取样,共20 kg。烟梗类别分为纯烟梗、梗头与梗含叶,见图1。

图1 3 个类别烟梗图片Fig.1 Images of three kinds of tobacco stems

1.2 实验设备和深度学习环境的搭建

1.2.1 烟梗实时分类识别系统

为了对烟梗图像进行快速采集以及对烟梗分类识别效果进行测试,设计了烟梗在线分类识别系统。该系统的硬件结构主要由计算机、输送皮带机、环形LED 光源、高速CCD 相机等部分组成,见图2。其中,NVIDIA Jetson TX2 板载AI 计算机在Ubuntu16.04 操作系统下完成分类识别算法,CPU 为Intel core i7,内存为16G,GPU 为NVIDIA GeForce GTX 1080Ti,同时安装了CUDA9.0、cudnn7.1、Opencv3.4、python3.5等第三方库以支持模型运行;相机为USB3.0 接口工业相机,分辨率为4 208×3 120 pixel,镜头为低失真广角C 接口镜头。系统与烟梗物料输送线之间通过多级差速皮带连接,烟梗被输送至系统的检测工位时呈离散状态。

图2 烟梗分类识别系统结构图Fig.2 Structure of classification and identification system for tobacco stems

1.2.2 深度学习环境的搭建

本研究中采用带动量因子(momentum)的小批量(mini-batch)随机梯度下降法(Stochastic Gradient Descent,SGD)进行模型训练,小批量样本数量设置为128,subdivision 参数设置为16,动量因子设置为固定值0.9,前1 000 次学习策略采用burn_in,1 000次以后学习率策略采用multisteps。初始学习率为0.001,在40 000 次和45 000 次分别乘以0.1 降低学习率。为防止过拟合,将正则化系数设为0.000 5,共迭代50 000 次且每隔2 000 次保存1 次模型,最终选出最优模型。使用最优模型分类识别测试集,以人工识别结果为基准,对比本研究中提出的算法与其他主流深度学习算法的识别准确率。

1.3 算法评价

1.3.1 实验误差指标

基于每批次的实际数量与识别数量,根据公式(1)统计该批次总识别误差:

根据公式(2)计算单类别烟梗识别误差:

式中:x 为烟梗类别;T_N 为该批次烟梗总数,个;Nx为人工挑选出的某类别烟梗的实际数量,个;nx为系统识别出的该类别烟梗的数量,个;Abs 为计算绝对值函数;E1为该批次总识别误差,%;E2为类别烟梗识别误差,%。

1.3.2 模型评价指标

采用精确率P(Precision)、召回率R(Recall)、单类别识别精确率AP(Average Precision)和AP 的均值mAP(mean Average Precision)对烟梗检测识别模型进行评价,计算公式分别为:

式中:TP 表示模型对某类别烟梗进行预测且预测正确的数量,个;FP 表示对某类别烟梗进行预测但预测错误的数量,个;FN 表示模型预测不是某类别烟梗但预测错误的数量[9],个;P 表示某类别烟梗的预测正确比例,%;R 表示某类别烟梗被正确识别出的比例,%;P(R)表示以R 为参数的函数;AP 表示某类别烟梗识别精确率,在模型迭代运算过程中,对于每一个R 值,可以计算得到对应的P 值,对所有P值求平均则得到AP,%;mAP 为3 类样本AP 的均值,%;i表示烟梗类别(纯烟梗=1,梗头=2,梗含叶=3)。

2 算法的构建

2.1 烟梗分类识别系统工作流程

烟梗分类识别系统工作流程见图3。主要步骤:①对相机进行标定和畸变复原,获取图像的畸变参数与像素对应的实际尺寸;②采集烟梗图像(纯烟梗、梗头及梗含叶)进行标注,制作烟梗数据集(包括图像文件及标注文件);③构建深度学习网络,在烟梗数据集上进行训练,生成烟梗分类模型;④在线采集烟梗图像进行目标区域检测与图像裁剪,以减少运算量;⑤将裁剪好的图像输入训练好的分类模型进行识别;⑥测量图像中烟梗的长度、宽度、面积等几何参数。

图3 系统的工作流程图Fig.3 Flow chart of the system

2.2 烟梗图像数据的采集

采集并制作单样本图像3 000 张(每个类别各1 000 张),同时使用旋转、翻转及缩放等数据增强方法制作补充样本3 000 张(防止模型过拟合),共6 000张烟梗图像作为训练数据集。另外,采集600 张单类别图像(1 张图像只有1 个烟梗)作为测试数据集。训练中采用十折交叉验证,6 000 张训练图像按比例9∶1 被随机拆分为训练集和验证集,各类别样本数量见表1。

表1 数据集的组成Tab.1 Composition of data sets (张)

2.3 样本图像的自动标注

2.3.1 手动标注方法

在线采集的烟梗图像分辨率为4 208×3 120 pixel,见图4a。在传统的深度学习目标分类识别方法中,首先要使用标注软件对样品类别进行手动标注,制作图像标签,再生成VOC 格式文件,见图4b。由于本研究中的烟梗数据集较大,使用手动标注工作量繁重,为此设计了基于HSV(Hue,Saturation,Value)颜色空间的自动标注算法。

2.3.2 基于HSV 颜色空间的自动标注算法

由图4a 可见,受光源均匀性及输送皮带反光的影响,在线采集的烟梗图像亮度不均。在设计自动标注方法时,如果烟梗图像分割提取效果不好,则会造成算法获取的坐标位置不准确,导致非目标信息被用于建模,影响识别率。为准确提取图像中的烟梗,制作精确的烟梗标签,基于HSV 颜色空间设计了烟梗图像自动标注算法。主要步骤:①将已分类好的同一类别样品送入输送皮带机,并采集图像;②在软件中设置该批样品的类别名称,例如“gengtou”或“genghanye”等;③将原始图像转换到HSV 颜色空间,提取H 通道图像(图5a)和S 通道图像(图5b),并将H 通道图像与S 通道图像做差值运算(图5c);④对差值运算后的图像进行二值化,并滤除面积较小的连通域(图5d);⑤遍历图像中的各个连通域,提取位置信息,设置感兴趣目标区域(Region of Interest,ROI)(图5e);⑥将ROI 区域进行裁剪,并将裁剪后的图像分辨率归一化为416×416 pixel;⑦存储每个ROI 区域的烟梗类别及位置信息,完成标签制作(图5f)。

图4 烟梗图像的手动标注方法Fig.4 Manual labeling method for tobacco stem images

图5 烟梗图像自动标注方法Fig.5 Automatic labeling method for tobacco stem images

2.4 YOLOv3 算法Anchors 的设置

YOLOv3 算法在训练前需要进行先验框(Anchors)设置[10],合理的Anchors 可以加快模型的收敛速度。采用K-means++算法[11]通过聚类可以得到数据集中物体的大致尺寸和形状,并将这些尺寸和形状作为先验框辅助模型训练。YOLOv3 的默认Anchors 来源于COCO 数据集[12],而不同数据集适用于不同Anchors。为提升烟梗的定位精度,本研究中对烟梗数据集使用K-means++算法重新聚类,得到9个新的Anchors,分别为(55,99),(69,133),(82,156),(106,214),(124,208),(138,206),(156,235),(208,255),(344,356)。

2.5 YOLOv3 模型的适应性改造

研究发现直接使用原始YOLOv3 模型进行烟梗识别的准确率并不理想,可能原因是梗含叶的叶子较小导致其与纯烟梗的图像特征差异较小,以及部分梗头与梗含叶的图像特征差异也较小。针对该问题进行分析,结果表明低层次的特征图主要关注物体的纹理信息,因此烟梗的纹理信息是分类识别的关键。为此,基于路径增强方法对YOLOv3 模型进行了改进,以提高模型对图像纹理特征的敏感度。改进后YOLOv3 模型网络结构见图6。

在类FPN[13]模块中,模型对3 个不同尺度的底层、中层与高层特征图进行多尺度预测。其中,在52×52 pixel 的底层特征图中包含较多的纹理信息,但原始YOLOv3 模型在这些信息上直接做类别预测1(图6),会造成部分纹理特征无法被有效利用。因此,本研究中在52×52 pixel 的底层特征图上做类别预测1 之前,先提取该层特征图,再连续进行BN[14](批归一化)、Leaky ReLU(非线性激活)与卷积下采样操作,将其转化为13×13 pixel 的高层特征图,进而参与类别预测,即相当于在模型中增加一个倒金字塔结构,通过添加一条自下向上的增强路径,以充分利用图像中的纹理特征信息。

图6 改进后YOLOv3 模型网络结构图Fig.6 Structure of revised YOLOv3 model network

由图6 可见,对拼接后尺寸为52×52 pixel 特征图进行下采样,使用步长为2 的3×3 pixel 卷积,将52×52 pixel 特征图缩小为尺寸为26×26 pixel 特征图;再将得到的特征图与下一层特征图进行特征融合,融合方式为张量拼接,可以直接将两张特征图进行拼接,且不会丢失特征信息;然后继续对26×26 pixel 特征图进行下采样,得到尺寸为13×13 pixel 特征图,再与下一层特征图进行特征融合。使用标注好的数据集对改进后模型进行迁移训练,生成用于在线烟梗分类识别的深度学习网络模型。

2.6 模型训练结果

从改进后YOLOv3 模型训练日志中提取数据绘制Loss 和IOU(Intersection over Union)曲线,见图7。其中,batches 是模型在训练过程中的迭代次数,Loss 代表训练误差,当Loss 值小于0.01 时判断训练完成。IOU 为图像的真实矩形框与模型预测矩形框的交集,IOU 值越高说明训练效果越好。由图7a可见,当横坐标batches 值等于10 000 时,函数趋于收敛(Loss 值接近0.01);当横坐标batches 值大于40 000 时,训练结束(Loss 值小于0.01)。由图7b 可见,当横坐标batches 值为50 000 时,IOU 值接近0.9,表示模型预测框与真实框差异较小,模型训练效果趋于最优。

图7 改进后YOLOv3 模型训练结果Fig.7 Training results of revised YOLOv3 model

3 应用效果

3.1 分类识别效果

3.1.1 P-R 曲线

根据评价指标将模型在测试集上运行,迭代运算过程中计算不同的R 值和P 值,以R 值为横坐标,P值为纵坐标,绘制P-R 曲线,见图8。其中,蓝色曲线表示梗头,红色曲线表示梗含叶,绿色曲线表示纯烟梗。识别精确率AP 等价于曲线与x 轴围成的面积,可以观察到绿色曲线包含面积最大,红色曲线包含面积最小,蓝色居中。表明模型对纯烟梗的识别精度最高,对梗头的识别精度次之,对梗含叶的识别精度最低。

图8 模型在测试集上运行的P-R 曲线Fig.8 P-R curve of the model running on test set

3.1.2 复杂场景的分类识别效果

选取场景较为复杂的测试图像,分别使用原始YOLOv3 模型及改进后YOLOv3 模型进行烟梗分类识别,效果见图9。图中背景为黑色输送带,分类识别对象包括梗头、梗含叶、纯烟梗与杂物(塑料袋、纸张、螺钉与螺帽等)。分类识别结果由不同预测框表示,黄色框为纯烟梗,紫色框为梗头,绿色框为梗含叶。由图9b 可见,原始YOLOv3 模型将部分梗头误识别为纯烟梗的有3 个,将部分梗头误识别为梗含叶的有2 个,将部分杂物误识别为梗含叶的有3 个,误识别率约为10%。由图9c 可见,改进后YOLOv3 模型对不同类别烟梗识别准确,几乎无误判,且对杂物的抗干扰能力强,没有出现将杂物误识别为烟梗等情况,具有较好的分类识别效果。

图9 在复杂环境下改进前后模型识别效果Fig.9 Identification effect of the model before and after revision under complex scenarios

3.2 模型分类识别性能评估

选取SSD、Mask R-CNN、原始YOLOv3 与改进后YOLOv3 模型进行对比测试。SSD 模型与YOLO系列模型均采用one-stage 方法,其中SSD 以VGG16为基础网络提取特征信息,直接生成物体的类别概率和边界框的坐标值,分类识别速度快,精度高[15];Mask R-CNN 模型沿用了Faster R-CNN 的思想[16],并 且 将FCN 与FPN 融 入 算 法 中[17-18],同 时 采 用ResNet 作为分类器。

将测试集所包含的600 张图像作为分类识别对象(梗头、梗含叶、纯烟梗各200 张),单张原始图像大小为4 208×3 120 pixel,经感兴趣区域裁剪后,归一化处理为416×416 pixel。由表2 和表3 可见,SSD模型对烟梗的识别效果最不理想,精确率小于80%;Mask R-CNN 模型识别精确率较高,约为91%,但其对416×416 pixel 图像的运算速度为4 帧/s,无法满足在线分类识别的实时性;原始YOLOv3 模型的精确率约为89%,运算速度为38 帧/s;改进后YOLOv3 模型的识别精确率约为95%,与原始YOLOv3 模型相比识别精确率提高5.97 百分点,召回率提高4.76 百分点,且识别速度与原始YOLOv3 模型差异较小,具有较高实时性。

表2 不同模型下识别精确率对比Tab.2 Comparison of identification accuracy among different models (%)

表3 不同模型下召回率对比Tab.3 Comparison of recall rate among different models (%)

3.3 与人工分选对比

将本文研究方法(改进后YOLOv3 模型)与人工分选结果进行对比。测试方法:挑选9 批次不同比例烟梗,先通过人工逐一挑选,记录每批次中各类别烟梗数量作为实际数量;再将其依次放入识别系统中,将系统识别结果作为识别数量,结果见表4。可见,系统对纯烟梗的识别误差为1.41%,对梗含叶的误差为7.32%,对梗头的误差为4.36%,平均识别误差为4.35%,能够满足在线分类识别要求。

表4 本文研究方法与人工检测对比Tab.4 Comparison between the proposed method and manual identification

4 结论

利用高速CCD 相机与AI 计算机搭建了烟梗图像高速采集与处理平台,基于图像特征设计了烟梗图像自动标注方法并对数据集进行标注,在YOLOv3深度学习算法框架中加入一条特征增强路径,提高模型对图像中烟梗纹理特征的检测敏感度,并在制作好的数据集上进行训练,生成烟梗图像分类识别模型,将该模型与两个较为先进的分类识别模型以及人工分选方式进行比对,结果表明:本研究中所建立模型在测试集上的表现良好,烟梗识别精确率达到95.01%;针对不同复杂场景,模型抗干扰能力强,可有效识别出烟梗位置及类别并避免杂物干扰,相比原始YOLOv3 模型,识别精确率提高5.97 百分点,召回率提高4.76 百分点,且均优于SSD、Mask R-CNN 等模型,能够满足烟梗在线分类识别需求。

猜你喜欢
类别分类图像
基于生成对抗网络的CT图像生成
浅析p-V图像中的两个疑难问题
巧用图像中的点、线、面解题
一起去图书馆吧
简析基于概率预测的网络数学模型建构
按需分类
教你一招:数的分类
说说分类那些事
给塑料分分类吧
趣味数独等4则