基于Faster RCNN 的双目视觉焊缝匹配研究*
2020-08-18赵陈磊
赵陈磊, 王 宇, 肖 遥, 赵 强
(西华大学 机械工程学院, 成都610039)
0 前 言
实现焊接机械手自主焊接的重要前提是完成对焊接路径的三维重构。 焊接路径往往存在于目标的边、 角、 缝等典型的梯度突变区域, 但是在实际情况中存在梯度突变区域并不一定是所需要的焊接区域。 在最典型的角焊中, 与角焊缝相似的特征, 可以是焊接件的边缘轮廓, 甚至到固定螺丝的外形, 这些都可以使用Sojka 特征点将其提取出来。 这就为焊接机械手的工作带来了挑战, 如何去区分焊接特征和非焊接特征, 如何去除这些噪声, 自从引入Faster RCNN 后, 这些问题就可以得到很好的解决。
实现自主焊接关键技术中焊接路径的三维重构技术, 主要步骤为: ①对相机进行标定, 获取相机参数, 建立一个三维空间; ②根据相机标定参数将相机校正, 使左右相机的轴线状态变为平行, 这一步是实现三角测量的基础; ③根据相机标定参数将相机获取的图片进行校正, 消除图像的变形; ④提取左右图像特征点, 找到对应关系, 实现匹配; ⑤根据匹配点, 结合三角测量实现目标的三维重建。 而匹配技术正是目前影响三维重建的关键因素。 张氏标定法已经使得相机标定技术趋于成熟, 基于三角测量的深度信息恢复更是早已被广泛应用。 所以特征匹配技术目前已成为国内外的研究热点。
1 基于Sojka 特征点的匹配
本研究特征匹配技术主要包括以下几个部分:特征(Sojka 点特征) 提取、 进行极线约束、 相似性测度(基于像素点灰度差的平方和, SSD)。
1.1 特征点提取
Sojka 特征点提取可以达到亚像素精度级别,是一种使用贝叶斯估计算法, 根据像素点灰度值, 结合像素点领域窗口, 提取灰度值等值分割线交点的快速特征点提取方法。
1.1.1 等值分割线的估算
在图像中, 一些物体或物体与物体之间往往由于边、 角、 缝等物理特征的存在, 会使图像灰度值变化显著, 存在明显的分界线, 而这些明显的边界可创建为等值分割线。
1.1.2 点的估算
取等值分割线上的点为中心创建一个窗口区域C, 分别计算该区域内点的x 和y 方向上灰度值的梯度矢量, 取梯度幅值大于给定阀值的点,假设存在这样的一个点P。
1.1.3 去除误差点
取估算点的方差、 均值和相关系数作为判断标准, 当相关系数Coor (P) 在窗口区域内达到最大时即均值μφ(P) 和方差μφ2(P) 达到设定阈值时,可以确定该估算点有效。
1.1.4 对点进行评估
为保证估算点真正位于不同灰度值的临界区域的等值分割线上, 需引入概率估计函数对估算点进行评估
式中: μg(P) ——P 点的平均幅度;
μr(P) ——P 点的平均长度。
1.2 极线约束
极线约束是一种降维处理问题的过程。 在每张图像上, 每一个点可以由x 和y 表示它的横纵坐标。 为了获取匹配点, 就需要找到左右相机拍摄的图像中相对应的点, 需要搜索对应x 和y 的值, 是一个二维求解问题。 我们假设存在左相机图像中一点P1与之对应的右相机有一点P2, 可以建立极线约束方程
其中, F 为一个3×3 且秩为2 的齐次矩阵。 然后可以构建两点的极线方程
由此可以计算出其中一点在另一相机图像中的极线, 为后续匹配做准备。
1.3 相似性测度
相似性测度目前主要有基于距离、 相似性函数以及概率的评判方法。 这里选择基于相似性函数的差值平方和函数作为评价标准, 确定左右图像的对应点来完成匹配。
2 噪声去除
目前主流的匹配方法是基于关键点特征的半全局匹配为主, 具有响应快、 实时性强等特点, 在此基础得到图像的视差以及深度信息, 实现目标的密集点云三维重建。 但是本研究不采用这种方法,因为焊接机械手在焊接过程只需要得到焊接路径的三维坐标信息即可, 并不需要知道整个物体的外观形状等特征, 为此只需要得到焊缝上的一系列特征点, 计算焊缝的稀疏视差和稀疏深度信息。
2.1 目标检测
目标检测一直以来是计算机视觉领域内的研究重点, 尤其是Alexnet 视觉模型出现之后, 传统的目标检测算法变得不再适合, 而基于CNN的目标检测技术变得日新月异。 目前基于CNN的目标检测算法主要分为两种: 一种是检测实时性好, 适用于高速视觉系统检测的Yolo、 SSD 等算法; 另一种是检测精度高, 适用于单帧图像目标检测的Faster RCNN、 Mask R-CNN 等算法。目标检测流程如图1 所示。
图1 目标检测流程图
在此基础上, 针对现有研究对象, 以及检测精度要求高的特点, 本研究使用了目前研究应用最为成熟的Faster RCNN 等算法进行验证。 该算法适应性好、 检测误差小, 可以实现对任意尺寸输入目标的检测识别。 首先需要对目标图像特征进行标记(图1 绿色方框), 然后使用CNN 模型训练,输出训练用特征。 该特征一方面用于在RPN 网络中处理后输入池化层, 另一方面直接输入池化层处理。 在池化层处理后生成相同维度特征, 最后对这些特征进行分类。
2.2 Faster RCNN 算法处理
在选取了适合本研究对象的目标检测算法后, 在matlab 平台上对该方法进行验证处理,构建的训练平台系统配置见表1。 完成平台构建后, 在matlab 平台上对训练参数进行预设,Faster RCNN 算法预设参数见表2。
表1 训练平台系统配置
表2 Faster RCNN 算法预设参数
2.2.1 构建图像训练集
由于本研究重点只是对方法以及原理可行性的验证, 因此只采集了10 张图像用于训练, 训练图像采集模型如图2 所示。 焊接工件绕原点O 旋转, 通过定位点E 在相机视场内选取10 个合适的位姿用于训练。 这样做也是为了模拟实际焊接机器人的作业环境。 在实际的流水线作业环境中,每台焊接机器人只会对特定几个焊点或焊缝作业,而且作业环境稳定, 不会存在个体和检测背景的差异, 因此需要有针对性地构建训练集。 本研究构建训练集的方式是模拟在实际机器人部署过程中, 针对机器人实际焊接工件, 通过调整相机拍摄不同角度来拍摄同一工件, 构建训练集的过程。
图2 训练图像采集示意图模型
2.2.2 提取焊缝目标
使用matlab 自带的图像标注工具, 对图3(模拟角焊) 黑色方框区域(焊缝所在区域) 进行标注, 用于Faster RCNN 训练。 标注目标区域的目的主要是告知网络所识别的物体是什么。
图3 焊缝区域示意图
2.2.3 Faster RCNN 算法处理
在matlab 中调用检测器 (TrainFaster RCNN ObjectDetector) 进行训练。 Faster RCNN 算法的核心有两个: ①CNN 网络的选择; ②RPN 网络处理。 前者是算法实现的基础, 后者是本算法特有的处理过程。
采用经典的Alexnet 网络作为CNN 网络进行处理, Alexnet 网络包含5 个卷积层, 3 个池 化层, 3 个全连接层。 在前两次卷积过程中使用局部归一化函数保证神经网络的训练精度。 该CNN 网络将标注后的焊缝训练特征, 在经过卷积、 池化, 生成一系列的特征地图, 再经过全连接层处理, 输入RPN 网络处理。
RPN 网络模型是将CNN 模型处理过的特征输入滑动窗口(sliding window) 进行卷积用以获取256 维的特征向量, 将这些特征向量输入全连接层获取评分 (目标评分和背景评分) 和位移(4 个相对于原图坐标偏移), 最后结合这些结果求解候选区域。
2.2.4 验证算法可靠性
焊接机器人实际作业环境中, 由于制造公差的原因, 焊接工件需要焊接的区域会产生微小的位移, 通过放大这个误差 (模拟误差20 mm),分别在以训练数据集采集位置为中心相距20 mm的4 个位置 (A、 B、 C、 D), 采集图像构建训练集, 测试图像采集模型如图4 所示。
图4 测试图像采集模型示意图
在构建完训练集后, 将其输入到训练好的Faster RCNN 中进行算法测试, 测试性能的主要评价指标为召回率和精确率, 用于描述输入图像检测到焊缝区域的性能和检测准确度, 结果见表3。
表3 Faster RCNN 检测分析结果
由于检测图像和训练图像构建自同一目标,因此本研究对象不存在环境和个体差异, 也就是说检测图像和训练图像高度相似, 因此具有很高的召回率。 而对于准确率, 相关研究已经表明,由于Alexnet 网络检测准确率一般认为只有57%左右, 因此对于本研究对象, 该方法已经达到了一个较好的水平。
3 噪声去除匹配试验
图5 为特征点提取示意图, 从图5 (a) 可以看出, 在角焊缝区域, 可以提取连续的Sojka 特征点, 但由于物体结构及环境的原因, 也提取出了大量的噪声, 这样会影响焊接路径的提取工作。 在使用了Faster RCNN 算法后(图5 (b)), 已经完全去除了噪声。 最后在理想状态下对图像进行了匹配试验, 如图6 所示。 由图6 可以看出, 图像匹配效果良好, 达到了试验设想的效果。
图5 特征点提取示意图
图6 左右相机图像匹配结果
4 结束语
为了解决自主焊接机器人路径规划过程中焊缝特征点标记时噪声过多的问题, 提出了一种使用Sojka 角点, 结合Faster RCNN 算法的快速降噪焊缝特征提取算法, 该算法可以快速去除非焊缝区域的噪声特征点, 为焊接机械手路径规划系统提供一个准确可靠的路径标记方法。