一种用于增强现实的实时图像叠加方法以及装置与流程

文档序号:13935263
一种用于增强现实的实时图像叠加方法以及装置与流程

本发明涉及增强现实领域,尤其涉及一种用于增强现实的实时图像叠加方法以及装置。



背景技术:

增强现实(英文:Augmented Reality;简称:AR)是近年来机器视觉领域备受关注的热点研究之一,目的是在AR设备的屏幕上所呈现的由摄像机采集的真实环境中,通过特殊的计算机图像和视频处理算法,把虚拟图像叠加到真实环境的图像上,使得用户能够获得全新的超越现实的感官体验。在把虚拟图像叠加到真实环境的图像上时,需要获得真实环境的数字化模型,才能够保证虚拟图像叠加时的准确性。

目前,对真实环境的数字化处理一般需要预先处理完成,例如,先通过激光式扫描仪或照相式扫描仪建立点云数据,再对点云数据进行平面检测等相应的处理,对真实环境的数字化处理完成之后,才能够提供给AR技术使用。

可以看出,由于现有的AR技术中对真实环境的数字化需要预先进行处理,实时性较低,所以增加了用户体验到AR技术的前置步骤,也增加了用户花费的时间和精力,导致用户对AR技术的用户体验较低。

因此,现有的AR技术中存在因需要对真实环境的数字化需要预先进行处理,导致增加了用户体验到AR技术的前置步骤,以及增加了用户花费的时间和精力的技术问题。



技术实现要素:

本发明的目的是提供一种用于增强现实的实时图像叠加方法以及装置,以解决现有的AR技术中存在的因需要对真实环境的数字化需要预先进行处理,导致增加了用户体验到AR技术的前置步骤,以及增加了用户花费的时间和精力的技术问题。

为了实现上述发明目的,本发明实施例第一方面提供了一种用于增强现实的实时图像叠加方法,包括:

获取一单目摄像机实时拍摄预设场景时的视频信息,并从所述视频信息中确定出关键帧;

根据当前关键帧和所述当前关键帧的在前关键帧实时建立点云数据,所述当前关键帧和所述在前关键帧之间的视差角大于第一预设值,所述点云数据中的每一个数据点包含有三维坐标;

将所述当前关键帧对应的点云数据投影到所述当前关键帧上,并根据投影结果以及所述当前帧的超像素分割结果,确定所述当前关键帧中的平面;

根据所述单目摄像机与所述预设场景之间的相对位姿,将虚拟图像叠加到所述当前关键帧中的平面上。

可选地,所述根据当前关键帧和所述当前关键帧的在前关键帧实时建立点云数据,具体包括:

对所述当前关键帧和所述在前关键帧进行立体匹配;

根据三角测量原理,实时建立所述点云数据。

可选地,所述将所述当前关键帧对应的点云数据投影到所述当前关键帧上,并根据投影结果以及所述当前帧的超像素分割结果,确定所述当前关键帧中的平面,具体包括:

对所述当前关键帧进行超像素分割处理,获得所述当前关键帧的超像素集合;

将所述当前关键帧对应的点云数据投影到所述当前关键帧上,获得与所述数据点一一对应的投影点;

遍历所有投影点,检测每一个投影点到每一个超像素的最短距离,并且,在第一投影点到第一超像素的最短距离小于第一阈值时,将所述第一投影点对应的第一数据点与所述第一超像素建立关联;

根据每个超像素关联的数据点,获得每个超像素对应的平面方程,从而获得所述当前关键帧中所有超像素对应的平面方程。

可选地,在所述根据每个超像素关联的数据点,获得每个超像素对应的平面方程之前,所述方法还包括:

通过随机抽样一致性算法,去除每个超像素关联的数据点中的外点。

可选地,在所述根据每个超像素关联的数据点,获得每个超像素对应的平面方程之后,所述方法还包括:

针对每个超像素进行以下处理:

将第一超像素的边缘投影到与所述当前关键帧相邻的N帧关键帧上,并计算所述N帧关键帧的每一关键帧中匹配的超像素的边缘的投影误差;

在某一帧关键帧对应的投影误差小于第二阈值时,确定所述第一超像素对应的平面方程具有一个匹配;

在所述第一超像素对应的平面方程具有超过第一预设数目的匹配时,确定所述第一超像素对应的平面方程为正确的方程。

可选地,在所述获得所述当前关键帧中所有超像素对应的平面方程之后,所述方法还包括:

将所有关键帧中的超像素叠加到同一张三维图中,并按以下条件进行融合:当两个平面方程对应的超像素相邻,且所述两个平面方程的法向量夹角小于第三阈值,且所述两个平面方程的偏移量小于第四阈值时,融合所述两个平面对应的两个平面方程。

