基于改进的卷积神经网络的工件识别技术

2023-06-25 01:19位冲冲夏明磊
关键词:工件滤波卷积

宫 妍,位冲冲,夏明磊

(哈尔滨商业大学 轻工学院,哈尔滨 150028)

随着《中国制造2025》[1]、《德国工业4.0》等战略的提出,传统制造业向智能制造转变已是一个势不可挡的趋势,制造工艺与生产模式也由于机器视觉技术的应用变得更加智能.在一些需要对工件进行识别、分类和统计的场景中,传统依赖人工的方法无法保证识别速度和准确率,不仅需要投入大量人力成本而且效率低下,不利于各种企业实现自动化的改革并向信息化、智能化方向发展.机器视觉技术可用于产品表面缺陷的检测、产品几何尺寸测量、识别与定位等,为企业实现智能制造的升级提供了重要的技术基础,尤其在工件识别方面准确率高,大幅提升了流水线生产效率.

针对工业生产领域的工件识别与分类技术需求,传统的识别方法存在人工成本大、识别率低、通用性差等问题,特别是在工件种类多且结构比较复杂的情况下,工件的位置变化容易影响识别效果,准确率不高[2],对此国内外学者开展了大量的研究.朱凯[3]为了解决流水线上重合摆放工件的识别问题,利用边缘分段的方法,设计了工件识别系统.对经过与处理后的工件图像检测其边缘特征,优先检测位于最上边的工件,得出分类信息.杨桂华[4]等研究了一种使用连通域分析的识别方法,并与神经网络分类器相结合,完成了对流水线上摆放无规则工件的识别.结果显示,识别率较传统方法得到了大幅提升,定位更加准确.Sadbhawna[5]提出用于3D合成视图质量评估的拉伸工件识别方法,通过实验验证,效果较之前得到显著提升.甘露[6]等为了改善传统工件识别算法中人工成本高的问题,每次识别工件都需要重新设计特征,结合CNN网络模型构建了一个6层的网络模型进行工件分类,通过模型的自我学习,自动提取特征,从而进行识别分类.De Nart Dario[7]使用4种卷积神经网络模型,对9 887张蜜蜂翅膀图像进行了分析验证,结果表明Inception模型在一定程度上达到了最高的准确率和较高的查准率和查全率.

为解决传统的工件识别方法存在的不足,本文结合卷积神经网络算法,选取两种经典卷积神经网络模型AlexNet和LeNet-5,并在此基础上对其进行改进,实现自动提取工件特征,且不需要单独设计分类识别过程.随着迭代次数增加自我学习,具有很好的泛化能力,解决了传统识别算法中针对不同类型工件需要多次设计提取特征的问题.改进后的网络模型在识别速度和识别准确率上都有了一定的提升.

1 图像采集及预处理

本文选取了工业生产中常见的八种工件,有扳手、长钉、螺栓、轴承等,见图1.

图1 待分类八种工件Figure 1 Eight types of workpieces to be classified

对采集到的工件图像进行数据增强扩充数据集,并进行滤波、图像增强等一系列预处理操作,提高输入图像的质量.每种工件通过数据增强得到2 000张图像,共16 000张照片,按7∶2∶1的比例划分为训练集、验证集和测试集.

1.1 图像采集方法

按照机器视觉实际工作场景,打好光源,将相机用支架固定,搭建好基于机器视觉的工件识别平台,如图2所示,采用从上往下垂直拍摄工件获取图像,每个工件按不同角度,不同位置随机出现在相机视野中,用来模拟实际工作中,随机放置零件的不同位置及角度,每种零件拍摄200张.

图2 基于机器视觉的工件识别平台Figure 2 Workpiece recognition platform based on machine vision

1.2 图像预处理

图像预处理是对原始拍摄获得的工件图像进行处理操作,为接下来的流程提供清晰且高质量的输入数据,优化特征提取,提高模型的识别效果.

1.2.1 数据增强

