CN107358609A - 一种用于增强现实的图像叠加方法及装置 - Google Patents
一种用于增强现实的图像叠加方法及装置 Download PDFInfo
- Publication number
- CN107358609A CN107358609A CN201610285886.8A CN201610285886A CN107358609A CN 107358609 A CN107358609 A CN 107358609A CN 201610285886 A CN201610285886 A CN 201610285886A CN 107358609 A CN107358609 A CN 107358609A
- Authority
- CN
- China
- Prior art keywords
- plane
- rectangle
- data
- point
- data 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
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
-
- 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/20036—Morphological image processing
-
- 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 Processing (AREA)
Abstract
本发明公开了一种用于增强现实的图像叠加方法及装置,图像叠加方法包括:获得一预设场景的点云数据;确定点云数据中的N个平面,以及与N个平面一一对应的N个数据点集;确定每一个数据点集对应的平面的边缘直线;在将虚拟图像叠加到N个平面中的第一平面上时,将虚拟图像中主要特征物的贴合面与第一平面贴合,且将主要特征物的正向边设置为与第一平面的边缘直线平行或者垂直,正向边为主要特征物的预设朝向面和预设底面之间的相交线。在将虚拟图像叠加到真实环境的过程中,结合了真实环境中平面的实际边缘,明显提高了虚拟图像中的主要特征物的真实性,从而减少或者避免了用户察觉到该主要特征物为虚拟的可能性,继而能够向用户提供沉浸式体验。
Description
技术领域
本发明涉及增强现实领域,尤其涉及一种用于增强现实的图像叠加方法及装置。
背景技术
增强现实(英文:Augmented Reality;简称:AR)是近年来机器视觉领域备受关注的热点研究之一,目的是在增强现实设备的屏幕上所呈现的由摄像机采集的真实环境中,通过特殊的计算机图像和视频处理算法,把虚拟的图像信息或视频信息显示的虚拟物体同时叠加到同一个画面或空间中,用户能够获得全新的超越现实的感官体验。
为了向用户提供沉浸式体验,需要使得显示的虚拟物体尽量贴近用户的真实环境,而在现有技术中,会直接对真实环境对应的点云数据进行平面检测,然后将虚拟物体叠加到检测到的平面上,但并没有结合当前真实环境的实际边缘,所以就可能造成如下失真:在平面上叠加玩偶的位置为任意选择,导致玩偶的真实性降低,例如,以将一个虚拟的玩偶叠加到真实环境中的墙面上、且用户站在地面上观察为例,现有技术中在叠加后会将该玩偶的底部与地面平行且面部朝向用户,这样虽然能够较好地向用户展示该玩偶,但会使得该玩偶看起来是悬浮在靠近墙面的空中,这很容易让用户察觉到该玩偶为虚拟的玩偶,从而无法向用户提供沉浸式体验。
因此,现有技术中存在因没有结合真实环境的实际边缘进行图像叠加,而 降低了虚拟物体的真实性的技术问题。
发明内容
本发明的目的是提供一种用于增强现实的图像叠加方法及装置,在叠加虚拟物体时结合了真实环境的实际边缘,提高了虚拟物体的真实性。
为了实现上述发明目的,本发明提供了一种用于增强现实的图像叠加方法,包括:
获得一预设场景的点云数据,所述点云数据以数据点的方式记录了所述预设场景的表面的三维几何信息,其中每一个数据点包含有三维坐标;
确定所述点云数据中的N个平面,以及与所述N个平面一一对应的N个数据点集,其中N为正整数;
确定每一个数据点集对应的平面的边缘直线;
在将虚拟图像叠加到所述N个平面中的第一平面上时,将所述虚拟图像中主要特征物的贴合面与所述第一平面贴合,且将所述主要特征物的正向边设置为与所述第一平面的边缘直线平行或者垂直,所述正向边为所述主要特征物的预设朝向面和预设底面之间的相交线。
可选地,在所述确定每一个数据点集对应的平面的边缘直线时,所述方法还包括:为每一个数据点集对应的平面确定一个矩形,所述矩形的一边与其所在平面的边缘直线平行;
在所述将所述虚拟图像中主要特征物的贴合面与所述第一平面贴合时,所述方法还包括:根据所述贴合面与所述矩形的相对大小,按比例调整所述主要特征物的大小。
可选地,所述为每一个数据点集对应的平面确定一个矩形,具体包括:
对于每一个数据点集,按以下步骤为其对应的平面确定矩形:
将第一数据点集的所有数据点的坐标按投影到第一预设平面的方式转换为二维坐标,获得二维图像,所述第一预设平面与所述第一数据点集对应的平 面平行;
确定所述二维图像中的种子点,所述种子点为所述二维图像中预设大小区域内的数据点占比最高的中心点;
根据所述种子点确定所述二维图像中的矩形;
将所述矩形的端点坐标按逆投影的方式转换为三维坐标,为所述第一数据点集对应的平面确定出矩形。
可选地,所述确定所述二维图像中的种子点,具体包括:
计算所述二维图像中以每一个数据点为中心的预设大小区域的数据点占比;
若其中第一数据点的数据点占比最高,则将所述第一数据点作为所述种子点。
可选地,若一平面中存在数据点占比同为最高的多个数据点,则将所述数据点占比同为最高的多个数据点分为多个集合,每个集合内的点至少与集合中的另一个点邻接,任意两个集合中的点不邻接。
可选地,所述根据所述种子点确定所述二维图像中的矩形,具体包括:
设定以所述种子点为中心、面积等于第一阈值的第一矩形;
检测所述第一矩形内的数据点数目与像素点数目的第一比值;
若所述第一比值大于第二阈值,则按所述种子点到所述第一矩形的四条边的四个方向对所述第一矩形进行扩大,获得扩大后的第二矩形;
将面积最大的第二矩形作为所述二维图像中的矩形。
可选地,所述按所述种子点到所述第一矩形的四条边的四个方向对所述第一矩形进行扩大,获得扩大后的第二矩形,具体包括:
按所述种子点到所述第一矩形的四条边的方向分别进行扩大;
每个方向扩大后重新检测所述第一比值;
若重新检测后的第一比值大于所述第二阈值,则在对应的方向上继续扩大,若所述第一比值小于所述第二阈值,则在所述对应的方向上停止扩大,并在其他的方向上扩大;
直到每个方向都停止扩大,将最后获得的矩形作为所述第二矩形。
可选地,所述种子点到所述第一矩形的四条边的方向分别进行扩大,获得扩大后的第二矩形,具体包括:
按所述种子点到所述第一矩形的四条边的方向分别进行扩大;
每个方向扩大后,检测所述第一矩形的四条边上的数据点数目与像素点数目的第二比值;
若所述第二比值大于第三阈值,则在对应的方向上继续扩大,若所述第二比值小于所述第三阈值,则在所述对应的方向停止扩大,并在其他的方向上扩大;
直到每个方向都停止扩大,将最后获得的矩形作为所述第二矩形。
可选地,所述确定点云数据中的N个平面,具体包括:
将所述点云数据按坐标划分为多个子数据集;
为所述多个子数据集中的每个子数据集确定一个局部平面;
融合所有子数据集对应的局部平面,确定所述N个平面。
可选地,所述确定每一个数据点集对应的平面的边缘直线,包括:
对于每一个数据点集,按以下步骤确定其对应的平面的边缘直线:
将第二数据点集中的所有数据点的坐标按投影到第二预设平面的方式转换为二维坐标,获得二维图像,所述第二预设平面与所述第二数据点集对应的平面平行;
对所述二维图像进行形态学处理,并根据处理结果确定所述二维图像的边缘图像;
对所述边缘图像进行边沿直线检测,并按预设条件选择直线;
确定满足所述预设条件的直线为所述边缘直线。
可选地,所述预设条件具体为:直线的长度最长,且直线的两边数据点数目之和的差最大。
本发明实施例第二方面还提供一种用于增强现实的图像叠加装置,包括:
获得模块,用于获得一预设场景的点云数据,所述点云数据以数据点的方 式记录了所述预设场景的表面的三维几何信息,其中每一个数据点包含有三维坐标;
平面确定模块,用于确定所述点云数据中的N个平面,以及与所述N个平面一一对应的N个数据点集,其中N为正整数;
直线确定模块,用于确定每一个数据点集对应的平面的边缘直线;
图像叠加模块,用于在将虚拟图像叠加到所述N个平面中的第一平面上时,将所述虚拟图像中主要特征物的贴合面与所述第一平面贴合,且将所述主要特征物的正向边设置为与所述第一平面的边缘直线平行或者垂直,所述正向边为所述主要特征物的预设朝向面和预设底面之间的相交线。
可选地,所述图像叠加装置还包括矩形确定模块,所述矩形确定模块用于在所述确定每一个数据点集对应的平面的边缘直线时,为每一个数据点集对应的平面确定一个矩形,所述矩形的一边与其所在平面的边缘直线平行;
所述图像叠加模块还用于在所述将所述虚拟图像中主要特征物的贴合面与所述第一平面贴合时,根据所述贴合面与所述矩形的相对大小,按比例调整所述主要特征物的大小。
可选地,所述矩形确定模块具体用于:
对于每一个数据点集,按以下步骤为其对应的平面确定矩形:
将第一数据点集的所有数据点的坐标按投影到第一预设平面的方式转换为二维坐标,获得二维图像,所述第一预设平面与所述第一数据点集对应的平面平行;
确定所述二维图像中的种子点,所述种子点为所述二维图像中预设大小区域内的数据点占比最高的中心点;
根据所述种子点确定所述二维图像中的矩形;
将所述矩形的端点坐标按逆投影的方式转换为三维坐标,为所述第一数据点集对应的平面确定出矩形。
可选地,所述矩形确定模块具体用于:
计算所述二维图像中以每一个数据点为中心的预设大小区域的数据点占 比;
若其中第一数据点的数据点占比最高,则将所述第一数据点作为所述种子点。
可选地,所述矩形确定模块用于在一平面中存在数据点占比同为最高的多个数据点时,将所述数据点占比同为最高的多个数据点分为多个集合,每个集合内的点至少与集合中的另一个点邻接,任意两个集合中的点不邻接。
可选地,所述矩形确定模块具体用于:
设定以所述种子点为中心、面积等于第一阈值的第一矩形;
检测所述第一矩形内的数据点数目与像素点数目的第一比值;
若所述第一比值大于第二阈值,则按所述种子点到所述第一矩形的四条边的四个方向对所述第一矩形进行扩大,获得扩大后的第二矩形;
将面积最大的第二矩形作为所述二维图像中的矩形。
可选地,所述矩形确定模块具体用于:
按所述种子点到所述第一矩形的四条边的方向分别进行扩大;
每个方向扩大后重新检测所述第一比值;
若重新检测后的第一比值大于所述第二阈值,则在对应的方向上继续扩大,若所述第一比值小于所述第二阈值,则在所述对应的方向上停止扩大,并在其他的方向上扩大;
直到每个方向都停止扩大,将最后获得的矩形作为所述第二矩形。
可选地,所述矩形确定模块具体用于:
按所述种子点到所述第一矩形的四条边的方向分别进行扩大;
每个方向扩大后,检测所述第一矩形的四条边上的数据点数目与像素点数目的第二比值;
若所述第二比值大于第三阈值,则在对应的方向上继续扩大,若所述第二比值小于所述第三阈值,则在所述对应的方向停止扩大,并在其他的方向上扩大;
直到每个方向都停止扩大,将最后获得的矩形作为所述第二矩形。
可选地,所述平面确定模块具体用于:
将所述点云数据按坐标划分为多个子数据集;
为所述多个子数据集中的每个子数据集确定一个局部平面;
融合所有子数据集对应的局部平面,确定所述N个平面。
可选地,所述直线确定模块具体用于:
对于每一个数据点集,按以下步骤确定其对应的平面的边缘直线:
将第二数据点集中的所有数据点的坐标按投影到第二预设平面的方式转换为二维坐标,获得二维图像,所述第二预设平面与所述第二数据点集对应的平面平行;
对所述二维图像进行形态学处理,并根据处理结果确定所述二维图像的边缘图像;
对所述边缘图像进行边沿直线检测,并按预设条件选择直线;
确定满足所述预设条件的直线为所述边缘直线。
可选地,所述预设条件具体为:直线的长度最长,且直线的两边数据点数目之和的差最大。
与现有技术相比,本发明具有如下有益效果:
由于在将虚拟图像叠加到真实环境的过程中,结合了真实环境中平面的实际边缘,与现有技术相比,虚拟图像中的主要特征物的位置更贴近于真实环境中实际物体的摆放方式,明显提高了虚拟图像中的主要特征物的真实性,从而减少或者避免了用户察觉到该主要特征物为虚拟的可能性,继而能够向用户提供沉浸式体验。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付 出创造性劳动性的前提下,还可以根据这些附图获得其他的附图:
图1为本发明实施例提供的图像叠加方法的流程图;
图2为通过照相式扫描仪获取的桌子的点云数据的示意图,
图3为本发明实施例提供的将点云数据通过八叉树结构进行分割的示意图;
图4A为本发明实施例提供的将第二数据点集投影到第二预设平面上的示意图;
图4B为本发明实施例提供的对二维图像进行形态学处理后的示意图;
图4C为本发明实施例提供的二维图像的边缘图像的示意图;
图4D为本发明实施例提出的满足预设条件的直线的示意图;
图5为本发明实施例提供的虚拟图像中主要特征物的示意图;
图6A为本发明实施例提供的将第一数据点集投影到第一预设平面上的示意图;
图6B为本发明实施例提供的将图6A所示的投影图像进行旋转处理后的示意图;
图6C为本发明实施例提供的二维图像中的矩形的示意图;
图6D为本发明实施例提供的二维图像中的第一数据点集对应的平面中的矩形的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种用于增强现实的图像叠加方法,该方法包括:
首先,获得一预设场景的点云数据,点云数据以数据点的方式记录了预设场景的表面的三维几何信息,其中每一个数据点包含有三维坐标;例如,可以通过激光扫描仪、照相式扫描仪等扫描设备对预设场景进行扫描,获取预设场景点云数据。
接着,确定点云数据中的N个平面,以及与N个平面一一对应的N个数据点集,其中N为正整数;例如,可以通过基于随机抽样一致性的方法或基于霍夫变换的方法对点云数据进行平面检测,将点云数据中的多个平面检测出来,然后通过最小二乘法或特征值法来计算点云数据中每个平面的平面方程。
然后,确定每一个数据点集对应的平面的边缘直线;例如,在通过S2确定每个平面对应的数据点集后,结合平面方程,即能够通过数据点集确定该平面的边缘直线。
最后,在将虚拟图像叠加到N个平面中的第一平面上时,将虚拟图像中主要特征物的贴合面与第一平面贴合,且将主要特征物的正向边设置为与第一平面的边缘直线平行或者垂直,正向边为主要特征物的预设朝向面和预设底面之间的相交线;例如,以虚拟图像中的主要特征物为一个虚拟的玩偶的为例,若需要将该虚拟的玩偶叠加到桌面(该桌面与地面平行),则可以将该玩偶的贴合面设置为玩偶的底面,同时还将该玩偶的正向边设置为与桌面的边缘直线平行或者垂直,该正向边即是该玩偶的正面与底面的相交线,这样,在将一个虚拟的玩偶叠加到桌子的侧面后,该玩偶的底面即会贴合在桌面上,并且该玩偶的正向边会平行或垂直于桌面的边缘直线,这样,该玩偶看起来就像一个真实的玩偶被树立桌子的桌面上,并且该玩偶的正面朝向桌面的实际边缘或者垂直于桌面的实际边缘,用户通过增强现实设备看到该玩偶,就不会立即察觉到该玩偶为虚拟的,玩偶的真实性有了明显的提高,从而减少或者避免了用户察觉到该主要特征物为虚拟的可能性。
通过上述部分可以看出,由于在将虚拟图像叠加到真实环境的过程中,结合了真实环境中平面的实际边缘,与现有技术相比,虚拟图像中的主要特征物的位置更贴近于真实环境中实际物体的摆放方式,明显提高了虚拟图像中的主要特征物的真实性,从而减少或者避免了用户察觉到该主要特征物为虚拟的可能性,继而能够向用户提供沉浸式体验。
在接下来的部分中,将结合具体附图,来详细介绍上述技术方案。
请参考图1,图1为本发明实施例提供的图像叠加方法的流程图,如图1所示,该方法包括:
S1:获得一预设场景的点云数据,点云数据以数据点的方式记录了预设场景的表面的三维几何信息,其中每一个数据点包含有三维坐标;
在本实施例中,预设场景为一张桌子,通过激光扫描仪、照相式扫描仪等扫描设备对其进行扫描后即能够获得点云数据,请参考图2,图2为通过照相式扫描仪获取的桌子的点云数据的示意图,点云数据中的每一个数据点都包含有三维坐标,还可能包括该数据点对应的颜色信息,当然,若采用激光扫描仪来获取该桌子的点云数据,则点云数据中的每一个数据点也都包含有三维坐标,还可能包括该数据点对应的光强度信息;在其他实施例中,还可以通过其他的扫描来获取预设场景的点云数据,在此不做限制。
在通过S1获得预设场景的点云数据后,即进入图像叠加方法中的S2:确定点云数据中的N个平面,以及与N个平面一一对应的N个数据点集,其中N为正整数;
在本实施例中,可以通过步骤S21-S23来确定点云数据中的N个平面:
S21:将点云数据按坐标划分为多个子数据集;例如,将点云数据通过八叉树结构,采用递归的方法进行预设级数的分割后,获得多个子数据集,使得每个子数据集能够近似地看做仅包含有一个平面,请参考图3,图3为本发明实施例提供的将点云数据通过八叉树结构进行分割的示意图,或者直接将点云数据分别在x、y和z三个轴直接进行均匀地分割,从而将点云数据分割为预设的子数据集,例如可以按x、y和z三个轴分别分割100万次等,使得每个子数据集能够近似地看做仅包含有一个平面。当然,通过本实施例的介绍,本领域所属的技术人员能够根据实际情况,选择合适的分割方式,以满足实际情况的需要,在此就不再赘述了。
S22:为多个子数据集中的每个子数据集确定一个局部平面;在本实施例中,可以通过随机抽样一致(英文:RANdom Sample Consensus;简称:RANSAC)算法来计算每个子数据集对应的局部平面。
具体来讲,针对每一个子数据集,通过如下的方式确定其对应的局部平面:
首先,从待处理的子数据集中随机抽取一定数目的样本数据点,例如抽取5个或10个样本点等等,在此不做限制;
接着,对这些样本数据点进行平面拟合,例如,每个样本数据点包括三维坐标,则可以建立一个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。
其次,计算这个子数据集中的所有数据点到第一拟合平面的距离,将与第一拟合平面的距离小于第一设定阈值的数据点设为内点;具体来讲,再通过S22获得第一拟合平面的平面方程后,即能够计算该子数据集中的所有数据点到该第一拟合平面的距离,以该子数据集内的一点Pj(Xj,Yj,Zj)为例,Pj到第一拟合平面的距离为:并且,将与第一拟合平面的距离小于第一设定阈值的数据点设为内点,将与第一拟合平面的距离大于等于第一设定阈值的数据点设为自由点,自由点会在后续进行处理,本步骤中不做处理。
然后,以第一拟合平面的内点作为一个数据点集合重新进行平面检测,获得第二拟合平面,拟合的过程与前述的拟合过程一致,在此就不再赘述了,由于本次平面检测的基础为第一拟合平面的内点,所以获得的第二拟合平面的精准度更高。
当然,此时还可以再次计算该子数据集内所有数据点到第二拟合平面的距离,将与第二拟合平面的距离小于第一设定阈值的数据点设为内点,且统计该子数据集中属于第二拟合平面的内点数目,并计算该子数据集内所有数据点到第二拟合平面的平均距离为
最后,循环执行上述步骤,循环的具体次数在此不做限制,例如循环50次,则会获得50个第二拟合平面,,由于每次随机抽取的样本数据点均不会一致,所以每次循环最终获得的第二拟合平面均会存在一定的差异,一般说来,每次循环获得的第二拟合平面的内点数目都是不相同的,因此,此时可以将N个第二拟合平面中内点数目最多的平面确定为局部平面,也即该局部平面能够在最大程度上适用于该子数据集内的所有数据点,若存在有多个第二拟合平面的内点数目相同,则可以选择该子数据集内所有数据点到第二拟合平面的平均 距离最小的平面,若还是存在有多个第二拟合平面满足条件,则可以选择该子数据集内所有数据点到第二拟合平面的距离的方差最小的平面,当然,通过本实施例的介绍,本领域所属的技术人员还能够实际情况,选择其他合适的方法来选择第二拟合平面,在此就不再赘述了。
当然了,在其他实施例中,也可以通过最小二乘法、特征值法等来为多个子数据集中每个子数据集确定局部平面,在此就不再赘述了。
S23:融合所有子数据集对应的局部平面,确定N个平面。
具体来讲,若对点云数据进行分割时,采用的是根据八叉树结构进行分割,则此时可以按八叉树结构,依次逐级向上进行融合之后,就能够获得点云数据的N个平面,若对点云数据进行分割时,采用的是直接将点云数据分别在x、y和z三个轴直接进行均匀地分割的方式,则融合局部平面时同样可以先将两个相邻的局部平面进行融合,融合之后再对获得的多个平面继续进行融合,以此类推,最后获得点云数据的N个平面,N为正整数,在此就不再赘述了。
在具体实施过程中,可以通过如下的预设条件进行融合:当两个局部平面分别属于两个相邻子数据集时,且两个局部平面的法向量夹角小于第一预设值,且两个局部平面的偏移量小于第二预设值时,即能够将两个局部平面融合成一个局部平面。
在判断两个局部平面是否分别属于两个相邻子数据集时,在将点云数据分割为多个子数据集时,即可以为每个子数据集进行编号,所以此时可以根据子数据集的编号来判断两个局部平面是否分别属于两个相邻的子数据集,若判断结果表明两个局部平面分别属于两个相邻的子数据集,则进行融合,否则不进行融合,这样能够自然地将满足其他条件但实际不属于同一平面的两个局部平面分开,例如,在一张办公桌上并排放置的两块电脑平面(两块电脑屏幕之间存在间隙),这两块电脑平面对应的两个局部平面之间的夹角很小,相对于原点的偏移量也很小,但由于这两个局部平面不属于相邻的子数据集,所以这两个局部平面不会融合在一起。
在判断两个局部平面的法向量夹角时,在前述步骤中能够获得局部平面的法向量,因此,设定两个局部平面的法向量分别为和 则可知这两个局部平面的法向量之间的夹角θ的余弦 若该余弦值小于第一预设值,例如该第一预设值为0.9962,对应5°夹角,则表明该两个局部平面的法向量之间的夹角大于5°,不应该进行融合,若余弦值大于该第一预设值,则表明局部平面的法向量之间的夹角小于5°,应该进行融合,在此就不再赘述了。
在判断两个局部平面的偏移量是否小于第二预设值时,可以通过计算分别到两个平面的距离来判断,原点到平面的距离公式为分别将两个局部平面的平面方程代入,则可以计算出原点到两个平面的距离d1和d2,如果|d1-d2|小于第二预设值,则表明两个局部平面之间的距离很小,应该进行融合,如果|d1-d2|大于于第二预设值,则表明两个局部平面之间的距离很大,不应该进行融合,在此就不再赘述了。
在实际应用中,第二预设值可以根据点云数据的实际情况来进行设定,例如,点云数据对应的空间同时在x、y和z方向上均超过了100米,则可以将第二预设值设定为相对较大的数值,如可以为0.1米,若点云数据对应的空间本身比较小,例如在x、y和z方向中跨度最大的方向才1米,则可以将第二预设值设定为相对较大的数值,如可以为0.1毫米,通过本实施例的介绍,本领域所属的技术人员能够根据实际情况,将第二预设值设置为合适的数值,以满足实际情况的需要,在此就不再赘述了。
当然了,通过本实施例的介绍,本领域所属的技术人员还能够根据实际情况,设置其他合适的条件来判断两个局部平面是否应该融合,以满足实际情况的需要,在此就不再赘述了。
在本实施例中,在融合两个局部平面时,可以是以两个局部平面内的数据点进行拟合,也即以两个局部平面的内点进行拟合,具体的过程可以采用前述介绍的随机抽样一致算法来进行平面检测,从而获得两个局部平面融合而成的平面,在此不再详述,需要说明的是,由于随机抽样一致算法的计算量只和迭代的次数相关,而与作为采样基础的数据集的规模无关,也即与数据集中数据点的数量无关,所以以两个局部平面的内点进行拟合时不会增加额外的计算量。
在本实施例中,由于是从八叉树结构的最底层,按预设条件逐级向上融合,所以在融合两个局部平面时,在八叉树结构上,不位于这两个局部平面的上层的其他局部平面可以进行并行处理,从而能够减少计算过程中耗费的时间,进一步加快融合的速度,在此就不再赘述了。
在另一实施例中,在融合两个局部平面时,也可以是将该两个局部平面对应的两个子数据集内的所有点来进行拟合,从而获得融合的平面,在此就不再赘述了。
为了提高本实施例提供的点云数据中平面的确定方法的精确性,在获得点云数据的N个平面之后,本实施例提供的方法还包括:获得点云数据中不属于N个平面的自由数据点,并计算自由数据点距离N个平面中每一个平面的距离,并在自由数据点距离N个平面中第一平面的距离小于第二设定阈值时,将自由数据点加入到第一平面中。
具体来讲,在前述部分计算每个子数据集对应的局部平面时,会有一部分数据点没有被纳入局部平面中,也即没有作为局部平面的内点,这部分数据点可以被称作自由数据点,但这部分自由数据点又确实属于点云数据,直接舍弃的话会造成N个平面中损失一部分面积,因此,在获得点云数据的N个平面之后,可以计算每个自由数据点距离N个平面中每一个平面的距离,以N个平面中的第一平面为例,若某一自由数据点距离第一平面的举例小于第二设定阈值,则将该自由数据点加入到第一平面中,作为第一平面的内点。
第二设定阈值与第一设定阈值的作用都是将距离平面一定距离内的数据点作为该平面的内点,因此,第二设定阈值和第一设定阈值可以相同,也可以不相同,本领域所属的技术人员能够根据实际情况进行设置,以满足实际情况的需要,在此不做限制。
另外,针对N个平面中一些数据点较少的第二类平面,也即内点数目少于第三预设值的第二类平面,删除第二类平面,并重新计算第二类平面中的数据点距离N个平面中每一个平面的距离,以第二类平面中的第一数据点、N个平面中的第三平面为例,在第一数据点距离第三平面的距离小于第三设定阈值时,则将第一数据点加入到第三平面中,使得第一数据点称为第三平面内点,这样,能够避免因对每个子数据集确定一个局部平面时因巧合而形成的一个局部平面的情况,巧合情况是指将点云数据分割为多个子数据集,并对每个子数 据集确定一个局部平面后,该局部平面在后续的融合过程中没有任何其他的局部平面或者融合了较少的局部平面,从而能够进一步提高本实施例提供的点云数据中平面的确定方法的精确性。
第三预设值例如可以是10、20、50等等,本领域所属的技术人员能够根据实际情况进行设置,以满足实际情况的需要,在此不做限制。
第三设定阈值与第一设定阈值的作用都是将距离平面一定距离内的数据点作为该平面的内点,因此,第三设定阈值和第一设定阈值可以相同,也可以不相同,本领域所属的技术人员能够根据实际情况进行设置,以满足实际情况的需要,在此不做限制。
在通过S2确定点云数据中的N个平面,以及与该N个平面一一对应的N个数据点集之后,本发明实施例提供的图像叠加方法进入S3:确定每一个数据点集对应的平面的边缘直线;
具体来讲,在本实施例中,将以该桌子的侧面为例,设定该侧面对应的数据点集为第二数据点集,来介绍如何通过S31-S34来确定每一个数据点集对应的平面的边缘直线:
S31:将第二数据点集中的所有数据点的坐标按投影到第二预设平面的方式转换为二维坐标,获得二维图像,第二预设平面与第二数据点集对应的平面平行;
在本实施例中,先确定一个与第二数据点集对应的平面平行的第二预设平面,由于第二数据点集对应的平面已知,因此很容易确定出第二预设平面,在此不再赘述,然后将第二数据点集中的所有数据点投影到该平面上,这样,就将第二数据点集中的数据点的三维坐标转换为了二维坐标。请参考图4A,图4A为本发明实施例提供的将第二数据点集投影到第二预设平面上的示意图。
S32:对二维图像进行形态学处理,并根据处理结果确定二维图像的边缘图像;
在本实施例中,对二维图像进行形态学处理,具体可以进行膨胀腐蚀等处理,去除该二维图像中的毛刺,请参考图4B,图4B为本发明实施例提供的对二维图像进行形态学处理后的示意图。
在对二维图像进行形态学处理后,即可以根据处理结果确定二维图像的边缘图像,具体的,可以通过对图4B所示的处理后的二维图像进行边缘检测, 例如可以通过具有多个方向的多方位形态学结构元素,应用基本形态运算,得到多个方向的边缘检测结果,再把这些结果进行归一化运算、加权求和,即能够得到最终的图像边缘,方向的数目选取可以由本领域所属的技术人员根据实际情况进行设置,以满足实际情况的需要,在此就不再赘述了。请参考图4C,图4C为本发明实施例提供的二维图像的边缘图像的示意图。
S33:对边缘图像进行边沿直线检测,并按预设条件选择直线;
在本实施例中,可以是对边缘图像通过霍夫变换(英文:Hough Transform)算法、基于Freeman(人名)准则的直线检测算法或尺蠖蠕行算法(英文:cankerwormcrawlalgorithm)等等,从边缘图像中确定出直线,由于边缘图像中的边沿直线有多条,所以需要按照预设条件来选择直线。
在本实施例中,该预设条件可以是:直线的长度最长,且直线的两边数据点数目之和的差最大。具体来讲,“直线的长度最长”这一要求需要直线为边缘图像中的最长边,也即要求该直线能够为边缘图像对应的平面的最显著特征,“直线的两边数据点数目之和的差最大”这一要求需要直线的两边中一边数据点较多,而另一边数据点较少,所以,同时满足预设条件中两个要求的直线即该直线代表了真实环境中平面的实际边缘。
当然,在实际应用中,通过本实施例的介绍,本领域所属的技术人员可以根据实际情况,选择上述预设条件中的两个要求任一作为预设条件,以满足实际情况的需要,例如,在已知一个规则的矩形平面的情况下,只需要选择“直线的长度最长”即能够满足需求,在此就不再赘述了。
S34:确定满足预设条件的直线为边缘直线。
在本实施例中,请参考图4D,图4D为本发明实施例提出的满足预设条件的直线的示意图,当然,在确定边缘直线后,还会通过逆投影的方式,将边缘直线逆投影到点云数据中,从而能够确定该桌子的侧面对应的实际边缘直线。
针对每一个数据点集,重复执行上述的步骤S31-S34,即能够确定每一个数据点集对应的平面的边缘直线,在此就不再详细介绍了。
在通过S3确定每一个数据点集对应的平面的边缘直线后,本发明实施例提供的图像叠加方法进入S4:在将虚拟图像叠加到N个平面中的第一平面上时,将虚拟图像中主要特征物的贴合面与第一平面贴合,且将主要特征物的正向边设置为与第一平面的边缘直线平行或者垂直,正向边为主要特征物的预设 朝向面和预设底面之间的相交线。
具体来讲,例如,在用户通过增强现实设备观察桌子时,则增强现实设备会在桌子上对应的平面叠加虚拟图像,具体如何选择平面在此不做介绍,本领域所属的技术人员能够根据实际情况选择合适的平面,本实施例中将主要介绍在平面上叠加虚拟图像的时候如何结合真实环境中平面的实际边缘。
在本实施例中,将以将虚拟图像叠加到桌子的侧面为例来进行介绍,请参考图5,图5为本发明实施例提供的虚拟图像中主要特征物的示意图,如图5所示,该主要特征物具体为一个玩偶,由于是将该玩偶叠加到桌子的侧面,所以在本实施例中,该玩偶的贴合面为该玩偶的背面,该玩偶的预设底面为该玩偶的底部部分,该玩偶的预设朝向面为该玩偶的正面。
在将该玩偶叠加到该桌子的侧面时,即会将该玩偶的背面贴合在桌子的侧面上,同时,将该玩偶的正向边设置为垂直或者平行于桌子的侧面的边缘直线,在本实施例中,由于桌子的侧面为垂直于地面,且确定出来的边缘直线垂直于地面,所以可以将该玩偶的底面设置为平行于地面,正向边设置为垂直于边缘直线,这样,用户通过增强现实设备看到该玩偶后,即会认为是挂在桌子的侧面上的一个真实玩偶,玩偶的真实性有了明显的提高,从而减少或者避免了用户察觉到该主要特征物为虚拟的可能性。
当然,在其他实施例中,贴合面可以根据实际情况进行设置,例如,将该玩偶叠加在平行于地面的桌面上时,则贴合面可以为该玩偶的底面;再以虚拟图像中主要特征物为书包为例,在将书包叠加到在平行于地面的桌面上时,可以将书包的底面设置为贴合面,用户看起来就以为该书包是正立着放置在桌面上,在将书包叠加到在垂直于地面的墙面上时,也可以将书包的背面(用户背着书包时用户的背部接触的那一面)设置为贴合面,用户看起来就以为该书包是挂在墙面上,在此就不再赘述了。
通过上述部分可以看出,由于在将虚拟图像叠加到真实环境的过程中,结合了真实环境中平面的实际边缘,与现有技术相比,虚拟图像中的主要特征物的位置更贴近于真实环境中实际物体的摆放方式,明显提高了虚拟图像中的主要特征物的真实性,从而减少或者避免了用户察觉到该主要特征物为虚拟的可能性,继而能够向用户提供沉浸式体验。
当然,在具体实施过程中,为了使得叠加到平面上的虚拟图像更加真实, 需要保证虚拟图像中主要特征物在叠加到平面上后,贴合面不会超出原平面的边缘,因此,在确定每一个数据点集对应的平面的边缘直线时,本发明实施例提供的图像叠加方法还包括:为每一个数据点集对应的平面确定一个矩形,矩形的一边与其所在平面的边缘直线平行。
在本实施例中,为每一个数据点集对应的平面确定一个矩形,具体包括:
对于每一个数据点集,按以下的S51-S54为其对应的平面确定矩形:
S51:将第一数据点集的所有数据点的坐标按投影到第一预设平面的方式转换为二维坐标,获得二维图像,第一预设平面与第一数据点集对应的平面平行;
具体来讲,继续以桌子的侧面为例进行介绍,也即以桌子的侧面对应的数据点集为第一数据点集为例,请继续参考图6A,图6A为本发明实施例提供的将第一数据点集投影到第一预设平面上的示意图,由于第一数据点集和第二数据点集对应的平面均为桌子的侧面,所以图6A和图4A的内容是完全一致的。
在本实施例中,为了便于计算,将图6A所示的示意图进行旋转处理,使得边缘直线为水平方向或者垂直方向,请参考图6B,图6B为本发明实施例提供的将图6A所示的投影图像进行旋转处理后的示意图。
S52:确定二维图像中的种子点,种子点为二维图像中预设大小区域内的数据点占比最高的中心点;
具体来讲,可以遍历二维图像中的每一个数据点,计算以每个数据点为中心的预设大小区域的数据点占比,例如,以预设大小区域为10*10的区域为例,以第一个数据点为中心的预设大小区域内的数据点有100个,以第二个数据点为中心的预设大小区域内的数据点有85个,以第三个数据点为中心的预设大小区域内的数据点有25个,则可以将第一个数据点作为种子点。
在具体实施过程中,预设大小区域的具体数值可以由本领域所属的技术人员更加实际情况进行设置,以满足实际情况的需要,在此不做限制。
在有多个数据点为中心的预设大小区域内的数据点占比相同的情况下,则可以继续扩大预设区域,直到数据点的数目变为预设数目,例如,5个或10个等等。
当然,在实际应用中,可能会存在一个平面分为几个大块的情况,例如一个平面存在一个狭窄区域,则该狭窄区域会将平面分为两个大块,这样,该平 面内就会存在数据点占比同为最高的至少两个点,所以,此时可以将这些数据点分为多个集合,每个集合内的点至少与集合中的另一点邻接,任意两个集合中的点不邻接。这样,就能够保证不会丢失平面中的数据。
S53:根据种子点确定二维图像中的矩形;具体来讲,可以是先以种子点为中心设定第一矩形,该第一矩形的面积等于第一阈值,第一阈值可以由本领域所属的技术人员根据实际情况进行设定,如平面的实际区域较大,则第一阈值可以较大,若平面较小,则第一阈值可以较小,例如第一阈值可以为10*12;接着,检测该第一矩形内的数据点数目与像素点数目的第一比值,例如,第一矩形内的像素点数目为10*12=120,若第一矩形内的数据点数目为90,则第一比值为3:4;然后,判断该第一比值是否大于第二阈值,第二阈值也是本领域所属的技术人员能够根据实际情况设置的,例如第二阈值可以为60%、70%等等,在本实施例中,第一比值大于第二阈值,则可以按种子点到第一矩形的四条边的四个方向对第一矩形进行扩大。
在本实施例中,将介绍两种对矩形进行扩大的方式:
第一种:按种子点到第一矩形的四条边的方向分别进行扩大;每个方向扩大后重新检测第一比值;若重新检测后的第一比值大于第二阈值,则在对应的方向上继续扩大,若第一比值小于第二阈值,则在对应的方向上停止扩大,并在其他的方向上扩大;直到每个方向都停止扩大,将最后获得的矩形作为第二矩形。
第二种:按种子点到第一矩形的四条边的方向分别进行扩大;每个方向扩大后,检测第一矩形的四条边上的数据点数目与像素点数目的第二比值;若第二比值大于第三阈值,则在对应的方向上继续扩大,若第二比值小于第三阈值,则在对应的方向停止扩大,并在其他的方向上扩大;直到每个方向都停止扩大,将最后获得的矩形作为第二矩形。
对每一个种子点都按上述过程进行处理后,就能够获得每个种子点对应的第二矩形,将其中面积最大的第二矩形作为二维图像中的矩形,请参考图6C,图6C为本发明实施例提供的二维图像中的矩形的示意图。
S54:将矩形的端点坐标按逆投影的方式转换为三维坐标,为第一数据点集对应的平面确定出矩形。
具体来讲,将矩形的四个端点坐标,分别按照S51中投影的逆过程进行处 理,从而获得具有三维坐标的四个端点,从而为第一数据点集对应的平面,也即桌子的侧面确定出了矩形。
请参考图6D,图6D为本发明实施例提供的二维图像中的第一数据点集对应的平面中的矩形的示意图
这样,在将虚拟图像中主要特征物的贴合面与第一平面贴合时,本发明实施例提供的图像叠加方法还包括:根据贴合面与矩形的相对大小,按比例调整主要特征物的大小。
具体来讲,虚拟图像中主要特征物的贴合面也是具有一定大小的,若贴合面小于矩形,则可以按照虚拟图像的原始大小,将主要特征物贴合在该平面的矩形上,也可以将虚拟图像的原始大小按预设比例变大,使得主要特征物在变大的同时,主要特征物的贴合面不大于该平面的矩形;若贴合面大于矩形,则可以按照虚拟图像按比例变小,使得主要特征物的贴合面小于或者等于矩形,当然,变小的比例需要设定一个最小值,否则会影响主要特征物的显示,在此就不再赘述了。
这样,在将虚拟图像中的主要特征物的贴合面贴合在平面的矩形上时,不会由于贴合面过大而使得主要特征物看起来是悬浮在空中,使得叠加的虚拟图像中主要特征物的真实性进一步提高,从而进一步减少或者避免了用户察觉到该主要特征物为虚拟的可能性,继而能够更好地向用户提供沉浸式体验。
基于同一发明构思,本发明实施例还提供一种用于增强现实的图像叠加装置,包括:
获得模块,用于获得一预设场景的点云数据,点云数据以数据点的方式记录了预设场景的表面的三维几何信息,其中每一个数据点包含有三维坐标;
平面确定模块,用于确定点云数据中的N个平面,以及与N个平面一一对应的N个数据点集,其中N为正整数;
直线确定模块,用于确定每一个数据点集对应的平面的边缘直线;
图像叠加模块,用于在将虚拟图像叠加到N个平面中的第一平面上时,将虚拟图像中主要特征物的贴合面与第一平面贴合,且将主要特征物的正向边设置为与第一平面的边缘直线平行或者垂直,正向边为主要特征物的预设朝向面和预设底面之间的相交线。
在具体实施过程中,图像叠加装置还包括矩形确定模块,矩形确定模块用 于在确定每一个数据点集对应的平面的边缘直线时,为每一个数据点集对应的平面确定一个矩形,矩形的一边与其所在平面的边缘直线平行;
图像叠加模块还用于在将虚拟图像中主要特征物的贴合面与第一平面贴合时,根据贴合面与矩形的相对大小,按比例调整主要特征物的大小。
在具体实施过程中,矩形确定模块具体用于:
对于每一个数据点集,按以下步骤为其对应的平面确定矩形:
将第一数据点集的所有数据点的坐标按投影到第一预设平面的方式转换为二维坐标,获得二维图像,第一预设平面与第一数据点集对应的平面平行;
确定二维图像中的种子点,种子点为二维图像中预设大小区域内的数据点占比最高的中心点;
根据种子点确定二维图像中的矩形;
将矩形的端点坐标按逆投影的方式转换为三维坐标,为第一数据点集对应的平面确定出矩形。
在具体实施过程中,矩形确定模块具体用于:
计算二维图像中以每一个数据点为中心的预设大小区域的数据点占比;
若其中第一数据点的数据点占比最高,则将第一数据点作为种子点。
在具体实施过程中,矩形确定模块用于在一平面中存在数据点占比同为最高的多个数据点时,将数据点占比同为最高的多个数据点分为多个集合,每个集合内的点至少与集合中的另一个点邻接,任意两个集合中的点不邻接。
在具体实施过程中,矩形确定模块具体用于:
设定以种子点为中心、面积等于第一阈值的第一矩形;
检测第一矩形内的数据点数目与像素点数目的第一比值;
若第一比值大于第二阈值,则按种子点到第一矩形的四条边的四个方向对第一矩形进行扩大,获得扩大后的第二矩形;
将面积最大的第二矩形作为二维图像中的矩形。
在具体实施过程中,矩形确定模块具体用于:
按种子点到第一矩形的四条边的方向分别进行扩大;
每个方向扩大后重新检测第一比值;
若重新检测后的第一比值大于第二阈值,则在对应的方向上继续扩大,若第一比值小于第二阈值,则在对应的方向上停止扩大,并在其他的方向上扩大;
直到每个方向都停止扩大,将最后获得的矩形作为第二矩形。
在具体实施过程中,矩形确定模块具体用于:
按种子点到第一矩形的四条边的方向分别进行扩大;
每个方向扩大后,检测第一矩形的四条边上的数据点数目与像素点数目的第二比值;
若第二比值大于第三阈值,则在对应的方向上继续扩大,若第二比值小于第三阈值,则在对应的方向停止扩大,并在其他的方向上扩大;
直到每个方向都停止扩大,将最后获得的矩形作为第二矩形。
在具体实施过程中,平面确定模块具体用于:
将点云数据按坐标划分为多个子数据集;
为多个子数据集中的每个子数据集确定一个局部平面;
融合所有子数据集对应的局部平面,确定N个平面。
在具体实施过程中,直线确定模块具体用于:
对于每一个数据点集,按以下步骤确定其对应的平面的边缘直线:
将第二数据点集中的所有数据点的坐标按投影到第二预设平面的方式转换为二维坐标,获得二维图像,第二预设平面与第二数据点集对应的平面平行;
对二维图像进行形态学处理,并根据处理结果确定二维图像的边缘图像;
对边缘图像进行边沿直线检测,并按预设条件选择直线;
确定满足预设条件的直线为边缘直线。
在具体实施过程中,预设条件具体为:直线的长度最长,且直线的两边数据点数目之和的差最大。
本发明实施例中的图像叠加装置与前述部分介绍的图像叠加方法是基于同一发明构思下的两个方面,在前述部分中已经详细地介绍了图像叠加方法的具体处理过程,在此为了说明书的简洁,就不再赘述了。
本发明实施例中的一个或者多个技术方案,至少具有如下技术效果或者优点:
1、由于在将虚拟图像叠加到真实环境的过程中,结合了真实环境中平面的实际边缘,与现有技术相比,虚拟图像中的主要特征物的位置更贴近于真实环境中实际物体的摆放方式,明显提高了虚拟图像中的主要特征物的真实性,从而减少或者避免了用户察觉到该主要特征物为虚拟的可能性,继而能够向用 户提供沉浸式体验。
2、由于采用了确定数据点集对应的平面中的矩形,并根据虚拟图像中主要特征物的贴合面与矩形的相对大小,按比例调整主要特征物的大小的技术方案,使得叠加的虚拟图像中主要特征物的真实性进一步提高,从而进一步减少或者避免了用户察觉到该主要特征物为虚拟的可能性,继而能够更好地向用户提供沉浸式体验。
本发明公开了以下技术方案:
A1、一种用于增强现实的图像叠加方法,其特征在于,包括:
获得一预设场景的点云数据,所述点云数据以数据点的方式记录了所述预设场景的表面的三维几何信息,其中每一个数据点包含有三维坐标;
确定所述点云数据中的N个平面,以及与所述N个平面一一对应的N个数据点集,其中N为正整数;
确定每一个数据点集对应的平面的边缘直线;
在将虚拟图像叠加到所述N个平面中的第一平面上时,将所述虚拟图像中主要特征物的贴合面与所述第一平面贴合,且将所述主要特征物的正向边设置为与所述第一平面的边缘直线平行或者垂直,所述正向边为所述主要特征物的预设朝向面和预设底面之间的相交线。
A2、如A1所述的图像叠加方法,其特征在于,
在所述确定每一个数据点集对应的平面的边缘直线时,所述方法还包括:为每一个数据点集对应的平面确定一个矩形,所述矩形的一边与其所在平面的边缘直线平行;
在所述将所述虚拟图像中主要特征物的贴合面与所述第一平面贴合时,所述方法还包括:根据所述贴合面与所述矩形的相对大小,按比例调整所述主要特征物的大小。
A3、如A2所述的图像叠加方法,其特征在于,所述为每一个数据点集对应的平面确定一个矩形,具体包括:
对于每一个数据点集,按以下步骤为其对应的平面确定矩形:
将第一数据点集的所有数据点的坐标按投影到第一预设平面的方式转换为二维坐标,获得二维图像,所述第一预设平面与所述第一数据点集对应的平面平行;
确定所述二维图像中的种子点,所述种子点为所述二维图像中预设大小区域内的数据点占比最高的中心点;
根据所述种子点确定所述二维图像中的矩形;
将所述矩形的端点坐标按逆投影的方式转换为三维坐标,为所述第一数据点集对应的平面确定出矩形。
A4、如A3所述的图像叠加方法,其特征在于,所述确定所述二维图像中的种子点,具体包括:
计算所述二维图像中以每一个数据点为中心的预设大小区域的数据点占比;
若其中第一数据点的数据点占比最高,则将所述第一数据点作为所述种子点。
A5、如A4所述的图像叠加方法,其特征在于,若一平面中存在数据点占比同为最高的多个数据点,则将所述数据点占比同为最高的多个数据点分为多个集合,每个集合内的点至少与集合中的另一个点邻接,任意两个集合中的点不邻接。
A6、如A3-5中任一权项所述的图像叠加方法,其特征在于,所述根据所述种子点确定所述二维图像中的矩形,具体包括:
设定以所述种子点为中心、面积等于第一阈值的第一矩形;
检测所述第一矩形内的数据点数目与像素点数目的第一比值;
若所述第一比值大于第二阈值,则按所述种子点到所述第一矩形的四条边的四个方向对所述第一矩形进行扩大,获得扩大后的第二矩形;
将面积最大的第二矩形作为所述二维图像中的矩形。
A7、如A6所述的图像叠加方法,其特征在于,所述按所述种子点到所述第一矩形的四条边的四个方向对所述第一矩形进行扩大,获得扩大后的第二矩形,具体包括:
按所述种子点到所述第一矩形的四条边的方向分别进行扩大;
每个方向扩大后重新检测所述第一比值;
若重新检测后的第一比值大于所述第二阈值,则在对应的方向上继续扩大,若所述第一比值小于所述第二阈值,则在所述对应的方向上停止扩大,并在其他的方向上扩大;
直到每个方向都停止扩大,将最后获得的矩形作为所述第二矩形。
A8、如A6所述的图像叠加方法,其特征在于,所述种子点到所述第一矩形的四条边的方向分别进行扩大,获得扩大后的第二矩形,具体包括:
按所述种子点到所述第一矩形的四条边的方向分别进行扩大;
每个方向扩大后,检测所述第一矩形的四条边上的数据点数目与像素点数目的第二比值;
若所述第二比值大于第三阈值,则在对应的方向上继续扩大,若所述第二比值小于所述第三阈值,则在所述对应的方向停止扩大,并在其他的方向上扩大;
直到每个方向都停止扩大,将最后获得的矩形作为所述第二矩形。
A9、如A1所述的图像叠加方法,其特征在于,所述确定点云数据中的N个平面,具体包括:
将所述点云数据按坐标划分为多个子数据集;
为所述多个子数据集中的每个子数据集确定一个局部平面;
融合所有子数据集对应的局部平面,确定所述N个平面。
A10、如A1所述的图像叠加方法,其特征在于,所述确定每一个数据点集对应的平面的边缘直线,包括:
对于每一个数据点集,按以下步骤确定其对应的平面的边缘直线:
将第二数据点集中的所有数据点的坐标按投影到第二预设平面的方式转换为二维坐标,获得二维图像,所述第二预设平面与所述第二数据点集对应的平面平行;
对所述二维图像进行形态学处理,并根据处理结果确定所述二维图像的边缘图像;
对所述边缘图像进行边沿直线检测,并按预设条件选择直线;
确定满足所述预设条件的直线为所述边缘直线。
A11、如A10所述的图像叠加方法,其特征在于,所述预设条件具体为:直线的长度最长,且直线的两边数据点数目之和的差最大。
12、一种用于增强现实的图像叠加装置,其特征在于,包括:
获得模块,用于获得一预设场景的点云数据,所述点云数据以数据点的方式记录了所述预设场景的表面的三维几何信息,其中每一个数据点包含有三维 坐标;
平面确定模块,用于确定所述点云数据中的N个平面,以及与所述N个平面一一对应的N个数据点集,其中N为正整数;
直线确定模块,用于确定每一个数据点集对应的平面的边缘直线;
图像叠加模块,用于在将虚拟图像叠加到所述N个平面中的第一平面上时,将所述虚拟图像中主要特征物的贴合面与所述第一平面贴合,且将所述主要特征物的正向边设置为与所述第一平面的边缘直线平行或者垂直,所述正向边为所述主要特征物的预设朝向面和预设底面之间的相交线。
B13、如B12所述的图像叠加装置,其特征在于,
所述图像叠加装置还包括矩形确定模块,所述矩形确定模块用于在所述确定每一个数据点集对应的平面的边缘直线时,为每一个数据点集对应的平面确定一个矩形,所述矩形的一边与其所在平面的边缘直线平行;
所述图像叠加模块还用于在所述将所述虚拟图像中主要特征物的贴合面与所述第一平面贴合时,根据所述贴合面与所述矩形的相对大小,按比例调整所述主要特征物的大小。
B14、如B13所述的图像叠加装置,其特征在于,所述矩形确定模块具体用于:
对于每一个数据点集,按以下步骤为其对应的平面确定矩形:
将第一数据点集的所有数据点的坐标按投影到第一预设平面的方式转换为二维坐标,获得二维图像,所述第一预设平面与所述第一数据点集对应的平面平行;
确定所述二维图像中的种子点,所述种子点为所述二维图像中预设大小区域内的数据点占比最高的中心点;
根据所述种子点确定所述二维图像中的矩形;
将所述矩形的端点坐标按逆投影的方式转换为三维坐标,为所述第一数据点集对应的平面确定出矩形。
B15、如B14所述的图像叠加装置,其特征在于,所述矩形确定模块具体用于:
计算所述二维图像中以每一个数据点为中心的预设大小区域的数据点占比;
若其中第一数据点的数据点占比最高,则将所述第一数据点作为所述种子点。
B16、如B15所述的图像叠加装置,其特征在于,所述矩形确定模块用于在一平面中存在数据点占比同为最高的多个数据点时,将所述数据点占比同为最高的多个数据点分为多个集合,每个集合内的点至少与集合中的另一个点邻接,任意两个集合中的点不邻接。
B17、如B14-16中任一权项所述的图像叠加装置,其特征在于,所述矩形确定模块具体用于:
设定以所述种子点为中心、面积等于第一阈值的第一矩形;
检测所述第一矩形内的数据点数目与像素点数目的第一比值;
若所述第一比值大于第二阈值,则按所述种子点到所述第一矩形的四条边的四个方向对所述第一矩形进行扩大,获得扩大后的第二矩形;
将面积最大的第二矩形作为所述二维图像中的矩形。
B18、如B17所述的图像叠加装置,其特征在于,所述矩形确定模块具体用于:
按所述种子点到所述第一矩形的四条边的方向分别进行扩大;
每个方向扩大后重新检测所述第一比值;
若重新检测后的第一比值大于所述第二阈值,则在对应的方向上继续扩大,若所述第一比值小于所述第二阈值,则在所述对应的方向上停止扩大,并在其他的方向上扩大;
直到每个方向都停止扩大,将最后获得的矩形作为所述第二矩形。
B19、如B17所述的图像叠加装置,其特征在于,所述矩形确定模块具体用于:
按所述种子点到所述第一矩形的四条边的方向分别进行扩大;
每个方向扩大后,检测所述第一矩形的四条边上的数据点数目与像素点数目的第二比值;
若所述第二比值大于第三阈值,则在对应的方向上继续扩大,若所述第二比值小于所述第三阈值,则在所述对应的方向停止扩大,并在其他的方向上扩大;
直到每个方向都停止扩大,将最后获得的矩形作为所述第二矩形。
B20、如B12所述的图像叠加装置,其特征在于,所述平面确定模块具体用于:
将所述点云数据按坐标划分为多个子数据集;
为所述多个子数据集中的每个子数据集确定一个局部平面;
融合所有子数据集对应的局部平面,确定所述N个平面。
B21、如B12所述的图像叠加装置,其特征在于,所述直线确定模块具体用于:
对于每一个数据点集,按以下步骤确定其对应的平面的边缘直线:
将第二数据点集中的所有数据点的坐标按投影到第二预设平面的方式转换为二维坐标,获得二维图像,所述第二预设平面与所述第二数据点集对应的平面平行;
对所述二维图像进行形态学处理,并根据处理结果确定所述二维图像的边缘图像;
对所述边缘图像进行边沿直线检测,并按预设条件选择直线;
确定满足所述预设条件的直线为所述边缘直线。
B22、如B21所述的图像叠加装置,其特征在于,所述预设条件具体为:直线的长度最长,且直线的两边数据点数目之和的差最大。
本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。
本说明书(包括任何附加权利要求、摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
本发明并不局限于前述的具体实施方式。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。
Claims (10)
1.一种用于增强现实的图像叠加方法,其特征在于,包括:
获得一预设场景的点云数据,所述点云数据以数据点的方式记录了所述预设场景的表面的三维几何信息,其中每一个数据点包含有三维坐标;
确定所述点云数据中的N个平面,以及与所述N个平面一一对应的N个数据点集,其中N为正整数;
确定每一个数据点集对应的平面的边缘直线;
在将虚拟图像叠加到所述N个平面中的第一平面上时,将所述虚拟图像中主要特征物的贴合面与所述第一平面贴合,且将所述主要特征物的正向边设置为与所述第一平面的边缘直线平行或者垂直,所述正向边为所述主要特征物的预设朝向面和预设底面之间的相交线。
2.如权利要求1所述的图像叠加方法,其特征在于,
在所述确定每一个数据点集对应的平面的边缘直线时,所述方法还包括:为每一个数据点集对应的平面确定一个矩形,所述矩形的一边与其所在平面的边缘直线平行;
在所述将所述虚拟图像中主要特征物的贴合面与所述第一平面贴合时,所述方法还包括:根据所述贴合面与所述矩形的相对大小,按比例调整所述主要特征物的大小。
3.如权利要求2所述的图像叠加方法,其特征在于,所述为每一个数据点集对应的平面确定一个矩形,具体包括:
对于每一个数据点集,按以下步骤为其对应的平面确定矩形:
将第一数据点集的所有数据点的坐标按投影到第一预设平面的方式转换为二维坐标,获得二维图像,所述第一预设平面与所述第一数据点集对应的平面平行;
确定所述二维图像中的种子点,所述种子点为所述二维图像中预设大小区域内的数据点占比最高的中心点;
根据所述种子点确定所述二维图像中的矩形;
将所述矩形的端点坐标按逆投影的方式转换为三维坐标,为所述第一数据点集对应的平面确定出矩形。
4.如权利要求3所述的图像叠加方法,其特征在于,所述确定所述二维图像中的种子点,具体包括:
计算所述二维图像中以每一个数据点为中心的预设大小区域的数据点占比;
若其中第一数据点的数据点占比最高,则将所述第一数据点作为所述种子点。
5.如权利要求4所述的图像叠加方法,其特征在于,若一平面中存在数据点占比同为最高的多个数据点,则将所述数据点占比同为最高的多个数据点分为多个集合,每个集合内的点至少与集合中的另一个点邻接,任意两个集合中的点不邻接。
6.如权利要求3-5中任一权项所述的图像叠加方法,其特征在于,所述根据所述种子点确定所述二维图像中的矩形,具体包括:
设定以所述种子点为中心、面积等于第一阈值的第一矩形;
检测所述第一矩形内的数据点数目与像素点数目的第一比值;
若所述第一比值大于第二阈值,则按所述种子点到所述第一矩形的四条边的四个方向对所述第一矩形进行扩大,获得扩大后的第二矩形;
将面积最大的第二矩形作为所述二维图像中的矩形。
7.如权利要求6所述的图像叠加方法,其特征在于,所述按所述种子点到所述第一矩形的四条边的四个方向对所述第一矩形进行扩大,获得扩大后的第二矩形,具体包括:
按所述种子点到所述第一矩形的四条边的方向分别进行扩大;
每个方向扩大后重新检测所述第一比值;
若重新检测后的第一比值大于所述第二阈值,则在对应的方向上继续扩大,若所述第一比值小于所述第二阈值,则在所述对应的方向上停止扩大,并在其他的方向上扩大;
直到每个方向都停止扩大,将最后获得的矩形作为所述第二矩形。
8.如权利要求6所述的图像叠加方法,其特征在于,所述种子点到所述第一矩形的四条边的方向分别进行扩大,获得扩大后的第二矩形,具体包括:
按所述种子点到所述第一矩形的四条边的方向分别进行扩大;
每个方向扩大后,检测所述第一矩形的四条边上的数据点数目与像素点数目的第二比值;
若所述第二比值大于第三阈值,则在对应的方向上继续扩大,若所述第二比值小于所述第三阈值,则在所述对应的方向停止扩大,并在其他的方向上扩大;
直到每个方向都停止扩大,将最后获得的矩形作为所述第二矩形。
9.如权利要求1所述的图像叠加方法,其特征在于,所述确定点云数据中的N个平面,具体包括:
将所述点云数据按坐标划分为多个子数据集;
为所述多个子数据集中的每个子数据集确定一个局部平面;
融合所有子数据集对应的局部平面,确定所述N个平面。
10.一种用于增强现实的图像叠加装置,其特征在于,包括:
获得模块,用于获得一预设场景的点云数据,所述点云数据以数据点的方式记录了所述预设场景的表面的三维几何信息,其中每一个数据点包含有三维坐标;
平面确定模块,用于确定所述点云数据中的N个平面,以及与所述N个平面一一对应的N个数据点集,其中N为正整数;
直线确定模块,用于确定每一个数据点集对应的平面的边缘直线;
图像叠加模块,用于在将虚拟图像叠加到所述N个平面中的第一平面上时,将所述虚拟图像中主要特征物的贴合面与所述第一平面贴合,且将所述主要特征物的正向边设置为与所述第一平面的边缘直线平行或者垂直,所述正向边为所述主要特征物的预设朝向面和预设底面之间的相交线。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610285886.8A CN107358609B (zh) | 2016-04-29 | 2016-04-29 | 一种用于增强现实的图像叠加方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610285886.8A CN107358609B (zh) | 2016-04-29 | 2016-04-29 | 一种用于增强现实的图像叠加方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107358609A true CN107358609A (zh) | 2017-11-17 |
CN107358609B CN107358609B (zh) | 2020-08-04 |
Family
ID=60270575
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610285886.8A Active CN107358609B (zh) | 2016-04-29 | 2016-04-29 | 一种用于增强现实的图像叠加方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107358609B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110458805A (zh) * | 2019-03-26 | 2019-11-15 | 华为技术有限公司 | 一种平面检测方法、计算设备以及电路系统 |
WO2020029555A1 (zh) * | 2018-08-09 | 2020-02-13 | 北京微播视界科技有限公司 | 用于平面间无缝切换的方法、装置和计算机可读存储介质 |
CN110827376A (zh) * | 2018-08-09 | 2020-02-21 | 北京微播视界科技有限公司 | 增强现实多平面模型动画交互方法、装置、设备及存储介质 |
CN110825280A (zh) * | 2018-08-09 | 2020-02-21 | 北京微播视界科技有限公司 | 控制虚拟物体位置移动的方法、装置和计算机可读存储介质 |
CN116578876A (zh) * | 2023-07-12 | 2023-08-11 | 国网江苏省电力有限公司苏州供电分公司 | 一种基于对抗性攻击深度神经网络的安全性提升方法 |
US11741676B2 (en) | 2021-01-21 | 2023-08-29 | Samsung Electronics Co., Ltd. | System and method for target plane detection and space estimation |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120154638A1 (en) * | 2010-12-21 | 2012-06-21 | Cyberlink Corp. | Systems and Methods for Implementing Augmented Reality |
CN102568026A (zh) * | 2011-12-12 | 2012-07-11 | 浙江大学 | 一种多视点自由立体显示的三维增强现实方法 |
CN104268842A (zh) * | 2014-10-10 | 2015-01-07 | 五邑大学 | 基于Contour算法和Gabor滤波的虚实融合的方法 |
CN104539925A (zh) * | 2014-12-15 | 2015-04-22 | 北京邮电大学 | 基于深度信息的三维场景增强现实的方法及系统 |
CN105046710A (zh) * | 2015-07-23 | 2015-11-11 | 北京林业大学 | 基于深度图分割与代理几何体的虚实碰撞交互方法及装置 |
-
2016
- 2016-04-29 CN CN201610285886.8A patent/CN107358609B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120154638A1 (en) * | 2010-12-21 | 2012-06-21 | Cyberlink Corp. | Systems and Methods for Implementing Augmented Reality |
CN102568026A (zh) * | 2011-12-12 | 2012-07-11 | 浙江大学 | 一种多视点自由立体显示的三维增强现实方法 |
CN104268842A (zh) * | 2014-10-10 | 2015-01-07 | 五邑大学 | 基于Contour算法和Gabor滤波的虚实融合的方法 |
CN104539925A (zh) * | 2014-12-15 | 2015-04-22 | 北京邮电大学 | 基于深度信息的三维场景增强现实的方法及系统 |
CN105046710A (zh) * | 2015-07-23 | 2015-11-11 | 北京林业大学 | 基于深度图分割与代理几何体的虚实碰撞交互方法及装置 |
Non-Patent Citations (1)
Title |
---|
偰冬慧: "基于增强现实的手部康复训练系统的研究", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020029555A1 (zh) * | 2018-08-09 | 2020-02-13 | 北京微播视界科技有限公司 | 用于平面间无缝切换的方法、装置和计算机可读存储介质 |
CN110827376A (zh) * | 2018-08-09 | 2020-02-21 | 北京微播视界科技有限公司 | 增强现实多平面模型动画交互方法、装置、设备及存储介质 |
CN110825280A (zh) * | 2018-08-09 | 2020-02-21 | 北京微播视界科技有限公司 | 控制虚拟物体位置移动的方法、装置和计算机可读存储介质 |
CN110825279A (zh) * | 2018-08-09 | 2020-02-21 | 北京微播视界科技有限公司 | 平面间无缝切换的方法、装置和计算机可读存储介质 |
CN110458805A (zh) * | 2019-03-26 | 2019-11-15 | 华为技术有限公司 | 一种平面检测方法、计算设备以及电路系统 |
CN110458805B (zh) * | 2019-03-26 | 2022-05-13 | 华为技术有限公司 | 一种平面检测方法、计算设备以及电路系统 |
US11741676B2 (en) | 2021-01-21 | 2023-08-29 | Samsung Electronics Co., Ltd. | System and method for target plane detection and space estimation |
CN116578876A (zh) * | 2023-07-12 | 2023-08-11 | 国网江苏省电力有限公司苏州供电分公司 | 一种基于对抗性攻击深度神经网络的安全性提升方法 |
CN116578876B (zh) * | 2023-07-12 | 2024-02-13 | 国网江苏省电力有限公司苏州供电分公司 | 一种基于对抗性攻击深度神经网络的安全性提升方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107358609B (zh) | 2020-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107358609A (zh) | 一种用于增强现实的图像叠加方法及装置 | |
CN108961395B (zh) | 一种基于拍照重建三维空间场景的方法 | |
CN109961406B (zh) | 一种图像处理的方法、装置及终端设备 | |
CN106875444B (zh) | 一种目标物定位方法及装置 | |
KR101319805B1 (ko) | 큰 물체의 사진촬영 | |
CN103810744B (zh) | 在点云中回填点 | |
CN104463899B (zh) | 一种目标对象检测、监控方法及其装置 | |
CN107798704A (zh) | 一种用于增强现实的实时图像叠加方法及装置 | |
CN107798702A (zh) | 一种用于增强现实的实时图像叠加方法以及装置 | |
CN104751405B (zh) | 一种用于对图像进行虚化的方法和装置 | |
CN109690620A (zh) | 三维模型生成装置以及三维模型生成方法 | |
JPH1196374A (ja) | 3次元モデリング装置、3次元モデリング方法および3次元モデリングプログラムを記録した媒体 | |
TW201239809A (en) | Apparatus for generating a real-time stereoscopic image and method thereof | |
CN109155070A (zh) | 使用平面镜校准立体成像系统的方法和计算机程序产品 | |
CN107274483A (zh) | 一种物体三维模型构建方法 | |
CN110472460A (zh) | 人脸图像处理方法及装置 | |
CN109842811A (zh) | 一种在视频中植入推送信息的方法、装置及电子设备 | |
CN106778660B (zh) | 一种人脸姿态校正方法及装置 | |
CN106604003A (zh) | 一种短焦投影实现曲面幕布投影的方法及系统 | |
CN106327576B (zh) | 一种城市场景重建方法及系统 | |
TW201707437A (zh) | 畫像處理裝置及畫像處理方法 | |
US20230215047A1 (en) | Free-viewpoint method and system | |
CN111091594B (zh) | 多点云平面融合方法及装置 | |
CN107203961B (zh) | 一种表情迁移的方法及电子设备 | |
CN107798703A (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 |