可选地,每间隔第二预设数目的关键帧,执行步骤:将所述当前关键帧对应的点云数据投影到所述当前关键帧上,并根据投影结果以及所述当前帧的超像素分割结果,确定所述当前关键帧中的平面。

本发明实施例第二方面提供了一种用于增强现实的实时图像叠加装置,其特征在于,包括:

获取单元,用于获取一单目摄像机实时拍摄预设场景时的视频信息,并从所述视频信息中确定出关键帧;

建立单元,用于根据当前关键帧和所述当前关键帧的在前关键帧实时建立点云数据,所述当前关键帧和所述在前关键帧之间的视差角大于第一预设值,所述点云数据中的每一个数据点包含有三维坐标;

确定单元,用于将所述当前关键帧对应的点云数据投影到所述当前关键帧上,并根据投影结果以及所述当前帧的超像素分割结果,确定所述当前关键帧中的平面;

叠加单元,用于根据所述单目摄像机与所述预设场景之间的相对位姿,将虚拟图像叠加到所述当前关键帧中的平面上。

可选地,建立单元具体用于对所述当前关键帧和所述在前关键帧进行立体匹配,并根据三角测量原理,实时建立所述点云数据。

可选地,所述确定单元具体用于对所述当前关键帧进行超像素分割处理,获得所述当前关键帧的超像素集合,并将所述当前关键帧对应的点云数据投影到所述当前关键帧上,获得与所述数据点一一对应的投影点,并遍历所有投影点,检测每一个投影点到每一个超像素的最短距离,并且,在第一投影点到第一超像素的最短距离小于第一阈值时,将所述第一投影点对应的第一数据点与所述第一超像素建立关联,并根据每个超像素关联的数据点,获得每个超像素对应的平面方程,从而获得所述当前关键帧中所有超像素对应的平面方程。

可选地,所述确定单元具体还用于在所述根据每个超像素关联的数据点,获得每个超像素对应的平面方程之前,通过随机抽样一致性算法,去除每个超像素关联的数据点中的外点。

可选地,所述确定单元具体还用于在所述根据每个超像素关联的数据点,获得每个超像素对应的平面方程之后,针对每个超像素进行以下处理:

将第一超像素的边缘投影到与所述当前关键帧相邻的N帧关键帧上,并计算所述N帧关键帧的每一关键帧中匹配的超像素的边缘的投影误差;

在某一帧关键帧对应的投影误差小于第二阈值时,确定所述第一超像素对应的平面方程具有一个匹配;

在所述第一超像素对应的平面方程具有超过第一预设数目的匹配时,确定所述第一超像素对应的平面方程为正确的方程。

可选地,所述确定单元具体还用于在所述获得所述当前关键帧中所有超像素对应的平面方程之后,将所有关键帧中的超像素叠加到同一张三维图中,并按以下条件进行融合:当两个平面方程对应的超像素相邻,且所述两个平面方程的法向量夹角小于第三阈值,且所述两个平面方程的偏移量小于第四阈值时,融合所述两个平面对应的两个平面方程。

可选地,所述确定单元每间隔第二预设数目的关键帧,执行一次如下步骤:将所述当前关键帧对应的点云数据投影到所述当前关键帧上,并根据投影结果以及所述当前帧的超像素分割结果,确定所述当前关键帧中的平面。

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

由于采用了在单目摄像机进行实时拍摄的过程中确定当前关键帧中的平面,并将虚拟图像叠加到当前关键帧中的平面上,实时性较强,所以无需预先对真实环境进行数字化处理即能够向用户提供AR技术的视觉体验,减少了用户体验到AR技术的前置步骤,同时也减少了用户花费的时间和精力,适用范围也大大提高,从而提高了AR技术的用户体验。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图:

图1为本发明实施例提供的用于AR的实时图像叠加方法的流程图;

图2为本发明实施例提供的单目摄像机实时拍摄预设场景时的示意图;

图3为本发明实施例提供的实时图像叠加装置的模块示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参考图1,图1为本发明实施例提供的用于AR的实时图像叠加方法的流程图,如图1所示,该方法包括:

S1:获取一单目摄像机实时拍摄预设场景时的视频信息,并从视频信息中确定出关键帧;