一个性能较好的神经网络通常需要包含很多的参数,因此要想使神经网络的性能更好,避免过拟合,必须要有大量的数据来训练.第一种方法是通过采集获取新数据,但是人工采集成本较高,而且耗时较久;第二种方法是通过数据增强创造出更多“假数据”,加入到数据集中,特别是在工件识别过程中,各个工件可能形状很相似,就需要大量数据来更精准地提取相应的特征,本文对待识别工件进行了色彩增强、高斯噪声、镜像、放大、旋转等六种数据增强操作,生成大量数据,图3所示为扳手部分数据增强图.

图3 扳手部分数据增强图Figure 3 Enhanced data of wrench section

1.2.2 图像滤波

采集到的工件原图上的噪点,多是由于背景不干净、过曝、反光所导致的.通过图像滤波的方式可有效改善,采用均值滤波、高斯滤波和中值滤波三种方法,分别对含有噪声的工件图像进行预处理,如图4所示,经过高斯滤波图4(B)和均值滤波图4(C)处理的工件图像在边缘处会有一定的模糊效果,这与它们的工作原理相关,而中值滤波图4(D)处理后的图像则很好地保留下来图像的边缘特征,并且大幅减少了噪点的影响.

图4 三种滤波处理效果图Figure 4 Three filter processing effects

由图4可以看出中值滤波的处理方式可有效降低亮点的影响,并可提升暗部细节,其处理方式并没有像其他两种滤波模糊了图像边缘,对之后的特征提取比较友好,根据三种滤波效果对比,最后选用中值滤波算法对所获取的图像进行预处理,减少噪点的影响,为后续提高模型识别效果打下基础.

1.2.3 图像增强

在Retinex算法中,可以将所观测到的图像S(x,y)分成两种不同的图像:一种是反射图像R(x,y),也就是实际图像;另一个是光照图像L(x,y),可用下列关系式表达:

S(x,y)=R(x,y)×L(x,y)

(1)

目前Retinex已发展成单尺度SSR、多尺度MSR和迭代的McCann算法,这里主要采用单尺度SSR算法.将上列公式两边取对数,可以得到物体的真实图像:

(2)

通过算法处理,与原图对比见图5.

图5 算法效果图Figure 5 Algorithm rendering

图5表明了单尺度SSR算法可以很好地增强图像,较好地解决了由于光照不均产生的问题,并使工件边缘特征更加清晰.

2 改进的卷积神经网络模型与工件识别

2.1 改进的AlexNet网络模型

原始AlexNet一共包括八层,其中5个卷积层和3个全连接层,参数量达到60 M以上,结构示意图如图6所示.

图6 AlexNet网络结构示意图Figure 6 AlexNet Network StructureDiagram

针对原始模型识别效果的不足,经过实验分析后,本文做出以下几点改进:

1)将模型的输入由224×224改为120×120,缩小图像尺寸,减少参数运算,有利于减少训练时间,提高识别速度.

2)用批归一化BN层替代局部响应归一化LRN层[8],效果显著,能更好地防止过拟合现象的发生.

3)减少卷积层及全连接层数.由于本文识别工件种类较少,形状不太复杂,不需要模型层数太深,并希望提高训练速度.经过多次实验验证,由原来的5层卷积层改为3层;由模型连接节点可知,参数主要集中在全连接层,故选择减少两层全连接层,可大量减少参数,减少模型的存储空间.

4)用3×3的卷积核代替第一层卷积层11×11的卷积核.

改进后的网络模型如图7所示.

图7 改进后的AlexNet网络模型结构Figure 7 Improved AlexNet Network Model Structure

2.2 改进的LeNet-5网络模型

LeNet设计之初被用于手写数字识别,并且效果很好,因为网络结构中有卷积层和池化层共5层,所以现在主要被称为LeNet-5,与之后的AlexNet网络模型相比,LeNet-5的网络结构更为简便.LeNet-5网络不包含输入层则共有7个层次,前几层中卷积层和池化层依次排列,最后通过两层全连接层输出识别信息,结构示意图如图8所示.

图8 LeNet-5网络结构示意图Figure 8 Schematic diagram of LeNet-5 network structure

经过对工件识别实验分析,针对LeNet-5原始模型不足之处,本文进行如下改进:

