基于改进EfficientNet网络的药片检测分类的研究

2021-12-02 01:21王振亚赵继红王艳鹏葛广英孙群
现代计算机 2021年28期
关键词:药片卷积分类

王振亚,赵继红,王艳鹏,葛广英,孙群

(1.聊城大学物理科学与信息工程学院,聊城 252059;2.聊城大学季羡林学院,聊城 252059;3.聊城大学机械与汽车工程学院,聊城 252059)

0 引言

近年来,人们生活水平逐渐提高,对医药的品质追求也越来越严格。药品的特殊性使其在研发、生产、包装到流通等各个环节都应当受到监督和检查,对药片的品质分类检测显得尤为重要。如何在药品生产输送时、包装入库前,高效地检测出不合格的药品并剔除,是药品生产领域研究的一个重要方向。传统的人工抽检的方法效率低,并且容易出错,成本较高,不能适应工业自动化的发展。因此,研究人员提出了很多研究方法,如机器视觉检测法、深度学习检测法等。

机器视觉检测方法在我国被应用到制药领域较晚,主要是通用相机采集图像,对图像进行处理,得到结果。例如泡罩药品包装缺陷检测[1]、液体药品异物检测[2]以及利用近红外光谱进行药片种类判别[3~4]等研究。

通过图像处理技术提取到图片的颜色、纹理、形状等特征,再根据向量利用神经网络、支持向量机等模式识别的方法进行图像分类。这类检测方法虽然图像识别的准确率有一定的提高,但是本质上依然依赖人工设计与特征的自然表达,导致训练时间长并且误差率较高。[5]

深度学习随着大数据和人工智能的发展越来越广泛的被应用,尤其在图像分类、目标检测领域等方面。卷积神经网络(CNN,convolutional neural network)[6]具有局部连接、参数共享,降采样的特点,减少了网络参数,提高了网络的泛化能力,比传统的方法具有更加强大的特征学习与表达能力。

本文基于EfficientNet-B0网络,并对其进行改进。简化了网络模型架构,减少了网络参数,提高了网络的运行速率;将注意力机制SE模块改进为ECA模块,其激励操作使用一维卷积自适应地确定卷积核的大小,避免降维导致的副作用,提高了网络模型的精度;对药片数据集进行数据扩充,满足实验应用,防止产生过拟合;对比分析其他的网络模型验证改进后模型的性能效果。

1 EfficientNet网络

EfficientNet[7]网络是2019年Tan等人提出的一种新的分类识别网络,是标准图像集ImageNet[8]下分类性能最优的网络之一。EfficientNet网络通过复合缩放的方法,按照比例对网络宽度(width),深度(depth)以及输入图像分辨率(resolution)三个维度进行扩展[7],寻求最大化识别精度需要的最优参数,而不是像传统的方法那样任意缩放网络的维度。在模型参数量不变的情况下找出最优的组合,网络缩放的具体关系如下所示:

式(2)中的参数均为基准网络中定义好的参数,式(3)中Memory为记忆存储器,式(4)中FLOPS为每秒浮点运算次数。为了寻求最优的组合参数,将用指数Φ表示出这三个待优化参数,如式(5)所示:

式中,d、w和r分别代表网络的深度、宽度和分辨率。α、β和γ分别代表网络深度、宽度和分辨率的分配系数,是需要求解的参数。而α、β和γ是可以通过网格搜索固定的每个维度的缩放系数。Φ为复合系数,其大小可以根据可用资源进行调节。通过改变式(5)中的Φ值,放大基准网络EfficentNet-B0,得到EfficientNet-B1至Efficient Net-B7。EfficientNet-B0主要是由16个倒置瓶颈卷积模块(mobile inverted bottleneck convolution,MBConv)、2个卷积层、1个全局平均池化层和1个全连接层构成,网络结构参数如表1所示。MBConv模块中包含深度可分离卷积,批处理归一化以及Swish激活函数,并引入SENet通道注意力机制,使得浅层网络也能通过全局感受野来捕获图像特征对图像进行描述。MBConv网络模型结构如图1所示。

表1 EfficientNet-B0网络参数

图1 MBConv结构图

Swish激活函数的公式如下:

函数中x为输入,μ为常数或可训练的参数。Swish函数无上界,有下界,平滑并且非单调,准确率优于传统的ReLU函数。

SE(squeeze-excitation)[9]模块是一种注意力(attention)机制,可以自动搜集每个特征通道的重要性并根据所搜集的特征的重要性排序,对有用特征增强并抑制在目前任务用处不大的特征。SE模块使用全局平均池化提取通道间的特征,将结果和后层特征融合,起到对不同通道的注意力加权重机制。在SE模块中有三个操作,分别是Squeeze、Excitation、Scale操作。SE模块结构图如图2所示。

图2 SE模块结构图

EfficientNet网络的优点是平衡了网络的宽度、深度、输入图像的分辨率,寻找三者最优的组合扩展网络。采用核心的MBConv模块,集成了众多结构来丰富特征的提取。同时用深度可分离卷积代替标准卷积,使得模型参数量减小,减小参数意味着减小模型的大小[10],从而提升效率。但Efficient Net网络也有一定的局限性,其中的MBConv模块内部结构复杂,对计算机的硬件设备要求较高,同时对小样本数据也可能会出现过拟合现象。

2 改进EfficientNet网络模型设计

2.1 改进措施

基于原EfficientNet网络模型计算量复杂,为了使EfficientNet模型更好的适应药片的分类检测,对网络进行了以下修改。

2.1.1 简化EfficientNet网络

