CN115810100B - 确定物体放置平面的方法、设备、存储介质 - Google Patents

确定物体放置平面的方法、设备、存储介质 Download PDF

Info

Publication number
CN115810100B
CN115810100B CN202310065054.5A CN202310065054A CN115810100B CN 115810100 B CN115810100 B CN 115810100B CN 202310065054 A CN202310065054 A CN 202310065054A CN 115810100 B CN115810100 B CN 115810100B
Authority
CN
China
Prior art keywords
plane
preset
placement
virtual object
image information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202310065054.5A
Other languages
English (en)
Other versions
CN115810100A (zh
Inventor
蔡羽
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba China Co Ltd
Original Assignee
Alibaba China Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba China Co Ltd filed Critical Alibaba China Co Ltd
Priority to CN202310065054.5A priority Critical patent/CN115810100B/zh
Publication of CN115810100A publication Critical patent/CN115810100A/zh
Application granted granted Critical
Publication of CN115810100B publication Critical patent/CN115810100B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Processing Or Creating Images (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本申请提供一种确定物体放置平面的方法、设备、存储介质及程序产品,其中方法包括:响应于对虚拟物体的放置操作,获取三维场景的图像信息;判断在预设时长内是否从所述图像信息中检测到放置平面;若在所述预设时长内未从所述图像信息中检测到放置平面,获取所述虚拟物体对应的平面参数和所述图像信息对应的相机位姿信息;根据所述相机位姿信息和所述平面参数,在所述三维场景中构建预置平面;驱动所述虚拟物体放置在所述三维场景的预置平面上。本申请实现了当***未能及时检测到放置平面时,通过交互行为以及虚拟物体类别估算构建预置平面,降低了***平面检测能力对XR使用体验的影响,有效提升了业务的可用性,提高用户的交互体验。

Description

确定物体放置平面的方法、设备、存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种确定物体放置平面的方法、设备、存储介质及程序产品。
背景技术
XR,指通过计算机技术和可穿戴设备产生的一个虚拟和现实组合、可人机交互的环境,它包含VR(Virtual Reality,虚拟现实),AR((Augmented Reality,增强现实)等。以AR技术为例,AR技术是一种将虚拟信息与真实世界巧妙融合的技术,广泛运用了多媒体、三维建模、实时跟踪及注册、智能交互、传感等多种技术手段,将计算机生成的文字、图像、三维模型、音乐、视频等虚拟信息模拟仿真后,应用到真实世界中,两种信息互为补充,从而实现对真实世界的“增强”。
实际场景中,AR是一个虚实结合的三维空间。在AR场景中放置虚拟物体时,找到平面,确定平面上的放置点,这个是所有AR放置场景的第一步。平面检测依赖终端***提供的平面检测能力,而不同的终端设备型号间平面检测的能力相差巨大。以手机为例,受硬件能力限制,型号越旧的手机检测平面能力越弱,一些型号较旧的手机很难检测到平面,需要不断的移动摄像头寻找。而一些性能好一点的手机找到平面的平均时间也在 10s 左右,在光线较差的情况下会更糟糕,并且找到的平面区域也非常小。
实际场景中,如果用户打开AR空间在第一步找平面上就花费太多时间,体验会非常差,可能直接会造成业务的跳失以及用户的流失。
发明内容
本申请实施例的主要目的在于提供一种确定物体放置平面的方法、设备、存储介质及程序产品,实现了当***未能及时检测到放置平面时,通过交互行为以及虚拟物体类别估算构建预置平面,降低了***平面检测能力对XR使用体验的影响,有效提升了业务的可用性,提高用户的交互体验。
第一方面,本申请实施例提供一种确定物体放置平面的方法,包括:响应于对虚拟物体的放置操作,获取三维场景的图像信息;判断在预设时长内是否从所述图像信息中检测到放置平面,所述放置平面为所述三维场景中的平面;若在所述预设时长内未从所述图像信息中检测到放置平面,获取所述虚拟物体对应的平面参数和所述图像信息对应的相机位姿信息;根据所述相机位姿信息和所述平面参数,在所述三维场景中构建预置平面;驱动所述虚拟物体放置在所述三维场景的预置平面上。
于一实施例中,所述三维场景为现实三维空间场景;所述响应于对虚拟物体的放置操作,获取三维场景的图像信息,包括:响应于对虚拟物体的放置操作,开启图像采集设备,通过所述图像采集设备采集所述现实三维空间的图像信息。
于一实施例中,所述三维场景为虚拟三维空间场景;所述响应于对虚拟物体的放置操作,获取三维场景的图像信息,包括:响应于对虚拟物体的放置操作,开启虚拟相机,通过所述虚拟相机,采集所述虚拟三维空间的图像信息。
于一实施例中,所述若在所述预设时长内未从所述图像信息中检测到放置平面,获取所述虚拟物体对应的平面参数,包括:若在所述预设时长内未从所述图像信息中检测到放置平面,确定所述虚拟物体的类型标识;从数据库中读取所述类型标识对应的平面参数,所述数据库中预先配置了多种类型标识对应平面参数。
于一实施例中,所述平面参数包括:所述预置平面与预设的参考平面之间的相对位置关系和所述预置平面的尺寸信息。
于一实施例中,所述根据所述相机位姿信息和所述平面参数,在所述三维场景中构建预置平面,包括:根据所述相机位姿信息和所述相对位置关系,确定所述预置平面的中心点位置;以所述中心点位置为中心,按照所述相对位置关系和所述尺寸信息在所述三维场景中构建所述预置平面。
于一实施例中,所述平面参数包括:所述预置平面与相机位置之间的预设距离;所述根据所述相机位姿信息和所述相对位置关系,确定所述预置平面的中心点位置,包括:根据所述相机位姿信息确定以相机位置为端点,以相机方向为发射方向的射线;根据所述相对位置关系确定平行于所述参考平面、且与所述相机位置具备所述预设距离的过渡平面,并确定所述射线与所述过渡平面的交点位置;若所述交点位置在预设区域范围内,将所述交点位置确定为所述预置平面的中心点位置;若所述交点位置不在预设区域范围内,发出提示信息,所述提示信息用于提示用户调整相机位姿,并在所述用户调整相机位姿后,继续检测调整后的所述交点位置,直至调整后的所述交点位置在所述预设区域范围内时,将所述交点位置确定为所述预置平面的中心点位置。
于一实施例中,所述驱动所述虚拟物体放置在所述三维场景的预置平面上,包括:驱动所述虚拟物体放置在所述预置平面上的所述中心点位置。
于一实施例中,还包括:若在所述预设时长内从所述图像信息中检测到所述放置平面,驱动所述虚拟物体放置在所述放置平面上。
于一实施例中,在所述驱动所述虚拟物体放置在所述三维场景的预置平面上之后,还包括:响应于对虚拟物体的交互操作,获取所述三维场景的当前图像信息;判断是否从所述当前图像信息中检测到放置平面;若从所述当前图像信息中检测到放置平面,驱动所述虚拟物体在所述放置平面上执行所述交互操作,并移除所述预置平面;若未从所述图像信息中检测到所述放置平面,驱动所述虚拟物体在所述预置平面上执行所述交互操作。
第二方面,本申请实施例提供一种确定物体放置平面的方法,包括: 响应于用户在交互界面上对商品虚拟模型的放置操作,获取三维场景的图像信息;判断在预设时长内是否从所述图像信息中检测到放置平面,所述放置平面为所述三维场景中的平面;若在所述预设时长内未从所述图像信息中检测到放置平面,获取所述商品虚拟模型对应的平面参数和所述图像信息对应的相机位姿信息;根据所述相机位姿信息和所述平面参数,在所述三维场景内构建预置平面;驱动所述商品虚拟模型放置在所述三维场景的预置平面上,并在所述交互界面上展示所述商品虚拟模型放置在所述三维场景中的状态。
第三方面,本申请实施例提供一种确定物体放置平面的装置,包括:
第一获取模块,用于响应于对虚拟物体的放置操作,获取三维场景的图像信息;
第一判断模块,用于判断在预设时长内是否从所述图像信息中检测到放置平面,所述放置平面为所述三维场景中的平面;
第二获取模块,用于若在所述预设时长内未从所述图像信息中检测到放置平面,获取所述虚拟物体对应的平面参数和所述图像信息对应的相机位姿信息;
构建模块,用于根据所述相机位姿信息和所述平面参数,在所述三维场景中构建预置平面;
驱动模块,用于驱动所述虚拟物体放置在所述三维场景的预置平面上。
于一实施例中,所述三维场景为现实三维空间场景;所述第一获取模块,用于响应于对虚拟物体的放置操作,开启图像采集设备,通过所述图像采集设备采集所述现实三维空间的图像信息。
于一实施例中,所述三维场景为虚拟三维空间场景;所述第一获取模块,用于响应于对虚拟物体的放置操作,开启虚拟相机,通过所述虚拟相机,采集所述虚拟三维空间的图像信息。
于一实施例中,所述第二获取模块,用于若在所述预设时长内未从所述图像信息中检测到放置平面,确定所述虚拟物体的类型标识;从数据库中读取所述类型标识对应的平面参数,所述数据库中预先配置了多种类型标识对应平面参数。
于一实施例中,所述平面参数包括:所述预置平面与预设的参考平面之间的相对位置关系和所述预置平面的尺寸信息。
于一实施例中,所述构建模块你,用于根据所述相机位姿信息和所述相对位置关系,确定所述预置平面的中心点位置;以所述中心点位置为中心,按照所述相对位置关系和所述尺寸信息在所述三维场景中构建所述预置平面。
于一实施例中,所述平面参数包括:所述预置平面与相机位置之间的预设距离;所述根据所述相机位姿信息和所述相对位置关系,确定所述预置平面的中心点位置,包括:根据所述相机位姿信息确定以相机位置为端点,以相机方向为发射方向的射线;根据所述相对位置关系确定平行于所述参考平面、且与所述相机位置具备所述预设距离的过渡平面,并确定所述射线与所述过渡平面的交点位置;若所述交点位置在预设区域范围内,将所述交点位置确定为所述预置平面的中心点位置;若所述交点位置不在预设区域范围内,发出提示信息,所述提示信息用于提示用户调整相机位姿,并在所述用户调整相机位姿后,继续检测调整后的所述交点位置,直至调整后的所述交点位置在所述预设区域范围内时,将所述交点位置确定为所述预置平面的中心点位置。
于一实施例中,所述驱动模块,用于驱动所述虚拟物体放置在所述预置平面上的所述中心点位置。
于一实施例中,所述驱动模块,还用于若在所述预设时长内从所述图像信息中检测到所述放置平面,驱动所述虚拟物体放置在所述放置平面上。
于一实施例中,还包括:第三获取模块,用于在所述驱动所述虚拟物体放置在所述三维场景的预置平面上之后,响应于对虚拟物体的交互操作,获取所述三维场景的当前图像信息;第二判断模块,用于判断是否从所述当前图像信息中检测到放置平面;所述驱动模块,还用于若从所述当前图像信息中检测到放置平面,驱动所述虚拟物体在所述放置平面上执行所述交互操作,并移除所述预置平面;所述驱动模块,还用于若未从所述图像信息中检测到所述放置平面,驱动所述虚拟物体在所述预置平面上执行所述交互操作。
第四方面,本申请实施例提供一种确定物体放置平面的方法,包括:响应于用户在交互界面上对虚拟物体的放置操作,获取当前场景的图像信息;判断在预设时长内是否从所述图像信息中检测到放置平面,所述放置平面为所述当前场景中的平面;若在所述预设时长内未从所述图像信息中检测到放置平面,在所述当前场景对应的三维空间内构建预置平面;驱动所述虚拟物体放置在所述三维空间内的预置平面上,并在所述交互界面上展示所述虚拟物体放置在所述当前场景中的状态图像。
于一实施例中,所述在所述当前场景对应的三维空间内构建预置平面,包括:获取所述虚拟物体对应的平面参数和所述图像信息对应的相机位姿信息;根据所述相机位姿信息和所述平面参数,在所述当前场景对应的三维空间内构建预置平面。
于一实施例中,所述平面参数包括:所述预置平面与相机位置之间的预设距离、所述预置平面与预设的参考平面之间的相对位置关系和所述预置平面的尺寸信息;所述根据所述相机位姿信息和所述平面参数,在所述当前场景对应的三维空间内构建预置平面,包括:根据所述相机位姿信息确定以相机位置为端点,以相机方向为发射方向的射线;根据所述相对位置关系确定平行于所述参考平面、且与所述相机位置具备所述预设距离的过渡平面,并确定所述射线与所述过渡平面的交点位置;若所述交点位置在预设区域范围内,将所述交点位置确定为所述预置平面的中心点位置;若所述交点位置不在预设区域范围内,发出提示信息,所述提示信息用于提示用户调整相机位姿,并在所述用户调整相机位姿后,继续检测调整后的所述交点位置,直至调整后的所述交点位置在所述预设区域范围内时,将所述交点位置确定为所述预置平面的中心点位置;以所述中心点位置为中心,按照所述相对位置关系和所述尺寸信息在所述当前场景对应的三维空间中构建所述预置平面。
第五方面,本申请实施例提供一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述电子设备执行上述任一方面所述的方法。
第六方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现上述任一方面所述的方法。
第七方面,本申请实施例提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述任一方面所述的方法。
本申请实施例提供的确定物体放置平面的方法、设备、存储介质及程序产品,当用户在XR场景中放置虚拟物体时,实时获取三维场景的图像,首先判断***在预设时长内是否从图像中检测到放置平面,如果没有,则根据该虚拟物体预配的预设平面高度以及当前相机位姿,在图像中构建一个预置平面,将虚拟物体放在预置平面内。如此,当***未能及时检测到放置平面时,通过交互行为以及虚拟物体类别及时构建预置平面,避免***平面检测能力层次不齐而需要用户长时间等待的情况,降低***平面检测能力对XR使用体验的影响,有效提升了业务的可用性,提高用户的交互体验。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种电子设备的结构示意图;
图2为本申请实施例提供的一种确定物体放置平面的***的架构示意图;
图3为本申请实施例提供的一种确定物体放置平面的方法的流程示意图;
图4为本申请实施例提供的一种对虚拟物体的操作录入的示意图;
图5为本申请实施例提供的一种AR场景中构建预置平面的原理示意图;
图6为本申请实施例提供的一种确定物体放置平面的方法的流程示意图;
图7A为本申请实施例提供的一种AR场景中放置虚拟物体的初始界面示意图;
图7B为本申请实施例提供的一种AR场景中构建预置平面后的界面示意图;
图7C为本申请实施例提供的一种AR场景中将虚拟物体放置到预置平面后的界面示意图;
图7D为本申请实施例提供的一种AR场景中将虚拟物体切换到放置平面的界面示意图;
图8为本申请实施例提供的一种确定物体放置平面的方法的流程示意图;
图9A为本申请实施例提供的一种确定物体放置平面的方法的流程示意图;
图9B为本申请实施例提供的一种确定物体放置平面的方法的流程示意图;
图10为本申请实施例提供的一种确定物体放置平面的装置的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。
本文中术语“和/或”,用于描述关联对象的关联关系,具体表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
为了清楚地描述本申请实施例的技术方案,首先对本申请所涉及的名词进行释义:
XR:指通过计算机技术和可穿戴设备产生的一个虚拟和现实组合、可人机交互的环境,它包含VR(Virtual Reality,虚拟现实),AR((Augmented Reality,增强现实)等。
AR:Augmented Reality,增强现实。
VR:Virtual Reality,虚拟现实。
3D:3-dimension,三维。
检测平面:XR设备的摄像头输入的真实世界的视频流,通过某种 XR 检测能力提取到其中的平面如地面、墙面、桌面等等过程,以便于可以进行如虚拟物体平面放置等XR虚实交互操作。
平面放置:在XR中将一个虚拟物体放在三维场景中的一个平面上,这个平面可以是现实世界的地面、墙面等等。
Android:安卓是一种基于Linux内核的自由及开放源代码的操作***。
ARCore:是基于安卓的搭建增强现实应用程序的软件平台。
iOS:是一种移动操作***。
ARKit:基于iOS***的搭建增强现实应用程序的软件平台。
如图1所示,本实施例提供一种电子设备1,包括:至少一个处理器11和存储器12,图1中以一个处理器为例。处理器11和存储器12通过总线10连接。存储器12存储有可被处理器11执行的指令,指令被处理器11执行,以使电子设备1可执行下述的实施例中方法的全部或部分流程,以实现降低***平面检测能力对XR使用体验的影响,有效提升了业务的可用性,提高用户的交互体验。
于一实施例中,电子设备1可以是手机、平板电脑、笔记本电脑、台式计算机或者多个计算机组成的大型运算***。
图2为本申请实施例提供的一种确定物体放置平面的***200的示意图。如图2所示,该***包括:服务器210和终端220,其中:
服务器210可以是提供检测平面服务的数据平台,比如可以是提供AR交互的电商购物平台。实际场景中,一个电商购物平台可能有多个服务器210,图2中以1个服务器210为例。
终端220可以是用户登录电商购物平台时使用的电脑、手机、平板、AR眼镜等设备,终端220也可以有多个,图2中以2个终端220为例进行示意。
终端220与服务器210之间可以通过互联网进行信息传输,以使终端220可以访问服务器210上的数据。上述终端220和/或者服务器210均可以由电子设备1来实现。
本申请实施例的确定物体放置平面的方式可以应用于任意需要检测平面的领域。比如3D商品详情场景,数字空间藏馆商品场景,AR平面放置场景等场景中。
XR,指通过计算机技术和可穿戴设备产生的一个虚拟和现实组合、可人机交互的环境,它包含VR,AR等。以AR技术为例,AR技术是一种将虚拟信息与真实世界巧妙融合的技术,广泛运用了多媒体、三维建模、实时跟踪及注册、智能交互、传感等多种技术手段,将计算机生成的文字、图像、三维模型、音乐、视频等虚拟信息模拟仿真后,应用到真实世界中,两种信息互为补充,从而实现对真实世界的“增强”。
实际场景中,AR是一个虚实结合的三维空间。在AR场景中放置虚拟物体时,对于平面放置场景,平面检测依赖AR终端的 Android/iOS ***提供的 ARCore/ARKit 的平面检测能力,而不同的设备型号间平面检测的能力相差巨大。以手机为例,受硬件能力限制,硬件型号越旧的手机检测平面能力越弱,一些很旧的手机几乎很难检测到平面,需要不断的移动摄像头寻找,普通的手机平均找到平面的时间也在 10s 左右,在光线较差的情况下会更糟糕,并且找到的平面区域也非常小。
找到平面,确定平面上的放置点,这个是所有AR放置场景的第一步,而如果用户打开AR空间在第一步找平面上就花费很多时间,体验会非常差,可能直接会造成业务的跳失以及用户的流失。
为了解决上述问题,本申请实施例提供一种确定物体放置平面的方案,当用户在XR场景中放置虚拟物体时,实时获取三维场景的图像,首先判断***在预设时长内是否从图像中检测到放置平面,如果没有,则根据该虚拟物体预配的预设平面高度以及当前相机位姿,在图像中构建一个预置平面,将虚拟物体放在预置平面内。如此,当***未能及时检测到放置平面时,通过交互行为以及虚拟物体类别及时构建预置平面,避免***平面检测能力层次不齐而需要用户长时间等待的情况,降低***平面检测能力对XR使用体验的影响,有效提升了业务的可用性,提高用户的交互体验。
实际场景中,XR中的物体是虚拟出来的,它在三维世界中的坐标也是相对的,用户对虚拟物体在一定范围内的三维坐标误差并不敏感,因而对虚拟物体放置的平面也可以容忍一些误差,因此可以通过一些方法快速估算出一个大概的平面位置,优先保证业务的可用性。
上述确定物体放置平面的方案可以部署在服务器210上,也可以部署在终端220上,或者部分部署在服务器210上,部分部署在终端220上。实际场景中可以基于实际需求选择,本实施例不做限定。
当确定物体放置平面的方案全部或者部分部署在服务器210上时,可以对终端220开放调用接口,以对终端220提供算法支持。
下面结合附图,对本申请的一些实施方式作详细说明。在各实施例之间不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
请参看图3,其为本申请一实施例的确定物体放置平面的方法,该方法可由图1所示的电子设备1来执行,并可以应用于图2所示的XR的应用场景中,以实现降低***平面检测能力对XR使用体验的影响,有效提升了业务的可用性,提高用户的交互体验。本实施例以终端220为执行端为例,该方法包括如下步骤:
步骤301:响应于对虚拟物体的放置操作,获取三维场景的图像信息。
在本步骤中,虚拟物体可以是基于实际物体建立的虚拟模型,比如家电、家居物品、动植物等实体物品的三维模型,在电商场景中,虚拟物体可以是在售商品的三维虚拟模型。虚拟物体也可以是采用计算机技术建立的虚拟模型,比如一个AR游戏中的角色模型或者道具模型等等。放置操作用于驱动虚拟物体放置在一个平面上。放置操作可以是用户直接通过终端220的交互界面录入的,如图4所示,显示有虚拟物体的交互界面展示在终端220的触摸屏上,可以通过终端220的触摸屏221直接对虚拟物体进行滑动操作来将虚拟物体放置在A点,触摸屏221捕获到该滑动操作,进而生成驱动指令来驱动虚拟物体放置在A点。还可以将AR的交互界面投影到其他实体面上,用户通过交互界面录入放置操作,比如在AR投影、AR上墙场景中,用户可以直接通过投影在墙上的交互界面录入放置操作。
于一实施例中,也可以通过改变终端220在实际三维空间中的位置,来触发对虚拟物体的放置操作,比如用户拿着手机观看冰箱模型在AR场景中的摆放效果,可以直接移动手机,触发调整冰箱模型在三维场景的中摆放位置。
于一实施例中,三维场景可以为现实三维空间场景。步骤301具体可以包括:响应于对虚拟物体的放置操作,开启图像采集设备,通过图像采集设备采集现实三维空间的图像信息。
在本实施例中,三维场景可以是指实际场景中的空间区域,比如对于AR场景下现实的室内场景,当用户想要将虚拟物体放置在现实三维空间场景中时,首先开启图像采集设备来采集现实三维空间的图像信息,此处图像采集设备可以是独立的相机设备,也可以是AR设备自带的摄像头,比如手机自带的摄像头。
于一实施例中,三维场景可以为虚拟三维空间场景。步骤301具体可以包括:响应于对虚拟物体的放置操作,开启虚拟相机,通过虚拟相机,采集虚拟三维空间的图像信息。
在本实施例中,三维场景可以是虚拟的,比如对于VR场景下某个电子游戏的虚拟三维场景,当用户想要将虚拟物体放置在虚拟三维场景中时,比如用户在VR游戏中将一个虚拟道具放置在游戏场景中时,响应于用户操作,开启该虚拟三维场景对应的虚拟相机,通过虚拟相机,采集虚拟三维空间的图像信息。如此无论三维场景是现实的还是虚拟的,图像信息都对应着一定的相机位姿信息,可以为后续计算提供可靠的参数。
步骤302:判断在预设时长内是否从图像信息中检测到放置平面。
在本步骤中,放置平面可以是三维空间区域中任意方向的一个面,包含但不限于水平平面,同样适用于垂直平面或任意方向的平面,比如室内场景的地面、墙面、桌面等等,可以利用平面检测技术从三维场景的图像信息中提取到放置平面。预设时长可以是用户等待检测平面过程的容忍时长,可以基于实际需求设定。获取到三维场景的图像信息后,首先***对图像信息进行平面检测,无论用户使用的终端220的平面检测能力如何,首先等待终端220***自身对放置平面的检测结果,此处放置平面的检测可以依赖于终端220***的平面检测能力,比如Android/iOS ***提供的 ARCore/ARKit 的平面检测能力。如果在预设时长内,未能检测到合适的放置平面,此时已经达到用户容忍时间,为了避免影像用户体验,可以进入步骤303,否则如果在预设时长内,检测到合适的放置平面,进入步骤306。
于一实施例中,预设时长可以基于终端220的硬件参数进行配置,比如主要针对用户的容忍时间,实际场景中用户对于低端机型的终端220检测时间预期较长,预设时长可以配置长一些,这样可以给***更多的检测时间。而高端机型的终端220可以配置短一点的预设时长,甚至预设时长可以为零,避免用户的感受低于预期,提高终端220的交互体验。
步骤303:获取虚拟物体对应的平面参数和图像信息对应的相机位姿信息。
在本步骤中,如果在预设时长内,***未能从图像信息中检测到合适的放置平面,此时已经达到用户容忍时间,为了避免影像用户体验,可以主动构建一个预置平面。具体地,首先获取该虚拟物体对应的平面参数和三维场景的图像信息对应的相机位姿信息。此处平面参数是要构建的预置平面的参数,可以预先针对虚拟物体的不同类型设定对应的平面参数。相机位姿信息是拍摄三维场景的图像信息时对应的相机位姿信息,以使预置平面能够与图像信息相适应。
于一实施例中,步骤303具体可以包括:若在预设时长内未从图像信息中检测到放置平面,确定虚拟物体的类型标识。从数据库中读取类型标识对应的平面参数,数据库中预先配置了多种类型标识对应平面参数。
在本实施例中,可以预先为不同类型的虚拟物体配置对应的平面参数,并将虚拟物体的类型标识与对应的平面参数之间的关联关系保存在数据库中。如果在预设时长内,***未能从图像信息中检测到合适的放置平面,可以直接从数据库中读取当前虚拟物体的类型标识对应的平面参数,方便快捷,减少数据计算量。
于一实施例中,平面参数包含但不限于:预置平面与预设的参考平面之间的相对位置关系和预置平面的尺寸信息。
在本实施例中,参考平面可以基于实际需求选定,参考平面用于标定预置平面的位置。比如对于需要水平放置的虚拟物体(冰箱、洗衣机、微波炉等设备的虚拟模型),用户一般是站着或者坐着去操作AR设备的,此时可以选取水平地面作为参考平面,那么预置平面与参考平面之间的相对位置关系可以包括:预置平面平行于水平地面。另外为了更加准确的限定虚拟物体的放置位置,可以为预置平面配置合适的尺寸信息。比如基于虚拟物体本身的尺寸大小,设定预置平面的尺寸信息,保证预置平面的尺寸可以容得下虚拟物体,比如虚拟物体是冰箱模型,则对应的预置平面尺寸信息可以是3m*3m大小。
于一实施例中,平面参数包括:预置平面与相机位置之间的预设距离。在本实施例中,虚拟物体对应的平面参数还可以包括预置平面的预估高度,为了提高预置平面的准确率,可以使用预置平面与相机位置之间的预设距离来表征预置平面的高度信息。具体可以做如下配置:对于操作介质为手持终端220时,终端220的相机位置一般在用户的手的位置,基于虚拟物体的品类进行配置,比如地面放置类商品如冰箱、洗衣机,预置平面在水平地面内,可以配置用户手(终端220的相机位置)距离脚底(预置平面)的预估高度作为预设距离,比如1米。而桌面放置类商品如电饭锅、微波炉,对应的预置平面一般在桌面上,桌面一般高度在用户的腰部位置,可以配置手(终端220的相机位置)距离腰部的预估高度作为预设距离。
步骤304:根据相机位姿信息和平面参数,在三维场景中构建预置平面。
在本步骤中,确定了相机位姿信息和平面参数后,可以在三维场景中构建合适的预置平面,此处预置平面是虚拟的平面,可以与图像信息中显示的三维场景的某个面重合或者相近,比如预置平面可以能与地面、桌面重合或者相近,在用户看来虚拟物体放置在预置平面上,与放置在三维场景中的平面上效果是相同或者相似的。
于一实施例中,步骤304具体可以包括:根据相机位姿信息和相对位置关系,确定预置平面的中心点位置。以中心点位置为中心,按照相对位置关系和尺寸信息在三维场景中构建预置平面。
在本实施例中,基于相机位姿信息和预置平面与参考平面之间的相对位置关系,可以首先确定预置平面的中心点位置,再以该中心点位置为中心构建合适的预置平面即可,比如对水平放置场景,用户一般是站着或者坐着去操作的,手距离地面的位置是有固定范围的,假设它为1m,再根据相机当前的方向,就可以算出虚拟物体的一个放置点,从而得到平面中心点,再以这个点构建一定大小的预置平面。预置平面是在三维场景中构建出来的一个虚拟平面,预置平面融合于图像信息中,不会影响三维场景的图像信息的展示。
于一实施例中,根据相机位姿信息和相对位置关系,确定预置平面的中心点位置,包括:根据相机位姿信息确定以相机位置为端点,以相机方向为发射方向的射线。根据相对位置关系确定平行于参考平面、且与相机位置具备预设距离的过渡平面,并确定射线与过渡平面的交点位置。若交点位置在预设区域范围内,将交点位置确定为预置平面的中心点位置。若交点位置不在预设区域范围内,发出提示信息,提示信息用于提示用户调整相机位姿,并在用户调整相机位姿后,继续检测调整后的交点位置,直至调整后的交点位置在预设区域范围内时,将交点位置确定为预置平面的中心点位置。
在本实施例中,以虚拟物体为水平地面放置类为例,如图5所示,假设终端220是用户使用的手机,相机位姿信息就是手机的摄像头的位姿信息,可以包括手机摄像头(即相机)的位置和方向(forward)。实际场景中用户一般是站着或者坐着去操作的,预置平面就在水平地面之内,手距离地面的位置假设为1m,也就是说预置平面与相机位置之间的预设距离为1m,那么水平地面就是此时的过渡平面。首先确定以摄像头位置为端点,以相机方向forward为发射方向的射线,射线与水平地面的交点位置P就是预置平面的中心点位置,再以这个P点构建一定大小的预置平面。具体地,如果P点位置与用户相距太远或太近,都不会符合条件,也就是说若交点P位置在预设区域范围内,说明当前确定的点P位置较适合用户观察虚拟物体的摆放状态,则将交点位置确定为预置平面的中心点位置,如果交点P位置不在预设区域范围内,说明P点位置与用户相距太远或太近,不利于用户观察,则可以发出提示,提示信息用于提示用户调整相机位姿,比如提示用户改变手机的位置,并在用户调整相机位姿后,继续检测调整后的交点位置,直至调整后的交点位置在预设区域范围内时,将交点位置确定为预置平面的中心点位置。从而保证确定的预置平面是准确的,提高用户交互体验。
另外可以给用户做一些行为引导来提高平面检测成功率,如环境光明暗提示给用户,让用户去找一个更明亮的地方拍摄场景的图像信息,还有手机位姿方向太竖直时,可以提示用户对准地面拍,用于协助用户获得更加准确的图像信息,进而确定更加准确的预置平面位置。
步骤305:驱动虚拟物体放置在三维场景的预置平面上。
在本步骤中,确定了预置平面之后,即可驱动虚拟物体放置在三维场景的预置平面上,比如响应于用户在预置平面内的点击操作,将虚拟物体放置在预置平面上的某个位置上,保证在用户的容忍时间内,让虚拟物体落地放置,优先保证XR业务的使用。
于一实施例中,步骤305具体可以包括:驱动虚拟物体放置在预置平面上的中心点位置。
在本实施例中,如图5所示,P点就是中心点位置,该位置与用户的距离关系更加符合用户的观看习惯,将虚拟物体放置在该点P的位置上,可以呈现出更加贴合用户观察习惯的场景感,提高用户与XR场景的交互体验。
步骤306:驱动虚拟物体放置在放置平面上。
在本步骤中,若在预设时长内从图像信息中检测到放置平面,说明***的平面检测能力比较迅速,可以快速找到图像信息中合适的放置平面,直接将虚拟物体放置在***找到的放置平面上即可。
于一实施例中,在步骤305之后,如果确定***从三维场景的图像信息中检测到放置平面,可以将虚拟物体切换到放置平面上。以保证后续交互过程的顺利进行。具体地,为了保证切换平面时用户无感知,可以有用户的交互操作触发切换平面。
上述确定物体放置平面的方法,当用户在XR场景中放置虚拟物体时,实时获取三维场景的图像,首先判断***在预设时长内是否从当前图像中检测到放置平面,如果没有,则根据该虚拟物体预配的预设平面高度以及当前相机位姿,在当前图像中构建一个预置平面,将虚拟物体放在预置平面内。如此,当***未能及时检测到放置平面时,通过交互行为以及虚拟物体类别及时构建预置平面,避免***平面检测能力层次不齐而需要用户长时间等待的情况,不耽误用户的放置操作,降低***平面检测能力对XR使用体验的影响,有效提升了业务的可用性,提高用户的交互体验。本方案不依赖外部算法,不受光照等环境因素影响,适用范围广。
请参看图6,其为本申请一实施例的确定物体放置平面的方法,该方法可由图1所示的电子设备1来执行,并可以应用于图2所示的XR的应用场景中,以实现降低***平面检测能力对XR使用体验的影响,有效提升了业务的可用性,提高用户的交互体验。本实施例以终端220为执行端为例,与前述实施例相比,本实施例还包括后续交互操作中用***检测到的放置平面替换掉预置平面的步骤,该方法包括如下步骤:
步骤601:响应于对虚拟物体的放置操作,获取三维场景的图像信息。详细过程可以参阅前述实施例中对步骤301的描述。
步骤602:判断在预设时长内是否从图像信息中检测到放置平面。若是进入步骤606,否则进入步骤603。详细过程可以参阅前述实施例中对步骤302的描述。
步骤603:若在预设时长内未从图像信息中检测到放置平面,获取虚拟物体对应的平面参数和图像信息对应的相机位姿信息。详细过程可以参阅前述实施例中对步骤303的描述。
步骤604:根据相机位姿信息和平面参数,在三维场景中构建预置平面。详细过程可以参阅前述实施例中对步骤304的描述。
步骤605:驱动虚拟物体放置在三维场景的预置平面上。详细过程可以参阅前述实施例中对步骤305的描述。
步骤606:若在预设时长内从图像信息中检测到放置平面,驱动虚拟物体放置在放置平面上。详细过程可以参阅前述实施例中对步骤306的描述。
步骤607:响应于对虚拟物体的交互操作,获取三维场景的当前图像信息。
在本步骤中,如果虚拟物体放置到预置平面内后,用户与AR场景进行了进一步的交互操作,比如移动虚拟物体、或者移动终端220设备等操作,这个过程中必定会引起虚拟物体在AR场景中的位置移动,因此需要实时获取三维场景的当前图像信息,比如通过手机摄像头实时拍摄室内场景的当前视频流。
步骤608:判断是否从当前图像信息中检测到放置平面。若是进入步骤609,否则进入步骤610。
在本步骤中,终端220***提供的平面检测能力会继续从当前图像信息中提取平面,限制于终端220硬件的性能,可能不能及时检测到放置平面,因此需要实时判断***是否从当前图像信息中检测到放置平面,如果检测到了,进入步骤609,否则进入步骤610。
步骤609:驱动虚拟物体在放置平面上执行交互操作,并移除预置平面。
在本步骤中,如果***从当前图像信息中检测到放置平面,则此时可以将虚拟物体切换到放置平面上进行处理,也就是在***返回的放置平面上执行交互操作,比如在放置平面上移动虚拟物体,实际场景中,用户在交互操作的时候一般预计会出现虚拟物体的移动,此时切换虚拟物体所在平面符合用户预期,可以在用户无感知的情况下将虚拟物体切换到***检测到的放置平面,保证交互操作顺利进行,并可以移除预置平面,比如删除预置平面的内存数据,降低资源消耗。
步骤610:驱动虚拟物体在预置平面上执行交互操作。
在本步骤中,如果***仍然没有从图像信息中检测到放置平面,则为了保证交互操作顺利进行,可以继续使用预置平面,即在预置平面内执行用户与虚拟物体的交互操作,降低***平面检测能力不足带来的不好体验。
以AR场景中用户与洗衣机的商品模型交互的场景为例,为以手机作为操作介质,当用户点开洗衣机的AR商品详情时,如图7A所示,手机摄像头拍摄到三维场景的图像信息,***首先基于当前三维场景的图像信息检测平面,可以在交互界面提示“移动手机去识别平面”。假设用户手机配置的预设时长为3秒,如果3秒内***没有返回检测到的放置平面,则触发步骤603至步骤604,构建预置平面,如图7B所示,虚线框内为预置平面,可以在预置平面附近给出提示“点击放置商品”,以提示用户将洗衣机放置在预置平面上,此处预置平面用户是无感知的。用户点击放置洗衣机后,界面展示效果如图7C所示。假设此时***检测到了放置平面如图7C所示,可见放置平面与预置平面有部分重合,当用户移动洗衣机,可以将洗衣机切换到放置平面上,切换平面后的展示效果如图7D所示。
上述确定物体放置平面的方法,在***确定物体放置平面的时间达到容忍时间之后,在适当位置自动构建一个预置平面供用户放置虚拟物体,后续用户与虚拟物体交互过程中如移动虚拟物体时,如果遇到***检测的放置平面,则将虚拟物体切换到***检测到的放置平面上执行交互操作,并清除预置平面,如果后续一直没有得到***检测的放置平面,则继续使用预置平面维持交互过程顺利进行,如此,在用户无感知的情况下,实现降低***平面检测能力对交互过程的影像,提高用户的交互体验。
请参看图8,其为本申请一实施例的确定物体放置平面的方法,该方法可由图1所示的电子设备1来执行,并可以应用于图2所示的XR的应用场景中,以实现降低***平面检测能力对XR使用体验的影响,有效提升了业务的可用性,提高用户的交互体验。本实施例以终端220为执行端为例,与前述实施例相比,本实施例以安卓手机为例,即以ARKit平台提供的***平面检测能力为例,该方法包括如下步骤:
S1:用户打开手机摄像头,拍摄当前三维场景的图像信息。
S2:ARKit基于图像信息持续检测平面。
S3:手机屏幕中心发出的垂直射线尝试与***检测平面产生交点1,此过程也可以由用户移动手机位姿触发。
S4:判断在3秒内是否出现上述的交点1,如果出现交点1,进入S11,否则进入S5
S5:获取配置的预估平面高度,此处预估平面就是预置平面,预估平面高度就是预置平面与相机位置之间的预设距离,也就是获取配置的预置平面的平面参数,比如预置平面平行于水平地面,并且与手机相机位置之间的预设距离为1m。
S6:计算屏幕中心垂直射线与预估平面交点距离,也就是计算手机屏幕中心发出的垂直射线与预置平面的交点2,确定交点2与手机之间的距离。
S7:判断交点2与手机之间的距离是否在限定范围内,如果是进入S9,否则进入S8。
S8:提示用户调整手机位姿,用户调整手机位姿后,返回步骤S3。
S9:构建一定面积的虚拟平面(即预置平面),具体地,按照设定的尺寸信息构建预置平面,比如构建3m*3m的预置平面。
S10:获取手机屏幕中心垂直发出的射线与预置平面的交点2。
S11:在交点处显示放置位置,用于提示用户点击放置虚拟物体。
S12:用户点击后,将虚拟物体放置在交点位置。
S13:用户移动虚拟物体,触发移动操作。
S14:确定移动操作在手机屏幕上的触点,判断以相机角度从手机屏幕上触点发出的射线与ARKit检测平面(即放置平面)是否有交点,如果有,进入S15,否则进入S16。
S15:移除所有的预置平面,并返回步骤S12,将虚拟物体切换到放置平面执行移动操作。
S16:判断以相机角度从手机屏幕上触点发出的射线是否与预置平面有交点,如果有,返回步骤S12,否则,进入步骤S17。
S17:提示用户当前无法放置虚拟物体,比如将虚拟物体标红,或者文字提示。
本实施例中,用户打开摄像头后,ARKit持续的检测平面,用户也在不断的调整相机对准某个平面,这个过程如果持续预设时长,比如3秒,ARKit还没有找到平面,而用户此时很可能已经对准了现实三维场景中一个合适的地面,可以主动构建一个预置平面。对水平放置场景,用户一般是站着或者坐着去操作的,手距离地面的位置是有一定范围的,假设它为1m,这样再根据相机当前的方向,很容易就能算出平面距离,从而得到平面中心点,再以这个点构建一定大小的预置平面。当然,如果中心位置里的太远/太近,都不会符合条件,提示给用户,以便于用户调整位姿。如此就不耽误用户的放置操作,而后续***可能也检测到放置平面了,后续的交互操作会触发修正到***检测到的放置平面上执行,保证交互过程顺利进行。
请参看图9A,其为本申请一实施例的确定物体放置平面的方法,该方法可由图1所示的电子设备1来执行,并可以应用于图2所示的XR的应用场景中,以实现降低***平面检测能力对XR使用体验的影响,有效提升了业务的可用性,提高用户的交互体验。本实施例以终端220为执行端为例,以用户使用电商购物平台进行AR场景选购商品为例,该方法包括如下步骤:
步骤901:响应于用户在交互界面上对商品虚拟模型的放置操作,获取三维场景的图像信息。
在本步骤中,以商品虚拟模型作为虚拟物体为例,当用户使用电商购物平台选购商品时,可以在3D商品详情页面进入AR场景,用户可以在AR场景中拖动商品虚拟模型,以实现多方位查看商品详情,协助用户选购,提升用户的交互体验。详细过程可以参阅前述实施例中对步骤301的描述。
步骤902:判断在预设时长内是否从图像信息中检测到放置平面,放置平面为三维场景中的平面。若是进入步骤906,否则进入步骤903。详细过程可以参阅前述实施例中对步骤302的描述。
步骤903:若在预设时长内未从图像信息中检测到放置平面,获取商品虚拟模型对应的平面参数和图像信息对应的相机位姿信息。详细过程可以参阅前述实施例中对步骤303的描述。
步骤904:根据相机位姿信息和平面参数,在三维场景内构建预置平面。详细过程可以参阅前述实施例中对步骤304的描述。
步骤905:驱动商品虚拟模型放置在三维场景的预置平面上,并在交互界面上展示商品虚拟模型放置在三维场景中的状态。详细过程可以参阅前述实施例中对步骤305的描述。
步骤906:驱动商品虚拟模型放置在放置平面上,并在交互界面上展示商品虚拟模型放置在三维场景中的状态。详细过程可以参阅前述实施例中对步骤306的描述。
上述确定物体放置平面的方法,在达到用户容忍时间时,根据用户行为、虚拟物体类别等估算构建了一个合适的预置平面,保证业务的初始可用性,协助用户更好的选购商品,提高终端220的交互性能,提高用户的交互体验。不依赖外部算法,不受光照等环境因素影响,适用范围广。在某电商平台的线上业务的实际应用中,以手机为例,平均平面检测时间从原来的16s降低到目前的3s内,页面停留时长也有所提升。
请参看图9B,其为本申请一实施例的确定物体放置平面的方法,该方法可由图1所示的电子设备1来执行,并可以应用于图2所示的AR的应用场景中,以实现降低***平面检测能力对AR使用体验的影响,有效提升了业务的可用性,提高用户的交互体验。本实施例以终端220为执行端为例,以用户与AR场景进行交互为例,该方法包括如下步骤:
步骤1101:响应于用户在交互界面上对虚拟物体的放置操作,获取当前场景的图像信息。
在本步骤中,以AR场景为例,当前场景可以是用户当前所处的实体环境场景,具体可参见前述实施例的相关描述。
步骤1102:判断在预设时长内是否从图像信息中检测到放置平面,放置平面为当前场景中的平面。若是,进入步骤1105,否则进入步骤1103。详细过程可以参阅前述实施例中对步骤302的描述。
步骤1103:若在预设时长内未从图像信息中检测到放置平面,在当前场景对应的三维空间内构建预置平面。
在本步骤中,当前场景是实体空间场景,可以基于当前场景的图像信息重建当前场景对应的三维空间,预置平面是建立在该三维空间的虚拟平面,详细过程可以参阅前述实施例中对步骤303的描述。
于一实施例中,步骤1103具体可以包括:获取虚拟物体对应的平面参数和图像信息对应的相机位姿信息。根据相机位姿信息和平面参数,在当前场景对应的三维空间内构建预置平面。详细过程可以参阅前述实施例中对步骤303的相关描述。
于一实施例中,平面参数可以包括:预置平面与相机位置之间的预设距离、预置平面与预设的参考平面之间的相对位置关系和预置平面的尺寸信息。根据相机位姿信息和平面参数,在当前场景对应的三维空间内构建预置平面,包括:根据相机位姿信息确定以相机位置为端点,以相机方向为发射方向的射线。根据相对位置关系确定平行于参考平面、且与相机位置具备预设距离的过渡平面,并确定射线与过渡平面的交点位置。若交点位置在预设区域范围内,将交点位置确定为预置平面的中心点位置。若交点位置不在预设区域范围内,发出提示信息,提示信息用于提示用户调整相机位姿,并在用户调整相机位姿后,继续检测调整后的交点位置,直至调整后的交点位置在预设区域范围内时,将交点位置确定为预置平面的中心点位置。以中心点位置为中心,按照相对位置关系和尺寸信息在当前场景对应的三维空间中构建预置平面。
在本实施例中,AR场景下,在构建预置平面时,如果发现预置平面的交点太远或者太近,提醒用户调整手机位姿,具体可参阅前述实施例对步骤304的描述。
步骤1104:驱动虚拟物体放置在三维空间内的预置平面上,并在交互界面上展示虚拟物体放置在当前场景中的状态图像。详细过程可以参阅前述实施例中对步骤305的描述。
步骤1105:驱动虚拟物体放置在放置平面上,并在交互界面上展示虚拟物体放置在三维场景中的状态。详细过程可以参阅前述实施例中对步骤306的描述。
上述确定物体放置平面的方法,在AR场景中,在达到用户容忍时间时,根据用户行为、虚拟物体类别等估算构建了一个合适的预置平面,保证AR交互的可用性,提高终端220的交互性能,提高用户的交互体验。
请参看图10,其为本申请一实施例的确定物体放置平面的装置1000,该装置可应用于图1所示的电子设备1,并可以应用于图2所示的XR的应用场景中,以实现降低***平面检测能力对XR使用体验的影响,有效提升了业务的可用性,提高用户的交互体验。该装置包括:第一获取模块1001、第一判断模块1002、第二获取模块1003、构建模块1004和驱动模块1005,各个模块的功能原理如下:
第一获取模块1001,用于响应于对虚拟物体的放置操作,获取三维场景的图像信息。
第一判断模块1002,用于判断在预设时长内是否从图像信息中检测到放置平面,放置平面为三维场景中的平面。
第二获取模块1003,用于若在预设时长内未从图像信息中检测到放置平面,获取虚拟物体对应的平面参数和图像信息对应的相机位姿信息。
构建模块1004,用于根据相机位姿信息和平面参数,在三维场景中构建预置平面。
驱动模块1005,用于驱动虚拟物体放置在三维场景的预置平面上。
于一实施例中,三维场景为现实三维空间场景。第一获取模块1001,用于响应于对虚拟物体的放置操作,开启图像采集设备,通过图像采集设备采集现实三维空间的图像信息。
于一实施例中,三维场景为虚拟三维空间场景。第一获取模块1001,用于响应于对虚拟物体的放置操作,开启虚拟相机,通过虚拟相机,采集虚拟三维空间的图像信息。
于一实施例中,第二获取模块1003,用于若在预设时长内未从图像信息中检测到放置平面,确定虚拟物体的类型标识。从数据库中读取类型标识对应的平面参数,数据库中预先配置了多种类型标识对应平面参数。
于一实施例中,平面参数包括:预置平面与预设的参考平面之间的相对位置关系和预置平面的尺寸信息。
于一实施例中,构建模块1004你,用于根据相机位姿信息和相对位置关系,确定预置平面的中心点位置。以中心点位置为中心,按照相对位置关系和尺寸信息在三维场景中构建预置平面。
于一实施例中,平面参数包括:预置平面与相机位置之间的预设距离。根据相机位姿信息和相对位置关系,确定预置平面的中心点位置,包括:根据相机位姿信息确定以相机位置为端点,以相机方向为发射方向的射线。根据相对位置关系确定平行于参考平面、且与相机位置具备预设距离的过渡平面,并确定射线与过渡平面的交点位置。若交点位置在预设区域范围内,将交点位置确定为预置平面的中心点位置。若交点位置不在预设区域范围内,发出提示信息,提示信息用于提示用户调整相机位姿,并在用户调整相机位姿后,继续检测调整后的交点位置,直至调整后的交点位置在预设区域范围内时,将交点位置确定为预置平面的中心点位置。
于一实施例中,驱动模块1005,用于驱动虚拟物体放置在三维场景的预置平面上的中心点位置。
于一实施例中,驱动模块1005,还用于若在预设时长内从图像信息中检测到放置平面,驱动虚拟物体放置在放置平面上。
于一实施例中,还包括:第三获取模块,用于在驱动虚拟物体放置在三维场景的预置平面上之后,响应于对虚拟物体的交互操作,获取三维场景的当前图像信息。第二判断模块,用于判断是否从当前图像信息中检测到放置平面。驱动模块1005,还用于若从当前图像信息中检测到放置平面,驱动虚拟物体在放置平面上执行交互操作,并移除预置平面。驱动模块1005,还用于若未从图像信息中检测到放置平面,驱动虚拟物体在预置平面上执行交互操作。
上述确定物体放置平面的装置1000的详细描述,请参见上述实施例中相关方法步骤的描述,其实现原理和技术效果类似,本实施例此处不再赘述。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当处理器执行计算机执行指令时,实现前述任一实施例的方法。
本申请实施例还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现前述任一实施例的方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例方法的部分步骤。
应理解,上述处理器可以是中央处理单元(Central Processing Unit,简称CPU),还可以是其它通用处理器、数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合申请所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。
上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路(Application Specific Integrated Circuits,简称ASIC)中。当然,处理器和存储介质也可以作为分立组件存在于电子设备或主控设备中。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例的方法。
本申请的技术方案中,所涉及的用户数据等信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (14)

1.一种确定物体放置平面的方法,其特征在于,所述方法包括:
响应于对虚拟物体的放置操作,获取三维场景的图像信息;
判断在预设时长内是否从所述图像信息中检测到放置平面,所述放置平面为所述三维场景中的平面;
若在所述预设时长内未从所述图像信息中检测到放置平面,获取所述虚拟物体对应的平面参数和所述图像信息对应的相机位姿信息;
根据所述相机位姿信息和所述平面参数,在所述三维场景中构建预置平面;
驱动所述虚拟物体放置在所述三维场景中的预置平面上;
所述平面参数包括:所述预置平面与预设的参考平面之间的相对位置关系和所述预置平面的尺寸信息。
2.根据权利要求1所述的方法,其特征在于,所述三维场景为现实三维空间场景;所述响应于对虚拟物体的放置操作,获取三维场景的图像信息,包括:
响应于对虚拟物体的放置操作,开启图像采集设备,通过所述图像采集设备采集所述现实三维空间的图像信息。
3.根据权利要求1所述的方法,其特征在于,所述三维场景为虚拟三维空间场景;所述响应于对虚拟物体的放置操作,获取三维场景的图像信息,包括:
响应于对虚拟物体的放置操作,开启虚拟相机,通过所述虚拟相机,采集所述虚拟三维空间的图像信息。
4.根据权利要求1所述的方法,其特征在于,所述若在所述预设时长内未从所述图像信息中检测到放置平面,获取所述虚拟物体对应的平面参数,包括:
若在所述预设时长内未从所述图像信息中检测到放置平面,确定所述虚拟物体的类型标识;
从数据库中读取所述类型标识对应的平面参数,所述数据库中预先配置了多种类型标识对应平面参数。
5.根据权利要求1所述的方法,其特征在于,所述根据所述相机位姿信息和所述平面参数,在所述三维场景中构建预置平面,包括:
根据所述相机位姿信息和所述相对位置关系,确定所述预置平面的中心点位置;
以所述中心点位置为中心,按照所述相对位置关系和所述尺寸信息在所述三维场景中构建所述预置平面。
6.根据权利要求5所述的方法,其特征在于,所述平面参数包括:所述预置平面与相机位置之间的预设距离;所述根据所述相机位姿信息和所述相对位置关系,确定所述预置平面的中心点位置,包括:
根据所述相机位姿信息确定以相机位置为端点,以相机方向为发射方向的射线;
根据所述相对位置关系确定平行于所述参考平面、且与所述相机位置具备所述预设距离的过渡平面,并确定所述射线与所述过渡平面的交点位置;
若所述交点位置在预设区域范围内,将所述交点位置确定为所述预置平面的中心点位置;
若所述交点位置不在预设区域范围内,发出提示信息,所述提示信息用于提示用户调整相机位姿,并在所述用户调整相机位姿后,继续检测调整后的所述交点位置,直至调整后的所述交点位置在所述预设区域范围内时,将所述交点位置确定为所述预置平面的中心点位置。
7.根据权利要求5所述的方法,其特征在于,所述驱动所述虚拟物体放置在所述三维场景的预置平面上,包括:
驱动所述虚拟物体放置在所述预置平面上的所述中心点位置。
8.根据权利要求1所述的方法,其特征在于,还包括:
若在所述预设时长内从所述图像信息中检测到所述放置平面,驱动所述虚拟物体放置在所述放置平面上。
9.根据权利要求1所述的方法,其特征在于,在所述驱动所述虚拟物体放置在所述三维场景的预置平面上之后,还包括:响应于对虚拟物体的交互操作,获取所述三维场景的当前图像信息;
判断是否从所述当前图像信息中检测到放置平面;
若从所述当前图像信息中检测到放置平面,驱动所述虚拟物体在所述放置平面上执行所述交互操作,并移除所述预置平面;
若未从所述图像信息中检测到所述放置平面,驱动所述虚拟物体在所述预置平面上执行所述交互操作。
10.一种确定物体放置平面的方法,其特征在于,包括:
响应于用户在交互界面上对商品虚拟模型的放置操作,获取三维场景的图像信息;
判断在预设时长内是否从所述图像信息中检测到放置平面,所述放置平面为所述三维场景中的平面;
若在所述预设时长内未从所述图像信息中检测到放置平面,获取所述商品虚拟模型对应的平面参数和所述图像信息对应的相机位姿信息;
根据所述相机位姿信息和所述平面参数,在所述三维场景内构建预置平面;
驱动所述商品虚拟模型放置在所述三维场景的预置平面上,并在所述交互界面上展示所述商品虚拟模型放置在所述三维场景中的状态;
所述平面参数包括:所述预置平面与预设的参考平面之间的相对位置关系和所述预置平面的尺寸信息。
11.一种确定物体放置平面的方法,其特征在于,包括:
响应于用户在交互界面上对虚拟物体的放置操作,获取当前场景的图像信息;
判断在预设时长内是否从所述图像信息中检测到放置平面,所述放置平面为所述当前场景中的平面;
若在所述预设时长内未从所述图像信息中检测到放置平面,在所述当前场景对应的三维空间内构建预置平面;
驱动所述虚拟物体放置在所述三维空间内的预置平面上,并在所述交互界面上展示所述虚拟物体放置在所述当前场景中的状态图像;
所述在所述当前场景对应的三维空间内构建预置平面,包括:
获取所述虚拟物体对应的平面参数和所述图像信息对应的相机位姿信息;
根据所述相机位姿信息和所述平面参数,在所述当前场景对应的三维空间内构建预置平面;
所述平面参数包括:所述预置平面与相机位置之间的预设距离、所述预置平面与预设的参考平面之间的相对位置关系和所述预置平面的尺寸信息。
12.根据权利要求11所述的方法,其特征在于,所述根据所述相机位姿信息和所述平面参数,在所述当前场景对应的三维空间内构建预置平面,包括:
根据所述相机位姿信息确定以相机位置为端点,以相机方向为发射方向的射线;
根据所述相对位置关系确定平行于所述参考平面、且与所述相机位置具备所述预设距离的过渡平面,并确定所述射线与所述过渡平面的交点位置;
若所述交点位置在预设区域范围内,将所述交点位置确定为所述预置平面的中心点位置;
若所述交点位置不在预设区域范围内,发出提示信息,所述提示信息用于提示用户调整相机位姿,并在所述用户调整相机位姿后,继续检测调整后的所述交点位置,直至调整后的所述交点位置在所述预设区域范围内时,将所述交点位置确定为所述预置平面的中心点位置;
以所述中心点位置为中心,按照所述相对位置关系和所述尺寸信息在所述当前场景对应的三维空间中构建所述预置平面。
13.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述电子设备执行权利要求1-12任一项所述的方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1-12任一项所述的方法。
CN202310065054.5A 2023-02-06 2023-02-06 确定物体放置平面的方法、设备、存储介质 Active CN115810100B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310065054.5A CN115810100B (zh) 2023-02-06 2023-02-06 确定物体放置平面的方法、设备、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310065054.5A CN115810100B (zh) 2023-02-06 2023-02-06 确定物体放置平面的方法、设备、存储介质

Publications (2)

Publication Number Publication Date
CN115810100A CN115810100A (zh) 2023-03-17
CN115810100B true CN115810100B (zh) 2023-05-05

Family

ID=85487523

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310065054.5A Active CN115810100B (zh) 2023-02-06 2023-02-06 确定物体放置平面的方法、设备、存储介质

Country Status (1)

Country Link
CN (1) CN115810100B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107665506A (zh) * 2016-07-29 2018-02-06 成都理想境界科技有限公司 实现增强现实的方法及***
CN115482359A (zh) * 2021-05-31 2022-12-16 华为技术有限公司 目标的尺寸测量方法、电子设备及其介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9367961B2 (en) * 2013-04-15 2016-06-14 Tencent Technology (Shenzhen) Company Limited Method, device and storage medium for implementing augmented reality
CN107665508B (zh) * 2016-07-29 2021-06-01 成都理想境界科技有限公司 实现增强现实的方法及***
CN108492363B (zh) * 2018-03-26 2020-03-10 Oppo广东移动通信有限公司 基于增强现实的结合方法、装置、存储介质及电子设备
CN108876900A (zh) * 2018-05-11 2018-11-23 重庆爱奇艺智能科技有限公司 一种与现实场景融合的虚拟目标投射方法和***
CN108961423B (zh) * 2018-07-03 2023-04-18 百度在线网络技术(北京)有限公司 虚拟信息处理方法、装置、设备及存储介质
US11054896B1 (en) * 2019-02-07 2021-07-06 Facebook, Inc. Displaying virtual interaction objects to a user on a reference plane
CN110533780B (zh) * 2019-08-28 2023-02-24 深圳市商汤科技有限公司 一种图像处理方法及其装置、设备和存储介质
CN111242908B (zh) * 2020-01-07 2023-09-15 青岛小鸟看看科技有限公司 一种平面检测方法及装置、平面跟踪方法及装置
CN111141217A (zh) * 2020-04-03 2020-05-12 广东博智林机器人有限公司 物体测量方法、装置、终端设备及计算机存储介质
CN113048980B (zh) * 2021-03-11 2023-03-14 浙江商汤科技开发有限公司 位姿优化方法、装置、电子设备及存储介质
CN114329747B (zh) * 2022-03-08 2022-05-10 盈嘉互联(北京)科技有限公司 一种面向建筑数字孪生的虚实实体坐标映射方法及***

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107665506A (zh) * 2016-07-29 2018-02-06 成都理想境界科技有限公司 实现增强现实的方法及***
CN115482359A (zh) * 2021-05-31 2022-12-16 华为技术有限公司 目标的尺寸测量方法、电子设备及其介质

Also Published As

Publication number Publication date
CN115810100A (zh) 2023-03-17

Similar Documents

Publication Publication Date Title
CN110215690B (zh) 游戏场景中的视角切换方法、装置及电子设备
CN110716645A (zh) 一种增强现实数据呈现方法、装置、电子设备及存储介质
CN103079092B (zh) 在视频中获取人物信息的方法和装置
CN114138121B (zh) 用户手势识别方法、装置、***、存储介质及计算设备
CN104123520A (zh) 二维码扫描方法及装置
CN111950521A (zh) 一种增强现实交互的方法、装置、电子设备及存储介质
CN109582147B (zh) 一种用于呈现增强交互内容的方法以及用户设备
CN113010018B (zh) 交互控制方法、终端设备及存储介质
US10936079B2 (en) Method and apparatus for interaction with virtual and real images
CN112598805A (zh) 一种提示信息展示方法、装置、设备及存储介质
CN108846899B (zh) 提高用户对房源中每个功能间的面积感知的方法及***
CN109656363A (zh) 一种用于设置增强交互内容的方法与设备
CN115278084A (zh) 图像处理方法、装置、电子设备及存储介质
CN115439171A (zh) 商品信息展示方法、装置及电子设备
KR101308184B1 (ko) 윈도우 형태의 증강현실을 제공하는 장치 및 방법
CN115810100B (zh) 确定物体放置平面的方法、设备、存储介质
CN111722711B (zh) 增强现实场景输出方法及电子设备、计算机可读存储介质
KR20220125715A (ko) 데이터 생성 방법, 장치, 기기, 저장 매체 및 프로그램
CN113963355B (zh) Ocr文字识别方法、装置、电子设备及存储介质
CN115061577B (zh) 手部投影交互方法、***及存储介质
CN107102794B (zh) 操作处理方法及装置
CN113421343B (zh) 基于增强现实观测设备内部结构的方法
CN106127858B (zh) 一种信息处理方法及电子设备
CN116129085B (zh) 虚拟物体处理方法、设备、存储介质及程序产品
CN108898572B (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