具体来讲,单目摄像机例如可以设置在头戴式显示设备上,在此不做限制;通过该单目摄像机在移动并且旋转的过程中拍摄预设场景,即能够获得相应的视频信息,需要说明的是,该单目摄像机在移动并且旋转的过程中进行拍摄的原因是为了保证后续步骤对视差角的需求;在获取到视频信息后,即可以通过一定的策略来确定视频信息中的关键帧,例如可以在关键帧与关键帧之间的间隔过远时确定新的关键帧,或者也可以通过像素帧平均法、直方图帧平均法或者两者的混合来确定视频信息中的关键帧,当然还可以使用其他方法,在此不做限制,一般来讲,选取的准则是优先考虑关键帧之间的不相似性,即以帧之间相似度作为衡量依据,每次寻找关键帧都保证各关键帧之间具有最小相似度,以使关键帧带有最大信息量,在此就不再赘述了。

S2:根据当前关键帧和当前关键帧的在前关键帧实时建立点云数据,当前关键帧和在前关键帧之间的视差角大于第一预设值,点云数据中的每一个数据点包含有三维坐标;

具体来讲,由于当前关键帧和在前关键帧之间的视差角大于第一预设值,所以可以通过当前关键帧和在前关键帧之间立体匹配而求得视差,再根据三角测量原理,即能够恢复当前关键帧对应的点云数据中每个点的三维信息,也即点云数据中的每以个数据点包含有三维坐标;

需要说明的是,第一预设值若较小,则容易受到噪声影响,从而影响点云数据中每一个数据点的三维坐标的精度,第一预设值若较大,则会导致匹配困难,从而无法建立点云数据,因此第一预设值的具体数值可以由本领域所属的技术人员根据实际情况进行设置,以满足实际情况的需求,在此就不再赘述了。

S3:将当前关键帧对应的点云数据投影到当前关键帧上,并根据投影结果以及当前关键帧的超像素分割结果,确定当前关键帧中的平面;

具体来讲,也即对当前关键帧进行超像素分割,获得超像素分割结果,并将S2中获得的点云数据投影到当前关键帧上,获得投影结果,这样,当前关键帧上的每个超像素上均存在投影点,这样,即能够通过投影点计算出每个超像素对应的平面,从而能够确定当前关键帧中的平面;

S4:根据单目摄像机与预设场景之间的相对位姿,将虚拟图像叠加到当前关键帧中的平面上;

具体来讲,由于单目摄像机与预设场景之间的相对位姿在不断变化,所以需要根据相对位置对虚拟图像进行适应性调整,再将其叠加到当前关键帧中的平面上,例如,在将视频播放器、文档等以平面显示的窗体叠加显示在真实环境中的平面如桌面、地面或者墙面上的时候,需要根据单目摄像机与预设场景之间的相对位姿,调整视频播放器、文档等以平面显示的窗体的大小和方向,使得用户看起来是桌面、地面或者墙面等平面直接显示视频播放器、文档中的内容,从而能够给用户以真实的视觉体验。

可以看出,由于采用了在单目摄像机进行实时拍摄的过程中确定当前关键帧中的平面,并将虚拟图像叠加到当前关键帧中的平面上,实时性较强,所以无需预先对真实环境进行数字化处理即能够向用户提供AR技术的视觉体验,减少了用户体验到AR技术的前置步骤,同时也减少了用户花费的时间和精力,适用范围也大大提高,从而提高了AR技术的用户体验。

在接下来的部分中,将结合附图,详细介绍上述技术方案。

在S1中,获取一单目摄像机实时拍摄预设场景时的视频信息,并从视频信息中确定出关键帧;

具体来讲,也即通过单目摄像机在移动且旋转的过程中,实时拍摄该预设场景,并将拍摄获得的视频信息传递到存储器如内存中,请继续参考图2,图2为本发明实施例提供的单目摄像机实时拍摄预设场景时的示意图,如图2所示,以物体201为预设场景中的一部分为例,该物体201可以为桌子、墙面或地面等等,单目摄像机202在移动且旋转的过程中实时拍摄该预设场景中的物体201;

在接下来的部分中,请继续参考图2,将以单目摄像机202分别在两个不相同的位置A1和A2实时拍摄预设场景中的物体201的过程为例,单目摄像机202在A1获得的图像帧为F1,在A2获得的图像帧为F2,并设定F1和F2为从视频信息提取出的关键帧,其中,F2为当前关键帧,F1为F2的在前关键帧,在实际应用中,F1和F2可以相邻,也可以不相邻,在此不做限制。

需要说明的是,在实际应用中,单目摄像机实时拍摄预设场景和从视频信息中确定出关键帧这两个步骤是同时进行的,并不是视频拍摄完成之后才进行从视频信息中确定出关键帧这一步骤。

在通过S1确定出视频信息的关键帧后,本发明实施例提供的实时图像叠加方法进入S2:根据当前关键帧和当前关键帧的在前关键帧实时建立点云数据,当前关键帧和在前关键帧之间的视差角大于第一预设值,点云数据中的每一个数据点包含有三维坐标;