1)由于本文所选工件复杂度远大于手写数字图片,故将原始输入图像大小提升至60×60;

2)工件种类较多,且特征复杂,故加深网络深度,增加至4层卷积层,同时用最大池化代替平均池化,减少一层全连接层以减少网络参数;

3)选用1×1和3×3的卷积核替代5×5的卷积核,1×1的卷积核减小了特征图的厚度,均衡了网络的宽度和深度.在浅层网络运算中,提取了大量的特征信息,而且所需的计算量很小.

4)用激活函数ReLU代替原始的Sigmoid,Sigmoid激活函数在进行梯度反向传播的过程中,会产生梯度爆炸、梯度消失等现象,由于其操作中包含了幂函数,因此计算量较大,且会增加训练时间.由于ReLU运算速度快,收敛速度快,克服了梯度消失的问题,使网络具有一定的稀疏性,降低了参数间的依赖性,故选用ReLU激活函数[9].

改进后的网络模型如图9所示.

图9 改进的LeNet-5网络模型结构Figure 9 Improved LeNet-5 network model structure

3 实验结果与分析

对准备好的数据集,使用两种网络的原始模型以及改进后的模型进行训练,通过调整超参数达到收敛,然后使用训练好的模型在测试集上进行测试,通过对比识别速度与准确率,来验证本文改进方法的有效性.实验均在Windows11系统完成,系统类型为64位操作系统,CPU为AMD R7-4800H,主频2.90GHz,内存16GB,编程语言为Python3.8,深度学习框架为Pytorch1.10.0,IDE环境为Pycharm2020.3.4.

3.1 AlexNet模型训练与测试

使用AlexNet原始模型对训练集进行训练,并通过验证集调整得到最佳超参数和模型,设参数如下:学习率lr=0.0001,batch_size=16,step_size=5,epoch=20,得到其收敛数据集如表1所示.

表1 AlexNet原始模型训练集和验证集收敛数据Table 1 Convergence data of alexNet original model training set and verification set

用改进后AlexNet网络模型对训练集进行训练,同时对验证集进行验证,设置超参数为学习率lr=0.0001,batch_size=30,step_size=5,epoch=60.通过训练得到训练集和验证集的loss和acc变化曲线,如图10所示.

图10 AlexNet改进模型损失函数与准确率Figure 10 Loss function and accuracy of AlexNet improved model

使用改进后的AlexNet模型对数据集进行训练验证,得到的loss和acc曲线明显比原始模型顺滑且波动不大,准确率得到提升,训练速度也变得更快,达到收敛的批次也更小,最终收敛如表2所示.

表2 AlexNet改进模型训练集和验证集收敛数据Table 2 Convergence data of AlexNet improved model training set and verification set

使用测试集对模型的实际识别效果进行实验,查看模型的泛化能力.用训练好的模型对测试集进行识别验证,随机选择测试集内每类工件200张图片,查看每张图片被识别的类别,统计测试集工件的识别时间以及识别率,如表3所示.

表3 测试集识别结果Table 3 Test Set Identification Results

由表3可见八类工件准确率都在90%以上,平均准确率达到94.31%,与原始模型相比识别准确率得到大幅提升,识别速度也更快.综上可知,本文改进的网络具有良好的学习能力,随着训练次数的增加验证精度和验证损失都随着训练精度和训练损失值变化,整个训练过程中并未出现欠拟合和过拟合现象,且在测试数据集上表现较好,表明本文改进后的网络模型具有良好的泛化能力和学习能力.

使用测试集对模型的实际识别效果进行实验,查看模型的泛化能力.用训练好的模型对测试集进行识别验证,随机选择测试集内每类工件200张图片,查看每张图片被识别的类别,部分识别结果如图11所示.

图11 改进模型测试效果Figure 11 Improved model testing effect

图11中框图内显示的是待识别的工件,下方文字显示的是识别工件的类别,数字表示的是对应的概率.

3.2 LeNet-5模型训练与测试

