物体放置点确定方法以及增强现实AR设备与流程

文档序号:33622382发布日期:2023-03-25 12:53阅读:45来源:国知局
物体放置点确定方法以及增强现实AR设备与流程
物体放置点确定方法以及增强现实ar设备
技术领域
1.本说明书实施例涉及计算机技术领域,特别涉及一种物体放置点确定方法。


背景技术:

2.目前ar(augmented reality,增强现实)场景中虚实结合方面仍存在一定的缺陷,主要表现在虚拟物体无法很好的融合到真实场景中。由于ar设备通过相机看到的真实场景往往都是通过二维图像进行展现,三维虚拟物体放置在二维图像中的某个物体上时,一般会通过人工交互的方式,通过点击方式指定三维虚拟物体在二维图像中的物体放置点,或者是通过拖曳的方式将三维虚拟物体放置到二维图像中的某个物体放置点,又或者是直接将二维图像的中心点作为三维虚拟物体的物体放置点。
3.通过上述几种方式确定物体放置点,直接将三维虚拟物体放置到物体放置点上,与二维图像融合,一方面在确定物体放置点时,需要虚实融合设备必须具备人机交互的条件,增加成本;另一方面,直接将三维虚拟物体放置在二维图像上,使得三维虚拟物体直接漂浮在二维图像中,使得三维虚拟物体与二维图像之间的融合效果极差。


技术实现要素:

4.有鉴于此,本说明书实施例提供了两种物体放置点确定方法。本说明书一个或者多个实施例同时涉及一种物体放置点确定装置,一种增强现实ar设备,一种计算设备,一种计算机可读存储介质以及一种计算机程序,以解决现有技术中存在的技术缺陷。
5.根据本说明书实施例的第一方面,提供了一种物体放置点确定方法,包括:
6.根据目标图像的分割掩膜以及深度图像,生成所述分割掩膜对应的初始三维点云;
7.根据所述初始三维点云以及所述分割掩膜中的像素点,生成三维虚拟平面;
8.根据目标虚拟物体的属性信息,从所述三维虚拟平面中确定所述目标虚拟物体的目标放置平面;
9.根据所述目标虚拟物体的轨迹点以及所述目标放置平面的平面点集,确定所述目标虚拟物体在所述目标放置平面的目标放置点。
10.根据本说明书实施例的第二方面,提供了一种物体放置点确定装置,包括:
11.三维点云生成模块,被配置为根据目标图像的分割掩膜以及深度图像,生成所述分割掩膜对应的初始三维点云;
12.三维虚拟平面生成模块,被配置为根据所述初始三维点云以及所述分割掩膜中的像素点,生成三维虚拟平面;
13.目标放置平面确定模块,被配置为根据目标虚拟物体的属性信息,从所述三维虚拟平面中确定所述目标虚拟物体的目标放置平面;
14.目标放置点确定模块,被配置为根据所述目标虚拟物体的轨迹点以及所述目标放置平面的平面点集,确定所述目标虚拟物体在所述目标放置平面的目标放置点。
15.根据本说明书实施例的第三方面,提供了一种物体放置点确定方法,包括:
16.确定目标虚拟场景;
17.响应于用户针对所述目标虚拟场景中目标对象的第一交互操作,确定所述目标对象的三维虚拟平面;
18.根据所述用户针对所述目标虚拟场景中目标虚拟物体的第二交互操作,从所述三维虚拟平面中确定所述目标虚拟物体的目标放置平面;
19.根据所述目标放置平面的平面点集,确定所述目标虚拟物体在所述目标放置平面的目标放置点。
20.根据本说明书实施例的第四方面,提供了一种增强现实ar设备,包括:
21.存储器和处理器;
22.所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现上述物体放置点确定方法的步骤。
23.根据本说明书实施例的第五方面,提供了一种计算设备,包括:
24.存储器和处理器;
25.所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现上述物体放置点确定方法的步骤。
26.根据本说明书实施例的第六方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现上述物体放置点确定方法的步骤。
27.根据本说明书实施例的第七方面,提供了一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述物体放置点确定方法的步骤。
28.本说明书一个实施例实现了物体放置点确定方法,包括根据目标图像的分割掩膜以及深度图像,生成分割掩膜对应的初始三维点云;根据初始三维点云以及分割掩膜中的像素点,生成三维虚拟平面;并且根据目标虚拟物体的属性信息,从三维虚拟平面中确定该目标虚拟物体的目标放置平面;以及根据目标虚拟物体的轨迹点以及目标放置平面的平面点集,自动确定目标虚拟物体在目标放置平面的目标放置点;通过此方法对目标图像进行三维几何信息分析,并根据三维几何信息分析快速且准确的,确定目标图像对应的三维虚拟平面中的目标放置点,避免人工交互,节省成本;同时,将目标虚拟物体放置在目标图像对应的三维虚拟平面中的目标放置点,通过相同维度的空间坐标实现与目标图像更加真实的融合。
附图说明
29.图1是本说明书一个实施例提供的一种物体放置点确定方法的具体应用场景示意图;
30.图2是本说明书一个实施例提供的一种物体放置点确定方法的处理过程流程图;
31.图3是本说明书一个实施例提供的一种物体放置点确定方法中ransacn算法、以及基于深度图像的平面拟合算法的适用场景示意图;
32.图4是本说明书一个实施例提供的一种物体放置点确定方法中一种候选放置点的确定场景示意图;
33.图5是本说明书一个实施例提供的一种物体放置点确定方法中另一种候选放置点
的确定场景示意图;
34.图6是本说明书一个实施例提供的一种物体放置点确定方法的处理过程流程图;
35.图7是本说明书一个实施例提供的一种物体放置点确定装置的结构示意图;
36.图8是本说明书一个实施例提供的一种计算设备的结构框图。
具体实施方式
37.在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
38.在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
39.应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
40.首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
41.掩膜:与原图大小相同的图像,标记了每个像素属于前景或背景。
42.全景分割:分割出目标图像中的目标实例区域,如桌子、椅子等,以及常见语义区域,如地面、天空等。
43.编码网络:深度学习领域的一种提取图像深层特征的神经网络结构。
44.网格曲面:三维重建中用于表示三维物体的一种方法。
45.ransacn算法:是“random sample consensus(随机抽样一致)”的缩写,它可以从一组包含“局外点”的观测数据集中,通过迭代方式估计数学模型的参数。
46.clustering聚类算法:采用自底向上的策略,首先将每个对象作为一个单独的簇,然后根据某种距离度量合并这些簇形成越来越大的簇,直到所有的对象都在一个簇中(层次的最上层),或者达到一个终止条件。
47.在本说明书中,提供了两种物体放置点确定方法。本说明书一个或者多个实施例同时涉及一种物体放置点确定装置,一种增强现实ar设备,一种计算设备,一种计算机可读存储介质以及一种计算机程序,在下面的实施例中逐一进行详细说明。
48.参见图1,图1示出了根据本说明书一个实施例提供的一种物体放置点确定方法的具体应用场景示意图。
49.图1中包括云侧设备102和端侧设备104,其中,云侧设备102可以理解为云服务器,当然,在可实现方案中,云侧设备102也可以替换为物理服务器;该端侧设备104包括但不限于任意虚拟现实vr(virtual reality)设备(例如vr眼镜)或者增强现实ar设备等;为了便于理解,本说明书实施例中,均以云侧设备102为云服务器、端侧设备104为vr眼镜为例进行
详细介绍。
50.对本说明书实施例提供的物体放置点确定方法应用于三维虚拟物体与rgb(r(red)、g(green)、b(blue),色彩图像)背景图像的融合场景进行详细说明。
51.具体实施时,云侧设备102接收端侧设备104发送的目标图像(如图1中的rgb室内图像)以及目标虚拟物体(如图1中的数字人)。
52.在云侧设备102中,将目标图像分别输入预先训练好的图像分割模型以及深度估计模型,获得图像分割模型输出的该目标图像的分割掩膜、以及深度估计模型输出的该目标图像的深度图像,然后根据该目标图像的分割掩膜以及深度图像,生成该分割掩膜对应的初始三维点云;以及根据初始三维点云以及分割掩膜中的像素点,生成三维虚拟平面;再根据目标虚拟物体的属性信息,从三维虚拟平面中确定目标虚拟物体的目标放置平面;根据目标虚拟物体的轨迹点以及目标放置平面的平面点集,确定目标虚拟物体在目标放置平面的目标放置点。
53.最后将该目标虚拟物体根据该目标放置点,放置在目标放置平面上,并对其进行渲染,以生成该目标虚拟物体与该目标图像的融合图像(如图1中数字人站在室内图像中的融合图像),并将该融合图像发送至端侧设备102,在端侧设备102进行展示。
54.实际应用中,在端侧设备104的计算资源以及计算能力足够的情况下,也可以将在该云侧设备102中确定目标虚拟物体在目标放置平面的目标放置点的具体实现过程,部署在端侧设备104。具体根据实际应用进行部署实现,在此不作任何限定。
55.本说明书实施例提供的物体放置点确定方法,搭建从目标图像分割、目标图像的三维几何信息分析(初始三维点云以及三维虚拟平面生成)、平面提取(目标放置平面确定)、平面中物体放置点推荐(目标虚拟物体在目标放置平面的目标放置点)的一体化流程,为目标图像和目标虚拟物体的虚实融合提供自动化的智能放置点推荐能力。并且该方法自动化产出目标图像的三维虚拟平面、以及目标虚拟物体对应的在该三维虚拟平面的目标放置点,为下游的相机姿态估计和3d(three dimensional)融合渲染服务提供了自动化的解决方案,极大的提高了虚实融合的效率以及效果。
56.参见图2,图2示出了根据本说明书一个实施例提供的一种物体放置点确定方法的流程图,具体包括以下步骤。
57.步骤202:根据目标图像的分割掩膜以及深度图像,生成所述分割掩膜对应的初始三维点云。
58.具体的,以本说明书实施例提供的物体放置点确定方法在云侧设备实现为例进行介绍。
59.其中,目标图像可以理解为任意类型、格式、分辨率以及包含任意内容的单目rgb图像;例如目标图像可以为上述实施例中包含桌子的图像,或者是一个建筑的图像、一个房间的室内图像等;并且该目标图像可以由任意端侧设备拍摄后上传至云侧设备的,例如由摄像机拍摄后上传至云侧设备的,或者是由vr设备的摄像装置拍摄后上传至云侧设备的;也可以是从其他云侧设备的图像数据库中获取的;又或者是用户通过端侧设备上传的。
60.为了便于理解,本说明书实施例中,均以目标图像为一个房间的室内图像,目标虚拟物体为数字人为例进行详细介绍。
61.具体实施时,目标图像的分割掩膜以及深度图像可以通过预先训练的神经网络模
型,快速且准确的获得。具体实现方式如下所述:
62.所述根据目标图像的分割掩膜以及深度图像,生成所述分割掩膜对应的初始三维点云之前,还包括:
63.确定目标图像;
64.将所述目标图像输入图像分割模型,获得所述目标图像的分割掩膜,以及所述分割掩膜中像素点的类别;
65.将所述目标图像输入深度估计模型,获得所述目标图像的深度图像。
66.其中,图像分割模型以及深度估计模型均可以理解为预先训练的神经网络模型。
67.仍以目标图像为一个房间的室内图像为例。
68.实际应用中,确定目标图像,将所述目标图像输入图像分割模型,获得所述目标图像的分割掩膜,以及所述分割掩膜中像素点的类别;将所述目标图像输入深度估计模型,获得所述目标图像的深度图像;可以理解为,获取或者接收目标房间的室内图像,然后将该目标房间的室内图像输入图像分割模型,获得该目标房间的室内图像分割后的分割掩膜,以及该分割掩膜中每个像素点的类别以及对应实例,如每个像素点属于该目标房间的室内图像的桌子、椅子、墙面或者地毯等类别,在该目标房间的室内图像包括多个桌子的情况下,每个像素点属于哪个桌子。
69.在分割掩膜中将不同类别的像素点用不同的序号进行标注,比如用0表示类别为桌子的像素点,用1表示类别为椅子的像素点,用2表示类别为毛毯的像素点等。且分割掩膜的尺寸与目标图像的尺寸相同。
70.同时,将该目标房间的室内图像输入深度估计模型,获得该目标房间的室内图像的深度图像,其中,该深度图像中包括每个像素点的深度值。
71.而在确定目标图像的分割掩膜以及深度图像之后,即可根据该目标图像的分割掩膜以及深度图像,生成该分割掩膜对应的初始三维点云,以实现后续对目标图像的三维几何信息分析,使得可以在三维空间中进行目标放置点的准确确定。具体实现方式如下所述:
72.所述根据目标图像的分割掩膜以及深度图像,生成所述分割掩膜对应的初始三维点云,包括:
73.根据所述深度图像确定所述分割掩膜中像素点的深度值;
74.根据所述分割掩膜中像素点的坐标值、所述深度值以及所述目标图像对应的相机内参,生成所述分割掩膜对应的初始三维点云。
75.其中,目标图像的相机内参,可以理解为拍摄该目标图像的相机内参,或者为该目标图像预设的相机内参。
76.具体的,根据深度图像中像素点的深度值,确定对应的分割掩膜中像素点的深度值;然后根据分割掩膜中像素点的坐标值、深度值以及该目标图像对应的相机内参,生成该分割掩膜对应的初始三维点云,即该分割掩膜对应的初始三维坐标点集。
77.假设(xi,yi)为分割掩膜内像素点i的坐标,zi为该像素点的深度值,k为相机内参,则该分割掩膜内像素点i在三维空间中的坐标点(xi,yi,zi)的计算,如公式1所述:
78.[xi,yi,zi]
t
=k-1
*[xi*zi,yi*zi,zi]
t
ꢀꢀ
公式1
[0079]
如上所述,通过公式1即可计算该分割掩膜内所有像素点在三维空间中的坐标点,而该分割掩膜内所有像素点在三维空间中的坐标点,即可以理解为该分割掩膜对应的初始
三维点云。
[0080]
步骤204:根据所述初始三维点云以及所述分割掩膜中的像素点,生成三维虚拟平面。
[0081]
具体的,在生成分割掩膜对应的初始三维点云的情况下,则可以根据该初始三维点云以及分割掩膜中的像素点,生成三维虚拟平面。具体实现方式如下所述:
[0082]
所述根据所述初始三维点云以及所述分割掩膜中的像素点,生成三维虚拟平面,包括:
[0083]
根据预设平面拟合算法对所述初始三维点云进行平面拟合,获得拟合平面;
[0084]
确定所述分割掩膜中像素点到所述拟合平面的距离,将距离小于第一预设距离阈值的像素点投影至所述拟合平面上,形成所述拟合平面的平面点集;
[0085]
根据所述拟合平面的平面点集,生成三维虚拟平面。
[0086]
其中,预设平面拟合算法包括但不限于ransacn算法(random sample consensus,随机抽样一致)或者clustering聚类算法,其中,clustering聚类算法,可以理解为通过深度图像计算法向图像,进而对点集(初始三维点云中的像素点)法向使用球面聚类方法找到平面法向[a,b,c]、和平面偏移量d=-median(ax+by+cz),根据平面法向以及平面偏移量进行平面拟合;且第一预设距离阈值可以根据实际应用进行设置。
[0087]
参见图3,图3示出了本说明书一个实施例提供的一种物体放置点确定方法中ransacn算法、以及基于深度图像的平面拟合算法的适用场景示意图。
[0088]
由图3可知,ransacn算法在分割准确,地面凹凸不平的场景中进行平面拟合的时候效果较优,clustering聚类算法在分割不准确,有物体遮挡、或者分割准确,平面有层次的场景中进行平面拟合的时候效果较优。
[0089]
具体实施时,选择哪种平面拟合算法进行平面拟合可以根据实际应用场景进行选择,本说明书实施例不作任何限定。
[0090]
此外,为了进一步提升鲁棒性,可以先使用对点集法向聚类的clustering聚类算法剔除噪点之后,再对剩下的点集使用ransacn算法进行平面拟合也可。
[0091]
以预设平面拟合算法为ransacn算法为例。
[0092]
具体的,根据ransacn算法对初始三维点云进行平面拟合,获得分割掩膜包含平面的平面参数[a,b,c,d],根据该平面参数确定拟合平面,其中,向量(a,b,c)是该拟合平面的平面法向,d就是满足所有点在平面上的后缀,起定位作用。
[0093]
然后计算该分割掩膜中每个像素点到该拟合平面的距离,将距离小于第一预设距离阈值t的像素点投影到该拟合平面上,形成该拟合平面的平面点集;然后根据该拟合平面的平面点集(即投影的像素点)即可计算平面网格,以生成三维虚拟平面。
[0094]
本说明书实施例提供的物体放置点确定方法,根据预设平面拟合算法对初始三维点云进行平面拟合,获得拟合平面,并根据分割掩膜中像素点到拟合平面的距离,确定该拟合平面的平面点集,且根据该拟合平面的平面点集生成三维虚拟平面,使得后续可以在该三维虚拟平面中确定目标虚拟物体的目标放置平面,以在该目标放置平面中准确的查找到放置目标虚拟物体的目标放置点。
[0095]
而在生成了三维虚拟平面后,则可以将该三维虚拟平面中的平面点集投影到目标图像中,得到该目标图像的平面分割掩膜,以使得后续对虚拟融合后的图像的精确渲染。具
体的,该平面分割掩膜的计算,如公式2所述:
[0096]z′i*[x
′i,y
′i,1]
t
=k*[x
′i,y
′i,z
′i]
t
ꢀꢀꢀ
公式2
[0097]
其中,x
′i,y
′i,z
′i为三维虚拟平面内坐标点,(x
′i,y
′i)为目标图像内点的像素坐标,k为相机内参。
[0098]
步骤206:根据目标虚拟物体的属性信息,从所述三维虚拟平面中确定所述目标虚拟物体的目标放置平面。
[0099]
其中,目标虚拟物体可以为任意设备实现的三维虚拟物体,例如数字人、三维花瓶等;且目标虚拟物体的属性信息包括但不限于目标虚拟物体的类别、体积等。
[0100]
具体的,在确定目标虚拟物体之后,即可以根据目标虚拟物体的类别信息,快速的从三维虚拟平面中确定目标虚拟物体的目标放置平面。具体实现方式如下所述:
[0101]
所述根据目标虚拟物体的属性信息,从所述三维虚拟平面中确定所述目标虚拟物体的目标放置平面,包括:
[0102]
根据所述分割掩膜中像素点的类别,确定所述三维虚拟平面的类别;
[0103]
根据目标虚拟物体的类别与所述三维虚拟平面的类别之间的匹配关系,从所述三维虚拟平面中确定所述目标虚拟物体的目标放置平面。
[0104]
其中,三维虚拟平面中的平面点集为根据分割掩膜中的像素点投影获得,因此在分割掩膜中的像素点存在对应类别的情况下,三维虚拟平面的平面点集中的平面点也具有相对应的类别属性,例如在分割掩膜中的某个像素点的类别为桌子的情况下,其对应的三维虚拟平面的平面点集中的平面点的类别也为桌子。
[0105]
而目标虚拟物体的类别与三维虚拟平面中平面点集的类别之间的匹配关系,则可以理解为预先设置的,比如当目标虚拟物体的类别为杯子、书、笔等小物件的情况下,则对应的三维虚拟平面的类别可以为桌子;当目标虚拟物体的类别为相片、画的情况下,则对应的三维虚拟平面的类别可以为墙壁;当目标虚拟物体的类别为人物、雕像的情况下,则对应的三维虚拟平面的类别可以为地面、地毯、人行道、运动场等。
[0106]
以目标虚拟物体为花瓶为例。
[0107]
具体的,根据分割掩膜中像素点的类别,确定三维虚拟平面中每块平面的类别(三维虚拟平面中每块平面的类别,根据三维虚拟平面的平面点集中每个平面点的类别确定,即将类别相同、实例相同的平面点作为一块平面,该块平面的类别则又其对应的平面点的类别确定);根据目标虚拟物体的类别与三维虚拟平面的类别之间的匹配关系,例如花瓶对应三维虚拟平面的类别:桌子;则可以将该三维虚拟平面中类别为桌子的平面,作为该目标虚拟物体:花瓶的目标放置平面。
[0108]
实际应用中,若该三维虚拟平面中存在两个桌子的情况下,则可以将面积较大的桌子对应的平面,确定为该花瓶的目标放置平面;当然,也可以根据花瓶的体积和桌子的面积之间的比例关系,确定更为合适放置花瓶的平面作为目标放置平面等。
[0109]
具体实施时,由于目标虚拟物体放置的时候,不会放置在目标放置平面的边界上,那么为了在后续计算目标虚拟物体在目标放置平面的目标放置点时,可以不与目标放置平面的边界平面点进行计算,节省计算量;在确定该目标虚拟物体的目标放置平面之后,则可以根据该目标虚拟物体与目标放置平面的投影关系,剔除该目标放置平面的边界平面点,以提高整体的计算效率。具体实现方式如下所述:
[0110]
所述根据目标虚拟物体的属性信息,从所述三维虚拟平面中确定所述目标虚拟物体的目标放置平面之后,还包括:
[0111]
将所述目标虚拟物体投影至所述目标放置平面,并确定所述目标虚拟物体在所述目标放置平面的投影形状;
[0112]
根据所述投影形状的轮廓点到所述投影形状的质心点的距离,确定所述目标虚拟物体在所述目标放置平面的投影面的目标半径;
[0113]
根据所述目标半径对所述目标放置平面对应的分割掩膜进行滤波,获得目标分割掩膜。
[0114]
其中,质心点可以被认为与重心(cog,center of gravity)的概念大致相似。如果假设选中项的每个元素(物体、面、顶点等)具有相同的质量,则质心点将位于选中项重心(cog)的平衡点。
[0115]
具体的,根据该目标虚拟物体的体积,将目标虚拟物体的空间点投影至空间坐标系的该目标放置平面,并根据目标虚拟物体在目标放置平面的投影形状,并根据该投影形状的轮廓点到投影形状的质心点的距离,并将最大距离确定为目标虚拟物体在目标放置平面的投影面的目标半径;然后根据该目标半径对分割掩膜进行侵蚀操作,该侵蚀操作可以理解为图像处理中的滤波,在确定了目标半径之后,即可根据该目标半径确定滤波器的内核的大小,然后根据该滤波器对该目标放置平面对应的分割掩膜进行滤波操作,就可以实现侵蚀的效果,获得滤波后的目标分割掩膜。
[0116]
而在获得目标分割掩膜之后,则可以根据目标分割掩膜中的像素点,更新拟合平面的平面点集,并根据更新拟合平面的平面点集与三维虚拟平面的对应关系,确定目标放置平面中准确的平面点集,以减少后续目标虚拟物体的轨迹点与目标放置平面的平面点集的计算量,提高计算效率。具体实现方式如下所述:
[0117]
所述获得目标分割掩膜之后,还包括:
[0118]
确定所述目标分割掩膜中像素点到所述拟合平面的距离,将距离小于所述第一预设距离阈值的像素点投影至所述拟合平面上,更新所述拟合平面的平面点集;
[0119]
根据所述更新后的拟合平面点集与所述三维虚拟平面的对应关系,以及、所述三维虚拟平面与所述目标放置平面的对应关系,确定所述目标放置平面的平面点集。
[0120]
具体的,计算目标分割掩膜中像素点到拟合平面的距离,将距离小于第一预设距离阈值的像素点投影至拟合平面上,更新该拟合平面的平面点集;最后更新后的拟合平面点集与三维虚拟平面的对应关系,更新三维虚拟平面;再根据三维虚拟平面与目标放置平面的对应关系,从更新后的三维虚拟平面中确定目标放置平面的平面点集。
[0121]
本说明书实施例提供的物体放置点确定方法,在获取目标放置平面对应的分割掩膜滤波后的目标分割掩膜之后,即可根据该目标分割掩膜更新拟合平面的平面点集,并根据三维虚拟平面与目标放置平面的对应关系,确定该目标放置平面经过滤波后,消除噪声的平面点集,使得后续根据该目标放置平面的平面点集与目标虚拟物体的轨迹点进行计算,获得目标放置点时,可以在提高计算准确率的基础上,减少计算量。
[0122]
步骤208:根据所述目标虚拟物体的轨迹点以及所述目标放置平面的平面点集,确定所述目标虚拟物体在所述目标放置平面的目标放置点。
[0123]
而在确定了目标放置平面的平面点集之后,则可以根据目标虚拟物体的轨迹点以
及目标放置平面的平面点集,确定目标虚拟物体在目标放置平面的目标放置点。
[0124]
实际应用中,目标虚拟物体包括动态虚拟物体和静态虚拟物体两种类型,其中,动态虚拟物体可以理解为根据时间移动的虚拟物体,例如走路的虚拟人或者跳跃的动物等,且动态虚拟物体的轨迹点包括至少两个或两个以上;静态虚拟物体可以理解为站立的虚拟人或者各种静态摆件(扇子、花瓶)等,且静态虚拟物体的轨迹点仅包括一个。
[0125]
以下分别以目标虚拟物体为动态虚拟物体以及静态虚拟物体两种类型时,根据所述目标虚拟物体的轨迹点以及所述目标放置平面的平面点集,确定所述目标虚拟物体在所述目标放置平面的目标放置点进行详细说明。
[0126]
具体的,在目标虚拟物体为动态虚拟物体的情况下,根据所述目标虚拟物体的轨迹点以及所述目标放置平面的平面点集,确定所述目标虚拟物体在所述目标放置平面的目标放置点,的具体实现方式如下所述:
[0127]
所述根据所述目标虚拟物体的轨迹点以及所述目标放置平面的平面点集,确定所述目标虚拟物体在所述目标放置平面的目标放置点,包括:
[0128]
根据世界坐标系对所述目标放置平面的平面点集进行调整,确定目标平面点集;
[0129]
在确定所述目标虚拟物体的轨迹点为至少两个的情况下,根据所述目标虚拟物体的轨迹点与所述目标平面点集中平面点的目标距离,确定所述目标虚拟物体在所述目标放置平面的候选放置点;
[0130]
对所述候选放置点进行聚类,并根据聚类结果确定所述目标虚拟物体在所述目标放置平面的目标放置点。
[0131]
其中,当目标虚拟物体的轨迹点为两个或者两个以上的情况下,则可以确定该目标虚拟物体为动态虚拟物体,即随着时间帧移动的虚拟物体。
[0132]
实际应用中,由于后续目标虚拟物体要与目标图像在渲染软件中进行渲染,以进行虚实结合的,但是该目标图像对应的三维虚拟平面相当于是在相机坐标系下生成的,三维虚拟平面的坐标与渲染软件中的世界坐标系是没有对齐的,因此为了实现后续在渲染软件中进行虚实结合以及渲染,需要先将目标放置平面调整到与世界坐标系对齐。
[0133]
具体的,根据世界坐标系对目标放置平面的平面点集进行调整,确定目标平面点集的具体实现如下所述:
[0134]
首先,将目标放置平面的平面点集旋转至地平面内,以blender坐标系为参考,将xy平面作为地平面,即地面法向为[0,0,1];计算平面法向[a,b,c]和地面法向[0,0,1]的夹角theta,根据该夹角theta,利用罗德里格旋转公式可知对应的旋转矩阵r,其中,罗德里格旋转公式是计算三维空间中,一个向量绕旋转轴旋转给定角度以后得到的新向量的计算公式。
[0135]
例如,以p表示旋转前的平面点集,p
xy
表示旋转至xy平面的平面点集,p
xy
的计算公式如下所述:
[0136]
p
xy
=rp
ꢀꢀꢀ
公式3
[0137]
而在确定目标平面点集之后,即可根据该目标虚拟物体的轨迹点与目标平面点集中平面点的目标距离,确定目标虚拟物体在目标放置平面的候选放置点,后续即可对候选放置点进行聚类,并根据聚类结果准确确定目标虚拟物体在目标放置平面的目标放置点。
[0138]
具体实施时,在目标虚拟物体为动态虚拟物体的情况下,根据所述目标虚拟物体
的轨迹点与所述目标平面点集中平面点的目标距离,准确确定所述目标虚拟物体在所述目标放置平面的候选放置点的具体实现方式如下所述:
[0139]
所述根据所述目标虚拟物体的轨迹点与所述目标平面点集中平面点的目标距离,确定所述目标虚拟物体在所述目标放置平面的候选放置点,包括:
[0140]
s2.依次将所述目标平面点集中的每个平面点作为起始点,根据所述起始点移动所述目标虚拟物体的轨迹点至所述目标平面点集,并计算所述目标虚拟物体的轨迹点到所述目标平面点集中平面点的目标距离;
[0141]
s4.在确定所述目标距离小于等于第二预设距离阈值的情况下,将所述起始点作为候选放置点;或者
[0142]
在确定所述目标距离均大于所述第二预设距离阈值的情况下,根据预设角度旋转所述目标虚拟物体的轨迹点,并继续执行步骤s2。
[0143]
具体的,依次将目标平面点集中每个平面点作为起始点,根据该起始点移动目标虚拟物体的轨迹点至目标平面点集,即将该目标虚拟物体的第一个轨迹点移动至与起始点重合,然后计算目标虚拟物体的轨迹点中每个轨迹点,与目标平面点集中每个平面点的距离;再根据目标虚拟物体的轨迹点中每个轨迹点,与目标平面点集中每个平面点的距离,确定目标虚拟物体的轨迹点到目标平面点集中平面点的目标距离。
[0144]
以目标虚拟物体的轨迹点包括第一个轨迹点a、第二个轨迹点b、第三个轨迹点c,目标平面点集中平面点1作为起始点,将该目标虚拟物体的第一个轨迹点a移动至与平面点1重合,然后计算目标虚拟物体的第一个轨迹点a,与目标平面点集中每个平面点的距离,然后选择最小距离作为第一个轨迹点a到目标放置平面的第一距离;同理,获得第二个轨迹点b到目标放置平面的第二距离、以及第三个轨迹点a到目标放置平面的第三距离;然后再将第一距离、第二距离、第三距离相加,将相加后的结果作为以平面点1作为起始点的情况下,目标虚拟物体的轨迹点到目标平面点集中平面点的目标距离。
[0145]
而在另外一种实现方式中,从第一距离、第二距离、第三距离中选择最大的距离,作为以平面点1作为起始点的情况下,目标虚拟物体的轨迹点到目标平面点集中平面点的目标距离。
[0146]
而在确定目标距离小于等于第二预设距离阈值的情况下,将该起始点作为候选放置点,即将起始点:平面点1作为候选放置点;重复上述操作,遍历目标平面点集中的平面点,确定候选放置点。其中,第二预设距离阈值可以根据实际需求设置,本说明书对此不作任何限定。
[0147]
参见图4,图4示出了本说明书一个实施例提供的一种物体放置点确定方法中一种候选放置点的确定场景示意图。
[0148]
图4中的轨迹点,即可以理解为目标虚拟物体的轨迹点,即图4中的目标虚拟物体的轨迹点为6个;平面采样点即可以理解为目标平面点集中平面点;符合平面条件的采样点则可以理解为通过上述任意一种方法将轨迹点与平面采样点计算后,确定的候选放置点。
[0149]
此外,在通过上述方法遍历目标平面点集中的平面点之后,计算获得的目标距离均大于第二预设距离阈值的情况下,则根据预设角度旋转目标虚拟物体的轨迹点,并在旋转之后,继续采用上述方法,查找目标平面点集中的候选放置点。
[0150]
例如预设角度为15度,那么则将目标虚拟物体的轨迹点从当前位置旋转15度,然
后以目标虚拟物体的轨迹点的当前角度,依次将目标平面点集中的每个平面点作为起始点,根据起始点移动目标虚拟物体的轨迹点至目标平面点集,并计算目标虚拟物体的轨迹点到目标平面点集中平面点的目标距离;在确定目标距离小于等于第二预设距离阈值的情况下,将起始点作为候选放置点。
[0151]
具体的,在对目标虚拟物体的轨迹点旋转后,根据目标虚拟物体的轨迹点与目标平面点集中平面点的目标距离,确定目标虚拟物体在目标放置平面的候选放置点的具体实现方式如上所述,在此不再赘述。
[0152]
参见图5,图5示出了本说明书一个实施例提供的一种物体放置点确定方法中另一种候选放置点的确定场景示意图。
[0153]
图5中的轨迹点,即可以理解为目标虚拟物体的轨迹点,即图5中的目标虚拟物体的轨迹点为6个;平面采样点即可以理解为目标平面点集中平面点。
[0154]
具体的,对该轨迹点进行15度旋转,根据15度旋转后的目标虚拟物体的轨迹点,与平面采样点中的点进行目标距离计算,以确定候选放置点。
[0155]
其中,图5中符合条件的采样点即可以理解为:在将目标虚拟物体的轨迹点进行15度旋转后,通过上述任意一种方法将轨迹点与平面采样点计算后,确定的候选放置点,并记录目标虚拟物体的轨迹点的旋转角度,以便后续将目标虚拟物体以该旋转角度放置在目标放置平面的目标放置点上。
[0156]
而在将目标虚拟物体的轨迹点旋转了15度之后,仍旧未确定候选放置点的情况下,则可以继续将目标虚拟物体的轨迹点旋转了15度,继续根据上述方法确定候选放置点;那么在将目标虚拟物体的轨迹点旋转了一圈之后,仍旧未查找到候选放置点的情况下,为了保证目标虚拟物体在目标放置平面的放置,则可以适应调整第二预设距离阈值,以确定候选放置点。具体实现方式如下所述:
[0157]
所述方法,还包括:
[0158]
在根据所述预设角度旋转所述目标虚拟物体的轨迹点达到预设条件,仍未存在候选放置点的情况下,确定根据所述预设角度旋转所述目标虚拟物体的轨迹点,计算出的所述目标虚拟物体的轨迹点到所述目标平面点集中平面点的最小目标距离;
[0159]
根据所述最小目标距离调整所述第二预设距离阈值,获得第三预设距离阈值;
[0160]
根据所述第三预设距离阈值以及、根据所述预设角度旋转所述目标虚拟物体的轨迹点达到预设条件,计算出的所述目标虚拟物体的轨迹点到所述目标平面点集中平面点的所有目标距离,确定候选放置点。
[0161]
其中,预设条件可以理解为根据预设角度旋转目标虚拟物体的轨迹点已经旋转360度;或者根据预设角度旋转目标虚拟物体的轨迹点已经旋转了预设次数(如10次)等。
[0162]
以预设条件为根据预设角度旋转目标虚拟物体的轨迹点旋转10次为例。
[0163]
具体的,在根据预设角度旋转目标虚拟物体的轨迹点的旋转次数,满足10次,仍未找到存在候选放置点的情况下,确定根据预设角度旋转目标虚拟物体的轨迹点,计算出的目标虚拟物体的轨迹点到目标平面点集中平面点的最小目标距离,即根据预设角度对目标虚拟物体的轨迹点旋转了10次内,计算出的目标虚拟物体的轨迹点到目标平面点集中平面点的所有目标距离中的最小目标距离。
[0164]
然后,将该最小目标距离乘以预设系数(例如1.5等),调整第二预设距离阈值,即
将最小目标距离乘以预设系数获得的数值替换第二预设距离阈值,形成第三预设距离阈值。
[0165]
然后根据该第三预设距离阈值,将根据预设角度旋转目标虚拟物体的轨迹点达到预设条件内,计算出的目标虚拟物体的轨迹点到目标平面点集中平面点的所有目标距离,小于等于该第三预设距离阈值的目标距离对应的平面点作为候选放置点。
[0166]
例如,根据预设角度旋转目标虚拟物体的轨迹点10次,计算出的目标虚拟物体的轨迹点到目标平面点集中平面点的所有目标距离中有10个目标距离小于等于第三预设距离阈值,则将计算出这10个目标距离的平面点作为候选放置点。
[0167]
而在目标虚拟物体为静态虚拟物体的情况下,则将目标平面点集中所有平面点均作为候选放置点,并对候选放置点进行聚类,并根据聚类结果确定目标虚拟物体在目标放置平面的目标放置点。具体实现方式如下所述:
[0168]
所述根据所述目标虚拟物体的轨迹点以及所述目标放置平面的平面点集,确定所述目标虚拟物体在所述目标放置平面的目标放置点,包括:
[0169]
根据世界坐标系对所述目标放置平面的平面点集进行调整,确定目标平面点集;
[0170]
在确定所述目标虚拟物体的轨迹点为一个的情况下,将所述目标平面点集中的所有平面点,确定为所述目标虚拟物体在所述目标放置平面的候选放置点;
[0171]
对所述候选放置点进行聚类,并根据聚类结果确定所述目标虚拟物体在所述目标放置平面的目标放置点。
[0172]
其中,根据世界坐标系对目标放置平面的平面点集进行调整,确定目标平面点集的具体实现方式如上所述,在此不再赘述。
[0173]
并且,当目标虚拟物体的轨迹点为一个的情况下,可以理解为目标虚拟物体的轨迹不变,为静态虚拟物体。
[0174]
本说明书实施例提供的物体放置点确定方法,在目标虚拟物体为静态虚拟物体的情况下,首先根据世界坐标系对目标放置平面的平面点集进行调整,确定目标平面点集;然后在确定目标虚拟物体的轨迹点为一个的情况下,将目标平面点集中的所有平面点,确定为目标虚拟物体在所述目标放置平面的候选放置点;再对候选放置点进行聚类,并根据聚类结果确定目标虚拟物体在目标放置平面的目标放置点,以保证后续根据聚类结果确定目标虚拟物体在目标放置平面的目标放置点的准确性。
[0175]
那么,无论目标虚拟物体为动态虚拟物体或者是静态虚拟物体的情况下,均可以从目标放置平面确定多个候选放置点,而后即可对多个候选放置点进行聚类,获得目标虚拟物体最终在目标放置平面的目标放置点,从而通过聚类的方法从候选放置点中选择较为合适的目标放置点,以提高目标虚拟物体与目标放置平面的组合效果,保证目标虚拟物体在目标图像的放置合理性和真实性。具体实现方式如下所述:
[0176]
所述对所述候选放置点进行聚类,并根据聚类结果确定所述目标虚拟物体在所述目标放置平面的目标放置点,包括:
[0177]
根据预设聚类算法对所述候选放置点进行聚类,获得预设数量的聚类中心点;
[0178]
将每个聚类中心点投影至所述目标图像,并计算所述每个聚类中心点与所述目标图像的中心点的距离;
[0179]
根据所述每个聚类中心点与所述目标图像的中心点的距离,确定所述目标虚拟物
体在所述目标放置平面的目标放置点。
[0180]
其中,预设聚类算法包括但不限于kmeans聚类(它是基于划分方法聚类的,原理是先初始化k个簇类中心,基于计算样本与中心点的距离归纳各簇类下的所属样本,迭代实现样本与其归属的簇类中心的距离为最小的目标)或mean-shift聚类(mean shift算法是基于核密度估计的爬山算法,可用于聚类、图像分割、跟踪等)等;预设数量也可以根据实际应用进行设置,例如预设数量为4个或5个。
[0181]
以预设聚类算法为kmeans聚类,预设数量为4为例进行详细介绍。
[0182]
具体的,根据kmeans聚类对候选放置点进行聚类,获得4个聚类中心点;将每个聚类中心点投影至目标图像,并计算每个聚类中心点与目标图像的中心点坐标的距离,即计算4个聚类中心点中每个聚类中心点投影到目标图像的像素坐标,并根据每个聚类中心点投影到目标图像的像素坐标,计算其与目标图像的中心点坐标的欧式距离;最后将欧式距离最小的聚类中心点作为目标虚拟物体在所述目标放置平面的目标放置点。
[0183]
通过此种聚类的方法从相似的候选放置点中,为目标虚拟物体确定精确的目标放置点,提高后续目标虚拟物体与目标放置平面的结合效果。
[0184]
本说明书实施例提供的物体放置点确定方法,包括根据目标图像的分割掩膜以及深度图像,生成分割掩膜对应的初始三维点云;根据初始三维点云以及分割掩膜中的像素点,生成三维虚拟平面;并且根据目标虚拟物体的属性信息,从三维虚拟平面中确定该目标虚拟物体的目标放置平面;以及根据目标虚拟物体的轨迹点以及目标放置平面的平面点集,自动确定目标虚拟物体在目标放置平面的目标放置点;通过此方法对目标图像进行三维几何信息分析,并根据三维几何信息分析快速且准确的,确定目标图像对应的三维虚拟平面中的目标放置点,避免人工交互,节省成本;同时,将目标虚拟物体放置在目标图像对应的三维虚拟平面中的目标放置点,通过相同维度的空间坐标实现与目标图像更加真实的融合。
[0185]
而在确定目标虚拟物体在目标放置平面的目标放置点之后,即可将目标放置平面的目标放置点与目标虚拟物体在世界坐标系下对齐,实现目标虚拟物体放置在目标放置平面的目标放置点的效果,进而实现虚实结合。具体实现方式如下所述:
[0186]
所述确定所述目标虚拟物体在所述目标放置平面的目标放置点之后,还包括:
[0187]
将所述目标放置平面的目标放置点与所述目标虚拟物体在世界坐标系下对齐,并对所述目标虚拟物体以及所述目标放置平面进行渲染。
[0188]
其中,先将目标放置点的法向旋转至z轴正向(旋转中心为世界坐标系原点(0,0,0))得到旋转矩阵r,再将旋转后的目标放置点移动至世界坐标系原点得到偏移量t。则[r,t]即为相机在世界坐标系下,以目标放置点为世界坐标原点,目标放置点所在平面为xy平面的相机外参。而在根据目标放置点自动计算出相机外参,即可根据该相机外参、上述获得的平面分割掩膜对目标虚拟物体以及目标放置平面进行渲染,为下游3d融合渲染服务提供技术基础。
[0189]
本说明书实施例提供的物体放置点确定方法,将全景分割(即图像分割模型)引入流程,实现虚拟放置物体和放置平面的智能匹配;设计平面法向聚类以及用ransacn算法的平面拟合的方案,提升平面拟合的鲁棒性;并且设计的轨迹点和平面点智能匹配方法,根据虚拟放置物体的属性、图像语义及图像三维几何结构等进行目标放置点的智能推荐,避免
了繁琐的人工交互步骤,简单有效,且能够同时应用于静态虚拟物体和有移动轨迹的动态虚拟物体的智能目标放置点推荐,大幅提升了虚拟结合环境融合服务的使用效率;同时,根据放置点坐标和法向,可使用简单的旋转和平移操作得到相机外参,能够有效应用于下游3d融合渲染服务。
[0190]
下述结合附图6,以本说明书提供的物体放置点确定方法在虚实融合场景的应用为例,对所述物体放置点确定方法进行进一步说明。其中,图6示出了本说明书一个实施例提供的一种物体放置点确定方法的处理过程流程图,具体包括以下步骤。
[0191]
步骤602:确定目标rgb图像。
[0192]
步骤604:将目标rgb图像输入图像分割模型,获得目标rgb图像的分割掩膜。
[0193]
步骤606:将目标rgb图像输入深度估计模型,获得目标rgb图像的深度图像。
[0194]
步骤608:对目标rgb图像的分割掩膜进行语义分析。
[0195]
具体的,对目标rgb图像的分割掩膜进行语义分析,既可以理解为确定目标rgb图像的分割掩膜中每个像素点的类别以及所属实例信息,比如某个像素点的类别为桌子,所属的实例信息为桌子1。
[0196]
步骤610:确定带有平面语义的目标rgb图像的分割掩膜。
[0197]
具体的,带有平面语义的目标rgb图像的分割掩膜,即可以理解为对目标rgb图像的分割掩膜进行语义分析后,携带有每个像素点的类别以及所属实例信息的分割掩膜。
[0198]
步骤612:根据该带有平面语义的目标rgb图像的分割掩膜、以及目标rgb图像的深度图像生成该分割掩膜对应的三维点云。
[0199]
步骤614:根据该分割掩膜以及其对应的三维点云,生成三维虚拟平面。
[0200]
步骤616:确定虚拟放置物体的属性信息。
[0201]
其中,虚拟放置物体的属性信息包括但不限于虚拟放置物体的类别等。
[0202]
步骤618:根据该虚拟放置物体的属性信息以及该三维虚拟平面,计算该虚拟放置物体在该三维虚拟平面的目标放置点坐标。
[0203]
具体的,该方法中生成三维点云、三维虚拟平面以及获取目标放置点的具体实现步骤可以参见上述实施例,在此不再赘述。
[0204]
本说明书实施例提供的物体放置点确定方法,将图像分割模型以及深度估计模型引入方法,实现虚拟放置物体和目标rgb图像的智能匹配;并通过虚拟放置物体的轨迹点和目标rgb图像对应的三维虚拟平面中平面点的智能匹配方法,进行目标放置点的智能推荐,避免了繁琐的人工交互步骤,简单有效。
[0205]
与上述方法实施例相对应,本说明书还提供了物体放置点确定装置实施例,图7示出了本说明书一个实施例提供的一种物体放置点确定装置的结构示意图。如图7所示,该装置包括:
[0206]
三维点云生成模块702,被配置为根据目标图像的分割掩膜以及深度图像,生成所述分割掩膜对应的初始三维点云;
[0207]
三维虚拟平面生成模块704,被配置为根据所述初始三维点云以及所述分割掩膜中的像素点,生成三维虚拟平面;
[0208]
目标放置平面确定模块706,被配置为根据目标虚拟物体的属性信息,从所述三维虚拟平面中确定所述目标虚拟物体的目标放置平面;
[0209]
目标放置点确定模块708,被配置为根据所述目标虚拟物体的轨迹点以及所述目标放置平面的平面点集,确定所述目标虚拟物体在所述目标放置平面的目标放置点。
[0210]
可选地,所述方法,还包括:
[0211]
预处理模块,被配置为:
[0212]
确定目标图像;
[0213]
将所述目标图像输入图像分割模型,获得所述目标图像的分割掩膜,以及所述分割掩膜中像素点的类别;
[0214]
将所述目标图像输入深度估计模型,获得所述目标图像的深度图像。
[0215]
可选地,所述三维点云生成模块702,进一步被配置为:
[0216]
根据所述深度图像确定所述分割掩膜中像素点的深度值;
[0217]
根据所述分割掩膜中像素点的坐标值、所述深度值以及所述目标图像对应的相机内参,生成所述分割掩膜对应的初始三维点云。
[0218]
可选地,所述三维虚拟平面生成模块704,进一步被配置为:
[0219]
根据预设平面拟合算法对所述初始三维点云进行平面拟合,获得拟合平面;
[0220]
确定所述分割掩膜中像素点到所述拟合平面的距离,将距离小于第一预设距离阈值的像素点投影至所述拟合平面上,形成所述拟合平面的平面点集;
[0221]
根据所述拟合平面的平面点集,生成三维虚拟平面。
[0222]
可选地,所述目标放置平面确定模块706,进一步被配置为:
[0223]
根据所述分割掩膜中像素点的类别,确定所述三维虚拟平面的类别;
[0224]
根据目标虚拟物体的类别与所述三维虚拟平面的类别之间的匹配关系,从所述三维虚拟平面中确定所述目标虚拟物体的目标放置平面。
[0225]
可选地,所述装置,还包括:
[0226]
滤波模块,被配置为:
[0227]
将所述目标虚拟物体投影至所述目标放置平面,并确定所述目标虚拟物体在所述目标放置平面的投影形状;
[0228]
根据所述投影形状的轮廓点到所述投影形状的质心点的距离,确定所述目标虚拟物体在所述目标放置平面的投影面的目标半径;
[0229]
根据所述目标半径对所述目标放置平面对应的分割掩膜进行滤波,获得目标分割掩膜。
[0230]
可选地,所述装置,还包括:
[0231]
平面点集确定模块,被配置为:
[0232]
确定所述目标分割掩膜中像素点到所述拟合平面的距离,将距离小于所述第一预设距离阈值的像素点投影至所述拟合平面上,更新所述拟合平面的平面点集;
[0233]
根据所述更新后的拟合平面点集与所述三维虚拟平面的对应关系,以及、所述三维虚拟平面与所述目标放置平面的对应关系,确定所述目标放置平面的平面点集。
[0234]
可选地,所述目标放置点确定模块708,进一步被配置为:
[0235]
根据世界坐标系对所述目标放置平面的平面点集进行调整,确定目标平面点集;
[0236]
在确定所述目标虚拟物体的轨迹点为至少两个的情况下,根据所述目标虚拟物体的轨迹点与所述目标平面点集中平面点的目标距离,确定所述目标虚拟物体在所述目标放
置平面的候选放置点;
[0237]
对所述候选放置点进行聚类,并根据聚类结果确定所述目标虚拟物体在所述目标放置平面的目标放置点。
[0238]
可选地,所述目标放置点确定模块708,进一步被配置为:
[0239]
s2.依次将所述目标平面点集中的每个平面点作为起始点,根据所述起始点移动所述目标虚拟物体的轨迹点至所述目标平面点集,并计算所述目标虚拟物体的轨迹点到所述目标平面点集中平面点的目标距离;
[0240]
s4.在确定所述目标距离小于等于第二预设距离阈值的情况下,将所述起始点作为候选放置点;或者
[0241]
在确定所述目标距离均大于所述第二预设距离阈值的情况下,根据预设角度旋转所述目标虚拟物体的轨迹点,并继续执行步骤s2。
[0242]
可选地,所述装置,还包括:
[0243]
候选放置点确定模块,被配置为:
[0244]
在根据所述预设角度旋转所述目标虚拟物体的轨迹点达到预设条件,仍未存在候选放置点的情况下,确定根据所述预设角度旋转所述目标虚拟物体的轨迹点,计算出的所述目标虚拟物体的轨迹点到所述目标平面点集中平面点的最小目标距离;
[0245]
根据所述最小目标距离调整所述第二预设距离阈值,获得第三预设距离阈值;
[0246]
根据所述第三预设距离阈值以及、根据所述预设角度旋转所述目标虚拟物体的轨迹点达到预设条件,计算出的所述目标虚拟物体的轨迹点到所述目标平面点集中平面点的所有目标距离,确定候选放置点。
[0247]
可选地,所述目标放置点确定模块708,进一步被配置为:
[0248]
根据世界坐标系对所述目标放置平面的平面点集进行调整,确定目标平面点集;
[0249]
在确定所述目标虚拟物体的轨迹点为一个的情况下,将所述目标平面点集中的所有平面点,确定为所述目标虚拟物体在所述目标放置平面的候选放置点;
[0250]
对所述候选放置点进行聚类,并根据聚类结果确定所述目标虚拟物体在所述目标放置平面的目标放置点。
[0251]
可选地,所述目标放置点确定模块708,进一步被配置为:
[0252]
根据预设聚类算法对所述候选放置点进行聚类,获得预设数量的聚类中心点;
[0253]
将每个聚类中心点投影至所述目标图像,并计算所述每个聚类中心点与所述目标图像的中心点的距离;
[0254]
根据所述每个聚类中心点与所述目标图像的中心点的距离,确定所述目标虚拟物体在所述目标放置平面的目标放置点。
[0255]
可选地,所述装置,还包括:
[0256]
渲染模块,被配置为:
[0257]
将所述目标放置平面的目标放置点与所述目标虚拟物体在世界坐标系下对齐,并对所述目标虚拟物体以及所述目标放置平面进行渲染。
[0258]
本说明书实施例提供的物体放置点确定装置,包括根据目标图像的分割掩膜以及深度图像,生成分割掩膜对应的初始三维点云;根据初始三维点云以及分割掩膜中的像素点,生成三维虚拟平面;并且根据目标虚拟物体的属性信息,从三维虚拟平面中确定该目标
虚拟物体的目标放置平面;以及根据目标虚拟物体的轨迹点以及目标放置平面的平面点集,自动确定目标虚拟物体在目标放置平面的目标放置点;通过此方法对目标图像进行三维几何信息分析,并根据三维几何信息分析快速且准确的,确定目标图像对应的三维虚拟平面中的目标放置点,避免人工交互,节省成本;同时,将目标虚拟物体放置在目标图像对应的三维虚拟平面中的目标放置点,通过相同维度的空间坐标实现与目标图像更加真实的融合。
[0259]
上述为本实施例的一种物体放置点确定装置的示意性方案。需要说明的是,该物体放置点确定装置的技术方案与上述的物体放置点确定方法的技术方案属于同一构思,物体放置点确定装置的技术方案未详细描述的细节内容,均可以参见上述物体放置点确定方法的技术方案的描述。
[0260]
本说明书实施例还提供了另一种物体放置点确定方法,包括:
[0261]
确定目标虚拟场景;
[0262]
响应于用户针对所述目标虚拟场景中目标对象的第一交互操作,确定所述目标对象的三维虚拟平面;
[0263]
根据所述用户针对所述目标虚拟场景中目标虚拟物体的第二交互操作,从所述三维虚拟平面中确定所述目标虚拟物体的目标放置平面;
[0264]
根据所述目标放置平面的平面点集,确定所述目标虚拟物体在所述目标放置平面的目标放置点。
[0265]
可选地,所述根据所述用户针对所述目标虚拟场景中目标虚拟物体的第二交互操作,从所述三维虚拟平面中确定所述目标虚拟物体的目标放置平面,包括:
[0266]
根据所述用户针对所述目标虚拟场景中目标虚拟物体的第二交互操作,根据所述目标虚拟物体的属性信息,从所述三维虚拟平面中确定所述目标虚拟物体的目标放置平面;
[0267]
相应地,所述根据所述目标放置平面的平面点集,确定所述目标虚拟物体在所述目标放置平面的目标放置点包括:
[0268]
根据所述目标虚拟物体的轨迹点以及所述目标放置平面的平面点集,确定所述目标虚拟物体在所述目标放置平面的目标放置点。
[0269]
其中,目标虚拟场景可以理解为任意虚拟场景,比如购物虚拟场景、装修虚拟场景、立体物品设计虚拟场景或者展览虚拟场景等;而目标虚拟场景不同,该目标虚拟场景中的目标对象以及目标虚拟物体也不同,例如在目标虚拟场景为购物虚拟场景的情况下,该目标虚拟场景中的目标对象可以理解为购物虚拟场景中的购物车图像、目标虚拟物体可以理解为各种虚拟商品;在目标虚拟场景为装修虚拟场景的情况下,该目标虚拟场景中的目标对象可以理解为装修虚拟场景中的窗户图像、目标虚拟物体可以理解为各种虚拟家具等。
[0270]
以目标虚拟场景为购物虚拟场景为例,响应于用户针对所述目标虚拟场景中目标对象的第一交互操作,确定所述目标对象的三维虚拟平面,可以理解为,响应于用户在该购物虚拟场景中对购物车图像的点击操作,确定该购物车图像对应的三维虚拟平面。
[0271]
那么根据所述用户针对所述目标虚拟场景中目标虚拟物体的第二交互操作,根据所述目标虚拟物体的属性信息,从所述三维虚拟平面中确定所述目标虚拟物体的目标放置
平面,则可以理解为,再根据用户在该购物虚拟场景中对某个虚拟商品的点击或者拖曳操作,根据该虚拟商品的属性信息,从该三维虚拟平面中确定该虚拟商品的目标放置平面,例如该虚拟商品为大件水果的情况下,则该目标放置平面可以为购物车的底层。
[0272]
而根据所述目标虚拟物体的轨迹点以及所述目标放置平面的平面点集,确定所述目标虚拟物体在所述目标放置平面的目标放置点,可以理解为,根据该虚拟商品的轨迹点以及该目标放置平面的平面点集,确定该虚拟商品在目标放置平面的目标放置点。
[0273]
结合上述具体实现步骤,根据该物体放置点确定方法,在装修虚拟场景中,可以在地板的三维虚拟平面上确定各种虚拟家具的目标放置点;在立体物品设计虚拟场景(如键盘设计虚拟场景)中,可以在键盘底座的三维虚拟平面上确定各个键盘按键的目标放置点;在展览虚拟场景中,可以在展览柜台的三维虚拟平面上确定待展览的展览品的目标放置点等。
[0274]
此外,该方法中的三维虚拟平面可以理解为在目标虚拟场景构建之前,通过目标对象的rgb图像根据上述实施例中方式预先生成的;并且根据所述目标虚拟物体的属性信息,从所述三维虚拟平面中确定所述目标虚拟物体的目标放置平面;根据所述目标虚拟物体的轨迹点以及所述目标放置平面的平面点集,确定所述目标虚拟物体在所述目标放置平面的目标放置点的具体实现步骤也可以参见上述实施例的详细介绍,在此不再赘述。
[0275]
本说明书实施例提供的另一种物体放置点确定方法,可以通过用户交互操作,在目标虚拟场景中确定目标对象的三维虚拟平面、以及待与三维虚拟平面结合的目标虚拟物体,并根据目标虚拟物体的轨迹点以及三维虚拟平面的平面点集,准确的确定目标虚拟物体在三维虚拟平面的目标放置平面的目标放置点。
[0276]
参见图8,图8示出了根据本说明书一个实施例提供的一种计算设备800的结构框图。该计算设备800的部件包括但不限于存储器810和处理器820。处理器820与存储器810通过总线830相连接,数据库850用于保存数据。
[0277]
计算设备800还包括接入设备840,接入设备840使得计算设备800能够经由一个或多个网络860通信。这些网络的示例包括公用交换电话网(pstn,public switched telephone network)、局域网(lan,local area network)、广域网(wan,wide area network)、个域网(pan,personal area network)或诸如因特网的通信网络的组合。接入设备840可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(nic,network interface controller))中的一个或多个,诸如ieee802.11无线局域网(wlan,wireless local area network)无线接口、全球微波互联接入(wi-max,worldwide interoperability for microwave access)接口、以太网接口、通用串行总线(usb,universal serial bus)接口、蜂窝网络接口、蓝牙接口、近场通信(nfc,near field communication)接口,等等。
[0278]
在本说明书的一个实施例中,计算设备800的上述部件以及图8中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图8所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
[0279]
计算设备800可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动
电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或个人计算机(pc,personal computer)的静止计算设备。计算设备800还可以是移动式或静止式的服务器。
[0280]
其中,处理器820用于执行如下计算机可执行指令,该计算机可执行指令被处理器执行时实现上述物体放置点确定方法的步骤。
[0281]
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的物体放置点确定方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述物体放置点确定方法的技术方案的描述。
[0282]
本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现上述物体放置点确定方法的步骤。
[0283]
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的物体放置点确定方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述物体放置点确定方法的技术方案的描述。
[0284]
本说明书一实施例还提供一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述物体放置点确定方法的步骤。
[0285]
上述为本实施例的一种计算机程序的示意性方案。需要说明的是,该计算机程序的技术方案与上述的物体放置点确定方法的技术方案属于同一构思,计算机程序的技术方案未详细描述的细节内容,均可以参见上述物体放置点确定方法的技术方案的描述。
[0286]
根据本说明书实施例的第三方面,提供了一种增强现实ar设备,包括:
[0287]
存储器和处理器;
[0288]
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现上述物体放置点确定方法的步骤。
[0289]
上述为本实施例的一种增强现实ar设备的示意性方案。需要说明的是,该增强现实ar设备的技术方案与上述的物体放置点确定方法的技术方案属于同一构思,增强现实ar设备的技术方案未详细描述的细节内容,均可以参见上述物体放置点确定方法的技术方案的描述。
[0290]
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
[0291]
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
[0292]
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列
的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。
[0293]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
[0294]
以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1