首页 / 专利库 / 显示技术 / 增强现实 / 用于检测用作虚拟衬底的平面和/或四叉树的方法和设备

用于检测用作虚拟衬底的平面和/或四叉树的方法和设备

阅读:111发布:2020-05-11

专利汇可以提供用于检测用作虚拟衬底的平面和/或四叉树的方法和设备专利检索,专利查询,专利分析的服务。并且一种 电子 设备:在电子设备的显示器上以第一外观状态显示 覆盖 在电子设备的图像 传感器 的视场中的对象的媒体捕获预览上的标线片元件,其中媒体捕获预览随着图像传感器的视场中的对象变化而变化;检测媒体捕获预览中的平面;并且响应于检测到平面,在显示器上以第二外观状态显示覆盖在媒体捕获预览上的标线片元件,其中当以第二外观状态显示时,标线片元件对应于平面的范围的一部分的指示。一种电子设备:获得多组图像;针对多组图像中的每一组合成三维点 云 ;使用相应的三维点云构建平面;并且生成一组合并的四叉树,其表征三维点云上的一组合并的平面。,下面是用于检测用作虚拟衬底的平面和/或四叉树的方法和设备专利的具体信息内容。

1.一种方法,包括:
在具有一个或多个处理器、非暂态存储器、图像传感器、显示器和一个或多个输入设备的电子设备处:
在所述显示器上以第一外观状态显示覆盖在所述图像传感器的视场中的对象的媒体捕获预览上的标线片元件,其中所述媒体捕获预览随着所述图像传感器的所述视场中的所述对象改变而改变;
检测所述媒体捕获预览中的平面;以及
响应于检测到所述平面,在所述显示器上以第二外观状态显示覆盖在所述媒体捕获预览上的所述标线片元件,其中当以所述第二外观状态显示时,所述标线片元件对应于所述平面的范围的一部分的指示。
2.根据权利要求1所述的方法,其中所检测到的平面邻近所述标线片元件。
3.根据权利要求1-2中任一项所述的方法,其中所检测到的平面在所述标线片元件的阈值距离内。
4.根据权利要求1-3中任一项所述的方法,还包括:
显示从所述标线片元件的所述第一外观状态到所述标线片元件的所述第二外观状态的转变动画,其中所述转变动画对应于调整所述标线片元件的取向以匹配所检测到的平面的取向。
5.根据权利要求1-4中任一项所述的方法,还包括:
当所述标线片元件以所述第二外观状态显示时,修改所述标线片元件的尺寸以对应于所检测到的平面的尺寸。
6.根据权利要求1-5中任一项所述的方法,还包括:
当所述标线片元件以所述第二外观状态显示时,经由所述一个或多个输入设备检测与调整所述标线片元件的尺寸对应的第一用户输入;以及
响应于检测到所述第一用户输入,基于所检测到的平面和以下各项中的至少一者来修改所述标线片元件的所述尺寸:所述第一用户输入的方向、所述第一用户输入的量值或所述第一用户输入的速度。
7.根据权利要求1-6中任一项所述的方法,还包括:
当所述标线片元件以所述第二外观状态显示时,经由所述一个或多个输入设备来检测与从对象选择界面选择增强或虚拟现实对象对应的第二用户输入;以及
响应于检测到所述第二用户输入,在所述显示器上相对于所检测到的平面显示覆盖在所述媒体捕获预览上的所选择的增强或虚拟现实对象
8.根据权利要求7所述的方法,其中相对于所检测到的平面显示覆盖在所述媒体捕获预览上的所选择的增强或虚拟现实对象包括:
基于所述平面的取向在所选择的增强或虚拟现实对象上施加旋转。
9.根据权利要求7-8中任一项所述的方法,还包括:
响应于检测到所述第二用户输入,停止显示覆盖在所述媒体捕获预览上的所述标线片元件。
10.根据权利要求7-9中任一项所述的方法,还包括:
经由所述一个或多个输入设备来检测对应于与所述增强或虚拟现实对象交互的第三用户输入;以及
响应于检测到所述第三用户输入,至少部分地基于所述第三用户输入的一个或多个特征来修改所述增强或虚拟现实对象。
11.一种电子设备,包括:
显示器;
图像传感器;
一个或多个输入设备;
一个或多个处理器;
非暂态存储器;和
一个或多个程序,其中所述一个或多个程序存储在所述非暂态存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行或导致执行根据权利要求
1-10所述的方法中的任一种方法的指令。
12.一种存储一个或多个程序的非暂态计算机可读存储介质,所述一个或多个程序包括指令,所述指令当由具有显示器、图像传感器和一个或多个输入设备的电子设备执行时,使得所述电子设备执行或导致执行根据权利要求1-10所述的方法中的任一种方法。
13.一种电子设备,包括:
显示器;
图像传感器;
一个或多个输入设备;和
用于执行或导致执行根据权利要求1-10所述的任一种方法的装置。
14.一种用于在具有显示器、图像传感器和一个或多个输入设备的电子设备中使用的信息处理装置,包括:
用于执行或导致执行根据权利要求1-10所述的方法中的任一种方法的装置。
15.一种方法,包括:
在具有一个或多个处理器和非暂态存储器的设备处:
获得多组图像;
针对所述多组图像中的每一组合成三维点
使用所述相应的三维点云构建平面;以及
生成一组合并的四叉树,所述一组合并的四叉树表征在所述三维点云上的一组合并的平面。
16.根据权利要求15所述的方法,其中构建所述平面包括针对所述三维点云中的每一个三维点云构建多组平面,并且通过在时间维度上使所述多组平面相关来生成所述一组合并的平面,并且
其中生成所述一组合并的四叉树包括根据所述一组合并的平面生成所述一组合并的四叉树。
17.根据权利要求16所述的方法,其中使所述多组平面相关包括以下各项中的至少一者:扩大平面、合并平面或校正平面。
18.根据权利要求15所述的方法,还包括:
针对所述三维点云中的每一个三维点云生成多组四叉树,并且
其中生成所述一组合并的四叉树包括通过在时间维度上使所述多组四叉树相关来生成所述一组合并的四叉树。
19.根据权利要求18所述的方法,其中使所述多组四叉树相关包括以下各项中的至少一者:扩大四叉树的部分、合并四叉树、或者校正四叉树的部分。
20.根据权利要求15-19中任一项所述的方法,其中构建所述平面包括将平面拟合到所述三维点云中的点的集群以获得所述一组合并的平面;并且
其中生成所述一组合并的四叉树包括:
将在所述三维点云上的点划分成三形;
移除具有不在所述一组合并的平面中的点的三角形以获得约束三角区域;
将所述约束三角区域投射到所述一组合并的平面上;以及
对所述约束三角区域进行正交化以获得所述一组合并的四叉树。
21.根据权利要求15-19中任一项所述的方法,还包括:
在所述电子设备的显示器上显示所述电子设备的图像传感器的视场中的对象的媒体捕获预览,其中所述媒体捕获预览随着所述图像传感器的所述视场中的所述对象改变而改变;以及
响应于生成所述一组合并的四叉树,在所述显示器上显示覆盖在所述媒体捕获预览上的与所述一组合并的四叉树相关联的平面,其中所述平面的周长对应于所述一组合并的四叉树的边界。
22.根据权利要求21所述的方法,还包括:
在显示覆盖在所述媒体捕获预览上的所述平面时,经由所述电子设备的一个或多个输入设备检测与从对象选择界面选择增强或虚拟现实对象对应的用户输入;以及响应于检测到所述用户输入,在所述显示器上相对于所述平面中的一者显示覆盖在所述媒体捕获预览上的所选择的增强或虚拟现实对象。
23.根据权利要求15-22中任一项所述的方法,其中多组图像中的第一组图像对应于第一参考点,并且其中多组图像中的第二组图像对应于第二参考点。
24.根据权利要求15-23中任一项所述的方法,其中所述一组合并的四叉树中的每个四叉树提供以下各项中的一者的指示:基本上平的平面、基本上竖直的平面或根据三个自由度中的一者或多者倾斜的平面。
25.一种电子设备,包括:
一个或多个处理器;
非暂态存储器;和
一个或多个程序,其中所述一个或多个程序存储在所述非暂态存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行或导致执行根据权利要求
15-24所述的方法中的任一种方法的指令。
26.一种存储一个或多个程序的非暂态计算机可读存储介质,所述一个或多个程序包括指令,所述指令当由电子设备执行时,使得所述电子设备执行或导致执行根据权利要求
15-24所述的方法中的任一种方法。
27.一种电子设备,包括:
用于执行或导致执行根据权利要求15-24所述的方法中的任一种方法的装置。
28.一种在电子设备中使用的信息处理装置,包括:
用于执行或导致执行根据权利要求15-24所述的方法中的任一种方法的装置。

说明书全文

用于检测用作虚拟衬底的平面和/或四叉树的方法和设备

技术领域

[0001] 本发明整体涉及检测场景内的平面和/或四叉树,包括但不限于使得所检测到的平面和/或四叉树被视为虚拟衬底的电子设备。

背景技术

[0002] 将增强现实/虚拟现实(AR/VR)对象放置在未映射或动态场景中至少从用户体验的度提出了挑战。如果AR/VR对象被放置到没有适当虚拟衬底的场景当中,那么AR/VR对象可能未被锚定到场景中的现实世界表面。如此,AR/VR可能漂浮在半空中,遮蔽现实世界对象或者与现实世界对象发生冲突。这会产生既不逼真也不可信的糟糕的用户体验。
[0003] 在下面描述的实施方案中,通过检测场景内的平面或四叉树并确定其范围以便提供放置AR/VR对象的虚拟衬底来解决该挑战。

发明内容

[0004] 根据一些实施方案,在具有一个或多个处理器、非暂态存储器、图像传感器、显示器以及一个或多个输入设备的电子设备处执行一种方法。该方法包括在显示器上以第一外观状态显示覆盖在图像传感器的视场中的对象的媒体捕获预览上的标线片元件,其中媒体捕获预览随着图像传感器的视场中的对象改变而改变。该方法还包括:在媒体捕获预览中检测平面;以及响应于检测到该平面,在显示器上以第二外观状态显示覆盖在媒体捕获预览上的标线片元件,其中当以第二外观状态显示时,标线片元件对应于平面的范围的一部分的指示。
[0005] 根据一些实施方案,在具有非暂态存储器和一个或多个处理器的电子设备处执行一种方法。该方法包括:获得多组图像;针对多组图像中的每一组合成三维点;使用相应的三维点云构建平面;以及生成一组合并的四叉树,其表征在三维点云上的一组合并的平面。
[0006] 根据一些实施方案,电子设备包括显示器、一个或多个输入设备、一个或多个处理器、非暂态存储器以及一个或多个程序;一个或多个程序被存储在非暂态存储器中并且被配置为由一个或多个处理器执行,并且一个或多个程序包括用于执行或导致执行本文所述的方法中的任一种方法的操作的指令。根据一些实施方案,一种非暂态计算机可读存储介质具有存储在其中的指令,当这些指令由具有显示器和一个或多个输入设备的电子设备的一个或多个处理器执行时,使得设备执行或导致执行本文所述的方法中的任一种方法的操作。根据一些实施方案,电子设备包括:显示器、一个或多个输入设备;以及用于执行或导致执行本文所述的方法中的任一种方法的操作的装置。根据一些实施方案,在具有显示器和一个或多个输入设备的电子设备中使用的信息处理装置包括用于执行或导致执行本文所述的方法中的任一种方法的操作的装置。附图说明
[0007] 为了更好地理解各种所述实施方案,应结合以下附图参考下面的具体实施方式,其中类似的附图标号在所有附图中指示对应的部分。
[0008] 图1A是示出根据一些实施方案的具有触敏显示器的便携式多功能设备的框图
[0009] 图1B是示出根据一些实施方案的用于事件处理的示例性部件的框图。
[0010] 图2示出了根据一些实施方案的具有触摸屏的便携式多功能设备。
[0011] 图3是根据一些实施方案的具有显示器和触敏表面的示例性多功能设备的框图。
[0012] 图4A-4M示出了根据一些实施方案的用于检测虚拟衬底并将对象放置在其上的示例性用户界面
[0013] 图5A-5B示出了根据一些实施方案的用于生成一组四叉树的示例性抽象框图。
[0014] 图6A-6G示出了根据一些实施方案的用于检测虚拟衬底的示例性用户界面。
[0015] 图7示出了根据一些实施方案的检测虚拟衬底并将对象放置在其上的方法的流程图
[0016] 图8示出了根据一些实施方案的生成用作虚拟衬底的一组合并的四叉树的方法的流程图。
[0017] 图9示出了根据一些实施方案的生成用作虚拟衬底的一组四叉树的方法的流程图。
[0018] 图10示出了根据一些实施方案的生成用作虚拟衬底的一组合并的四叉树的方法的流程图。
[0019] 图11为根据一些实施方案的计算设备的框图。

具体实施方式

