APP下载

基于边缘计算改进的MobileNetV1-SSD表面缺陷视觉检测方法

2024-03-26汪国平陈仲生侯幸林

船电技术 2024年3期
关键词:锂电池注意力神经网络

汪国平,胡 博,陈仲生,,侯幸林

基于边缘计算改进的MobileNetV1-SSD表面缺陷视觉检测方法

汪国平1,胡 博2,陈仲生1,3,侯幸林3

(1. 湖南工业大学 电气与信息工程学院,湖南 株洲 412007;2. 南京理工大学 瞬态物理国家重点实验室,江苏 南京 210094;3. 常州工学院 汽车工程学院, 江苏 常州 213032)

表面缺陷检测是产品质检的重要工序之一,现有边缘端视觉检测大多存在识别率低、模型结构复杂、部署困难、模型推理实时性差等问题。为此,本文以STM32H747微控制器为边缘设备,基于MobileNetV1-SSD轻量化模型,研究了一种融合CBAM注意力机制的表面缺陷视觉检测方法。首先,融合CBAM注意力机制,添加在最后一层的特征提取网络之后,使缺陷目标在检测模型中的特征表达能力得到增强,模型在仅增加少量的参数量的基础上提升模型的检测准确率;其次,对CBAM-MobilenetV1-SSD模型进行预处理;最后,采用X-CUBE-AI工具包在STM32H747微控制器中实现了模型的移植和部署。通过对比实验表明,融合CBAM注意力机制的模型mAP达到83.75%,精度比原算法提高2.75%,参数量仅为1.67M,模型大小为622KB,且部署在边缘设备对软包锂电池表面缺陷检测精度有显著提升。

表面缺陷检测;边缘计算;STM32微控制器;MobileNetV1-SSD;CBAM

0 引言

在工业制造中,产品质量对用户和制造商至关重要。产品表面缺陷的存在(如划痕、凹陷、气泡等)可能严重影响产品的外观和功能。因此,进行有效的表面缺陷检测至关重要。

近年来,基于卷积神经网络(CNN)的深度学习方法在产品表面缺陷检测领域受到广泛关注和应用,并取得了显著的成果。目前,基于深度学习的目标检测方法第一类是以 RCNN、Faster R-CNN为代表的两阶段目标检测。郑亚睿[1]等在Faster R-CNN基础上引入双动态头的金字塔网络,应用于钢材表面缺陷检测。第二类是以 YOLO、SSD为代表的直接进行位置回归的目标检测模型。葛钊明等人[2]基于YOLOv5网络引入卷积注意力模块,用于锂电池极片缺陷检测。Li等人[3]改进了SSD的骨干网络,并提出了一种MobileNet-SSD 网络,用于检测罐装密封容器的表面缺陷。

以上研究利用不同的神经网络模型来实现对产品表面的缺陷检测并取得了较好的效果。但实际上由于边缘端视觉检测大多存在识别率低、模型结构复杂、部署困难、模型推理实时性差等问题,针对边缘计算端[4]的缺陷检测的研究甚少。因此,本文设计了一种融合卷积块注意力机制(CBAM) 的 MobilenetV1-SSD检测模型,以软包锂电池表面缺陷为实验对象,通过构建轻量化的MobilenetV1-SSD模型,在此基础上通过引入CBAM 注意力机制来增强模型对缺陷目标的特征表达能力,进而提高对软包锂电池表面缺陷检测精度。

1 CBAM-MobileNetV1-SSD模型构建

1.1 MobileNetV1-SSD轻量化网络

MobileNetV1[5]是 Google 公司 2017 年发布的用于移动端的轻量化深度学习网络,其核心思想是运用深度可分离卷积和倒置残差结构,实现了高效的特征提取和信息处理,大大降低了计算量和参数数量。同时,MobileNetV1在有限计算资源的情况下仍保持较高的准确性和性能表现。

SSD[6]网络是一种单阶段目标检测网络,它基于VGG16骨干网络,通过金字塔特征提取结构实现不同大小特征图的分类和回归。采用金字塔特征提取结构通过不同卷积层和尺度的特征图进行分类和回归,能更好地适应小目标的检测需求。SSD网络具有更快的运算速度和更低的网络复杂度,因而更适合于轻量化应用。为此,本文选取SSD网络作为目标分类和边界框回归任务的主要框架,同时采用MobileNetV1作为骨干网络,替代原有的VGG16网络,构建MobileNetV1-SSD轻量化模型。MobileNetV1网络的计算量约为VGG网络的1/30,从而明显压缩了缺陷检测网络模型。

