掌桥专利:专业的专利平台
掌桥专利
首页

基于深度学习的螺栓松动小角度检测方法

文献发布时间:2023-06-19 11:05:16


基于深度学习的螺栓松动小角度检测方法

技术领域

本发明涉及机械紧固件失效检测技术领域,具体涉及一种基于深度学习的螺栓松动小角度检测方法。

背景技术

螺栓连接具有连接可靠、装拆方便等优点,在木结构中得到了广泛的应用。木结构包装箱在运输过程中会受到持续振动载荷,由此引起的螺栓连接松动可能直接导致结构失效,因此,木结构螺栓连接松动的检测方法研究具有重要意义。

发明内容

本发明所要解决的技术问题是针对上述现有技术的不足提供一种基于深度学习的螺栓松动小角度检测方法,本基于深度学习的螺栓松动小角度检测方法能够有效地解决螺栓连接结构的松动角度识别检测问题。

为实现上述技术目的,本发明采取的技术方案为:

一种基于深度学习的螺栓松动小角度检测方法,包括以下步骤:

(1)、采集不同螺栓旋转角度图片,将不同螺栓旋转角度图片作为训练集数据;

(2)、采用训练集数据对SSD深度学习网络进行训练,得到SSD训练模型;

(3)、通过SSD训练模型对待测螺栓的图片进行检测,识别出螺栓的松动角度。

作为本发明进一步改进的技术方案,所述的步骤(1)包括:

拍摄不同螺栓旋转角度图片,所述螺栓及与其匹配连接的螺母上均设有圆形标记;

利用labelImg工具对图片中的目标物进行分类和命名,所述的目标物分别是螺栓底面和螺母上的圆形标记;

将分类和命名后的图片作为训练集数据。

作为本发明进一步改进的技术方案,所述的步骤(3)具体为:

通过SSD训练模型对待测螺栓的图片进行检测,识别出图片中所有目标物,同时,识别出目标物的中心坐标;经过SSD训练模型识别出的图片的默认坐标以左上角为原点,螺母上的圆形标记的中心坐标分别为(x1,y1),螺栓底面的中心坐标为(x2,y2);

将默认坐标的原点移动至螺栓底面中心,则螺母上的圆形标记的中心坐标为:(x3,y3)=(x1-x2,y1-y2),原点至坐标(x3,y3)的连线与Y轴负方向的夹角α为识别计算角度,0°≤α<360°,计算过程如公式(1)所示:

在螺栓初次安装时,采集螺栓图片,并识别计算出夹角α,将此时的夹角α记为初始角度α

当需检测螺栓松动角度时,采集螺栓图片,并识别计算出夹角α,将此时的夹角α记为角度α

螺栓的松动角度为θ=α

本发明的有益效果为:本发明能够有效地解决螺栓连接结构的松动角度识别检测问题。松动角度检测准确,研究表明,本发明方法在实施成本和识别角度精度上都有比较良好的表现。

附图说明

图1为利用labelImg工具对图片中的目标物进行分类和命名的示意图。

图2中(a)为螺母松开(Loosening)和拧紧(Tightening)的旋转方向图。

图2中(b)为经过SSD训练模型识别出的目标物中心坐标示意图。

图2中(c)为将原默认坐标的原点移动到螺栓的中心时螺母上目标物的坐标(x3,y3)的示意图。

图2中(d)为原点至坐标(x3,y3)的连线与Y轴负方向之间的夹角α示意图。

图3为SSD网络结构示意图。

图4中(a)输入至SSD网络结构的训练集数据中某一图片。

图4中(b)为大尺度特征图。

图4中(c)为小尺度特征图。

图5为模型训练过程中的预测先验框设置示意图。

图6中(a)为螺母旋转50度后的图片经过本实施例检测方法识别计算出的角度α结果示意图。

图6中(b)为螺母旋转150度后的图片经过本实施例检测方法识别计算出的角度α结果示意图。