具体来讲,可以包括:对当前关键帧和在前关键帧进行立体匹配;根据三角测量原理,实时建立点云数据。

请继续参考图2,如图2所示,以真实环境中物体201上的一点P12为例,单目摄像机202在A1点拍摄的关键帧F1中P12为点P1,在A2点拍摄的关键帧F2中该点对应为点P2,这样,通过对F1和F2进行立体匹配后,从而能够获得点P1、点P2和点P12构成的三角形;根据三角测量原理,求解点P1、点P2和点P12构成的三角形,也就能够获得点P12的坐标,同理,只要真实环境中物体201上同时在关键帧F1和关键帧F2上成像并进行匹配的点均能够获得其坐标,这一类点一般被称为特征点,这样,即能够建立包括真实环境中物体201上所有特征点在内的点云数据。

需要说明的是,此处获得的点云数据是根据关键帧F1和关键帧F2而获得的,是一个半稠密(英文:Semi-Dense)的点云数据,半稠密的点云数据中数据点的稠密程度介于稀疏的点云数据和稠密的点云数据之间,同时,该点云数据中每一个点的坐标均是相对坐标,但每个点之间的相对位置是固定的。

通过本实施例的介绍,本领域所属的技术人员还能够根据实际情况,采用其他的单目并发建图与定位算法(英文:simultaneous localization and mapping;简称:SLAM)来获得点云数据,例如ORB(英文:Oriented FAST and Rotated BRIEF;中文:面向快速和简单旋转)-SLAM算法或PTAM(英文:Parallel Tracking and Mapping;中文:并行跟踪与绘图)算法等等,在此不做限制。

在通过S2获得点云数据之后,本发明实施例提供的实时图像叠加方法进入S3,即:将当前关键帧对应的点云数据投影到当前关键帧上,并根据投影结果以及当前帧的超像素分割结果,确定当前关键帧中的平面;

具体来讲,可以包括:对当前关键帧进行超像素分割处理,获得当前关键帧的超像素集合;将当前关键帧对应的点云数据投影到当前关键帧上,获得与数据点一一对应的投影点;遍历所有投影点,检测每一个投影点到每一个超像素的最短距离,并且,在第一投影点到第一超像素的最短距离小于第一阈值时,将第一投影点对应的第一数据点与第一超像素建立关联;根据每个超像素关联的数据点,获得每个超像素对应的平面方程,从而获得当前关键帧中所有超像素对应的平面方程。

首先,介绍一下超像素分割的过程:超像素是指具有相似的灰度、纹理、颜色或亮度等特征的相邻像素构成的有一定视觉意义的不规则像素块,而超像素分割是将一幅是像素级(英文:pixel-level)的图,划分为区域级(英文:district-level)的图,每个子区域的某个特征具有很强的一致性,例如每个子区域的灰度很接近;在实际应用中,超像素的分割算法又被称为生成算法,超像素的分割算法有很多种,基本可以分为基于图论法和基于梯度下降法两大类,基于图论法的超像素分割算法例如可以包括基于图的图像分割算法(英文:graph-based)、超像素格算法(英文:superpixel lattices)等等,基于梯度下降法的超像素分割算法例如可以包括分水岭算法(英文:watershed)、均值漂移算法(英文:mean-shift)或简单线性迭代聚类算法(英文:simple linear iterative cluster;简称:SLIC)等等,在此就不再赘述了。

在通过超像素分割算法对当前关键帧进行超像素分割处理后,即能够获得当前关键帧的超像素集合,超像素集合中的每个超像素均包括一个或者多个像素。由于每个超像素代表着一个低纹理、低梯度值、颜色相近的区域,所以可以近似地认为每个超像素都是一个平面区域。

接着,将当前关键帧对应的点云数据投影到当前关键帧上,这样,点云数据中的每个数据点都能够对应于一个投影点,每个投影点均为当前关键帧所在平面上的二维点,投影的具体过程在此就不再赘述了;

然后,遍历所有投影点,检测每一个投影点到每一个超像素的最短距离,例如,以当前关键帧所在平面的任意点为原点建立坐标系,即能够获得所有投影点的坐标值,以及所有超像素的质心坐标和边缘线坐标,这样,针对第一投影点而言,即能够计算出第一投影点距离每一个超像素的最短距离,具体计算方法可以如下:通过连接线来分别连接第一投影点和所有超像素的质心,则第一投影点与该连接线和每个超像素的边缘的交点之间的距离为最短距离。

当然,在其他实施例中,本领域所属的技术人员能够根据实际情况,采用其他合适的计算方法,以满足实际情况的需要,在此就不再赘述了。