1.2 融合CBAM注意力机制

在采用轻量化网络技术后,根据MobileNetV1-SSD实验结果可知模型的精度有小幅度的下降。为了解决这个问题,本文考虑在轻量化网络模型中融合CBAM注意力机制,使模型更加关注重要的特征,模型在仅增加少量的参数量的基础上提升模型的检测准确率,从而提高模型的表现和泛化能力。CBAM[7]是一种用于图像分类的注意力机制,可以有效地提高卷积神经网络的性能。其核心思想是将注意力机制嵌入到CNN中,以使CNN可以自适应地选择图像中最具有代表性的区域并进行更好的分类,给原本没有注意力机制的模型,同时加入通道与空间上的注意力机制。其整体结构原理如图1所示。

图1 CBAM注意力机制整体结构图

CBAM主要包括两个模块:通道注意力模块和空间注意力模块。通道注意力模块主要关注通道维度上的特征,以适应不同通道之间的重要性差异,其模块结构原理如图2所示。通道注意力模块旨在学习特征图中不同通道之间的关系。它通过两个步骤来计算通道注意力:全局平均池和共享全连接层。首先,通过全局平均池化操作,对每个通道的特征图进行全局平均池化,得到通道维度上的特征描述。然后,将这些描述送入一个共享全连接层来计算每个通道的权重,形成了通道注意力图M,这个通道注意力图包含了每个通道在特征图中的重要性信息,权重值表示了每个通道对于整个特征图的重要程度。最终,这个通道注意力图会被应用到原始的特征图上对不同通道的特征进行加权,以增强有用的通道特征。

图2 通道注意力模块结构图

空间注意力模块则侧重于图像中不同空间位置之间的关系。通过对图像不同位置的特征进行加权来强调重要的空间区域,以增强模型对物体的空间结构和布局的理解,其模块的工作原理如图 3所示。空间注意力模块旨在学习特征图在空间维度上的重要性分布。它主要通过两个步骤来计算空间注意力:使用最大池化和最大值池化。首先,对于每个通道,空间注意力模块分别对特征图进行最大值池化和平均值池化操作,得到每个位置上的最大值和平均值信息。接着,这些信息被拼接在一起并送入一个卷积层,生成一个空间注意力图M。这个注意力图会乘以原始的特征图,强调空间上重要的特征,抑制不重要的部分。

图3 空间注意力模块结构图

综上所述,CBAM注意力机制的计算公式如下:

由于考虑到STM32H747边缘设备的存储与计算资源有限,需要限制模型的大小,因此本文不考虑将在每层卷积层之后添加注意力机制模块,而只是将注意力机制模块只添加在最后一层的特征提取网络之后。首先对模型的输入通道进行全局平均池化和全局最大池化操作,获取通道特征的全局信息。然后设置两个全连接层的通道共享率为8和1,继而得到维度大小为(Batch, 1, 1, 16)和(Batch, 1, 1, 64)的两层共享全连接层,最后传入 Sigmoid激活函数生成每个通道的权重值,最终将权重值乘到每个通道的特征图上,达到增强重要通道特征的效果,以提高模型识别的精度。使得模型在仅增加少量的参数量的基础上提升模型的检测准确率。

2 CBAM-MobilenetV1-SSD检测模型部署

2.1 模型预处理

将CBAM-Mobilenetv1-SSD缺陷检测模型移植到STM32H74微控制器之前,需要在PC 端设备对其进行预处理,其流程如图4所示。PC 端的预处理步骤包括模型训练、模型量化[8]和模型转换,量化后输出的.tflit文件即是STM32可加载的网络模型。

图4 模型预处理流程图

2.2 模型部署

为了在STM32H747微控制器上部署量化后的CBAM-Mobilenetv1-SSD缺陷检测模型,本文选择采用X-CUBE-AI工具[9]。它支持快速自动导入流行深度学习框架(如Keras,TensorFlow-Lite,Caffe等)训练后的神经网络,将其换为适用STM32的优化代码,实现神经网络模型向可移植C模型的精确转换,并优化生成的库以减少内存占用。

在STM32H747微控制器上部署CBAM-MobileNetV1-SSD缺陷检测模型的流程如图5所示。使用X-CUBE-AI 工具箱对 TFLite 模型进行转换,得到预处理后CBAM-Mobilenetv1-SSD模型的大小仅有622KB、占用 RAM 大小仅为312KB,完全满足STM32H747计算及存储资源要求。

图5 CBAM-MobileNetV1-SSD模型部署流程图