图6中(c)为螺母旋转250度后的图片经过本实施例检测方法识别计算出的角度α结果示意图。

图6中(d)为螺母旋转350度后的图片经过本实施例检测方法识别计算出的角度α结果示意图。

图7为loss下降曲线示意图。

图8中(a)为螺母旋转1度后的图片经过本实施例检测方法识别计算出的角度α结果示意图。

图8中(b)为螺母旋转3度后的图片经过本实施例检测方法识别计算出的角度α结果示意图。

图8中(c)为螺母旋转5度后的图片经过本实施例检测方法识别计算出的角度α结果示意图。

图8中(d)为螺母旋转7度后的图片经过本实施例检测方法识别计算出的角度α结果示意图。

图9为本实施例4个螺栓图片示意图。

图10为经过本实施例检测方法对4个螺栓图片计算的角度α结果示意图。

图11为本实施例8个螺栓图片示意图。

图12为经过本实施例检测方法对8个螺栓图片计算的角度α结果示意图。

具体实施方式

下面根据附图对本发明的具体实施方式作出进一步说明:

本实施例提供一种基于深度学习的螺栓松动小角度检测方法,它能够有效地解决螺栓连接结构的松动角度识别检测问题。具体包括:

第一步,采集不同螺栓旋转角度的图片作为训练集数据,设计松动角度的识别方法。

第二步,通过基于深度学习pytorch框架的SSD目标检测算法对训练集图片数据进行训练,得到一个SSD训练模型。

第三步,通过SSD训练模型对新拍摄的不同螺栓旋转角度的图片进行检测,最终识别出螺栓的松动角度。

具体内容如下:

1、图片采集以及松动角度识别方法设计:

图片采集设备为智能手机,拍摄相关参数:像素3024*3024,分辨率72dpi,拍摄距离为8-10cm,为保证特征清晰,螺母占图片比例至少为1/4,共采集210张图片,其中70%作为训练集,30%作为测试集,之后利用labelImg工具对图片中的目标物进行分类和命名,目标物分别是螺栓底面和螺母上的圆形标记,取名为“Bolt”和“Sign”,如图1所示。

经过SSD深度学习网络训练之后,这些目标物都会被自动识别出来,并且给出目标物的中心坐标,松动角度的计算方法如图2所示。如图2中(a),螺母拧紧的旋转方向为顺时针方向,螺母松动的旋转方向为逆时针方向,如图2中(b),经过SSD识别出的图片的默认坐标以左上角为原点,目标物的坐标分别为(x1,y1)和(x2,y2),如图2中(c),在计算时将坐标中心移动到螺栓的中心,则螺母上目标物的坐标转化为(x3,y3)=(x1-x2,y1-y2),如图2中(d),新的原点与坐标(x3,y3)之间的连线与Y轴负方向之间的夹角α为检测角度,范围为0°≤α<360°,计算过程如公式(1)所示,在实际生活中,在螺栓初次安装时拍摄照片并识别夹角α作为初始角度α

2、深度学习网络训练过程:

深度学习网络训练基于pytorch框架下的Single Shot MultiBox Detector(SSD)算法,SSD算法属于one-stage方法,其主要思路是均匀地在图片的不同位置进行密集抽样,抽样时可以采用不同尺度和长宽比,然后利用Convolutional Neural Networks(CNN)提取特征后直接进行分类与回归,整个过程只需要一步,所以其优势是速度快。

SSD算法的网络结构如图3所示,SSD采用VGG16作为基础模型,然后新增了卷积层来获得更多的特征图以用于检测,其核心理念主要有三点:

(1)用多尺度特征图用于检测。在CNN中,前期的特征图比较大,后期会通过卷积和池化的方式减小特征图大小,大尺度特征图(如图4(b)所示)用来检测小物体,而小尺度特征图(如图4(c)所示)用来检测大物体,如图4所示,大尺度特征图可以划分更多的单元,但是其每个单元的先验框尺度比较小。