这样,若计算出第一投影点与某个超像素例如第一超像素的最短距离小于第一阈值,第一阈值例如可以为1个像素或者3个像素,则可以将点云数据中与第一投影点对应的数据点与第一超像素建立关联,以此类推,直到点云数据中所有数据点均与当前关键帧中的超像素建立关联。

最后,根据每个超像素关联的数据点,即能够获得该超像素对应的平面方程。

在具体实施过程中,为了保证所获得的该超像素对应的平面方程的准确性,需要先对每个超像素关联的数据点进行处理,在本实施例中,可以通过随机抽样一致性算法(英文:RANdom Sample Consensus;简称:RANSAC),来去除每个超像素关联的数据点中的外点,具体处理过程如下:

以第一超像素关联的数据点为例,可以从其中随机抽取一定数量的样本数据点,例如可以从其中抽取5个或者10个样本数据点,在本实施例中,设定抽取的样本数据点的数目为m个;这样,由于每个样本数据点包括三维坐标,则可以建立一个m*3的样本矩阵,在本实施例中,设定该样本矩阵为Am*3,然后对Am*3进行奇异值分解,即能够将矩阵Am*3分解为A=UΣVT,其中U是一个m*m的方阵,Σ是m*3的矩阵,Σ矩阵中对角线上的元素称为奇异值,除了奇异值外其他元素都为0,VT是一个3*3的方阵,称为奇异向量,最小奇异值对应的奇异向量就是该第一超像素对应的平面方程的法向量,代入上述任意一个样本数据点即能够获得第一超像素对应的平面方程,在此就不再赘述了,第一超像素对应的平面方程具体可以为Ax+By+Cz+D=0,设定此平面方程为第一平面方程。当然,在具体实施过程中,可以先计算出抽取的样本数据点的质心坐标,然后将其代入到第一超像素对应的平面的法向量中,从而获得更精确的平面方程,在此就不再赘述了。

接着,计算第一超像素关联的数据点到第一平面方程对应的平面的距离,例如,以第一超像素关联的数据点中的一点Pj(Xj,Yj,Zj)为例,Pj到第一平面方程对应的平面的距离为:

在获得第一超像素关联的所有数据点到第一平面方程对应的平面的距离后,即可以将与第一平面方程对应的平面之间的距离小于第一设定值的数据点设为内点,以及将与第一平面方程对应的平面之间的距离大于等于第一设定值的数据点设为外点,这样,即能够从第一超像素关联的数据点中剔除外点,再根据剔除了外点的第一超像素关联的数据点,重新计算第一超像素对应的平面方程,具体的计算过程如前,在此就不再赘述了,设定此次计算所获得的平面方程为第二平面方程。由于本次计算第二平面方程时剔除了外点,从而能够有效地提高计算所获得的平面方程的精度,在此就不再赘述了。

当然,此时还可以再次计算第一超像素关联的数据点到第二平面方程的距离,将与该平面方程的距离小于第一设定值的数据点设为内点,且统计该子数据集中属于第二拟合平面的内点数目,并计算该子数据集内所有数据点到该平面方程的平均距离为以供后续步骤使用。

这样,循环执行上述从第一超像素关联的数据点中抽取样本数据点计算第一平面方程、以及剔除外点后再次计算第二平面方程的步骤,就能够得到多个第二平面方程;由于每次随机抽取的样本数据点均不一致,所以每次循环最终得到的第二平面方程均会存在一定的差异,一般说来,每次循环获得的第二平面方程的内点数目都是不相同的,因此,此时可以将N个第二平面方程中内点数目最多的确定为第一超像素对应的平面方程,也即该平面方程能够在最大程度上适用于第一超像素关联的所有数据点。

需要说明的是,若存在有多个第二平面方程的内点数目相同,则可以选择所有数据点到平面方程对应的平面的平均距离最小的平面,若还是存在有多个第二平面方程满足条件,则可以选择该子数据集内所有数据点到第二平面方程对应的平面的距离的方差最小的,当然,通过本实施例的介绍,本领域所属的技术人员还能够实际情况,选择其他合适的方法来选择第二平面方程,在此就不再赘述了。

需要说明的是,如果设定循环执行的次数越多,则最后获得的第二平面方程的准确性也就越高,但是如果循环执行的次数过多,就会导致计算量增大,从而会增加计算时间,因此本领域所属的技术人员在实际应用中,能够根据实际情况,设定循环执行的次数为一个合适数值,以满足实际情况的需要,在此就不再赘述了。

同理,可以计算获得当前关键帧中所有超像素各自对应的平面方程,从而能够确定当前关键帧中的平面。