[0020] 在下述实施方案中,当显示场景在图像传感器的视场内的媒体捕获预览时,覆盖在媒体捕获预览上的标线片元件从第一外观状态转变到第二外观,以提供视觉提示:已在场景内检测到平面。在下述实施方案中,当以第二外观状态显示时,标线片元件指示检测到的平面的范围。因此,下文所述的实施方案提供了当相对于被用作虚拟衬底的所检测到的平面在场景内放置增强现实/虚拟现实(AR/VR)对象时需要较少时间和用户输入的无缝的用户体验。这还通过使用户能够更快速且有效地使用设备而减少了电使用并延长了设备的电池寿命。
[0021] 在下述实施方案中,针对不同有利点或视场的一组平面或一组四叉树在时间维度上相关以获得一组合并的四叉树,该组合并的四叉树继而被用作虚拟衬底。因此,下文所述的实施方案提供了用于基于随时间推移场景的不同视场来识别虚拟衬底的精确范围的过程。因此,下文所述的实施方案提供了当相对于一组合并的四叉树(或与其关联的平面)将AR/VR对象放置在场景内时需要较少的时间和用户输入的无缝的用户体验。这还通过使用户能够更快速且有效地使用设备而减少了电力使用并延长了设备的电池寿命。
[0022] 下面,图1A-1B、图2-3和图11提供对示例性设备的描述。图7示出了检测虚拟衬底并将对象放置在其上的方法的流程图。图4A-4M中的用户界面用于示出图7中的过程。图8-10示出了生成用作虚拟衬底的一组四叉树的方法的流程图。图5A-5B中的抽象框图和图6A-
6G中的用户界面用于示出图8-10中的过程。
[0023] 示例性设备
[0024] 现在将详细地参考实施方案,这些实施方案的示例在附图中示出。下面的详细描述中示出许多具体细节,以便提供对各种所描述的实施方案的充分理解。但是,对本领域的普通技术人员将显而易见的是,各种所描述的实施方案可以在没有这些具体细节的情况下被实践。在其他情况下,没有详细地描述众所周知的方法、过程、部件、电路和网络,从而不会不必要地使实施方案的各个方面晦涩难懂。
[0025] 还将理解的是,虽然在一些情况下,术语“第一”、“第二”等在本文中用于描述各种元件,但是这些元件不应受到这些术语限制。这些术语只是用于将一个元件与另一元件区分开。例如,第一接触可被命名为第二接触,并且类似地,第二接触可被命名为第一接触,而不脱离各种所描述的实施方案的范围。第一接触和第二接触均为接触,但它们不是同一个接触,除非上下文另外明确指示。
[0026] 在本文中对各种所述实施方案的描述中所使用的术语只是为了描述特定实施方案的目的,而并非旨在进行限制。如在对各种所述实施方案中的描述和所附权利要求书中所使用的那样,单数形式“一个”和“该”旨在也包括复数形式,除非上下文另外明确地指示。还将理解的是,本文中所使用的术语“和/或”是指并且涵盖相关联的所列出的项目中的一个或多个项目的任何和全部可能的组合。还将理解的是,术语“包括”在本说明书中使用时是指定存在所陈述的特征、整数、步骤、操作、元件和/或部件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、部件和/或其分组。
[0027] 如本文中所使用,根据上下文,术语“如果”任选地被解释为意思是“当……时”后“在……时”或“响应于确定”或“响应于检测到”。类似地,根据上下文,短语“如果确定……”或“如果检测到[所陈述的条件或事件]”任选地被解释为是指“在确定……时”或“响应于确定……”或“在检测到[所陈述的条件或事件]时”或“响应于检测到[所陈述的条件或事件]”。
[0028] 本文描述了电子设备、此类设备的用户界面和使用此类设备的相关过程的实施方案。在一些实施方案中,该设备为还包含其他功能诸如PDA和/或音乐播放器功能的便携式通信设备,诸如移动电话。便携式多功能设备的示例性实施方案包括但不限于来自Apple Inc.(Cupertino,California)的 iPod 和 设备。任选地使用其他便携式电子设备,诸如具有触敏表面(例如,触摸屏显示器和/或触摸板)的膝上型计算机或平板计算机。还应当理解的是,在一些实施方案中,该设备并非便携式通信设备,而是具有触敏表面(例如,触摸屏显示器和/或触摸板)的台式计算机。
[0029] 在下面的讨论中,描述了一种包括显示器和触敏表面的电子设备。然而,应当理解,该电子设备任选地包括一个或多个其他物理用户接口设备,诸如物理键盘鼠标和/或操纵杆。
[0030] 该设备通常支持各种应用程序,诸如以下中的一者或多者:绘图应用程序、呈现应用程序、文字处理应用程序、网站创建应用程序、盘编辑应用程序、电子表格应用程序、游戏应用程序、电话应用程序、视频会议应用程序、电子邮件应用程序、即时消息应用程序、健身支持应用程序、照片管理应用程序、数字相机应用程序、数字视频摄像机应用程序、网页浏览应用程序、数字音乐播放器应用程序和/或数字视频播放器应用程序。
[0031] 在设备上执行的各种应用程序任选地使用至少一个通用的物理用户接口设备,诸如触敏表面。触敏表面的一种或多种功能以及被显示在设备上的对应信息任选地对于不同应用程序被调整和/或变化,和/或在相应应用程序内被调整和/或变化。这样,设备的共用物理架构(诸如触敏表面)任选地利用对于用户而言直观且清楚的用户界面来支持各种应用程序。
[0032] 现在将注意力转到具有触敏显示器的便携式设备的实施方案。图1A是示出根据一些实施方案的具有触敏显示器系统112的便携式多功能设备100的框图。触敏显示器系统112有时为了方便而被叫做“触摸屏”,并且有时被简称为触敏显示器。设备100包括存储器
102(其任选地包括一个或多个计算机可读存储介质)、存储器控制器122、一个或多个处理单元(CPU)120、外围设备接口118、RF电路108、音频电路110、扬声器111、麦克113、输入/输出(I/O)子系统106、其他输入、或控制设备116和外部端口124。设备100任选地包括一个或多个光学传感器164。设备100任选地包括用于检测设备100(例如,触敏表面,诸如设备
100的触敏显示器系统112)上的接触的强度的一个或多个强度传感器165。设备100任选地包括用于在设备100上生成触觉输出的一个或多个触觉输出发生器163(例如,在触敏表面诸如设备100的触敏显示器系统112或设备300的触摸板355上生成触觉输出)。这些部件任选地通过一个或多个通信总线或信号线103进行通信。
[0033] 如本说明书和权利要求书中所使用的,术语“触觉输出”是指将由用户利用用户的触感检测到的设备相对于设备的先前位置的物理位移、设备的部件(例如,触敏表面)相对于设备的另一个部件(例如,外壳)的物理位移、或部件相对于设备的质心的位移。例如,在设备或设备的部件与用户对触摸敏感的表面(例如,手指、手掌或用户手部的其他部分)接触的情况下,通过物理位移生成的触觉输出将由用户解释为触感,该触感对应于设备或设备的部件的物理特征的所感知的变化。例如,触敏表面(例如,触敏显示器或触控板)的移动任选地由用户解释为对物理致动按钮的“按下点击”或“松开点击”。在一些情况下,用户将感觉到触感,诸如“按下点击”或“松开点击”,即使在通过用户的移动而物理地被按压(例如,被移位)的与触敏表面相关联的物理致动按钮没有移动时。又如,即使在触敏表面的光滑度无变化时,触敏表面的移动也会任选地由用户解释或感测为触敏表面的“粗糙度”。虽然用户对触摸的此类解释将受到用户的个体化感官知觉的限制,但是对触摸的许多感官知觉是大多数用户共有的。因此,当触觉输出被描述为对应于用户的特定感官知觉(例如,“按下点击”、“松开点击”、“粗糙度”)时,除非另外陈述,否则所生成的触觉输出对应于设备或其部件的物理位移,该物理位移将会生成典型(或普通)用户的所述感官知觉。
[0034] 应当理解,设备100仅仅是便携式多功能设备的一个示例,并且设备100任选地具有比所示出的部件更多或更少的部件,任选地组合两个或更多个部件,或者任选地具有这些部件的不同配置或布置。图1A中所示的各种部件在硬件软件固件或它们的任何组合(包括一个或多个信号处理电路和/或专用集成电路)中实现。
[0035] 存储器102任选地包括高速随机存取存储器,并且还任选地包括非易失性存储器,诸如一个或多个磁盘存储设备、闪存存储器设备、或其他非易失性固态存储器设备。设备100的其他部件(诸如一个或多个CPU 120和外围设备接口118)对存储器102的访问任选地由存储器控制器122来控制。
[0036] 外围设备接口118可被用于将设备的输入外围设备和输出外围设备耦接到存储器102和一个或多个CPU 120。一个或多个处理器120运行或执行存储器102中所存储的各种软件程序和/或指令集以执行设备100的各种功能并处理数据。
[0037] 在一些实施方案中,外围设备接口118、一个或多个CPU 120、和存储器控制器122任选地在单个芯片诸如芯片104上实现。在一些其他实施方案中,它们任选地在独立的芯片上实现。
[0038] RF(射频)电路108接收和发送也被称作电磁信号的RF信号。RF电路108将电信号转换为电磁信号/将电磁信号转换为电信号,并且经由电磁信号与通信网络及其他通信设备进行通信。RF电路108任选地包括用于执行这些功能的熟知的电路,包括但不限于天线系统、RF收发器、一个或多个放大器、调谐器、一个或多个振荡器数字信号处理器、编解码芯片组、用户身份模(SIM)卡、存储器等等。RF电路108任选地与个人局域网(PAN)诸如BLUETOOTH网络、局域网(LAN)诸如802.11×Wi-Fi网络、和/或广域网(WAN)诸如4G蜂窝网络通信。
[0039] 音频电路110、扬声器111和麦克风113提供用户与设备100之间的音频接口。音频电路110从外围设备接口118接收音频数据,将音频数据转换为电信号,并将电信号传输到扬声器111。扬声器111将电信号转换为人类可听到的声波。音频电路110还接收由麦克风113从声波转换的电信号。音频电路110将电信号转换为音频数据,并且将音频数据传输到外围设备接口118以用于处理。音频数据任选地由外围设备接口118检索自和/或传输至存储器102和/或RF电路108。在一些实施方案中,音频电路110还包括麦插孔(例如,图2中的
212)。耳麦插孔提供音频电路110和可移除的音频输入/输出外围设备之间的接口,该可移除的音频输入/输出外围设备诸如仅输出的耳机或者具有输出(例如,单耳耳机或双耳耳机)和输入(例如,麦克风)两者的耳麦。
[0040] I/O子系统106将设备100上的输入/输出外围设备诸如触敏显示器系统112和其他输入或控制设备116与外围设备接口118耦接。I/O子系统106任选地包括显示控制器156、光学传感器控制器158、强度传感器控制器159、触觉反馈控制器161、和用于其他输入或控制设备的一个或多个输入控制器160。一个或多个输入控制器160从其他输入或控制设备116接收电信号或者将电信号发送到该其他输入或控制设备。其他输入或控制设备116任选地包括物理按钮(例如,下压按钮、摇臂按钮等)、拨号盘、滑动开关、操纵杆、点击轮等。在一些另选的实施方案中,一个或多个输入控制器160任选地耦接至以下各项中的任一者(或不耦接至以下各项中的任一者):键盘、红外线端口、USB端口、触笔、和/或指针设备诸如鼠标。一个或多个按钮(例如,图2中的208)任选地包括用于扬声器111和/或麦克风113的音量控制的向上/向下按钮。一个或多个按钮任选地包括下压按钮(例如,图2中的206)。
[0041] 触敏显示器系统112提供设备与用户之间的输入接口和输出接口。显示控制器156从触敏显示器系统112接收电信号和/或将电信号发送至触敏显示器系统112。触敏显示器系统112向用户显示视觉输出。视觉输出任选地包括图形、文本、图标、视频以及它们的任何组合(统称为“图形”)。在一些实施方案中,一些视觉输出或全部的视觉输出对应于用户界面对象。
[0042] 触敏显示器系统112具有基于触觉/触感接触来接受来自用户的输入的触敏表面、传感器或传感器组。触敏显示器系统112和显示控制器156(与存储器102中的任何相关联的模块和/或指令集一起)检测触敏显示器系统112上的接触(以及该接触的任何移动或中断),并且将检测到的接触转换为与被显示在触敏显示器系统112上的用户界面对象(例如,一个或多个软按键、图标、网页或图像)的交互。在一个示例性实施方案中,触敏显示器系统112和用户之间的接触点对应于用户的手指或触笔。
[0043] 触敏显示器系统112任选地使用LCD(液晶显示器)技术、LPD(发光聚合物显示器)技术、或LED(发光二极管)技术,但是在其他实施方案中使用其他显示技术。触敏显示器系统112和显示控制器156任选地使用现在已知的或以后将开发出的多种触摸感测技术中的任何技术以及其他接近传感器阵列或用于确定与触敏显示器系统112接触的一个或多个点的其他元件来检测接触及其任何移动或中断,该多种触摸感测技术包括但不限于电容性的、电阻性的、红外线的、和表面声波技术。在一个示例性实施方案中,使用投射式互电容感测技术,诸如从Apple Inc.(Cupertino,California)的 iPod 和中发现的技术。
[0044] 触敏显示器系统112任选地具有超过100dpi的视频分辨率。在一些实施方案中,触摸屏视频分辨率超过400dpi(例如,500dpi、800dpi或更大)。用户任选地使用任何合适的物体或附属物诸如触笔、手指等来与触敏显示器系统112接触。在一些实施方案中,将用户界面设计成与基于手指的接触和手势一起工作,由于手指在触摸屏上的接触区域较大,因此这可能不如基于触笔的输入精确。在一些实施方案中,设备将基于手指的粗略输入转化为精确的指针/光标位置或命令以用于执行用户所期望的动作。
[0045] 在一些实施方案中,除了触摸屏之外,设备100任选地包括用于激活或去激活特定功能的触控板。在一些实施方案中,触控板是设备的触敏区域,与触摸屏不同,该触敏区域不显示视觉输出。触摸板任选地是与触敏显示器系统112分开的触敏表面,或者是由触摸屏形成的触敏表面的延伸部分。
[0046] 设备100还包括用于为各种部件供电的电力系统162。电力系统162任选地包括电力管理系统、一个或多个电源(例如,电池、交流电(AC))、再充电系统、电力故障检测电路、功率转换器或逆变器、电源状态指示符(例如,发光二极管(LED))以及与便携式设备中的电力的生成、管理和分配相关联的任何其他部件。
[0047] 设备100任选地还包括一个或多个光学传感器164(在本文中有时也称为“图像传感器”或“相机组件”)。图1A示出了与I/O子系统106中的光学传感器控制器158耦接的光学传感器。一个或多个光学传感器164任选地包括电荷耦合器件(CCD)或互补金属化物半导体(CMOS)光电晶体管。一个或多个光学传感器164从环境接收通过一个或多个透镜而投射的光,并且将光转换为表示图像的数据。结合成像模块143(也被叫做相机模块),一个或多个光学传感器164任选地捕获静态图像和/或视频。在一些实施方案中,光学传感器位于设备100的与设备前部上的触敏显示器系统112相对的后部上,使得触摸屏能够用作用于静态图像和/或视频图像采集取景器。在一些实施方案中,另一光学传感器位于设备的前部上,从而获取该用户的图像(例如,用于自拍、用于当用户在触摸屏上观看其他视频会议参与者时进行视频会议等等)。
[0048] 设备100任选地还包括一个或多个接触强度传感器165。图1A示出了与I/O子系统106中的强度传感器控制器159耦接的接触强度传感器。一个或多个接触强度传感器165任选地包括一个或多个压阻应变仪、电容式力传感器、电气式力传感器、压电力传感器、光学力传感器、电容式触敏表面、或其他强度传感器(例如,用于测量触敏表面上的接触的力(或压力)的传感器)。一个或多个接触强度传感器165从环境接收接触强度信息(例如,压力信息或压力信息的代用物)。在一些实施方案中,至少一个接触强度传感器与触敏表面(例如,触敏显示器系统112)并置排列或邻近。在一些实施方案中,至少一个接触强度传感器位于设备100的与位于设备100的前部上的触敏显示器系统112相对的后部上。
[0049] 设备100任选地还包括一个或多个接近传感器166。图1A示出了与外围设备接口118耦接的接近传感器166。另选地,接近传感器166与I/O子系统106中的输入控制器160耦接。在一些实施方案中,当多功能设备被置于用户耳朵附近时(例如,用户正在打电话时),接近传感器关闭并禁用触敏显示器系统112。
[0050] 设备100任选地还包括一个或多个触觉输出发生器163。图1A示出了与I/O子系统106中的触觉反馈控制器161耦接的触觉输出发生器。一个或多个触觉输出发生器163任选地包括一个或多个电声设备,诸如扬声器或其他音频部件,和/或将能量转换成线性运动的机电设备,诸如达、螺线管、电活性聚合器、压电致动器、静电致动器或其他触觉输出生成部件(例如,将电信号转换成设备上的触觉输出的部件)。一个或多个触觉输出发生器163从触觉反馈模块133接收触觉反馈生成指令,并且在设备100上生成能够由设备100的用户感觉到的触觉输出。在一些实施方案中,至少一个触觉输出发生器与触敏表面(例如,触敏显示器系统112)并置排列或邻近,并且任选地通过竖直地(例如,向设备100的表面内/外)或侧向地(例如,在与设备100的表面相同的平面中来回)移动触敏表面来生成触觉输出。在一些实施方案中,至少一个触觉输出发生器传感器位于设备100的与位于设备100的前部上的触敏显示器系统112相对的后部上。
[0051] 设备100任选地还包括用于获得关于设备的位置(例如,姿态)的信息的一个或多个加速度计167、陀螺仪168和/或磁力仪169(例如,作为惯性测量单元(IMU)的一部分)。图1A示出了与外围设备接口118耦接的传感器167、168和169。另选地,传感器167、168和169任选地与I/O子系统106中的输入控制器160耦接。在一些实施方案中,基于对从该一个或多个加速度计所接收的数据的分析来在触摸屏显示器上以纵向视图或横向视图来显示信息。设备100任选地包括用于获得关于设备100的位置的信息的GPS(或GLONASS或其他全球导航系统)接收器(未示出)。
[0052] 在一些实施方案中,存储于存储器102中的软件部件包括操作系统126、通信模块(或指令集)128、接触/运动模块(或指令集)130、图形模块(或指令集)132、触觉反馈模块(或指令集)133、文本输入模块(或指令集)134、全球定位系统(GPS)模块(或指令集)135、以及应用程序(或指令集)136。此外,在一些实施方案中,存储器102存储设备/全局内部状态157,如图1A和图3中所示。设备/全局内部状态157包括以下各项中的一者或多者:活动应用程序状态,其指示哪些应用程序(如果有的话)当前是活动的;显示状态,其指示什么应用程序、视图或其他信息占据触敏显示器系统112的各个区域;传感器状态,包括从设备的各个传感器和其他输入或控制设备116获得的信息;以及关于设备的位置和/或姿态的位置和/或方位信息。
[0053] 操作系统126(例如,iOS、MacOS、Darwin、LINUX、UNIX、WINDOWS、或嵌入式操作系统诸如VxWorks)包括用于控制和管理一般系统任务(例如,存储器管理、存储设备控制、电源管理等)的各种软件部件和/或驱动器,并且有利于各种硬件部件和软件部件之间的通信。
[0054] 通信模块128便于通过一个或多个外部端口124来与其他设备进行通信,并且还包括用于处理由RF电路108和/或外部端口124所接收的数据的各种软件部件。外部端口124(例如,通用串行总线(USB)、FIREWIRE等)适于直接耦接到其他设备,或间接地通过网络(例如,互联网、无线LAN等)进行耦接。在一些实施方案中,外部端口是与Apple  Inc.(Cupertino,California)的一些 iPod 和iPod设备中所使用的30针连接器相同或类似和/或兼容的多针(例如,30针)连接器。在一些实施方案中,外部端口是与Apple Inc.(Cupertino,California)的一些 iPod 和iPod设备中所使
用的Lightning连接器相同或类似和/或兼容的Lightning连接器。
[0055] 接触/运动模块130任选地检测与触敏显示器系统112(结合显示控制器156)和其他触敏设备(例如,触摸板或物理点击轮)的接触。接触/运动模块130包括用于执行与(例如手指或触笔)接触检测相关的各种操作的软件部件,诸如确定是否已发生接触(例如,检测手指按下事件)、确定接触的强度(例如,接触的力或压力,或者接触的力或压力的替代物)、确定是否存在接触的移动并跟踪在触敏表面上的移动(例如,检测一个或多个手指拖动事件)、以及确定接触是否已停止(例如,检测手指抬起事件或者接触断开)。接触/运动模块130从触敏表面接收接触数据。确定由一系列接触数据表示的接触点的移动任选地包括确定接触点的速率(量值)、速度(量值和方向)和/或加速度(量值和/或方向的改变)。这些操作任选地被应用于单点接触(例如,单指接触或触笔接触)或者多点同时接触(例如,“多点触摸”/多指接触和/或触笔接触)。在一些实施方案中,接触/运动模块130和显示控制器156检测触控板上的接触。
[0056] 接触/运动模块130任选地检测用户的手势输入。触敏表面上的不同手势具有不同的接触模式(例如,所检测到的接触的不同运动、计时和/或强度)。因此,任选地通过检测特定接触模式来检测手势。例如,检测手指轻击手势包括检测手指按下事件,然后在与手指按下事件相同的位置(或基本上相同的位置)处(例如,在图标位置处)检测手指抬起(抬离)事件。又如,检测触敏表面上的手指轻扫手势包括检测手指按下事件,然后检测一个或多个手指拖动事件,并且随后检测手指抬起(抬离)事件。类似地,通过检测触笔的特定接触图案来任选地检测触笔的轻击、轻扫、拖动和其他手势。
[0057] 图形模块132包括用于在触敏显示器系统112或其他显示器上渲染和显示图形的各种已知软件部件,包括用于改变所显示的图形的视觉冲击(例如,亮度、透明度、饱和度对比度或其他视觉属性)的部件。如本文所用,术语“图形”包括可被显示给用户的任何对象,包括但不限于文本、网页、图标(诸如包括软键的用户界面对象)、数字图像、视频、动画等。
[0058] 在一些实施方案中,图形模块132存储表示待使用的图形的数据。每个图形任选地被分配有对应的代码。图形模块132从应用程序等接收用于指定待显示的图形的一个或多个代码,在必要的情况下还一起接收坐标数据和其他图形属性数据,并且然后生成屏幕图像数据,以输出至显示控制器156。
[0059] 触觉反馈模块133包括用于生成由一个或多个触觉输出发生器163使用的指令的各种软件部件,以便响应于用户与设备100的交互而在设备100上的一个或多个位置处产生触觉输出。
[0060] 文本输入模块134(可选地为图形模块132的部件)提供软键盘以用于在各种应用程序中输入文本(例如,联系人模块137、电子邮件模块140、IM模块141、Web浏览器模块147和/或接受文本输入的任何其他应用程序)。
[0061] GPS模块135确定设备的位置并提供了在各种应用程序中使用的这种信息(例如,提供至用于基于位置的拨号的电话138;提供至相机143作为图片/视频元数据;以及提供至提供基于位置的服务诸如天气桌面小程序、当地黄页桌面小程序和地图/导航桌面小程序的应用程序)。
[0062] 应用程序136任选地包括以下模块(或指令集),或其子集或超集:联系人模块137(有时称为地址簿或联系人列表);电话模块138;视频会议模块139;电子邮件客户端模块140;即时消息(IM)模块141;健康/健身模块142;用于静态图像和/或视频图像的相机模块
143;图像管理模块144;web浏览器模块147;日历模块148;桌面小程序模块149,其任选地包括以下各项中的一者或多者:天气桌面小程序、股市桌面小程序、计算器桌面小程序、闹钟桌面小程序、词典桌面小程序和由用户获得的其他桌面小程序,以及用户创建的桌面小程序;用于形成用户创建的桌面小程序的桌面小程序创建器模块150;搜索模块151;视频和音乐播放器模块152,其任选地由视频播放器模块和音乐播放器模块构成;记事本模块153;地图模块154;和/或在线视频模块155。
[0063] 任选地存储在存储器102中的其他应用程序136的示例包括其他文字处理应用程序、其他图像编辑应用程序、绘图应用程序、呈现应用程序、支持JAVA的应用程序、加密、数字版权管理、语音识别和语音复制。
[0064] 上述所识别的每个模块和应用对应于用于执行上述一种或多种功能以及在本申请中所描述的方法(例如,本文中所描述的计算机实现的方法和其他信息处理方法)的一组可执行指令。这些模块(即,指令集)不必以独立的软件程序、过程或模块实现,因此这些模块的各种子集任选地在各种实施方案中组合或以其他方式重新布置。在一些实施方案中,存储器102任选地存储上述模块和数据结构的子集。此外,存储器102任选地存储上文未描述的附加模块和数据结构。
[0065] 在一些实施方案中,设备100是该设备上的预定义的一组功能的操作唯一地通过触摸屏和/或触控板来执行的设备。通过使用触摸屏和/或触控板作为用于操作设备100的主要输入控制设备,任选地减少设备100上的物理输入控制设备(例如,下压按钮、拨号盘等等)的数量。
[0066] 唯一地通过触摸屏和/或触控板来执行的预定义的一组功能任选地包括在用户界面之间的导航。在一些实施方案中,触控板在被用户触摸时将设备100从设备100上显示的任何用户界面导航到主菜单、home菜单或根菜单。在此类实施方案中,使用触摸板来实现“菜单按钮”。在一些其他实施方案中,菜单按钮是物理下压按钮或者其他物理输入控制设备,而不是触摸板。
[0067] 图1B是示出根据一些实施方案的用于事件处理的示例性部件的框图。在一些实施方案中,存储器102(图1A中)或存储器370(图3)包括事件分类器170(例如,在操作系统126中)和相应的应用程序136-1(例如,前述应用程序136、137-155、380-390中的任一个应用程序)。
[0068] 事件分类器170接收事件信息并确定要将事件信息递送到的应用程序136-1和应用程序136-1的应用程序视图191。事件分类器170包括事件监视器171和事件分配器模块174。在一些实施方案中,应用程序136-1包括应用程序内部状态192,该应用程序内部状态指示当应用程序是活动的或正在执行时在触敏显示器系统112上显示的一个或多个当前应用程序视图。在一些实施方案中,设备/全局内部状态157被事件分类器170用于确定哪个(哪些)应用程序当前是活动的,并且应用程序内部状态192被事件分类器170用于确定要将事件信息递送到的应用程序视图191。
[0069] 在一些实施方案中,应用程序内部状态192包括附加信息,诸如以下各项中的一者或多者:当应用程序136-1恢复执行时要被使用的恢复信息、指示信息正被显示或准备好用于被应用程序136-1显示的用户界面状态信息、用于使得用户能够返回到应用程序136-1的前一状态或视图的状态队列,以及用户采取的先前动作的重复/撤销队列。
[0070] 事件监视器171从外围设备接口118接收事件信息。事件信息包括关于子事件(例如,作为多点触摸手势的一部分的触敏显示器系统112上的用户触摸)的信息。外围设备接口118传输其从I/O子系统106或传感器诸如接近传感器166、一个或多个加速度计167、一个或多个陀螺仪168、一个或多个磁力仪169和/或麦克风113(通过音频电路110)接收的信息。外围设备接口118从I/O子系统106所接收的信息包括来自触敏显示器系统112或触敏表面的信息。
[0071] 在一些实施方案中,事件监视器171以预先确定的间隔将请求发送至外围设备接口118。作为响应,外围设备接口118传输事件信息。在其他实施方案中,外围设备接口118仅当存在显著事件(例如,接收到高于预先确定的噪声阈值和/或接收到超过预先确定的持续时间的输入)时才传输事件信息。
[0072] 在一些实施方案中,事件分类器170还包括命中视图确定模块172和/或活动事件识别器确定模块173。
[0073] 当触敏显示器系统112显示多于一个视图时,命中视图确定模块172提供用于确定子事件已在一个或多个视图内的什么地方发生的软件过程。视图由用户能够在显示器上看到的控件和其他元素构成。
[0074] 与应用程序相关联的用户界面的另一方面是一组视图,本文中有时也称为应用程序视图或用户界面窗口,在其中显示信息并且发生基于触摸的手势。在其中检测到触摸的(相应应用程序的)应用程序视图任选地对应于在应用程序的程序化或视图分级结构内的程序化平。例如,在其中检测到触摸的最低水平视图任选地被称为命中视图,并且被识别为正确输入的事件集任选地至少部分地基于初始触摸的命中视图来确定,所述初始触摸开始基于触摸的手势。
[0075] 命中视图确定模块172接收与基于触摸的手势的子事件相关的信息。当应用程序具有以分级结构组织的多个视图时,命中视图确定模块172将命中视图识别为应当对子事件进行处理的分级结构中的最低视图。在大多数情况下,命中视图是发起子事件(即形成事件或潜在事件的子事件序列中的第一子事件)在其中发生的最低水平视图。一旦命中视图被命中视图确定模块所识别,命中视图便通常接收与其被识别为命中视图所针对的同一触摸或输入源相关的所有子事件。
[0076] 活动事件识别器确定模块173确定视图分级结构内的哪个或哪些视图应接收特定子事件序列。在一些实施方案中,活动事件识别器确定模块173确定仅命中视图应接收特定子事件序列。在其他实施方案中,活动事件识别器确定模块173确定包括子事件的物理位置的所有视图是活跃参与的视图,并因此确定所有活跃参与的视图都应接收特定子事件序列。在其他实施方案中,即使触摸子事件完全被局限到与一个特定视图相关联的区域,分级结构中的较高视图将仍然保持为活跃参与的视图。
[0077] 事件分配器模块174将事件信息分配到事件识别器(例如,事件识别器180)。在包括活动事件识别器确定模块173的一些实施方案中,事件分配器模块174将事件信息递送到由活动事件识别器确定模块173确定的事件识别器。在一些实施方案中,事件分配器模块174在事件队列中存储事件信息,该事件信息由相应事件接收器模块182进行检索。
[0078] 在一些实施方案中,操作系统126包括事件分类器170。另选地,应用程序136-1包括事件分类器170。在又一个实施方案中,事件分类器170是独立模块,或者是存储在存储器102中的另一个模块(诸如,接触/运动模块130)的一部分。
[0079] 在一些实施方案中,应用程序136-1包括多个事件处理程序190和一个或多个应用程序视图191,其中的每一个都包括用于处理发生在应用程序的用户界面的相应视图内的触摸事件的指令。应用程序136-1的每个应用程序视图191包括一个或多个事件识别器180。通常,相应应用程序视图191包括多个事件识别器180。在其他实施方案中,事件识别器180中的一个或多个事件识别器是独立模块的一部分,该独立模块为诸如用户界面工具包或应用程序136-1从中继承方法和其他属性的更高级别的对象。在一些实施方案中,相应事件处理程序190包括以下各项中的一者或多者:数据更新器176、对象更新器177、GUI更新器178、和/或从事件分类器170接收的事件数据179。事件处理程序190任选地利用或调用数据更新器176、对象更新器177或GUI更新器178来更新应用程序内部状态192。另选地,应用程序视图191中的一个或多个应用程序视图包括一个或多个相应事件处理程序190。另外,在一些实施方案中,数据更新器176、对象更新器177和GUI更新器178中的一者或多者包括在相应应用程序视图191中。
[0080] 相应的事件识别器180从事件分类器170接收事件信息(例如,事件数据179),并且从事件信息识别事件。事件识别器180包括事件接收器182和事件比较器184。在一些实施方案中,事件识别器180还包括元数据183和事件递送指令188(其任选地包括子事件递送指令)的至少一个子集。
[0081] 事件接收器182接收来自事件分类器170的事件信息。事件信息包括关于子事件例如触摸或触摸移动的信息。根据子事件,事件信息还包括附加信息,诸如子事件的位置。当子事件涉及触摸的运动时,事件信息任选地还包括子事件的速率和方向。在一些实施方案中,事件包括设备从一个取向旋转到另一取向(例如,从纵向取向旋转到横向取向,或反之亦然),并且事件信息包括关于设备的当前取向(也被称为设备姿态)的对应信息。
[0082] 事件比较器184将事件信息与预定义的事件或子事件定义进行比较,并且基于该比较来确定事件或子事件,或者确定或更新事件或子事件的状态。在一些实施方案中,事件比较器184包括事件定义186。事件定义186包含事件的定义(例如,预定义的子事件序列),例如事件1(187-1)、事件2(187-2)以及其他。在一些实施方案中,事件187中的子事件例如包括触摸开始、触摸结束、触摸移动、触摸取消和多点触摸。在一个示例中,事件1(187-1)的定义是被显示对象上的双击。例如,双击包括被显示对象上的预先确定时长的第一次触摸(触摸开始)、预先确定时长的第一次抬起(触摸结束)、被显示对象上的预先确定时长的第二次触摸(触摸开始)以及预先确定时长的第二次抬起(触摸结束)。在另一个示例中,事件2(187-2)的定义是被显示对象上的拖动。例如,拖动包括被显示对象上的预先确定时长的触摸(或接触)、触摸在触敏显示器系统112上的移动、以及触摸的抬离(触摸结束)。在一些实施方案中,事件还包括用于一个或多个相关联的事件处理程序190的信息。
[0083] 在一些实施方案中,事件定义187包括对用于相应用户界面对象的事件的定义。在一些实施方案中,事件比较器184执行命中测试以确定哪个用户界面对象与子事件相关联。例如,在触敏显示器系统112上显示三个用户界面对象的应用程序视图中,当在触敏显示器系统112上检测到触摸时,事件比较器184执行命中测试以确定这三个用户界面对象中的哪一个用户界面对象与该触摸(子事件)相关联。如果每个所显示对象与相应事件处理程序
190相关联,则事件比较器使用该命中测试的结果来确定哪个事件处理程序190应当被激活。例如,事件比较器184选择与子事件和触发该命中测试的对象相关联的事件处理程序。
[0084] 在一些实施方案中,对相应事件187的定义还包括延迟动作,该延迟动作延迟事件信息的递送,直到已确定子事件序列是否确实对应于或不对应于事件识别器的事件类型。
[0085] 当相应事件识别器180确定子事件序列不与事件定义186中的任何事件匹配时,该相应事件识别器180进入事件不可能、事件失败或事件结束状态,在此之后忽略基于触摸的手势的后续子事件。在这种情况下,对于命中视图保持活动的其他事件识别器(如果有的话)继续跟踪并处理持续进行的基于触摸的手势的子事件。
[0086] 在一些实施方案中,相应事件识别器180包括具有指示事件递送系统应当如何执行子事件递送到活跃参与的事件识别器的可配置属性、标记和/或列表的元数据183。在一些实施方案中,元数据183包括指示事件识别器彼此如何交互或如何能够交互的可配置属性、标志和/或列表。在一些实施方案中,元数据183包括指示子事件是否递送到视图或程序化分级结构中的不同层级的可配置属性、标志和/或列表。
[0087] 在一些实施方案中,当事件的一个或多个特定子事件被识别时,相应事件识别器180激活与事件相关联的事件处理程序190。在一些实施方案中,相应事件识别器180将与事件相关联的事件信息递送到事件处理程序190。激活事件处理程序190不同于将子事件发送(和延期发送)到相应命中视图。在一些实施方案中,事件识别器180抛出与所识别的事件相关联的标记,并且与该标记相关联的事件处理程序190获得该标记并执行预定义过程。
[0088] 在一些实施方案中,事件递送指令188包括递送关于子事件的事件信息而不激活事件处理程序的子事件递送指令。相反,子事件递送指令将事件信息递送到与子事件序列相关联的事件处理程序或者递送到活跃参与的视图。与子事件序列或与活跃参与的视图相关联的事件处理程序接收事件信息并执行预先确定的过程。
[0089] 在一些实施方案中,数据更新器176创建并更新在应用程序136-1中使用的数据。例如,数据更新器176对联系人模块137中所使用的电话号码进行更新,或者对视频播放器模块145中所使用的视频文件进行存储。在一些实施方案中,对象更新器177创建和更新在应用程序136-1中使用的对象。例如,对象更新器176创建新的用户界面对象或更新用户界面对象的位置。GUI更新器178更新GUI。例如,GUI更新器178准备显示信息,并且将显示信息发送到图形模块132用以显示在触敏显示器上。
[0090] 在一些实施方案中,一个或多个事件处理程序190包括数据更新器176、对象更新器177和GUI更新器178或者具有对它们的访问权限。在一些实施方案中,数据更新器176、对象更新器177和GUI更新器178被包括在相应应用程序136-1或应用程序视图191的单个模块中。在其他实施方案中,它们被包括在两个或更多个软件模块中。
[0091] 应当理解,关于触敏显示器上的用户触摸的事件处理的上述论述还适用于利用输入设备来操作多功能设备100的其他形式的用户输入,并不是所有用户输入都是在触摸屏上发起的。例如,任选地与单次或多次键盘按下或按住协作的鼠标移动和鼠标按钮按下;触摸板上的接触移动,诸如轻击、拖动、滚动等;触笔输入;设备的移动;口头指令;检测到的眼睛移动;生物特征输入;和/或它们的任何组合任选地被用作对应于限定要识别的事件的子事件的输入。
[0092] 图2示出了根据一些实施方案的具有触摸屏(例如,图1A的触敏显示器系统112)的便携式多功能设备100。触摸屏任选地在用户界面(UI)200内显示一个或多个图形。在本实施方案以及下文所述的其他实施方案中,用户能够通过例如利用一个或多个手指202(在图中未按比例绘制)或一支或多支触笔203(在图中未按比例绘制)在图形上作出手势来选择这些图形中的一个或多个图形。在一些实施方案中,当用户中断与一个或多个图形的接触时,将发生对一个或多个图形的选择。在一些实施方案中,手势任选地包括一次或多次轻击、一次或多次轻扫(从左向右、从右向左、向上和/或向下)和/或已与设备100进行接触的手指的滚动(从右向左、从左向右、向上和/或向下)。在一些实施方案中或在一些情况下,不经意地与图形接触不会选择图形。例如,当与选择对应的手势是轻击时,在应用程序图标上方扫动的轻扫手势任选地不会选择对应的应用程序。
[0093] 设备100任选地还包括一个或多个物理按钮,诸如“home”按钮、或菜单按钮204。如前所述,菜单按钮204任选地用于导航到任选地在设备100上执行的一组应用程序中的任何应用程序136。作为另外一种选择,在一些实施方案中,菜单按钮被实现为被显示在触摸屏显示器上的GUI中的软键。
[0094] 在一些实施方案中,设备100包括触摸屏显示器、菜单按钮204、用于使设备通电/断电和用于定设备的下压按钮206、一个或多个音量调节按钮208、用户身份模块(SIM)卡槽210、耳麦插孔212、和对接/充电外部端口124。下压按钮206任选地用于通过压下该按钮并且将该按钮保持在压下状态持续预定义的时间间隔来对设备进行开/关机;通过压下该按钮并在该预定义的时间间隔过去之前释放该按钮来锁定设备;和/或对设备进行解锁或发起解锁过程。在一些实施方案中,设备100还通过麦克风113来接受用于激活或停用某些功能的语音输入。设备100还任选地包括用于检测触敏显示器系统112上的接触的强度的一个或多个接触强度传感器165、和/或用于为设备100的用户生成触觉输出的一个或多个触觉输出发生器163。
[0095] 图3是根据一些实施方案的具有显示器和触敏表面的示例性多功能设备的框图。设备300不必是便携式的。在一些实施方案中,设备300是膝上型计算机、台式计算机、平板电脑、多媒体播放器设备、导航设备、教育设备(诸如儿童学习玩具)、游戏系统或控制设备(例如,家用控制器或工业用控制器)。设备300通常包括一个或多个处理单元(CPU)310、一个或多个网络或其他通信接口360、存储器370和用于使这些部件互连的一个或多个通信总线320。通信总线320任选地包括使系统部件互连并且控制系统部件之间的通信的电路(有时称作芯片组)。设备300包括具有显示器340的输入/输出(I/O)接口330,该显示器通常是触摸屏显示器。I/O接口330还任选地包括键盘和/或鼠标(或其他指向设备)350和触控板
355、用于在设备300上生成触觉输出的触觉输出发生器357(例如,类似于以上参考图1A所述的一个或多个触觉输出发生器163)、传感器359(例如,类似于以上参考图1A所述的传感器112、164、165、166、167、168和169的触敏传感器、光学传感器、接触强度传感器、接近传感器、加速度传感器、姿态传感器和/或磁传感器)。存储器370包括高速随机存取存储器,诸如DRAM、SRAM、DDR RAM或其他随机存取固态存储器设备;并且任选地包括非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存存储器设备或其他非易失性固态存储设备。存储器370任选地包括远离一个或多个CPU 310定位的一个或多个存储设备。在一些实施方案中,存储器370存储与便携式多功能设备100(图1A)的存储器102中所存储的程序、模块和数据结构类似的程序、模块、和数据结构,或它们的子集。此外,存储器370任选地存储在便携式多功能设备100的存储器102中不存在的附加程序、模块和数据结构。例如,设备
300的存储器370任选地存储绘图模块380、呈现模块382、文字处理模块384、网站创建模块
386、盘编辑模块388、和/或电子表格模块390,而便携式多功能设备100(图1A)的存储器102任选地不存储这些模块。
[0096] 图3中上述所识别的元件中的每个元件任选地存储在先前提到的存储器设备中的一个或多个存储器设备中。上述所识别的模块中的每个模块对应于用于执行上述功能的指令集。上述所识别的模块或程序(即,指令集)不必被实现为单独的软件程序、过程或模块,因此这些模块的各种子集任选地在各种实施方案中组合或以其他方式重新布置。在一些实施方案中,存储器370任选地存储上述模块和数据结构的子组。此外,存储器370任选地存储上文未描述的附加模块和数据结构。
[0097] 用户界面和相关联的过程
[0098] 现在将注意力转到用户界面(“UI”)和可在电子设备上实现的相关过程的实施方案,所述电子设备为诸如具有显示器、触敏表面和用于检测与触敏表面的接触强度的任选地一个或多个传感器的便携式多功能设备(PMD)100,或者是具有一个或多个处理器、非暂态存储器、显示器和输入设备的设备300。
[0099] 虽然主要是参考手指输入(例如,手指接触、单指轻击手势、手指轻扫手势等)来给出下面的示例,但是应当理解的是,在一些实施方案中,这些手指输入中的一个或多个手指输入由来自另一输入设备的输入(例如,基于鼠标的输入或触笔输入)替换。例如,轻扫手势任选地由鼠标点击(例如,而不是接触),之后是光标沿着轻扫的路径的移动(例如,而不是接触的移动)替代。又如,轻击手势任选地由在光标位于轻击手势的位置上方时的鼠标点击(例如,代替对接触的检测,之后是停止检测接触)替代。类似地,当同时检测到多个用户输入时,应当理解的是,多个计算机鼠标任选地被同时使用,或鼠标和手指接触任选地被同时使用。
[0100] 图4A-4M示出了根据一些实施方案的用于检测虚拟衬底并将对象放置在其上的示例性用户界面。这些附图中的用户界面被用于示出包括图7中的过程的下文描述的过程。尽管下面的一些示例将参考触摸屏显示器(其中组合了触敏表面和显示器)上的输入给出,但在某些实施方案中,设备通过与显示器分离的输入设备检测输入(例如,具有独立触控板和显示器的笔记本电脑,或具有独立鼠标和显示器的台式机)。
[0101] 如图4A所示,设备100显示被提供来检测平面并将增强现实和/或虚拟现实(AR/VR)对象放置在其上的媒体捕获/交互界面402。根据一些实施方案,媒体捕获/交互界面402对应于场景的媒体捕获预览,其中该设备的图像传感器的视场中的对象随着图像传感器的视场改变而改变。例如,在图4A中,媒体捕获预览包括通往房间的打开的,房间中设有桌子415。
[0102] 在图4A中,媒体捕获/交互界面402包括:提供用于响应于其选择(例如,用接触或选择手势)来捕获图像的快照示能表示404a;提供AR/VR对象菜单示能表示404b以响应于其选择(例如,用接触或选择手势)来显示对象选择界面(例如,如图4E-4F所示);以及提供选项示能表示404c以响应于其选择(例如,用接触或选择手势)来显示选项和/或设置菜单。在图4A中,媒体捕获/交互界面402还包括以第一外观状态410显示的标线片元件。如图4A所示,在第一外观状态410中,标线片元件对应于具有不透明拐角但无边缘的透明矩形。在一些实施方案中,标线片元件对应于矩形、椭圆形、多边形、放大镜、十字线等。
[0103] 图4A-4B示出了其中基于设备100的图像传感器的视场的改变来更新媒体捕获/交互界面402的序列。例如,在图4B中,媒体捕获预览包括其中有桌子415的房间的两堵墙。因此,在图4A-4B之间,设备100的视角或有利点改变。
[0104] 图4B-4C示出了其中标线片元件的外观状态响应于检测到与其邻近的平面而从第一外观状态改变为第二外观状态的序列。例如,设备100检测与桌子415相关联的平面。继续该示例,响应于检测到平面,设备100将标线片元件从第一外观状态410改变为第二外观状态410'。如图4C所示,在第二外观状态410'中,标线片元件对应于具有虚线边缘的阴影矩形。在一些实施方案中,在第二外观状态410'中,标线片元件的边缘闪烁或闪光。在一些实施方案中,在第二外观状态410'中,标线片元件的边缘以顺时针或逆时针方式闪烁或闪光。根据一些实施方案,当以第二外观状态410'显示时,标线片元件提供视觉提示,即设备100已经检测到场景内的平面。根据一些实施方案,当以第二外观状态410'显示时,标线片元件提供了与桌子415相关联的所检测平面的范围的一部分的视觉指示。
[0105] 图4C-4D示出了其中标线片元件的外观状态响应于检测到平面的取向而从第二外观状态改变为第三外观状态的序列。例如,在图4D中,设备100通过旋转标线片元件和/或将标线片元件对准与桌子415相关联的所检测平面的取向来在第三外观状态410”中显示标线片元件。
[0106] 图4D至图4E示出了其中标线片元件的外观状态响应于检测到较大的平面范围而从第三外观状态改变为第四外观状态的序列。例如,在图4E中,设备100响应于检测到与平面相关联的附加点指示其范围大于先前检测到的范围而通过扩大标线片元件的面积来以第四外观状态410”'显示标线片元件。
[0107] 图4E-4G示出了其中AR/VR对象相对于检测到的平面放置在场景内的序列。如图4E中所示,设备100检测到对应于AR/VR对象菜单示能表示404b的位置处的接触412(例如,轻击或选择手势)。如图4F中所示,设备100响应于在图4E中检测到对AR/VR对象菜单示能表示404b的选择而显示覆盖在媒体捕获/交互界面402上的对象选择界面472。
[0108] 在图4F中,对象选择界面472包括分别与形状、动物和交通工具相关联的多个AR/VR对象类别标签474a、474b和474c。在图4F中,当前选择与形状相关联的AR/VR对象类别标签474a。因此,对象选择界面472包括与形状类别相关联的多个用户可选择的AR/VR对象476a、476b、476c、476d、476e和476f(有时在本文中统称为“用户可选择的AR/VR对象476”)。
在一些实施方案中,用户可选择的AR/VR对象476中的每一个与名称、预览图像、相关联的元数据等相关联。在图4F中,对象选择界面472还包括被提供以响应于其选择(例如,用接触或选择手势)而显示AR/VR对象的附加类别的附加类别示能表示478。
[0109] 如图4F中所示,设备100在与用户可选择的AR/VR对象476f(例如,长方体对象)对应的位置处检测到接触414(例如,轻击或选择手势)。如图4G中所示,设备100响应于在图4F中检测到对用户可选择的AR/VR对象476f的选择而在场景内相对于检测到的平面显示立方体AR/VR对象420。在一些实施方案中,设备在检测到的平面的几何中心(例如,质心)上显示长方体AR/VR对象420。
[0110] 图4G-4H示出了长方体AR/VR对象420的尺寸增加的序列。如图4G中所示,设备100检测到具有长方体AR/VR对象420上的接触416a和416b的反向捏合手势。如图4H中所示,设备100响应于检测到图4G中的反向捏合手势而相对于检测到的平面增加场景内的长方体AR/VR对象420的尺寸。
[0111] 图4H-4I示出了其中长方体AR/VR对象420相对于检测到的平面移动的序列。如图4H中所示,设备100检测到具有长方体AR/VR对象420上的接触418的轻击并拖曳手势。如图
4I所示,设备100响应于检测到图4H中的轻击并拖曳手势而相对于检测到的平面更靠近桌子415的前边缘423来显示长方体AR/VR对象420。
[0112] 图4I-4J示出了改变长方体AR/VR对象420的取向的序列。如图4I所示,设备100检测到具有长方体AR/VR对象420上的接触422a和422b的逆时针旋转手势。如图4J所示,设备100响应于检测到图4I中的逆时针旋转手势而相对于检测到的平面在场景内逆时针旋转长方体AR/VR对象420。
[0113] 图4J-4K示出了将长方体AR/VR对象420分为长方体AR/VR对象430a和430b的序列。如图4J所示,设备100检测到具有对应于长方体AR/VR对象420的中间前顶边缘427的位置处的接触424的预定义的交互手势(例如,单击或双击手势)。如图4K所示,设备100基于图4H中的交互手势的位置将长方体AR/VR对象420分为长方体AR/VR对象430a和430b,并相对于检测到的平面显示长方体AR/VR对象430a和430b。
[0114] 图4K-4L示出了其中基于设备100的图像传感器的视场的改变来更新媒体捕获/交互界面402的序列。例如,在图4L中,媒体捕获预览包括其中具有桌子415的房间的单个墙壁。因此,设备100的视角或有利点改变,并且长方体AR/VR对象430a和430b的视角相应地改变。
[0115] 图4L-4M示出了其中标线片元件的外观状态响应于检测到与标线片元件的边缘交互的用户输入而从第四外观状态改变到第五外观状态的序列。如图4L所示,设备100检测到具有接触426的轻击并拖曳手势,由此将标线片元件的边缘442拖向桌子415的边缘444。例如,在图4M中,设备100响应于检测到图4L中的轻击并拖拽手势而通过增加标线片元件的尺寸以第五外观状态410””显示标线片元件。
[0116] 图5A示出了根据一些实施方案的与用于生成一组四叉树的过程500相关联的抽象框图。尽管示出了相关特征,但本领域的普通技术人员将从本公开中认识到,为简洁起见并且为了不模糊本文所公开的示例性实施方案的更多相关方面,未示出各种其他特征。例如,在一些实施方案中,在过程500中,通过合并多组平面520a,520b,…,520n来生成一组四叉树525,所述多组平面520a,520b,…,520n由在不同时间(例如相机位置或视场)针对不同参考/有利点捕获的多组图像构建。
[0117] 如图5A所示,设备100或其部件(例如,图11中的图像捕获控制模块1150)获得相对于第一参考/有利点502a的第一组图像504a(例如,图像数据)。在一些实施方案中,设备100或其部件(例如,图11中的点云合成模块1156)基于第一组图像504a来合成第一三维(3d)点云506a。在一些实施方案中,设备100或其部件(例如,图11中的平面拟合模块1158)基于第一3d点云506a构建第一组平面520a。例如,设备100根据本领域中已知的算法或技术(例如,最小拟合二乘法、主成分分析、同时定位和映射(SLAM)等),通过将平面拟合到第一3d点云506a来构建第一组平面520a。
[0118] 类似地,如图5A所示,设备100或其部件(例如,图11中的图像捕获控制模块1150)获得相对于第二参考/有利点502b的第二组图像504b。在一些实施方案中,设备100或其部件(例如,图11中的点云合成模块1156)基于第二组图像504b来合成第二3d点云506b。在一些实施方案中,设备100或其部件(例如,图11中的平面拟合模块1158)基于第二3d点云506b构建第二组平面520b。
[0119] 类似地,如图5A所示,设备100或其部件(例如,图11中的图像捕获控制模块1150)获得相对于第n个参考/有利点502n的第n组图像504n。在一些实施方案中,设备100或其部件(例如,图11中的点云合成模块1156)基于第n组图像504n来合成第n个3d点云506n。在一些实施方案中,设备100或其部件(例如,图11中的平面拟合模块1158)基于第n个3d点云506n构建第n组平面520n。
[0120] 根据一些实施方案,设备100或其部件(例如,图11中的相关性模块1162)使第一组平面520a、第二组平面520b,…和第n组平面520n相关以生成一组合并的平面。继而,在一些实施方案中,设备100或其部件(例如,图11中的四叉树生成模块1160)基于一组合并的平面生成一组四叉树525。例如,设备100根据本领域中已知的算法或技术生成一组四叉树525。
[0121] 图5B示出了根据一些实施方案的与用于生成一组四叉树的过程550相关联的抽象框图。尽管示出了相关特征,但本领域的普通技术人员将从本公开中认识到,为简洁起见并且为了不模糊本文所公开的示例性实施方案的更多相关方面,未示出各种其他特征。例如,在一些实施方案中,在过程550中,通过合并多组四叉树530a,530b,…,530n生成一组合并的四叉树540,所述多组四叉树530a,530b,…,530n由与在不同时间(例如相机位置或视场)的不同参考/有利点相关联的3d点云构建。
[0122] 如图5B所示,设备100或其部件(例如,图11中的图像捕获控制模块1150)获得相对于第一参考/有利点502a的第一组图像504a(例如,图像数据)。在一些实施方案中,设备100或其部件(例如,图11中的点云合成模块1156)基于第一组图像504a来合成第一3d点云506a。在一些实施方案中,设备100或其部件(例如,图11中的平面拟合模块1158)基于第一
3d点云506a和/或第一组图像504a来构建第一组平面520a。在一些实施方案中,设备100或其部件(例如,图11中的四叉树生成模块1160)基于第一组平面520a和/或第一3d点云506a生成第一组四叉树530a。例如,设备100根据参考图10描述的细节生成第一组四叉树530a。
[0123] 类似地,如图5B所示,设备100或其部件(例如,图11中的图像捕获控制模块1150)获得相对于第二参考/有利点502b的第二组图像504b。在一些实施方案中,设备100或其部件(例如,图11中的点云合成模块1156)基于第二组图像504b来合成第二3d点云506b。在一些实施方案中,设备100或其部件(例如,图11中的平面拟合模块1158)基于第二3d点云506b和/或第二组图像504b构建第二组平面520b。在一些实施方案中,设备100或其部件(例如,图11中的四叉树生成模块1160)基于第二组平面520b和/或第二3d点云506b生成第二组四叉树530b。
[0124] 相似地,如图5B所示,设备100或其部件(例如,图11中的图像捕获控制模块1150)获得相对于第n个参考/有利点502n的第n组图像504n。在一些实施方案中,设备100或其部件(例如,图11中的点云合成模块1156)基于第n组图像504n来合成第n个3d点云506n。在一些实施方案中,设备100或其部件(例如,图11中的平面拟合模块1158)基于第n个3d点云506n和/或第n组图像504n构建第n组平面520n。在一些实施方案中,设备100或其部件(例如,图11中的四叉树生成模块1160)基于第n组平面520n和/或第n个3d点云506n生成第n组四叉树530n。
[0125] 根据一些实施方案,设备100或其部件(例如,图11中的相关性模块1162)将第一组四叉树530a、第二组四叉树530b,…和第n组四叉树530n相关以获得一组合并的四叉树540。例如,设备100根据参考图10描述的细节来生成一组合并的四叉树540。
[0126] 图6A-6G示出了根据一些实施方案的用于检测虚拟衬底的示例性用户界面。这些附图中的用户界面被用于示出包括图8-10中的过程的下文描述的过程。尽管将参考触摸屏显示器(其中组合了触敏表面和显示器)上的输入给出随后的示例中的一些示例,但是在一些实施方案中,设备检测与显示器450分开的触敏表面451上的输入,如图4B中所示。
[0127] 在一些实施方案中,设备100在类似于图6G中的媒体捕获/交互界面652的用户界面内显示在图6A-6H中执行的步骤。在一些实施方案中,设备100执行但不显示图6A-6H中的步骤,而是在图6G中的媒体捕获/交互界面652中显示所得的平面650a、650b、650c和650d。
[0128] 如图6A所示,设备100检测场景内的点605a、605b、605c和605d的多个集群。例如,点的集群605a对应于场景内的第一桌子604a。例如,点的集群605b对应于场景内的地板的一部分。例如,点的集群605c对应于场景内的地板的另一部分。例如,点的集群605d对应于场景内的第二桌子604b。根据一些实施方案,设备100获得场景的多个图像,并且合成在场景中识别的包括点的集群605a、605b、605c和605d的点的三维(3d)点云。在一些实施方案中,设备100或其部件(例如,图11中的坐标转换模块1154)跟踪世界坐标602a和设备坐标602b,以便执行与设备坐标602b相关联的图像空间和与世界坐标602a相关联的3d空间(例如,图6A-6G中的房间或场景)之间的转换。
[0129] 如图6B中所示,在与3d点云相关联的3d坐标空间中,设备100基于图6A中的点的集群605a、605b、605c和605d来构建(识别)多个平面610a、610b、610c和610d(例如,无限平面)。在一些实施方案中,设备100根据本领域中已知的算法或技术(例如,最小二乘平方、主成分分析、同时定位和映射(SLAM)等),通过将无限平面拟合到3d点云中的点的集群605a、605b、605c和605d来构建多个平面610a、610b、610c和610d。
[0130] 如图6C所示,在与用于合成3d点云的多个图像相关联的二维(2d)坐标空间中,设备100将图6A中的点的集群605a、605b、605c和605d内的点划分成三角形。
[0131] 如图6D所示,在2d坐标空间中,设备100基于图6B中的多个平面610a、610b、610c和610d移除具有不与同一平面相关联的点的三角形,以获得多个约束三角区域620a、620b、
620c和620d。
[0132] 如图6E所示,设备100将多个约束三角区域620a、620b、620c和620d投射回到3d坐标空间中,并且对多个约束三角区域620a、620b、620c和620d正交化以获得四叉树630a、630b、630c和630d。在图6E中,基于四叉树的范围,四叉树630a、630b、630c和630d被边界框包围。
[0133] 如图6F中所示,由于检测到附加的点,与第一桌子604a相关联的四叉树630a的尺寸已扩大到状态630a',与地板相关联的四叉树630b和630c已合并为四叉树630e,与第二桌子604b相关联的四叉树630d的尺寸已扩大到状态630d',并且已经检测到与场景内的房间的墙壁相关联的新的四叉树630f。
[0134] 如图4G所示,设备100显示媒体捕获/交互界面652,提供该媒体捕获/交互界面652以检测平面并将增强现实和/或虚拟现实(AR/VR)对象放置在其上。根据一些实施方案,媒体捕获/交互界面652对应于场景的媒体捕获预览,该场景具有在设备的图像传感器的视场中的对象,该对象随着图像传感器的视场改变而改变。例如,在图6G中,媒体捕获预览包括图6A-6F中所示的具有桌子604a和604b的场景。根据一些实施方案,图6G中的媒体捕获/交互界面652类似于或改编自图4A-4M中的媒体捕获/交互界面402。
[0135] 在图6G中,媒体捕获/交互界面652包括:快照示能表示654a,其被提供以响应于其选择(例如,用接触或选择手势)来捕获图像;AR/VR对象菜单示能表示654b,其被提供以响应于其选择(例如,用接触或选择手势)来显示对象选择界面;以及选项示能表示654c,其被提供以响应于其选择(例如,用接触或选择手势)来显示选项和/或设置菜单。在图6G中,用户界面602还包括分别对应于图6F中的四叉树630a'、630d'、630e和630f的边界框的平面范围650a、650b、650c和650d。
[0136] 如图6G所示,平面范围650a、650b、650c和650d中的每一者都以独特的外观、图案、填充等来显示。根据一些实施方案,平面范围650a、650b、650c和650d中的每一者对应于可以在其上放置AR/VR对象(例如,如图4F-4G所示)并对其进行操作(例如,如图4F-4G所示)的虚拟衬底。在一些实施方案中,平面范围650a、650b、650c和650d中的每一者都提供视觉提示,即已经在场景内检测到平面。在一些实施方案中,平面范围650a、650b、650c和650d中的每一者都提供了相关联的所检测到的四叉树的范围的一部分的视觉指示。
[0137] 图7是根据一些实施方案的检测虚拟衬底并将对象放置在其上的方法700的流程图表示。在一些实施方案中(并且如下面作为示例所详述),方法700由电子设备(或其一部分)执行,诸如图1中的电子设备100或图3中的设备300,其包括一个或多个处理器、非暂态存储器、图像传感器或相机组件、显示器以及一个或多个输入设备。例如,显示器和一个或多个输入设备组合成触摸屏显示器。在该示例中,电子设备对应于智能电话或平板电脑。又如,显示器和一个或多个输入设备是分开的。在该示例中,电子设备对应于膝上型计算机或台式计算机。例如,该电子设备对应于穿戴式计算设备、智能手机、平板电脑、膝上型计算机、台式计算机、信息亭、机顶盒(STB)、顶置(OTT)盒、游戏机等。
[0138] 在一些实施方案中,方法700由处理逻辑部件(包括硬件、固件、软件或其组合)执行。在一些实施方案中,方法700由执行存储在非暂态计算机可读存储介质(例如,非暂态存储器)中的代码、程序或指令的一个或多个处理器执行。方法700中的一些操作任选地被组合,和/或一些操作的顺序任选地被改变。简而言之,方法700包括:响应于检测到场景内的平面,将标线片元件从第一外观状态改变为第二外观状态;相对于检测到的平面在场景中放置增强现实/虚拟现实(AR/VR)对象;以及根据用户输入修改/操作AR/VR对象。
[0139] 在框702处,方法700开始,其中电子设备以第一外观状态显示覆盖在媒体捕获预览上的标线片元件。例如,在图4B中,设备100显示媒体捕获/交互界面402,其包括与其中具有桌子415和两个墙壁的房间对应的场景的媒体捕获预览。继续该示例,在图4B中,媒体捕获/交互界面402还包括以第一外观状态410显示的标线片元件。在一些实施方案中,在第一外观状态410中,标线片元件对应于具有不透明拐角但没有边缘的透明矩形。在一些实施方案中,标线片元件对应于矩形、椭圆形、多边形、放大镜、十字线等。
[0140] 在框704处,方法700继续,其中电子设备获得场景数据。根据一些实施方案,设备100或其部件(例如,图11中的图像捕获控制模块1150)通过用图像传感器或相机组件从第一参考/有利点(例如,相机位置或视场)捕获场景的两个或更多个图像来获得场景数据(例如,图像数据)。
[0141] 在框706处,方法700继续,其中电子设备基于场景数据来检测平面。例如,设备检测场景数据中的平坦表面(例如,地板、墙壁、桌面等)。根据一些实施方案,设备100或其部件(例如,图11中的平面拟合模块1158)通过处理场景数据来检测至少一个平面。例如,参考图4B,设备100检测与桌子415的顶部对应的平面。在一些实施方案中,整个平面在标线片元件内。在一些实施方案中,平面的至少一部分在标线片元件内。在一些实施方案中,平面大于标线片元件的范围。在一些实施方案中,平面小于标线片元件的范围。在一些实施方案中,响应于检测到两个或更多个平面,该设备在邻近两个或更多个检测到的平面的位置处以第二外观状态显示多个标线片元件。
[0142] 在框708处,方法700继续,其中电子设备以第二外观状态显示标线片元件以指示检测到平面。例如,在图4C中,设备100响应于检测到与邻近标线片元件的桌子415的顶部相关联的平面,将标线片元件从第一外观状态410改变为第二外观状态410'。在一些实施方案中,在第二外观状态中,标线片元件显示为具有不透明或闪光边缘的透明矩形。在一些实施方案中,在第二外观状态中,标线片元件显示为具有不透明或闪光边缘的部分透明矩形。在一些实施方案中,当以第二外观状态显示时,标线片元件提供视觉提示,即已检测到可用作AR/VR对象的虚拟衬底的平面。在一些实施方案中,当以第二外观状态显示时,标线片元件还提供了可用作AR/VR对象的虚拟衬底的检测到的平面的边界的视觉提示。
[0143] 在一些实施方案中,设备根据确定当以第一外观状态显示时检测到的平面邻近标线片元件来将标线片元件从第一外观状态转换为第二外观状态。根据一些实施方案,当将检测到的平面投射到与场景数据相关联的图像空间(例如,与设备坐标相关联的二维空间)上并且至少预先定义数量的像素在标线片元件和检测到的平面之间重叠时,检测到的平面邻近标线片元件。根据一些实施方案,当标线片元件被投射到与场景相关联的现实世界空间(例如,与世界坐标相关联的三维空间)上并且至少预先定义数量的像素在标线片元件和检测到的平面之间重叠时,检测到的平面邻近标线片元件。
[0144] 在一些实施方案中,设备根据确定当以第一外观状态显示时检测到的平面在标线片元件的阈值距离内,将标线片元件从第一外观状态转变为第二外观状态。根据一些实施方案,当检测到的平面在设备的预先确定的距离内时,检测到的平面在标线片元件的阈值距离内。
[0145] 在一些实施方案中,如框712所示,设备将标线片元件对准检测到的平面的取向。例如,在图4D中,设备100通过使标线片元件旋转和/或对准到与桌子415相关联的检测到的平面的取向来以第三外观状态410”显示标线片元件。在一些实施方案中,标线片元件与检测到的平面的左右摇摆、倾斜和/或滚动对准。
[0146] 在一些实施方案中,如框714所示,设备扩大标线片元件。例如,在图4E中,设备100响应于检测到与平面相关联的指示其范围大于先前检测到的平面的附加点而通过扩大标线片元件的面积来以第四外观状态410”’显示标线片元件。在一些实施方案中,标线片元件扩展至检测到的平面的尺寸。在一些实施方案中,标线片元件收缩至检测到的平面的尺寸。在一些实施方案中,当以第二外观状态显示标线片元件时,标线片元件的尺寸基于检测到附加点而随着检测到的平面的尺寸改变而动态地改变。
[0147] 例如,设备检测到与改变标线片元件的一个或多个维度对应的用户输入,诸如捏合手势、去捏合手势、轻击并拖曳手势等。例如,图4L-4M示出了其中响应于在图4L中检测到标线片元件上的轻击并拖曳手势而改变了标线片元件的维度(例如,标线片元件的高度朝着桌子415的前边缘444移动)的序列。在一些实施方案中,用户输入在检测到的平面的边界内修改标线片元件的尺寸。因此,在一些实施方案中,用户输入不会将标线片元件的尺寸调整到超出所检测到的平面的范围。
[0148] 在框716处,方法700继续,其中电子设备检测到将增强现实和/或虚拟现实(AR/VR)对象放置在场景内的第一用户输入。例如,在图4F中,设备100在与对象选择界面472内的用户可选择的AR/VR对象476f(例如,长方体对象)对应的位置处检测到接触414(例如,轻击或选择手势)。在一些实施方案中,该设备响应于选择预定义的示能表示(例如,AR/VR对象菜单示能表示404b)而显示对象选择界面(例如,弹出菜单或下拉菜单/面板)。
[0149] 在框718处,方法700继续,其中电子设备在场景内相对于检测到的平面显示AR/VR对象。例如,在图4G中,设备100响应于检测到对图4F中用户可选择的AR/VR对象476f的选择而在场景内相对于检测到的平面显示立方体AR/VR对象420。在一些实施方案中,AR/VR对象显示在检测到的平面的几何中心(例如,质心)上。在一些实施方案中,在相对于检测到的平面将AR/VR对象放置在场景内之后,设备100移除标线片元件。在一些实施方案中,当显示AR/VR对象时,设备100移除标线片元件以减少遮挡和混乱。在一些实施方案中,设备基于检测到的平面的取向向AR/VR对象施加旋转(例如,左右摇摆、倾斜和/或滚动)。
[0150] 在框720处,方法700继续,其中电子设备检测与AR/VR对象交互的第二用户输入。作为一个示例,在图4G中,设备100检测到具有在长方体AR/VR对象420上的接触416a和416b的反向捏合手势。又如,在图4H中,设备100检测到具有长方体AR/VR对象420上的接触418的轻击并拖拽手势。又如,在图4I中,设备100检测到具有长方体AR/VR对象420上的接触422a和422b的两指逆时针旋转手势。又如,在图4I中,设备100检测到具有长方体AR/VR对象420上的接触424的单指轻击手势。
[0151] 在框722处,方法700继续,其中电子设备基于第二用户输入的一个或多个特征来修改AR/VR对象。作为一个示例,图4H-4I示出了其中响应于在图4H中检测到长方体AR/VR对象420上的轻击并拖拽手势,长方体AR/VR对象420移动更靠近桌子415的前边缘423。在一些实施方案中,第二用户输入的一个或多个特征与输入类型(例如,语音命令、捏合手势、反向捏合手势、轻击并拖拽手势、轻扫手势、单指轻击手势、两指轻击手势、单指双击手势、双指双击手势等)、输入方向、输入幅值、输入速度等对应。
[0152] 在一些实施方案中,一个或多个特征对应于输入类型。例如,如果第三用户输入对应于轻击并拖拽手势,则设备修改AR/VR对象相对于检测到的平面的位置。在一些实施方案中,如果轻击并拖拽手势将AR/VR对象移到检测到的平面之外,则设备会在下一个最近的平面(例如,地板平面)上显示AR/VR对象。在一些实施方案中,如果轻击并拖拽手势将AR/VR对象移动到检测到的平面之外,则设备在检测到的平面的边缘上保持AR/VR对象的显示。又如,如果第三用户输入对应于捏合手势,则设备修改AR/VR对象的尺寸。又如,如果第三用户输入对应于预定义的手势,则设备显示具有AR/VR对象的预定义的动画或对该AR/VR对象执行预定义的操作。在一些实施方案中,设备基于该设备相对于AR/VR对象的距离显示具有AR/VR对象的预定义的动画或对AR/VR对象执行预定义的操作。在一些实施方案中,当设备的位置相对于AR/VR对象改变时,设备将保持AR/VR对象的视角(例如,增大/减小尺寸、显示AR/VR对象的不同角度等)。
[0153] 在一些实施方案中,如框724所示,设备旋转AR/VR对象。例如,图4I-4J示出了其中响应于在图4I中检测到长方体AR/VR对象420上的逆时针旋转手势而改变长方体AR/VR对象420的取向的序列。
[0154] 在一些实施方案中,如框726所示,设备重新调整AR/VR对象的尺寸。例如,图4G-4H示出了其中响应于在图4G中检测到的长方体AR/VR对象420上的反向捏合手势,长方体AR/VR对象420的尺寸增加的序列。
[0155] 在一些实施方案中,如框728所示,设备触发与AR/VR对象相关联的行为。在一些实施方案中,该行为对应于在AR/VR对象上执行的预定义动画或操作,诸如抚摸AR/VR动物以使其吠叫或喵叫,轻击AR/VR汽车以使其鸣喇叭或旋转引擎,像锤子一样轻击AR/VR立方体使其分裂成两半,轻击AR/VR火山使其爆发,等等。例如,图4J-4K示出了其中响应于在图4J中检测到长方体AR/VR对象420上的预定义交互手势而将长方体AR/VR对象420分为长方体AR/VR对象430a和430b的序列。
[0156] 图8是根据一些实施方案的生成用作虚拟衬底的一组合并的四叉树的方法800的流程图表示。在一些实施方案中(并且如下面作为示例所详述),方法800由电子设备(或其一部分)执行,诸如例如图1中的电子设备100或图3中的设备300,其包括一个或多个处理器和非暂态存储器。在一些实施方案中,该设备任选地包括显示器、图像传感器或相机组件以及一个或多个输入设备(例如,触摸屏显示器、触控板、鼠标、键盘、物理按钮、麦克风等)。例如,显示器和一个或多个输入设备组合成触摸屏显示器。在该示例中,电子设备对应于智能电话或平板电脑。又如,显示器和一个或多个输入设备是分开的。在该示例中,电子设备对应于膝上型计算机或台式计算机。例如,电子设备对应于穿戴式计算设备、智能电话、平板电脑、膝上型计算机、台式计算机、信息亭、机顶盒(STB)、顶置(OTT)盒、游戏机等。
[0157] 在一些实施方案中,方法800由处理逻辑部件(包括硬件、固件、软件或其组合)执行。在一些实施方案中,方法800由执行存储在非暂态计算机可读介质(例如,非暂态存储器)中的代码的处理器执行。方法800中的一些操作任选地被组合,和/或者一些操作的顺序任选地被改变。简而言之,方法800包括:获得针对不同参考/有利点的多组图像;针对多组图像中的每一组合成3d点云;使用相应的3d点云构建平面;以及生成一组四叉树,该组四叉树表征在3d点云上的一组合并的平面。
[0158] 在框802处,方法800开始,其中电子设备获得针对不同参考/有利点的多组图像。例如,如图5A-5B所示,设备100或其部件(例如,图11中的图像捕获控制模块1150)获得分别针对参考/有利点502a、502b、…、502n的多组图像504a、504b、…、504n(例如,图像数据)。在一些实施方案中,多组图像中的每一组包括两个或更多个图像。在一些实施方案中,多组图像组中的每一组对应于不同的参考/有利点(例如,不同的相机位置或视场)。
[0159] 在框804处,方法800继续,其中电子设备针对多组图像中的每一组合成三维(3d)点云。例如,如图5A-5B所示,设备100或其部件(例如,图11中的点云合成模块1156)基于分别针对参考/有利点502a、502b、…、502n的多组图像504a、504b、…、504n合成三维(3d)点云506a、506b、…、506n。在一些实施方案中,设备100通过为每组图像识别一组点并将这些点定位在3d空间中而根据本领域中已知的算法或技术来合成3d点云。
[0160] 在框806处,方法800继续,其中电子设备使用相应的3d点云构建平面。例如,如图5A-5B所示,设备100或其部件(例如,图11中的平面拟合模块1158)分别基于3d点云506a、
506b、…、506n构建一组平面520a、520b、…、520n。在一些实施方案中,设备100根据本领域中已知的算法或技术(例如,最小拟合二乘法、主成分分析、同时定位和映射(SLAM)等)将平面构建(例如拟合)到3d点云。
[0161] 在框808处,方法800继续,其中电子设备生成一组四叉树,其表征在3d点云上的一组合并的平面。例如,如图5A所示,设备100或其部件(例如,图11中的四叉树生成模块1160)生成一组四叉树525,其表征随时间推移在3d点云506a、506b、…、506n上的一组合并的平面。例如,如图5B所示,设备100或其部件(例如,图11中的四叉树生成模块1160)生成一组合并的四叉树540,其表征随时间推移在3d点云506a、506b、…、506n上的一组合并的平面。在一些实施方案中,设备100根据本领域中已知的算法或技术生成一组四叉树。根据一些实施方案,如本领域普通技术人员将理解的,方法800还适用于生成表征场景的八叉树。
[0162] 在一些实施方案中,如框810所示,设备为3d点云中的每一个生成一组平面,并通过关联多组平面来生成一组合并的平面。在一些实施方案中,如框812所示,设备基于一组合并的平面生成一组四叉树。例如,如图5A所示,设备100或其部件(例如,图11中的相关性模块1162)使第一组平面520a,第二组平面520b,…和第n组平面520n相关以生成一组合并的平面。继而,继续图5A中的示例,设备100或其部件(例如,图11中的四叉树生成模块1160)基于该组合并的平面生成一组四叉树525。
[0163] 在一些实施方案中,如框814所示,设备基于相关联的平面为每个3d点云生成一组中间的四叉树。在一些实施方案中,如框816所示,设备通过关联一组中间的四叉树来生成一组四叉树。例如,如图5B所示,设备100或其部件(例如,图11中的四叉树生成模块1160)分别基于多组平面520a、520n、…、520n和/或3d点云506a、506b、…、506n生成多组四叉树530a、530b、…、530n。继而,继续图5B中的示例,设备100或其部件(例如,图11中的相关性模块1162)使多组四叉树530a、530b、…、530n相关以生成一组合并的四叉树540。
[0164] 图9是根据一些实施方案的生成用作虚拟衬底的一组四叉树的方法900的流程图表示。在一些实施方案中(并且如下面作为示例所详述),方法900由电子设备(或其一部分)执行,诸如图1中的电子设备100或图3中的设备300,其包括一个或多个处理器、非暂态存储器、任选的图像传感器或相机组件、任选的显示器以及一个或多个任选的输入设备。例如,该电子设备对应于穿戴式计算设备、智能手机、平板电脑、膝上型计算机、台式计算机、信息亭、机顶盒(STB)、顶置(OTT)盒、游戏机等。
[0165] 在一些实施方案中,方法900由处理逻辑部件(包括硬件、固件、软件或其组合)执行。在一些实施方案中,方法900由一个或多个执行存储在非暂态计算机可读存储介质(例如,非暂态存储器)中的代码、程序或指令的处理器执行。方法900中的一些操作任选地被组合,和/或一些操作的顺序任选地被改变。简而言之,方法900包括:针对不同的参考/有利点生成多组平面;使多组平面相关以随时间推移获得一组合并的平面;以及基于一组合并的平面生成一组四叉树。
[0166] 在框902处,方法900开始,其中电子设备基于针对参考点X(例如,时间段或相机位置)的一组图像获得三维(3d)点云。作为一个示例,在图5A中,设备100或其部件(例如,图11中的点云合成模块1156)基于相对于第n个参考/有利点502n(例如,参考点X)的第n组图像504n合成第n个3d点云506n。例如,设备100通过识别第n组图像504n中的点并通过根据本领域中已知的算法或技术将与设备坐标相关联的图像空间中的点的位置转换为世界坐标来相对于世界坐标定位所述点来合成第n个3d点云506n。
[0167] 在框904处,方法900继续,其中电子设备将平面拟合到针对参考点X的3d点云。作为一个示例,在图5A中,设备100或其部件(例如,图11中的平面拟合模块1158)基于第n个3d点云506n构建第n组平面520n。例如,设备100通过根据本领域已知的算法或技术(例如,最小拟合二乘法、主成分分析、同时定位和映射(SLAM))将平面拟合到第n个3d点云506n来构建第n组平面520n。
[0168] 在框906处,方法900继续,其中电子设备通过合并、扩展和/或校正拟合到针对参考点X、X-1、X-2、…、X-N的3d点云的平面来获得一组时间累积的平面。作为一个示例,在图5A中,设备100或其部件(例如,图11中的相关性模块1162)使第一组平面520a(例如,与参考点X-2相关联)、第二组平面520b(例如,与参考点X-1相关联)…和第n组平面520n(例如,与参考点X相关联)相关以生成一组合并的平面。例如,使拟合到针对参考点X、X-1、X-2、…、X-N的3d点云的多组平面相关包括基于拟合到针对参考点X、X-1、X-2、…、X-N的3d点云的平面的位置、尺寸和/或取向中所识别的相似性或差异来扩大平面、合并平面和/或在时间维度上校正平面的尺寸或取向。在一些实施方案中,使多组平面相关可校正尺寸随时间变化的动态平面。在一些实施方案中,当随着时间的推移检测到附加的相关联的点时,使多组平面相关放大平面。在一些实施方案中,当随时间推移确定两个或更多个平面为同一平面的一部分时,使多组平面相关合并平面。
[0169] 在框908处,方法900继续,其中电子设备基于时间累积的一组平面来生成一组四叉树。作为一个示例,在图5A中,设备100或其部件(例如,图11中的四叉树生成模块1160)基于来自框906的一组合并的平面来生成一组四叉树525。例如,设备100根据本领域中已知的算法或技术生成一组四叉树525。
[0170] 图10是根据一些实施方案的生成一组合并的四叉树的方法1000的流程图表示。在一些实施方案中(并且如下面作为示例所详述),方法1000由电子设备(或其一部分)执行,诸如图1中的电子设备100或图3中的设备300,其包括一个或多个处理器、非暂态存储器、任选的图像传感器或相机组件、任选的显示器以及一个或多个任选的输入设备。例如,该电子设备对应于穿戴式计算设备、智能手机、平板电脑、膝上型计算机、台式计算机、信息亭、机顶盒(STB)、顶置(OTT)盒、游戏机等。
[0171] 在一些实施方案中,方法1000由处理逻辑部件(包括硬件、固件、软件或其组合)执行。在一些实施方案中,方法1000由执行存储在非暂态计算机可读存储介质(例如,非暂态存储器)中的代码、程序或指令的一个或多个处理器执行。方法1000中的一些操作任选地被组合,和/或一些操作的顺序任选地被改变。简而言之,方法1000包括:针对不同的参考/有利点生成多组四叉树;以及使多组四叉树相关以随时间推移获得一组合并的四叉树。
[0172] 在框1002处,方法1000开始,其中电子设备基于针对参考点X(例如,时间段或相机位置)的一组图像获得三维(3d)点云。作为一个示例,在图5B中,设备100或其部件(例如,图11中的点云合成模块1156)基于相对于第n个参考点/有利点502n(例如,参考点X)的第n组图像504n合成第n个3d点云506n。例如,设备100通过识别第n组图像504n中的点并通过根据本领域中已知的算法或技术将与设备坐标关联的图像空间中的点的位置转换为世界坐标来相对于世界坐标定位所述点来合成第n个3d点云506n。
[0173] 在框1004处,方法1000继续,其中电子设备将平面拟合至针对参考点X的3d点云。作为一个示例,在图5B中,设备100或其部件(例如,图11中的平面拟合模块1158)基于第n个
3d点云506n(例如,与参考点X相关联)构建第n组平面520n。例如,设备100通过根据本领域已知的算法或技术(例如,最小拟合二乘法、主成分分析、同时定位和映射(SLAM))将平面拟合到第n个3d点云506n来构建第n组平面520n。如图6B中所示,例如,在与3d点云相关联的3d坐标空间中,设备100基于图6A中的点的集群605a、605b、605c和605d构建(例如,识别)多个平面610a、610b、610c和610d(例如,无限平面)。
[0174] 在框1006处,方法1000继续,其中电子设备在与针对参考点X的一组图像相关联的二维(2d)坐标空间中将与3d点云相关联的点划分成三角形。如图6C所示,例如,在与用于合成3d点云的多个图像相关联的二维(2d)坐标空间中,设备100将图6A中的点的集群605a、605b、605c和605d内的点划分成三角形。
[0175] 在框1008处,方法1000继续,其中电子设备在2d坐标空间中移除与拟合到3d点云的平面不相关的三角形,以获得针对参考点X的约束三角区域。如图6D所示,例如,在2d坐标空间中,设备100基于图6B中的多个平面610a、610b、610c和610d移除具有与同一平面不相关联的点的三角形,以获得多个约束三角区域620a、620b、620c和620d。
[0176] 在一些实施方案中,电子设备根据图10所示的顺序依次执行与框1004、1006、1008和1010对应的操作。在一些实施方案中,电子设备根据与图10所示顺序不同的顺序依次执行与框1004、1006、1008和1010对应的操作。在一些实施方案中,电子设备并行执行与框1004、1006、1008和1010对应的操作。
[0177] 在框1010处,方法1000继续,其中电子设备将约束三角区域投射到与3d点云相关联的3d坐标空间上。在框1012处,方法1000继续,其中电子设备基于针对参考点X的约束三角区域生成一组四叉树。作为一个示例,在图5B中,设备100或其部件(例如,图11中的平面拟合模块1158)基于第n组平面520n和/或第n个3d点云506n生成第n组四叉树530n(例如,与参考点X相关联)。例如,设备100根据本领域中已知的算法或技术生成第n组四叉树530n。如图6E所示,例如,设备100将多个约束三角区域620a、620b、620c和620d投射回到3d坐标空间,并且将多个约束三角区域620a、620b、620c和620d正交化以获得四叉树630a、630b、630c和630d。在图6E中,基于四叉树的范围,四叉树630a、630b、630c和630d被边界框包围。
[0178] 在框1014处,方法1000继续,其中电子设备基于针对参考点X-1、X-2、…、X-N的多组四叉树来合并、扩展和/或校正针对参考点X的一组四叉树的部分。作为一个示例,在图5B中,设备100或其部件(例如,图11中的相关性模块1162)使第一组四叉树530a(例如,与参考点X-2相关联)、第二组四叉树530a(例如,与参考点X-1相关联)…,以及第n组四叉树530n(例如,与参考点X相关联)相关以生成一组合并的四叉树540。
[0179] 例如,使针对参考点X、X-1、X-2、…、X-N的多组四叉树相关包括基于针对参考点X、X-1、X-2、…、X-N的多组四叉树的位置、尺寸和/或取向中所识别的相似性或差异来扩展四叉树、合并四叉树和/或在时间维度上校正四叉树的尺寸或取向。在一些实施方案中,使多组四叉树相关校正与尺寸随时间变化的动态平面相关联的四叉树。在一些实施方案中,当随着时间推移检测到附加的相关联的点时,使多组四叉树相关扩大四叉树。在一些实施方案中,当随时间推移确定两个或更多个四叉树为同一四叉树的一部分时,使多组四叉树相关合并四叉树。在一些实施方案中,一组合并的四叉树中的每个四叉树提供以下各项中的一者的指示:基本上水平的平面、基本上竖直的平面或根据三个自由度中的一者或多者倾斜的平面。在一些实施方案中,一组合并的四叉树中的每一个对应于虚拟衬底。
[0180] 图11为根据一些实施方案的计算设备1100的框图。在一些实施方案中,计算设备1100对应于图1中的设备100或图3中的设备300的至少一部分,并执行上述功能中的一者或多者。尽管示出了一些具体特征,但本领域的技术人员将从本公开中认识到,为简洁起见并且为了不使本文所公开的实施方案的更多相关方面晦涩难懂,未示出各种其他特征。为了达到这一目的,作为非限制性示例,在一些实施方案中,计算设备1100包括一个或多个处理单元(CPU)1102(例如,处理器)、一个或多个输入/输出(I/O)接口1103(例如,网络接口、输入设备、输出设备和/或传感器接口)、存储器1110、编程接口1105,以及用于互连这些部件和各种其他部件的一个或多个通信总线1104。
[0181] 在一些实施方案中,通信总线1104包括互连并控制系统部件之间的通信的电路。存储器1110包括高速随机存取存储器,诸如DRAM、SRAM、DDR RAM或其他随机存取固态存储器设备;并且在一些实施方案中,包括非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存存储器设备或其他非易失性固态存储设备。存储器1110任选地包括远离一个或多个CPU 1102定位的一个或多个存储设备。存储器1110包括非暂态计算机可读存储介质。此外,在一些实施方案中,存储器1110或存储器1110的非暂态计算机可读存储介质存储以下程序、模块和数据结构或其子集,包括任选的操作系统1120、图像捕获控制模块
1150、图像处理模块1152、坐标转换模块1154、点云合成模块1156、平面拟合模块1158、四叉树生成模块1160、相关性模块1162和增强现实和/或虚拟现实(AR/VR)处理模块1164。在一些实施方案中,一个或多个指令包括在逻辑和非暂态存储器的组合中。操作系统1120包括用于处理各种基础系统服务和用于执行硬件相关任务的过程。
[0182] 在一些实施方案中,图像捕获控制模块1150被配置为控制图像传感器或相机组件的功能以捕获图像或获得图像数据。为此,图像捕获控制模块1150包括指令集1151a以及启发式和元数据1151b。
[0183] 在一些实施方案中,图像处理模块1152被配置为预处理来自图像传感器或相机组件的原始图像数据(例如,将RAW图像数据转换为RGB或YCbCr图像数据)。为此,图像处理模块1152包括指令集1153a以及启发式和元数据1153b。
[0184] 在一些实施方案中,坐标变换模块1154被配置为保持世界坐标和设备坐标。在一些实施方案中,坐标变换模块1154还被配置为在坐标集之间变换。为此,坐标变换模块1154包括指令集1155a以及启发式和元数据1155b。
[0185] 在一些实施方案中,点云合成模块1156被配置为基于两个或更多个图像来合成针对参考/有利点(例如,相机位置)的三维(3d)点云。为此,点云合成模块1156包括指令集1157a以及启发式和元数据1157b。
[0186] 在一些实施方案中,平面拟合模块1158被配置为构建(例如拟合)针对相应的3d点云的一组平面(例如,通过最小拟合二乘法、主成分分析、同时定位和映射(SLAM)等)。为此,平面拟合模块1158包括指令集1159a以及启发式和元数据1159b。
[0187] 在一些实施方案中,四叉树生成模块1160被配置为针对相应的3d点云生成一组四叉树。为此,四叉树生成模块1160包括指令集1161a以及启发式和元数据1161b。
[0188] 在一些实施方案中,相关性模块1162被配置为在时间维度上使针对不同参考/有利点的多组四叉树相关,以获得一组合并的四叉树。在一些实施方案中,相关性模块1162还被配置为在时间维度上使针对不同参考/有利点的多组平面相关,以获得一组合并的平面。为此,相关性模块1162包括指令集1163a以及启发式和元数据1163b。
[0189] 在一些实施方案中,AR/VR处理模块1164被配置为显示检测到的平面和/或四叉树的视觉指示。在一些实施方案中,AR/VR处理模块1164被配置为显示和修改AR/VR对象。为此,AR/VR处理模块1164包括指令集1165a以及启发式和元数据1165b。
[0190] 尽管图像捕获控制模块1150、图像处理模块1152、坐标变换模块1154、点云合成模块1156、平面拟合模块1158、四叉树生成模块1160、相关性模块1162和AR/VR处理模块1164被示为驻留在单个计算设备1100上,应当理解,在其他实施方案中,图像捕获控制模块1150、图像处理模块1152、坐标变换模块1154、点云合成模块1156、平面拟合模块1158、四叉树生成模块1160、相关性模块1162和AR/VR处理模块1164的任何组合在各种实施方案中可驻留在单独的计算设备中。例如,在一些实施方案中,图像捕获控制模块1150、图像处理模块1152、坐标变换模块1154、点云合成模块1156、平面拟合模块1158、四叉树生成模块1160、相关性模块1162和AR/VR处理模块1164中的每一者驻留在单独的计算设备上或在云中。
[0191] 此外,图11更多地用作存在于特定具体实施中的各种特征部的功能描述,与本文所述的实施方案的结构示意图不同。如本领域的普通技术人员将认识到的,单独显示的项目可以组合,并且一些项目可以分开。例如,图11中单独示出的一些功能模块可以在单个模块中实现,并且单个功能块的各种功能可在各种实施方案中通过一个或多个功能块来实现。模块的实际数量和特定功能的划分以及如何在其中分配特征部将根据实施方案而变化,并且可以部分地取决于为特定实施方案选择的硬件、软件和/或固件的特定组合。
[0192] 本公开描述了各种特征部,其中没有一个特征部能够单独实现本文所述的益处。应当理解,本文所述的各种特征部可被组合、修改或省略,这对本领域的普通技术人员是显而易见的。本文具体描述的那些之外的其他组合和子组合对于普通技术人员而言将显而易见,并旨在形成本公开的一部分。本文结合各种流程图步骤和/或阶段描述了各种方法。应当理解,在很多情况下,某些步骤和/或阶段可被组合在一起,使得流程图中所示的多个步骤和/或阶段可作为单个步骤和/或阶段来被执行。另外,某些步骤和/或阶段可分成要独立执行的附加子部件。在一些情况下,可重新布置步骤和/或阶段的次序,并且可完全省略某些步骤和/或阶段。另外,本文所述的方法应被理解为可广泛解释的,使得也可执行除本文所示和所述那些之外的附加步骤和/或阶段。
[0193] 本文所述的一些或所有方法和任务可由计算机系统执行和完全自动化。在一些情况下,计算机系统可包括通过网络进行通信和互操作以执行所述功能的多个不同的计算机或计算设备(例如,物理服务器、工作站、存储阵列等)。每个此类计算设备通常包括处理器(或多个处理器),该处理器执行存储在存储器或其他非暂态计算机可读存储介质或设备中的程序指令或模块。本文所公开的各种功能可在此类程序指令中具体体现,但另选地可在计算机系统的专用电路(例如,ASIC或FPGA或GP-GPU)中实现所公开的功能中的一些或全部。在计算机系统包括多个计算设备的情况下,这些设备可以但不必位于同一位置。可通过将物理存储设备诸如固态存储器芯片和/或磁盘转换成不同状态来持久地存储所公开的方法和任务的结果。
[0194] 本公开并不旨在限于本文所示的实施方案。对于本领域的技术人员而言,对本公开中描述的实施方案的各种修改可为显而易见的,并且可将本文所定义的一般原理应用于其他实施方案,而不脱离本公开的实质或范围。本文所提供的本发明的教导内容可应用于其他方法和系统,并且不限于上述方法和系统,并且可组合上述各种实施方案的元素和动作以提供更多实施方案。因此,本文描述的新颖方法和系统可以以多种其他形式来体现;此外,在不脱离本公开的实质的情况下,可以对本文所述的方法和系统的形式进行各种省略、替换和改变。所附权利要求及其等同内容旨在涵盖落入本公开的范围和实质内的此类形式或修改形式。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