基于深度学习的线圈炮缺陷自动检测与分类
2022-07-23田浩杰杨晓庆翟晓雨
田浩杰,杨晓庆,翟晓雨
(四川大学电子信息学院,成都 610065)
0 引言
电磁武器系统现在已经成为衡量国家军事实力的重要基础之一,其中线圈炮又是电磁武器中一个重要的分支。线圈炮工作时的峰值电流常常会达到几千甚至上万安培,这不仅会使炮体温度迅速上升,还会产生巨大的电磁应力,长时间的使用会形成很多种烧蚀疵病,这些疵病的产生会导致武器使用效能下降,运行安全性降低,服役寿命减少等诸多问题。《GJB2977A-2006火炮静态检测方法》军用标准将武器系统的疵病按类别和损伤等级分为14大类和50余小类,疵病的复杂程度为金属管道内壁疵病的识别和分类带来了困难。如何高速、精准、自动化地对各种烧蚀疵病进行分类识别是当前研究的关键。
传统的疵病检测与识别方法一般有三种:一是由有经验的技术人员采用光学窥腔仪等设备直接观察,并对观察到的区域进行分析和判断的人工检测方法;二是采用基于“疵病目标分割提取-人工疵病特征提取-人工特征描述计算”的统计学检测方法;三是采用如BP神经网络、支持向量机的“浅层网络识别”的检测方法。然而上述方法都存在着种种弊端:“人工检测方法”仅能实现单人的定性观察,无法进行定量测量,且会受到主观因素影响,易发生漏检和误判的情况;“基于特征提取的统计学检测方法”依赖于人工特征的提取,由于环境复杂,疵病种类多,不同疵病之间有很大的相似之处,人工特征的有效描述和准确选取是很困难的,很大程度上依靠个人经验,不利于疵病的客观评定;“基于浅层网络识别的检测方法”通常依赖于特征筛选和特征提取算法的设计,特别是对于复杂场景下获取的原始数据,由于特征向量间的区分性不强,导致检测结果不佳。
作为近年来图像识别领域的研究热点,卷积神经网络被广泛应用于模式识别领域。卷积神经网络是一类包含卷积计算且具有深度结构的前馈神经网络,是深度学习的代表算法之一。卷积神经网络具有表征学习能力,能够按其阶层结构对输入信息进行平移不变分类。卷积神经网络由输入层、卷积层、池化层、全连接层以及输出层构成,作为一个多层神经网络,它具有局部连接、权重共享、合并池化及多层结构这四个核心特征,实现了图像的位移、缩放和扭曲不变性。相比于传统的疵病检测方式,卷积神经网络只需要少量的图像预处理且不需要人工提取疵病特征,通过直接将图像作为网络的输入,避免了传统识别算法中复杂的特征提取和数据重建过程,并表现出极强的学习能力和计算准确性,具有应用到武器缺陷分类识别的潜力。
为了实现快速、准确地对线圈炮的各种烧蚀疵病进行自动化、智能化分类识别进而对武器工作效能及运行安全性做出有效评估,本文首先采用双边滤波算法进行图像增强,为后续流程提供高质量图片,同时基于单样本几何变换的数据增强策略扩充样本数量,提高模型的适应性,然后比较了三种经典卷积神经网络的分类能力,引入类激活热力图进行可视化,最后开发了可以根据缺陷图像学习训练并分类识别的自动化软件,大大提高了检测效率。
1 数据处理
1.1 获取数据集
本文前期共获得四种典型的金属管道内壁的烧蚀疵病图像共120张,分别为碎屑、磨损、裂纹和挂铜各30张,每张图像的大小为50×50。为了进一步扩展缺陷种类,收集了东北大学热轧钢带表面缺陷数据集,其中有夹杂、划痕、氧化、开裂、麻点和斑块共六种缺陷,每种缺陷各300张,每张图像的大小为200×200。统一将图像大小调整为50×50,共计十种缺陷图像如图1所示。
图1 金属管道内壁缺陷图像
1.2 图像增强和数据增强
由于实际成像过程中受到各种噪声的影响,利用具有保护图像边缘信息能力的双边滤波算法提高图像质量并降低检测效果受环境光照不均等各种噪声的影响。
双边滤波器是在高斯滤波器的基础上改进而来的。高斯滤波器因为对图像所有区域的滤波效果都是一样的,所以不能突出像素变化大的区域,而双边滤波器通过修改高斯滤波器的权值可以使邻域点和中心点像素变化较大的区域保持梯度,变化较小的区域实现高斯滤波的效果。其数学公式可以总结如下:
其中是权重,和是像素索引,是归一化常数,是像素的强度值,σ为高斯函数的标准差。增强后的图像如图2所示。
图2 图像增强
由于样本数量通常与识别鲁棒性呈正相关,所以为了减少过拟合现象,提高模型泛化能力,对初始的四种缺陷图像进行数据增强,采用随机裁剪、中心裁剪、水平翻转、垂直翻转的方式将图像数量由120张扩充为600张(示例见图3),最后一共获得2400张图像,为后续构建具有强泛化能力的高精度分类模型提供数据支撑。
图3 数据增强
2 缺陷分类
将上文中建立的数据集的80%作为训练集(1920张),剩下的20%作为测试集(480张),样本数据分布如表1所示。分类模型选用三种经典的基于深度卷积神经网络的分类模型,包括Alexnet、VGG16和Resnet18。
表1 样本数据分布
实验的硬件环境如下:CPU为AMD 3600,内存为16G。软件环境如下:Pytorch为深度学习框架,Python作为开发语言,Pycharm作为编程环境。
表2为三种分类模型对不同种类缺陷的识别准确率,可以看出三种模型对不同种类的缺陷识别准确率存在一些差异,但基本都达到了90%以上。表3为三种模型的性能指标对比。从表3中可以看出,Alexnet和Resnet分别在平均类识别率和单张图像缺陷检出率上最高,但与另外两个模型差别不大。在480张图像的预测总时间上,Alexnet远远优于VGG和Resnet,单张图像的预测时间仅为0.00067秒。综合来看,Alexnet的性能最优,后续编写桌面交互软件将以Alexnet为算法核心。
表2 不同种类缺陷识别准确率
表3 不同模型的性能指标
3 类激活热力图
采用上述的卷积神经网络已经达到了较好的分类效果,但是模型判断缺陷的方式不直观,不能确定哪些像素对结果的影响更大。为了解决这一问题,本文引入梯度加权类激活热力图(Gradient-weighted Class Activation Map,Grad-CAM)来表征每个像素在该类别图像上的重要程度,可以更直观的展示模型在提取图像特征时敏感度更高的区域是否为缺陷所在的区域,从而判断是否出现过拟合现象。
图4所示为十种缺陷图像的Grad-CAM可视化结果,从图中可以看出模型提取的每张图像的特征区域基本都在缺陷所在区域,这表明模型具有一定的泛化能力,没有出现过拟合现象。但是当一张图像中存在多个相同缺陷时显示效果有所下降,不过不影响显示网络最敏感的区域。
图4 Grad-CAM可视化结果
4 自动化软件
为了提高缺陷检测的效率,更方便快捷地对线圈炮金属管道内壁的各种烧蚀疵病进行自动化、智能化分类识别,利用C#语言在.Net框架下开发了自动化软件,可以实现自定义训练模型、批量缺陷识别、数据后处理等功能。图5所示为软件训练模型和验证样本的界面,相比于在代码层面完成模型训练与样本验证等工作,通过该软件可以更简单高效地实现。
图5 软件界面
5 结语
本文重点研究了基于深度学习的线圈炮缺陷自动识别与分类方法。针对实际成像过程易受噪声影响的问题,利用双边滤波算法对数据集进行了图像增强。针对样本数量少的问题,通过单样本几何变换的方式实现了数据增强。之后比较了三种经典的卷积神经网络分类模型的性能,三个模型在分类精度上差别不大,但在预测时间上Alexnet远远优于另外两个模型;同时为了更直观地观察模型是否更多关注缺陷区域,引入Grad-CAM来显示模型对每类缺陷图像的敏感区域。为了提高缺陷检测的效率,专门开发可以根据缺陷图像学习训练并分类识别的自动化软件,可以大大降低人力和时间成本,保障设备安全可靠运行。然而线圈炮缺陷检测难度相对较大,检测类别和精度还需进一步提升,并且图像的采集还没有自动化,使得样本数量较少,未来我们将结合现有的研究基础控制摄像头进一步实现缺陷图像的自动采集。