在具体实施过程中,为了避免获得错误的平面方程,在获得每个超像素对应的平面方程之后,本发明实施例提供的实时图像叠加方法还包括:

针对每个超像素进行以下处理:将第一超像素的边缘投影到与当前关键帧相邻的N帧关键帧上,并计算N帧关键帧的每一关键帧中匹配的超像素的边缘的投影误差;在某一帧关键帧对应的投影误差小于第二阈值时,确定第一超像素对应的平面方程具有一个匹配;在第一超像素对应的平面方程具有超过第一预设数目的匹配时,确定第一超像素对应的平面方程为正确的方程。

具体来讲,以当前关键帧中的第一超像素为例,根据实时建立的点云数据以及第一超像素最终确定的平面方程,即能够获得第一超像素的边缘,从而能够将第一超像素的边缘投影到与当前关键帧相邻的N帧关键帧上,例如,在N为2时,则可以将第一超像素的边缘投影到与当前关键帧的前一关键帧和后一关键帧上,也可以将第一超像素的边缘投影到与当前关键帧的前两帧关键帧或后两帧关键帧上;在N为4时,则可以将第一超像素的边缘投影到当前关键帧的前两帧关键帧和后两帧关键帧上,也可以将第一超像素的边缘投影到当前关键帧的前三帧关键帧和后一关键帧上,还可以将第一超像素的边缘投影到与当前关键帧的前一关键帧和后三帧关键帧上,在此不做限制。本领域所属的技术人员能够根据实际情况,选择合适的关键帧进行投影,以满足实际情况的需要,在此就不再赘述了。

接着,计算每一关键帧中匹配的超像素的边缘的投影误差,可以通过如下的公式进行计算:其中,F(Tj,pu)为第j关键帧中Pu对应的投影点,为第j关键帧中超像素si距离投影点F(Tj,pu)最近的像素。

然后,判断每一帧的超像素的边缘的投影误差是否小于第二阈值,第二阈值例如可以是一定数值的像素值(intensity)等等,在具体实施过程中,本领域所属的技术人员能够根据实际情况,设置第二阈值的具体数值,以满足实际情况的需要,在此就不再赘述了。

最后,在某一关键帧对应的投影误差小于第二阈值时,则确定第一超像素对应的平面方程具有一个匹配,这样第一超像素对应的平面方程具有超过第一预设数目的匹配时,则可以确定第一超像素对应的平面方程为正确的方程,也就是说,当前关键帧中超像素的平面方程能够适用于与相邻的关键帧中匹配的超像素,即表明当前关键帧中超像素的平面方程为正确的方程。

在具体实施过程中,可能会存在一个平面被分成两个超像素或者多个超像素的情况,例如,一张平整的桌面,也即一个平面包括多个颜色区域,则有可能在进行超像素分割的时候,该桌面即被分割为多个超像素,另外,针对该桌面,有可能被不同的关键帧拍摄到不同的部分,这样也会导致该平面在不同的关键帧中被划分为不同的超像素,这明显不利于后续对虚拟图像进行叠加的步骤,因此,为了提高确定当前关键帧中的平面的准确性,保证为虚拟图像进行叠加时提供准确的数据支持,在获得当前关键帧中所有超像素对应的平面方程之后,本发明实施例提供的实时图像叠加方法还包括:

将所有关键帧中的超像素叠加到同一张三维图中,并按以下条件进行融合:当两个平面方程对应的超像素相邻,且两个平面方程的法向量夹角小于第三阈值,且两个平面方程的偏移量小于第四阈值时,融合两个平面对应的两个平面方程。

具体来讲,在获得关键帧中超像素对应的平面方程后,即能够将所有超像素叠加到同一张三维图中,可以理解的,随着单目摄像机对预设场景拍摄获得的视频信息越来越多,该三维地图也越来越完整;接着,即能够按照以下条件对超像素对应的平面方程进行融合,在接下来的部分中,以两个超像素对应的两个平面方程如何进行融合为例进行描述:

首先,在对当前关键帧进行超像素分割后,可以对当前关键帧中的每个超像素根据位置进行编号,从而即能够根据编号判断两个超像素是否相邻,若两个超像素相邻,则两个平面方程可以进行融合,若两个超像素不相邻,则两个平面方程不可以进行融合;

然后,在超像素对应的平面方程确定以后,可以获得两个平面方程的法向量,例如,设定第三阈值例如为5°夹角,一个平面方程的法向量为另一个平面方程的法向量为则可知这两个平面方程的法向量之间的夹角θ的余弦若该余弦值小于等于0.9962,余弦值小于等于0.9962时对应于角度为大于等于5°,则表明该两个平面方程的法向量之间的夹角大于等于5°,不可以进行融合,若余弦值大于该余弦值,则表明两个平面方程的法向量之间的夹角小于5°,也即两个平面方程的法向量之间的夹角小于第三阈值,则可以进行融合;

