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

一种基于双目视觉的智能驾驶三维场景的重建系统及方法

文献发布时间:2024-04-18 20:02:18


一种基于双目视觉的智能驾驶三维场景的重建系统及方法

技术领域

本发明涉及被动式三维重建技术领域,具体涉及一种基于双目视觉的智能驾驶三维场景的重建系统及方法。

背景技术

被动式三维重建技术是利用周围环境如自然光的反射,使用相机获取图像,然后通过特定算法计算得到物体的立体空间信息。对于单目视觉法而言,只采用一个相机,因而成本低廉,但这也使其能够获取的信息量有限,因而计算过程复杂,重建效果一般且受环境影响很大。多目视觉法因相机数量多,故而视野范围更广,获取数据更多,但这同时也导致了其具有运算量巨大,处理时间较长的缺点,因而实时性难以满足要求。双目视觉法则是模拟人眼系统,利用两个水平放置的相机获取待测物体同一位置下的左右两幅图像,再由产生的视差计算物体的空间三维信息。与其他方法相比,该系统具有计算速度快、成本低、灵活性强以及重建结果精度较高的特点,所以更适用于智能驾驶三维场景重建。

发明内容

本发明的目的在于针对现存单目、多目视觉法技术之不足,提出一种基于双目视觉的智能驾驶三维场景的重建系统及方法。

一种基于双目视觉的智能驾驶三维场景的重建系统,包括双目视觉惯性模组(1)、多维调节架(2)及计算机处理系统(3)。双目视觉惯性模组(1)由图像传感器(1-1)和摄像头(1-2)组成,两者相对位置通过螺纹调节和固定,使摄像头(1-2)成像在图像传感器(1-1)上,将采集到的图像信息传到计算机处理系统(3)。双目视觉惯性模组(1)固定在多维调节架(2)上,调节多维调节架(2)保证双目视觉惯性模组(1)有水平120°、垂向75°视场角,使其有较大的检测范围,用于智能驾驶场景的三维重建。

计算机处理系统(3)由计算机设备和计算机可读存储介质组成,基于Windows10系统,使用VS2015创建软件操作系统平台,驱动双目视觉惯性模组(1)利用OpenCV进行双目标定、图像采集与后处理操作。软件操作系统平台包括打开/关闭采集线程、获取标定图像、左/右相机标定、双目标定、开始/暂停摄像头、图像校正、立体匹配、三维重建、三维重建结果显示模块。

相机模型的成像映射关系为:依靠针孔相机成像模型提供空间点和相机之间的角度关系信息,依靠双目立体相机模型确定其深度信息。

基于上述三维重建系统,本发明还提供一种基于双目视觉的智能驾驶三维场景的重建方法,具体步骤如下:

S1、相机标定。采用张正友棋盘标定法进行标定,标定板使用9×7黑白棋盘格标定板,每个方格大小为25mm×25mm,多次调整与相机距离,采取最终标定结果误差最小的一次数据进行保存,获取相机内外参数,以便后面进行校正等操作。

S2、图像校正。标定完成后获得相机旋转矩阵与平移向量,打开相机采集图像,然后采用基于OpenCV的Bouguet算法完成对图像的校正处理,使图像处于同一平面且行对准,更便于进行立体匹配。

S3、立体匹配。在本发明中,步骤S3包括图像预处理、代价计算、动态规划和数据后处理四步:

S301、图像预处理。采用Sobel算子对图像进行预处理,以得到图像的梯度信息并进行保存用于后续计算;

S302、代价计算。采用灰度差值的绝对值AD来计算匹配代价,以较少误匹配;

S303、动态规划。进行动态规划,对视差图进行平滑化处理;

S304、数据后处理。进行唯一性检测、左右一致性检测以及连通区域的检测等数据后处理工作,达到去除噪点的作用。

S4、三维重建。通过重投影矩阵对视差图进行处理,得到各点的三维坐标,并显示三维点云图,实现基于双目图片的三维重建功能。

本发明与现有技术相比,其有益效果具体如下:

(1)本发明中基于立体校正的理论基础,采用双目图像校正Bouguet算法准确地消除双目图像之间的畸变,使得左右图像的对应点在同一水平线上,便于后续的立体匹配和三维重建。

