张 勇, 郭永存, 陈 伟, 王 爽, 程 刚
(安徽理工大学 a. 电气与信息工程学院; b. 机械工程学院; c. 深部煤矿采动响应与灾害防控国家重点实验室, 安徽 淮南 232001)
煤矸分选是煤矿生产过程中的重要一环。准确分离出原煤中的矸石,可以提高煤的发热量,降低运输成本, 并避免矸石对环境的污染[1]。 传统的煤矸分选方法有人工选矸和机器选矸。 人工选矸不仅劳动强度大,而且选矸效果存在不确定性。机器选矸有跳汰法[2]、 浮选法[3]和重介质法[4]等,但这些方法会带来对土地和水资源的污染, 存在巨大的安全隐患。 随着计算机技术的发展, 计算机视觉识别技术开始普遍应用于工业生产的各个领域。 计算机视觉识别煤和矸石方法分为机器学习和深度学习2种类型。
在机器学习方面,鲁恒润等[5]利用煤与矸石灰度、纹理特征量的相关性构造归一化特征向量,结合BP神经网络进行识别分类,最终识别率可达到87.5%。Dou等[6]提出基于图像分析的relief-SVM方法用来识别煤和矸石,通过图像分析提取煤和矸石图像的颜色和纹理等特征,并使用relief-SVM构造最优分类器识别、判断煤和矸石;Hou[7]提出一种基于图像特征和神经网络相结合的煤和矸石识别方法,通过对煤和矸石图像灰度和纹理的特征提取,再利用前向神经网络完成对煤和矸石的识别分类。上述方法均需要通过图像预处理指定分类的人工特征,存在数据预处理复杂、检测维度单一、 速度慢和精度低等问题。
在深度学习方面, 徐志强等[8]采用模型剪枝对相似度高的卷积核进行裁剪, 降低了模型复杂度, 避免了模型参数的冗余与过拟合; Lv等[9]采用注意力机制研究了煤矸石目标检测中的细粒度问题, 加强网络对于小尺寸煤和矸石的检测能力; 郜亚松等[10]提出一种轻量级的煤矸识别网络模型, 在保证模型复杂度小幅增加的前提下提高网络的识别能力; 杜京义等[11]针对目标检测算法精度低、 实时性差等问题, 提出采用Ghost网络和自注意力机制优化SSD目标检测网络, 改善了网络的检测效果。
轻量级卷积神经网络的训练往往需要大量的数据集的支撑, 但大量数据集的获取普遍存在一定的困难。 本文中从注意力机制、 激活函数和分类头等3个方面对轻量级卷积神经网络MobileNetv3进行改进, 提高模型在小样本数据集下的训练收敛速度和识别准确率, 并对训练后的模型进行量化和移动端部署操作, 测试模型量化前、 后的空间体积与复杂度, 实际推理时间与识别准确率。
实验所用的煤和矸石样本来自于淮南市潘二矿,利用实验装置采集煤和矸石的数据图片各500张,煤和矸石样本如图1所示。图片样本按照7∶1∶2的比例划分为训练集、 验证集和测试集。
(a)煤(b)矸石图1 煤和矸石样本Fig.1 Samples of coal and gangue
实验训练集中样本仅有700张,在模型训练时容易陷入过拟合,需要对采集的样本进行数据增强,实验采取的数据增强参数值如表1所示。
表1 数据增强参数
移动端煤矸识别实验装置如图2所示。实验装置主要包括带式输送机、移动端识别单元NanoPC-T4开发板、 相机、 煤和矸石样本、 设备架体、 可调光源和对应的光源控制器。其中,使用的输送带是一种常见的矿用钢丝绳输送带,输送带宽为0.6 m,厚度为15 mm,最大运行速度为4 m/s;相机型号为罗技C922,光源型号为2个KM-BRD36030-白光,光源控制器型号为DSC2.0-2C030W-24PS(60 W),用于调节光照强度。
(a)实验装置(b)煤或矸石图2 移动端煤矸识别实验装置Fig.2 Experimental equipment for coal and gangue identification at mobile device
对于移动端深度学习系统的开发,一般采用轻量型的学习网络。常见的轻量型的深度学习网络有SqueezeNet[12]、 EfficientNet[13]、 MobileNet[14-16]和ShuffleNet[17-18]等。轻量型卷积神经网络中的模型轻量化使用深度可分离卷积。标准卷积操作流程示意图如图3所示。M为输入通道数,N为输出通道数,DF、DK、DG分别为输入特征图尺寸、 卷积核尺寸和输出特征图尺寸;输入特征映射F尺寸为(DF,DF,M),标准卷积K为(DK,DK,M,N),输出特征映射G为(DG,DG,N)。
图3 标准卷积操作流程示意图Fig.3 Schematic diagram of standard convolution operation flow
通过卷积,输出计算量C1的计算公式[14]为
(1)
深度可分离卷积将标准卷积拆分为深度卷积和逐点卷积,深度可分离卷积的操作流程示意图如图4所示。由图可见,深度卷积负责滤波作用,输入尺寸为(DK,DK, 1,M),输出特征尺寸为(DG,DG,M);逐点卷积负责转换通道,输入尺寸为(1,M,N),输出尺寸为(DG,DG,N)。经过深度可分离卷积,计算量C2的计算公式[14]为
图4 深度可分离卷积的操作流程示意图Fig.4 Schematic diagram of depth separable convolution operation flow
(2)
经过深度可分离卷积的作用,卷积操作的压缩比为s,模型复杂度大幅度降低。压缩比s的计算公式为
(3)
MobileNetv3网络中的注意力机制为SENet[19]。SENet通过在2个连接层间使用维度缩减来产生每个通道的权重信息,帮助网络学习重要的特征信息,但通道的降维会对通道预测带来副作用,降低模型预测效率,而且捕获全部通道间的互相依赖会加大网络的参数量。针对深度卷积神经网络,采用一种高效通道注意力模块避免降维。高效通道只捕获有效的跨通道的交互信息,能够在增加少量参数的前提下获得明显的性能增益,高效通道注意力机制模型[20]如图5所示。
图5 高效通道注意力模型[20]Fig.5 Efficient channeled attention model[20]
由图5可见,H、W和C分别表示特征图的高度、宽度和通道维数,输入尺寸为H×W×C的特征图通过全局平均池化得到尺寸为1×1×C的向量;利用卷积核个数为k的一维卷积完成通道间的信息交互,得到每个通道的权重,并添加到卷积操作中,获得输出尺寸为H×W×C的高维特征,因此,学习到的通道注意力Wk的计算公式[20]为
(4)
式中:Wk涉及K×C个参数,同时避免了不同组的完全独立;ωi(i=1,2,…,c)为权重,如果只考虑特征yi(i=1,2,…,c)和k个邻居间的信息交互,则ωi的计算公式为
(5)
式中σ表示sigmoid激活操作。为了进一步提高性能,通过使用相同的权重ωj(j=1,2,…,k)实现通道间的权重信息共享,并利用卷积核大小为k的一维卷积来实现通道间的信息交互,ωi计算公式又为
(6)
ω=σ(C1Dk(y)),
(7)
式中C1D代表一维卷积操作。
高效通道注意力机制旨在捕获局部跨道信息交互,需确定通道交互信息的大致范围,即一维卷积核的大小为k;通过借鉴组卷积,得出跨通道信息交互作用的覆盖范围与通道维数C成正比,并利用以2为底的指数函数表示通道维数C与卷积核大小k之间的非线性映射关系φ,通道维数的计算公式为
C=φ(k)=2(γk-b)。
(8)
给定通道维数C时,则一维卷积核大小k计算公式为
(9)
式中: |·|odd为最接近值的奇数;γ、b参数值分别设为2、 1。
MobileNetv3中的激活函数为h-swish,是通过NAS暴力搜索技术找到的Swish激活函数改进版,但在小样本数据集中,将不再适用。本文中使用SMU(smooth maximum unit)激活函数[21]替代网络中的h-swish激活函数,减少网络参数间的依赖,缓解模型训练过拟合的发生,加快模型训练收敛速度,SMU激活函数表达式为
(10)
式中:x为当前输入特征; erf为高斯误差函数;μ为可训练的平滑参数,初始化为1 000 000;α为超参数,设为0.25。
小数据集中,MobileNetv3中使用2次尺寸为1×1的卷积扩展特征到高维度特征空间。丰富预测特征的方式不仅会增加模型计算复杂度,而且会降低分类头的训练收敛速度。针对小样本数据集的模型训练,使用全连接层代替平均池化后的卷积操作,直接对特征图分类结果进行预测,避免小样本数据集训练过程中的不收敛现象,提高模型训练和推理速率,MobileNetv3和改进后E-MobileNetv3网络分类头结构如图6所示。
(a)MobileNetv3(b)改进后E-MobileNetv3图6 MobileNetv3和改进后E-MobileNetv3网络分类头结构Fig.6 Classification head of MobileNetv3 and E-MobileNetv3
改进后E-MobileNetv3网络结构如表2所示。由表可知,网络模型的瓶颈层Bneck_block均采用高效通道域注意力机制,加强通道传播过程中的跨通道信息交互能力。
模型训练基于Windows10(64位)操作系统,电脑配置为Inter Core i5-9300H,NVIDIA GTX1660Ti 6G显卡,在深度学习框架Tensorflow2.0中进行模型的训练、验证和预测。模型输入图像的像素设为224×224,训练次数为50,模型优化器为SGD函数,损失函数为交叉熵损失函数,并记录训练精度和损失函数曲线。
分别对EfficientNet、 MobileNetv2、 MobileNetv3、 ShuffleNetv2、 SqueezeNet和E-MobileNetv3网络的模型进行训练,并绘制训练和验证损失曲线,研究损失值随训练次数的变化规律。轻量型卷积神经网络模型训练和验证损失曲线如图7所示。由图可知,MobileNetv3训练出现过拟合,ShuffleNetv2训练梯度爆炸,模型训练效果不佳;EfficientNet、 MobileNetv2和SqueezeNet训练收敛速度较慢,且验证损失函数波动较大;E-MobileNetv3模型经过约20次的训练后,模型逐渐收敛,且波动较小,最终损失函数值稳定在0.008左右,损失函数较小,且训练损失和验证损失间波动较小,模型训练完美拟合,训练效果较好,因此,E-MobileNetv3模型的训练参数设置较为合理。
(a)EfficientNet(b)MobileNetv2(c)MobileNetv3(d)ShuffleNetv2(e)SqueezeNet(f)E-MobileNetv3图7 轻量型卷积神经网络模型训练和验证损失曲线Fig.7 Training and verification loss curves of lightweight convolutional neural network models
E-MobileNetv3模型训练准确率曲线如图8所示。由图8可知,经过50次的训练,模型训练准确率和验证准确率均大于99%,模型准确率较高,训练效果较好。
(a)训练次数为0~50(b)训练次数为45~50图8 E-MobileNetv3模型训练准确率曲线Fig.8 Training accuracy curve of E-MobileNetv3 model
深度学习网络模型中常用的压缩方法主要有模型剪枝和模型量化2种。模型剪枝常用在模型训练后,用于去除一些不重要的神经元连接,但神经元级别的剪枝会使结果变得稀疏,不利于缓存优化和内存访问,滤波器级别的剪枝又难以衡量滤波器的重要程度;模型量化将浮点数替换成整数进行存储和计算,能够加快模型的推理速度并减小计算内存,因此,选用模型量化作为模型压缩方法。常用的量化方式有动态离线量化、静态离线量化和量化训练,本文中选用动态离线量化的方式对模型进行压缩。量化公式为
qi=round(xf/xs)+xz,
(11)
(12)
(13)
模型采用浮点32位到8位整型的量化,模型输入浮点数据区间为[(2-2-23)×2127,(223-2)×2127],输出整型数据区间为[-128,127]。
模型的移动端部署采用Tensorflow深度学习框架中的Tensorflow lite进行部署工作。移动端设备使用NanoPC-T4开发板,主控芯片为瑞芯微RK3399芯片,内部运行Android8.1系统。端侧模型训练后,通过模型转换和量化操作,保存为tflite格式,下载至开发板中,结合实验装置,进行移动端煤矸识别。
模型量化前、 后模型体积和浮点运算次数如表3所示。由表可知,改进后模型的复杂度最低,且模型存储容量最小,经过8位整型动态离线量化操作,模型存储容量仅为0.52 MB,为原网络的24.64%,满足移动端模型的部署需求。
表3 模型量化前、 后存储容量和浮点运算次数
通过移动端的部署, 测量各模型在移动端的推理时间和识别准确率。 模型量化前、 后的推理时间和识别准确率如表4所示。 由表可知, 轻量级卷积神经网络MobileNetv2、 MobileNetv3、 ShuffleNetv2和E-MobileNetv3模型的移动端推理时间均小于250 ms,改进后的E-MobileNetv3网络模型量化前、 后推理时间均小于100 ms,识别速度较快,满足移动端煤和矸石的识别速度需求;EfficientNet和SqueezeNet移动端推理速度较慢,推理时间均大于2 500 ms,虽然SqueezeNet模型存储容量不大,但普通卷积的大量堆积导致在移动端的推理速度减慢。综上,改进后网络E-MobileNetv3识别准确率最高可达99.7%,能够很好地满足实际工况中的对煤矸识别精度的要求。
表4 模型量化前、 后的推理时间和识别准确率
利用实验装置,实时采集输送带上的煤和矸石图像,经移动端识别单元处理后,通过屏幕显示煤和矸石的识别结果、识别概率和推理时间。移动端煤和矸石的识别结果如图9所示。
(a)煤(b)矸石图9 煤和矸石识别结果Fig.9 Identification results of coal and gangue
本文中分析了轻量化卷积神经网络模型轻量化的方法, 并从注意力机制、 激活函数和分类头3个方面对MobileNetv3网络进行改进, 通过模型量化压缩网络在移动端部署模型, 分析对比改进网络与EfficientNet、 MobileNetv2、 MobileNetv3、 ShuffleNetv2、 SqueezeNet模型的量化前、 后的空间存储容量, 浮点运算次数, 量化前、 后模型移动端推理时间和识别准确率,得到以下结论:
1)高效通道域注意力机制加强了轻量型卷积神经网络跨通道间的信息交互,提高了模型的识别准确率。Mobilenetv3网络激活函数不适用小样本数据集,会造成模型训练的过拟合;分类头的卷积输出不仅会增加模型复杂度,而且会造成模型训练的不收敛;改进后网络经过20次的训练,模型即收敛,速度较快,且训练和验证准确率均大于99%。
2)改进后模型经量化压缩后,模型存储容量较小,仅为原网络的24.64%,模型复杂度大幅度下降;移动端推理时间较短,仅为77 ms,识别准确率达到99.7%,对于移动端煤矸分选具有一定的应用价值。
3)利用实验装置实时采集输送带上的煤和矸石图像,经移动端识别单元处理后,通过屏幕显示煤和矸石的识别结果、 识别概率和推理时间,识别效果较好,验证了识别方法的可靠性。