将原EfficientNet网络中的多个MBConv模块去掉进行精简。保留共4个尺寸为3×3的MBConv,1个尺寸为5×5的MBConv。经实验发现5×5尺寸的卷积核大小下采样时图像数据失真较少,保留信息较好,当全部尺寸为3×3时,有失真的现象。故保留1个尺寸为5×5的MBConv模块,在尽可能减少参数的情况下保证图像信息的准确性。EfficientNet原网络层数复杂,所消耗的计算资源多,药片的数据集样本非复杂的数百万级别数据集,网络复杂会造成过拟合的现象。因此对原EfficientNet网络的简化,保留了网络中的核心架构,减少了网络参数,简化了计算量同时也能达到很好的分类检测效果。

2.1.2 引入ECA模块

ECA(efficient channel attention)[11]模块提出了一种不降维的局部跨信道交互策略,模块通过非线性自适应确定的一维卷积实现。SE模块是对特征图通道注意力机制的研究,ECA模块在其基础上进行改进,避免了SE因降维导致的通道与权重不直接对应的副作用,同时以极其轻量级的方式有效地捕获了跨通道交互的信息。ECA模块是一种非常轻量级的即插即用块,可以调高各种CNN的性能,结构如图3所示。

图3 ECA模块结构图

由图3可知,ECA模块去掉了SE模块的2层全连接层,采用一维卷积。其激励操作能够自适应地判断卷积核的大小k,通过一维卷积来学习GAP(global average pooling)之后的特征,避免维度的减少,通道和权重可以直接互相对应,同时使参数量大幅减少。ECA模块采用分组卷积,改进CNN架构,通道维度C和卷积核大小k成比例,如公式(7)所示:卷

积尺寸如公式(8):

2.2 网络模型整体结构图

改进后的网络模型总体结构如图4所示,大大减少了网络的参数。由图4看出,输入的图片首先经过卷积和批标准化以及Swish激活操作,然后使用一系列不同尺寸的MBConv模块提取特征,内嵌ECA模块。使用尺寸为1×1的卷积能适应各种不同尺寸的特征图,并将其统一为我们需要的维度。最后通过Softmax函数完成药片的分类识别检测。

图4 改进后的网络结构图

3 实验结果与分析

3.1 实验平台

本实验采用Python语言,TensorFlow和Keras深度学习框架,在Windows 10环境下完成的。实验的硬件设备:CPU为Intel(R)Xeon(R)Silver 4210R CPU@2.40 GHz 2.39 GHz(2个处理器);GPU为RTX 4000。

3.2 数据集

实验所采集的数据分为两部分,一部分来自HALCON中的MVTec药丸数据集;另一部分是使用工业相机对药片进行拍摄所得。拍摄设备为陕西维视数字图像技术有限公司生产的型号为MVEM120M/C的CCD面阵工业相机,镜头型号为MP系列的AFT-1214MP百万像素工业镜头。药片图像共计3750张,分为9个类别,包括三种不同的药片品牌ginseng、magnesium、mint的三种不同质量类别contamination(污染)、crack(破损)、good(完好),图5为部分样本示例。

图5 部分药片分类图样本示例

为防止在训练过程中出现过拟合现象,对图像数据通过增强来进行扩充。通过对原始数据集进行90°旋转、亮度、色度和对比度变化的方法来扩充图像样本。扩充后的图像共15000幅。将扩充后的样本统一放缩为224×224像素大小,并进行归一化处理。随机将图像划分为训练集、验证集和测试集三个数据集。比例为70%:15%:15%,分别为10500幅、2250幅和2250幅。

3.3 模型评价

为了直观地观察网络的性能,对其进行分析,本文绘制了改进后的EfficientNet网络模型对药片分类仿真实验的损失值和准确率曲线,如图6所示。

从图6中可以看出改进后的EfficientNet网络模型共训练了30个eopchs,随着迭代次数的增加,准确率和损失值曲线逐渐平缓,趋于稳定,并且损失值能够较好的收敛。改进后的Efficient-Net网络的训练曲线和验证曲线基本的趋势相同,没有出现过拟合的情况,具有一定的泛化能力。实验证明,改进后EfficientNet网络对药片数据集的分类检测精度达到98.93%。

图6 改进后EfficientNet网络训练曲线

3.4 算法性能对比

在相同实验环境下,用原EfficientNet、GoogleNet[12]、MoblieNetV2[13]网 络 模 型 对 构 建 的药片数据集进行分类检测,与改进后的Efficient-Net网络进行对比,如表2所示。

表2 各类分类方法精度对比

由表2可以看出,改进后的EfficientNet网络准确率明显高于其他三个网络,比原网络提高了1.83%,运算速率也明显提升,说明改进模型的可行有效性。

4 结语

本文针对传统药片的分类检测准确率低等问题,提出基于改进EfficientNet网络模型的药片分类检测方法。构建药片数据集,数据增强防止过拟合。通过对原网络进行简化,减少了网络参数量,提升了网络的运行效率。改进了注意力机制模块,将SE模块改进为ECA模块,避免了SE模块因降维带来的通道与权重不直接对应的副作用。实验结果表明,此方法取得了98.93%的准确率,较原网络提高了1.83%;同时减少了网络参数,识别时间与原网络相比明显缩短,提高了实时性效率,实现了较好的效果。

猜你喜欢
药片卷积分类
基于全卷积神经网络的猪背膘厚快速准确测定
基于图像处理与卷积神经网络的零件识别
药片不能掰开服
基于深度卷积网络与空洞卷积融合的人群计数
药片洗头有奇效
吃 药
药片颜色谁决定
按需分类
教你一招:数的分类
说说分类那些事