首先使用搭建好的原始LeNet-5网络对训练集和验证集进行训练验证,通过训练集和验证集曲线不断调整超参数,最终取batch_size=16,优化器采用Adam,学习率lr=0.0001,学习率衰减设置为每隔10轮变为原来的0.5,迭代次数epoch=30次,得到训练集和验证集的loss和acc的收敛数据,如表4所示.

表4 LeNet-5原始模型训练集和验证集收敛数据Table 4 Convergence data of LeNet-5 original model training set and verification set

使用改进后的LeNet-5模型对数据集进行训练验证,得到的loss和acc曲线明显比原始模型顺滑且波动不大,准确率得到提升,训练速度也变得更快,达到收敛的批次也更小,训练集和验证集的loss和acc曲线如图12所示.

最终收敛数据如表5所示.

表5 LeNet-5改进模型训练集和验证集收敛数据Table 5 Convergence data of training and validation sets for LeNet-5 improved model

使用训练好的模型对测试集进行识别验证,随机选择测试集内每类工件200张图片,查看每张图片被识别的类别,统计测试集工件的识别时间以及识别率,识别结果如表6所示.

表6 测试集识别结果Table 6 Test set identification results

由表6可见八类工件识别准确率都在90%以上,改进后模型在测试集上平均识别准确率为92.75%,平均识别时间为0.321 s.改进后的LeNet-5模型的识别精度高、时间短、实时性好,能有效地改善生产线上的工件分类,达到实时测试的需要,对实际生产有很大的借鉴.

3.3 实验对比

进模型前后识别效果对比如表7所示,可见改进后的两种网络模型,在识别速度和识别准确率上均优于原始网络模型,相比于文献[10],改进后的LeNet-5网络模型的识别率与之相近,而改进后的AlexNet网络模型优于文献[10].对于文献[11]中同为经典卷积神经网络的VGG而言,本文选取改进的两种网络模型更适用于对工件的识别.

表7 不同算法识别率Table 7 Recognition rates of different algorithms

改进后的AlexNet模型准确率提升了30.1%,识别时间仅为原始模型的22%;改进后的LeNet-5模型准确率提升了37.4%,识别时间仅为原始模型的19%.原始模型层数众多,参数量大,所占存储空间比较大,改进后的模型大大减少了存储空间,更适用于微型嵌入式设备,模型改进前后所占存储空间大小如表8所示.

表8 改进前后网络存储空间大小Table 8 Network storage space size before and after improvement

改进后的模型存储空间更小,改进后的AlexNet为原始模型18.6%,改进后的LeNet-5模型为原始模型的34.9%,更易于应用到小型嵌入式设备上.

4 结 语

针对工业生产流水线上工件的识别分类问题,在两种经典卷积神经网络模型的基础上做出改进.

1)在AlexNet原始网络模型的基础上做出改进,通过缩小输入图像大小减少参数,使用BN层替代LRN层,减少卷积层和全连接层数,缩小模型存储空间,通过实验验证,在测试集上网络的平均识别准确率达到94.31%,提升了30.1%,平均0.271s识别一张,仅为原始模型的22%.

2)在LeNet-5原始网络模型的基础上做出改进,增加了输入图像尺寸,增加卷积层至四层加深网络深度,用ReLU代替原激活函数,缓解梯度消失现象,使用多个小卷积核代替大卷积核,实验结果表明,改进后的模型在测试集上平均识别准确率达到92.75%,提升了37.4%,平均识别时间为0.321张/s,仅为原始模型的19%.

3)改进后的两种网络模型,结构更简单,复杂度更低,参数大量减少,识别准确率得到提高,耗时更短,可以快速有效地对模型进行训练和测试,满足工业生产实时性要求,性能优于原始网络和传统工件识别算法,具有一定的实用价值.

猜你喜欢
工件滤波卷积
基于3D-Winograd的快速卷积算法设计及FPGA实现
考虑非线性误差的五轴工件安装位置优化
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
三坐标在工件测绘中的应用技巧
焊接残余形变在工件精密装配中的仿真应用研究
RTS平滑滤波在事后姿态确定中的应用
基于线性正则变换的 LMS 自适应滤波
一种基于卷积神经网络的性别识别方法
一种非圆旋转工件支撑装置控制算法