CN108629799A - 一种实现增强现实的方法及设备 - Google Patents
一种实现增强现实的方法及设备 Download PDFInfo
- Publication number
- CN108629799A CN108629799A CN201710181831.7A CN201710181831A CN108629799A CN 108629799 A CN108629799 A CN 108629799A CN 201710181831 A CN201710181831 A CN 201710181831A CN 108629799 A CN108629799 A CN 108629799A
- Authority
- CN
- China
- Prior art keywords
- plane
- scene image
- environment scene
- newly
- frame environment
- 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
- 238000000034 method Methods 0.000 title claims abstract description 45
- 230000003190 augmentative effect Effects 0.000 title claims abstract description 17
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 44
- 238000012545 processing Methods 0.000 claims description 8
- 230000004927 fusion Effects 0.000 description 6
- 239000000203 mixture Substances 0.000 description 6
- 238000001514 detection method Methods 0.000 description 5
- 239000003550 marker Substances 0.000 description 4
- 239000011800 void material Substances 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 241000251468 Actinopterygii Species 0.000 description 1
- 240000007594 Oryza sativa Species 0.000 description 1
- 235000007164 Oryza sativa Nutrition 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 238000004040 coloring Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- JZCCFEFSEZPSOG-UHFFFAOYSA-L copper(II) sulfate pentahydrate Chemical compound O.O.O.O.O.[Cu+2].[O-]S([O-])(=O)=O JZCCFEFSEZPSOG-UHFFFAOYSA-L 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011038 discontinuous diafiltration by volume reduction Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 210000003128 head Anatomy 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 235000009566 rice Nutrition 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
- 238000007794 visualization technique Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/30—Determination of transform parameters for the alignment of images, i.e. image registration
- G06T7/38—Registration of image sequences
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4038—Image mosaicing, e.g. composing plane images from plane sub-images
-
- 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/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种实现增强现实的方法及设备,从实时采集的环境场景图像中选取某一帧环境场景图像作为第1帧环境场景图像,利用Slam算法对相邻多帧环境场景图像进行图像配准,计算出所述第1帧环境场景图像及其之后的每帧图像的三维点云数据;获取第i帧相对于第(i‑1)帧环境场景图像的新增三维点云数据,并利用Delaunay三角剖分算法对所述新增三维点云数据进行处理,得到处理后的新增三角面集合;将所述新增三角面集合中的每个新增三角面拼接到所述第(i‑1)帧环境场景图像的平面集合中,得到所述第i帧环境场景图像的平面集合;基于预设条件,从所述第i帧环境场景图像的平面集合中选取一个可见平面作为目标平面,并将待显示的虚拟信息叠加在选取的目标平面中进行显示。
Description
技术领域
本发明涉及增强现实技术领域,尤其涉及一种实现增强现实的方法及设备。
背景技术
增强现实技术(Augmented Reality,AR)借助计算机图形技术和可视化技术生成现实环境中不存在的虚拟对象,并通过图像识别定位技术将虚拟对象准确地融合到真实环境中,借助显示设备将虚拟对象与真实环境融为一体,并呈现给使用者真实的感观体验。
现有的AR-Glass设备通过SLAM算法根据输入端(灰度摄像头、彩色摄像头、深度摄像头、传感器设备等器件中的一种或多种)数据得到场景3D信息(三维重建)和设备在场景中的姿态(位置和旋转数据),并通过video see-through或者optical see-through的方式呈现真实场景。同时根据SLAM算法得到的场景3D信息和设备在场景中的姿态在真实场景中融合显示虚拟信息(文字、图片、视频、三维模型、独立的三维场景等)。但是,在显示虚拟信息时通常是通过预设其在真实场景中的姿态或者让用户手动控制虚拟信息移动到想要显示的位置,这种方式操作复杂而且虚实融合会存在较大偏差的问题。
发明内容
本发明提供一种实现增强现实的方法及设备,能够自动控制虚拟信息移动到想要显示的位置,简化操作且能够有效降低虚实融合存在的偏差。
本申请实施例一方面提供了一种实现增强现实的方法,包括:
从实时采集的环境场景图像中选取某一帧环境场景图像作为第1帧环境场景图像,利用Slam算法对相邻多帧环境场景图像进行图像配准,计算出所述第1帧环境场景图像及其之后的每帧环境场景图像的三维点云数据;
依次针对所述第1帧环境场景图像及其之后的每一帧环境场景图像执行以下步骤:
获取第i帧相对于第(i-1)帧环境场景图像的新增三维点云数据,并利用Delaunay三角剖分算法对所述新增三维点云数据进行处理,得到处理后的新增三角面集合,其中,i依次从1取到n,n为不小于2的整数;
将所述新增三角面集合中的每个新增三角面拼接到所述第(i-1)帧环境场景图像的平面集合中,得到所述第i帧环境场景图像的平面集合,其中,所述平面集合包含每个平面的顶点集合和法线方向;
基于预设条件,从所述第i帧环境场景图像的平面集合中选取一个可见平面作为目标平面,并将待显示的虚拟信息叠加在选取的目标平面中进行显示,其中,基于每个平面的法线方向来判定该平面是否为可见平面。
可选的,所述获取第i帧相对于第(i-1)帧环境场景图像的新增三维点云数据,具体包括:
将计算出的所述第i帧环境场景图像的三维点云数据与所述第(i-1)帧环境场景图像的三维点云数据进行对比,得到所述新增三维点云数据。
可选的,在i=1时,所述获取第i帧相对于第(i-1)帧环境场景图像的新增三维点云数据,并利用Delaunay三角剖分算法对所述新增三维点云数据进行处理,得到处理后的新增三角面集合,具体包括:
将所述第1帧环境场景图像的三维点云数据作为所述第1帧环境场景图像的新增三维点云数据;
利用Delaunay三角剖分算法对所述第1帧环境场景图像的三维点云数据进行处理,得到处理后的所有三角面组成所述第1帧环境场景图像的新增三角面集合。
可选的,在i=1时,所述将所述新增三角面集合中的每个新增三角面拼接到所述第(i-1)帧环境场景图像的平面集合中,得到所述第i帧环境场景图像的平面集合,具体包括:
以所述第1帧环境场景图像中的某个三维点为基准,对所述第1帧环境场景图像的新增三角面集合进行三角面拼接,将拼接得到的所有平面组成所述第1帧环境场景图像的平面集合。
可选的,所述将新增三角面集合中的每个三角面拼接到所述第(i-1)帧环境场景图像的平面集合中,得到所述第i帧环境场景图像的平面集合,具体包括:
步骤1:从所述第i帧环境场景图像的平面集合中确定出与所述新增三角面集合中的新增三角面相邻的所有平面组成边界平面;
步骤2:将所述边界平面向相邻的新增三角面的方向扩张,计算出相邻新增三角面和所述边界平面之间的法线关系;
步骤3:利用计算出的法线关系来判定所述相邻新增三角面和所述边界平面是否共面;若共面,则将所述相邻新增三角面拼接到所述边界平面中,并更新所述边界平面的边界信息;若不共面,则将所述相邻新增三角面作为一个新平面,并将所述相邻新增三角面添加到所述边界平面中,其中,每个平面的边界信息为组成该平面的三角面集合中最***的顶点集合和法线方向;
重复执行步骤1-3,直至所述新增三角面集合中所有新增三角面计算完毕,将计算得到的平面集合作为所述第i帧环境场景图像的平面集合。
可选的,所述将计算得到的平面集合作为所述第i帧环境场景图像的平面集合,具体包括:
检测计算得到的平面集合中的每个平面的面积是否不小于第一预设面积;
在每检测到小于所述第一预设面积的一个平面时,根据法线关系,将小于所述第一预设面积的平面拼接到与其法线最匹配的相邻平面中,直至计算得到的平面集合中所有小于所述第一预设面积的平面均拼接到相邻平面中,得到所述第i帧环境场景图像的平面集合。
可选的,所述基于预设条件,从所述第i帧环境场景图像的平面集合中选取一个可见平面作为目标平面,并将待显示的虚拟信息叠加在选取的目标平面中进行显示,具体为:
采集用于投掷所述虚拟信息的投掷轨迹;
从所述第i帧环境场景图像的平面集合中获取与所述投掷轨迹最近的可见平面作为所述目标平面,并将所述虚拟信息叠加在所述目标平面中进行显示。
可选的,在从所述第i帧环境场景图像的平面集合中获取与所述投掷轨迹最近的可见平面作为所述目标平面时,所述方法还包括:
判断所述最近的可见平面的面积是否不小于用于显示所述虚拟信息的占用面积;
若判断出所述最近的可见平面的面积不小于所述占用面积,则将所述最近的可见平面作为所述目标平面,并将所述虚拟信息叠加在所述目标平面中进行显示;
若判断出所述最近的可见平面的面积小于所述占用面积,则从所述第i帧环境场景图像的平面集合中选取大于所述占用面积的一个可见平面作为所述目标平面,并将所述虚拟信息叠加在所述目标平面中进行显示。
可选的,在得到所述第i帧环境场景图像的平面集合之后,所述方法还包括:
检测所述第i帧环境场景图像相比所述第(i-1)帧环境场景图像的平面集合是否更新;
若未更新,则使用Delaunay三角剖分算法对所述第i帧环境场景图像的三维点云数据进行处理,将处理得到的所有三角面组成所述第i帧环境场景图像的三角面集合;
以所述第i帧环境场景图像的三角面集合中的某个三角面为基准进行三角面拼接,将拼接得到的所有平面组成所述第i帧环境场景图像的平面集合。
可选的,在得到所述第i帧环境场景图像的平面集合之后,所述方法还包括:
通过索引方式对所述第i帧环境场景图像的平面集合中的每个平面进行标记。
可选的,在得到所述第i帧环境场景图像的平面集合之后,所述方法还包括:
检测所述第i帧环境场景图像的平面集合中的每个平面中新增三角面的面积之和是否不小于第二预设面积;
在检测到某个平面中新增三角面的面积之和小于所述第二预设面积时,使用Delaunay三角剖分算法对所述第i帧环境场景图像的三维点云数据进行处理,得到所述第i帧环境场景图像的三角面集合;
以所述第i帧环境场景图像的三角面集合中的某个三角面为基准进行三角面拼接,将拼接得到的所有平面组成所述第i帧环境场景图像的新平面集合;
基于预设条件,从所述第i帧环境场景图像的新平面集合中选取一个可见平面作为目标平面,并将待显示的虚拟信息叠加在选取的目标平面中进行显示。
本申请另一实施例还提供了一种实现增强现实设备,包括:
三维点云数据获取单元,用于从实时采集的环境场景图像中选取某一帧环境场景图像作为第1帧环境场景图像,利用Slam算法对相邻多帧环境场景图像进行图像配准,计算出所述第1帧环境场景图像及其之后的每帧环境场景图像的三维点云数据;
循环执行单元,用于依次针对所述第1帧环境场景图像及其之后的每一帧环境场景图像执行以下步骤:获取第i帧相对于第(i-1)帧环境场景图像的新增三维点云数据,并利用Delaunay三角剖分算法对所述新增三维点云数据进行处理,得到处理后的新增三角面集合,其中,i依次从1取到n,n为不小于2的整数;将所述新增三角面集合中的每个新增三角面拼接到所述第(i-1)帧环境场景图像的平面集合中,得到所述第i帧环境场景图像的平面集合,其中,所述平面集合包含每个平面的顶点集合和法线方向;基于预设条件,从所述第i帧环境场景图像的平面集合中选取一个可见平面作为目标平面,并将待显示的虚拟信息叠加在选取的目标平面中进行显示,其中,基于每个平面的法线方向来判定该平面是否为可见平面。
可选的,所述循环执行单元还包括:
新增三维点云数据获取单元,用于将计算出的所述第i帧环境场景图像的三维点云数据与所述第(i-1)帧环境场景图像的三维点云数据进行对比,得到所述新增三维点云数据。
可选的,所述循环执行单元还包括:
新增三角面集合获取单元,用于在i=1时,将所述第1帧环境场景图像的三维点云数据作为所述第1帧环境场景图像的新增三维点云数据;利用Delaunay三角剖分算法对所述第1帧环境场景图像的三维点云数据进行处理,得到处理后的所有三角面组成所述第1帧环境场景图像的新增三角面集合。
可选的,所述循环执行单元还包括:
平面集合获取单元,用于在i=1时,以所述第1帧环境场景图像中的某个三维点为基准,对所述第1帧环境场景图像的新增三角面集合进行三角面拼接,将拼接得到的所有平面组成所述第1帧环境场景图像的平面集合。
可选的,所述平面集合获取单元,还用于从所述第i帧环境场景图像的平面集合中确定出与所述新增三角面集合中的新增三角面相邻的所有平面组成边界平面;将所述边界平面向相邻的新增三角面的方向扩张,计算出相邻新增三角面和所述边界平面之间的法线关系;利用计算出的法线关系来判定所述相邻新增三角面和所述边界平面是否共面;若共面,则将所述相邻新增三角面拼接到所述边界平面中,并更新所述边界平面的边界信息;若不共面,则将所述相邻新增三角面作为一个新平面,并将所述相邻新增三角面添加到所述边界平面中,其中,每个平面的边界信息为组成该平面的三角面集合中最***的顶点集合和法线方向;重复执行上述步骤,直至所述新增三角面集合中所有新增三角面计算完毕,将计算得到的平面集合作为所述第i帧环境场景图像的平面集合。
可选的,所述平面集合获取单元,还用于检测计算得到的平面集合中的每个平面的面积是否不小于第一预设面积;在每检测到小于所述第一预设面积的一个平面时,根据法线关系,将小于所述第一预设面积的平面拼接到与其法线最匹配的相邻平面中,直至计算得到的平面集合中所有小于所述第一预设面积的平面均拼接到相邻平面中,得到所述第i帧环境场景图像的平面集合。
可选的,所述循环执行单元还包括:
叠加显示单元,用于采集用于投掷所述虚拟信息的投掷轨迹;从所述第i帧环境场景图像的平面集合中获取与所述投掷轨迹最近的可见平面作为所述目标平面,并将所述虚拟信息叠加在所述目标平面中进行显示。
可选的,所述设备还包括:
面积判断单元,用于在从所述第i帧环境场景图像的平面集合中获取与所述投掷轨迹最近的可见平面作为所述目标平面时,判断所述最近的可见平面的面积是否不小于用于显示所述虚拟信息的占用面积;
所述叠加显示单元,用于在判断出所述最近的可见平面的面积不小于所述占用面积时,将所述最近的可见平面作为所述目标平面,并将所述虚拟信息叠加在所述目标平面中进行显示;以及在判断出所述最近的可见平面的面积小于所述占用面积时,从所述第i帧环境场景图像的平面集合中选取大于所述占用面积的一个可见平面作为所述目标平面,并将所述虚拟信息叠加在所述目标平面中进行显示。
可选的,所述设备还包括:
平面集合更新检测单元,用于在得到所述第i帧环境场景图像的平面集合之后,检测所述第i帧环境场景图像相比所述第(i-1)帧环境场景图像的平面集合是否更新;
三角面集合获取单元,用于在检测到未更新时,使用Delaunay三角剖分算法对所述第i帧环境场景图像的三维点云数据进行处理,将处理得到的所有三角面组成所述第i帧环境场景图像的三角面集合;
所述平面集合获取单元,还用于以所述第i帧环境场景图像的三角面集合中的某个三角面为基准进行三角面拼接,将拼接得到的所有平面组成所述第i帧环境场景图像的平面集合。
可选的,所述设备还包括:
索引标记单元,用于在得到所述第i帧环境场景图像的平面集合之后,通过索引方式对所述第i帧环境场景图像的平面集合中的每个平面进行标记。
可选的,所述设备还包括:
三角面面积检测单元,用于在得到所述第i帧环境场景图像的平面集合之后,检测所述第i帧环境场景图像的平面集合中的每个平面中新增三角面的面积之和是否不小于第二预设面积;
所述三角面集合获取单元,还用于在检测到某个平面中新增三角面的面积之和小于所述第二预设面积时,使用Delaunay三角剖分算法对所述第i帧环境场景图像的三维点云数据进行处理,得到所述第i帧环境场景图像的三角面集合;
所述平面集合获取单元,还用于以所述第i帧环境场景图像的三角面集合中的某个三角面为基准进行三角面拼接,将拼接得到的所有平面组成所述第i帧环境场景图像的新平面集合;
所述叠加显示单元,还用于基于预设条件,从所述第i帧环境场景图像的新平面集合中选取一个可见平面作为目标平面,并将待显示的虚拟信息叠加在选取的目标平面中进行显示。
本发明的有益效果如下:
由于本申请实施例是通过对相邻两帧环境场景图像的新增三维点云数据进行处理,以获取每一帧环境场景图像的平面集合;然后基于预设条件,从每帧环境场景图像的平面集合中选取一个可见平面作为目标平面,并将待显示的虚拟信息叠加在选取的目标平面中进行显示,由此可知,本申请实施例是通过设备自动计算出所述目标平面,然后将所述虚拟对象叠加在所述目标平面中进行显示,而无需用户手动操作所述虚拟对象将其移动到所述目标平面进行显示,进而实现了自动控制所述虚拟对象移动到想要显示的位置进行显示,而且通过设备计算出的所述目标平面的准确度相比人工移动的动的准确度具有明显的提高,而且无需用户手动操作,如此,实现了简化操作且能够有效降低虚实融合存在的偏差的效果。
附图说明
图1为本发明实施例中实现增强现实的方法流程图;
图2为本发明实施例中获取第i帧环境场景图像的平面集合的方法流程图;
图3为本发明实施例中实现增强现实设备的模块图。
具体实施方式
本发明提供一种实现增强现实的方法及设备,能够自动控制虚拟信息移动到想要显示的位置,简化操作且能够有效降低虚实融合存在的偏差。
下面结合附图对本发明优选的实施方式进行详细说明。
如图1所示,本发明公开了一种实现增强现实的方法,具体包括以下步骤:
S101、从实时采集的环境场景图像中选取某一帧环境场景图像作为第1帧环境场景图像,利用Slam算法对相邻多帧环境场景图像进行图像配准,计算出所述第1帧环境场景图像及其之后的每帧环境场景图像的三维点云数据;
S102、依次针对所述第1帧环境场景图像及其之后的每一帧环境场景图像执行以下步骤:
S103、获取第i帧相对于第(i-1)帧环境场景图像的新增三维点云数据,并利用Delaunay三角剖分算法对所述新增三维点云数据进行处理,得到处理后的新增三角面集合,其中,i依次从1取到n,n为不小于2的整数;
S104、将所述新增三角面集合中的每个新增三角面拼接到所述第(i-1)帧环境场景图像的平面集合中,得到所述第i帧环境场景图像的平面集合,其中,所述平面集合包含每个平面的顶点集合和法线方向;
S105、基于预设条件,从所述第i帧环境场景图像的平面集合中选取一个可见平面作为目标平面,并将待显示的虚拟信息叠加在选取的目标平面中进行显示,其中,基于每个平面的法线方向来判定该平面是否为可见平面。
其中,在步骤S101中,可以通过如摄像头、摄像机、鱼眼镜头等摄像设备实时采集环境场景图像,然后从从实时采集的环境场景图像中选取某一帧环境场景图像为第1帧环境场景图像,然后使用同时定位与建图(Simultaneous Localization and Mapping,简称Slam)算法对相邻多帧环境场景图像进行图像配准,计算出所述第1帧环境场景图像及其之后的每帧环境场景图像的三维点云数据,其中,所述三维点云数据包括每个特征点的三维坐标。当然,所述三维点云数据还包括每个特征点的颜色信息,本申请不作具体限制。
本申请实施例中,所述第1帧环境场景图像为初始帧图像,可知,所述虚拟信息最先叠加在所述第1帧环境场景图像中的。
具体来讲,在通过Slam算法计算出所述第1帧环境场景图像及其之后的每帧环境场景图像的三维点云数据时,使Slam算法对包含需要进行三维点云数据计算的环境场景图像及与其相邻的一帧或多帧环境场景图像进行图像配准,从而计算出该帧环境场景图像的三维点云数据;例如,可以使用Slam算法对所述第1帧环境场景图像及其之前的一帧或多帧环境场景图像进行图像配准,从而计算出所述第1帧环境场景图像的三维点云数据。
接下来执行步骤S102,依次针对所述第1帧环境场景图像及其之后的每一帧环境场景图像执行步骤S103-S105。
在步骤S103中,将通过步骤S102计算出的所述第i帧环境场景图像的三维点云数据与所述第(i-1)帧环境场景图像的三维点云数据进行对比,从所述第i帧环境场景图像的三维点云数据中查找到未包含在所述第(i-1)帧环境场景图像的三维点云数据的三维点云数据作为所述新增三维点云数据。以及在获取到所述新增三维点云数据之后,利用Delaunay三角剖分算法对所述新增三维点云数据进行处理,得到新增三角面集合。
在此介绍一下Delaunay三角剖分算法:Delaunay三角剖分算法用于对点集进行Delaunay三角剖分而形成的网络,要满足Delaunay三角剖分的定义,必须符合两个重要的准则:
1)空圆特性:Delaunay三角网是唯一的(任意四点不能共圆),在Delaunay三角形网中任一三角形的外接圆范围内不会有其它点存在;
2)最大化最小角特性:在散点集可能形成的三角剖分中,Delaunay三角剖分所形成的三角形的最小角最大。从这个意义上讲,Delaunay三角网是“最接近于规则化的“的三角网。具体的说是指在两个相邻的三角形构成凸四边形的对角线,在相互交换后,六个内角的最小角不再增大。
Delaunay三角剖分算法具备如下优异特性:
1)最接近:以最近的三点形成三角形,且各线段(三角形的边)皆不相交;
2)唯一性:不论从区域何处开始构建,最终都将得到一致的结果;
3)最优性:任意两个相邻三角形形成的凸四边形的对角线如果可以互换的话,那么两个三角形六个内角中最小的角度不会变大;
4)最规则:如果将三角网中的每个三角形的最小角进行升序排列,则Delaunay三角网的排列得到的数值最大;
5)区域性:新增、删除、移动某一个顶点时只会影响临近的三角形;
6)具有凸多边形的外壳:三角网最外层的边界形成一个凸多边形的外壳。
如此,使得利用Delaunay三角剖分算法对所述新增三维点云数据进行处理而得到的所述新增三角面集合的精确度得以大幅度提高,以使得后面步骤使用所述新增三角面集合进行计算而得到的结果的精确度也随之提高。
具体来讲,在i=1时,则需要获取第1帧相对于第0帧环境场景图像的新增三维点云数据,并利用Delaunay三角剖分算法对所述新增三维点云数据进行处理,得到处理后的新增三角面集合。
由于本申请实施例中第1帧环境场景图像为初始帧图像,使得第0帧环境场景图像的三维点云数据为0,由此可以将所述第1帧环境场景图像的三维点云数据作为所述第1帧环境场景图像的新增三维点云数据;然后利用Delaunay三角剖分算法对所述第1帧环境场景图像的三维点云数据进行处理,得到处理后的所有三角面组成所述第1帧环境场景图像的新增三角面集合。
例如通过摄像设备实时采集的环境场景图像中的a图像为第1帧环境图像,且a图像的三维点云数据d包含的三维点云数据为c、c1、c2、b11和b12,由于a图像为第1帧环境场景图像,则可以确定a图像对应的新增三维点云数据为d,然后使用Delaunay三角剖分算法对c、c1、c2、b11和b12进行处理,得到处理后的所有三角面组成a图像的新增三角面集合;以及采集到环境场景图像中的a1图像为第2帧环境场景图像时,则将a1图像的三维点云数据d1和a图像的三维点云数据d进行比对,若d1包含的三维点云数据为c2、b11、b12、b13、b14、b15、c8和c9,则对比得到新增三维点云数据为b13、b14、b15、c8和c9,然后使用Delaunay三角剖分算法对b13、b14、b15、c8和c9进行处理,得到处理后的所有三角面组成a1图像的新增三角面集合。
接下来执行步骤S104,将所述新增三角面集合中的每个新增三角面拼接到所述第(i-1)帧环境场景图像的平面集合中,得到所述第i帧环境场景图像的平面集合,其中,所述平面集合包含每个平面的顶点集合和法线方向。
在具体实施过程中,在i=1时,由于所述第1帧环境场景图像为初始帧图像,使得所述第(i-1)帧环境场景图像的平面集合为0,则可以以所述第1帧环境场景图像中的某个三维点或新增三角面集合中的某个新增三角面为基准,对所述第1帧环境场景图像的新增三角面集合进行三角面拼接,将拼接得到的所有平面组成所述第1帧环境场景图像的平面集合。
具体的,由于i依次从1取到n,使得从所述第1帧环境场景图像到第n帧环境场景图像,均是将后一帧相对于前一帧的新增三角面集合中的每个新增三角面拼接到前一帧环境场景图像的平面集合中,即可获取到后一帧环境场景图像的平面集合,进而使得仅需要对新增三维点云数据进行拼接运算即可后一帧环境场景图像的平面集合;而不需要对每一帧环境场景图像的三维点云数据进行计算得到平面集合,如此,使得在获取每帧环境场景图像的平面集合时需要进行的数据量得以大幅度降低,n值越大其数据量降低程度越高,而且在新增三角面集合的精确度提高的基础上,通过将每个新增三角面进行拼接得到的平面集合的精确度也随之提高;以及在计算量大幅降低的基础上,使得获取第i帧环境场景图像的平面集合的实时性得以大幅度提高,使得所述虚拟信息叠加显示的实时性也随之提高。
例如,a图像为第1帧环境场景图像对应的初始平面集合为b,在当前帧环境场景图像从a图像变为a1图像时,若a1图像相对a图像的新增三角面集合用b1表示,则可以确定a1图像的平面集合为(b+b1);若当前环境场景图像依次更新的顺序为a2、a3、a4….an,相应的新增三角面集合依次用b2、b3、b4….bn表示,则确定a2、a3、a4….an的平面集合依次为(b+b1+b2)、(b+b1+b2+b3)、(b+b1+b2+b3+b4)….(b+b1+b2+b3+b4+….bn)。
本申请实施例中,可以利用所述第(i-1)帧环境场景图像的平面集合中的平面和所述新增三角面集合中每个新增三角面的法线关系,将每个新增三角面拼接到所述第(i-1)帧环境场景图像的平面集合中,将拼接得到的所有平面组成所述第i帧环境场景图像。
其中,每个新增三角面的法线方向根据该新增三角面包含的多个三维点的三维坐标计算出;同理,每个平面的法线方向也是根据该平面包含的多个三维点的三维坐标计算出;通过比对平面的法线方向和新增三角面的法线方向,从而得到所述第(i-1)帧环境场景图像的平面集合中的平面和所述新增三角面集合中每个新增三角面的法线关系。
本申请实施例中,所述将将新增三角面集合中的每个三角面拼接到所述第(i-1)帧环境场景图像的平面集合中,得到所述第i帧环境场景图像的平面集合,可以通过以下步骤实现,具体包括:
步骤1:根据新增三角面数据,从所述第(i-1)帧环境场景图像的平面集合中确定出与所述新增三角面集合中的新增三角面相邻的所有平面组成边界平面;
步骤2:然后将所述边界平面向相邻新增三角面的方向扩张,计算出所述相邻新增三角面和所述边界平面之间的法线关系;
步骤3:利用计算出的法线关系来判定所述相邻新增三角面和所述边界平面是否共面;若共面,则将所述相邻新增三角面拼接到所述边界平面中,并更新所述边界平面的边界信息;若不共面,则将所述相邻新增三角面作为一个新平面,并将所述相邻新增三角面添加到所述边界平面中,其中,每个平面的边界信息为组成该平面的三角面集合中最***的顶点集合和法线方向;
重复执行步骤1-3,直至所述新增三角面集合中所有新增三角面计算完毕,将计算得到的平面集合作为所述第i帧环境场景图像的平面集合。
其中,每个平面的边界信息为组成该平面的三角面集合中最***的顶点集合和法线方向,当然,每个平面的边界信息还可以包括该平面的中心坐标和最大内接矩形的面积信息。
例如,在当前帧环境场景图像从a图像变为a1图像时,则将b1中每个新增三角面拼接到b中,这时可以首先根据b1的三角面数据,从b中确定出与b1向量的边界平面为c、c1和c2,若b1中新增三角面为b11、b12、b13、b14和b15,则可以根据c、c1和c2的边界信息,然后从b1中确定出与c、c1和c2相邻的三角面为b11、b12、b13;接着将c、c1和c2向b11、b12、b13的方向扩张,分别计算出b11、b12和b13中每个新增三角面分别与c、c1和c2之间的法线关系;若根据计算出的法线关系,确定出c和b11法线方向相同、c1和b12的法线相同、以及c2和b13的法线方向不同,则可判定c和b11共面、c1和b12共面,以及c2和b13不共面;由此,将b11拼接到从c中,并更新c的边界信息;以及将c1拼接到b12中,并更新c1的边界信息;以及将b13作为一个新平面,并将b13添加到所述边界平面中。
此时,所述边界平面变更为c、c1、c2和b13;然后将c、c1、c2和b13向b14和b15的方向扩张,若根据计算出的法线关系确定b14和b13法线方向相同,b15和c2的法线方向相同,则将b14拼接到b13中,并更新b13的边界信息;以及将b15拼接到c2中,并更新c2的边界信息;如此,得到了a1图像的平面集合(b+b1),其中,(b+b1)与b相比,c、c1和c2的边界信息已改变,且新增了一个平面b13。
本申请另一实施例中,所述将计算得到的平面集合作为所述第i帧环境场景图像的平面集合,如图2所示,具体包括:
S201、检测计算得到的平面集合中的每个平面的面积是否不小于第一预设面积;
S202、在每检测到小于所述第一预设面积的一个平面时,根据小于所述第一预设面积的平面及其相邻平面的法线关系,将小于所述第一预设面积的平面拼接到与其法线最匹配的相邻平面,直至计算得到的平面集合中所有小于所述第一预设面积的平面均拼接到相邻平面中,得到所述第i帧环境场景图像的平面集合。
其中,在将小于所述第一预设面积的平面拼接到与其法线最匹配的相邻平面时,会更新所述最匹配的相邻平面的边界信息。
具体来讲,所述第一预设面积可以硬件的计算性能来确定,硬件的计算性能越高,所述第一预设面积设置的越小;反之,硬件的计算性能越差,所述第一预设面积设置的越大;如此,通过硬件的性能来设置所述第一预设面积的大小,能够有效控制用于每帧环境场景图像的平面集合中的平面数量,使得将新增三角面拼接到平面集合的计算量也随之降低,缩短了计算时间,从而能够确保虚拟信息叠加到目标区域的实时性。
例如,在当前帧环境场景图像从a图像变为a1图像时,则将b1中每个新增三角面拼接到b中,得到了a1图像的平面集合(b+b1),其中,(b+b1)与b相比,c、c1和c2的边界信息已改变,且新增了一个平面b13;则需要判断(b+b1)中每个平面的面积是否不小于所述第一预设面积,由于b中的每个平面已判断过一次,由此可知b中的每个平面的面积必然大于所述第一预设面积,因此,仅需要对新增平面b13的面积进行判断;若b13的面积不小于所述第一预设面积,则确定(b+b1)中的平面与b相比多了一个平面b13且c、c1和c2的边界信息已改变;若b13的面积小于所述第一预设面积,则获取b13的相邻平面为c1、c2和b11;通过法线计算出b13的法线方向与c2的法线方向最匹配,则将b13拼接到c2中,并再次更新c2的边界信息,此时可以确定得到的(b+b1)中的平面与b相比平面数量相同,但是c、c1和c2的边界信息发生改变。
本申请另一实施例中,在得到所述第i帧环境场景图像的平面集合之后,所述方法还包括:通过索引方式对所述第i帧环境场景图像的平面集合中的每个平面进行标记,以通过索引标记快速查找和识别相应的平面,提高查找效率。
具体来讲,在对所述第i帧环境场景图像的平面集合中的每个平面进行索引标记之后,获取所述第i帧环境场景图像的平面集合对应索引标记集合;然后还可以对所述索引标记集合对应的平面集合中每个平面的面积进行排序,可以按面积从大到小来对每个平面进行排序;也可以按面积从小到大来对每个平面进行排序,以获取到所述第i帧环境场景图像的平面集合中的平面的面积排序。
具体的,可以根据每个平面的边界信息计算出所述第i帧环境场景图像的平面集合中的每个平面的面积;然后利用计算出的每个平面的平面,通过所述索引标记集合来对每个平面的面积进行排序,从而获取到所述第i帧环境场景图像的平面集合中的平面的面积排序。
例如,a图像为第1帧环境场景图像对应的初始平面集合为b中包括c、c1和c2图像,可以将c用001进行标记,c1用002进行标记,c2用003进行标记,在当前帧环境场景图像从a图像变为a1图像时,则对(b+b1)中的c、c1和c2的边界信息进行更新,并将b13用006进行标记并记录b13的边界信息;以及可以根据平面的面积大小,依次对(b+b1)中的每个平面进行排序,获取到(b+b1)中平面的面积排序,例如可以是c2>c>c1>b13,即c2的面积最大,然后依次是c、c1和b13。
本申请的另一实施例中,在通过步骤S104得到的所述第i帧环境场景图像的平面集合之后,所述方法还包括:
检测所述第i帧环境场景图像相比所述第(i-1)帧环境场景图像的平面集合是否更新;若未更新,则使用Delaunay三角剖分算法对所述第i帧环境场景图像的三维点云数据进行处理,将处理得到的所有三角面组成所述第i帧环境场景图像的三角面集合;以所述第i帧环境场景图像的三角面集合中的某个三角面为基准进行三角面拼接,将拼接得到的所有平面组成所述第i帧环境场景图像的平面集合;若已更新,则继续执行步骤S105。
在具体实施过程中,可以通过所述第i帧环境场景图像比所述第(i-1)帧环境场景图像的平面集合中的平面的边界信息是否发生改变,和/或,通过检测所述第i帧环境场景图像比所述第(i-1)帧环境场景图像的平面集合中平面数量是否发生改变等方式,以此来检测所述第i帧比所述第(i-1)帧环境场景图像的平面集合是否更新。
具体来讲,若检测到所述第i帧比所述第(i-1)帧环境场景图像的平面集合中的平面的边界信息及平面数量发生改变,则可以判定所述第i帧比所述第(i-1)帧环境场景图像的平面集合已更新;若检测到所述第i帧比所述第(i-1)帧环境场景图像的平面集合中的平面的边界信息及平面数量均未发生改变,则可以判定所述第i帧比所述第(i-1)帧环境场景图像的平面集合未更新。
例如,在当前帧环境场景图像从a图像变为a1图像时,则将b1中每个新增三角面拼接到b中,得到了a1图像的平面集合(b+b1),其中,(b+b1)与b相比,c、c1和c2的边界信息已改变,且新增了一个平面b13,则可以判定a1比a的平面集合已发生改变。
具体来讲,在将拼接得到的所有平面组成所述第i帧环境场景图像的平面集合过程中,可以对所述第i帧环境场景图像的平面集合中的每个平面以索引进行标记,然后记录所述第i帧环境场景图像的平面集合中的每个平面的索引和边界信息。
具体的,可以通过所述第i帧环境场景图像相比所述第(i-1)帧环境场景图像的平面集合是否更新,以此来判断所述第i帧和所述第(i-1)帧环境场景图像是否发生改变;在实际应用过程中,由于每相邻两帧环境场景图像通常会发生改变,如此,可以在检测到所述第i帧比所述第(i-1)帧环境场景图像的平面集合是否更新时,则有很大的概率可以确定获取所述第i帧环境场景图像的平面集合是错误;此时,通过使用所述第i帧环境场景图像的三维点云数据来获取到所述第i帧环境场景图像的平面集合,能够有效提高获取的所述第i帧环境场景图像的平面集合的精确性。
接下来执行步骤S105,基于预设条件,从所述第i帧环境场景图像的平面集合中选取一个可见平面作为目标平面,并将待显示的虚拟信息叠加在选取的目标平面中进行显示。
在具体实施过程中,可以通过实时采集用户的注视区域;在检测到用户的第一注视区域的时长达到预设时间时,从所述第i帧环境场景图像的平面集合中获取位于所述第一注视区域内的至少一个可见平面,然后从所述至少一个可见平面中选取一个可见平面作为所述目标平面,并将所述虚拟信息叠加在所述目标平面中进行显示。
具体来讲,可以通过摄像头实时采集用户眼睛的转动,以此来实时从所述第i帧环境场景图像中采集用户的注视区域;在实时采集用户的注视区域之后,获取用户的每个注视区域的时长,并检测用户的每个注视区域的时长是否达到所述预设时间;若检测到用户的某个注视区域的时长达到所述预设时间,则将该注视区域作为所述第一注视区域;然后选取位于所述第一注视区域内的至少一个可见平面,可以根据面积优先、中心优先等原则从所述至少一个可见平面中选取一个可见平面作为所述目标平面,并将所述虚拟信息叠加在选取的可见平面中进行显示。
本申请实施例中,所述面积优先原则指的是从所述至少一个可见平面中选取面积最大的一个可见平面作为所述目标平面,所述中心优先原则指的是从所述至少一个可见平面中选取最靠近所述第一注视区域中心的一个可见平面作为所述目标平面。
本申请实施例中,所述预设时间根据实际情况来设定,也可以由设备或用户自行设定,所述预设时间通常设置为不小于2秒(s)的值,例如为2s、3s、5s等。
本申请实施例中,所述可见平面指的是在第i帧环境场景图像能够被用户看见的平面,可以通过所述第i帧环境场景图像的平面集合中的每个平面的法线,以此来计算出每个平面是否可见,若计算出某一个平面是可见的,则判定该平面为可见平面;若计算出某一个平面是不可见的,则判定该平面为非可见平面。当然,为了提高判断的准确性,还可以通过第i帧环境场景图像的平面集合中的每个平面的中心坐标和法线,以此来计算出每个平面是否为可见平面。
在具体实施过程中,还可以获取用于投掷所述虚拟信息的投掷轨迹,从所述第i帧环境场景图像的平面集合中获取与所述投掷轨迹匹配的可见平面作为所述目标平面,并将所述虚拟信息叠加在所述目标平面中进行显示。
具体来讲,可以在请求所述虚拟信息时,获取用于将所述虚拟信息向目标区域的投掷手势;根据所述投掷手势计算出所述投掷轨迹,然后利用所述投掷轨迹可计算出与所述投掷轨迹最近的可见平面作为所述目标平面,最后将所述虚拟信息叠加在所述目标平面中进行显示。
具体的,在利用所述投掷轨迹可计算出与所述投掷轨迹最近的可见平面作为所述目标平面过程时,还可以判断所述最近的可见平面的面积是否不小于用于显示所述虚拟信息的占用面积;若判断出所述最近的可见平面的面积不小于所述占用面积,则将所述最近的可见平面作为所述目标平面,并将所述虚拟信息叠加在所述目标平面中进行显示;若判断出所述最近的可见平面的面积小于所述占用面积,则从所述第i帧环境场景图像的平面集合中选取大于所述占用面积的一个可见平面作为所述目标平面,并将所述虚拟信息叠加在所述目标平面中进行显示。
具体的,在判断出所述最近的可见平面的面积小于所述占用面积时,可以从所述第i帧环境场景图像的平面集合中选取任意一个大于所述占用面积的可见平面作为所述目标平面,也可以从大于所述占用面积的所有可见平面中选取与所述投掷轨迹最近的一个可见平面作为所述目标平面
例如,在所述虚拟信息为电视新闻界面时,所述电视新闻界面的占用面积为32厘米(mm)*18mm,而利用所述投掷轨迹可计算出与所述投掷轨迹最近的可见平面的面积为35mm*25mm,由于35mm*25mm>32mm*18mm,则可以确定所述最近的可见平面为所述目标平面;若所述最近的可见平面为25mm*12mm,由于25mm*12mm<32mm*18mm,则根据根据所述第i帧环境场景图像的平面集合中的平面的面积排序,从所述第i帧环境场景图像的平面集合中选取任意一个大于32mm*18mm的可见平面作为所述目标平面,也可以从大于32mm*18mm的所有可见平面中选取与所述投掷轨迹最近的一个可见平面作为所述目标平面。
本申请实施例中,在将所述虚拟信息叠加在所述目标平面中进行显示之后,所述方法还包括:获取用于移动所述虚拟信息的手势操作;根据所述手势操作,将所述虚拟信息移动并叠加到所述手势操作最后停留的可见平面上进行显示,通过此种方法,可以使得用户自由移动已显示的所述虚拟信息,使得可操作性得以提高。
本申请另一实施例中,在通过步骤S104得到所述第i帧环境场景图像的平面集合之后,所述方法还包括:
检测所述第i帧环境场景图像的平面集合中的每个平面中新增三角面的面积之和是否不小于第二预设面积;在检测到某个平面中新增三角面的面积之和小于所述第二预设面积时,使用Delaunay三角剖分算法对所述第i帧环境场景图像的三维点云数据进行处理,得到所述第i帧环境场景图像的三角面集合;然后以所述第i帧环境场景图像的三角面集合中的某个三角面为基准进行三角面拼接,将拼接得到的所有平面组成所述第i帧环境场景图像的新平面集合;然后基于预设条件,从所述第i帧环境场景图像的新平面集合中选取一个可见平面作为目标平面,并将待显示的虚拟信息叠加在选取的目标平面中进行显示。
当然,也可以检测第i帧环境场景图像的平面集合中的每个平面中新增三角面是否连续,若不连续,则使用Delaunay三角剖分算法对所述第i帧环境场景图像的三维点云数据进行处理,得到所述第i帧环境场景图像的三角面集合;然后以所述第i帧环境场景图像的三角面集合中的某个三角面为基准进行三角面拼接,将拼接得到的所有平面组成所述第i帧环境场景图像的新平面集合;然后基于预设条件,从所述第i帧环境场景图像的新平面集合中选取一个可见平面作为目标平面,并将待显示的虚拟信息叠加在选取的目标平面中进行显示。
基于与上述方法相同的技术构思,本发明还提供了一种实现增强现实的设备,如图3所示,包括:
三维点云数据获取单元301,用于从实时采集的环境场景图像中选取某一帧环境场景图像作为第1帧环境场景图像,利用Slam算法对相邻多帧环境场景图像进行图像配准,计算出所述第1帧环境场景图像及其之后的每帧环境场景图像的三维点云数据;
循环执行单元302,用于依次针对所述第1帧环境场景图像及其之后的每一帧环境场景图像执行以下步骤:获取第i帧相对于第(i-1)帧环境场景图像的新增三维点云数据,并利用Delaunay三角剖分算法对所述新增三维点云数据进行处理,得到处理后的新增三角面集合,其中,i依次从1取到n,n为不小于2的整数;将所述新增三角面集合中的每个新增三角面拼接到所述第(i-1)帧环境场景图像的平面集合中,得到所述第i帧环境场景图像的平面集合,其中,所述平面集合包含每个平面的顶点集合和法线方向;基于预设条件,从所述第i帧环境场景图像的平面集合中选取一个可见平面作为目标平面,并将待显示的虚拟信息叠加在选取的目标平面中进行显示,其中,基于每个平面的法线方向来判定该平面是否为可见平面。
优选的,循环执行单元302还包括:
新增三维点云数据获取单元,用于将计算出的所述第i帧环境场景图像的三维点云数据与所述第(i-1)帧环境场景图像的三维点云数据进行对比,得到所述新增三维点云数据。
优选的,循环执行单元302还包括:
新增三角面集合获取单元,用于在i=1时,将所述第1帧环境场景图像的三维点云数据作为所述第1帧环境场景图像的新增三维点云数据;利用Delaunay三角剖分算法对所述第1帧环境场景图像的三维点云数据进行处理,得到处理后的所有三角面组成所述第1帧环境场景图像的新增三角面集合。
优选的,循环执行单元302还包括:
平面集合获取单元,用于在i=1时,以所述第1帧环境场景图像中的某个三维点为基准,对所述第1帧环境场景图像的新增三角面集合进行三角面拼接,将拼接得到的所有平面组成所述第1帧环境场景图像的平面集合。
优选的,所述平面集合获取单元,还用于从所述第i帧环境场景图像的平面集合中确定出与所述新增三角面集合中的新增三角面相邻的所有平面组成边界平面;将所述边界平面向相邻的新增三角面的方向扩张,计算出相邻新增三角面和所述边界平面之间的法线关系;利用计算出的法线关系来判定所述相邻新增三角面和所述边界平面是否共面;若共面,则将所述相邻新增三角面拼接到所述边界平面中,并更新所述边界平面的边界信息;若不共面,则将所述相邻新增三角面作为一个新平面,并将所述相邻新增三角面添加到所述边界平面中,其中,每个平面的边界信息为组成该平面的三角面集合中最***的顶点集合和法线方向;重复执行上述步骤,直至所述新增三角面集合中所有新增三角面计算完毕,将计算得到的平面集合作为所述第i帧环境场景图像的平面集合。
优选的,所述平面集合获取单元,还用于检测计算得到的平面集合中的每个平面的面积是否不小于第一预设面积;在每检测到小于所述第一预设面积的一个平面时,根据法线关系,将小于所述第一预设面积的平面拼接到与其法线最匹配的相邻平面中,直至计算得到的平面集合中所有小于所述第一预设面积的平面均拼接到相邻平面中,得到所述第i帧环境场景图像的平面集合。
优选的,循环执行单元302还包括:
叠加显示单元,用于采集用于投掷所述虚拟信息的投掷轨迹;从所述第i帧环境场景图像的平面集合中获取与所述投掷轨迹最近的可见平面作为所述目标平面,并将所述虚拟信息叠加在所述目标平面中进行显示。
优选的,所述设备还包括:
面积判断单元,用于在从所述第i帧环境场景图像的平面集合中获取与所述投掷轨迹最近的可见平面作为所述目标平面时,判断所述最近的可见平面的面积是否不小于用于显示所述虚拟信息的占用面积;
所述叠加显示单元,用于在判断出所述最近的可见平面的面积不小于所述占用面积时,将所述最近的可见平面作为所述目标平面,并将所述虚拟信息叠加在所述目标平面中进行显示;以及在判断出所述最近的可见平面的面积小于所述占用面积时,从所述第i帧环境场景图像的平面集合中选取大于所述占用面积的一个可见平面作为所述目标平面,并将所述虚拟信息叠加在所述目标平面中进行显示。
优选的,所述设备还包括:
平面集合更新检测单元,用于在得到所述第i帧环境场景图像的平面集合之后,检测所述第i帧环境场景图像相比所述第(i-1)帧环境场景图像的平面集合是否更新;
三角面集合获取单元,用于在检测到未更新时,使用Delaunay三角剖分算法对所述第i帧环境场景图像的三维点云数据进行处理,将处理得到的所有三角面组成所述第i帧环境场景图像的三角面集合;
所述平面集合获取单元,还用于以所述第i帧环境场景图像的三角面集合中的某个三角面为基准进行三角面拼接,将拼接得到的所有平面组成所述第i帧环境场景图像的平面集合。
优选的,所述设备还包括:
索引标记单元,用于在得到所述第i帧环境场景图像的平面集合之后,通过索引方式对所述第i帧环境场景图像的平面集合中的每个平面进行标记。
优选的,所述设备还包括:
三角面面积检测单元,用于在得到所述第i帧环境场景图像的平面集合之后,检测所述第i帧环境场景图像的平面集合中的每个平面中新增三角面的面积之和是否不小于第二预设面积;
所述三角面集合获取单元,还用于在检测到某个平面中新增三角面的面积之和小于所述第二预设面积时,使用Delaunay三角剖分算法对所述第i帧环境场景图像的三维点云数据进行处理,得到所述第i帧环境场景图像的三角面集合;
所述平面集合获取单元,还用于以所述第i帧环境场景图像的三角面集合中的某个三角面为基准进行三角面拼接,将拼接得到的所有平面组成所述第i帧环境场景图像的新平面集合;
所述叠加显示单元,还用于基于预设条件,从所述第i帧环境场景图像的新平面集合中选取一个可见平面作为目标平面,并将待显示的虚拟信息叠加在选取的目标平面中进行显示。
本发明的有益效果如下:
由于本申请实施例是通过对相邻两帧环境场景图像的新增三维点云数据进行处理,以获取每一帧环境场景图像的平面集合;然后基于预设条件,从每帧环境场景图像的平面集合中选取一个可见平面作为目标平面,并将待显示的虚拟信息叠加在选取的目标平面中进行显示,由此可知,本申请实施例是通过设备自动计算出所述目标平面,然后将所述虚拟对象叠加在所述目标平面中进行显示,而无需用户手动操作所述虚拟对象将其移动到所述目标平面进行显示,进而实现了自动控制所述虚拟对象移动到想要显示的位置进行显示,而且通过设备计算出的所述目标平面的准确度相比人工移动的动的准确度具有明显的提高,而且无需用户手动操作,如此,实现了简化操作且能够有效降低虚实融合存在的偏差的效果。
本发明实施例中所述模块或单元,可以通过通用集成电路,例如CPU(CentralProcessing Unit,中央处理器),或通过ASIC(Application SpecificIntegratedCircuit,专用集成电路)来实现。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。
Claims (13)
1.一种实现增强现实的方法,其特征在于,包括:
从实时采集的环境场景图像中选取某一帧环境场景图像作为第1帧环境场景图像,利用Slam算法对相邻多帧环境场景图像进行图像配准,计算出所述第1帧环境场景图像及其之后的每帧环境场景图像的三维点云数据;
依次针对所述第1帧环境场景图像及其之后的每一帧环境场景图像执行以下步骤:
获取第i帧相对于第(i-1)帧环境场景图像的新增三维点云数据,并利用Delaunay三角剖分算法对所述新增三维点云数据进行处理,得到处理后的新增三角面集合,其中,i依次从1取到n,n为不小于2的整数;
将所述新增三角面集合中的每个新增三角面拼接到所述第(i-1)帧环境场景图像的平面集合中,得到所述第i帧环境场景图像的平面集合,其中,所述平面集合包含每个平面的顶点集合和法线方向;
基于预设条件,从所述第i帧环境场景图像的平面集合中选取一个可见平面作为目标平面,并将待显示的虚拟信息叠加在选取的目标平面中进行显示,其中,基于每个平面的法线方向来判定该平面是否为可见平面。
2.如权利要求1所述的方法,其特征在于,所述获取第i帧相对于第(i-1)帧环境场景图像的新增三维点云数据,具体包括:
将计算出的所述第i帧环境场景图像的三维点云数据与所述第(i-1)帧环境场景图像的三维点云数据进行对比,得到所述新增三维点云数据。
3.如权利要求1所述的方法,其特征在于,在i=1时,所述获取第i帧相对于第(i-1)帧环境场景图像的新增三维点云数据,并利用Delaunay三角剖分算法对所述新增三维点云数据进行处理,得到处理后的新增三角面集合,具体包括:
将所述第1帧环境场景图像的三维点云数据作为所述第1帧环境场景图像的新增三维点云数据;
利用Delaunay三角剖分算法对所述第1帧环境场景图像的三维点云数据进行处理,得到处理后的所有三角面组成所述第1帧环境场景图像的新增三角面集合。
4.如权利要求3所述的方法,其特征在于,在i=1时,所述将所述新增三角面集合中的每个新增三角面拼接到所述第(i-1)帧环境场景图像的平面集合中,得到所述第i帧环境场景图像的平面集合,具体包括:
以所述第1帧环境场景图像中的某个三维点为基准,对所述第1帧环境场景图像的新增三角面集合进行三角面拼接,将拼接得到的所有平面组成所述第1帧环境场景图像的平面集合。
5.如权利要求1所述的方法,其特征在于,所述将新增三角面集合中的每个三角面拼接到所述第(i-1)帧环境场景图像的平面集合中,得到所述第i帧环境场景图像的平面集合,具体包括:
步骤1:从所述第i帧环境场景图像的平面集合中确定出与所述新增三角面集合中的新增三角面相邻的所有平面组成边界平面;
步骤2:将所述边界平面向相邻的新增三角面的方向扩张,计算出相邻新增三角面和所述边界平面之间的法线关系;
步骤3:利用计算出的法线关系来判定所述相邻新增三角面和所述边界平面是否共面;若共面,则将所述相邻新增三角面拼接到所述边界平面中,并更新所述边界平面的边界信息;若不共面,则将所述相邻新增三角面作为一个新平面,并将所述相邻新增三角面添加到所述边界平面中,其中,每个平面的边界信息为组成该平面的三角面集合中最***的顶点集合和法线方向;
重复执行步骤1-3,直至所述新增三角面集合中所有新增三角面计算完毕,将计算得到的平面集合作为所述第i帧环境场景图像的平面集合。
6.如权利要求5所述的方法,其特征在于,所述将计算得到的平面集合作为所述第i帧环境场景图像的平面集合,具体包括:
检测计算得到的平面集合中的每个平面的面积是否不小于第一预设面积;
在每检测到小于所述第一预设面积的一个平面时,根据法线关系,将小于所述第一预设面积的平面拼接到与其法线最匹配的相邻平面中,直至计算得到的平面集合中所有小于所述第一预设面积的平面均拼接到相邻平面中,得到所述第i帧环境场景图像的平面集合。
7.如权利要求1所述的方法,其特征在于,所述基于预设条件,从所述第i帧环境场景图像的平面集合中选取一个可见平面作为目标平面,并将待显示的虚拟信息叠加在选取的目标平面中进行显示,具体为:
采集用于投掷所述虚拟信息的投掷轨迹;
从所述第i帧环境场景图像的平面集合中获取与所述投掷轨迹最近的可见平面作为所述目标平面,并将所述虚拟信息叠加在所述目标平面中进行显示。
8.如权利要求7所述的方法,其特征在于,在从所述第i帧环境场景图像的平面集合中获取与所述投掷轨迹最近的可见平面作为所述目标平面时,所述方法还包括:
判断所述最近的可见平面的面积是否不小于用于显示所述虚拟信息的占用面积;
若判断出所述最近的可见平面的面积不小于所述占用面积,则将所述最近的可见平面作为所述目标平面,并将所述虚拟信息叠加在所述目标平面中进行显示;
若判断出所述最近的可见平面的面积小于所述占用面积,则从所述第i帧环境场景图像的平面集合中选取大于所述占用面积的一个可见平面作为所述目标平面,并将所述虚拟信息叠加在所述目标平面中进行显示。
9.如权利要求1所述的方法,其特征在于,在得到所述第i帧环境场景图像的平面集合之后,所述方法还包括:
检测所述第i帧环境场景图像相比所述第(i-1)帧环境场景图像的平面集合是否更新;
若未更新,则使用Delaunay三角剖分算法对所述第i帧环境场景图像的三维点云数据进行处理,将处理得到的所有三角面组成所述第i帧环境场景图像的三角面集合;
以所述第i帧环境场景图像的三角面集合中的某个三角面为基准进行三角面拼接,将拼接得到的所有平面组成所述第i帧环境场景图像的平面集合。
10.如权利要求1所述的方法,其特征在于,在得到所述第i帧环境场景图像的平面集合之后,所述方法还包括:
通过索引方式对所述第i帧环境场景图像的平面集合中的每个平面进行标记。
11.如权利要求1所述的方法,其特征在于,在得到所述第i帧环境场景图像的平面集合之后,所述方法还包括:
检测所述第i帧环境场景图像的平面集合中的每个平面中新增三角面的面积之和是否不小于第二预设面积;
在检测到某个平面中新增三角面的面积之和小于所述第二预设面积时,使用Delaunay三角剖分算法对所述第i帧环境场景图像的三维点云数据进行处理,得到所述第i帧环境场景图像的三角面集合;
以所述第i帧环境场景图像的三角面集合中的某个三角面为基准进行三角面拼接,将拼接得到的所有平面组成所述第i帧环境场景图像的新平面集合;
基于预设条件,从所述第i帧环境场景图像的新平面集合中选取一个可见平面作为目标平面,并将待显示的虚拟信息叠加在选取的目标平面中进行显示。
12.一种实现增强现实设备,其特征在于,包括:
三维点云数据获取单元,用于从实时采集的环境场景图像中选取某一帧环境场景图像作为第1帧环境场景图像,利用Slam算法对相邻多帧环境场景图像进行图像配准,计算出所述第1帧环境场景图像及其之后的每帧环境场景图像的三维点云数据;
循环执行单元,用于依次针对所述第1帧环境场景图像及其之后的每一帧环境场景图像执行以下步骤:获取第i帧相对于第(i-1)帧环境场景图像的新增三维点云数据,并利用Delaunay三角剖分算法对所述新增三维点云数据进行处理,得到处理后的新增三角面集合,其中,i依次从1取到n,n为不小于2的整数;将所述新增三角面集合中的每个新增三角面拼接到所述第(i-1)帧环境场景图像的平面集合中,得到所述第i帧环境场景图像的平面集合,其中,所述平面集合包含每个平面的顶点集合和法线方向;基于预设条件,从所述第i帧环境场景图像的平面集合中选取一个可见平面作为目标平面,并将待显示的虚拟信息叠加在选取的目标平面中进行显示,其中,基于每个平面的法线方向来判定该平面是否为可见平面。
13.如权利要求12所述的设备,其特征在于,所述循环执行单元还包括:
平面集合获取单元,用于从所述第i帧环境场景图像的平面集合中确定出与所述新增三角面集合中的新增三角面相邻的所有平面组成边界平面;将所述边界平面向相邻的新增三角面的方向扩张,计算出相邻新增三角面和所述边界平面之间的法线关系;利用计算出的法线关系来判定所述相邻新增三角面和所述边界平面是否共面;若共面,则将所述相邻新增三角面拼接到所述边界平面中,并更新所述边界平面的边界信息;若不共面,则将所述相邻新增三角面作为一个新平面,并将所述相邻新增三角面添加到所述边界平面中,其中,每个平面的边界信息为组成该平面的三角面集合中最***的顶点集合和法线方向;重复执行上述步骤,直至所述新增三角面集合中所有新增三角面计算完毕,将计算得到的平面集合作为所述第i帧环境场景图像的平面集合。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710181831.7A CN108629799B (zh) | 2017-03-24 | 2017-03-24 | 一种实现增强现实的方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710181831.7A CN108629799B (zh) | 2017-03-24 | 2017-03-24 | 一种实现增强现实的方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108629799A true CN108629799A (zh) | 2018-10-09 |
CN108629799B CN108629799B (zh) | 2021-06-01 |
Family
ID=63707651
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710181831.7A Active CN108629799B (zh) | 2017-03-24 | 2017-03-24 | 一种实现增强现实的方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108629799B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111325780A (zh) * | 2020-02-17 | 2020-06-23 | 天目爱视(北京)科技有限公司 | 一种基于图像筛选的3d模型快速构建方法 |
CN111968243A (zh) * | 2020-06-28 | 2020-11-20 | 成都威爱新经济技术研究院有限公司 | 一种ar图像生成方法、***、设备以及存储介质 |
CN112936261A (zh) * | 2021-01-27 | 2021-06-11 | 南京航空航天大学 | 一种基于增强现实技术的工业机器人现场仿真***与方法 |
WO2023151558A1 (zh) * | 2022-02-08 | 2023-08-17 | 北京有竹居网络技术有限公司 | 用于显示图像的方法、装置和电子设备 |
WO2023179341A1 (zh) * | 2022-03-25 | 2023-09-28 | 北京字跳网络技术有限公司 | 在视频中放置虚拟对象的方法及相关设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103092933A (zh) * | 2013-01-06 | 2013-05-08 | 南京大学 | 面向海量点云数据的基于矩形拼合的Delaunay三角网并行构网方法 |
CN105023266A (zh) * | 2014-04-29 | 2015-11-04 | 高德软件有限公司 | 增强现实实现方法、装置和终端设备 |
CN105258702A (zh) * | 2015-10-06 | 2016-01-20 | 深圳力子机器人有限公司 | 一种基于slam导航移动机器人的全局定位方法 |
US20160071327A1 (en) * | 2014-09-05 | 2016-03-10 | Fu Tai Hua Industry (Shenzhen) Co., Ltd. | System and method for simplifying a mesh point cloud |
CN105572687A (zh) * | 2015-12-11 | 2016-05-11 | 中国测绘科学研究院 | 一种基于车载激光雷达点云制作建筑物数字线划图的方法 |
CN105654492A (zh) * | 2015-12-30 | 2016-06-08 | 哈尔滨工业大学 | 基于消费级摄像头的鲁棒实时三维重建方法 |
-
2017
- 2017-03-24 CN CN201710181831.7A patent/CN108629799B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103092933A (zh) * | 2013-01-06 | 2013-05-08 | 南京大学 | 面向海量点云数据的基于矩形拼合的Delaunay三角网并行构网方法 |
CN105023266A (zh) * | 2014-04-29 | 2015-11-04 | 高德软件有限公司 | 增强现实实现方法、装置和终端设备 |
US20160071327A1 (en) * | 2014-09-05 | 2016-03-10 | Fu Tai Hua Industry (Shenzhen) Co., Ltd. | System and method for simplifying a mesh point cloud |
CN105258702A (zh) * | 2015-10-06 | 2016-01-20 | 深圳力子机器人有限公司 | 一种基于slam导航移动机器人的全局定位方法 |
CN105572687A (zh) * | 2015-12-11 | 2016-05-11 | 中国测绘科学研究院 | 一种基于车载激光雷达点云制作建筑物数字线划图的方法 |
CN105654492A (zh) * | 2015-12-30 | 2016-06-08 | 哈尔滨工业大学 | 基于消费级摄像头的鲁棒实时三维重建方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111325780A (zh) * | 2020-02-17 | 2020-06-23 | 天目爱视(北京)科技有限公司 | 一种基于图像筛选的3d模型快速构建方法 |
CN111325780B (zh) * | 2020-02-17 | 2021-07-27 | 天目爱视(北京)科技有限公司 | 一种基于图像筛选的3d模型快速构建方法 |
CN111968243A (zh) * | 2020-06-28 | 2020-11-20 | 成都威爱新经济技术研究院有限公司 | 一种ar图像生成方法、***、设备以及存储介质 |
CN111968243B (zh) * | 2020-06-28 | 2023-04-11 | 成都威爱新经济技术研究院有限公司 | 一种ar图像生成方法、***、设备以及存储介质 |
CN112936261A (zh) * | 2021-01-27 | 2021-06-11 | 南京航空航天大学 | 一种基于增强现实技术的工业机器人现场仿真***与方法 |
CN112936261B (zh) * | 2021-01-27 | 2022-07-08 | 南京航空航天大学 | 一种基于增强现实技术的工业机器人现场仿真***与方法 |
WO2023151558A1 (zh) * | 2022-02-08 | 2023-08-17 | 北京有竹居网络技术有限公司 | 用于显示图像的方法、装置和电子设备 |
WO2023179341A1 (zh) * | 2022-03-25 | 2023-09-28 | 北京字跳网络技术有限公司 | 在视频中放置虚拟对象的方法及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN108629799B (zh) | 2021-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11488380B2 (en) | Method and apparatus for 3-D auto tagging | |
CN108629799A (zh) | 一种实现增强现实的方法及设备 | |
US10540054B2 (en) | Navigation point selection for navigating through virtual environments | |
CN103608844B (zh) | 全自动动态关节连接的模型校准 | |
TWI469812B (zh) | 視覺目標追蹤 | |
EP1883052B1 (en) | Generating images combining real and virtual images | |
CN110168477A (zh) | 用于长方体检测的深度学习*** | |
US11120613B2 (en) | Image generating device and method of generating image | |
JP7490784B2 (ja) | 拡張現実マップキュレーション | |
CN108369473A (zh) | 影响增强现实的虚拟对象的方法 | |
JP7011472B2 (ja) | 情報処理装置、情報処理方法 | |
CN110648274B (zh) | 鱼眼图像的生成方法及装置 | |
US11238651B2 (en) | Fast hand meshing for dynamic occlusion | |
Tatzgern | Situated visualization in augmented reality | |
EP4172862A1 (en) | Object recognition neural network for amodal center prediction | |
EP3309750B1 (en) | Image processing apparatus and image processing method | |
JP7068586B2 (ja) | 映像処理装置、映像処理方法、及び映像処理プログラム | |
Courty et al. | A new application for saliency maps: Synthetic vision of autonomous actors | |
CN109215128A (zh) | 物体运动姿态图像的合成方法及*** | |
CN108469261A (zh) | 一种适用于船载超大视场天文导航***的星图识别方法 | |
Gazani et al. | Bag of views: An appearance-based approach to next-best-view planning for 3d reconstruction | |
Dennis et al. | Assisted navigation for large information spaces | |
Ali et al. | Augmented reality based online application for e-shopping | |
US11595568B2 (en) | System for generating a three-dimensional scene of a physical environment | |
CN118339424A (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 |