(2)采用卷积进行检测。不同于YOLO算法中将全连接层放在最后,SSD算法直接采用卷积对不同的特征图进行提取检测结果。对于形状为m*n*p的特征图,只需要采用3*3*D这样比较小的卷积核得到检测值,提高了检测速度。

(3)先验框的设置。在YOLO中,每个单元预测多个边界框,但是其都是相对于这个单元本身,但是真实目标的形状是多变的,YOLO需要在训练过程中自适应目标的形状,而SSD借鉴了Faster R-CNN中anchor的理念,每个单元设置尺度或者长宽比不同的先验框,预测的边界框是以这些先验框为基准的,在一定程度上减少了训练的难度,一般情况下,每个单元会设置多个先验框,其尺度和长宽比存在差异,如图5所示。

在SSD算法的训练过程中,首先要确定训练图片中的ground truth(真实目标特征)与哪个先验框进行匹配,与之匹配的先验框所对应的边界框将负责预测该特征。其匹配原则主要有两点,首先,对于图片中每个ground truth,找到与其IOU最大的先验框(IOU是预测边界框和ground truth边界框之间的重叠面积和并集面积的比率),这样可以保证每个ground truth一定与某个先验框匹配,通常称与ground truth匹配的先验框为正样本,若一个先验框没有与任何ground truth进行匹配,那么该先验框只能与背景匹配,就是负样本。实际上一张图片中的ground truth是很少的,而先验框却非常多,如果仅按照第一个原则进行匹配,那么很多先验框都是负样本,导致正负样本极其不平衡,所以提出第二个匹配原则,对于剩余的未匹配先验框,若某个ground truth的IOU大于某个阈值(一般是0.5),那么该先验框也与这个ground truth进行匹配,这意味着一个ground truth可能与多个先验框匹配,但是反过来却不行,因为一个先验框只能匹配一个ground truth,如果多个ground truth与某个先验框的IOU大于阈值,那么先验框只与IOU最大的ground truth进行匹配,第二个原则一定在第一个原则之后进行。尽管一个ground truth可以与多个先验框进行匹配,但是ground truth相对先验框还是太少了,负样本相对正样本仍然会多很多,为了保证正负样本尽量平衡,对负样本进行抽样操作,以保证正负样本比例接近1∶3。

3、深度学习网络训练结果:

训练数据集共包含210张图片,其中70%作为训练集,30%作为测试集,训练基于pytorch深度学习框架下的SSD算法,在训练过程中,模型的loss随迭代次数的增加而减小,直到稳定,模型的识别准确率也可以达到较高的水平。在训练参数的设置中,为了提高训练速度,batch_size设置为4,learning rate decay factor设置为0.94,优化器为SGD,关于learning rate的设置,一般初始训练时学习率设置的大一些以避免困在局部最优解,当loss较小时学习率再设置的小一些提高精度,所以将初始学习率设置为0.001,训练步数为10000,之后再以训练出的模型为基础,以0.0001的学习率再训练10000步。

为了识别角度的准确性,通过拍摄新的图片进行测试,利用角度测量装置,将螺母分别旋转50°、150°、250°和350°,每个角度拍摄3张图片,拍摄时保证摄像头正对螺母,螺母的大小至少占图片的三分之一左右,通过训练出的模型进行旋转角度的识别。识别角度数据如表1所示。

表1、识别结果数据:

模型最好的识别结果如图6中(a)至(d)所示,可以看出经过两次训练,单螺栓图片内各个目标的识别准确率均为100%。经过计算,平均角识别度误差为0.38°,所以采用此方法作为螺栓松动识别的基本方法。

4、最小识别角度精度测试:

