基于单目视觉的压力传感器三维重建研究
2021-09-07张庆鹏李永清李广恒汪雨晴
张庆鹏,李永清,李广恒,汪雨晴
(沈阳仪表科学研究院有限公司,辽宁沈阳 110043)
0 引言
三维重建技术经过近年的不断发展,已在无人驾驶、测绘和工业自动化等领域得到了广泛应用[1]。三维重建算法有基于机器视觉的重建算法、基于RGB-D深度相机的重建算法和激光扫描重建算法等[2]。基于机器视觉的三维重建具有速度快、实时性好和低成本的优点,被广泛应用于各工业生产环节。而当前仪器仪表行业生产中信息化程度不高,压力传感器制造领域更是大多采用手工定制化小批量生产,生产检验仍采用小批量手工检测方式,效率低,同时由于检验人员多,会有漏检和错检发生。压力传感器模块对外壳清洁度和表面缺陷要求也较高,需要保证无明显的机械损伤和较深的划痕,因此实现压力传感器模块三维重建十分重要。
国内许多学者也针对工业检测领域三维重建领域进行了一定的研究。张洪鑫等针对铸件的毛刺问题提出了一种基于单目图像序列的铸件三维重建方法,该方法能有效地恢复铸件三维表面的细节特征[3]。张博文等利用单目多视图三维重建对料堆体积进行测算,其测量误差为5%左右,仍需要进一步提升重建精度[4]。徐高鹏等提出了一种对疲劳滚子表面三维重建方法[5]。何文韬等用智能手机对小型金属件三维重建并测量[6]。王中任等利用两组双目视觉系统获取目标工件的三维表面点云,精度较高但成本较高[7]。雷禧生等利用TOF相机实现点云视频流的三维重建算法,用于喷涂生产线[8]。史维程等利用双目相机对工件三维重建,获得了预期的结果[9]。
当前工业生产中已广泛应用三维重建技术,但针对传感器领域的三维重建研究仍较少。传感器外形一般结构复杂,且作为敏感元件急需一种无接触式低成本测量方法。本文提出一种应用于压力传感器的单目三维重建算法替代人工查验方式,检验员只需在电脑上查看远程传送来的三维模型标注缺陷。该方法有助于传感器工厂数字化转型,提高生产效率,从而达到提质增效的目的。
1 特征匹配算法
基于单目视觉的三维重建算法第一步就是需要将图像对进行匹配,获得足够的特征点匹配集合,进而提供给SFM算法获得稀疏的三维点云。匹配算法中,SIFT算法使用广泛,其具有尺度不变性,本文提出一种改进SIFT匹配算法能够提升原算法匹配准确率。
1.1 特征提取
使用SIFT算法对特征提取时首先需要建立高斯金字塔及差分金字塔,之后寻找空间上的极值点,确定极值点后对其进行定位,通过Hessian矩阵剔除表征不好的极值点,然后计算关键点邻近区域的像素点梯度幅值和梯度方向并使用直方图统计指定的关键点方向,最后生成关键点的描述符。
1.2 改进的立体匹配策略
原SIFT算法采用欧氏距离作为图像特征相似度的衡量准则,本文采用马氏距离代替欧氏距离提高匹配准确率,马氏距离是一种数据的协方差距离,能够有效计算2个未知样本集的相似度方法,与欧氏距离相比,能够考虑到各种特性之间的联系,具有尺度无关性,不受量纲影响。
欧氏距离的计算公式如下:
(1)
马氏距离的计算公式如下:
(2)
式中:X、Y为两组向量;S为两组向量的协方差矩阵。
对比欧氏距离和马氏距离计算公式可以看出,马氏距离相比欧氏距离多了一个协方差矩阵,能够更准确衡量距离关系,马氏距离虽然增加了运算量,但是排除了量纲的影响,具有尺度无关性,同时也排除了特征向量之间相关性的干扰,匹配的精度更高。
为进一步提高匹配准确率,匹配过后要对错误的匹配进行剔除,本文采用随机抽取一致性算法(RANSAC),该算法的最大优点就是估算的模型参数非常稳定,能在含有很多外部点的数据中精确地对模型参数进行估计。
特征匹配实验结果如图1和表1所示。
(a)原SIFT算法
(b)改进SIFT算法图1 特征匹配实验
表1 实验结果
由表1可以看出,本文的改进算法相比原算法在基本不影响实时性的情况下提升了0.74%的匹配准确率,能够为后续的三维重建环节提供更准确的匹配对,进而提升三维重建精度。
2 压力传感器模块三维重建
2.1 稀疏三维点云
运动恢复结构(structure from motion,SFM)方法是一种广泛使用的三维稀疏点云重建算法,该方法使用本文提出的特征匹配算法选取匹配点最多的图像作为初始匹配对,计算初始的相机运动信息以及压力传感器结构信息,通过三角测量法获得压力传感器的初始空间稀疏点云,之后通过逐渐增加不同角度拍摄的图像进行迭代,获得新增图像对应的相机运动信息以及压力传感器的结构信息,最后使用集束调整(bundle adjusting,BA)方法对参数优化。
2.2 稠密三维点云
由于SFM生成的三维稀疏点云不包含压力传感器的更多细节,同时仅包含特征点的三维坐标,因此需要将三维点云稠密化。
多视角密集匹配(CMVS/PMVS)算法能够利用SFM算法的稀疏点云和相机参数,使三维点云稠密化。点云多视角立体匹配(CMVS)主要将SFM算法获得的稀疏点云数据对图像序列进行聚簇分类,减少重建环节的数据量。基于面片模型的多视角立体匹配(PMVS)根据CMVS聚簇分类后的图像序列和SFM算法提供的投影矩阵,将稀疏点云向四周漫射获得定向点云,经过一系列运算操作完成三维点云稠密化,最终能够得到稠密的三维点云模型[10]。
2.3 泊松表面重建算法
泊松表面重建算法是一种隐函数表面重建方法,能够将稠密的三维点云转化为三维表面模型,泊松表面重建算法通过解算反映等值面的指示函数,实现点云模型的表面重建[11]。
泊松方程一般采用Gauss-Seidel矩阵迭代方式求解,通过迭代求得矩阵的极限值近似代替为泊松方程的精确值,之后通过等值面的提取,把提取出来的三角面片拼接获得重建结果。算法步骤如图2所示。
图2 算法流程图
3 实验结果与分析
实验所用设备为iPhone11手机,在室内场景下拍摄获得88张不同角度下的压力传感器图像,每张图像的像素大小为1 080×1 440。使用Python语言编程,在Meshlab软件中处理三维重建模型。图3为实验图像。
图3 三维重建实验图像
通过SFM算法获得的稀疏点云及计算获得的相机拍摄位置图,实验结果如图4所示。
图4 SFM稀疏点云及相机位置图像
使用PMVS算法将SFM算法获得的稀疏点云稠密化,获得稠密点云,实验结果如图5所示。
图5 PMVS算法稠密点云
将获得的稠密三维空间点云使用泊松表面重建算法重建传感器的三维表面,实验结果如图6所示。
图6 泊松表面算法的重建模型
从实验结果能够看出重建的压力传感器三维模型表面光滑,细节处清晰,还原效果较好,标注的产品序号也能够直观展现。
4 结束语
本文提出并实现了基于智能手机的单目无标定拍摄图像序列的压力传感器低成本三维重建方法,在特征检测与匹配环境中,提出一种改进SIFT算法提升匹配准确率。在三维点云生成环节中,通过SFM算法计算获得相机的位置信息和稀疏的三维点云,通过PMVS算法将点云稠密化。最后使用泊松表面重建算法获得了压力传感器的三维表面细节特征。实验结果表明,基于智能手机拍摄的单目无标定图像序列三维重建算法能够为压力传感器模块表面缺陷标注提供一种可靠的解决方案,为下一步工厂实现远程检测提供了重要技术支撑。