一种基于改进Mask RCNN的汽车表面擦伤检测方法
文献发布时间:2023-06-19 10:58:46
技术领域
本发明属于表面擦伤图像识别技术领域,更具体的说,涉及一种基于改进MaskRCNN的汽车表面擦伤检测方法。
背景技术
随着社会经济的发展,不得不承认我们的生活方式也随之不断地变化着。人们的生活方式不断更新,汽车已经成为日常生活中不可或缺的一部分。汽车一般主要用于载运人员以及货物等等,使其能够快且方便地到达对应的地方,在当代环境下的使用已经极为广泛。
在日常使用过程中,汽车不可避免会出现一些擦伤现象,此时保险公司往往需要对擦伤区域进行鉴定。保险公司可以选择工作人员前往现场进行鉴定,也可以让用户上传相关图像进行线上人工审核。但选择工作人员前往现场进行鉴定耗费客户和公司的人力物力,特别是当客户处于外地时极其不方便;而选择用户上传相关图像进行线上人工审核则需要对图片的清晰度有较高的要求,给客户带来了不便。目前,已有采用计算机视觉技术对汽车表面擦伤进行检测,但传统的计算机视觉技术依赖于人为设计特征,而人为设计特征一般不具有鲁棒性,无法满足多变的现实情况,因此无法保证其检测精度。
经检索,关于图像识别技术的相关专利已有公开。如中国专利申请号为201910986317.X的申请案公开了一种基于Mask-RCNN的高分三号SAR图像道路检测方法,其包括以下步骤:S1:对样本SAR图像裁剪;S2:标记S1裁剪的子图图像、并生成JSON格式文件作为训练集;S3:根据Mask-RCNN理论模型,构建神经网络模型;S4:将S2训练集喂入S3构建的神经网络模型中,进行训练;S5:将待检测的SAR图像输入经过S4训练后的神经网络模型中,即可自动生成图像中道路信息。该申请案虽然也提供了一种图像检测方法,但是其图像检测效果并不理想,其检测方法有待进一步改进。
发明内容
1.要解决的问题
本发明的目的在于解决目前对汽车擦伤采用人工现场鉴定或网上上传图像进行线上人工审核都不方便,而传统的计算机视觉技术无法保证其检测精度的问题,提供了一种基于改进Mask RCNN的汽车表面擦伤检测方法。采用本发明的技术方案能够有效地对汽车表面的擦伤进行检测,避免出现人工检测费时费力、线上人工审核精确度不高的问题,且其检测精度相对较高,实用性好。
2.技术方案
为了解决上述问题,本发明所采用的技术方案如下:
本发明的一种基于改进Mask RCNN的汽车表面擦伤检测方法,具体包含以下步骤:
步骤S1:采集汽车表面擦伤图片,制作训练集和验证集;
步骤S2:构建基于改进版Mask RCNN的深度学习网络模型;
步骤S3:设置训练过程的权重初始化、超参数及优化器;
步骤S4:将步骤S1中制作的训练集输入步骤S2构建的网络模型进行训练;
步骤S5:将步骤S1中设置的验证集输入到步骤S4中训练好的模型中,计算模型的mAP值,当mAP值大于等于90%时,停止训练,保存模型;当mAP值小于90%时,回到步骤S3中重新进行超参数设置,然后继续进行步骤S4;
步骤S6:将待检测的汽车表面擦伤图片输入到步骤S5中保存的深度学习模型进行推断,获得擦伤的位置、种类以及置信度。
更进一步的,所述步骤S1中采集车体擦伤图片后,将图片尺寸统一裁剪为112×112,利用LabelMe工具在图片中标注出擦伤部分的位置和形状,将所有图片按8:2的比例分成训练集和测试集。
更进一步的,所述步骤S2的具体过程如下:
S2.1:采用FPN+ResNet50作为特征提取网络;
S2.2:采用Kmeans++算法调整RPN网络中锚框的数量和尺度,当平均交并比不再上升时,选取此时锚框数量为k,将训练集的样本中每个目标框的长宽尺寸设定为二维坐标系上的坐标点,利用Kmeans算法推算调整后的锚框尺寸;
S2.3:使用Soft NMS算法进行非极大值抑制,Soft NMS算法如下式所示:
式中:s
将所有的候选框按照类别不同分成不同集合,将每个集合中的候选框按照概率值大小降序排列,计算每个集合中的最大概率值的候选框和余下的候选框的IOU值,若IOU值小于设定阈值N
S2.4:ROI池化层采用ROI Align算法;将候选区域划分为4个小区域,每个小区域的ROI Align算法利用双线性插值算法进行平均值计算。
更进一步的,所述步骤S3的具体过程如下:
S3.1:设置权重初始化方式为高斯分布;
S3.2:设置设置批量大小为64;
S3.3:优化器采用Adam,采用反向梯度传播法进行模型权重更新。
更进一步的,所述步骤S4的具体过程如下:
S4.1:将训练集中的图片送入ResNet+FPN特征提取网络中进行特征提取生成特征图;
S4.2:将步骤S4.1生成的特征图送入RPN网络部分进行候选区域提取,RPN网络部分的锚框参数根据步骤S2.2中Kmeans算法的结果设置;
S4.3:对候选区域进行初步分类,然后通过前景分数和非极大值抑制算法SoftNMS筛选出可信度高的区域,生成候选框;
S4.4:将候选框和特征图融合后经过ROI池化层生成固定大小的候选区域;
S4.5:最后将步骤S4.4得到的候选区域输入到后续的分类层和边框回归层中进行目标区域识别,以及通过分割掩膜生成网络对图像进行分割;分类层和边框回归层使用全连接层网络,分割掩膜生成网络采用全卷积层网络;
S4.6:该网络的损失函数由边框回归损失、分类损失、像素分割掩膜损失相加组成,损失函数具体公式如下:
L=L
式中:L
n
更进一步的,所述步骤S5中的mAP值为平均精确度,是不同类别的精准率的均值,AP是P-R曲线下面的面积,P和R的计算公式如下:
式中:P指precison,即精准率;R指Recall,即召回率;N指种类个数。TP为TruePositive,即分类器识别正确且分类器认为该样本为正样本的样本;FP为False Positive,即分类器识别正确且分类器认为该样本为负样本的样本;FN为False Negative,即分类器识别结果错误且分类器认为该样本是正样本的样本,TN为True Negative,即类器识别结果错误且分类器认为该样本是负样本的样本。
3.有益效果
相比于现有技术,本发明的有益效果为:
(1)本发明的一种基于改进Mask RCNN的汽车表面擦伤检测方法,首先采集图片制作数据集,再构建深度学习网络模型,接着进行超参数设置,然后训练模型,训练好后保存模型,便可进行模型测试,得到最终的测试结果;本发明基于深度学习的计算机视觉具有良好的泛化性能,可以满足多变的现实情况,能够有效地对汽车表面的擦伤进行检测,避免出现人工检测费时费力、线上人工审核精确度不高的问题,实用性较好。
(2)本发明的一种基于改进Mask RCNN的汽车表面擦伤检测方法,通过具体采用FPN+ResNet作为特征提取网络,并在此基础上,对NMS算法也做出了改进,由于原NMS算法在目标框较近或者有重叠时容易出现漏检,而本发明使用Soft NMS算法代替传统NMS算法进行非极大值抑制,从而可以有效提高其检测精度,其鲁棒性较好,可便于对汽车擦伤部位进行有效识别。
附图说明
图1为本发明的一种基于改进Mask RCNN的汽车表面擦伤检测方法的流程图;
图2为本发明的Mask RCNN训练流程图;
图3为本发明的ResNet网络示意图;
图4为本发明的FPN网络示意图;
图5为本发明的ROI Align算法示意图;
图6为本发明的汽车表面擦伤检测结果示意图。
具体实施方式
目前,针对汽车上出现的一些擦伤现象,保险公司往往选择工作人员前往现场进行鉴定,或者让用户上传相关图像进行线上人工审核;但选择工作人员前往现场进行鉴定耗费客户和公司的人力物力,特别是当客户处于外地时极其不方便;而选择用户上传相关图像进行线上人工审核则需要对图片的清晰度有较高的要求,给客户带来了不便。而目前已有的计算机视觉技术一般依赖于人为设计特征,而人为设计特征一般不具有鲁棒性,无法满足多变的现实情况,因此无法保证其检测精度。
基于以上问题,本发明提供了一种基于改进Mask RCNN的汽车表面擦伤检测方法,首先采集擦伤图片制作数据集,然后构建基于改进版Mask RCNN的深度学习网络模型,接着进行超参数设置,然后训练模型,将验证集输入到训练好的模型中计算模型的mAP值,根据mAP值决定是继续训练模型还是直接保存模型,保存模型后便可进行模型测试,得到最终的测试结果。虽然目前已有图像检测方法识别图片,如背景技术中中国专利申请号为201910986317.X的专利,但是其检测效果实际并不理想,由于传统的计算机视觉技术一般依赖于人为设计特征,而人为设计特征不具鲁棒性,无法满足多变的现实情况,因此,本发明基于深度学习的计算机视觉具有良好的泛化性能,在原Mask RCNN算法基础上作出改进,如利用ResNet网络作为改进Mask RCNN算法的特征提取网络,采用Kmeans算法重新对锚框参数进行聚类处理,并利用ROI Align算法代替原算法中的ROI Pooling算法,同时还采用Soft NMS算法代替传统NMS算法,实验结果证明其改进算法有较好的效果,可以满足多变的现实情况,其鲁棒性较好,且检测精度也相对较高,能够有效地对汽车表面的擦伤进行检测,避免出现人工检测费时费力、线上人工审核精确度不高的问题,实用性较好。
具体的,如图1所示,本发明的一种基于改进Mask RCNN的汽车表面擦伤检测方法,具体包含以下步骤:
步骤S1:利用工业相机采集车体表面擦伤图片,将图片尺寸统一裁剪为112×112,利用LabelMe工具在图片中标注出擦伤部分的位置和形状,将所有图片按8:2的比例分成训练集和测试集。
步骤S2:构建基于改进版Mask RCNN的深度学习网络模型。该步骤的具体操作过程如下:
S2.1:采用FPN+ResNet作为特征提取网络。如图3-4所示,图3为ResNet网络示意图,图4为FPN网络示意图。
S2.2:采用Kmeans++算法调整RPN网络中锚框的数量和尺度,首先绘制平均交并比和锚框数量的关系图,当平均交并比不再上升时,选取此时锚框数量为k,将训练集的样本中每个目标框的长宽尺寸设定为二维坐标系上的坐标点,利用Kmeans算法推算调整后的锚框尺寸。所述Kmeansn算法具体如下:选择相互距离足够远的k个点作为质心,当任意一个点的簇分配结果发生改变的时候,针对数据集中的每个数据点以及每个质心,计算质心和数据点之间的距离,然后将数据点分配到距其最近的簇,再针对每一个簇,求出其均值并将其更新为质心。即输入n个样本的集合X,然后
(1)、初始化:令t=0,从上述样本集合中随机选择k个样本点作为初始聚类中心
(2)、对样本点进行聚类。对固定的类中心
(3)、计算新的类中。对聚类结果C
(4)、当迭代收敛或符合停止条件时,输出C
S2.3:原NMS算法在目标框较近或者有重叠时容易出现漏检,针对以上现象,使用Soft NMS算法代替传统NMS算法进行非极大值抑制,Soft NMS和NMS算法如下式所示:
式中:s
所述Soft NMS算法具体如下:首先将所有的候选框按照类别不同分成不同集合,然后将每个集合中的候选框按照概率值大小降序排列,计算每个集合中的最大概率值的候选框和余下的候选框的IOU值,若IOU值小于设定阈值N
S2.4:ROI池化层采用ROI Align算法。如图5所示,虚线方框代表特征图,实线方框代表候选区域,将实线区域(即候选区域)划分为4个小区域,每个小区域的ROI Align算法利用双线性插值算法进行平均值计算,以解决图像目标区域不匹配的问题。
步骤S3:设置训练过程的权重初始化、超参数及优化器。该步骤的具体操作过程如下:
S3.1:设置权重初始化方式为高斯分布;
S3.2:设置设置批量大小为64;
S3.3:优化器采用Adam,采用反向梯度传播法进行模型权重更新。
步骤S4:将步骤S1中制作的训练集输入步骤S2构建的网络模型进行训练。如图2所示,该步骤的具体操作过程如下:
S4.1:首先将训练集中的图片送入ResNet+FPN特征提取网络中进行特征提取生成特征图。
S4.2:将步骤S4.1生成的特征图送入RPN网络部分进行候选区域提取,RPN网络部分的锚框参数根据步骤S2.2中Kmeans算法的结果设置。
S4.3:对候选区域进行初步分类,然后通过前景分数(前景分数为RPN部分对每个预选框会产生的一个置信度)和非极大值抑制算法Soft NMS筛选出可信度较高的区域,生成候选框。
S4.4:将候选框和特征图融合后经过ROI池化层生成固定大小的候选区域;
S4.5:最后将步骤S4.4得到的候选区域输入到后续的分类层和边框回归层中进行目标区域识别,以及通过分割掩膜生成网络对图像进行分割;分类层和边框回归层使用全连接层网络,分割掩膜生成网络采用全卷积层网络;
S4.6:该网络的损失函数由边框回归损失、分类损失、像素分割掩膜损失相加组成,损失函数具体公式如下:
L=L
式中:L
n
步骤S5:将步骤S1中设置的验证集输入到步骤S4中训练好的模型中,计算模型的mAP值,当mAP值大于等于90%时,停止训练,保存模型;当mAP值小于90%时,回到步骤S3中重新进行超参数设置,然后继续进行步骤S4。所述mAP值为平均精确度,是不同类别的精准率(AP)的均值,AP是P-R曲线下面的面积,P和R的计算公式如下:
式中:P指precison,即精准率;R指Recall,即召回率;N指种类个数。TP为TruePositive,即分类器识别正确且分类器认为该样本为正样本的样本;FP为False Positive,即分类器识别正确且分类器认为该样本为负样本的样本;FN为False Negative,即分类器识别结果错误且分类器认为该样本是正样本的样本,TN为True Negative,即类器识别结果错误且分类器认为该样本是负样本的样本。
步骤S6:将待检测的汽车表面擦伤检测图片输入到步骤S5中保存的深度学习模型进行推断,获得擦伤的位置、种类以及置信度;如图6所示,图6即为汽车表面擦伤检测结果示意图。
- 一种基于改进Mask RCNN的汽车表面擦伤检测方法
- 一种基于改进MASK RCNN的FPC缺陷检测方法