一种基于GPU‑SIFT的实时双目视觉定位方法与流程

文档序号:12821592阅读:665来源:国知局
一种基于GPU‑SIFT的实时双目视觉定位方法与流程

技术领域:

本发明涉及机器人视觉定位与导航技术领域,具体是一种基于gpu-sift实时双目视觉里程计系统。



背景技术:

随着机器人和计算机视觉的不断发展,相机被越来越多的用于机器人的视觉定位与导航之中。机器人定位主要是码盘、声呐、imu、gps、北斗、激光扫描仪、rgbd相机以及双目相机进行视觉定位等方法,其中码盘根据电机转动的圈数换算成轮子转动的圈数进而对机器人的行程进行推导实现定位,但是这种定位方式在沙地、草地或者轮子打滑等情况下误差较大,定位不准。声呐定位主要靠超声传感器发射与返回信号分析判断障碍物进行定位与导航,但是声呐的分辨率较低,信号中存在较多的噪声,容易对定位造成干扰。机器人采用imu进行定位往往会存在累积误差,机器人进行长时间长距离的定位与导航过程中往往需要矫正才能实现准确定位。采用gps或者北斗等卫星进行定位方式,精度往往很差,要获得高精度定位往往成本较高难以实现,并且gps或者北斗定位往往仅适用于室外卫星信号较好的环境之中,对于室内定位或者卫星信号较差的环境往往无能为力。激光扫描仪虽然具备高精度的在任何环境下的定位能力,但是其成本高昂,数据量大,处理复杂,并且功耗较大。目前较为常用的是采用单线的激光进行定位,但是应用环境比较受限,仅适用于平面环境,对于起伏地形环境无法使用。采用rgbd相机进行定位虽然能获得障碍物与图像信息,但是由于红外激光发射强度受环境限制,基本只适用于室内环境,并且有效距离有限。采用普通单相机进行定位只能实现相对定位,并且定位精度受到极大限制,然而采用平行双目相机可进行绝对定位,并且定位精度在一定的情况下可达到激光定位的精度,并且在光照允许的情况下在通常环境中均可使用,但是基于双目相机的视觉定位数据计算复杂度高,计算量大,往往难以达到实时的定位要求。而为了达到实时的视觉定位效果,往往采用较为简单的图像处理算法,尤其是在视觉里程计中。

视觉里程计是仅采用移动车辆或者机器人上的相机所获得的视觉信息来实现车辆或者机器人移动的定位,即通过移动车体或者机器人车载相机拍摄运行过程中的周围场景的图像或者视频中提取出车体或者机器人运行的情况和运行环境信息对移动车体或者机器人进行实时定位。为了实现实时的视觉里程计,基本上时间消耗都出现在图像匹配部分,而而图像匹配之中80%的时间消耗出现在特征提取及特征描述上,所以为了减少视觉里程计的时间消耗,基本上都是采用简单的局部特征和特征描述方法,来实现实时的视觉里程计定位功能。较为常用的有harris、fast、censure以及简单的边缘特征点,但是这些简单的特征描述是难以实现尺度和旋转不变性的,而这些情况往往在相机运行过程中普遍存在的,所以这些简单的特征难以实现准确的图像匹配,继而达到较高精度的视觉定位效果。而sift特征专为解决尺度和旋转的不变性而设计,能够很好的克服图像的尺度和旋转变化,实现准确的图像匹配,获得较高精度的视觉定位效果。但是sift特征提取和描述时间消耗较大难以实现实时的图像匹配,采用gpu对sift特征提取、描述和匹配过程进行加速处理的gpu-sift能极大地加速sift特征匹配过程,实现实时的sift特征匹配。本发明采用gpu-sift配合双目视觉定位,实现实时的视觉里程计系统,用于机器人的实时定位与导航。



技术实现要素:

本发明为了克服现有技术中存在的上述缺陷,提供了一种基于gpu-sift的实时双目视觉定位方法,对sift特征匹配过程进行加速,使之达到实时的匹配速度,配合双目视觉定位,实现实时的视觉里程计系统,用于机器人或者移动平台的实时视觉定位与导航。