(2)本发明中基于全局优化策略的算法SGBM立体匹配算法,考虑了整个场景中的所有像素点,而不仅仅是局部范围内的像素点,这样可以更好地处理大位移或非共面场景,提高匹配精度,适用于处理纹理复杂、大位移或非共面场景下的精确匹配。

(3)本发明中采用reprojectImage To 3D函数将二维图像投影到三维空间中,大大提高了处理速度;采用先进的数学模型和优化算法,能够精确地重建出三维场景,大大提高了重建的准确性;可以应用于各种不同的重建场景,无论是从单个图像重建还是从多个图像重建,都可以得到很好的效果。

附图说明

图1为本发明的实施例公开的基于双目视觉的智能驾驶三维场景的重建系统结构示意图;

图2为本发明的实施例公开的软件操作系统平台示意图;

图3为本发明的实施例公开的针孔相机成像模型示意图;

图4为本发明的实施例公开的像素坐标系与图像坐标系示意图;

图5为本发明的实施例公开的双目立体相机模型示意图;

图6为本发明的实施例公开的基于双目视觉的智能驾驶三维场景的重建算法流程框图;

图7为本发明的实施例公开的相机标定流程框图;

图8为本发明的实施例公开的棋盘标定板示意图;

图9为本发明的实施例公开的左/右相机标定图片示意图;

图10为本发明的实施例公开的立体校正流程框图;

图11为本发明的实施例公开的图像校正前、后对比图;

图12为本发明的实施例公开的立体匹配SGBM算法流程框图;

图13为本发明的实施例公开的立体匹配获取的视差图;

图14为本发明的实施例公开的不同SAD窗口大小下的视差图;

图15为本发明的实施例公开的不同视差窗口大小下的视差图;

图16为本发明的实施例公开的不同视角下三维重建点云模型;

图中:双目视觉惯性模组(1)、多维调节架(2)、计算机处理系统(3)。

具体实施方式

结合附图1,对本发明作进一步的描述:

本发明提到的一种基于双目视觉的智能驾驶三维场景的重建系统,包括双目视觉惯性模组(1)、多维调节架(2)和计算机处理系统(3)。

所述双目视觉惯性模组(1)由IMU图像传感器(1-1)和摄像头(1-2)组成,两者相对位置通过螺纹调节和固定,使摄像头(1-2)成像在图像传感器(1-1)上,将采集到的图像信息传到计算机处理系统(3)。所述双目视觉惯性模组(1)固定在多维调节架(2)上,调节多维调节架(2)保证双目视觉惯性模组有水平120°、垂向75°视场角,使其有较大的检测范围,用于智能驾驶场景的三维重建。

结合附图2,对本发明作进一步的描述:

计算机处理系统(3)由计算机设备和计算机可读存储介质组成,基于Windows10系统,使用VS2015创建软件操作系统平台,驱动双目视觉惯性模组利用OpenCV进行双目标定、图像采集与后处理操作。打开VS2015创建一个基于MFC框架的应用程序,程序类型选择基于对话框,创建完成后在工程属性中添加对应的头文件和库文件目录,设置好之后即可通过左侧工具箱栏根据需要依次添加Button,最终搭建软件操作系统平台。软件操作系统平台包括打开/关闭采集线程、获取标定图像、左/右相机标定、双目标定、开始/暂停摄像头、图像校正、立体匹配、三维重建、三维重建结果显示模块。

各模块作用如下:

打开/关闭采集线程:用于驱动或关闭摄像头。

获取标定图像:用于采集标定图片,打开摄像头之后选择合适距离及位置放置标定板,鼠标点击此按钮即可将当前相机采集图片保存,然后调整标定板距离与角度,采集多组照片用于后续相机标定过程。

左/右相机标定:分别用于左相机和右相机的单独标定,将经过筛选的标定图片导入,然后采用张正友标定法分别对左、右相机进行标定,获取各相机的内外参数。

双目标定:用于双目标定,在单目标定过程中已经得到了标定所需的各点的信息,此时直接调用立体标定图片即可完成双目标定。

开始/暂停摄像头:用于控制摄像头采集状态。