在木结构螺栓连接中,当螺母产生松动时,螺母的旋转角度可能很小,当螺母旋转角度较大时说明松动已经很明显,结构失效的可能性已经很大。所以越早地检测到螺栓松动,越可以避免结构失效的发生,所以对提出的检测方法进行最小识别角度的测试。为了提高识别精度,在二次训练模型上再次以0.00001的学习率训练了50000步。在深度学习算法中,模型的评价主要基于损耗、单类平均精度(Average precision,AP)和所有类平均精度(Mean Average precision,MAP)等参数。损失是指训练集中预测结果与实际结果之间的误差;AP是指每类的识别精度;MAP是指所有类的平均识别精度,通常深度学习算法识别的目标类别有很多,但本实施例训练的模型所识别的类只有“sign”和“bolt”两类,类的识别准确率和平均识别准确率均为0.999。第三次训练的loss下降曲线如图7所示,此时的损耗曲线几乎处于稳定状态,说明模型已经收敛,模型的识别效果也接近稳定。

由于角度测量仪器的精度最小为1°,所以测量并拍摄1°、3°、5°和7°的图片并进行识别测试,每个角度依然是拍摄三张图片,通过自训练模型进行识别,识别出的最好结果如图8中(a)至(d)所示。

表2、小角度识别数据:

小角度识别数据结果如表2所示,四个角度的识别误差分别为0.37°、0.1°、0.07°和0.2°,总体平均误差为0.185°,增加模型的训练次数使角度识别误差有一定程度的下降,另外考虑到手工测量角度带来的误差,可以认为该方法已经能够达到较好的识别精度,且最小识别角度可达到1°,能够比较有效的检测螺栓松动初期的状态。

5、多螺栓识别效果:

在实际工作环境中,结构连接部位通常是使用很多个螺栓,如果每次只检测一个螺栓的松动状态,工作效率相对较低,多螺栓的同时识别对工作效率会有很大提升,所以有必要对多螺栓情况下的螺栓松动角度识别进行训练和效果测试。本实施例首先使用4个螺栓的情况进行测试,如图9所示,拍照设备相同,图片像素为3024*3024,识别目标物选取圆形特征,共采集210张图片,其中70%作为训练集,30%作为测试集,目标物两类分别为“Sign”和“Bolt”,分别以0.001和0.0001的学习率训练了10000步,总共20000步。

识别结果如图10所示,当一张图片内同时识别四个螺栓的角度时,“bolt”的识别准确率依旧接近100%,但是螺母上的“sign”的识别准确率相对下降,经过测试集识别结果计算,“sign”的平均识别准确率为65.7%。螺栓变多,相对一张图片单螺栓的情况,螺母上的“sign”目标物变小,训练的难度提升,识别的准确率下降,但是通过识别结果可以看出,通过此方法可以进行多螺栓情况下的松动角度识别。

将螺栓数量提升至8个,如图11所示,通过相同的方法与参数进行模型训练,在所有测试结果中,最好的识别结果如图12所示,8个螺栓的“bolt”特征识别准确率依旧很高,接近100%,但是螺母上“sign”特征只识别出了5个,而且准确率进一步降低,在35%左右。

随着螺栓数量的增加,SSD算法对小目标“sign”的识别准确率逐渐降低,为了实现更好的小目标识别效果,可以对视觉算法进行提升,为了实现多螺栓的松动角度识别,可以在训练模型处理前将图片中的多个螺栓逐一裁剪出来,然后进行角度识别,但最终角度识别的方法与单螺栓时相同。

本实施例的图6、图8、图10和图12中检测出的目标物用方框框处,每个方框上边的一排数据分别是目标物名称、识别的准确率、中心坐标x、中心坐标y;degree表示夹角α。图6、图8、图10和图12中图片的左边和下边的坐标为原始坐标,单位为像素。

本发明的保护范围包括但不限于以上实施方式,本发明的保护范围以权利要求书为准,任何对本技术做出的本领域的技术人员容易想到的替换、变形、改进均落入本发明的保护范围。

相关技术
  • 基于深度学习的螺栓松动小角度检测方法
  • 一种基于深度学习卷积神经网络的计算机病毒检测方法及深度学习神经网络的压缩方法
技术分类

06120112791699