为解决上述问题,本发明提出的基于gpu-sift的实时双目视觉定位方法,包括以下步骤:

步骤一、采用平行双目相机获取机器人或者移动平台移动过程中的左右眼图像的立体图像视频;

步骤二、采用特征点匹配的方法获得运动过程中拍摄视频的前后两帧中对应的匹配点;

步骤三、通过匹配点在成像空间坐标变化或者建立三维坐标来求解运动方程从而估计出相机的位移;

步骤四、获得相机行进的各个时刻的位置、旋转角后,结合kalman滤波即可获得整个过程中相机的行进路线,即可实现对机器人或者移动平台的实时双目视觉定位。

上述技术方案中,所述步骤二中特征点匹配采用gpu-sift特征匹配算法,gpu-sift是指采用图像处理器进行加速的尺度不变特征转换。

上述技术方案中,所述步骤二中特征点匹配具体包括以下子步骤:

子步骤s21、提取两帧双目图像左右四幅图像的sift特征点,并对sift特征点生成sift特征描述;

子步骤s22、匹配第一帧左相机图像和右相机图像的sift特征点,得到立体匹配点(pl1,pr1);

子步骤s23、匹配第二帧左相机图像和右相机图像的sift特征点,得到立体匹配点(pl2,pr2);

子步骤s24、匹配第一帧左相机图像和第二帧左相机图像的sift特征点(ll1,ll2);

子步骤s25、找出步骤s24中得到的第一帧左相机图像匹配点ll1与子步骤s22中得到的第一帧左相机图像匹配点pl1相同的特征点作为第一帧左相机图像最终的匹配点;同理得到第二帧左相机图像的匹配点;

子步骤s26、根据子步骤s25中得到的左相机图像匹配点,由子步骤s22中的匹配点对找到对应的右相机图像匹配点;同理找到第二帧右相机图像匹配点,即完成两帧四幅图像的匹配过程。

上述技术方案中,所述步骤三具体包括以下子步骤:

子步骤s31、建立一像空间辅助坐标系,由得到的前后两帧四幅图像中的对应匹配点,根据三角测量的方法通过公式计算同一时刻对应匹配点在像空间辅助坐标系下的三维坐标点pi;

子步骤s32、将得到三维坐标pi代入到运动方程pi=rpi'+t中求解,得出左相机和右相机的自由度参数分别为t(tx,ty,tz)和r(rx,ry,rz);

子步骤s33、采用ransac方法每次随机选择三个坐标点pi,将所有点代入误差公式中计算;

子步骤s34、统计e(r,t)值小于某一阈值的点的个数,经过若干次选择后取内点数最多的那一组结果为最终的计算结果;

子步骤s35、将最终的计算结果代入到运动方程pi=rpi'+t即得到相机的运动方程从而估计出相机的位移。

上述技术方案中,所述步骤四具体包括:将绘制点作为矢量点,矢量方向为前一帧的旋转角的累加和,得出下一点时在当前点方向上平移t,确定其坐标,旋转角是前一帧的方向乘以旋转矩阵r,根据公式确定具体的路径反演中点,其中po为初始时刻相机在xoz平面的位置坐标,设为(0,0);pi为第i时刻相机在xoz平面的位置坐标,ti是第i时刻在当前点方向上的平移距离。

本发明与现有技术方案相比具有以下有益效果和优点:

本发明提出的基于gpu-sift的实时双目视觉定位方法采用gpu-sift对sift特征匹配过程进行加速,使之达到实时的匹配速度,配合双目视觉定位,能够实现机器人或者移动平台实时视觉定位,获得较高的定位精度,可扩展性和实用性强,环境适用性强。

附图说明

图1是本发明中像空间辅助坐标系的示意图。

图2是本发明中三角测量原理图。

图中编号说明:1、左相机;2、右相机。

具体实施方式

以下结合附图和具体实施例对本发明作进一步的详细描述:

本实施例中,本发明提出的基于gpu-sift的实时双目视觉定位方法,包括以下步骤:

步骤一、采用平行双目相机获取机器人或者移动平台移动过程中的左右眼图像的立体图像视频;

步骤二、采用gpu-sift特征匹配算法获得运动过程中拍摄视频的前后两帧中对应的匹配点;

