APP下载

基于eIQ 的中药材图像识别系统的设计与实现

2023-11-10韩德强李宗耀杨淇善高雪园

电子技术应用 2023年10期
关键词:图像识别中药材神经网络

韩德强,李宗耀,杨淇善,高雪园

(北京工业大学 信息学部,北京 100124)

0 引言

中医作为中华民族原创的医学科学,在我国有着悠久的历史,是我国医药宝库中的重要组成部分。目前,中医在心脑血管疾病、糖尿病等重大慢性病的防控及重大传染性疾病的临床研究都取得积极进展,在此次新冠疫情的治疗与防护中更是发挥了不可替代的作用[1]。而中药则是中医中最常见的治疗手段。传统的中药材识别主要依靠经验丰富的医生,通过眼看、手摸、鼻闻、口尝、水试、火试等方法来识别出每种中药材的真伪优劣。

目前,中药材的智能识别主要依靠复杂的深度神经网络实现。其中,吴冲等利用人工智能和机器视觉技术设计出一种检测贝母、山楂及半夏饮片质量方法[2]。张志光通过向YOLO4 目标检测算法中加入Non-local 注意力机制和RFB(Receptive Field Block,增强感受野)模块来提升算法在复杂背景和不同尺度下中药饮片的识别性能[3]。徐飞等通过强化特征提取改进的AlexNet 模型对5 类中草药叶片进行训练并通过增广数据集,提高了中草药图像分类的准确率[4]。李鑫利用Faster-RCNN 算法对黄芪、白术、白芷、白芨、西洋参五种药材进行训练并搭建了中药饮片图像识别模型[5]。

由于借助神经网络实现中药材识别需要大量的矩阵运算、存储空间和功耗,因此大多依赖图形处理器(Graphic Processing Unit,GPU)或服务器实现,不但成本较高,而且在实际使用中非常不便。然而微控制器(Microcontroller Unit,MCU)却具有体积小、功耗低、成本低以及高实时性的优势。并且随着轻量级神经网络模型和拥有高性能、高主频且包含有算力扩展的Cortex-M7 内核的MCU 的出现,使得在MCU 平台上实现中药材识别变为了可能。

本文针对目前在MCU 平台无法实现复杂深度神经网络的应用和中药材图像数据集不足的问题,提出了在MCU 平台实现基于MobileNetV3 模型的中药材图像识别系统。借助eIQ 机器学习软件开发环境构建Mobile-NetV3-Small 模型,通过采用Hard-swish 激活函数、Adam优化器等,修改模型参数完成对中药材数据集的训练与验证,并对模型进行量化和压缩操作,将最终生成的模型文件部署至i.MX RT1060 开发板上,实现对中药材的识别。

1 中药材图像识别模型的构建

1.1 MobileNetV3 模型研究

卷积神经网络发展迅速,已经从最初的AlexNet、VGGNet,发展到GoogleNet、ResNet等,随着性能的不断提升,网络的大小与深度也是不断增加的。由于MCU计算资源有限,许多复杂的网络模型无法直接应用到MCU 平台。轻量级网络相对于重量级网络的最大特点就是参数少、计算量小、推理时间短。而Google 设计提出的MobileNetV3 模型[6-8]更是其中的代表,通过结合深度可分离卷积(Depthwise Separable Convolutions,DSC)、线性瓶颈的逆残差结构和轻量级注意力模型,更进一步地减少了模型的参数量和推理时间。Mobile-NetV3 模型基本网络单元如图1 所示。根据资源利用率的高低,MobileNetV3 可分为MobileNetV3-Small 和MobileNetV3-Large 两种不同复杂度架构的模型。

1.2 网络模型的优化

1.2.1 激活函数

卷积神经网络的计算方式大多为线性运算。为了增加神经网络模型的非线性,提高识别精度,减少Swish函数在MCU 平台上消耗的计算资源,MobileNetV3 对原Swish 函数进行了修改,使用ReLU6 函数替换其中的Sigmoid 函数,并生成一个Swish 函数的近似函数,称为Swish 的硬件版本,即Hard-Swish,其函数图像如图2所示。

图2 Hard-Swish 函数图像

1.2.2 Adam 优化器

Adam 优化器是深度学习中最流行的优化器之一,通过训练数据迭代地更新神经网络权重。通过整合自适应梯度(Adaptive Gradient,AdaGrad)和均方根传播(Root Mean Square prop,RMSProp)两个传统优化算法的优点,利用梯度的一阶矩估计(First Moment Estimation,梯度的均值)和二阶矩估计(Second Moment Estimation,梯度的未中心化的方差)计算更新步长。不仅可以动态地进行学习率的调节,而且函数的改变不会受到梯度伸缩变化的干扰。

1.2.3 平均池化

MCU 的资源和计算能力十分有限,无法满足复杂的神经网络模型的应用。因此,必须对模型进行特征提炼,以减少模型的参数量和计算时间。通过平均池化(Global Average Pooling,GAP)减小三维张量的空间维度,可以有效代替全连接层实现降维。不但能够防止过拟合的产生,最重要的就是极大地减少了模型的参数量。如图3 所示,通过pool 2D 将尺寸为1×4×4×432 的张量减小至1×1×1×432。

图3 Global Average Pooling2d

2 数据采集与处理

2.1 中药材数据集的建立

利用卷积神经网络实现中药材的识别,需要大量的图片才能保证测试数据具有足够的泛化能力,同时还可以有效防止过拟合的产生。但目前对于中药材识别缺少公开的、大规模的数据集,因此本次实验所使用的数据集主要通过网络下载和实际拍摄两种方式获取图片,共收集30 个类别,11 844 张图片,表1 是30 种中药材的数据集样本分布。对数据集中的所有图片逐一处理,将背景模糊的图片进行替换和删除,并将所有图片大小统一为128×128。图4 表示的是该数据集中的部分药材图片。

