基于机器学习的装配质量图像识别研究①
2020-02-282
2
(同济大学1.中德学院,2.机械与能源工程学院,上海 201804)
0 引 言
发展智能制造对推动我国制造业转型升级具有重要意义,而智能装配则是其中重要的组成部分。在当前的产品装配领域,结合人机交互、机器视觉、智能数据采集等技术的人机融合式装配系统是解决人工装配中质量和效率问题的最佳途径。为了更好地控制装配质量,将产品质量检测转移到装配过程中来,本文研究了基于机器学习的装配图像识别技术。
机器学习领域的算法众多,根据训练数据是否有标签,可将这些算法分为监督学习和无监督学习两大类。监督学习的训练数据有人为标签,希望从训练数据集中学习对象的划分规则,并应用此规则在测试数据中预测结果和输出标签,主要算法包括线性回归,逻辑回归,人工神经网络和支持向量机。无监督学习用于处理没有标记的数据集,且事先不需要经过训练,它更类似于人类的学习方式,主要包括聚类和降维算法[1]。
机器视觉是人工智能的重要分支,主要任务是通过图像处理程序代替人的大脑完成测量、检查和判断等工作。将相机获取到的图像进行预处理操作,使用机器学习算法即可实现图像识别。在产品质量检测领域,机器视觉技术发挥了重要的作用[2~3]。
1 图像识别方案设计
(1)硬件部分
装配图像识别需要利用相机来检测当前步骤零件是否正确装配,并且需要把检测结果反馈给装配系统的主程序。本文的研究采用被广泛使用的普通工业相机,具有图像采集的功能但不带有图像识别的功能,图像识别软件通过自主开发并融入到装配系统中。当前市场上类似的相机选择很多也普遍廉价,本方案中选取相机分辨率为1600*1200 px,帧速范围从1600*1200 5fps到320*240 30fps,感光尺寸为1/2.7’CMOS。
图1 图像识别硬件系统
一个机器视觉系统的组成主要有三个部分:相机、镜头和光源。根据装配台的布局,相机和装配区域之间的垂直距离约为1.1米,所以选择焦距为16mm的镜头。为了保证环境光照稳定,系统选用亮度可调节的环形LED灯作为光源。结构如图1所示。
(2)软件部分
设计的图像识别系统是整个人机融合式装配系统中的一个模块,结合机器学习相关算法在MATLAB平台上开发。使用时,操作者只需要在该模块中创建正确装配和一些典型错误的类,调用工业相机在每个类中拍摄数张照片,系统会自动训练分类器,不需要操作者进行特征选取。在装配过程中,系统根据装配步骤调用对应的分类器对图像进行识别并向主程序反馈识别结果。
2 图像识别算法设计
本研究的人机融合式装配系统中训练图像易于获取,并可以同时得到其标签,因此选择基于机器学习的方式,利用监督算法通过训练分类器来实现图像识别。
基于机器学习的图像识别过程主要分以下几步:信息的获取、预处理、特征抽取和选择、分类器设计和分类决策。其中特征提取是指使用数学的方法将图像本身的特征进行抽取。图像识别过程中分类器根据抽取出的特征对图像进行分类,所以特征抽取对图像识别至关重要[4]。常用的图像特征提取算法有SIFT(Scale Invariant Feature Transform),SURF(Speeded-Up Robust Features),HOG(Histogram of Oriented Gridients),LBP(Local Binary Pattern),Haar-like等。分类器设计指的是使用带有标签的训练数据进行训练而得到的一种识别规则,利用该识别规则能够对被识别的图片进行分类,即对未知类的图像预测标签。当前使用比较广泛并且适用于图像分类的分类器算法主要有卷积神经网络(CNN),支持向量机(SVM),词袋模型(BoW)等。
使用以上三种分类器算法,结合不同的图像特征提取算法对各个算法进行测试,比较这些算法的图像识别准确率、训练和分类耗时以及训练所需数据量。通过测试确定选择何种算法来实现装配系统中的装配过程质量检测,同时实验结果也可用于后续步骤中训练数据的扩展和分类器的微调。由于SVM算法已经被证明最适合和HOG特征结合使用,所以对于SVM算法只结合HOG特征进行测试[5]。CNN算法通过卷积核扫描图像得到图像特征,所以也不需要结合图像特征提取算法进行使用。对于BoW,则需结合常用的五种图像特征提取算法以找出最优方案。
实验以某电磁阀产品装配过程为例,选择该产品装配过程中最难以识别是否正确装配的步骤,根据实际情况选取图像感兴趣区域。如图2所示,2 (a)为该步骤正确装配,2 (b)为垫片装反的情况,2 (c)为漏装垫片的情况,2 (d)为漏装阀芯的情况,共4个类,每个类各获取120张图片分别用于算法的训练和测试。由图中可以看出,垫片正反面的情况较难区分,仅有表面粗糙度不同,这给识别带来了很大的难度,并且对垫片放置的角度没有固定的要求,所以选取的算法若能对该步骤准确识别,则该算法也能满足其他步骤的识别要求。
图2 测试图像的四个类
该实验研究的问题是随着训练数据的量的变化,各分类器的分类准确性及耗时如何。实验训练数据量由每个类一张图片开始,直到60张结束,每次实验时,训练图像都从数据集中随机选取,除训练图像外,其余图像用作对分类器的测试,则随着训练数据的增加,测试数据由119张逐渐下降到60张。为了减少实验误差,实验的每一个步骤都随机选取训练数据和测试数据执行五次,取其均值。实验用到的算法均基于MATLAB平台实现,并在MATLAB上进行测试。实验结果如图3~5所示。
图3 各算法运行耗时
由图3结果可知,SVM和BoW+SURF算法表现接近,平均运行所需时间最短,且随着训练数据的增加,运行所需时间并没有出现明显的增长。对于CNN,算法耗时随着训练数据数量增加而逐渐上升,特别是当训练图片数量超过50张时,CNN运行耗时大幅提升。BoW+LBP和BoW+HOG运行所需时间随着训练数据的增加都没有出现明显的增长,运行耗时处于中间水平。
图4 各算法对测试图片集识别正确率
由图4结果可知,随着训练图片数量的增加,所有算法对测试图片的识别准确度都明显得到提高,并在训练图片数量超过30张后趋于稳定。对于BoW+SURF、SVM和CNN这三种算法,当训练数据超过25张时,识别准确率都能达到97%以上,它们的平均准确率分别为99.70%,99.30%和98.00%。对于其余四种算法,它们对于测试图像的识别效果一般,普遍难以达到90%以上。
图5 各算法对训练图像集识别正确率
由图5结果可知,BoW+SURF和SVM对训练图片的识别准确率始终保持在100%的水平,除此以外,其余算法对于训练图片的识别准确率的波动都很大,并处于一个较低的水平。
综合以上分析,识别效果较好的有BoW+SURF、SVM和CNN三种算法,其余各算法的准确率均达不到工业应用的要求。并且当训练图像数量处于25到35张范围内时,三种算法的测试图像识别准确率分别为99.38%、98.28%和98.00%,训练图像识别准确率分别为100%、100%和99.77%,均已具备良好的可行性。下一步是对这三种算法进一步改进以在降低原始训练图片数量的同时保持算法的识别准确率。
3 图像识别训练数据扩展
为了降低系统使用的复杂程度,减少在使用过程中需要创建的训练数据的数量,同时提高算法的识别准确率,现研究不同的训练数据扩展方法将如何影响图像识别结果。利用图像处理扩展训练数据是图像识别系统设计中常用的操作,通过训练数据扩展可减少原始训练数据数量并很好地提高分类准确率[6]。
为了确定最优的训练数据扩展方案,以下使用上文中分类效果较好的三种算法:BoW+SURF、SVM和CNN,并利用上文中使用的数据集作为训练数据扩展实验的原始数据集。在原始数据集中,每个类分别随机选取若干张图像作为分类器的原始训练数据,原始数据集中剩下的图像作为测试数据。在这若干个原始训练图像中,通过图像变换进一步创建更多的训练图像,然后利用原始训练图像和变换图像作为训练数据对分类器进行训练。考虑到装配车间中实际的生产环境对相机可能产生的影响,创建扩展训练图像时使用以下图像变换:
1) 镜像:以x或y轴为对称轴生成原始图片的镜像;
2) 旋转:以原始图像的中心作为旋转中心,旋转角度为0到自定义的极限角度范围内的随机值;
3) 位移:原始图像可以在图像的0%到自定义的极限位移范围内进行随机移动,可以选择沿x轴或者y轴方向进行位移;
4) 旋转+位移:对原始图像同时进行旋转和位移操作以产生扩展训练图像;
5) 亮度变化:改变原始图像的亮度产生更亮或更暗的图像,这是为了使分类器更独立于相机的曝光设置,因为环境光照可能不会处于完全稳定的状态;
6) 对比度变化:改变原始图像的对比度;
7) 高斯噪声:对原始图像添加高斯噪声;
8) 椒盐噪声:对原始图像添加椒盐噪声;
9) 位移+旋转+高斯噪声:对原始图像同时执行位移、旋转和高斯噪声操作。
实验中原始训练图像数量取30张,数据集中剩下的图像作为测试数据,实验重复执行五次,并且每次实验的训练图像都是随机选取的,记录每次实验各算法对训练和测试图像的识别正确率并取均值作为实验结果。实验结果如表1所示,表中第一列为利用原始数据创建扩展训练数据的操作。
表1 原始训练图像30张各算法运行情况
由运行数据可得,图像识别准确率最高的算法是BoW+SURF,准确率高达99.82%,此时扩展训练数据使用的是0%~20%位移+0%~10%旋转+高斯噪声。可以看到,在使用原始训练数据训练分类器时,三个算法的分类准确率都达到了99%以上,几乎没有提升的空间。对于BoW+SURF,几乎所有使用了扩展训练数据的情况的准确率都能保持在99%以上。即采用各种不同的扩展训练数据都能使BoW+SURF算法达到非常高的识别准确率。对于SVM,加入扩展训练数据后的准确率变化有升高也有下降,整体表现较为普通。而CNN只有在使用3张0%~90%旋转时准确率得到了提高,此时准确率也能达到99.73%的高水平,但是其余情况下均不及仅使用原始训练数据的水平。
图6 简单分类任务运行结果
综合实验数据可知,在使用扩展训练数据后,CNN的运行结果明显不如SVM和BoW+SURF,它的分类准确率最低并且运行耗费的时间也远高于另外两种算法,在绝大多数情况下准确率甚至远不如仅使用原始训练数据的情况,特别是使用图片平移操作来扩展训练数据时,CNN分类准确率大幅下降。这种情况是由CNN本身的特性决定的,归因于全局共享权值和池化操作,CNN具有平移不变性。即当小尺寸的图像发生平移时,CNN会出现识别错误的现象,并且这一现象是普遍的[7]。对于SVM算法,其分类准确率处于中间水平,但运行速度最快,在加入扩展训练数据时,SVM的识别正确率会因为扩展操作的不同而出现不同程度升高或下降。算法BoW+SURF的效果最好,在大多数情况下,加入扩展训练数据都能使算法的分类准确率得到提高,并且准确率都非常高,完全能够满足工业应用的需求。究其原因,SURF算法提取的是图像中对尺度缩放、旋转和亮度变化无关的特征,所以当图像出现平移、旋转等变化时,SURF提取的图像特征变化并不大。BoW+SURF算法耗时相对SVM要多一些,但是也处于能接受的范围。
考虑到装配车间环境较为复杂,可能有光照、噪声变化等情况,在获取训练数据或者系统实际运行过程中会受到一定影响,而BoW+SURF算法的抗干扰能力最强,识别准确率也最高,运行时间也处于可接受的范围,所以最终确定BoW+SURF作为系统的装配图像识别算法。同时,综合考虑车间环境和用户操作误差可能带来的影响,为对每个原始训练图像进行0%~20%位移+0°~10°旋转+高斯噪声的操作来生成扩展训练数据,这种操作最能模拟车间环境和用户操作误差可能带来的影响,也能在保持分类准确率的同时减少原始训练数据的采集数量。
在产品的实际装配过程中,大部分的装配图像分类任务是相对简单的。还是以该电磁阀产品的装配为例,选取其中线圈安装步骤这个较为简单的分类任务进行测试,它有三个类,线圈安装正确,线圈未安装和线圈安装反向。测试结果如图6所示。可以看出,简单分类任务对于分类器非常容易解决,当原始训练图像超过5张时,准确率基本上就可以高达100%。所以,对于简单的任务,只需要少数原始训练数据,减少了员工的工作量。
4 结 语
利用工业相机结合机器学习的方式实现装配图像识别的技术,通过搭建装配图像识别模块,利用多种监督算法进行分类器训练,分析识别准确率、耗时以及所需数据量,并进一步研究不同的训练数据扩展方法对识别结果的影响,得到最适于应用的算法方案。图像识别技术的引入,为构建人机融合式的装配辅助系统提供了有力支持,可以及时准确地发现人工装配过程中每一步的错误,有助于实现装配质量的精准控制,提高装配过程的智能化程度。