一种面向RGBD三维重建的关键帧提取方法与流程

文档序号:12722744阅读:750来源:国知局
一种面向RGBD三维重建的关键帧提取方法与流程

本发明属于计算机视觉与计算机图形图像处理领域,具体地说是一种RGBD数据流中关键帧的提取方法,该方法为基于RGBD数据流的三维重建中相机位姿估计优化以及纹理重建的研究提供了更可靠的数据来源,对基于RGBD数据的三维重建技术的研究有着重要意义。



背景技术:

随着深度传感器的普及和三维重建技术的发展,近年来基于RGBD数据的三维模型重建的研究正在兴起。与传统基于RGB图像的三维重建相比,深度图像提供了场景的三维信息,极大地提高了三维重建的可行性和精度。而关键帧提取在相机的位姿估计、相机重定位以及纹理重建中都起到重要的作用。

目前针对三维重建的关键帧提取的方法可以分为以下三类:一是基于时间戳的方法,该类算法以时间戳或帧数为单位,每隔一定的时间或帧数提取数据作为关键帧。这类方法实现简单、时间效率极高,关键帧的选取会受到扫描速率的影响;二是基于帧间运动检测的方法,该类方法计算每一帧数据与上一关键帧的相机相对位姿变换,根据大小决定是否加入关键帧序列;三是基于图像特征的方法,如Philip等人根据帧间对应特征点的数量提取关键帧。这类方法对相机的参数依赖性不高,但由于实际运行效率问题,适合应用在实时性要求不高的三维重建中。

上述关键帧提取方法通常会面临关键帧的质量较低问题,如深度图像的噪声、空洞以及RGB图像的运动模糊等,对相机位姿的优化以及纹理提取等都有一定的影响。



技术实现要素:

为克服上述缺点,本发明的目的在于根据RGBD数据流的特点,结合三维重建的需求,利用局部精确的相机姿态,研究一种融合多帧数据,在尽量保持原始数据特征的情况下,提高数据质量的关键帧提取方法。

为了达到上述目的,本发明提出了一种面向RGBD三维重建的关键帧提取方法,其包括以下步骤:

步骤(1)、将标定后的深度相机和彩色相机采集的RGBD数据流按照时间戳分组,相邻若干帧的深度图像、RGB图像和用视觉里程计估计的相机位姿为一组数据;

步骤(2)、对每一组数据,根据深度相机的内部参数,将每一帧深度图像映射到三维空间中,然后根据相机位姿向组内第一帧深度图像投影,得到投影深度图像,投影的过程中更新投影深度图像中相邻的整数坐标的像素值,对投影深度图像的每一个像素,取与组内第一帧深度图像最接近的深度值为实际深度值;

步骤(3)、对投影深度图像的每一个像素,根据相应投影坐标的误差计算其权值,对组内每一帧投影深度图像,以加权平均的方式计算最终的深度关键帧的像素值;

步骤(4)、对每一组数据中的RGB图像,根据彩色相机和深度相机的内外参数以及深度关键帧的像素值,将组内第一帧RGB图像映射到三维空间中,然后根据每一帧的相机位姿分别向组内其余帧的RGB图像投影,用线性插值的方式计算每一个像素的灰度值,得到每一帧图像对应的投影RGB图像;

步骤(5)、对每一帧输入的RGB图像,计算其运动模糊程度,结合投影深度图像的权值,计算相应的投影RGB图像中每一个像素对应的权值,对组内每一帧投影RGB图像,以加权中位数的方式计算关键帧的灰度值。

其中,所述步骤(1)中,每一组数据的帧数为5。

其中,所述步骤(5)中,投影RGB图像像素的权值计算同时考虑投影深度图像像素的权值与图像模糊程度。

本发明的原理在于:首先对于相机采集的RGBD数据流,将相邻若干帧RGB和深度图像划分为一组,保证组内数据的相似和连续性。根据深度相机内参,将每一帧深度图像映射到三维空间中得到对应的三维点云,然后根据每一帧的相机位姿将三维点云投影到该帧所在组的第一帧深度图像上,计算投影深度图像和对应的权值。以加权平均的方式融合组内的所有投影深度图像得到深度关键帧。根据深度相机和彩色相机的内外参数以及深度关键帧的像素值,将每组第一帧RGB图像映射到三维空间中得到对应的三维点云,然后根据每一帧的相机位姿将三维点云分别投影到组内的每一帧RGB图像上,利用线性插值的方法计算像素灰度值,得到投影RGB图像。在计算投影RGB图像的权值时,考虑对应投影深度图像的权值以及RGB图像的运动模糊程度,对于运动模糊程度低的RGB图像,对应的投影RGB图像赋予更高的权值。最后,以加权中位数的方法融合组内所有的投影RGB图像,得到RGB关键帧。

本发明中深入分析了三维重建中对RGBD关键帧的需求,与现有的一般针对三维重建的关键帧提取技术相比的优点在于:

(1)、考虑深度相机采集的原始数据质量较低的特点,以及局部相机位姿估计的高精度特点,通过融合多帧深度图像有效减少了单帧深度图像的空洞和噪声。