最后,在判断两个平面方程的偏移量时,可以通过计算原点分别到两个平面的距离来判断,原点到平面的距离公式为分别将两个平面方程代入,则可以计算出原点到两个平面的距离d1和d2,如果|d1-d2|小于第四阈值,则表明两个平面方程之间的距离很小,可以进行融合,如果|d1-d2|大于第四阈值,则表明两个平面方程之间的距离很大,不可以进行融合。

在实际应用中,第四阈值可以根据点云数据的实际情况来进行设定,例如,点云数据对应的空间同时在x、y和z方向上均超过了100米,则可以将第四阈值设定为相对较大的数值,如可以为0.1米,若点云数据对应的空间本身比较小,例如在x、y和z方向中跨度最大的方向才1米,则可以将第四阈值设定为相对较大的数值,如可以为0.1毫米,通过本实施例的介绍,本领域所属的技术人员能够根据实际情况,将第四阈值设置为合适的数值,以满足实际情况的需要,在此就不再赘述了。

当然了,通过本实施例的介绍,本领域所属的技术人员还能够根据实际情况,设置其他合适的条件来判断两个平面方程是否应该融合,以满足实际情况的需要,在此就不再赘述了。

需要说明的是,上述的三个条件没有先后顺序,本实施例中仅仅是为了举例介绍,而不应当看做对本发明实施例提供的实时图像叠加方法的限制,本领域所属的技术人员能够根据实际情况,设置合适的执行顺序,以满足实际情况的需要。

在本实施例中,在融合两个平面方程时,可以是以两个平面方程内的数据点进行拟合,也即以两个平面方程的内点进行拟合,具体的过程可以采用前述介绍的随机抽样一致算法来,从而获得两个平面方程融合而成的平面,在此不再详述,需要说明的是,由于随机抽样一致算法的计算量只和迭代的次数相关,而与作为采样基础的数据集的规模无关,也即与数据集中数据点的数量无关,所以以两个平面方程的内点进行拟合时不会增加额外的计算量。

在另一实施例中,在融合两个平面方程时,也可以是将该两个平面方程对应的两个超像素关联的所有数据点来进行拟合,从而获得融合的平面方程,在此就不再赘述了。

在具体实施过程中,由于相邻的两帧关键帧之间变化较小,该两帧关键帧进行超像素分割后获得的超像素也差不多,计算后获得的超像素平面对应的平面方程也差不多,如前,最后相同的平面方程仍然会融合在一起,增加了不必要的计算量,若计算出现的误差稍大或者融合的条件较为苛刻,甚至还会出现不能融合的情形,也即预设场景中的平面被重复重建反而会对结果造成干扰,所以,为了减少不必要的计算量,同时避免平面被重复重建而结果造成的干扰,本发明实施例提供的实时图像叠加方法采用如下方式:

每间隔第二预设数目的关键帧,执行步骤S3,也即:将当前关键帧对应的点云数据投影到当前关键帧上,并根据投影结果以及当前帧的超像素分割结果,确定当前关键帧中的平面。

在具体实施过程中,第二预设数目的具体数值可以根据实际情况进行设置,例如可以为3、5或6等等,以满足实际情况的需要,在此就不再赘述了;一般来讲,在单目摄像机的移动速度较慢、且单目摄像机拍摄时的帧率较高时,第二预设数目可以取一个较大的数值,在单目摄像机的移动速度较快、且单目摄像机拍摄时的帧率较低时,第二预设数目可以取一个较小的数值。

在通过S3确定当前关键帧中的平面后,本发明实施例提供的实时图像叠加方法进入S4,即:根据单目摄像机与预设场景之间的相对位姿,将虚拟图像叠加到当前关键帧中的平面上。

具体来讲,将虚拟图像叠加在预设场景中的平面上并提供给用户,也即AR技术一般来讲有两种方式:第一种方式为通过透镜将预设场景的光线传递至人眼,并将虚拟图像的光线融合到预设场景的光线中,第二种方式为通过摄像机,可以是前述部分介绍的单目摄像机拍摄预设场景的图像,并将虚拟图像叠加到预设场景中的平面后,将叠加后的图像传递到人眼。当然,在具体实施过程中,本领域所属的技术人员还能够根据实际情况,选择其他合适的方式,以满足实际情况的需要,在此就不再赘述了。

