本发明属于三维注册技术领域,涉及一种基于kinect的增强现实三维注册方法。
背景技术:
在增强现实系统中,进行三维注册的目的是通过对摄像机的动态跟踪,计算摄像机位姿,使得虚拟物体能够正确的叠加在真实场景中,对真实场景进行增强。为了使增强现实技术获得更广泛的应用,三维注册是必须解决的重要问题。三维注册的实时性、精确性、稳定性直接影响了增强现实系统的适用性和可信度。
基于计算机视觉的虚实注册因其硬件成本低、精确性好、健壮性强等特点,已经成为当前解决ar中三维注册问题的主流方法。kinect传感器作为一款出色的体感外部设备,能够捕获人的骨骼点信息,不受光照变化和复杂背景的干扰。将其应用于增强现实中,不但能够实现三维注册,不易受外在环境的干扰,还可为人机交互带来新的机会。
但是,由于kinect深度摄像机的成像模式容易导致获取的深度图像出现黑洞、抖动以及场景中物体轮廓不准确等问题,严重影响了后续三维注册的精确度。另外,kinect硬件的深度检测最小范围不能低于0.4m。受此制约,当kinect在移动的过程中,若距离场景太近,将无法获取场景深度信息,从而导致三维注册失败。
吴倩等人提出一种结合彩色图像局部分割的kinect深度图修复算法,通过空洞类型判断和局部区域分割获得空洞像素的有效支撑区域,并利用该像素的有效支撑区域对其进行深度计算。该方法提高了场景深度信息的精确度,但对同色不同距的空洞修复存在着不足。
刘书曼等人针对kinect彩色摄像头分辨率不高,远距离的增强现实会因为图像清晰度不够,影响增强现实效果的问题,利用kinect传感器与高清摄像头的配准,解决了远距离图像清晰度问题。但是,他们的方法在近景模式下,要求人距离摄像头1~2米才能获得较好的三维注册结果。
王月等人提出了一种面向ar机械装配辅助系统的三维跟踪注册方法,该方法利用基于方向向量一致性的视觉特征匹配策略,解决了在光滑、无纹理的装配环境中获取足够数量的视觉特征匹配点对的问题。同时,设计了一种点云和视觉特征匹配相结合的三维跟踪注册方法,既避免了因初始匹配数据点集不足导致的相机跟踪注册失败,又保证了相机位姿估计精度。但是这种方法只能在kinect的有效范围内获得准确的位姿,没有解决距离的制约问题。
公开号为cn105096311a的专利文件公开了一种基于的深度图修复和虚实场景结合技术,所述方法的主要步骤为:(1)采集深度图和彩色图;(2)对图像进行下采样,以保证实时的修复速度;(3)使用quickshift算法对彩色图像进行分割;(4)利用彩色图的分割结果,对存在缺失深度数据的分割块进行处理。(5)对图像进行上采样。该方法解决了kinect深度图的漏洞修复问题。并在此基础上,进行虚拟物体与真实物体的叠加,实现虚拟物体与真实物体之间的遮挡,从而实现增强现实互动。该方法虽然修复了深度图中的空洞,但是没有解决距离的制约对三维注册的影响问题。
相关参考文献如下:
[1]吴倩,史晋芳,王德娇,刘桂华.结合彩色图像局部分割的kinect深度图修复算法[j].计算机应用研究,2017,34(12):3852-3854+3884.
[2]刘书曼,葛水英,徐士彪.基于深度传感器的远距增强现实注册技术研究[j].微电子学与计算机,2017,34(05):89-94.
[3]王月,张树生,白晓亮.点云和视觉特征融合的增强现实装配系统三维跟踪注册方法[j].西北工业大学学报,2019,37(01):143-151.
[4]葛水英,王波.基于gpu的深度图修复和虚实场景结合技术.中国专利:cn201510328820.8,2015.06.15.
技术实现要素:
本发明针对现有技术的不足,提出一种基于kinect的增强现实三维注册方法,克服kinect硬件的制约,提高三维注册的精度,扩大增强现实系统的适用范围。
本发明的技术解决方案是:基于kinect的增强现实三维注册方法,包括如下步骤:
步骤1,对kinect彩色摄像机和深度摄像机进行标定;
步骤2,基于kinect获得彩色图像和深度图像,生成三维点云,并将三维点云进一步转换为深度图,融合点云信息和快速步进算法(fastmarchingmethod,fmm)修复深度图;
步骤3,深度图像与彩色图像对齐;
步骤4,基于深度直方图的近景模式自动判断;
步骤5,非近景模式下,采用基于fasticp的三维注册方法计算摄像机位姿,完成非近景模式下的三维注册;
步骤6,近景模式下,采用融合fasticp和orb的三维注册方法计算摄像机位姿,完成近景模式下的三维注册;
步骤7,将虚拟物体叠加在真实场景的彩色图像中,显示虚实叠加结果。
进一步的,所述步骤1的具体实现包括以下子步骤,
步骤1.1,彩色摄像机标定:利用kinect读取彩色图像数据,使用基于黑白棋盘格的视觉标定方法完成kinect彩色摄像机的内外参数的标定,获得内参矩阵acolor和外参矩阵rcolor、tcolor;
步骤1.2,深度摄像机标定:利用kinect读取红外图像数据,使用基于黑白棋盘格的视觉标定方法完成kinect深度摄像机的内外参数的标定,获得内参矩阵adepth和外参矩阵rdepth、tdepth。
进一步的,所述步骤2的具体实现包括以下子步骤:
步骤2.1,利用kinect实时获取真实场景的彩色图像ic和深度图像id,生成三维点云;
步骤2.2,将三维点云转换成深度图i′d,具体实施方法为,假设p(x,y,z)是三维点云中的一点,利用下式计算出其对应于深度图像i′d中的点p(u,v,d)的坐标:
上式中,u,v是深度图像中每个像素点的横坐标和纵坐标,d是深度数据,fx、fy是摄像机在x、y轴上的焦距,cx、cy描述了摄像机的光圈中心,s是深度缩放因子;
步骤2.3,遍历i′d中的像素点,将深度值不为零的点设置为可靠区域,具体实施方法是:首先,创建与深度图像id大小相同的待修复图像repairimg;然后,遍历repairimg中的每个像素点,查找其对应于i′d中的像素点的深度值d;若d大于零,则代表点云信息完好,将该像素区域设置为可靠区域;若d等于零,则代表点云信息缺失,将该像素区域设置为不可靠区域;
步骤2.4,对原始深度图像id进行过滤,具体实施方法是:对于可靠区域内的像素点,将深度图像i′d中对应的深度值拷贝到待修复图像repairimg中;对于不可靠区域内的像素点,则将原始深度图像id中对应的像素值拷贝到待修复图像repairimg中,由此获得物体边缘清晰且无抖动的平滑的深度图像;
步骤2.5,利用fmm算法进一步修复深度图中的空洞,具体实施方法是:首先,对空洞的边缘进行膨胀处理,获得一条窄边;然后,将窄边附近区域分为三部分:窄边上、窄边外(图像未损坏部分)以及窄边内(待修复空洞);设t为空洞边缘上某一像素与窄边之间的距离,将边缘上所有像素的t值按照升序方式存储到队列narrowband中,依次进行处理,方法是假设起始点为p,先处理点p的四邻域点,如果其类型为在空洞中,则重新计算像素值,修改其类型为在窄边内,并将其加入narrowband,依次处理narrowband中存放的每个像素,直到修补完成。
进一步的,所述步骤3的具体实现包括以下子步骤,
步骤3.1,构建深度摄像机坐标系与彩色摄像机坐标系的变换关系,求取两个摄像机的相对位姿,利用下式求取深度摄像机和彩色摄像机间的旋转关系r和平移关系t:
步骤3.2,利用两个摄像机的相对位姿关系构建彩色图像上的点与深度图像上对应点的变换关系,具体实施方法是:利用标定求得的彩色摄像机和深度摄像机的内参和外参以及位姿映射变换关系r和t,利用下式将深度图像上的点pdepth=[xdepthydepthzdepth1]t映射到彩色图像中:
zcolorpcolor=r′zdepthpdepth+t′
其中,
上式中,pcolor=[xcolorycolorzcolor1]t是点pdepth在彩色摄像机坐标系下的坐标;
步骤3.3,将深度图像与彩色图像对齐,具体实施方法是:利用步骤3.2所得公式,求取深度图像中所有像素点与彩色图像的关系,达到对齐效果。
进一步的,所述步骤4的具体实现包括以下子步骤,
步骤4.1,将当前摄像机坐标下的点云数据转换为深度图像,统计深度图像直方图;
步骤4.2,根据深度图像直方图,判断是非近景模式还是近景模式,具体方法是:计算像素的灰度区间,根据大部分像素灰度值范围的下限确定灰度阈值δ,设tpoint表示图像中灰度值大于δ的像素点个数与图像像素点总数的比值;若tpoint>50,则判断为非近景模式;否则,判断为近景模式。
进一步的,所述步骤5的具体实现包括以下子步骤:
步骤5.1,移动kinect传感器使深度摄像机位姿发生改变,由深度图像实时生成曲面点集;
步骤5.2,筛选初始帧深度图与当前帧深度图对应的曲面点集中待匹配的点集vi和vi′,具体方法是:首先利用四邻域顶点计算顶点法向量;然后根据法向量,在vi中查找与vi′中最近的点,组成点对,这些点对构成了将要进行匹配的两个点集,
步骤5.3,进行点集匹配并获得点集变换位姿,具体方法是:首先根据筛选的点对,将vi中的三维顶点和所对应vi′中的三维顶点转化为深度图像坐标系下的点vi-1和vi-1′,构成一组点对;然后计算这两个点集的重心位置,并将点集中心化产生两个新的点集;接下来,通过最小化两个新点集的差别,求取二者对应的深度摄像机的相对变换位姿,并根据顶点法向量一致性,给每个点分配权重去除不合适的点集边界;
步骤5.4,对步骤5.1-步骤5.3进行迭代运算,获得最优点集变换位姿,完成非近景模式下的三维注册,求得r’depth和t’depth。
进一步的,所述步骤6的具体实现包括以下子步骤:
步骤6.1,特征点检测和特征描述,具体方法是:对kinect彩色摄像机进行跟踪,设置初始帧和当前帧,检测两幅图像的fast特征点,用brief描述子描述特征点的属性,获得描述图像特征的二进制串;
步骤6.2,利用暴力匹配法对特征点描述子进行距离测试,获得两帧图像中最佳匹配的特征点;
步骤6.3,计算匹配成功的特征点的世界坐标,结合摄像机内参矩阵计算摄像机位姿,并优化位姿,完成近景模式下的三维注册,具体方法是:首先,由彩色摄像机和深度摄像机的映射关系计算匹配成功的特征点的世界坐标;然后,结合特征点的图像坐标、对应的世界坐标以及彩色摄像机的内参矩阵acolor,获得特征点所在世界坐标系和彩色摄像机坐标系之间的外参;最后,根据外参优化位姿;
其中优化位姿的具体方法为:首先,在特征点中随机选取四个不同特征点作为输入,计算出一组彩色摄像机外参;然后,利用当前特征点对应世界坐标和彩色摄像机内参外参矩阵,经过反投影计算一组新的二维点集;最后,比较此点集与当前特征点,当距离小于阈值t1的点的数量大于阈值t2时,则将此外参作为优化后的彩色摄像机位姿,完成近景模式下的三维注册,求得最优的t’color和r’color。
进一步的,步骤7显示虚实叠加结果的具体实施方式为,近景模式时,直接利用步骤6.3求得的t’color和r′color将虚拟物体叠加到真实场景中。非近景模式时,利用下式,将步骤5.4求得的r’depth和t’depth转换成t”color和r”color,然后将虚拟物体叠加到真实场景中。
其中,r和t分别表示深度摄像机和彩色摄像机间的旋转关系和平移关系。
与现有技术相比,本发明的优点及有益效果是:
(1)采用融合rgb-d信息的深度图像修复方法,解决了由深度图中空洞、抖动以及边缘不稳定等问题造成的标定和图像对齐误差,为后续三维注册的精确度提供了保证。
(2)采用基于深度直方图的近景模式自动判断方法,非近景模式下,采用基于fasticp的三维注册方法计算摄像机位姿;近景模式下,采用融合fasticp(fastiterativeclosestpoint)和orb(orientedfastandrotatedbrief)的三维注册方法计算摄像机位姿,解决了由于硬件限制造成的注册失败问题,不论是非近景模式还是近景模式都能获得精确、稳定的三维注册结果。
(3)算法复杂度低,易理解,易实现,不受光照和复杂场景的影响,满足增强现实系统实时性要求,能够解决互遮挡问题。
附图说明
图1是本发明实施例的流程图;
具体实施方式
本发明在研究增强现实三维注册的基础上,以kinect彩色数据和深度数据作为输入,通过获取近景和非近景下的摄像机相对位姿进行三维注册。
下面结合附图和实施例对本发明的技术方案作进一步说明。
如图1所示,本实施例的具体实施包括以下步骤:
步骤1,对kinect彩色摄像机和深度摄像机进行标定;
步骤1.1,彩色摄像机标定。利用kinect读取彩色图像数据,使用基于黑白棋盘格的视觉标定方法完成kinect彩色摄像机的内外参数的标定,获得内参矩阵acolor和外参矩阵rcolor、tcolor。
步骤1.2,深度摄像机标定。利用kinect读取红外图像数据,使用基于黑白棋盘格的视觉标定方法完成kinect深度摄像机的内外参数的标定,获得内参矩阵adepth和外参矩阵rdepth、tdepth。
步骤2,融合点云信息和fmm算法修复深度图,步骤2的具体实施方式包括如下子步骤:
步骤2.1,利用kinect实时获取真实场景的彩色图像ic和深度图像id,生成三维点云;
步骤2.2,将三维点云转换成深度图i′d。具体方法是,假设p(x,y,z)是三维点云中的一点,利用下式计算出其对应于深度图i′d中的点p(u,v,d)的坐标:
上式中,u,v是深度图像中每个像素点的横坐标和纵坐标,d是深度数据,fx、fy是摄像机在x、y轴上的焦距,cx、cy描述了摄像机的光圈中心,s是深度缩放因子。
步骤2.3,遍历i′d中的像素点,将深度值不为零的点设置为可靠区域,具体实施方法是:首先,创建与深度图像id大小相同的待修复图像repairimg。然后,遍历repairimg中的每个像素点,查找其对应于i′d中的像素点的深度值d。若d大于零,则代表点云信息完好,将该像素区域设置为可靠区域;若d等于零,则代表点云信息缺失,将该像素区域设置为不可靠区域。
步骤2.4,对原始深度图像id进行过滤,具体实施方法是:对于可靠区域内的像素点,将深度图像i′d中对应的深度值拷贝到待修复图像repairimg中;对于不可靠区域内的像素点,则将原始深度图像id中对应的像素值拷贝到待修复图像repairimg中,由此获得物体边缘清晰且无抖动的平滑的深度图像。
步骤2.5,利用fmm算法进一步修复深度图中的空洞,具体实施方法是:首先,对空洞的边缘进行膨胀处理,获得一条窄边。然后,将窄边附近区域分为三部分:窄边上、窄边外(图像未损坏部分)以及窄边内(待修复空洞)。设t为空洞边缘上某一像素与窄边之间的距离,将边缘上所有像素的t值按照升序方式存储到队列narrowband中,依次进行处理,方法是假设起始点为p,先处理点p的四邻域点,如果其类型为在空洞中,则重新计算像素值,修改其类型为在窄边内,并将其加入narrowband。依次处理narrowband中存放的每个像素,直到修补完成。
步骤3,深度图像与彩色图像对齐,步骤3的具体实施方式包括如下子步骤:
步骤3.1,构建深度摄像机坐标系与彩色摄像机坐标系的变换关系,求取两个摄像机的相对位姿。利用下式求取深度摄像机和彩色摄像机间的旋转关系r和平移关系t:
步骤3.2,利用两个摄像机的相对位姿关系构建彩色图像上的点与深度图像上对应点的变换关系。具体实施方法是:利用标定求得的彩色摄像机和深度摄像机的内参和外参以及位姿映射变换关系r和t,利用下式将深度图像上的点pdepth=[xdepthydepthzdepth1]t映射到彩色图像中:
zcolorpcolor=r′zdepthpdepth+t′
其中,
上式中,pcolor=[xcolorycolorzcolor1]t是点pdepth在彩色摄像机坐标系下的坐标。
步骤3.3,将深度图像与彩色图像对齐。具体实施方法是:利用步骤3.2所得公式,求取深度图像中所有像素点与彩色图像的关系,达到对齐效果。该变换符合一致性约束:对深度图像上任意点,在彩色图像上一定存在一点与之匹配,反之亦然。
步骤4,基于深度直方图的近景模式自动判断,步骤4的具体实施方式包括如下子步骤:
步骤4.1,将当前摄像机坐标下的点云数据转换为深度图像,统计深度图像直方图。
步骤4.2,根据深度图像直方图,判断是非近景模式还是近景模式。具体方法是:计算像素的灰度区间,根据大部分像素灰度值范围的下限确定灰度阈值δ。设tpoint表示图像中灰度值大于δ的像素点个数与图像像素点总数的比值。若tpoint>50,则判断为非近景模式;否则,判断为近景模式。
步骤5,非近景模式下,采用基于fasticp的三维注册方法计算摄像机位姿,步骤5的具体实施方式包括如下子步骤:
步骤5.1,移动kinect传感器使深度摄像机位姿发生改变,由深度图像实时生成曲面点集,该点集描述了深度图像对应的真实场景的三维顶点集合。
步骤5.2,筛选初始帧深度图与当前帧深度图对应的曲面点集中待匹配的点集vi和vi′。具体方法是:首先利用四邻域顶点计算顶点法向量;然后根据法向量,在vi中查找与vi′中最近的点,组成点对,这些点对构成了将要进行匹配的两个点集。
步骤5.3,进行点集匹配并获得点集变换位姿。具体方法是:首先根据筛选的点对,将vi中的三维顶点和所对应vi′中的三维顶点转化为深度图像坐标系下的点vi-1和vi-1′,构成一组点对。然后计算这两个点集的重心位置,并将点集中心化产生两个新的点集;接下来,通过最小化两个新点集的差别,求取二者对应的深度摄像机的相对变换位姿,并根据顶点法向量一致性,给每个点分配权重去除不合适的点集边界。
步骤5.4,对步骤5.1-步骤5.3进行迭代运算,获得最优点集变换位姿,完成非近景模式下的三维注册。具体方法是:在迭代过程中,不断将新获取的深度数据转换的点集与上一次计算得到的点集进匹配,得到点集最优变换位姿,即当前摄像机相对于初始状态下的相对变换位姿,完成非近景模式下的三维注册,求得r’depth和t’depth。
步骤6,近景模式下,采用融合fasticp和orb的三维注册方法计算摄像机位姿,步骤6的具体实施方式包括如下子步骤:
步骤6.1,特征点检测和特征描述。具体方法是:对kinect彩色摄像机进行跟踪,设置初始帧和当前帧,检测两幅图像的fast特征点,用brief描述子描述特征点的属性,获得描述图像特征的二进制串。
步骤6.2,利用暴力匹配法对特征点描述子进行距离测试,获得两帧图像中最佳匹配的特征点。
步骤6.3,计算匹配成功的特征点的世界坐标,结合摄像机内参矩阵计算摄像机位姿,并优化位姿,完成近景模式下的三维注册。具体方法是:首先,由彩色摄像机和深度摄像机的映射关系计算匹配成功的特征点的世界坐标。然后,结合特征点的图像坐标、对应的世界坐标以及彩色摄像机的内参矩阵acolor,获得特征点所在世界坐标系和彩色摄像机坐标系之间的外参;最后,根据外参优化位姿。
其中优化位姿的具体方法为:首先,在特征点中随机选取四个不同特征点作为输入,计算出一组彩色摄像机外参。然后,利用当前特征点对应世界坐标和彩色摄像机内参、外参矩阵,经过反投影计算一组新的二维点集。最后,比较此点集与当前特征点,当距离小于阈值t1的点的数量大于阈值t2时,则将此外参作为优化后的彩色摄像机位姿,完成近景模式下的三维注册,求得最优的t’color和r’color。
步骤7,显示虚实叠加结果。具体实施方法是:近景模式时,直接利用步骤6.3求得的t’color和r’color将虚拟物体叠加到真实场景中。非近景模式时,利用下式,将步骤5.4求得的r’depth和t’depth转换成t”color和r”color,然后将虚拟物体叠加到真实场景中。
其中,r和t分别表示深度摄像机和彩色摄像机间的旋转关系和平移关系。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。