图像校正:对采集到的图片进行校正,因相机直接采集的图片存在畸变,故需要对图片进行校正操作,使左右相机图片能够达到共面且行对准的状态。

立体匹配:用于获取视差图,完成图像校正之后进行立体匹配,经图像预处理、代价计算、动态规划及一系列后处理之后即可得到视差图。

三维重建:获取三维点坐标,得到视差图之后利用反投影矩阵进行计算就可得到各点在相机坐标系下的三维坐标,由Z坐标就可判断物体与相机之间的距离。

三维重建结果显示:将各点显示出来,以点云形式体现出物体的大概形状。

结合附图3、附图4,对本发明作进一步的描述:

相机模型的成像映射关系,依靠针孔相机成像模型提供空间点和相机之间的角度关系信息。世界坐标系(O

设空间中存在任意一点P(X,Y,Z),在经过光心O投影后在落在成像平面的P′(X′,Y′)处,因成像平面与相机中心之间的距离即为焦距f,由相似三角形原理,得到如下关系:

在相机中,则是通过对像进行缩放和平移处理,将其转换到像素坐标系下并最终以一个个像素的形式存储图像。由两个坐标系的定义可知,P′点坐标与其像素坐标(u,v)之间的关系如下式所示:

式中:α和β分别为像素坐标在u轴和v轴上的缩放系数,c

令αf=f

通过上述公式,计算得到相机的内参数矩阵K。若点P在世界坐标系下的坐标值为P

P=RP

式中:R和t分别为世界坐标系到相机坐标系的旋转矩阵和平移向量。

整理可得:

式中:R,t被称为相机的外参数。

得到任一空间点P

结合附图5,对本发明作进一步的描述:

相机模型的成像映射关系,依靠双目立体相机模型确定其深度信息。空间中存在任一点P,在左右两相机中分别成像,将两相机中成像点分别定义为P

整理即可得到:

式中,视差d=u

在得到视差及相机内参后,计算出空间点P到相机之间的距离。并且视差越大即代表距离越近,同时还可看出基线越长的相机,能够测量到的最大距离就越远。

结合附图6,对本发明做进一步的描述:

基于上述三维重建系统,本发明还提供一种基于双目视觉的智能驾驶三维场景的重建方法,具体步骤如下:

S1、相机标定。准备好标定板,然后打开相机采集标定图片,分别进行左、右相机标定后,再进行双目标定。

结合附图7、附图8、附图9,对本发明做进一步的描述:

具体地,采用张正友9×7黑白棋盘格进行相机标定,标定板每个方格的实际边长为25mm,标定图片共取16对不同方向拍摄到的图片;在拍摄完多组标定图片后,将各组图片都读取出来,然后进行内角点提取工作,该过程通过调用OpenCV中的findChessboardCorners函数实现,然后用cornerSubPix函数对检测到的角点位置进行进一步精确化,使其达到亚像素级别检测效果,若检测到的点数与实际标定板点数吻合,则将其添加到列表中保存下来;完成角点提取后即可使用calibrateCamera函数来对左右两相机分别进行标定,最终左、右相机单目标定结果:

f

在两相机均标定完成后,即可调用stereoCalibrate函数利用单目标定的结果来实现相机的双目立体标定,双目相机标定结果:

旋转矩阵R和平移向量T分别表征左、右相机之间的角度关系和x、y、z三个方向上的相对位移。由结果可看出,两相机之间存在轻微的角度偏差。在相对位置上,左右两相机中心距离为11.7cm,与实际基线距离12cm相差不大,y方向上误差值为0.04cm,精度较好,但z方向上平移量较大,说明制造过程中存在较大误差。

S2、图像校正。完成相机标定后即获得相机旋转矩阵与平移向量,进一步地,对采集到的图片进行立体校正。作为优选,采用Bouguet算法对图像进行立体校正,在保证图像重投影次数最少的同时使畸变也较小。

结合附图10、附图11,对本发明做进一步的描述:

具体地,由前面相机标定已经得到了相机的内外参数,现在调用stereoRectify函数计算旋转矩阵R、投影矩阵P以及深度差异映射矩阵Q,再利用initUndistortRectifyMap分别计算左右图像映射表mapx及mapy,得到映射表之后调用remap函数对两幅图像分别进行重新映射,即可使左右图像达到所期望的共面且行对准的状态,实现双目相机采集图像的立体校正。立体校正结果:经过校正后两图像均发生了变化,尤其是纵向变化更为明显,这正是由于行对准造成的现象。

S3、立体匹配。

利用双目相机拍摄的左右图像计算视差,通过匹配算法得到深度图。作为优选,采用SGBM(Semi-Global Block Matching)算法对图像进行立体匹配,匹配结果和速度都较好。具体地,SGBM算法主要包括图像预处理、代价计算、动态规划和数据后处理四步。

结合附图12,对本发明做进一步的描述:

S301、图像预处理。图像预处理是利用Sobel算子对图像进行处理,得到图像的梯度信息并保存以便后面进行代价计算。其处理公式如下所示:

式中:P为像素值。

由水平Sobel算子对图像中的每个像素进行处理后,再用一个函数对其处理后使其映射为一个新的图像,该图像将用于后续的代价计算,函数形式如下所示:

式中:P

S302、代价计算。作为立体匹配算法的基础,匹配代价计算是为了计算不同图像之间视差的灰度相似性,以便减少代价聚合时产生的误匹配。采用灰度差值的绝对值AD来计算匹配代价,其处理公式如下所示:

式中:T为设置的阈值,d为像素点(x,y)的视差,I

S303、动态规划。为更好的完成代价聚合,本实例采用全局立体匹配算法的思想,在代价聚合阶段引入能量函数,然后用动态规划找到局部位置的最小代价来最小化能量函数。通过此方法,可以得到每个像素点的最优视差,其能量函数的具体形式如下式所示:

式中:C表示匹配代价,P

式中:cn为图像的通道数,windowSize为窗口大小,由公式可知,当图像通道和窗口定下来后,P

S304、数据后处理。数据后处理为立体匹配的最后一步,该步骤主要是对提取出来的视差做进一步细化工作,去除掉一些误匹配及遮挡区域等,以提高最终结果的准确性。首先进行唯一性检测,只有当视差窗口范围内最低代价是次低代价的(1+uniquenessRatio/100)倍时,最低代价对应的视差值才是该像素点的视差,否则该像素点的视差为0(其中uniquenessRatio是一个常数参数)。之后再进行亚像素插值操作,插值公式如下式所示:

完成上述检测后进行左右一致性检测,该算法根据得到的左视差图计算出右视差图,若已知左视差图数据dispL[X],则右视差图数据为dispR[X-d]。

实际上,dispR[X-d]的确定方式是对比dispL包含的X和X+n处的最小代价,作为优选,选择出代价最小的视差值来表示有效的视差值。确定右视差图的值后,利用此条件来判断左图片中的像素点的视差值是否满足预期。若满足该条件,即为误匹配点,条件如下式所示:

连通区域的检测是对通过左右视差图一致性检测后的误匹配点的重新检查,其基本原理是通过计算当前处理视差点所在的连通区域内的像素点个数与设定阈值的大小关系,来判断其是否属于误匹配点。计算过程中每个像素点都会被检测,对于被测点来说,计算过程以其为起点,检测到其周围的连通点后再以对应点为起点继续检测,每检测到一个新的连通点就将计数器加一同时对该点进行标记表示不再满足连通条件,依次进行直到对于每个点其周围都不存在连通点时停止计数,此时的计数值即为当前点连通区域内的像素点个数,将该值与speckleWindowSize进行比较(speckleWindowSize为平滑视差区域的最大尺寸,是一个设定的常参数),若计数值更大,则当前视差点就被判定为有效视差点,反之则把此点认定为噪点,需要剔除。经过该过程,即可去除经过唯一性检测和左右一致性检测后残余的噪点,可使匹配效果更加理想。

结合附图13,对本发明做进一步的描述:

具体地,立体匹配通过调用StereoSGBM()函数实现,根据实际对各参数进行调整。首先根据经验将预处理滤波器的截断值设置为63、检测窗口大小设置为5×5,惩罚系数p1和p2按照经验公式设置,最小视差设置为0,则最大视差值就等于前面设定好的视差窗口值,视差唯一性检测系数一般取5~15,本实例取10,连通区域像素点个数与视差变化阈值均按照经验值设置,为方便查看不同窗口视差效果先将Disp12MaxDiff设置为-1,代表暂不进行左右一致性检测。

经过校正后的图片对即可进行立体匹配,为便于观察,将输出图像分别设置为灰度图和彩色图。由立体匹配获取的视差图中可以看出匹配效果整体不错,但还有少数噪点存在。在图像调试过程中发现对匹配结果影响较大的因素主要是SAD窗口大小和视差窗口值。

结合附图14,对本发明做进一步的描述:

从左到右三张图片分别为SAD窗口大小是3×3、5×5和9×9时的匹配结果,由图中可以看出当窗口越小时,所得视差图中噪声就越大,当窗口越大时,图像越平滑,但同时窗口较大时也会使窗口中包含更多的不同深度物体的像素,而他们之间的视差又是不连续的,因此会导致误匹配现象也有所增多,因此本实例中要根据结果选择适宜的窗口大小。

结合附图15,对本发明做进一步的描述:

视差窗口值为最大视差值与最小视差值之差,其值必须为16的整数倍,从左到右三张图片分别为视差窗口值为160、208以及256时得到的视差图,由图中可以明显看出当视差窗口较小时,会有较多的信息缺失的现象发生,而随之视差窗口增大,如同SAD窗口增大一样的,因获取像素过多而导致误匹配增多。

S4、三维重建。

得到视差图之后利用重投影矩阵即可得到三维点坐标,利用这些点即可构建三维点云地图。由图片能够确切识别物体的形状,三维重建成功。

由视差图获取三维点坐标并重建三维点云模型。在立体匹配步骤中得到视差图的基础上,利用立体校正过程中生成的重投影矩阵Q即可计算三维点的坐标:

式中:(u,v)为像素点坐标,d为视差。

结合附图16,对本发明做进一步的描述:

具体地,通过调用reprojectImage To 3D函数即可实现此功能。得到各点坐标之后将其显示出来即可得到三维点云图。利用如上方式即得到了三维点云地图,若想得到更多的表面细节,则要进行三角剖分,用数量众多的小三角形组成的表面来近似物体表面。

本发明是一种基于双目视觉的智能驾驶三维场景的重建系统及方法,其各项功能的实现方式如下:

双目图像校正功能:基于立体校正的理论基础,采用双目图像校正Bouguet算法准确地消除双目图像之间的畸变,使得左右图像的对应点在同一水平线上,便于后续的立体匹配和三维重建;采用了高效的计算方法和优化策略,能够快速地进行双目图像校正,提高了处理速度;适用于各种不同的双目相机配置和拍摄场景,能够适应不同的拍摄条件和需求;经过了多次的实例验证和实际应用,具有很好的稳定性和可靠性,能够保证校正结果的准确性。

双目立体匹配功能:采用基于全局优化策略的算法SGBM立体匹配算法,考虑了整个场景中的所有像素点,而不仅仅是局部范围内的像素点,这样可以更好地处理大位移或非共面场景,提高匹配精度,适用于处理纹理复杂、大位移或非共面场景下的精确匹配;能够进行多尺度处理,对不同尺度的图像进行匹配,可以更好地处理纹理复杂、细节丰富的场景;能够进行亚像素级别的插值,进—步提高匹配精度,使得重建的三维场景更加细腻、精确;对光照变化、遮挡和透明度等具有较好的稳健性,能够更好地处理实际场景中的复杂情况;采用了有效的动态规划计算和多次迭代优化,虽然在计算时间上相对较长,但相对于其他立体匹配算法而言已相当高效。

双目三维重建功能:采用reprojectImage To 3D函数将二维图像投影到三维空间中,大大提高了处理速度;采用先进的数学模型和优化算法,能够精确地重建出三维场景,大大提高了重建的准确性;可以应用于各种不同的重建场景,无论是从单个图像重建还是从多个图像重建,都可以得到很好的效果。

以上所述仅是本发明的部分较佳实例,任何熟悉本领域的技术人员均可利用以上阐述的技术方案加以修改或将其修改为等同的技术方案,因此,依据本发明的技术方案所进行的任何简单修改或等同置换,均属于本发明要求保护的范围。

技术分类

06120116581030