APP下载

基于双目视觉的高精度三维重建技术

2021-05-07蔡桂航陈强吴林锋

现代信息科技 2021年21期
关键词:三维重建

蔡桂航 陈强 吴林锋

摘  要:通过对双目视觉原理及亚像素插值技术的深入分析,研究如何在双目视觉图像的基础上实现场景的高精度3D重建。实验以Intel RealSense D435相机作为采集工具,完成摄像机标定和图像预处理,相机拍摄的图像为本次研究提供了较为清晰的数据展现,利用OpenCV和SIFT算法完成立体匹配,获取点云图。从实验结果来看,该技术能够较好地实现双目视觉条件下的3D重建。

关键词:三维重建;点云图;OpenCV;SIFT算法

中图分类号:TP391.4      文献标识码:A文章编号:2096-4706(2021)21-0094-04

Abstract: Through the in-depth analysis of binocular vision principle and sub-pixel interpolation technology, this paper studies how to realize high-precision 3D reconstruction of scene based on binocular vision image. The experiment takes Intel RealSense D435 camera as the acquisition tool, completes camera calibration and image preprocessing, the images taken by the camera provide a clearer data display for this study, uses OpenCV and SIFT algorithm to complete stereo matching and obtain point cloud map. The experimental results show this technology can better realize 3D reconstruction under the condition of binocular vision. 

Keywords: 3D reconstruction; point cloud map; OpenCV; SIFT algorithm

0  引  言

20世紀70年代,神经系统学家Marr将神经心理学与人工智能的知识相结合,提出了具有跨时代意义的“计算机视觉理论”,自此计算机视觉发展成一门独立学科。其中,基于双目视觉的三维重建技术是计算机视觉的一个重要内容。三维重建的主要任务是针对从摄像机获取的二维图像,利用像差获取图像的深度信息,从而恢复三维物体的表面形状。此领域的研究者们提出了各种立体特征匹配的算法和重建算法。目前,计算机视觉已经广泛应用于工业生产和人们的日常生活之中,其中包括自动驾驶、机器人、物体自动识别、三维测量等多个领域。

1  技术原理

1.1  相机标定

相机标定是指建立相机图像像素位置与场景点位置之间的关系,由于摄像机的坐标与世界坐标和图像坐标不一致,并且摄像机本身会造成图像失真,因此有必要校准摄像机系统。在摄像机标定过程中创建摄像机显示的几何模型,以确定空间位置参数与相应点坐标之间的关系。该几何模型的相关参数包括内部参数和外部参数,与所使用的相机有关,一般简称为相机参数。摄像机标定可以测量出相机参数。根据摄像机图像处理关系,可以获得成像坐标系与世界坐标系之间的关联公式为:

摄像机校准后,应使用校准表获取每个校准图像的角度(或亚像素角度)信息,绘制发现的内部角度,确定校准图像映射之间的连接,并获取摄像机的内部和外部参数。在后续的图像预处理中,可以利用相机的内参和外参系数对相机拍摄的图像进行矫正,以减小图像立体匹配和视差计算之间的误差。在后续的三维重建中,只有在得知两台相机相对位置关系的情况下,才能够进行距离的计算。

1.2  图像畸变

从理论上来说,双目相机在拍摄完图像后,在成像时,一条直线的投影应该也是一条直线。然而,在实际的透镜成像过程中,透镜会由于制造精度及组装工艺的偏差而发生畸变,导致拍摄图像的失真。就好比光从空气射入水中,由于水质的不同而使光的路径产生偏折。距离图像中心越远的部分,图像畸变程度越大。通常,畸变分为径向畸变和切向畸变,如图1所示。

其中,dl为径向失真;dr为切向失真。

在只考虑因透镜工艺产生的图像畸变时,基于畸变模型,像素与畸变像素在坐标轴上的位置关系由以下公式表示:

图像发生径向畸变时会存在一个中心点,沿着该中心点径向产生的图像像素会引起位置的变化,在成像时图像会发生一定程度的变化。径向畸变是透镜方面的因素造成的,图像成像时所发生的畸变大多为径向畸变,其对图像成像后的结果往往会造成较大的影响。径向畸变不仅会影响图像的视觉效果,也不利于后续工作中对图像的进一步处理。图像径向畸变一般分为两种,枕型畸变和桶型畸变,图像发生径向畸变时的畸变模型由以下公式表示:

图像切向畸变在摄像机镜头与其所拍摄图像的平面不完全平行时就会发生。切向畸变包括离心畸变和薄透镜畸变等。其中,薄透镜畸变是由透镜倾斜引发的,一般发生在透镜组内。其畸变模型可以表示为:

可以推导出理想坐标与实际坐标的关系为:

至此,相机标定的第二个目的就是获得相机的畸变参数(如上式中的k1、k2、k3、p1、p2等),进而对拍摄的图片进行畸变处理,降低乃至消除畸变对图像所产生的影响,以方便后续的立体匹配工作。

1.3   双目视觉基本原理

双目视觉的灵感来源于人类的双眼,人类的视觉不仅可以分辨出外形、颜色等特征,还可以分辨出深度特征,原因是人有双目,通过双目看到不同图像之间的差别,分辨出该物体位于人的前面还是后面,也就是物体的深度信息。与人眼一样,双目视觉技术可以实现目标物的三维重建,使用两个摄像机同时拍摄一个物体,通过三角测量原理,计算出图像像素之间的位置偏差,从两个摄像机的图像中重现三维世界坐标中的深度信息。举例来说,智能汽车可以通过对两幅图像视差的计算,直接对前方的景物(摄像机所能拍摄到的范围内)进行距离测量,对于该汽车而言,无须判断前方出现的是什么类型的障碍物。因此无论任何类型的障碍物,智能汽车都能根据距离信息的变化,进行必要的预警或制动,辅助驾驶员驾驶。双目立体视觉原理如图2所示,其中,Ol、Or分别为左、右摄像机的光心;P为物体上的一个目标点;Pl、Pr为目标点在左右摄像机图像平面内的像点。三维重建的本质是利用视场的几何关系计算视觉平面的三维坐标。

根据摄像机坐标系与图像坐标系的几何关系可以得到:

其中,X和Y为图像空间坐标系中的坐标;Z为图像深度的坐标;?为相机焦距,d为左右相机图像的像差(视差);B为左右摄像头之间的光学中心。

从上面的公式可以看出,若要计算深度坐标P,必须在左右摄像机上获得像差。

1.4  SIFT立体匹配算法

立体匹配是将双目相机中左右两张图像上的特征点进行匹配,寻找边缘、点、线等特征之间的相似度,当相似度满足所设置的阈值时,即认为是特征点。哥伦比亚大学计算机科学系教授David Lowe于1999年提出了尺度不变特征转换算法,简称为SIFT算法;David Lowe于2004年完善了该算法。随着计算机视觉技术的不断成熟,时至今日,SIFT算法已广泛应用于计算机视觉领域的诸多方面,如图像追踪、图像识别等关于图像处理的方向,都可以运用SIFT算法进行特征点筛选。SIFT(Scale-invariant feature transform)是一种应用于计算机视觉的算法,用来侦测并描述影像中的局部特征。在OpenCV中有数十种立体匹配算法,其中比较常用的有SIFT、SGBM、SURF等,本次采用的是SIFT立体匹配算法,相较于其他立体匹配算法,SIFT算法具有良好的特征点稳定性和方向不变性,能够适应尺度的旋转、缩放和亮度的变化,一定程度上不受角度变化、仿射变换以及噪声干扰的影响。

一般来说,在对图像?(x,y)进行特征检测时,根据尺度各异的高斯差分核,用高斯差分算子检测特征点:

其中,D(x,y,k,σ)是尺度空间函数。

检测处的特征点并非全都可以描述场景,需要根据高斯差分算子特性去除伪特征点,通过Hessian矩阵得到主曲率:

设α1和α2为H矩阵的特征值,当N满足所设定的阈值时,就可能是所找的特征点:

接着,对特征点的方向重新分配,计算出方向φ与梯度L:

上面公式中,D为关键点所在的尺度空间值。

完成關键点的梯度和方向计算后,统计出其中各个像素的梯度和方向,检测出含有位置、尺度和方向的关键点即是该图像的SIFT特征点。

2  技术及算法实现

2.1  立体匹配算法及实现

立体匹配算法的关键是找到左右图像对应的匹配的特征点。这些特征点是一些非常突出的点,不会因为受光线、比例、旋转和其他因素的影响而丢失,如角度、边缘点、暗区亮点和亮区黑点。所有比例空间中搜索图像位置,通过高斯微分函数,可以识别具有尺度和旋转不变性的潜在特征点。特征点的选择取决于它们的稳定性。在图像的特征点中,SIFT特征能满足旋转不变性和尺度不变性的要求,几乎不受光照变化的影响。

特征点的匹配是通过比较特征点的特征向量实现的,当两个特征向量的误差小于某个设定的值时,则可确定其为匹配的特征点。找到多个两两相匹配的特征点,就可以确定场景之间的对应关系。其匹配算法的实现过程图如图3所示。

2.2  视差及点云图计算

采集到左右图像后,需要进行摄像机校准和预处理。由于获取的原始图像会受到各种条件的约束和干预,因此还需要对图像进行预处理。对于图像的预处理,应单独检测每个干扰图像并将其分配给识别模块,以消除图像中的非必要信息,恢复有用的信息,改进相关信息的检测并尽可能简化数据。

用OpenCV中的SIFT算法或SGBM算法计算视差图。由于SIFT算法在这方面的表现远远优于SGBM算法,因此采用SIFT算法获取视差图,完成立体匹配,获得相应的视差图。

接着,对点云进行去噪、简化点云、配准点云、填充点云洞等操作,有效地消除点云中的噪声和外部点,通过保持几何特性来简化点云数据,将从不同角度扫描的点云连接到同一坐标系。视差计算和点云图计算算法流程图如图4所示。

3  实验结果及分析

我们针对以上算法开发了测试程序,双目摄像头采用Intel Realsence D435,编程环境为windows10+OpenCV 3.4.0,程序实现了从图像采集到三维重建的一个完整过程,图5为本次实验中采集的原图,图6为原图生成的深度图,图7为点云清理后的网格图,图8为重构出来的最终结果图。

4  结  论

本文研究的基于OpenCV双目视觉的三维重建算法,实现了从双目图像到点云图的计算过程,可以较好地从双目视觉图像中获取深度信息。本文详细阐述了从图像采集、相机标定、图像预处理、立体匹配、视差计算、深度图计算到点云图生成的三维重构图的全过程以及涉及的算法原理。从效果上看,较好地实现了物体的三维重建。

参考文献:

[1] 谭健胜.基于双目立体视觉的三维重建技术研究及实现 [D].广州:华南理工大学,2017.

[2] 李杰.基于双目视觉的深度重建技术的研究和应用 [D].长春:吉林大学,2016.

[3] 李彪.基于双目立体视觉三维重建技术研究 [D].西安:西安科技大学,2018

[4] 吉玲.双目立体视觉中三维重建关键技术研究 [D].天津:天津理工大学,2015.

[5] WANG Q Y,WANG Z Y,SHANG Z D. Parameter calibration of a vision sensor with a geometric similarity constraint [J].Measurement Science and Technology,2020,31(3):1-8.

[6] 曾文献,郭兆坤.立体匹配算法研究综述 [J].河北省科学院学报,2018,35(2):43-48.

[7] YOO J C,HAN T H. Fast normalized cross-correlation [J].Circuits Systems and Signal Processing,2009,28(6):819-843.

作者简介:蔡桂航(2000—),男,汉族,广东佛山人,本科在读,研究方向:计算机视觉。

猜你喜欢

三维重建
互联网全息位置地图迭加协议与建模制图技术
品析“飞利浦公司”基于单目视觉的三维重建技术专利
无人机影像在文物建筑保护中的应用
光编码技术在犯罪现场重建中的应用
大规模壁画拼接:使用moving DLT的新尝试
一种脑切片图像分割新法