(2)、考虑相机运动过程中采集的原始数据存在运动模糊的特点,结合深度图像提供的像素平面到三维空间的映射能力,通过融合多帧RGB图像有效减少了单帧RGB图像可能带来的运动模糊,提高RGB图像的精度。

附图说明

图1示出本发明中原深度图像以及投影后对应的投影深度图像,其中图1(a)为原始深度图像,图1(b)为对应的投影深度图像;

图2示出本发明中原RGB图像以及投影后对应的投影RGB图像,其中图2(a)为原始RGB图像,图2(b)为对应的投影RGB图像;

图3示出本发明中融合前后的深度图像关键帧,其中图3(a)为融合前的深度图像,图3(b)为融合后的深度图像;

图4示出本发明中融合前后的RGB图像关键帧,其中图4(a)为融合前的RGB图像,图4(b)为融合后的RGB图像;

图5示出本发明的一种面向RGBD三维重建的关键帧提取的原理图。

具体实施方式

结合附图对本发明实施例进行详细的描述。

本发明的实施过程主要分成四个步骤:RGBD数据帧分组、投影深度图像计算、投影RGB图像计算、投影数据融合。

步骤一、RGBD数据帧的分组

对于给定的已配准的RGBD数据流Input1~Inputn,将时间戳相邻的若干帧RGB图像(以C1~Ck为例)、深度图像(以D1~Dk为例)和对应的相机位姿(以T1~Tk为例)分为一组。

步骤二、投影深度图像计算

其主要步骤为:

步骤(2.1)根据深度相机内部参数Kd将D1~Dk中的每一个像素点分别映射到三维空间中,具体为:

p=Kd*(u,v,d)T (1)

其中,p为映射后的三维点坐标,Kd为深度相机的内参矩阵(3*3),u、v为原始像素坐标,d为该像素坐标下对应的深度值。

步骤(2.2)通过相机位姿矩阵,将每一帧的点云数据转化到所在组内第一帧的相机坐标系下,具体为:

pr=T1-1*Ti*p (2)

其中,pr为对应第一帧相机坐标系下的三维点云坐标,T1为所在组第一帧的相机位姿矩阵,Ti为第i帧的相机位姿矩阵。

步骤(2.3)根据深度相机内部参数Kd,将三维点云映射到像素坐标系下,得到投影深度图像中对应的像素坐标。具体为:

其中,px,py为映射后的像素坐标值,dr为对应的深度值。

步骤(2.4)由于步骤(2.3)中得到的像素坐标px,py通常不为整数,需要更新投影深度图像中与之相邻的4个像素坐标。对于多个三维点映射到同一个像素坐标的情况,取其深度值为离第一帧原始深度图像最接近的值。

步骤三、投影深度图像融合

步骤(3.1)对投影深度图像的每一个像素ur,vr,根据最终取得的深度值dr和相应的像素坐标px,py,计算该像素对应的权值。对于没有被映射到的像素,权值设为0。

其中,wd(ur,vr)为投影深度图像像素的权值。

步骤(3.2)对于深度关键帧中的每一个像素,根据组内所有投影深度图像和权值,定义其深度值dkeyframe为:

其中,dkeyframe为该组融合的深度关键帧的像素值,di为第i帧图像对应的投影深度图像在该像素下的深度值,为相应的权值。

步骤四、投影RGB图像计算

其主要为:

步骤(4.1)根据彩色相机内参矩阵Kc将每组第一帧RGB图像C1中的每一个像素点和在深度图像中对应的深度dc映射到三维空间中,具体为:

pc(x,y,z)=Kc*(uc,vc,dc)T (6)

其中,pc为映射后的三维点坐标,uc,vc为RGB图像中的像素坐标,dc为该像素坐标在对应深度图像中的深度值。

步骤(4.2)通过相机位姿矩阵,将点云数据分别转化到组内每一帧所在的相机坐标系下,具体为:

prc=T1-1*Ti*pc (7)

其中,prc为对应帧相机坐标系下的三维点云坐标。

步骤(4.3)根据彩色相机内部参数Kc,将三维点云映射到像素坐标系下,得到其在投影RGB图像中对应的像素坐标。具体为:

其中,pxc,pyc,drc为三维点云在投影RGB图像中的像素坐标及深度值。

步骤(4.4)由于步骤(4.3)中得到的像素坐标pxc,pyc通常不为整数,需要从对应帧的原始RGB图像中线性插值得到投影RGB图像中像素坐标uc,vc的灰度值。

步骤五、投影RGB图像融合

步骤(5.1)对每一帧RGB图像Ci,估计其运动模糊程度bluri,对于投影RGB图像的每一个像素,结合对应的投影深度图像的每一个像素的权值,计算其权值:

其中,为第i帧投影RGB图像像素的权值。

步骤(5.2)对RGB关键帧中的每一个像素,根据组内所有投影RGB图像的灰度值和权值,计算其灰度值为:

其中,ckeyframe为该组融合的RGB关键帧的像素值。

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