CN107798704A - 一种用于增强现实的实时图像叠加方法及装置 - Google Patents
一种用于增强现实的实时图像叠加方法及装置 Download PDFInfo
- Publication number
- CN107798704A CN107798704A CN201610770762.9A CN201610770762A CN107798704A CN 107798704 A CN107798704 A CN 107798704A CN 201610770762 A CN201610770762 A CN 201610770762A CN 107798704 A CN107798704 A CN 107798704A
- Authority
- CN
- China
- Prior art keywords
- plane
- rectangle
- key frame
- current key
- point
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
-
- 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/20112—Image segmentation details
- G06T2207/20152—Watershed segmentation
Abstract
本发明公开了一种用于增强现实的实时图像叠加方法及装置,所述方法包括:获取一单目摄像机实时拍摄预设场景时的视频信息,并从视频信息中确定出关键帧;根据当前关键帧和当前关键帧的在前关键帧实时建立点云数据;将当前关键帧对应的点云数据投影到当前关键帧上,并根据投影结果以及当前帧的超像素分割结果,确定当前关键帧中的平面,确定每一个平面上最长的边缘直线;在将虚拟图像叠加到当前关键帧中的第一平面上时,将虚拟图像中主要特征物的贴合面与第一平面贴合,且将主要特征物的正向边设置为与第一平面的边缘直线平行或者垂直。无需预先对真实环境进行数字化处理即能够向用户提供AR技术的视觉体验,实时性较强。
Description
技术领域
本发明涉及增强现实领域,尤其涉及一种用于增强现实的实时图像叠加方法及装置。
背景技术
增强现实(英文:Augmented Reality;简称:AR)是近年来机器视觉领域备受关注的热点研究之一,目的是在AR设备的屏幕上所呈现的由摄像机采集的真实环境中,通过特殊的计算机图像和视频处理算法,把虚拟图像叠加到真实环境的图像上,使得用户能够获得全新的超越现实的感官体验。在把虚拟图像叠加到真实环境的图像上时,需要获得真实环境的数字化模型,才能够保证虚拟图像叠加时的准确性。
目前,对真实环境的数字化处理一般需要预先处理完成,例如,先通过激光式扫描仪或照相式扫描仪建立点云数据,再对点云数据进行平面检测等相应的处理,对真实环境的数字化处理完成之后,才能够提供给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,设定此平面方程为第一平面方程。当然,在具体实施过程中,可以先计算出抽取的样本数据点的质心坐标,然后将其代入到第一超像素对应的平面的法向量中,从而获得更精确的平面方程,在此就不再赘述了。
接着,计算第一超像素关联的数据点到第一平面方程对应的平面的距离,例如,以第一超像素关联的数据点中的一点Pj(Xj,Yj,Zj)为例,Pj到第一平面方程对应的平面的距离为:
在获得第一超像素关联的所有数据点到第一平面方程对应的平面的距离后,即可以将与第一平面方程对应的平面之间的距离小于第一设定值的数据点设为内点,以及将与第一平面方程对应的平面之间的距离大于等于第一设定值的数据点设为外点,这样,即能够从第一超像素关联的数据点中剔除外点,再根据剔除了外点的第一超像素关联的数据点,重新计算第一超像素对应的平面方程,具体的计算过程如前,在此就不再赘述了,设定此次计算所获得的平面方程为第二平面方程。由于本次计算第二平面方程时剔除了外点,从而能够有效地提高计算所获得的平面方程的精度,在此就不再赘述了。
当然,此时还可以再次计算第一超像素关联的数据点到第二平面方程的距离,将与该平面方程的距离小于第一设定值的数据点设为内点,且统计该子数据集中属于第二拟合平面的内点数目,并计算该子数据集内所有数据点到该平面方程的平均距离为以供后续步骤使用。
这样,循环执行上述从第一超像素关联的数据点中抽取样本数据点计算第一平面方程、以及剔除外点后再次计算第二平面方程的步骤,就能够得到多个第二平面方程;由于每次随机抽取的样本数据点均不一致,所以每次循环最终得到的第二平面方程均会存在一定的差异,一般说来,每次循环获得的第二平面方程的内点数目都是不相同的,因此,此时可以将N个第二平面方程中内点数目最多的确定为第一超像素对应的平面方程,也即该平面方程能够在最大程度上适用于第一超像素关联的所有数据点。
需要说明的是,若存在有多个第二平面方程的内点数目相同,则可以选择所有数据点到平面方程对应的平面的平均距离最小的平面,若还是存在有多个第二平面方程满足条件,则可以选择该子数据集内所有数据点到第二平面方程对应的平面的距离的方差最小的,当然,通过本实施例的介绍,本领域所属的技术人员还能够实际情况,选择其他合适的方法来选择第二平面方程,在此就不再赘述了。
需要说明的是,如果设定循环执行的次数越多,则最后获得的第二平面方程的准确性也就越高,但是如果循环执行的次数过多,就会导致计算量增大,从而会增加计算时间,因此本领域所属的技术人员在实际应用中,能够根据实际情况,设定循环执行的次数为一个合适数值,以满足实际情况的需要,在此就不再赘述了。
同理,可以计算获得当前关键帧中所有超像素各自对应的平面方程,从而能够确定当前关键帧中的平面。
在具体实施过程中,为了避免获得错误的平面方程,在获得每个超像素对应的平面方程之后,本发明实施例提供的实时图像叠加方法还包括:
针对每个超像素进行以下处理:将第一超像素的边缘投影到与当前关键帧相邻的N帧关键帧上,并计算N帧关键帧的每一关键帧中匹配的超像素的边缘的投影误差;在某一帧关键帧对应的投影误差小于第二预设值时,确定第一超像素对应的平面方程具有一个匹配;在第一超像素对应的平面方程具有超过第一预设数目的匹配时,确定第一超像素对应的平面方程为正确的方程。
具体来讲,以当前关键帧中的第一超像素为例,根据实时建立的点云数据以及第一超像素最终确定的平面方程,即能够获得第一超像素的边缘,从而能够将第一超像素的边缘投影到与当前关键帧相邻的N帧关键帧上,例如,在N为2时,则可以将第一超像素的边缘投影到与当前关键帧的前一关键帧和后一关键帧上,也可以将第一超像素的边缘投影到与当前关键帧的前两帧关键帧或后两帧关键帧上;在N为4时,则可以将第一超像素的边缘投影到当前关键帧的前两帧关键帧和后两帧关键帧上,也可以将第一超像素的边缘投影到当前关键帧的前三帧关键帧和后一关键帧上,还可以将第一超像素的边缘投影到与当前关键帧的前一关键帧和后三帧关键帧上,在此不做限制。本领域所属的技术人员能够根据实际情况,选择合适的关键帧进行投影,以满足实际情况的需要,在此就不再赘述了。
接着,计算每一关键帧中匹配的超像素的边缘的投影误差,可以通过如下的公式进行计算:其中,F(Tj,pu)为第j关键帧中Pu对应的投影点,为第j关键帧中超像素si距离投影点F(Tj,pu)最近的像素。
然后,判断每一帧的超像素的边缘的投影误差是否小于第二预设值,第二预设值例如可以是1个像素或者3个像素等等,在具体实施过程中,本领域所属的技术人员能够根据实际情况,设置第二预设值的具体数值,以满足实际情况的需要,在此就不再赘述了。
最后,在某一关键帧对应的投影误差小于第二预设值时,则确定第一超像素对应的平面方程具有一个匹配,这样第一超像素对应的平面方程具有超过第一预设数目的匹配时,则可以确定第一超像素对应的平面方程为正确的方程,也就是说,当前关键帧中超像素的平面方程能够适用于与相邻的关键帧中匹配的超像素,即表明当前关键帧中超像素的平面方程为正确的方程。
此时,相当于完成了对当前关键帧中每一个平面的稠密点云重建。
在通过S3确定当前关键帧中的平面后,本发明实施例提供的实时图像叠加方法进入S4,即:根据当前关键帧中每一个平面对应的点云数据,确定每一个平面上最长的边缘直线。
具体来讲,以当前关键帧中的第二平面为例进行说明,S4具体可以包括:
S41:将第二平面对应的点云数据按投影到第一预设平面的方式转换为二维坐标,获得第一平面图像,第一预设平面与第二平面平行;
例如,可以先确定第一预设平面,该第一预设平面与第二平面平行,在第二平面的平面方程已知的情况下,可以很容易确定第一预设平面,在此不再赘述,然后,将第二平面对应的点云数据中的所有数据点投影到第一预设平面上,这样,就将第二平面对应的点云数据中的数据点的三维坐标转换为了二维坐标,从而获得了第一平面图像;
S42:对第一平面图像进行形态学处理,并根据处理结果确定第一平面图像的边缘图像;
在具体实施过程中,可以是对第一平面图像进行膨胀腐蚀等处理,去除该二维图像中的毛刺,再对处理后的第一平面图像进行边缘检测,例如可以通过具有多个方向的多方位形态学结构元素,应用基本形态运算,得到多个方向的边缘检测结果,再把这些结果进行归一化运算、加权求和,即能够得到最终的图像边缘,方向的数目选取可以由本领域所属的技术人员根据实际情况进行设置,以满足实际情况的需要,在此就不再赘述了。
S43:对边缘图像进行边沿直线检测,并按预设条件选择直线;
在具体实施过程中,可以是对边缘图像通过霍夫变换(英文:Hough Transform)算法、基于Freeman(人名)准则的直线检测算法或尺蠖蠕行算法(英文:cankerwormcrawlalgorithm)等等,从边缘图像中确定出直线,由于边缘图像中的边沿直线有多条,所以需要按照预设条件来选择直线。
在本实施例中,该预设条件可以是:直线的长度最长和/或直线的两边预设范围内数据点数目之和的差最大。具体来讲,“直线的长度最长”是指该直线为边缘图像中的最长边,也即该直线为边缘图像对应的平面的最显著特征;“直线的两边预设范围内数据点数目之和的差最大”是指该直线的两边预设范围内,一边数据点相对较多,而另一边数据点相对较少,满足此条件的直线也是边缘图像对应的平面的最显著特征。
所以,同时满足预设条件中两个要求或者满足其中任一条件,都能够确认该直线代表了真实环境中平面的实际边缘。
当然,在实际应用中,通过本实施例的介绍,本领域所属的技术人员可以根据实际情况,通过其他方式来确定该边缘图像的最长边缘直线,以满足实际情况的需要。
S44:确定满足预设条件的直线为边缘直线,并将满足预设条件的直线按逆投影的方式投影到第二平面中。
在具体实施过程中,在通过S43确定边缘直线并根据预设条件对边缘直线进行判断后,即能够确定满足预设条件的直线为边缘直线,此时即能够通过逆投影的方式,将该边缘直线逆投影到第二平面对应的点云数据中,从而能够确定第二平面的实际边缘直线。
针对当前关键帧中的每一个平面,重复执行上述的步骤S41-S44,即能够确定每一个平面上最长的边缘直线,在此就不再详细介绍了。
在通过S4确定每一个平面上最长的边缘直线后,本发明实施例提供的实时图像叠加方法进入S5,即:在将虚拟图像叠加到当前关键帧中的第一平面上时,将虚拟图像中主要特征物的贴合面与第一平面贴合,且将主要特征物的正向边设置为与第一平面的边缘直线平行或者垂直,正向边为主要特征物的预设朝向面和预设底面之间的相交线。
在具体实施过程中,以虚拟图像中的主要特征物为一个虚拟的玩偶的为例,若需要将该虚拟的玩偶叠加到桌面(该桌面与地面平行),则可以将该玩偶的贴合面设置为玩偶的底面,同时还将该玩偶的正向边设置为与桌面的边缘直线平行或者垂直,该正向边即是该玩偶的正面与底面的相交线,这样,在将一个虚拟的玩偶叠加到桌子的侧面后,该玩偶的底面即会贴合在桌面上,并且该玩偶的正向边会平行或垂直于桌面的边缘直线,这样,该玩偶看起来就像一个真实的玩偶被树立在桌子的桌面上,并且该玩偶的正面朝向桌面的实际边缘或者垂直于桌面的实际边缘,用户通过增强现实设备看到该玩偶,就不会立即察觉到该玩偶为虚拟的,玩偶的真实性有了明显的提高,从而减少或者避免了用户察觉到该主要特征物为虚拟的可能性。
可以看出,由于采用了在单目摄像机实时拍摄预设场景的过程中,确定当前关键帧中的平面以及每一个平面上最长的边缘直线,并在将虚拟图像叠加到当前关键帧中的第一平面时,将虚拟图像中主要特征物的贴合面与第一平面贴合,并且将主要特征物的正向边设置为与第一平面的边缘直线平行或者垂直的技术方案,所以无需预先对真实环境进行数字化处理即能够向用户提供AR技术的视觉体验,减少了用户体验到AR技术的前置步骤,实时性较强,适用范围也大大提高,同时也结合了真实环境中平面的实际边缘,明显提高了虚拟图像中的主要特征物的真实性,从而减少或者避免了用户察觉到该主要特征物为虚拟的可能性,继而能够向用户提供沉浸式体验。
在具体实施过程中,在将虚拟图像叠加到当前关键帧的第一平面上时,若虚拟图像中主要特征物的大小远远超过了第一平面,例如,在一个小桌子上面叠加一个特别大虚拟的玩偶,也即桌子的桌面远远小于该玩偶的底面,则也容易导致用户察觉到该主要特征物为虚拟的。因此,为了避免这一缺陷的出现,在通过S4确定每一个平面上最长的边缘直线时,本发明实施例提供的实时图像叠加方法还包括:为每一个平面确定一个矩形,矩形的一边与其所在平面的边缘直线平行。同时,在将虚拟图像中主要特征物的贴合面与第一平面贴合时,本发明实施例提供的实时图像叠加方法还包括:根据贴合面与矩形的相对大小,调整主要特征物的大小。这样,即能够保证虚拟图像中的主要特征物的贴合面与待叠加的平面中的矩形之间的相对大小,调整虚拟图像中的主要特征物的大小,使得主要特征物的大小能够适应于待叠加的平面的大小,避免给用户以不真实的感觉。
在具体实施过程中,为每一个平面确定一个矩形,具体可以包括:对当前关键帧中的每一个平面,按以下的S61-S64确定其中的矩形:
S61:将第三平面对应的点云数据按投影到第一预设平面的方式转换为二维坐标,获得第二平面图像,第一预设平面与第三平面平行;
此处的投影过程与前述部分介绍的将第二平面对应的点云数据投影到第一预设平面的过程一致,在此就不再赘述了。
S62:确定第二平面图像中的种子点,种子点为第二平面图像中预设大小区域内的数据点占比最高的中心点;
具体来讲,可以遍历第二平面图像中的每一个数据点,计算以每个数据点为中心的预设大小区域的数据点占比,例如,以预设大小区域为10*10的区域为例,以第一个数据点为中心的预设大小区域内的数据点有100个,以第二个数据点为中心的预设大小区域内的数据点有85个,以第三个数据点为中心的预设大小区域内的数据点有25个,则可以将第一个数据点作为种子点。
在具体实施过程中,预设大小区域的具体数值可以由本领域所属的技术人员更加实际情况进行设置,以满足实际情况的需要,在此不做限制。
在有多个数据点为中心的预设大小区域内的数据点占比相同的情况下,则可以继续扩大预设区域,直到数据点的数目变为预设数目,例如,5个或10个等等。
可以看出通过S62选取的种子点不会在平面的边缘部分,从而保证了后续部分获得的矩形的正确性。
S63:根据种子点确定第二平面图像中的矩形;具体来讲,可以是先以种子点为中心设定第一矩形,该第一矩形的面积等于第一阈值,第一阈值可以由本领域所属的技术人员根据实际情况进行设定,如平面的实际区域较大,则第一阈值可以较大,若平面较小,则第一阈值可以较小,例如第一阈值可以为10*12;接着,检测该第一矩形与第三平面之间的共同面积,若共同面积与第一矩形的面积之间的第一比值大于第二阈值,然后,判断该第一比值是否大于第二阈值,第二阈值也是本领域所属的技术人员能够根据实际情况设置的,例如第二阈值可以为80%、90%等等,在本实施例中,若第一比值大于第二阈值,则可以按种子点到第一矩形的四条边的四个方向对第一矩形进行扩大。
需要说明的是,将第二阈值设置为小于100%,是为了求出平面中的最大矩形,保证能够虚拟图像中的主要特征物能够以最大的面积或者体积展示给用户,从而能够向用户展示更多的细节。
在本实施例中,可以按照如下方式对第一矩形进行扩大:按种子点到第一矩形的四条边的方向分别进行扩大;每个方向扩大后重新检测第一比值;若重新检测后的第一比值大于第二阈值,则在对应的方向上继续扩大,若第一比值小于第二阈值,则在对应的方向上停止扩大,并在其他的方向上扩大;直到每个方向都停止扩大,将最后获得的矩形作为第二矩形。
对每一个种子点都按上述过程进行处理后,就能够获得每个种子点对应的第二矩形,将其中面积最大的第二矩形作为第二平面图像中的矩形。
S64:将矩形的端点坐标按逆投影的方式转换为三维坐标,为第一数据点集对应的平面确定出矩形。
具体来讲,将矩形的四个端点坐标,分别按照S61中投影的逆过程进行处理,从而获得具有三维坐标的四个端点,从而为第一数据点集对应的平面,也即桌子的侧面确定出了矩形。
这样,在将虚拟图像中主要特征物的贴合面与第一平面贴合时,本发明实施例提供的图像叠加方法还包括:根据贴合面与矩形的相对大小,按比例调整主要特征物的大小。
具体来讲,虚拟图像中主要特征物的贴合面也是具有一定大小的,若贴合面小于矩形,则可以按照虚拟图像的原始大小,将主要特征物贴合在该平面的矩形上,也可以将虚拟图像的原始大小按预设比例变大,使得主要特征物在变大的同时,主要特征物的贴合面不大于该平面的矩形;若贴合面大于矩形,则可以按照虚拟图像按比例变小,使得主要特征物的贴合面小于或者等于矩形,当然,变小的比例需要设定一个最小值,否则会影响主要特征物的显示,若主要特征物的贴合面按最小值进行变小调整后,仍然大于或者远远大于该平面的矩形面,则可以选择其他平面进行图像叠加,在此就不再赘述了。
这样,在将虚拟图像中的主要特征物的贴合面贴合在平面的矩形上时,不会由于贴合面大于或者远远大于平面而使得主要特征物看起来是悬浮在空中,使得叠加的虚拟图像中主要特征物的真实性进一步提高,从而进一步减少或者避免了用户察觉到该主要特征物为虚拟的可能性,继而能够更好地向用户提供沉浸式体验。
可以看出,由于采用了确定当前关键帧中的平面中的矩形,并根据虚拟图像中主要特征物的贴合面与矩形的相对大小,调整所述主要特征物的大小的技术方案,使得叠加的虚拟图像中主要特征物的真实性进一步提高,从而进一步减少或者避免了用户察觉到该主要特征物为虚拟的可能性,继而能够更好地向用户提供沉浸式体验。
基于同一发明构思,本发明实施例还提供一种用于增强现实的实时图像叠加装置,请参考图3,图3为本发明实施例提供的用于增强现实的实时图像叠加装置的模块图,如图3所示,该实时图像叠加装置包括:
关键帧确定单元301,用于获取一单目摄像机实时拍摄预设场景时的视频信息,并从所述视频信息中确定出关键帧;
点云数据建立单元302,用于根据当前关键帧和所述当前关键帧的在前关键帧实时建立点云数据,所述当前关键帧和所述在前关键帧之间的视差角大于预设视差角,所述点云数据中的每一个数据点包含有三维坐标;
平面确定单元303,用于将所述当前关键帧对应的点云数据投影到所述当前关键帧上,并根据投影结果以及所述当前帧的超像素分割结果,确定所述当前关键帧中的平面;
边缘直线确定单元304,用于根据所述当前关键帧中每一个平面对应的点云数据,确定所述每一个平面上最长的边缘直线;
图像叠加单元305,用于在将虚拟图像叠加到所述当前关键帧中的第一平面上时,将所述虚拟图像中主要特征物的贴合面与所述第一平面贴合,且将所述主要特征物的正向边设置为与所述第一平面的边缘直线平行或者垂直,所述正向边为所述主要特征物的预设朝向面和预设底面之间的相交线。
在具体实施过程中,所述边缘直线确定单元304具体用于按以下步骤,确定每一个平面最长的边缘直线:
将第二平面对应的点云数据按投影到第一预设平面的方式转换为二维坐标,获得第一平面图像,所述第一预设平面与所述第二平面平行;
对所述第一平面图像进行形态学处理,并根据处理结果确定所述第一平面图像的边缘图像;
对所述边缘图像进行边沿直线检测,并按预设条件选择直线;
确定满足所述预设条件的直线为所述边缘直线,并将满足所述预设条件的直线按逆投影的方式投影到所述第二平面中。
在具体实施过程中,所述预设条件具体为:直线的长度最长和/或直线的两边预设范围内数据点数目之和的差最大。
在具体实施过程中,所述实时图像叠加装置还包括矩形确定单元306,所述矩形确定单元306用于在所述边缘直线确定单元304确定所述每一个平面上最长的边缘直线时,为每一个平面确定一个矩形,所述矩形的一边与其所在平面的边缘直线平行;
所述图像叠加单元305还用于在所述将所述虚拟图像中主要特征物的贴合面与所述第三平面贴合时,根据所述贴合面与所述第三平面的矩形的相对大小,调整所述主要特征物的大小。
在具体实施过程中,所述矩形确定单元306具体用于对于每一个平面,按以下步骤确定其中的矩形:
将第三平面对应的点云数据按投影到第二预设平面的方式转换为二维坐标,获得第二平面图像,所述第二预设平面与所述第三平面平行;
确定所述第二平面图像中的种子点,所述种子点为所述第二平面图像中预设大小区域内的数据点占比最高的中心点;
根据所述种子点确定所述第二平面图像中的矩形;
将所述矩形的端点坐标按逆投影的方式转换为三维坐标,为所述第一数据点集对应的平面确定出矩形。
在具体实施过程中,所述矩形确定单元306具体用于计算所述第二平面图像中以每一个数据点为中心的预设大小区域的数据点占比,若其中第一数据点的数据点占比最高,则将所述第一数据点作为所述种子点。
在具体实施过程中,所述矩形确定单元306具体用于设定以所述种子点为中心、面积等于第一阈值的第一矩形,并检测所述第一矩形与所述第三平面之间的共同面积,若所述共同面积与所述第一矩形的面积之间的第一比值大于第二阈值,则按所述种子点到所述第一矩形的四条边的四个方向对所述第一矩形进行扩大,获得扩大后的第二矩形,并将面积最大的第二矩形作为所述第二平面图像中的矩形。
在具体实施过程中,所述矩形确定单元306具体用于按所述种子点到所述第一矩形的四条边的方向分别进行扩大,并每个方向扩大后重新检测所述第一比值,若重新检测后的第一比值大于所述第二阈值,则在相同的方向上继续扩大,若所述第一比值小于所述第二阈值,则在相同的方向上停止扩大,并在其他的方向上扩大,直到每个方向都停止扩大,将最后获得的矩形作为所述第二矩形。
本发明实施例中的实时图像叠加装置与前述部分介绍的实时图像叠加方法是基于同一发明构思下的两个方面,在前述部分中已经详细地介绍了实时图像叠加方法的具体处理过程,在此为了说明书的简洁,就不再赘述了。
本发明实施例中的一个或者多个技术方案,至少具有如下技术效果或者优点:
1、由于采用了在单目摄像机实时拍摄预设场景的过程中,确定当前关键帧中的平面以及每一个平面上最长的边缘直线,并在将虚拟图像叠加到当前关键帧中的第一平面时,将虚拟图像中主要特征物的贴合面与第一平面贴合,并且将主要特征物的正向边设置为与第一平面的边缘直线平行或者垂直的技术方案,所以无需预先对真实环境进行数字化处理即能够向用户提供AR技术的视觉体验,减少了用户体验到AR技术的前置步骤,实时性较强,适用范围也大大提高,同时也结合了真实环境中平面的实际边缘,明显提高了虚拟图像中的主要特征物的真实性,从而减少或者避免了用户察觉到该主要特征物为虚拟的可能性,继而能够向用户提供沉浸式体验。
2、由于采用了确定当前关键帧中的平面中的矩形,并根据虚拟图像中主要特征物的贴合面与矩形的相对大小,调整所述主要特征物的大小的技术方案,使得叠加的虚拟图像中主要特征物的真实性进一步提高,从而进一步减少或者避免了用户察觉到该主要特征物为虚拟的可能性,继而能够更好地向用户提供沉浸式体验。
本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。
本说明书(包括任何附加权利要求、摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
本发明并不局限于前述的具体实施方式。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。
Claims (16)
1.一种用于增强现实的实时图像叠加方法,其特征在于,包括:
获取一单目摄像机实时拍摄预设场景时的视频信息,并从所述视频信息中确定出关键帧;
根据当前关键帧和所述当前关键帧的在前关键帧实时建立点云数据,所述当前关键帧和所述在前关键帧之间的视差角大于预设视差角,所述点云数据中的每一个数据点包含有三维坐标;
将所述当前关键帧对应的点云数据投影到所述当前关键帧上,并根据投影结果以及所述当前帧的超像素分割结果,确定所述当前关键帧中的平面;
根据所述当前关键帧中每一个平面对应的点云数据,确定所述每一个平面上最长的边缘直线;
在将虚拟图像叠加到所述当前关键帧中的第一平面上时,将所述虚拟图像中主要特征物的贴合面与所述第一平面贴合,且将所述主要特征物的正向边设置为与所述第一平面的边缘直线平行或者垂直,所述正向边为所述主要特征物的预设朝向面和预设底面之间的相交线。
2.如权利要求1所述的实时图像叠加方法,其特征在于,所述确定所述每一个平面上最长的边缘直线,具体包括:
对于每一个平面,按以下步骤确定其最长的边缘直线:
将第二平面对应的点云数据按投影到第一预设平面的方式转换为二维坐标,获得第一平面图像,所述第一预设平面与所述第二平面平行;
对所述第一平面图像进行形态学处理,并根据处理结果确定所述第一平面图像的边缘图像;
对所述边缘图像进行边沿直线检测,并按预设条件选择直线;
确定满足所述预设条件的直线为所述边缘直线,并将满足所述预设条件的直线按逆投影的方式投影到所述第二平面中。
3.如权利要求2所述的实时图像叠加方法,其特征在于,所述预设条件具体为:直线的长度最长和/或直线的两边预设范围内数据点数目之和的差最大。
4.如权利要求1-3中任一权项所述的实时图像叠加方法,其特征在于,
在确定所述每一个平面上最长的边缘直线时,所述方法还包括:为每一个平面确定一个矩形,所述矩形的一边与其所在平面的边缘直线平行;
所述在将虚拟图像叠加到所述当前关键帧中的第一平面上时,所述方法还包括:根据所述贴合面与所述第一平面的矩形的相对大小,调整所述主要特征物的大小。
5.如权利要求4所述的实时图像叠加方法,其特征在于,所述为每一个平面确定一个矩形,具体包括:
对于每一个平面,按以下步骤确定其中的矩形:
将第三平面对应的点云数据按投影到第二预设平面的方式转换为二维坐标,获得第二平面图像,所述第二预设平面与所述第三平面平行;
确定所述第二平面图像中的种子点,所述种子点为所述第二平面图像中预设大小区域内的数据点占比最高的中心点;
根据所述种子点确定所述第二平面图像中的矩形;
将所述矩形的端点坐标按逆投影的方式转换为三维坐标,为所述第一数据点集对应的平面确定出矩形。
6.如权利要求5所述的实时图像叠加方法,其特征在于,所述确定所述第二平面图像中的种子点,具体包括:
计算所述第二平面图像中以每一个数据点为中心的预设大小区域的数据点占比;
若其中第一数据点的数据点占比最高,则将所述第一数据点作为所述种子点。
7.如权利要求5所述的实时图像叠加方法,其特征在于,所述根据所述种子点确定所述第二平面图像中的矩形,具体包括:
设定以所述种子点为中心、面积等于第一阈值的第一矩形;
检测所述第一矩形与所述第三平面之间的共同面积;
若所述共同面积与所述第一矩形的面积之间的第一比值大于第二阈值,则按所述种子点到所述第一矩形的四条边的四个方向对所述第一矩形进行扩大,获得扩大后的第二矩形;
将面积最大的第二矩形作为所述第二平面图像中的矩形。
8.如权利要求7所述的实时图像叠加方法,其特征在于,所述按所述种子点到所述第一矩形的四条边的四个方向对所述第一矩形进行扩大,获得扩大后的第二矩形,具体包括:
按所述种子点到所述第一矩形的四条边的方向分别进行扩大;
每个方向扩大后重新检测所述第一比值;
若重新检测后的第一比值大于所述第二阈值,则在相同的方向上继续扩大,若所述第一比值小于所述第二阈值,则在相同的方向上停止扩大,并在其他的方向上扩大;
直到每个方向都停止扩大,将最后获得的矩形作为所述第二矩形。
9.一种用于增强现实的实时图像叠加装置,其特征在于,包括:
关键帧确定单元,用于获取一单目摄像机实时拍摄预设场景时的视频信息,并从所述视频信息中确定出关键帧;
点云数据建立单元,用于根据当前关键帧和所述当前关键帧的在前关键帧实时建立点云数据,所述当前关键帧和所述在前关键帧之间的视差角大于预设视差角,所述点云数据中的每一个数据点包含有三维坐标;
平面确定单元,用于将所述当前关键帧对应的点云数据投影到所述当前关键帧上,并根据投影结果以及所述当前帧的超像素分割结果,确定所述当前关键帧中的平面;
边缘直线确定单元,用于根据所述当前关键帧中每一个平面对应的点云数据,确定所述每一个平面上最长的边缘直线;
图像叠加单元,用于在将虚拟图像叠加到所述当前关键帧中的第一平面上时,将所述虚拟图像中主要特征物的贴合面与所述第一平面贴合,且将所述主要特征物的正向边设置为与所述第一平面的边缘直线平行或者垂直,所述正向边为所述主要特征物的预设朝向面和预设底面之间的相交线。
10.如权利要求9所述的实时图像叠加装置,其特征在于,所述边缘直线确定单元具体用于按以下步骤,确定每一个平面最长的边缘直线:
将第二平面对应的点云数据按投影到第一预设平面的方式转换为二维坐标,获得第一平面图像,所述第一预设平面与所述第二平面平行;
对所述第一平面图像进行形态学处理,并根据处理结果确定所述第一平面图像的边缘图像;
对所述边缘图像进行边沿直线检测,并按预设条件选择直线;
确定满足所述预设条件的直线为所述边缘直线,并将满足所述预设条件的直线按逆投影的方式投影到所述第二平面中。
11.如权利要求10所述的实时图像叠加装置,其特征在于,所述预设条件具体为:直线的长度最长和/或直线的两边预设范围内数据点数目之和的差最大。
12.如权利要求9-11中任一权项所述的实时图像叠加装置,其特征在于,所述实时图像叠加装置还包括矩形确定单元,所述矩形确定单元用于在所述边缘直线确定单元确定所述每一个平面上最长的边缘直线时,为每一个平面确定一个矩形,所述矩形的一边与其所在平面的边缘直线平行;
所述图像叠加单元还用于在将虚拟图像叠加到所述当前关键帧中的第一平面上时,根据所述贴合面与所述第一平面的矩形的相对大小,调整所述主要特征物的大小。
13.如权利要求12所述的实时图像叠加装置,其特征在于,所述矩形确定单元具体用于对于每一个平面,按以下步骤确定其中的矩形:
将第三平面对应的点云数据按投影到第二预设平面的方式转换为二维坐标,获得第二平面图像,所述第二预设平面与所述第三平面平行;
确定所述第二平面图像中的种子点,所述种子点为所述第二平面图像中预设大小区域内的数据点占比最高的中心点;
根据所述种子点确定所述第二平面图像中的矩形;
将所述矩形的端点坐标按逆投影的方式转换为三维坐标,为所述第一数据点集对应的平面确定出矩形。
14.如权利要求13所述的实时图像叠加装置,其特征在于,所述矩形确定单元具体用于计算所述第二平面图像中以每一个数据点为中心的预设大小区域的数据点占比,若其中第一数据点的数据点占比最高,则将所述第一数据点作为所述种子点。
15.如权利要求13所述的实时图像叠加装置,其特征在于,所述矩形确定单元具体用于设定以所述种子点为中心、面积等于第一阈值的第一矩形,并检测所述第一矩形与所述第三平面之间的共同面积,若所述共同面积与所述第一矩形的面积之间的第一比值大于第二阈值,则按所述种子点到所述第一矩形的四条边的四个方向对所述第一矩形进行扩大,获得扩大后的第二矩形,并将面积最大的第二矩形作为所述第二平面图像中的矩形。
16.如权利要求15所述的实时图像叠加装置,其特征在于,所述矩形确定单元具体用于按所述种子点到所述第一矩形的四条边的方向分别进行扩大,并每个方向扩大后重新检测所述第一比值,若重新检测后的第一比值大于所述第二阈值,则在相同的方向上继续扩大,若所述第一比值小于所述第二阈值,则在相同的方向上停止扩大,并在其他的方向上扩大,直到每个方向都停止扩大,将最后获得的矩形作为所述第二矩形。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610770762.9A CN107798704B (zh) | 2016-08-30 | 2016-08-30 | 一种用于增强现实的实时图像叠加方法及装置 |
PCT/CN2017/098476 WO2018040982A1 (zh) | 2016-08-30 | 2017-08-22 | 一种用于增强现实的实时图像叠加方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610770762.9A CN107798704B (zh) | 2016-08-30 | 2016-08-30 | 一种用于增强现实的实时图像叠加方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107798704A true CN107798704A (zh) | 2018-03-13 |
CN107798704B CN107798704B (zh) | 2021-04-30 |
Family
ID=61301502
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610770762.9A Active CN107798704B (zh) | 2016-08-30 | 2016-08-30 | 一种用于增强现实的实时图像叠加方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN107798704B (zh) |
WO (1) | WO2018040982A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109712249A (zh) * | 2018-12-31 | 2019-05-03 | 成都纵横大鹏无人机科技有限公司 | 地理要素增强现实方法及装置 |
CN110706159A (zh) * | 2018-07-09 | 2020-01-17 | 财团法人资讯工业策进会 | 空间坐标转换服务器以及方法 |
CN110969592A (zh) * | 2018-09-29 | 2020-04-07 | 北京嘀嘀无限科技发展有限公司 | 图像融合方法、自动驾驶控制方法、装置和设备 |
CN111695506A (zh) * | 2020-06-11 | 2020-09-22 | 国网山东省电力公司电力科学研究院 | 一种输电线路风致异物短路故障预警方法及系统 |
US10867447B2 (en) | 2019-01-21 | 2020-12-15 | Capital One Services, Llc | Overlaying 3D augmented reality content on real-world objects using image segmentation |
CN113475093A (zh) * | 2019-02-07 | 2021-10-01 | 交互数字Vc控股公司 | 处理点云 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109445112A (zh) * | 2019-01-05 | 2019-03-08 | 西安维度视界科技有限公司 | 一种ar眼镜及基于ar眼镜的增强现实方法 |
CN116912277B (zh) * | 2023-09-12 | 2023-12-12 | 山东鲁泰化学有限公司 | 一种循环水除垢效果评估方法及系统 |
CN117893693A (zh) * | 2024-03-15 | 2024-04-16 | 南昌航空大学 | 一种密集slam三维场景重建方法及装置 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101189643A (zh) * | 2005-04-25 | 2008-05-28 | 株式会社亚派 | 3d图像生成和显示系统 |
US20110102460A1 (en) * | 2009-11-04 | 2011-05-05 | Parker Jordan | Platform for widespread augmented reality and 3d mapping |
CN102831401A (zh) * | 2012-08-03 | 2012-12-19 | 樊晓东 | 对无特定标记目标物体跟踪、三维叠加及交互的方法及系统 |
US20130148851A1 (en) * | 2011-12-12 | 2013-06-13 | Canon Kabushiki Kaisha | Key-frame selection for parallel tracking and mapping |
CN103400409A (zh) * | 2013-08-27 | 2013-11-20 | 华中师范大学 | 一种基于摄像头姿态快速估计的覆盖范围3d可视化方法 |
CN103500013A (zh) * | 2013-10-18 | 2014-01-08 | 武汉大学 | 基于Kinect和流媒体技术的实时三维测图系统及方法 |
CN103582893A (zh) * | 2011-06-08 | 2014-02-12 | 英派尔科技开发有限公司 | 用于增强现实表示的二维图像获取 |
CN103988226A (zh) * | 2011-08-31 | 2014-08-13 | Metaio有限公司 | 用于估计摄像机运动以及用于确定实境三维模型的方法 |
CN105143915A (zh) * | 2013-02-21 | 2015-12-09 | Isis创新有限公司 | 环境的3d模型的生成 |
CN105184825A (zh) * | 2015-10-29 | 2015-12-23 | 丽水学院 | 一种面向室内场景的移动增强现实方法 |
CN105210113A (zh) * | 2013-04-30 | 2015-12-30 | 高通股份有限公司 | 具有一般和全景相机移动的单眼视觉slam |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9170648B2 (en) * | 2012-04-03 | 2015-10-27 | The Boeing Company | System and method for virtual engineering |
US9779508B2 (en) * | 2014-03-26 | 2017-10-03 | Microsoft Technology Licensing, Llc | Real-time three-dimensional reconstruction of a scene from a single camera |
CN105023266B (zh) * | 2014-04-29 | 2018-03-30 | 高德软件有限公司 | 增强现实实现方法、装置和终端设备 |
CN105678842A (zh) * | 2016-01-11 | 2016-06-15 | 湖南拓视觉信息技术有限公司 | 室内环境三维地图制作方法及装置 |
-
2016
- 2016-08-30 CN CN201610770762.9A patent/CN107798704B/zh active Active
-
2017
- 2017-08-22 WO PCT/CN2017/098476 patent/WO2018040982A1/zh active Application Filing
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101189643A (zh) * | 2005-04-25 | 2008-05-28 | 株式会社亚派 | 3d图像生成和显示系统 |
US20110102460A1 (en) * | 2009-11-04 | 2011-05-05 | Parker Jordan | Platform for widespread augmented reality and 3d mapping |
CN103582893A (zh) * | 2011-06-08 | 2014-02-12 | 英派尔科技开发有限公司 | 用于增强现实表示的二维图像获取 |
CN103988226A (zh) * | 2011-08-31 | 2014-08-13 | Metaio有限公司 | 用于估计摄像机运动以及用于确定实境三维模型的方法 |
US20130148851A1 (en) * | 2011-12-12 | 2013-06-13 | Canon Kabushiki Kaisha | Key-frame selection for parallel tracking and mapping |
CN102831401A (zh) * | 2012-08-03 | 2012-12-19 | 樊晓东 | 对无特定标记目标物体跟踪、三维叠加及交互的方法及系统 |
CN105143915A (zh) * | 2013-02-21 | 2015-12-09 | Isis创新有限公司 | 环境的3d模型的生成 |
CN105210113A (zh) * | 2013-04-30 | 2015-12-30 | 高通股份有限公司 | 具有一般和全景相机移动的单眼视觉slam |
CN103400409A (zh) * | 2013-08-27 | 2013-11-20 | 华中师范大学 | 一种基于摄像头姿态快速估计的覆盖范围3d可视化方法 |
CN103500013A (zh) * | 2013-10-18 | 2014-01-08 | 武汉大学 | 基于Kinect和流媒体技术的实时三维测图系统及方法 |
CN105184825A (zh) * | 2015-10-29 | 2015-12-23 | 丽水学院 | 一种面向室内场景的移动增强现实方法 |
Non-Patent Citations (2)
Title |
---|
EDMUNDO GUERRA等: "Monocular SLAM for Autonomous Robots with Enhanced Features Initialization", 《SENSORS(BASED)》 * |
刘浩敏等: "基于单目视觉的同时定位与地图构建方法综述", 《计算机辅助设计与图形学学报》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110706159A (zh) * | 2018-07-09 | 2020-01-17 | 财团法人资讯工业策进会 | 空间坐标转换服务器以及方法 |
CN110969592A (zh) * | 2018-09-29 | 2020-04-07 | 北京嘀嘀无限科技发展有限公司 | 图像融合方法、自动驾驶控制方法、装置和设备 |
CN110969592B (zh) * | 2018-09-29 | 2024-03-29 | 北京嘀嘀无限科技发展有限公司 | 图像融合方法、自动驾驶控制方法、装置和设备 |
CN109712249A (zh) * | 2018-12-31 | 2019-05-03 | 成都纵横大鹏无人机科技有限公司 | 地理要素增强现实方法及装置 |
CN109712249B (zh) * | 2018-12-31 | 2023-05-26 | 成都纵横大鹏无人机科技有限公司 | 地理要素增强现实方法及装置 |
US10867447B2 (en) | 2019-01-21 | 2020-12-15 | Capital One Services, Llc | Overlaying 3D augmented reality content on real-world objects using image segmentation |
CN113475093A (zh) * | 2019-02-07 | 2021-10-01 | 交互数字Vc控股公司 | 处理点云 |
CN113475093B (zh) * | 2019-02-07 | 2024-03-22 | 交互数字Vc控股公司 | 用于处理点云的方法和装置 |
CN111695506A (zh) * | 2020-06-11 | 2020-09-22 | 国网山东省电力公司电力科学研究院 | 一种输电线路风致异物短路故障预警方法及系统 |
CN111695506B (zh) * | 2020-06-11 | 2023-04-25 | 国网山东省电力公司电力科学研究院 | 一种输电线路风致异物短路故障预警方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN107798704B (zh) | 2021-04-30 |
WO2018040982A1 (zh) | 2018-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107798704A (zh) | 一种用于增强现实的实时图像叠加方法及装置 | |
CN107798702A (zh) | 一种用于增强现实的实时图像叠加方法以及装置 | |
CN106503671B (zh) | 确定人脸姿态的方法和装置 | |
CN106875444B (zh) | 一种目标物定位方法及装置 | |
CN107358609B (zh) | 一种用于增强现实的图像叠加方法及装置 | |
CN103608846B (zh) | 一种用于三维图像模型调适的方法和装置 | |
CN104599284B (zh) | 基于多视角手机自拍图像的三维人脸重建方法 | |
CN106340036A (zh) | 一种基于双目立体视觉的立体匹配方法 | |
CN109215085B (zh) | 一种利用计算机视觉与图像识别的物品统计方法 | |
CN109840881A (zh) | 一种3d特效图像生成方法、装置及设备 | |
CN112926464B (zh) | 一种人脸活体检测方法以及装置 | |
CN110324534B (zh) | 图像处理方法、装置及电子设备 | |
CN106778660B (zh) | 一种人脸姿态校正方法及装置 | |
CN106997617A (zh) | 混合现实虚拟呈现方法及装置 | |
CN106570900B (zh) | 一种立体图像重定位方法 | |
CN113706373A (zh) | 模型重建方法及相关装置、电子设备和存储介质 | |
CN107798703A (zh) | 一种用于增强现实的实时图像叠加方法以及装置 | |
Wang et al. | Stereoscopic image retargeting based on 3D saliency detection | |
CN104243970A (zh) | 基于立体视觉注意力机制和结构相似度的3d绘制图像的客观质量评价方法 | |
Zabulis et al. | Multi-camera reconstruction based on surface normal estimation and best viewpoint selection | |
Angot et al. | A 2D to 3D video and image conversion technique based on a bilateral filter | |
CN111343445A (zh) | 动态调整深度解析度的装置及其方法 | |
JP6799468B2 (ja) | 画像処理装置、画像処理方法及びコンピュータプログラム | |
CN104978558B (zh) | 目标的识别方法及装置 | |
CN117372647A (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 |