CBAM-MobileNetV1-SSD模型转化生成的C代码包括network.c、network.h、network_data.c、network_data.h、network_data_param.c和network_data_param.h,其中network.c包含了神经网络的初始化、前向传播函数和其他相关函数;network.h文件包含了神经网络的结构定义、函数声明和常量定义;network_data.c和 network_data.h文件包含了神经网络的权重和偏置数据;network_data_params.c和network_data_params.h包含了部署转换后神经网络模型所需的数据和参数定义。

最后,将上述这些数据和参数嵌入到STM32H747微控制器的代码中,即可实现CBAM-Mobilenetv1-SSD缺陷检测模型的推理,无需在运行时访问外部数据文件,从而实现了视觉检测的边缘检测。

3 实验测试与验证

本文针对两类软包锂电池表面缺陷:划痕和凹坑,人工制作软包锂电池表面缺陷数据集,全部缺陷图像数量共有2000张,随机选取1500张图像作为训练集,剩余500张作为测试集。PC端计算环境为 Inter i5 CPU、Nvidia GTX2080GPU、8 GB 内存、Python3.8 及 Tensorflow2.83 框架。

3.1 模型训练

在训练过程中,选取 bath_size = 64、 epoc= 500,预测框 IOU 设置为 0.4,NMS 设置为 0.5,学习率设为 0.001,优化器选择 Adam 算法。

CBAM-MobileNetV1-SSD和MobileNetV1-SSD模型的训练及验证过程的损失函数值随迭代次数变化如图6所示,可以看出CBAM-MobileNetV1-SSD模型训练396个epoch达到收敛,且训练与验证的最小损失值分别为1.7023和0.964,而MobileNetV1-SSD模型训练172个epoch达到收敛,且训练与验证的最小损失值分别为1.8794和1.4231。分析比较可知CBAM-MobileNetV1-SSD模型相比较于MobileNetV1-SSD模型在训练和验证时都表现出更低的损失值,具有更好的收敛性能和泛化能力,这表明本文的融合CBAM注意力机制改进方案是可行的。

图6 不同模型的训练与验证损失值曲线对比图

3.2 性能测试分析

为了评价表面缺陷检测的性能,本文选择目标识别任务中常用的平均准确率均值(mAP:mean average precision) 作为评估指标。平均准确率均值指软包锂电池表面缺陷“defect”( 划痕、凹坑) 的平均检测精度,计算表达式如下。同时使用推理时间作为检测速度评估的指标,模型的大小及参数量作为裁剪压缩评估的指标。

式中:表示准确率;表示召回率;表示预测为正,实际为正;表示预测为正,实际为负;表示预测为负,实际为正;为单个类别的平均精准率;表示个类别的平均值。

CBAM-MobileNetV1-SSD和MobileNetV1-SSD模型的召回率如图 7所示,CBAM-MobileNetV1-SSD模型检测内容 “defect”在召回率达到0.8 时有下降的趋势,而MobileNetV1-SSD模型检测内容“defect”在召回率达到0.75时就已经有下降的趋势。这表明融合CBAM注意机制在达到相同的准确率条件下召回率更高,也就是模型检测出的正例占比全部的正例更大,具有更好的检测性。

图7 不同模型召回率对比图

模型的大小及性能如表 1 所示,可以看出CBAM-MobileNetV1-SSD模型的mAP值达到83.75%,比MobileNetV1-SSD模型提高了2.75%,且其参数量相比MobileNetV1-SSD模型仅有少量的增加。分析比较可知融合CBAM注意力机制,模型在仅增加少量的参数量的基础上具有更好模的检测精度。

表1 模型大小及性能对比

3.3 软包锂电池表面缺陷检测平台测试分析

表面缺陷检测平台如果图8所示,由传送平台、夹具、环形光源、光源控制器和相机组成。软包锂电池通过电机驱动传送到相机正下方,环形光源为相机连续采集提供良好的图像质量。相机采用OV5640摄像头在线采集软包锂电池表面图像,接着对图像进行预处理及特征提取,再调用部署在STM32H747的缺陷检测深度学习模型,对获取的产品表面图像进行识别;最后,在LCD显示屏显示产品表面缺陷的的检测结果。

图8 表面缺陷检测平台

图9 待检测软包锂电池

因此,本次实验采用如图9所示的待检测软包锂电池,该软包锂电池表面有两个缺陷,分别是划痕和凹坑。在STM32H747微控制器上分别运行部署成功的CBAM-MobileNetV1-SSD和MobileNetV1-SSD模型,对软包锂电池表面进行实时缺陷检测实验。