步骤三、通过匹配点在成像空间坐标变化或者建立三维坐标来求解运动方程从而估计出相机的位移;

步骤四、获得相机行进的各个时刻的位置、旋转角后,结合kalman滤波即可获得整个过程中相机的行进路线,即可实现对机器人或者移动平台的实时双目视觉定位。

步骤二中特征点匹配具体包括以下子步骤:

子步骤s21、提取两帧双目图像左右四幅图像的sift特征点,并对sift特征点生成sift特征描述;

子步骤s22、匹配第一帧左相机图像和右相机图像的sift特征点,得到立体匹配点(pl1,pr1);

子步骤s23、匹配第二帧左相机图像和右相机图像的sift特征点,得到立体匹配点(pl2,pr2);

子步骤s24、匹配第一帧左相机图像和第二帧左相机图像的sift特征点(ll1,ll2);

子步骤s25、找出步骤s24中得到的第一帧左相机图像匹配点ll1与子步骤s22中得到的第一帧左相机图像匹配点pl1相同的特征点作为第一帧左相机图像最终的匹配点;同理得到第二帧左相机图像的匹配点;

子步骤s26、根据子步骤s25中得到的左相机图像匹配点,由子步骤s22中的匹配点对找到对应的右相机图像匹配点;同理找到第二帧右相机图像匹配点,即完成两帧四幅图像的匹配过程。

步骤三具体包括以下子步骤:

子步骤s31、采用一像空间辅助坐标系,由得到的前后两帧四幅图像中的对应匹配点,根据三角测量的方法计算同一时刻对应匹配点在像空间辅助坐标系下的三维坐标点pi,其中采用的像空间辅助坐标系s-xyz如图1所示,以左相机的后侧端面中心点为坐标原点,x轴位于左相机和右相机的后侧端面的两个中心点连线上,z轴位于左相机的中心轴线上,三角测量的原理如图2所示,由图2中的三角形s1与s2的相似以及s1’与s2’的相似得出以下计算公式:

其中,(xl,yl)、(xr,yr)为同一帧左右图像匹配点相对于图像中心的坐标,d为双目相机的基线,f为相机焦距;

子步骤s32、将得到三维坐标pi代入到运动方程pi=rpi'+t中求解,得出左相机和右相机的自由度参数分别为t(tx,ty,tz)和r(rx,ry,rz);

子步骤s33、采用ransac方法每次随机选择三个坐标点pi,将所有点代入误差公式中计算误差值e(r,t);

子步骤s34、统计e(r,t)值小于某一阈值的点的个数,经过若干次选择后取小于某一阈值的点的个数最多的那一组结果为最终的计算结果,这样就在很大程度上避免了匹配误差较大的点的干扰,提高了计算结果精度;

子步骤s35、将最终的计算结果代入到运动方程pi=rpi'+t即得到相机的运动方程从而估计出相机的位移。

步骤四具体包括:将绘制点作为矢量点,矢量方向为前一帧的旋转角的累加和,得出下一点时在当前点方向上平移t,确定其坐标,旋转角是前一帧的方向乘以旋转矩阵r,根据公式确定具体的路径反演中点,其中po为初始时刻相机在xoz平面的位置坐标,设为(0,0);pi为第i时刻相机在xoz平面的位置坐标,ti是第i时刻在当前点方向上的平移距离。

由于提取特征点精度的限制、车体行进过程中的抖动、场景光线的变化等因素造成运动估计结果存在误差,或者计算得出的r、t存在偶然性的跳变误差,造成最终绘制路径的误差较大、路径不连续,所以一般运动估计得到每相邻两帧之间的运动估计后一般需要对运动估计结果进行平滑处理,通常使用到的限制条件是车体运动过程中旋转和平移速度或者加速度的连续性、限制性,将误差较大的估计结果使用邻域均值或者中值代替,较为复杂的可以使用卡尔曼滤波或者扩展卡尔曼滤波进行平滑,使得到的路径连续平滑。本文中为了尽量减少整个过程的时间消耗,使用的是前者较为简单的滤波处理,即剔除误差较大的r、t并用邻域中值代替,平滑效果较为理想。

最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1