无论AR技术采用上述哪一种方式,为了保证虚拟图像叠加到预设场景后显得更加真实,需要根据单目摄像机与预设场景之间的相对位姿对虚拟图像进行缩放等调整,使得虚拟图像能够适应且贴近预设场景中的平面,从而保证AR技术提供给用户的视觉效果,具体的调整过程根据虚拟图像以及预设场景中的平面的不同而需要具体变化,在此就不再赘述了。

通过上述部分可以看出,由于采用了在单目摄像机进行实时拍摄的过程中确定当前关键帧中的平面,并将虚拟图像叠加到当前关键帧中的平面上,实时性较强,所以无需预先对真实环境进行数字化处理即能够向用户提供AR技术的视觉体验,减少了用户体验到AR技术的前置步骤,同时也减少了用户花费的时间和精力,适用范围也大大提高,从而提高了AR技术的用户体验。

基于同一发明构思,本发明实施例另一方面还提供一种用于AR的实时图像叠加装置,请参考图3,图3为本发明实施例提供的实时图像叠加装置的模块示意图,如图3所示,该实时图像叠加装置包括:

获取单元301,用于获取一单目摄像机实时拍摄预设场景时的视频信息,并从视频信息中确定出关键帧;

建立单元302,用于根据当前关键帧和当前关键帧的在前关键帧实时建立点云数据,当前关键帧和在前关键帧之间的视差角大于第一预设值,点云数据中的每一个数据点包含有三维坐标;

确定单元303,用于将当前关键帧对应的点云数据投影到当前关键帧上,并根据投影结果以及当前帧的超像素分割结果,确定当前关键帧中的平面;

叠加单元304,用于根据单目摄像机与预设场景之间的相对位姿,将虚拟图像叠加到当前关键帧中的平面上。

在具体实施过程中,建立单元302具体用于通过对当前关键帧和在前关键帧进行立体匹配,并根据三角测量原理,实时建立点云数据。

在具体实施过程中,确定单元303具体用于对当前关键帧进行超像素分割处理,获得当前关键帧的超像素集合,并将当前关键帧对应的点云数据投影到当前关键帧上,获得与数据点一一对应的投影点,并遍历所有投影点,检测每一个投影点到每一个超像素的最短距离,并且,在第一投影点到第一超像素的最短距离小于第一阈值时,将第一投影点对应的第一数据点与第一超像素建立关联,并根据每个超像素关联的数据点,获得每个超像素对应的平面方程,从而获得当前关键帧中所有超像素对应的平面方程。

在具体实施过程中,确定单元303具体还用于在根据每个超像素关联的数据点,获得每个超像素对应的平面方程之前,通过随机抽样一致性算法,去除每个超像素关联的数据点中的外点。

在具体实施过程中,确定单元303具体还用于在根据每个超像素关联的数据点,获得每个超像素对应的平面方程之后,针对每个超像素进行以下处理:

将第一超像素的边缘投影到与当前关键帧相邻的N帧关键帧上,并计算N帧关键帧的每一关键帧中匹配的超像素的边缘的投影误差;

在某一帧关键帧对应的投影误差小于第二阈值时,确定第一超像素对应的平面方程具有一个匹配;

在第一超像素对应的平面方程具有超过第一预设数目的匹配时,确定第一超像素对应的平面方程为正确的方程。

在具体实施过程中,确定单元303具体还用于在获得当前关键帧中所有超像素对应的平面方程之后,将所有关键帧中的超像素叠加到同一张三维图中,并按以下条件进行融合:当两个平面方程对应的超像素相邻,且两个平面方程的法向量夹角小于第三阈值,且两个平面方程的偏移量小于第四阈值时,融合两个平面对应的两个平面方程。

在具体实施过程中,确定单元303每间隔第二预设数目的关键帧,执行一次如下步骤:将当前关键帧对应的点云数据投影到当前关键帧上,并根据投影结果以及当前帧的超像素分割结果,确定当前关键帧中的平面。

本发明实施例中的图像叠加装置与前述部分介绍的图像叠加方法是基于同一发明构思下的两个方面,在前述部分中已经详细地介绍了实时图像叠加方法的具体处理过程,在此为了说明书的简洁,就不再赘述了。

本发明实施例中的一个或者多个技术方案,至少具有如下的技术效果或者优点:

由于采用了在单目摄像机进行实时拍摄的过程中确定当前关键帧中的平面,并将虚拟图像叠加到当前关键帧中的平面上,实时性较强,所以无需预先对真实环境进行数字化处理即能够向用户提供AR技术的视觉体验,减少了用户体验到AR技术的前置步骤,同时也减少了用户花费的时间和精力,适用范围也大大提高,从而提高了AR技术的用户体验。

本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。

本说明书(包括任何附加权利要求、摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。

本发明并不局限于前述的具体实施方式。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。

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