本次实验中STM32H747运行的CBAM-MobileNetV1-SSD和MobileNetV1-SSD模型对软包锂电池表面缺陷检测实验结果如图10所示,两种模型对凹坑和划痕这两种缺陷均能准确识别出来,CBAM-MobileNetV1-SSD识别的凹坑和划痕的置信度分别为0.83和0.99,而MobileNetV1-SSD识别的凹坑和划痕的置信度分别为0.58和0.63,分析本次实验结果可知,CBAM-MobileNetV1-SSD模型部署在边缘设备对软包锂电池表面缺陷检测精度有明显提升。

(a) CBAM-MobileNetV1-SSD检测结果

(b) MobileNetV1-SSD检测结果

图10 软包锂电池表面缺陷检测结果对比图

4 结语

本文以STM32H747微控制器为核心,基于MobileNetV1-SSD轻量化模型,研究了一种融合CBAM注意力机制的表面缺陷视觉检测方法,主要工作包括:1)采用融合CBAM注意力机制的方法对原算法模型的网络结构进行优化,检测精度提升了2.75%;2)对融合CBAM注意力机制前后的模型算法进行了对比实验验证,结果表明改进算法的模型具有更好的收敛性能和泛化能力;3)在STM32H747微控制器中实现了模型的移植和部署,并搭建检测平台进行实验对比测试与验证,最终实验结果表明融合CBAM注意力机制的MobileNetV1-SSD模型对软包锂电池表面缺陷的边缘侧检测精度有明显的提高。

[1] 郑亚睿, 蒋三新. 基于双动态头Sparse R-CNN的表面缺陷检测算法[J]. 仪表技术与传感器, 2023(5): 97-105, 111.

[2] 葛钊明, 胡跃明. 基于改进YOLOv5的锂电池极片缺陷检测[J]. 激光杂志, 2023, 44(2): 25-29.

[3] Li Y T, Huang H S, Xie Q S, et al. Research on a surface defect detection algorithm based on MobileNet-SSD[J]. App Sci, 2018, 8(9): 1678.

[4] 吴瑞东, 刘冰, 付平, 等. 应用于极致边缘计算场景的卷积神经网络加速器架构设计[J]. 电子与信息学报, 2023, 45(6): 1933-1943.

[5] 毕鹏程, 罗健欣, 陈卫卫. 轻量化卷积神经网络技术研究[J]. 计算机工程与应用, 2019, 55(16): 25-35.

[6] Wang L H, Shi W P, Tang Y H, et al. Transfer Learning-Based lightweight SSD model for detection of pests in citrus[J]. Agronomy, 2023, 13(7): 1710.

[7] Chen L J, Yao H D, Fu J Y, et al. The classification and localization of crack using lightweight convolutional neural network with CBAM[J]. Eng Struct, 2023, 275, Part B: 115291.

[8] 杨春, 张睿尧, 黄泷, 等. 深度神经网络模型量化方法综述[J]. 工程科学学报, 2023, 45(10): 1613-1629.

[9] Lucan O I. Seiculescu C Căleanu C D. A brief review of deep neural network implementations for ARM Cortex-M processor[J]. Electronics, 2022, 11(16): 2545.

Edge computing-based enhancement of mobileNetV-SSD for surface defect visual detection

Wang Guoping1, Hu Bo2, Chen Zhongsheng1,3, Hou Xinlin3

(1. College of Electrical and Information Engineering, Hunan University of Technology, Zhuzhou 412007, Hunan China; 2. National Key Lab. of Transient Physics, Nanjing University of Science and Technology, Nanjing 210094, Jiangsu China; 3. College of Automotive Engineering, Changzhou Institute of Technology, Changzhou 213032, Jiangsu China)

TM930.9

A

1003-4862(2024)03-0009-06

2023-06-27

国家自然科学基金项目(62101074)

汪国平(1997- ),男,硕士研究生,研究方向:嵌入式机器视觉、产品缺陷检测;E-mail:1106766548@qq.com

陈仲生(1977- ),男,教授,博士,研究方向:状态监控与故障诊断、工业机器视觉。E-mail:chenzs@czu.cn

猜你喜欢

锂电池注意力神经网络
让注意力“飞”回来
神经网络抑制无线通信干扰探究
“扬眼”APP:让注意力“变现”
A Beautiful Way Of Looking At Things
基于神经网络的拉矫机控制模型建立
基于SVM的锂电池SOC估算
复数神经网络在基于WiFi的室内LBS应用
一种多采样率EKF的锂电池SOC估计
基于支持向量机回归和RBF神经网络的PID整定
锂电池百篇论文点评(2014.6.1—2014.7.31)