2.2 实验环境配置与参数设定

NXP 公司的eIQ 机器学习软件开发环境是用来简化机器学习开发流程并将神经网络模型部署到MCU 上的软件平台。其主要包含了一套完整的工作流程工具、推理引擎(Inference Engines,IE)、神经网络(Neural Netwok,NN)编译器以及硬件抽象层(Hardware Abstract Layer,HAL)等。

i.MX RT1060 是NXP 公司设计的、基于高性能ARM Cortex-M7 内核的、运行频率为600 MHz 的“跨界”MCU,其可以实现快速响应,并通过集成的DC-DC 转换器实现较低的动态功耗。同时提供了面向图形用户界面(Graphical User Interface,GUI)和增强人机界面(Human Machine Interface,HMI)的视频功能,主要包括:2D图形加速引擎、并行摄像头传感器接口以及液晶显示器(Liquid Crystal Display,LCD)控制器等。

在i.MX RT1060 平台上实现中药材识别的流程如图5 所示。在eIQ 机器学习软件开发环境中,将导入的中药材数据集以8:2 的比例划分训练集和验证集。使用MobileNetV3 网络模型作为卷积神经网络(Convolutional Neural Network,CNN)结构,并在训练开始之前确定模型参数,如:权重初始化、图像输入尺寸、学习率和Alpha 值等,如表2 所示。

表2 模型训练参数

图5 i.MX RT1060 平台上实现中药材识别流程

2.3 数据增强

为了提高MobileNetV3 网络训练的泛化能力,提高中药材图片的数量和多样性。在本次实验的训练过程中,训练集选择使用eIQ 机器学习软件开发环境提供的9 种数据增强的方法进行处理,主要包括:水平/垂直翻转、旋转、随机模糊,随机亮度、随机对比度、色调饱和度调整、高斯噪声、随机Gamma。

3 模型的转换与部署

TensorFlow Lite for Microcontrollers (TFLm)[9-10]是eIQ 机器学习软件开发环境支持的推理引擎之一。相比于TensorFlow,TFLm 有着更高的性能和更好的内存利用率,适合在资源有限的MCU 中使用。将训练好的MobileNetV3 模型量化为int 8 类型后导出,最终生成TFLm 推理引擎支持的.tflite 文件。

4 实验结果及分析

本文将30 类中药材数据集导入eIQ 机器学习软件开发环境中,经过27 轮的模型训练后,得到了Accuracy函数值最大、Loss 函数值最小的神经网络模型。将训练好的模型经过量化操作后,部署在i.MXRT1060 平台上。为方便实际应用场景下,更好地显示待识别的中药材名称,本文通过在i.MX RT1060 开发板上外接OV7725 摄像头和4.3 英寸LCD 显示屏,分别实现中药材的实物拍摄以及中药材名称的显示,并对中药材进行了实际拍摄识别测试。

在模型训练阶段,训练时间共228 s,训练集精度为79.8%,验证集精度为86.79%。训练过程如图6 所示,分别为MobileNetV3 网络模型在训练过程中Accuracy 和Loss 函数值的变化趋势。

图6 Accuracy 和Loss 函数值的函数变化

由图6 可知,经过前15 轮Epoch 的训练,Accuracy 函数值升高到93.4%、Loss 函数值降低至0.198,效果均比较理想。在第16 轮Epoch 训练开始之前,修改Augmentation Settings 参数值,加入数据增强,Accuracy 和Loss函数值均有明显变化。又经过11 轮Epoch 的训练,Accuracy 函数值从66.7%上升至79.8%;Loss 函数值从1.11下降至0.612 并趋于稳定。

图7 是30 类中药材的验证集精度直方图。由图可知,只有当归、佛手、高丽参、葫芦巴和莲子五种药材的的验证集精度不足80%,其余25 种药材的验证精度均可以达到80%以上。并且,冬虫夏草、枸杞、鸡骨草和西红花的验证精度可以超过95%,另外还有10 种药材的验证精度超过90%。

图7 验证集精度直方图

在实际测试部分,将中药材放置在摄像头下,识别结果通过LCD 屏幕显示,如图8 所示。可以看出,进行实际测试的药材均能准确识别。综上可知,本文利用MobileNetV3-small 模型可以较好地实现在i.MX RT1060 上的中药材图像识别,具有较高的实际应用价值。

图8 实物拍摄图

5 结论

近年来,人工智能在嵌入式设备上取得了快速发展,为此本文使用轻量级模型基于MCU 平台对中药材识别问题进行研究。利用eIQ 机器学习软件开发环境搭建了一种基于MobileNetV3 模型的中药材图像识别系统。通过调整模型参数的方式,利用Hard-Swish 激活函数以及Adam 优化器等对数据集进行训练与验证,并将训练好的模型文件部署至i.MX RT1060 开发平台从而实现对中药材的识别。实验结果表明本实验所使用的方法在30 类中药材中的验证精度可以达到86.79%,说明了该方案具有很好的可行性。但是对于像当归和葫芦巴等特征不清晰的药材,未来还需要对实验做进一步修改。

猜你喜欢

图像识别中药材神经网络
夏季中药材田间管理做好这五点
中药材促农增收
宋四清:种植中药材 托起致富梦
神经网络抑制无线通信干扰探究
基于Resnet-50的猫狗图像识别
高速公路图像识别技术应用探讨
图像识别在物联网上的应用
图像识别在水质检测中的应用
DNA提取4种中药材方法的筛选
基于神经网络的拉矫机控制模型建立