CN107798703B - 一种用于增强现实的实时图像叠加方法以及装置 - Google Patents
一种用于增强现实的实时图像叠加方法以及装置 Download PDFInfo
- Publication number
- CN107798703B CN107798703B CN201610768089.5A CN201610768089A CN107798703B CN 107798703 B CN107798703 B CN 107798703B CN 201610768089 A CN201610768089 A CN 201610768089A CN 107798703 B CN107798703 B CN 107798703B
- Authority
- CN
- China
- Prior art keywords
- plane
- straight line
- edge
- key frame
- rectangle
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20212—Image combination
- G06T2207/20221—Image fusion; Image merging
Landscapes
- Image Analysis (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种用于增强现实的实时图像叠加方法以及装置,由于采用了在单目摄像机实时拍摄预设场景的过程中,确定当前关键帧中的平面以及每一个平面上最长的边缘直线,并在将虚拟图像叠加到当前关键帧中的第一平面时,将虚拟图像中主要特征物的贴合面与第一平面贴合,并且将主要特征物的正向边设置为与第一平面的边缘直线平行或者垂直的技术方案,所以无需预先对真实环境进行数字化处理即能够向用户提供AR技术的视觉体验,减少了用户体验到AR技术的前置步骤,实时性较强,适用范围也大大提高,同时也结合了真实环境中平面的实际边缘,明显提高了虚拟图像中的主要特征物的真实性。
Description
技术领域
本发明涉及增强现实领域,尤其涉及一种用于增强现实的实时图像叠加方法以及装置。
背景技术
增强现实(英文:Augmented Reality;简称:AR)是近年来机器视觉领域备受关注的热点研究之一,目的是在AR设备的屏幕上所呈现的由摄像机采集的真实环境中,通过特殊的计算机图像和视频处理算法,把虚拟图像叠加到真实环境的图像上,使得用户能够获得全新的超越现实的感官体验。在把虚拟图像叠加到真实环境的图像上时,需要获得真实环境的数字化模型,才能够保证虚拟图像叠加时的准确性。
目前,对真实环境的数字化处理一般需要预先处理完成,例如,先通过激光式扫描仪或照相式扫描仪建立点云数据,再对点云数据进行平面检测等相应的处理,对真实环境的数字化处理完成之后,才能够提供给AR技术使用。
可以看出,由于现有的AR技术中对真实环境的数字化需要预先进行处理,实时性较低,所以增加了用户体验到AR技术的前置步骤,也增加了用户花费的时间和精力,导致用户对AR技术的用户体验较低。
因此,现有的AR技术中存在因需要对真实环境的数字化需要预先进行处理,导致增加了用户体验到AR技术的前置步骤,以及增加了用户花费的时间和精力的技术问题。
发明内容
本发明的目的是提供一种用于增强现实的实时图像叠加方法以及装置,解决了现有技术中存在的因没有结合真实环境的实际边缘进行图像叠加,而降低了虚拟物体的真实性的技术问题。
为了实现上述发明目的,本发明一方面提供了一种用于增强现实的实时图像叠加方法,包括:
获取一单目摄像机实时拍摄预设场景时的视频信息,并从所述视频信息中确定出关键帧;
根据当前关键帧和所述当前关键帧的在前关键帧实时建立点云数据,所述当前关键帧和所述在前关键帧之间的视差角大于预设视差角,所述点云数据中的每个数据点包含三维坐标;
将所述当前关键帧对应的点云数据投影到所述当前关键帧上,根据投影结果以及所述当前关键帧的超像素分割结果,确定所述当前关键帧中的每个超像素对应的平面;
根据所述投影结果以及所述每个超像素对应的平面,确定每个平面的边缘区域的数据点,并根据确定出的边缘区域的数据点,获得每个平面的边缘直线集合,并从所述边缘直线集合中确定出每个平面的最长边缘直线;
在将虚拟图像叠加到所述当前关键帧中的第一平面上时,将所述虚拟图像中主要特征物的贴合面与所述第一平面贴合,且将所述主要特征物的正向边设置为与所述第一平面的最长边缘直线平行或者垂直,所述正向边为所述主要特征物的预设朝向面和预设底面之间的相交线。
可选地,所述根据投影结果以及所述当前帧的超像素分割结果,确定所述当前关键帧中的平面,具体包括:
根据投影点与当前关键帧中每个超像素的距离,建立与投影点对应的数据点与当前关键帧中每个超像素之间的关联;
根据每个超像素关联的数据点,拟合每个超像素对应的平面方程。
可选地,所述从所述边缘直线集合中确定出每个平面的最长边缘直线,具体为:
将所述边缘直线集合中长度最长和/或直线的两边预设范围内数据点数目之和的差最大的直线,作为所述最长边缘直线。
可选地,在所述将所述边缘直线集合中长度最长和/或直线的两边预设范围内数据点数目之和的差最大的直线,作为所述最长边缘直线之前,所述方法还包括:
以所述边缘直线集合中每条直线关联的数据点作为其对应的置信度;
去除所述边缘直线集合中置信度低于第一阈值的直线。
可选地,在所述确定所述当前关键帧中的每个超像素对应的平面之后,在所述从所述边缘直线集合中确定出每个平面的最长边缘直线之前,所述方法还包括:
判断所述当前关键帧中的第二平面是否需要与第三平面融合,所述第三平面为所述当前关键帧中的平面或所述在前关键帧中的平面;
在所述第二平面需要与所述第三平面融合时,根据第二平面和第三平面关联的所有数据点重新拟合平面方程;
重新确定融合之后的平面的边缘区域的数据点;
将所述第二平面的边缘直线集合中的直线投影到所述融合之后的平面中,并去除未关联到所述融合之后的平面的边缘区域的数据点的直线,获得第一投影边缘直线集合,以及将所述第三平面的第二边缘直线集合中的直线投影到所述融合之后的平面中,并去除未关联到所述融合之后的平面的边缘区域的数据点的直线,获得第二投影边缘直线集合,并计算所述第一投影边缘直线集合中第一直线和所述第二投影边缘直线集合中第二直线之间的夹角,若所述第一直线和所述第二直线之间的夹角小于第二阈值,则融合两条直线。
可选地,在所述从所述边缘直线集合中确定出每个平面的最长边缘直线时,所述方法还包括:为每个平面确定一个矩形,所述矩形的一边平行于其所在平面的最长边缘直线;
在所述将虚拟图像叠加到所述当前关键帧中的第一平面上时,所述方法还包括:根据所述第一平面对应的矩形和所述主要特征物的相对大小,调整所述主要特征物的大小。
可选地,所述为每个平面确定一个矩形,具体包括:
根据每个平面对应的所有边缘点,确定每个平面的中心;
以所述每个平面的中心为中心,建立面积等于第三阈值的第一矩形;
检测所述第一矩形与其对应的平面之间的共同面积;
若所述共同面积与所述第一矩形之间的比值大于第四阈值,则以所述中心到所述第一矩形的四边的方向对所述第一矩形进行扩大,获得扩大后的第二矩形;
将面积最大的第二矩形作为每个平面的矩形。
本发明实施例另一方面还一种用于增强现实的实时图像叠加装置,包括:
关键帧确定单元,用于获取一单目摄像机实时拍摄预设场景时的视频信息,并从所述视频信息中确定出关键帧;
点云数据建立单元,用于根据当前关键帧和所述当前关键帧的在前关键帧实时建立点云数据,所述当前关键帧和所述在前关键帧之间的视差角大于预设视差角,所述点云数据中的每个数据点包含三维坐标;
平面确定单元,将所述当前关键帧对应的点云数据投影到所述当前关键帧上,根据投影结果以及所述当前关键帧的超像素分割结果,确定所述当前关键帧中的每个超像素对应的平面;
边缘直线确定单元,用于根据所述投影结果以及所述每个超像素对应的平面,确定每个平面的边缘区域的数据点,并根据确定出的边缘区域的数据点,获得每个平面的边缘直线集合,并从所述边缘直线集合中确定出每个平面的最长边缘直线;
图像叠加单元,用于在将虚拟图像叠加到所述当前关键帧中的第一平面上时,将所述虚拟图像中主要特征物的贴合面与所述第一平面贴合,且将所述主要特征物的正向边设置为与所述第一平面的最长边缘直线平行或者垂直,所述正向边为所述主要特征物的预设朝向面和预设底面之间的相交线。
可选地,所述平面确定单元具体用于根据投影点与当前关键帧中每个超像素的距离,建立与投影点对应的数据点与当前关键帧中每个超像素之间的关联,并根据每个超像素关联的数据点,拟合每个超像素对应的平面方程。
可选地,所述边缘直线确定单元具体用于将所述边缘直线集合中长度最长和/或直线的两边预设范围内数据点数目之和的差最大的直线,作为所述最长边缘直线。
可选地,所述边缘直线确定单元具体还用于在所述将所述边缘直线集合中长度最长和/或直线的两边预设范围内数据点数目之和的差最大的直线,作为所述最长边缘直线之前,以所述边缘直线集合中每条直线关联的数据点作为其对应的置信度,并去除所述边缘直线集合中置信度低于第一阈值的直线。
可选地,所述平面确定单元具体还用于在在所述确定所述当前关键帧中的每个超像素对应的平面之后,在所述从所述边缘直线集合中确定出每个平面的最长边缘直线之前,判断所述当前关键帧中的第二平面是否需要与第三平面融合,所述第三平面为所述当前关键帧中的平面或所述在前关键帧中的平面,并在所述第二平面需要与所述第三平面融合时,根据第二平面和第三平面关联的所有数据点重新拟合平面方程,并重新确定融合之后的平面的边缘区域的数据点,并将所述第二平面的边缘直线集合中的直线投影到所述融合之后的平面中,并去除未关联到所述融合之后的平面的边缘区域的数据点的直线,获得第一投影边缘直线集合,以及将所述第三平面的第二边缘直线集合中的直线投影到所述融合之后的平面中,并去除未关联到所述融合之后的平面的边缘区域的数据点的直线,获得第二投影边缘直线集合,并计算所述第一投影边缘直线集合中第一直线和所述第二投影边缘直线集合中第二直线之间的夹角,若所述第一直线和所述第二直线之间的夹角小于第二阈值,则融合两条直线。
可选地,所述实时图像叠加装置还包括矩形确定单元,所述矩形确定单元用于在所述边缘直线确定单元从所述边缘直线集合中确定出每个平面的最长边缘直线时,为每个平面确定一个矩形,所述矩形的一边平行于其所在平面的最长边缘直线;
所述图像叠加单元具体还用于在将虚拟图像叠加到所述当前关键帧中的第一平面上时,根据所述第一平面对应的矩形和所述主要特征物的相对大小,调整所述主要特征物的大小。
可选地,所述矩形确定单元具体用于根据每个平面对应的所有边缘点,确定每个平面的中心,并以所述每个平面的中心为中心,建立面积等于第三阈值的第一矩形,并检测所述第一矩形与其对应的平面之间的共同面积,并若所述共同面积与所述第一矩形之间的比值大于第四阈值,则以所述中心到所述第一矩形的四边的方向对所述第一矩形进行扩大,获得扩大后的第二矩形,并将面积最大的第二矩形作为每个平面的矩形。
本发明实施例中的一个或者多个技术方案,至少具有如下技术效果或者优点:
1、由于采用了在单目摄像机实时拍摄预设场景的过程中,确定当前关键帧中的平面以及每一个平面上最长的边缘直线,并在将虚拟图像叠加到当前关键帧中的第一平面时,将虚拟图像中主要特征物的贴合面与第一平面贴合,并且将主要特征物的正向边设置为与第一平面的边缘直线平行或者垂直的技术方案,所以无需预先对真实环境进行数字化处理即能够向用户提供AR技术的视觉体验,减少了用户体验到AR技术的前置步骤,实时性较强,适用范围也大大提高,同时也结合了真实环境中平面的实际边缘,明显提高了虚拟图像中的主要特征物的真实性,从而减少或者避免了用户察觉到该主要特征物为虚拟的可能性,继而能够向用户提供沉浸式体验。
2、由于采用了确定当前关键帧中的平面中的矩形,并根据虚拟图像中主要特征物的贴合面与矩形的相对大小,调整主要特征物的大小的技术方案,使得叠加的虚拟图像中主要特征物的真实性进一步提高,从而进一步减少或者避免了用户察觉到该主要特征物为虚拟的可能性,继而能够更好地向用户提供沉浸式体验。
附图说明
图1为本发明实施例提供的增强现实的实时图像叠加方法的流程图;
图2为本发明实施例提供的单目摄像机实时拍摄预设场景时的示意图;
图3为本发明实施例提供的用于增强现实的实时图像叠加装置的模块图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明实施例提供一种用于增强现实的实时图像叠加方法的流程图,如图1所示,该方法包括:
S1:获取一单目摄像机实时拍摄预设场景时的视频信息,并从视频信息中确定出关键帧;
具体来讲,单目摄像机例如可以设置在头戴式显示设备或者眼镜式显示设备上,在此不做限制;通过该单目摄像机在移动并且旋转的过程中拍摄预设场景,即能够获得相应的视频信息,需要说明的是,该单目摄像机在移动并且旋转的过程中进行拍摄的原因是为了保证后续步骤对视差角的需求;在获取到视频信息后,即可以通过一定的策略来确定视频信息中的关键帧,例如可以在关键帧与关键帧之间的间隔过远时确定新的关键帧,或者也可以通过像素帧平均法、直方图帧平均法或者两者的混合来确定视频信息中的关键帧,当然还可以使用其他方法,在此不做限制,一般来讲,选取的准则是优先考虑关键帧之间的不相似性,即以帧之间相似度作为衡量依据,每次寻找关键帧都保证各关键帧之间具有最小相似度,以使关键帧带有最大信息量,在此就不再赘述了。
S2:根据当前关键帧和当前关键帧的在前关键帧实时建立点云数据,当前关键帧和在前关键帧之间的视差角大于预设视差角,点云数据中的每个数据点包含三维坐标;
具体来讲,由于当前关键帧和在前关键帧之间的视差角大于预设视差角,所以可以通过当前关键帧和在前关键帧之间立体匹配而求得视差,再根据三角测量原理,即能够恢复当前关键帧对应的点云数据中每个点的三维信息,也即点云数据中的每一个数据点包含有三维坐标;
需要说明的是,预设视差角若较小,则容易受到噪声影响,从而影响点云数据中每一个数据点的三维坐标的精度,预设视差角若较大,则会导致匹配困难,从而无法建立点云数据,因此预设视差角的具体数值可以由本领域所属的技术人员根据实际情况进行设置,以满足实际情况的需求,在此就不再赘述了。
S3:将当前关键帧对应的点云数据投影到当前关键帧上,根据投影结果以及当前关键帧的超像素分割结果,确定当前关键帧中的每个超像素对应的平面;
具体来讲,也即对当前关键帧进行超像素分割,获得超像素分割结果,并将S2中获得的点云数据投影到当前关键帧上,获得投影结果,这样,当前关键帧上的每个超像素上均存在投影点,这样,即能够通过每个超像素关联的投影点,拟合出每个超像素对应的平面,从而能够确定当前关键帧中的每个超像素对应的平面;在需要将虚拟图像叠加到当前关键帧上时,即能够根据确定出的平面,选择具体叠加到当前关键帧上的某一个平面上,选择的方式在此就不做介绍了。
S4:根据投影结果以及每个超像素对应的平面,确定每个平面的边缘区域的数据点,并根据确定出的边缘区域的数据点,获得每个平面的边缘直线集合,并从边缘直线集合中确定出每个平面的最长边缘直线;
具体来讲,在通过S3确定每个超像素对应的平面后,即能够确定每个平面的边缘,接着再根据投影结果,确定出每个平面的边缘区域的数据点,然后根据每个平面的边缘区域的数据点,获得每个平面的边缘直线集合,最后从边缘直线集合中确定出每个平面的最长边缘直线,每个平面的最长边缘直线即最能够代表该平面的朝向特征。
S5:在将虚拟图像叠加到当前关键帧中的第一平面上时,将虚拟图像中主要特征物的贴合面与第一平面贴合,且将主要特征物的正向边设置为与第一平面的最长边缘直线平行或者垂直,正向边为主要特征物的预设朝向面和预设底面之间的相交线。
在实际应用中,AR体验一般可以通过两种方式提供给用户:第一种是通过摄像机摄录外界环境,并在摄录的影像信息上叠加虚拟图像,然后将叠加后的图像传递到人眼;第二种是通过透镜将预设场景的光线传递至人眼,同时将虚拟图像的光线投射到透镜上,使得虚拟图像的光线融合到预设场景的光线中,再传递到人眼。
在S5中,具体来讲,以虚拟图像中的主要特征物为一个虚拟的玩偶的为例,若需要将该虚拟的玩偶叠加到桌面(该桌面与地面平行),则可以将该玩偶的贴合面设置为玩偶的底面,同时还将该玩偶的正向边设置为与桌面的边缘直线平行或者垂直,该正向边即是该玩偶的正面与底面的相交线,这样,在将一个虚拟的玩偶叠加到桌子的侧面后,该玩偶的底面即会贴合在桌面上,并且该玩偶的正向边会平行或垂直于桌面的边缘直线,这样,该玩偶看起来就像一个真实的玩偶被树立在桌子的桌面上,并且该玩偶的正面朝向桌面的实际边缘或者垂直于桌面的实际边缘,用户通过增强现实设备看到该玩偶,就不会立即察觉到该玩偶为虚拟的,玩偶的真实性有了明显的提高,从而减少或者避免了用户察觉到该主要特征物为虚拟的可能性。
可以看出,由于采用了在单目摄像机实时拍摄预设场景的过程中,确定当前关键帧中的平面以及每一个平面上最长的边缘直线,并在将虚拟图像叠加到当前关键帧中的第一平面时,将虚拟图像中主要特征物的贴合面与第一平面贴合,并且将主要特征物的正向边设置为与第一平面的边缘直线平行或者垂直的技术方案,所以无需预先对真实环境进行数字化处理即能够向用户提供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进行立体匹配后,即能够获得关键帧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 Image Segmentation)、超像素格算法(英文:superpixel lattices)等等,基于梯度下降法的超像素分割算法例如可以包括分水岭算法(英文:watershed)、均值漂移算法(英文:mean-shift)或简单线性迭代聚类算法(英文:simple linear iterativecluster;简称: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,设定此平面方程为第一平面方程。当然,在具体实施过程中,可以先计算出抽取的样本数据点的质心坐标,然后将其代入到第一超像素对应的平面的法向量中,从而获得更精确的平面方程,在此就不再赘述了。
在获得第一超像素关联的所有数据点到第一平面方程对应的平面的距离后,即可以将与第一平面方程对应的平面之间的距离小于第一设定值的数据点设为内点,以及将与第一平面方程对应的平面之间的距离大于等于第一设定值的数据点设为外点,这样,即能够从第一超像素关联的数据点中剔除外点,再根据剔除了外点的第一超像素关联的数据点,重新计算第一超像素对应的平面方程,具体的计算过程如前,在此就不再赘述了,设定此次计算所获得的平面方程为第二平面方程。由于本次计算第二平面方程时剔除了外点,从而能够有效地提高计算所获得的平面方程的精度,在此就不再赘述了。
当然,此时还可以再次计算第一超像素关联的数据点到第二平面方程的距离,将与该平面方程的距离小于第一设定值的数据点设为内点,且统计该子数据集中属于第二拟合平面的内点数目,并计算该子数据集内所有数据点到该平面方程的平均距离为以供后续步骤使用。
这样,循环执行上述从第一超像素关联的数据点中抽取样本数据点计算第一平面方程、以及剔除外点后再次计算第二平面方程的步骤,就能够得到多个第二平面方程;由于每次随机抽取的样本数据点均不一致,所以每次循环最终得到的第二平面方程均会存在一定的差异,一般说来,每次循环获得的第二平面方程的内点数目都是不相同的,因此,此时可以将N个第二平面方程中内点数目最多的确定为第一超像素对应的平面方程,也即该平面方程能够在最大程度上适用于第一超像素关联的所有数据点。
需要说明的是,若存在有多个第二平面方程的内点数目相同,则可以选择所有数据点到平面方程对应的平面的平均距离最小的平面,若还是存在有多个第二平面方程满足条件,则可以选择该子数据集内所有数据点到第二平面方程对应的平面的距离的方差最小的,当然,通过本实施例的介绍,本领域所属的技术人员还能够实际情况,选择其他合适的方法来选择第二平面方程,在此就不再赘述了。
需要说明的是,如果设定循环执行的次数越多,则最后获得的第二平面方程的准确性也就越高,但是如果循环执行的次数过多,就会导致计算量增大,从而会增加计算时间,因此本领域所属的技术人员在实际应用中,能够根据实际情况,设定循环执行的次数为一个合适数值,以满足实际情况的需要,在此就不再赘述了。
同理,可以计算获得当前关键帧中所有超像素各自对应的平面方程,从而能够确定当前关键帧中的平面。
在具体实施过程中,为了避免获得错误的平面方程,在获得每个超像素对应的平面方程之后,本发明实施例提供的实时图像叠加方法还包括:
针对每个超像素进行以下处理:将第一超像素的边缘投影到与当前关键帧相邻的N帧关键帧上,并计算N帧关键帧的每一关键帧中匹配的超像素的边缘的投影误差;在某一帧关键帧对应的投影误差小于第二预设值时,确定第一超像素对应的平面方程具有一个匹配;在第一超像素对应的平面方程具有超过第一预设数目的匹配时,确定第一超像素对应的平面方程为正确的方程。
具体来讲,以当前关键帧中的第一超像素为例,根据实时建立的点云数据以及第一超像素最终确定的平面方程,即能够获得第一超像素的边缘,从而能够将第一超像素的边缘投影到与当前关键帧相邻的N帧关键帧上,例如,在N为2时,则可以将第一超像素的边缘投影到与当前关键帧的前一关键帧和后一关键帧上,也可以将第一超像素的边缘投影到与当前关键帧的前两帧关键帧或后两帧关键帧上;在N为4时,则可以将第一超像素的边缘投影到当前关键帧的前两帧关键帧和后两帧关键帧上,也可以将第一超像素的边缘投影到当前关键帧的前三帧关键帧和后一关键帧上,还可以将第一超像素的边缘投影到与当前关键帧的前一关键帧和后三帧关键帧上,在此不做限制。本领域所属的技术人员能够根据实际情况,选择合适的关键帧进行投影,以满足实际情况的需要,在此就不再赘述了。
然后,判断每一帧的超像素的边缘的投影误差是否小于第二预设值,第二预设值例如可以是1个像素或者3个像素等等,在具体实施过程中,本领域所属的技术人员能够根据实际情况,设置第二预设值的具体数值,以满足实际情况的需要,在此就不再赘述了。
最后,在某一关键帧对应的投影误差小于第二预设值时,则确定第一超像素对应的平面方程具有一个匹配,这样第一超像素对应的平面方程具有超过第一预设数目的匹配时,则可以确定第一超像素对应的平面方程为正确的方程,也就是说,当前关键帧中超像素的平面方程能够适用于与相邻的关键帧中匹配的超像素,即表明当前关键帧中超像素的平面方程为正确的方程。
此时,相当于完成了对当前关键帧中每一个平面的稠密点云重建。
在通过S3确定当前关键帧中每个超像素对应的平面后,本发明实施例提供的实时图像叠加方法进入S4,即:根据投影结果以及每个超像素对应的平面,确定每个平面的边缘区域的数据点,并根据确定出的边缘区域的数据点,获得每个平面的边缘直线集合,并从边缘直线集合中确定出每个平面的最长边缘直线。
具体来讲,由于在S3中已经获得了当前关键帧的超像素分割结果,所以能够将当前关键帧分为多个超像素,从而能够确定出每个超像素的边缘区域,同时由于也获得了点云数据在当前关键帧上的投影结果,所以能够获得每个超像素的边缘区域上的投影点。这样,针对每个超像素,将其边缘区域上的投影点以逆投影的方式投影到点云数据中,从而获得每个超像素的边缘区域的数据点,每个数据点都包括三维坐标,这样,即能够通过霍夫变换(Hough Transform)直线检测方法或Freeman直线检测方法等等,来拟合出每个超像素边缘上的所有边缘直线,从而获得了每个超像素的边缘直线集合。
在具体实施过程中,为了提高边缘直线集合中直线的准确率,需要对边缘直线集合中的直线进行以下处理:以边缘直线集合中每条直线关联的数据点作为其对应的置信度,然后,去除边缘直线集合中置信度低于第一阈值的直线。例如,一条直线关联了5个数据点,则可以将其置信度设置为5,若另一条直线关联了15个数据点,则可以将其置信度设置为15,以此类推,直到完成对边缘直线集合中所有直线的置信度设置,然后,可以根据直线的置信度,去除边缘直线集合中置信度低于第一阈值的直线,在本实施例中,第一阈值可以是一个具体的数值,例如5、10等等,也可以是一个比例,例如排名靠后的40%、50%等等,在此不做限制。
对边缘直线集合的处理完成以后,为了保证向虚拟图像提供真实的、足够大的平面,本发明实施例提供的方法还包括:判断当前关键帧中的第二平面是否需要与第三平面融合,第三平面为当前关键帧中的平面或在前关键帧中的平面;在第二平面需要与第三平面融合时,根据第二平面和第三平面关联的所有数据点重新拟合平面方程;重新确定融合之后的平面的边缘区域的数据点;将第二平面的边缘直线集合中的边缘直线投影到融合之后的平面中,获得第一投影边缘直线集合,以及将第三平面的第二边缘直线集合中的边缘直线投影到融合之后的平面中,获得第二投影边缘直线集合,并计算第一投影边缘直线集合和第二投影边缘直线集合中直线两两之间的角度,若两条直线之间的夹角小于第二阈值,则融合两条直线。
在具体实施过程中,在获得关键帧中超像素对应的平面方程后,即能够将所有超像素叠加到同一张三维图中,可以理解的,随着单目摄像机对预设场景拍摄获得的视频信息越来越多,该三维地图也越来越完整;因此,针对当前关键帧中的第二平面,判断其是否需要和其他平面进行融合,具体可以通过以下方式进行判断:判断第二平面和第三平面对应的超像素是否相邻或者部分相交,并判断第二平面和第三平面对应的平面法向量夹角是否小于第三预设值,并判断两个平面方程的偏移量是否小于第四预设值。
具体来讲,首先,在对当前关键帧进行超像素分割后,即能够对分割后获得的每个超像素进行编号,并记录下每个超像素的位置,针对第二平面对应的第二超像素和第三平面对应的第三超像素,若第三超像素也属于当前关键帧,则可以通过编号以及超像素的位置来判断第二超像素和第三超像素是否相邻,若第三超像素不属于当前关键帧,则可以将第二超像素和第三超像素都映射到所建立的点云数据中,根据点云数据来判断第二超像素和第三超像素是否相邻或者是否部分相交;
然后,在超像素对应的平面方程确定以后,可以获得两个平面方程的法向量,例如,设定第三预设值例如为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毫米,通过本实施例的介绍,本领域所属的技术人员能够根据实际情况,将第四预设值设置为合适的数值,以满足实际情况的需要,在此就不再赘述了。
当然了,通过本实施例的介绍,本领域所属的技术人员还能够根据实际情况,设置其他合适的条件来判断两个平面方程是否应该融合,以满足实际情况的需要,在此就不再赘述了。
需要说明的是,上述的三个条件没有先后顺序,本实施例中仅仅是为了举例介绍,而不应当看做对本发明实施例提供的实时图像叠加方法的限制,本领域所属的技术人员能够根据实际情况,设置合适的执行顺序,以满足实际情况的需要。
在判断第二平面和第三平面是否需要融合之后,若第二平面和第三平面需要融合,则根据第二平面和第三平面关联的所有数据点重新拟合平面方程,具体的拟合过程在前述部分中已经进行了详细介绍,在此就不再赘述了。
在获得融合后的平面的平面方程后,即能够重新确定融合之后的平面的边缘区域的数据点,具体的确定过程在前述部分已经进行了详细介绍,在此就不再赘述了。
最后,由于第二平面与第三平面进行了融合,所以两个平面的边缘区域可能会部分消失,所以,可以将第二平面的边缘直线集合中的直线投影到融合之后的平面中,并去除未关联到融合之后的平面的边缘区域的数据点的直线,从而获得了第一投影边缘直线集合,同样地,将第三平面的边缘直线集合中的直线投影到融合之后的平面中,并去除未关联到融合之后的平面的边缘区域的数据点的直线,从而获得了第二投影边缘直线集合,此时,即可以计算第一投影边缘直线集合中第一直线和第二投影边缘直线集合中第二直线之间的夹角,若第一直线和第二直线之间的夹角小于第二阈值,则融合两条直线。在实际应用中,第二阈值可以是0.5°、1°等等,可以由本领域所属的技术人员根据实际情况进行设置,以满足实际情况的需要,在此就不再赘述了。融合的具体过程可以是根据两条直线关联的所有数据点,利用前述介绍的随机抽样一致性算法重新拟合直线方程,在此就不再赘述了。
需要说明的是,第二平面可以是当前关键帧中的任一平面,第三平面可以是当前关键帧或在前关键帧中的任一平面,第一直线可以是第一投影边缘直线集合中的任一直线,第二直线也可以是第二投影边缘直线集合中的任一直线,在此不做限制。
如此,直到当前关键帧中的所有平面都完成了融合,并且对应的投影边缘直线集合中的直线也完成了融合,即能够确定出每个平面的最长边缘直线。
可以看出,在本实施例中,由于采用了先获得每个平面的边缘直线集合,再判断平面是否需要融合,若需要融合,则平面融合之后仍然通过先获得的边缘直线集合来确定融合后的平面的边缘直线,相当于根据由超像素确定的平面的边缘直线作为最长边缘直线的基础,避免了融合过程中噪点的影响,提高了最长边缘直线的准确度,从而保证了将虚拟图像叠加到平面上的准确性。
在具体实施过程中,确定每个平面的最长边缘直线,可以是将该平面对应的边缘直线集合中长度最长和/或直线的两边预设范围内数据点数目之和的差最大的直线,作为最长边缘直线。
具体来讲,“直线的长度最长”是指该直线为边缘图像中的最长边,也即该直线为边缘图像对应的平面的最显著特征;“直线的两边预设范围内数据点数目之和的差最大”是指该直线的两边预设范围内,一边数据点相对较多,而另一边数据点相对较少,满足此条件的直线也是边缘图像对应的平面的最显著特征。
所以,同时满足预设条件中两个要求或者满足其中任一条件,都能够确认该直线代表了真实环境中平面的实际边缘。
当然,在实际应用中,通过本实施例的介绍,本领域所属的技术人员可以根据实际情况,通过其他方式来确定该边缘图像的最长边缘直线,以满足实际情况的需要。
在通过S4确定出每个平面的最长边缘直线后,本发明实施例提供的实时图像叠加方法进入S5,也即:在将虚拟图像叠加到当前关键帧中的第一平面上时,将虚拟图像中主要特征物的贴合面与第一平面贴合,且将主要特征物的正向边设置为与第一平面的最长边缘直线平行或者垂直,正向边为主要特征物的预设朝向面和预设底面之间的相交线。
在具体实施过程中,以虚拟图像中的主要特征物为一个虚拟的玩偶的为例,若需要将该虚拟的玩偶叠加到桌面(该桌面与地面平行),则可以将该玩偶的贴合面设置为玩偶的底面,同时还将该玩偶的正向边设置为与桌面的边缘直线平行或者垂直,该正向边即是该玩偶的正面与底面的相交线,这样,在将一个虚拟的玩偶叠加到桌子的侧面后,该玩偶的底面即会贴合在桌面上,并且该玩偶的正向边会平行或垂直于桌面的边缘直线,这样,该玩偶看起来就像一个真实的玩偶被树立在桌子的桌面上,并且该玩偶的正面朝向桌面的实际边缘或者垂直于桌面的实际边缘,用户通过增强现实设备看到该玩偶,就不会立即察觉到该玩偶为虚拟的,玩偶的真实性有了明显的提高,从而减少或者避免了用户察觉到该主要特征物为虚拟的可能性。
可以看出,由于采用了在单目摄像机实时拍摄预设场景的过程中,确定当前关键帧中的平面以及每一个平面上最长的边缘直线,并在将虚拟图像叠加到当前关键帧中的第一平面时,将虚拟图像中主要特征物的贴合面与第一平面贴合,并且将主要特征物的正向边设置为与第一平面的边缘直线平行或者垂直的技术方案,所以无需预先对真实环境进行数字化处理即能够向用户提供AR技术的视觉体验,减少了用户体验到AR技术的前置步骤,实时性较强,适用范围也大大提高,同时也结合了真实环境中平面的实际边缘,明显提高了虚拟图像中的主要特征物的真实性,从而减少或者避免了用户察觉到该主要特征物为虚拟的可能性,继而能够向用户提供沉浸式体验。
在具体实施过程中,在将虚拟图像叠加到当前关键帧的第一平面上时,若虚拟图像中主要特征物的大小远远超过了第一平面,例如,在一个小桌子上面叠加一个特别大虚拟的玩偶,也即桌子的桌面远远小于该玩偶的底面,则也容易导致用户察觉到该主要特征物为虚拟的。因此,为了避免这一缺陷的出现,在通过S4确定每一个平面上最长的边缘直线时,本发明实施例提供的实时图像叠加方法还包括:为每一个平面确定一个矩形,矩形的一边平行于其所在平面的最长边缘直线。同时,在将虚拟图像中主要特征物的贴合面与第一平面贴合时,本发明实施例提供的实时图像叠加方法还包括:根据第一平面对应的矩形和主要特征物的相对大小,调整主要特征物的大小。
在具体实施过程中,为每个平面确定一个矩形,具体可以包括以下步骤:
首先,根据每个平面对应的所有边缘点,确定每个平面的中心;例如,无论是否参与融合的平面,在其平面方程确定以后,其边缘数据点也即能够确定,从而根据边缘数据点的三维坐标计算得到该平面的中心;
接着,以每个平面的中心为中心,建立面积等于第三阈值的第一矩形,第一矩形的一边与其所在平面的最长边缘直线平行;第三阈值可以根据实际情况进行设定,例如可以根据虚拟图像中主要特征物的贴合面大小而定,如可以为贴合面的80%,或者120%等等,第一矩形的长宽比也可以根据实际情况进行设定,在此就不再赘述了;
其次,检测第一矩形与其对应的平面之间的共同面积;例如,由于第一矩形的起始面积是已知的,且其对应的平面的平面方程也是已知的,所以可以求得第一矩形与其对应的平面之间的共同面积,在此就不再赘述了;
然后,若共同面积与第一矩形之间的比值大于第四阈值,则以中心到第一矩形的四边的方向对第一矩形进行扩大,获得扩大后的第二矩形;第四阈值也是本领域所属的技术人员能够根据实际情况设置的,例如第四阈值可以为80%、90%等等,在本实施例中,若比值大于第四阈值,则可以按中心到第一矩形的四条边的四个方向对第一矩形进行扩大;
在本实施例中,可以按照如下两种方式中的任一种对第一矩形进行扩大:
1、按中心到第一矩形的四条边的方向分别进行扩大:每个方向扩大后重新检测共同面积与第一矩形之间的比值;若重新检测后的比值大于第四阈值,则在对应的方向上继续扩大,若比值小于第四阈值,则在对应的方向上停止扩大,并在其他的方向上扩大;直到每个方向都停止扩大,将最后获得的矩形作为第二矩形;
2、每次扩展第一矩形相互平行的两边:每次扩大后重新检测共同面积与第一矩形之间的比值;若重新检测后的比值大于第四阈值,则在对应的方向上继续扩大,若比值小于第四阈值,则在对应的方向上停止扩大,并在其他的方向上扩大;直到每个方向都停止扩大,将最后获得的矩形作为第二矩形。
需要说明的是,将第四阈值设置为小于100%,是为了求出平面中的最大矩形,保证虚拟图像中的主要特征物能够以最大的面积或者体积展示给用户,从而能够向用户展示更多的细节。
最后,将面积最大的第二矩形作为每个平面对应的矩形,该矩形即能够用于叠加虚拟图像中的主要特征物,在此就不再赘述了。
在确定每个平面对应的矩形后,在需要将虚拟图像叠加到当前关键帧中的第一平面上时,即能够根据第一平面对应的矩形的大小,调整虚拟图像的大小。
具体来讲,虚拟图像中主要特征物的贴合面也是具有一定大小的,若贴合面小于矩形,则可以按照虚拟图像的原始大小,将主要特征物贴合在该平面的矩形上,也可以将虚拟图像的原始大小按预设比例变大,使得主要特征物在变大的同时,主要特征物的贴合面不大于该平面的矩形;若贴合面大于矩形,则可以按照虚拟图像按比例变小,使得主要特征物的贴合面小于或者等于矩形,当然,变小的比例或者变大的比例需要设定一个阈值,否则会影响主要特征物的显示,若主要特征物的贴合面按最小值进行变小调整后,仍然大于或者远远大于该平面的矩形面,则可以选择其他平面进行图像叠加,在此就不再赘述了。
这样,在将虚拟图像中的主要特征物的贴合面贴合在平面的矩形上时,不会由于贴合面大于或者远远大于平面而使得主要特征物看起来是悬浮在空中,使得叠加的虚拟图像中主要特征物的真实性进一步提高,从而进一步减少或者避免了用户察觉到该主要特征物为虚拟的可能性,继而能够更好地向用户提供沉浸式体验。
可以看出,由于采用了确定当前关键帧中的平面中的矩形,并根据虚拟图像中主要特征物的贴合面与矩形的相对大小,调整主要特征物的大小的技术方案,使得叠加的虚拟图像中主要特征物的真实性进一步提高,从而进一步减少或者避免了用户察觉到该主要特征物为虚拟的可能性,继而能够更好地向用户提供沉浸式体验。
基于同一发明构思,本发明实施例还提供一种用于增强现实的实时图像叠加装置,请参考图3,图3为本发明实施例提供的实时图像叠加装置的模块图,如图3所示,该实时图像叠加装置包括:
关键帧确定单元301,用于获取一单目摄像机实时拍摄预设场景时的视频信息,并从视频信息中确定出关键帧;
点云数据建立单元302,用于根据当前关键帧和当前关键帧的在前关键帧实时建立点云数据,当前关键帧和在前关键帧之间的视差角大于预设视差角,点云数据中的每个数据点包含三维坐标;
平面确定单元303,将当前关键帧对应的点云数据投影到当前关键帧上,根据投影结果以及当前关键帧的超像素分割结果,确定当前关键帧中的每个超像素对应的平面;
边缘直线确定单元304,用于根据投影结果以及每个超像素对应的平面,确定每个平面的边缘区域的数据点,并根据确定出的边缘区域的数据点,获得每个平面的边缘直线集合,并从边缘直线集合中确定出每个平面的最长边缘直线;
图像叠加单元305,用于在将虚拟图像叠加到当前关键帧中的第一平面上时,将虚拟图像中主要特征物的贴合面与第一平面贴合,且将主要特征物的正向边设置为与第一平面的最长边缘直线平行或者垂直,正向边为主要特征物的预设朝向面和预设底面之间的相交线。
在具体实施过程中,平面确定单元303具体用于根据投影点与当前关键帧中每个超像素的距离,建立与投影点对应的数据点与当前关键帧中每个超像素之间的关联,并根据每个超像素关联的数据点,拟合每个超像素对应的平面方程。
在具体实施过程中,边缘直线确定单元304具体用于将边缘直线集合中长度最长和/或直线的两边预设范围内数据点数目之和的差最大的直线,作为最长边缘直线。
在具体实施过程中,边缘直线确定单元304具体还用于在将边缘直线集合中长度最长和/或直线的两边预设范围内数据点数目之和的差最大的直线,作为最长边缘直线之前,以边缘直线集合中每条直线关联的数据点作为其对应的置信度,并去除边缘直线集合中置信度低于第一阈值的直线。
在具体实施过程中,平面确定单元303具体还用于在在确定当前关键帧中的每个超像素对应的平面之后,在从边缘直线集合中确定出每个平面的最长边缘直线之前,判断当前关键帧中的第二平面是否需要与第三平面融合,第三平面为当前关键帧中的平面或在前关键帧中的平面,并在第二平面需要与第三平面融合时,根据第二平面和第三平面关联的所有数据点重新拟合平面方程,并重新确定融合之后的平面的边缘区域的数据点,并将第二平面的边缘直线集合中的直线投影到融合之后的平面中,并去除未关联到融合之后的平面的边缘区域的数据点的直线,获得第一投影边缘直线集合,以及将第三平面的第二边缘直线集合中的直线投影到融合之后的平面中,并去除未关联到融合之后的平面的边缘区域的数据点的直线,获得第二投影边缘直线集合,并计算第一投影边缘直线集合中第一直线和第二投影边缘直线集合中第二直线之间的夹角,若第一直线和第二直线之间的夹角小于第二阈值,则融合两条直线。
在具体实施过程中,实时图像叠加装置还包括矩形确定单元306,矩形确定单元306用于在边缘直线确定单元304从边缘直线集合中确定出每个平面的最长边缘直线时,为每个平面确定一个矩形,矩形的一边平行于其所在平面的最长边缘直线;
图像叠加单元305具体还用于在将虚拟图像叠加到当前关键帧中的第一平面上时,根据第一平面对应的矩形和主要特征物的相对大小,调整主要特征物的大小。
在具体实施过程中,矩形确定单元306具体用于根据每个平面对应的所有边缘点,确定每个平面的中心,并以每个平面的中心为中心,建立面积等于第三阈值的第一矩形,并检测第一矩形与其对应的平面之间的共同面积,并若共同面积与第一矩形之间的比值大于第四阈值,则以中心到第一矩形的四边的方向对第一矩形进行扩大,获得扩大后的第二矩形,并将面积最大的第二矩形作为每个平面的矩形。
本发明实施例中的一个或者多个技术方案,至少具有如下技术效果或者优点:
1、由于采用了在单目摄像机实时拍摄预设场景的过程中,确定当前关键帧中的平面以及每一个平面上最长的边缘直线,并在将虚拟图像叠加到当前关键帧中的第一平面时,将虚拟图像中主要特征物的贴合面与第一平面贴合,并且将主要特征物的正向边设置为与第一平面的边缘直线平行或者垂直的技术方案,所以无需预先对真实环境进行数字化处理即能够向用户提供AR技术的视觉体验,减少了用户体验到AR技术的前置步骤,实时性较强,适用范围也大大提高,同时也结合了真实环境中平面的实际边缘,明显提高了虚拟图像中的主要特征物的真实性,从而减少或者避免了用户察觉到该主要特征物为虚拟的可能性,继而能够向用户提供沉浸式体验。
2、由于采用了确定当前关键帧中的平面中的矩形,并根据虚拟图像中主要特征物的贴合面与矩形的相对大小,调整主要特征物的大小的技术方案,使得叠加的虚拟图像中主要特征物的真实性进一步提高,从而进一步减少或者避免了用户察觉到该主要特征物为虚拟的可能性,继而能够更好地向用户提供沉浸式体验。
本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。
本说明书(包括任何附加权利要求、摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
本发明并不局限于前述的具体实施方式。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。
Claims (14)
1.一种用于增强现实的实时图像叠加方法,其特征在于,包括:
获取一单目摄像机实时拍摄预设场景时的视频信息,并从所述视频信息中确定出关键帧;
根据当前关键帧和所述当前关键帧的在前关键帧实时建立点云数据,所述当前关键帧和所述在前关键帧之间的视差角大于预设视差角,所述点云数据中的每个数据点包含三维坐标;
将所述当前关键帧对应的点云数据投影到所述当前关键帧上,根据投影结果以及所述当前关键帧的超像素分割结果,确定所述当前关键帧中的每个超像素对应的平面;
根据所述投影结果以及所述每个超像素对应的平面,确定每个平面的边缘区域的数据点,并根据确定出的边缘区域的数据点,获得每个平面的边缘直线集合,并从所述边缘直线集合中确定出每个平面的最长边缘直线;
在将虚拟图像叠加到所述当前关键帧中的第一平面上时,将所述虚拟图像中主要特征物的贴合面与所述第一平面贴合,且将所述主要特征物的正向边设置为与所述第一平面的最长边缘直线平行或者垂直,所述正向边为所述主要特征物的预设朝向面和预设底面之间的相交线。
2.如权利要求1所述的实时图像叠加方法,其特征在于,所述根据投影结果以及所述当前关键帧的超像素分割结果,确定所述当前关键帧中的平面,具体包括:
根据投影点与当前关键帧中每个超像素的距离,建立与投影点对应的数据点与当前关键帧中每个超像素之间的关联;
根据每个超像素关联的数据点,拟合每个超像素对应的平面方程。
3.如权利要求1所述的实时图像叠加方法,其特征在于,所述从所述边缘直线集合中确定出每个平面的最长边缘直线,具体为:
将所述边缘直线集合中长度最长和/或直线的两边预设范围内数据点数目之和的差最大的直线,作为所述最长边缘直线。
4.如权利要求3所述的实时图像叠加方法,其特征在于,在所述将所述边缘直线集合中长度最长和/或直线的两边预设范围内数据点数目之和的差最大的直线,作为所述最长边缘直线之前,所述方法还包括:
以所述边缘直线集合中每条直线关联的数据点作为其对应的置信度;
去除所述边缘直线集合中置信度低于第一阈值的直线。
5.如权利要求1所述的实时图像叠加方法,其特征在于,在所述获得每个平面的边缘直线集合之后,在所述从所述边缘直线集合中确定出每个平面的最长边缘直线之前,所述方法还包括:
判断所述当前关键帧中的第二平面是否需要与第三平面融合,所述第三平面为所述当前关键帧中的平面或所述在前关键帧中的平面;
在所述第二平面需要与所述第三平面融合时,根据第二平面和第三平面关联的所有数据点重新拟合平面方程;
重新确定融合之后的平面的边缘区域的数据点;
将所述第二平面的边缘直线集合中的直线投影到所述融合之后的平面中,并去除未关联到所述融合之后的平面的边缘区域的数据点的直线,获得第一投影边缘直线集合,以及将所述第三平面的第二边缘直线集合中的直线投影到所述融合之后的平面中,并去除未关联到所述融合之后的平面的边缘区域的数据点的直线,获得第二投影边缘直线集合,并计算所述第一投影边缘直线集合中第一直线和所述第二投影边缘直线集合中第二直线之间的夹角,若所述第一直线和所述第二直线之间的夹角小于第二阈值,则融合两条直线。
6.如权利要求1-5中任一权项所述的实时图像叠加方法,其特征在于,
在所述从所述边缘直线集合中确定出每个平面的最长边缘直线时,所述方法还包括:为每个平面确定一个矩形,所述矩形的一边平行于其所在平面的最长边缘直线;
在所述将虚拟图像叠加到所述当前关键帧中的第一平面上时,所述方法还包括:根据所述第一平面对应的矩形和所述主要特征物的相对大小,调整所述主要特征物的大小。
7.如权利要求6所述的实时图像叠加方法,其特征在于,所述为每个平面确定一个矩形,具体包括:
根据每个平面对应的所有边缘点,确定每个平面的中心;
以所述每个平面的中心为中心,建立面积等于第三阈值的第一矩形;
检测所述第一矩形与其对应的平面之间的共同面积;
若所述共同面积与所述第一矩形之间的比值大于第四阈值,则以所述中心到所述第一矩形的四边的方向对所述第一矩形进行扩大,获得扩大后的第二矩形;
将面积最大的第二矩形作为每个平面的矩形。
8.一种用于增强现实的实时图像叠加装置,其特征在于,包括:
关键帧确定单元,用于获取一单目摄像机实时拍摄预设场景时的视频信息,并从所述视频信息中确定出关键帧;
点云数据建立单元,用于根据当前关键帧和所述当前关键帧的在前关键帧实时建立点云数据,所述当前关键帧和所述在前关键帧之间的视差角大于预设视差角,所述点云数据中的每个数据点包含三维坐标;
平面确定单元,将所述当前关键帧对应的点云数据投影到所述当前关键帧上,根据投影结果以及所述当前关键帧的超像素分割结果,确定所述当前关键帧中的每个超像素对应的平面;
边缘直线确定单元,用于根据所述投影结果以及所述每个超像素对应的平面,确定每个平面的边缘区域的数据点,并根据确定出的边缘区域的数据点,获得每个平面的边缘直线集合,并从所述边缘直线集合中确定出每个平面的最长边缘直线;
图像叠加单元,用于在将虚拟图像叠加到所述当前关键帧中的第一平面上时,将所述虚拟图像中主要特征物的贴合面与所述第一平面贴合,且将所述主要特征物的正向边设置为与所述第一平面的最长边缘直线平行或者垂直,所述正向边为所述主要特征物的预设朝向面和预设底面之间的相交线。
9.如权利要求8所述的实时图像叠加装置,其特征在于,所述平面确定单元具体用于根据投影点与当前关键帧中每个超像素的距离,建立与投影点对应的数据点与当前关键帧中每个超像素之间的关联,并根据每个超像素关联的数据点,拟合每个超像素对应的平面方程。
10.如权利要求8所述的实时图像叠加装置,其特征在于,所述边缘直线确定单元具体用于将所述边缘直线集合中长度最长和/或直线的两边预设范围内数据点数目之和的差最大的直线,作为所述最长边缘直线。
11.如权利要求10所述的实时图像叠加装置,其特征在于,所述边缘直线确定单元具体还用于在所述将所述边缘直线集合中长度最长和/或直线的两边预设范围内数据点数目之和的差最大的直线,作为所述最长边缘直线之前,以所述边缘直线集合中每条直线关联的数据点作为其对应的置信度,并去除所述边缘直线集合中置信度低于第一阈值的直线。
12.如权利要求8所述的实时图像叠加装置,其特征在于,所述平面确定单元具体还用于在获得每个平面的边缘直线集合之后,在所述从所述边缘直线集合中确定出每个平面的最长边缘直线之前,判断所述当前关键帧中的第二平面是否需要与第三平面融合,所述第三平面为所述当前关键帧中的平面或所述在前关键帧中的平面,并在所述第二平面需要与所述第三平面融合时,根据第二平面和第三平面关联的所有数据点重新拟合平面方程,并重新确定融合之后的平面的边缘区域的数据点,并将所述第二平面的边缘直线集合中的直线投影到所述融合之后的平面中,并去除未关联到所述融合之后的平面的边缘区域的数据点的直线,获得第一投影边缘直线集合,以及将所述第三平面的第二边缘直线集合中的直线投影到所述融合之后的平面中,并去除未关联到所述融合之后的平面的边缘区域的数据点的直线,获得第二投影边缘直线集合,并计算所述第一投影边缘直线集合中第一直线和所述第二投影边缘直线集合中第二直线之间的夹角,若所述第一直线和所述第二直线之间的夹角小于第二阈值,则融合两条直线。
13.如权利要求8-12中任一权项所述的实时图像叠加装置,其特征在于,
所述实时图像叠加装置还包括矩形确定单元,所述矩形确定单元用于在所述边缘直线确定单元从所述边缘直线集合中确定出每个平面的最长边缘直线时,为每个平面确定一个矩形,所述矩形的一边平行于其所在平面的最长边缘直线;
所述图像叠加单元具体还用于在将虚拟图像叠加到所述当前关键帧中的第一平面上时,根据所述第一平面对应的矩形和所述主要特征物的相对大小,调整所述主要特征物的大小。
14.如权利要求13所述的实时图像叠加装置,其特征在于,所述矩形确定单元具体用于根据每个平面对应的所有边缘点,确定每个平面的中心,并以所述每个平面的中心为中心,建立面积等于第三阈值的第一矩形,并检测所述第一矩形与其对应的平面之间的共同面积,并若所述共同面积与所述第一矩形之间的比值大于第四阈值,则以所述中心到所述第一矩形的四边的方向对所述第一矩形进行扩大,获得扩大后的第二矩形,并将面积最大的第二矩形作为每个平面的矩形。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610768089.5A CN107798703B (zh) | 2016-08-30 | 2016-08-30 | 一种用于增强现实的实时图像叠加方法以及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610768089.5A CN107798703B (zh) | 2016-08-30 | 2016-08-30 | 一种用于增强现实的实时图像叠加方法以及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107798703A CN107798703A (zh) | 2018-03-13 |
CN107798703B true CN107798703B (zh) | 2021-04-30 |
Family
ID=61528053
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610768089.5A Active CN107798703B (zh) | 2016-08-30 | 2016-08-30 | 一种用于增强现实的实时图像叠加方法以及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107798703B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111223114B (zh) * | 2020-01-09 | 2020-10-30 | 北京达佳互联信息技术有限公司 | 一种图像区域的分割方法、装置及电子设备 |
CN111290582B (zh) * | 2020-02-29 | 2021-09-21 | 华南理工大学 | 一种基于改进型直线检测的投影交互区域定位方法 |
CN116336953B (zh) * | 2023-05-30 | 2023-08-11 | 武汉工程大学 | 一种穿孔模型半径、深度测量***及方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101625768B (zh) * | 2009-07-23 | 2011-11-09 | 东南大学 | 一种基于立体视觉的三维人脸重建方法 |
JP2011134343A (ja) * | 2011-02-24 | 2011-07-07 | Nintendo Co Ltd | 画像処理プログラム、画像処理装置、画像処理システム、および画像処理方法 |
CN102521859B (zh) * | 2011-10-19 | 2014-11-05 | 中兴通讯股份有限公司 | 基于人工标志的增强现实方法及装置 |
CN102821323B (zh) * | 2012-08-01 | 2014-12-17 | 成都理想境界科技有限公司 | 基于增强现实技术的视频播放方法、***及移动终端 |
CN103035003B (zh) * | 2012-12-11 | 2015-09-09 | 华为技术有限公司 | 一种实现增强现实的方法及装置 |
CN103366610B (zh) * | 2013-07-03 | 2015-07-22 | 央数文化(上海)股份有限公司 | 基于增强现实的三维互动学习***及方法 |
CN104915965A (zh) * | 2014-03-14 | 2015-09-16 | 华为技术有限公司 | 一种摄像机跟踪方法及装置 |
CN103942824B (zh) * | 2014-05-15 | 2017-01-11 | 厦门大学 | 一种三维点云直线特征提取方法 |
CN104134234B (zh) * | 2014-07-16 | 2017-07-25 | 中国科学技术大学 | 一种全自动的基于单幅图像的三维场景构建方法 |
CN104915986B (zh) * | 2015-06-26 | 2018-04-17 | 北京航空航天大学 | 一种实体三维模型自动建模方法 |
CN105046710A (zh) * | 2015-07-23 | 2015-11-11 | 北京林业大学 | 基于深度图分割与代理几何体的虚实碰撞交互方法及装置 |
-
2016
- 2016-08-30 CN CN201610768089.5A patent/CN107798703B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN107798703A (zh) | 2018-03-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107798704B (zh) | 一种用于增强现实的实时图像叠加方法及装置 | |
CN107798702B (zh) | 一种用于增强现实的实时图像叠加方法以及装置 | |
CN111066065B (zh) | 用于混合深度正则化的***和方法 | |
US10269177B2 (en) | Headset removal in virtual, augmented, and mixed reality using an eye gaze database | |
US7573475B2 (en) | 2D to 3D image conversion | |
Feng et al. | Object-based 2D-to-3D video conversion for effective stereoscopic content generation in 3D-TV applications | |
CN109660783B (zh) | 虚拟现实视差校正 | |
CN106254854B (zh) | 三维图像的获得方法、装置及*** | |
US20070279412A1 (en) | Infilling for 2D to 3D image conversion | |
US11151787B2 (en) | Generation device, generation method and storage medium for three-dimensional model from object images and structure images | |
Cheng et al. | Spatio-temporally consistent novel view synthesis algorithm from video-plus-depth sequences for autostereoscopic displays | |
CN107358609B (zh) | 一种用于增强现实的图像叠加方法及装置 | |
CN104010180B (zh) | 三维视频滤波方法和装置 | |
US11798233B2 (en) | Generation device, generation method and storage medium for three-dimensional model that remove a portion of the three-dimensional model | |
Ceulemans et al. | Robust multiview synthesis for wide-baseline camera arrays | |
CN106170086B (zh) | 绘制三维图像的方法及其装置、*** | |
CN107798703B (zh) | 一种用于增强现实的实时图像叠加方法以及装置 | |
US9165393B1 (en) | Measuring stereoscopic quality in a three-dimensional computer-generated scene | |
US20150116317A1 (en) | Apparatus and computer-implemented method for generating a three-dimensional scene and non-transitory tangible computer readable medium thereof | |
Angot et al. | A 2D to 3D video and image conversion technique based on a bilateral filter | |
Ke et al. | Towards real-time, multi-view video stereopsis | |
CN104463958A (zh) | 基于视差图融合的三维超分辨率方法 | |
De Sorbier et al. | Augmented reality for 3D TV using depth camera input | |
Louis et al. | Rendering stereoscopic augmented reality scenes with occlusions using depth from stereo and texture mapping | |
CN111915740A (zh) | 一种快速的三维图像获取方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |