CN109863510A - 冗余跟踪系统 - Google Patents

冗余跟踪系统 Download PDF

Info

Publication number
CN109863510A
CN109863510A CN201780065649.3A CN201780065649A CN109863510A CN 109863510 A CN109863510 A CN 109863510A CN 201780065649 A CN201780065649 A CN 201780065649A CN 109863510 A CN109863510 A CN 109863510A
Authority
CN
China
Prior art keywords
tracking system
tracking
group
message
redundancy
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.)
Pending
Application number
CN201780065649.3A
Other languages
English (en)
Inventor
S·E·黑尔
A·J·麦克菲
R·C·墨菲
D·萨加尔
P·于
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.)
Snapple Co
Original Assignee
Snapple Co
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 Snapple Co filed Critical Snapple Co
Publication of CN109863510A publication Critical patent/CN109863510A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/003Navigation within 3D models or images
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/211Input arrangements for video game devices characterised by their sensors, purposes or types using inertial sensors, e.g. accelerometers or gyroscopes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/0304Detection arrangements using opto-electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/038Indexing scheme relating to G06F3/038
    • G06F2203/0381Multimodal input, i.e. interface arrangements enabling the user to issue commands by simultaneous use of input devices of different nature, e.g. voice plus gesture on digitizer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/038Indexing scheme relating to G06F3/038
    • G06F2203/0382Plural input, i.e. interface arrangements in which a plurality of input device of the same type are in communication with a PC

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Geometry (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Transfer Between Computers (AREA)
  • Processing Or Creating Images (AREA)

Abstract

冗余跟踪系统包括多个冗余跟踪子系统,实现此类跟踪子系统之间的无缝转换,通过将多个跟踪方式合并到单个跟踪系统中来提供对该问题的解决方案。该系统能够基于由跟踪系统跟踪的跟踪标记的可用性通过在多个跟踪系统之间进行组合和转换,来将具有六个自由度(6DoF)的跟踪对象和具有3DoF的跟踪对象组合。因此,当由任何一个跟踪系统跟踪的标记变得不可用时,冗余跟踪系统在6DoF和3DoF中的跟踪之间无缝切换,从而为用户提供不间断的体验。

Description

冗余跟踪系统
优先权要求
本申请要求2016年10月24日提交的序列号为62/412,103的美国临时专利申请的优先权,其全部内容通过引用并入本文。
技术领域
本公开的实施例一般涉及用于实时多自由度(DoF)对象跟踪的设备和方法,其确定三维空间内的对象的位置。更具体地,但不作为限制,本公开的实施例涉及用于冗余DoF对象跟踪的设备和方法。
背景技术
对象跟踪系统可用于创建引人入胜且有趣的增强现实(AR)体验,其中3D图形内容好像是存在于真实世界中。然而,由于环境条件、用户动作、相机和被跟踪的对象/场景之间的意外视觉中断等,此类跟踪经常遭遇跟踪失败。传统上,跟踪失败使得AR体验消失或以其它方式不正常地表现并且打破真实世界中存在3D图形的幻觉。这破坏了作为整体的AR的感知质量。
附图说明
为了容易地识别对任何特定元素或行为的讨论,参考数字中的一个或多个最高有效数字指的是首先引入该元素的图号。
图1是示出根据一些实施例的用于通过网络交换数据(例如,消息和相关联内容)的示例消息传递系统的框图,其中消息传递系统包括冗余跟踪系统。
图2是示出根据示例实施例的关于消息传递系统的进一步细节的框图。
图3是示出根据某些示例实施例的可以存储在消息传递服务器系统的数据库中的数据的示意图。
图4是示出根据一些实施例的由消息传递客户端应用生成的用于通信的消息的结构的示意图。
图5是示出根据一些实施例的示例访问限制过程的示意图,在该过程中,对内容(例如,短时(ephemeral)消息和相关联的多媒体数据有效载荷(payload))或内容集合(例如,短时的消息故事)的访问可以是具有时间限制的(例如,使其为短时的)。
图6是示出根据某些示例实施例的冗余跟踪系统的各个模块的框图。
图7是描绘根据某些示例实施例的由冗余跟踪系统在三维空间内渲染的对象的图。
图8是示出根据某些示例实施例的用于跟踪在三维空间中渲染的对象的方法的流程图。
图9是示出根据某些示例实施例的用于在三维空间中生成和渲染对象的方法的流程图。
图10是示出根据某些示例实施例的用于跟踪在三维空间中渲染的对象的方法的流程图。
图11是示出根据某些示例实施例的混合跟踪矩阵的框图。
图12是示出根据某些示例实施例的用于在三维空间中生成和渲染对象的方法的流程图。
图13是示出代表性软件架构的框图,其可结合在此所描述且用于实施各种实施例的各种硬件架构。
图14是示出根据一些示例实施例的能够从机器可读介质(例如,机器可读存储介质)读取指令并执行在此所讨论的任何一种或多种方法的机器的组件的框图。
词汇表
在该上下文中的“载波信号”是指能够存储、编码或承载用于由机器执行的指令的任何无形介质,并且包括数字或模拟通信信号或其它无形介质以便于此类指令的通信。可以使用传输介质经由网络接口装置并使用许多公知的传输协议中的任何一个传输协议来通过网络发送或接收指令。
在该上下文中的“客户端装置”是指与通信网络接口连接以从一个或多个服务器系统或其它客户端装置获得资源的任何机器。客户端装置可以是但不限于移动电话、台式计算机、膝上型计算机、便携式数字助理(PDA)、智能电话、平板计算机、超级本、上网本、膝上型计算机、多处理器系统、基于微处理器或可编程的消费电子产品、游戏控制台、机顶盒或用户可用其访问网络的任何其它通信装置。
在该上下文中的“通信网络”是指网络的一个或多个部分,该网络可以是自组织网络、内联网、外联网、虚拟专用网络(VPN)、局域网(LAN)、无线LAN(WLAN)、广域网(WAN)、无线WAN(WWAN)、城域网(MAN)、因特网、因特网的一部分、公共交换电话网(PSTN)的一部分、普通老式电话服务(POTS)网络、蜂窝电话网络、无线网络、网络、其它类型的网络,或两个以上此类网络的组合。例如,网络或网络的一部分可以包括无线或蜂窝网络,并且耦接可以是码分多址(CDMA)连接、全球移动通信系统(GSM)连接或其它类型的蜂窝或无线耦接。在该示例中,耦接可以实施各种类型的数据传输技术中的任何一种,诸如单载波无线电传输技术(1xRTT)、演进数据优化(EVDO)技术、通用分组无线服务(GPRS)技术、GSM演进增强型数据速率(EDGE)技术、包括3G的第三代合作伙伴计划(3GPP)、第四代无线(4G)网络、通用移动电信系统(UMTS)、高速分组接入(HSPA)、全球微波接入互操作性(WiMAX)、长期演进(LTE)标准、由各种标准制定组织定义的其它标准、其它远程协议或其它数据传输技术。
在该上下文中的“短时消息”是指可在受时间限制的持续时间期间访问的消息。短时消息可以是文本、图像、视频等。短时消息的访问时间可以由消息发送者设置。可替代地,访问时间可以是默认设置或由接收者指定的设置。无论设置技术如何,消息是暂态的。
在该上下文中的“机器可读介质”是指能够临时或永久地存储指令和数据的组件、装置或其它有形介质,并且可以包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、缓冲存储器、闪存、光学介质、磁介质、高速缓冲存储器、其它类型的存储器(例如,可擦除可编程只读存储器(EEPROM))和/或其任何合适的组合。术语“机器可读介质”应被视为包括能够存储指令的单个介质或多个介质(例如,集中式或分布式数据库,或相关联的高速缓存和服务器)。术语“机器可读介质”还可被视为包括能够存储由机器执行的指令(例如,代码)的任何介质或多个介质的组合,使得指令在由机器的一个或多个处理器执行时使机器执行在此描述的任何一种或多种方法。因此,“机器可读介质”是指单个存储设备或装置,以及包括多个存储设备或装置的“基于云的”存储系统或存储网络。术语“机器可读介质”排除信号本身。
在该上下文中的“组件”是指由功能或子例程调用、分支点、应用程序接口(API)或提供特定处理或控制功能的分区或模块化的其它技术定义的具有边界的装置、物理实体或逻辑。组件可以经由它们的接口与其它组件组合以执行机器过程。组件可以是被设计用于与其它组件一起使用的封装功能硬件单元,以及通常执行相关功能的特定功能的程序的一部分。组件可以构成软件组件(例如,在机器可读介质上体现的代码)或硬件组件。“硬件组件”是能够执行某些操作的有形单元,并且可以以某种物理方式配置或布置。在各种示例实施例中,一个或多个计算机系统(例如,独立计算机系统、客户端计算机系统或服务器计算机系统)或计算机系统的一个或多个硬件组件(例如,处理器或一组处理器)可以通过软件(例如,应用或应用部分)将其配置为操作以执行如在此所述的某些操作的硬件组件。硬件组件还可以机械地、电子地或其任何合适的组合来实现。例如,硬件组件可以包括永久配置为执行某些操作的专用电路或逻辑。硬件组件可以是专用处理器,诸如现场可编程门阵列(FPGA)或专用集成电路(ASIC)。硬件组件还可以包括由软件临时配置以执行某些操作的可编程逻辑或电路。例如,硬件组件可以包括由通用处理器或其它可编程处理器执行的软件。在由该软件配置后,硬件组件成为特定的机器(或机器的特定组件),其被独特地定制以执行配置的功能并且不再是通用处理器。应当理解,可以由成本和时间考虑来驱动在专用和永久配置的电路中或在临时配置的电路(例如,由软件配置)中机械地实现硬件组件的决定。因此,短语“硬件组件”(或“硬件实现的组件”)应该被理解为包含有形实体,即物理构造、永久配置(例如,硬连线)或临时配置(例如,编程)的实体,从而以某种方式操作或执行在此所述的某些操作。考虑其中硬件组件被临时配置(例如,编程)的实施例,不需要在任何一个时刻配置或实例化硬件组件中的每个硬件组件。例如,在硬件组件包括由软件配置成为专用处理器的通用处理器的情况下,通用处理器可以在不同时间被配置为相应的不同的专用处理器(例如,包括不同的硬件组件)。软件相应地配置特定的一个或多个处理器,例如,在一个时刻构成特定的硬件组件,并在不同的时刻构成不同的硬件组件。硬件组件可以向其它硬件组件提供信息并从其接收信息。因此,所描述的硬件组件可以被视为通信地耦接。在同时存在多个硬件组件的情况下,可以通过在两个硬件组件之间或更多个硬件组件之中的信号传输(例如,通过适当的电路和总线)来实现通信。在其中在不同时间配置或实例化多个硬件组件的实施例中,例如通过对多个硬件组件可访问的存储器结构中的信息的存储和取得,可以实现该硬件组件之间的通信。例如,一个硬件组件可以执行操作并将该操作的输出存储在与其通信耦接的存储器装置中。然后,另一硬件组件可以稍后访问存储器装置以取得和处理所存储的输出。硬件组件还可以启动与输入或输出装置的通信,并且可以在资源(例如,信息集合)上操作。在此描述的示例方法的各种操作可以至少部分地由临时配置(例如,通过软件)或永久配置为执行相关操作的一个或多个处理器来执行。无论是临时配置还是永久配置,该处理器可以构成处理器实现的组件,其用于执行在此描述的一个或多个操作或功能。如在此所使用的,“处理器实现的组件”是指使用一个或多个处理器实现的硬件组件。类似地,在此描述的方法可以至少部分地由处理器实现,其中特定的一个处理器或多个处理器是硬件的示例。例如,方法的操作中的至少一些操作可以由一个或多个处理器或处理器实现的组件来执行。此外,一个或多个处理器还可以操作以支持“云计算”环境中的相关操作的性能或作为“软件即服务”(SaaS)。例如,操作中的至少一些操作可以由一组计算机(作为包括处理器的机器的示例)执行,这些操作可以经由网络(例如,因特网)并且经由一个或多个适当的接口(例如,应用程序接口(API))访问。操作中的某些操作的性能可以在处理器之间分配,不仅驻留在单个机器内,而且部署在多个机器上。在一些示例实施例中,处理器或处理器实现的组件可以位于单个地理位置(例如,在家庭环境、办公室环境或服务器群内)。在其它示例实施例中,处理器或处理器实现的组件可以分布在多个地理位置上。
在该上下文中的“处理器”是指根据控制信号(例如,“命令”、“操作码”、“机器代码”等”)操纵数据值以及产生应用于操作机器的对应输出信号的任何电路或虚拟电路(由在实际处理器上执行的逻辑模拟的物理电路)。例如,处理器可以是中央处理单元(CPU)、精简指令集计算(RISC)处理器、复杂指令集计算(CISC)处理器、图形处理单元(GPU)、数字信号处理器(DSP)、专用集成电路(ASIC)、射频集成电路(RFIC)或其任何组合。处理器可以进一步是具有可以同时执行指令的两个或更多个独立处理器(有时称为“核”)的多核处理器。
在该上下文中,“时间戳”是指识别特定事件何时发生的字符序列或编码信息,例如给出日期和一天中的时间,有时精确到秒的分数。
具体实施方式
跟踪系统经常由于环境条件、用户动作、相机和被跟踪的对象/场景之间的意外视觉中断等而遭受跟踪失败。传统上,此类跟踪失败将导致三维空间中对象的呈现中断。例如,对象可能消失或以其它方式不规律地表现,从而中断在三维空间内呈现的对象的幻觉。这破坏了整体三维体验的感知质量。
传统的跟踪系统依赖于单一方式(自然特征跟踪(NFT)、同时定位和地图创建(SLAM)、陀螺仪等),由于不准确的传感器数据、视觉标记的移动、丢失或遮挡,或者对场景的动态中断,每种方式在真实世界中都具有断点。此外,每种方法可能具有各自的能力限制。例如,陀螺仪跟踪系统只能跟踪具有三个自由度(3DoF)的项目。此外,由于每个单独系统的固有限制,单个跟踪系统的使用提供不准确或不稳定的位置估计。例如,NFT系统可能由于单独的视觉跟踪的不准确性而无法提供足够的俯仰(pitch)、偏航(yaw)或滚动(roll)估计,而陀螺仪跟踪系统提供不准确的平移(向上、向下、向左、向右)。
冗余跟踪系统(其包括多个冗余跟踪子系统,实现此类跟踪子系统之间的无缝转换)提供了通过将多个跟踪方式合并到单个跟踪系统中的该问题的解决方案。该系统能够通过基于由跟踪系统跟踪的跟踪标记的可用性在多个跟踪系统之间进行组合和转换,将具有六个自由度(6DoF)的跟踪对象和具有3DoF的跟踪对象组合。因此,当由任何一个跟踪系统跟踪的标记变得不可用时,冗余跟踪系统在6DoF的跟踪和3DoF的跟踪之间无缝切换,从而为用户提供不间断的体验。例如,在视觉跟踪系统(例如,NFT、SLAM)的情况下,通常分析以确定取向的跟踪标记可以采用来自陀螺仪跟踪系统的陀螺仪跟踪标记代替。因此,这可使得能够基于跟踪标记的可用性在6Dof的跟踪和3DoF的跟踪之间转换。
在一些示例实施例中,为了在6DoF和3DoF的跟踪之间转换,冗余跟踪系统在跟踪矩阵内收集并存储跟踪标记,该跟踪矩阵包括平移标记(例如,向上、向下、向左、向右)和旋转标记(例如,俯仰、偏航、滚动)。由此,由NFT系统收集的平移标记可以从跟踪矩阵中提取,并在未来由NFT系统收集的平移标记变得不准确或不可用时使用。同时,旋转标记继续由陀螺仪提供。以这种方式,当移动装置丢失跟踪标记时,当跟踪标记丢失时,在三维空间中呈现的跟踪对象将不会在帧处突然改变。随后,当目标跟踪对象重新出现在屏幕上时,获得新的平移T1,视图矩阵的平移部分将利用新的平移T1,并使用T1-T0作为视图矩阵的平移。
冗余跟踪系统被配置为在三维空间中的位置处渲染和显示对象。例如,冗余跟踪系统可以保持一组模板以生成要在三维空间中显示的对象。在接收来自一组模板中的模板的选择以及三维空间中的位置的选择时,冗余跟踪系统生成对象并将对象分配给三维空间内的位置。
因此,冗余跟踪系统可以由一个或多个跟踪系统在6DoF中跟踪对象相对于三维空间中的用户装置的位置。例如,冗余跟踪系统的一个或多个跟踪系统可以收集和分析一组跟踪标记(例如,滚动、俯仰、偏航,自然特征和在空间的呈现内检测的元素等),以便跟踪具有6DoF的对象相对于用户装置在三维空间中的位置。在此类实施例中,冗余跟踪系统可以基于跟踪标记的可用性在跟踪系统之间转换,以保持与6DoF一致的跟踪。
在检测所跟踪的一组标记中的一个或多个标记的中断时,使得6DoF的跟踪变得不可靠或不可能,为了防止显示中断,冗余跟踪系统转换为跟踪三维空间中的3DoF的对象。例如,冗余跟踪系统可以在一组跟踪系统中从第一跟踪系统(或一组跟踪系统中的第一组跟踪系统)转换到第二跟踪系统(或跟踪系统中的第二组跟踪系统),其中第二跟踪系统能够基于可用的跟踪标记在三维空间中跟踪具有3DoF的对象。
在一些示例实施例中,冗余跟踪系统的一组跟踪系统包括陀螺仪跟踪系统、NFT系统以及SLAM跟踪系统。该组跟踪系统中的每个跟踪系统可以分析跟踪标记,以便跟踪三维空间内的对象的位置。例如,为了跟踪具有6DoF的对象,冗余跟踪系统可能需要至少六个可用的跟踪标记。由于跟踪标记由于各种原因而变得被遮挡或不可用,冗余跟踪系统可以在一组跟踪系统中的可用跟踪系统之间转换,以便保持6DoF,或者如果需要则转换到3DoF。
图1是示出用于通过网络交换数据(例如,消息和相关联内容)的示例消息传递系统100的框图。消息传递系统100包括多个客户端装置102,每个客户端装置102管理包括消息传递客户端应用104的多个应用。每个消息传递客户端应用104经由网络106(例如,因特网)通信地耦接到消息传递客户端应用104的其它实例和消息传递服务器系统108。
因此,每个消息传递客户端应用104能够经由网络106与另一消息传递客户端应用104和消息传递服务器系统108通信和交换数据。在消息传递客户端应用104之间以及在消息传递客户端应用104和消息传递服务器系统108之间交换的数据包括函数(例如,调用函数的命令)以及有效载荷数据(例如,文本、音频、视频或其它多媒体数据)。
消息传递服务器系统108经由网络106向特定的消息传递客户端应用104提供服务器端功能。虽然消息传递系统100的某些功能在此被描述为由消息传递客户端应用104或由消息传递服务器系统108来执行,但是可以理解,消息传递客户端应用104或消息传递服务器系统108内的某些功能的位置是设计选择。例如,技术上优选的是在消息传递服务器系统108内初始部署某些技术和功能,但稍后将该技术和功能迁移到其中客户端装置102具有足够的处理能力的消息传递客户端应用104。
消息传递服务器系统108支持提供给消息传递客户端应用104的各种服务和操作。此类操作包括向消息传递客户端应用104发送数据,从消息传递客户端应用104接收数据、以及处理由消息传递客户端应用104生成的数据。在一些实施例中,该数据例如包括消息内容、客户端装置信息、地理位置信息、媒体注释和覆盖物、消息内容持久性条件、社交网络信息和直播事件信息。在其它实施例中,使用其它数据。消息传递系统100内的数据交换经由消息传递客户端应用104的用户界面(UI)可用的功能来调用和控制。
现在转到消息传递服务器系统108,应用程序接口(API)服务器110耦接到应用服务器112并向应用服务器112提供编程接口。应用服务器112被通信地耦接到数据库服务器118,该数据库服务器118便于访问数据库120,在该数据库120中存储与由应用服务器112处理的消息相关联的数据。
具体地处理应用程序接口(API)服务器110,该服务器在客户端装置102和应用服务器112之间接收和发送消息数据(例如,命令和消息有效载荷)。具体地,应用程序接口(API)服务器110提供可由消息传递客户端应用104调用或查询的一组接口(例如,例程和协议),以便调用应用服务器112的功能。应用程序接口(API)服务器110显现由应用服务器112支持的各种功能,各种功能包括账户注册、登录功能、经由应用服务器112从特定消息传递客户端应用104向另一个消息传递客户端应用104发送消息、从消息传递客户端应用104向消息传递服务器应用114发送媒体文件(例如,图像或视频)、以及用于可能由另一消息传递客户端应用104访问、设置媒体数据的集合(例如,故事)、取得客户端装置102的用户的朋友的列表、取得此类集合、取得消息和内容、对社交图添加和删除朋友、朋友在社交图内的位置、打开和应用事件(例如,与消息传递客户端应用104有关的)。
应用服务器112管理多个应用和子系统,包括消息传递服务器应用114、图像处理系统116、社交网络系统122以及冗余跟踪系统124。消息传递服务器应用114实现多种消息处理技术和功能,特别是与从多个消息传递客户端应用104的实例接收的消息中包括的内容(例如,文本和多媒体内容)的聚合和其它处理有关的技术和功能。如将进一步详细描述的,来自多个源的文本和媒体内容可以聚合成内容集合(例如,称为故事或图库)。然后,由消息传递服务器应用114使这些集合对消息传递客户端应用104可用。鉴于用于此类处理的硬件要求,还可以由消息传递服务器应用114在服务器端执行其它处理器和存储器密集的数据处理。
应用服务器112还包括图像处理系统116,图像处理系统116专用于通常关于在消息传递服务器应用114处的消息的有效载荷内接收的图像或视频来执行各种图像处理操作。
社交网络系统122支持各种社交网络功能服务,并使这些功能和服务可用于消息传递服务器应用114。为此,社交网络系统122维护和访问数据库120内的实体图304。由社交网络系统122支持的功能和服务的示例包括消息传递系统100中的与特定用户具有关系或特定用户“关注”的其它用户的标识,以及特定用户的其它实体和关注的标识。
冗余跟踪系统124提供在三维空间内生成、显示和跟踪相对于客户端装置102的位置处的对象的功能。冗余跟踪系统124包括一组跟踪子系统,该组跟踪子系统被配置为基于一组跟踪标记跟踪三维空间中的位置处的对象,以及基于跟踪标记的可用性在跟踪子系统之间以及6DoF和3DoF之间转换。
应用服务器112通信地耦接到数据库服务器118,数据库服务器118便于访问数据库120,在数据库120中存储与由消息传递服务器应用114处理的消息相关联的数据。
图2是示出根据示例实施例的关于消息传递系统100的进一步细节的框图。具体地,消息传递系统100被示出为包括消息传递客户端应用104和应用服务器112,其进而包含多个子系统,即短时定时器系统202、集合管理系统204和注释系统206。
短时定时器系统202负责实施对由消息传递客户端应用104和消息传递服务器应用114允许的内容的临时访问。为此,短时定时器系统202包括多个定时器,该定时器基于与消息相关联的持续时间和显示参数或消息集合(例如,SNAPCHAT故事),经由消息传递客户端应用104选择性地显示和启用对消息和相关联内容的访问。下面提供关于短时定时器系统202的操作的进一步细节。
集合管理系统204负责管理媒体集合(例如,文本、图像视频和音频数据的集合)。在一些示例中,内容的集合(例如,消息,包括图像、视频、文本和音频)可以被组织成“事件库”或“事件故事”。此类集合可以在指定的时间段(诸如内容所涉及的事件的持续时间)内可用。例如,与音乐会有关的内容可以在该音乐会的持续时间内作为“故事”提供。集合管理系统204还可以负责发布向消息传递客户端应用104的用户界面提供特定集合的存在的通知的图标。
集合管理系统204另外包括策展界面208,策展界面208允许集合管理器管理和策展特定的内容集合。例如,策展界面208使事件组织者能够策展与特定事件有关的内容集合(例如,删除不适当的内容或冗余消息)。另外,集合管理系统204采用机器视觉(或图像识别技术)和内容规则来自动策展内容集合。在某些实施例中,可以向用户支付报酬以将用户生成的内容包括在集合中。在此类情况下,策展界面208操作以便为了使用其内容而自动向此类用户付款。
注释系统206提供使得用户能够注释或以其它方式修改或编辑与消息相关联的媒体内容的各种功能。例如,注释系统206提供与由消息传递系统100处理的消息的媒体覆盖的生成和发布有关的功能。注释系统206基于客户端装置102的地理位置可操作地向消息传递客户端应用104提供媒体覆盖(例如,SNAPCHAT滤镜)。在另一示例中,注释系统206基于诸如客户端装置102的用户的社交网络信息的其它信息可操作地向消息传递客户端应用104提供媒体覆盖。媒体覆盖可包括音频和视觉内容和视觉效果。音频和视觉内容的示例包括图片、文本、徽标、动画和声音效果。视觉效果的示例包括颜色覆盖。可以将音频和视觉内容或视觉效果应用于客户端装置102处的媒体内容项(例如,图像或视频)。例如,媒体覆盖包括可以覆盖在由客户端装置102生成的照片/电子图像之上的文本。在另一示例中,媒体覆盖包括位置覆盖的标识(例如,威尼斯海滩)、直播事件的名称或商家覆盖的名称(例如,海滩咖啡馆)。在另一示例中,注释系统206使用客户端装置102的地理位置来识别包括客户端装置102的地理位置处的商家名称的媒体覆盖。媒体覆盖可以包括与商家相关联的其它标记。媒体覆盖可以存储在数据库120中并通过数据库服务器118访问。
在一个示例实施例中,注释系统206提供基于用户的发布平台,其使用户能够在地图上选择地理位置,并上传与所选地理位置相关联的内容。用户还可以指定应该向其他用户提供特定的媒体覆盖的环境。注释系统206生成包括所上传的内容的媒体覆盖,并将所上传的内容与所选地理位置相关联。
在另一示例实施例中,注释系统206提供基于商家的发布平台,其使商家能够经由投标过程选择与地理位置相关联的特定的媒体覆盖。例如,注释系统206将最高投标商家的媒体覆盖与对应的地理位置相关联达预定义的时间量。
图3是示出根据某些示例实施例的可存储在消息传递服务器系统108的数据库120中的数据300的示意图。虽然数据库120的内容被示出为包括多个表,但是可以理解,数据可以以其它类型的数据结构存储(例如,作为面向对象的数据库)。
数据库120包括存储在消息表314内的消息数据。实体表302存储实体数据,包括实体图304。维护实体表302内的记录的实体可以包括个人、公司实体、组织、对象、地点、事件等。无论何种类型,与消息传递服务器系统108存储数据相关的任何实体可以是公认的实体。每个实体被提供唯一标识符,以及实体类型标识符(未示出)。
实体图304另外存储关于实体之间的关系和关联的信息。仅用于示例,此类关系可以是社交关系、基于专业(例如,在共同的公司或组织工作)兴趣的关系、或基于活动的关系。
数据库120还将注释数据(例如,以滤镜的形式)存储在注释表312中。其中数据存储在注释表312内的滤镜与视频(其数据存储在视频表310中)和/或图像(其数据存储在图像表308中)相关联并应用于视频和/或图像。在一个示例中,滤镜是在向接收者用户呈现期间显示为覆盖在图像或视频上的覆盖物。滤镜可以是各种类型的,包括当发送用户编写消息时由消息传递客户端应用104向发送用户呈现的滤镜的图库中的用户选择的滤镜。其它类型的滤镜包括地理位置滤镜(也称为地理滤镜),其可以基于地理位置呈现给发送用户。例如,基于由客户端装置102的GPS单元确定的地理位置信息,消息客户端应用104可以在用户界面内呈现特定于邻域或特定位置的地理位置滤镜。另一类型的滤镜是数据滤镜,其可以基于由客户端装置102在消息创建过程期间收集的其它输入或信息,由消息传递客户端应用104选择性地呈现给发送用户。数据滤镜的示例包括特定位置处的当前温度、发送用户行进的当前速度、客户端装置102的电池寿命或当前时间。
可以存储在图像表308内的其它注释数据是所谓的“镜头”数据。“镜头”可以是可以添加到图像或视频的实时特效和声音。
如上所述,视频表310存储视频数据,视频数据与其中在消息表314内保持记录的消息相关联。类似地,图像表308存储与其中消息数据被存储在实体表302中的消息相关联的图像数据。实体表302可以将来自注释表312的各种注释与存储在图像表308中的各种图像和视频表310中的各种视频相关联。
故事表306存储关于消息和相关联图像、视频或音频数据的集合的数据,其被编译成集合(例如,SNAPCHAT故事或图库)。特定集合的创建可以由特定用户(例如,在实体表302中维护记录的每个用户)发起。用户可以以由该用户创建和发送/广播的内容集合的形式创建“个人故事”。为此,消息传递客户端应用104的用户界面可以包括用户可选择的图标,以使发送用户能够将特定内容添加到他或她的个人故事中。
集合还可以构成“现场故事”,其是来自多个用户的通过手动、自动或使用手动和自动技术的组合创建的内容的集合。例如,“现场故事”可以构成来自不同位置和事件的用户提交内容的策展流。例如,可以经由消息传递客户端应用104的用户界面向用户(该用户的客户端装置启用了位置服务并且其在特定时间处于公共位置事件)呈现选项,以针对特定的现场故事贡献内容。可以由消息传递客户端应用104基于他或她的位置向用户识别现场故事。最终结果是从共同体角度讲述的“现场故事”。
另一种类型的内容集合被称为“位置故事”,其使得其客户端装置102位于特定地理位置(例如,在学院或大学校园内)的用户能够对特定集合做出贡献。在一些实施例中,对位置故事的贡献可能需要验证终端用户属于特定组织或其它实体(例如,是大学校园中的学生)的第二程度的认证。
图4是示出根据一些实施例中的一些实施例的由消息传递客户端应用104生成用于与另一消息传递客户端应用104或消息传递服务器应用114进行通信的消息400的结构的示意图。特定消息400的内容用于填充存储在数据库120内的可由消息传递服务器应用114访问的消息表314。类似地,消息400的内容作为客户端装置102或应用服务器112的“传输中”或“飞行中”数据存储在存储器中。消息400被示出为包括以下组件:
·消息标识符402:识别消息400的唯一标识符。
·消息文本有效负载404:文本,其由用户经由客户端装置102的用户界面生成并且被包括在消息400中。
·消息图像有效载荷406:图像数据,其由客户端装置102的相机组件采集或从客户端装置102的存储器取得,并且被包括在消息400中。
·消息视频有效载荷408:视频数据,其由相机组件采集或从客户端装置102的存储器组件取得,并且被包括在消息400中。
·消息音频有效载荷410:音频数据,其由麦克风采集或从客户端装置102的存储器组件取得,并且被包括在消息400中。
·消息注释412:注释数据(例如,滤镜、贴纸或其它增强),其表示要应用于消息400的消息图像有效载荷406、消息视频有效载荷408或消息音频有效载荷410的注释。
·消息持续时间参数414:参数值,其以秒为单位指示消息内容(例如,消息图像有效载荷406、消息视频有效载荷408、消息音频有效载荷410)将经由消息传递客户端应用104呈现给用户或可由用户访问的时间量。
·消息地理位置参数416:与消息的内容有效载荷相关联的地理位置数据(例如,纬度和纵向坐标)。多个消息地理位置参数416值可以被包括在有效载荷中,这些参数值中的每一个参数值与内容中包括的内容项目相关联(例如,消息图像有效载荷406内的特定图像,或消息视频有效载荷408中的特定视频)。
·消息故事标识符418:识别与消息400的消息图像有效载荷406中的特定内容项相关联的一个或多个内容集合(例如,“故事”)的标识符值。例如,消息图像有效载荷406内的多个图像可以各自使用标识符值与多个内容集合相关联。
·消息标签420:每个消息400可以采用多个标签标记,每个标签指示消息有效载荷中包括的内容的主题。例如,在消息图像有效负载406中包括的特定图像描绘动物(例如,狮子)的情况下,标签值可以被包括在指示相关动物的消息标签420内。标签值可以基于用户输入手动生成,或者可以使用例如图像识别自动生成。
·消息发送者标识符422:指示生成消息400并且从其发送消息400的客户端装置102的用户的标识符(例如,消息传递系统标识符、电子邮件地址或装置标识符)。
·消息接收者标识符424:指示消息400被寻址到的客户端装置102的用户的标识符(例如,消息系统标识符、电子邮件地址或装置标识符)。
消息400的各种组件的内容(例如,值)可以是指向其中存储内容数据值的表中的位置的指示器。例如,消息图像有效载荷406中的图像值可以是指向图像表308内的位置(或其地址)的指示器。类似地,消息视频有效载荷408内的值可以指向存储在视频表310内的数据,存储在消息注释412内的值可以指向存储在注释表312中的数据,存储在消息故事标识符418内的值可以指向存储在故事表306中的数据,以及存储在消息发送者标识符422和消息接收者标识符424内的值可以指向存储在实体表302内的用户记录。
图5是示出访问限制过程500的示意图,该访问限制过程500访问内容(例如,短时消息502,以及相关联的多媒体数据有效载荷)或内容集合(例如,短时的消息故事504)可以是具有时间限制的(例如,短时的)。
短时消息502被示出与消息持续时间参数506相关联,消息持续时间参数506的值确定消息传递客户端应用104将短时消息502显示给短时消息502的接收用户的时间量。在一个实施例中,在消息传递客户端应用104是SNAPCHAT应用客户端的情况下,短时消息502可由接收用户查看至多10秒,这取决于发送用户使用消息持续时间参数506指定的时间量。
消息持续时间参数506和消息接收器标识符424被示为对消息定时器512的输入,该消息定时器512负责确定向由消息接收者标识符424识别的特定接收用户示出短时消息502的时间量。特别地,短时消息502将仅示出给相关接收用户达由消息持续时间参数506的值确定的时间段。消息定时器512被示出为更通用的短时定时器提供输出,该短时定时器系统202负责向接收用户显示内容(例如,短时消息502)的总体定时。
在图5中示出短时消息502要被包括在短时消息故事504中(例如,个人SNAPCHAT故事或事件故事)。短时消息故事504具有相关联的故事持续时间参数508,其值确定短时消息故事504被呈现并且可由消息传递系统100的用户访问的持续时间。故事持续时间参数508例如可以是音乐会的持续时间,其中短时消息故事504是与该音乐会有关的内容的集合。可替代地,当执行短时消息故事504的设置和创建时,用户(所有者用户或策展者用户)可以指定故事持续时间参数508的值。
另外,短时消息故事504内的每个短时消息502具有相关联的故事参与参数510,其值确定短时消息502将在短时消息故事504的上下文内可访问的持续时间。因此,在短时消息故事504本身根据故事持续时间参数508到期之前,特定短时消息故事504可“到期”并且变得在短时消息故事504的上下文中不可访问。故事持续时间参数508、故事参与参数510和消息接收者标识符424每个都向故事定时器514提供输入,故事定时器514首先在操作上确定短时消息故事504的特定短时消息502是否将被显示给特定接收用户,并且如果将被显示则显示多长时间。注意,作为消息接收者标识符424的结果,短时消息故事504还知道特定接收用户的标识。
因此,故事定时器514可操作地控制相关联的短时消息故事504的整体寿命,以及短时消息故事504中包括的个人短时消息502。在一个实施例中,短时消息故事504内的每个和全部短时消息502在故事持续时间参数508指定的时间段内保持可见和可访问。在另一实施例中,某个短时消息502可以在短时消息故事504的上下文内基于故事参与参数510而到期。注意,消息持续时间参数506还可以确定向接收用户显示特定的短时消息502的持续时间,即使在短时消息故事504的上下文内。因此,消息持续时间参数506确定向接收用户显示特定的短时消息502的持续时间,而不管接收用户是否查看短时消息故事504的上下文内部或外部的短时消息502。
短时定时器系统202还可以在操作上基于确定其已经超过相关联的故事参与参数510而从短时消息故事504中移除特定短时消息502。例如,当发送用户已经建立了从发布起24小时的故事参与参数510时,短时定时器系统202将在指定的24小时之后从短时消息故事504中移除相关的短时消息502。短时定时器系统202还操作以在短时消息故事504内的每个和所有短时消息502的故事参与参数510已经到期时,或者当短时消息故事504本身已经根据故事持续时间参数508到期时,移除短时消息故事504。
在某些使用情况中,特定短时消息故事504的创建者可以指定非限定的故事持续时间参数508。在该情况下,对于短时消息故事504内的最后剩余的短时消息502,故事参与参数510的到期将确定短时消息故事504本身何时到期。在该情况下,被添加到短时消息故事504的具有新故事参与参数510的新短时消息502有效地将短时消息故事504的寿命延长到等于故事参与参数510的值。
响应于短时定时器系统202确定短时消息故事504已经到期(例如,不可再访问),短时定时器系统202与消息传递系统100(以及,例如,特别是消息传递客户端应用104)通信,使得与相关短时消息故事504相关联的标记(例如,图标)不再被显示在消息传递客户端应用104的用户界面内。类似地,当短时定时器系统202确定特定短时消息502的消息持续时间参数506已经到期时,短时定时器系统202使消息传递客户端应用104不再显示与短时消息502相关联的标记(例如,图标或文本标识)。
图6是示出根据各种示例实施例的冗余跟踪系统124的组件的框图,其配置冗余跟踪系统124以在三维空间中相对于客户端装置102的位置渲染对象,跟踪三维空间中对象的位置,以及基于跟踪标记的可用性在跟踪子系统之间转换。冗余跟踪系统124被示出为包括渲染模块602、跟踪模块604、中断检测模块606和对象模板模块608。在一些示例实施例中,跟踪模块604可包括第一跟踪子系统604A、第二跟踪子系统604B和第三跟踪子系统604C,其中每个跟踪子系统基于一组跟踪标记跟踪三维空间内的对象的位置。冗余跟踪系统124的各种模块可以被配置为彼此通信(例如,经由总线、共享存储器或开关)。这些模块中的任何一个或多个模块可以使用一个或多个处理器610(例如,通过配置此类一个或多个处理器来执行针对该模块描述的功能)实现,并且因此可以包括一个或多个处理器610。
所描述的任何一个或多个模块可以仅使用硬件(例如,机器的一个或多个处理器610)实现,或者硬件和软件的组合来实现。例如,所描述的冗余跟踪系统124的任何模块可以在物理上包括被配置为执行在此所述的用于该模块的操作的一个或多个处理器610的布置(例如,机器的一个或多个处理器的子集)。作为另一示例,参与跟踪系统610的任何模块可包括软件、硬件或这两者,其配置一个或多个处理器610的布置(例如,在机器的一个或多个处理器中)以执行在此描述的用于该模块的操作。因此,参与跟踪系统610的不同模块可以包括和配置此类处理器610的不同布置或此类处理器610在不同时间点的单个布置。此外,冗余跟踪系统124的任何两个或更多个模块可以组合成单个模块,并且在此针对单个模块描述的功能可以细分到多个模块中。此外,根据各种示例实施例,在此描述的在单个机器、数据库或装置内实现的模块可以跨越多个机器、数据库或装置分布。
图7是描绘根据某些示例实施例的由冗余跟踪系统124在三维空间706的呈现704内渲染的对象702(例如,气球)的图700。如图7中可见,可以基于冗余跟踪系统124可用的跟踪标记在3DoF或6DoF中跟踪对象702。如上所述,由冗余跟踪系统124通过各种跟踪子系统(例如,第一跟踪子系统604A、第二跟踪子系统604B和第三跟踪子系统604C)收集的跟踪标记可以包括滚动、俯仰和偏航,以及在三维空间706的呈现704内检测的自然特征和元素。
当用户在三维空间706中移动客户端装置102时,冗余跟踪系统124收集跟踪标记以确定客户端装置102在三维空间706内的相对位置。基于相对位置,冗余跟踪系统124渲染并使对象702在呈现704内的适当位置处显示。
图8是示出根据某些示例实施例的冗余跟踪系统124在执行用于在三维空间中跟踪相对于客户端装置102的位置处的对象的方法800的操作的流程图。如图8中所示,根据一些示例实施例,一个或多个操作802、804、806和808可被执行作为方法800的一部分(例如,前体任务、子例程或部分)。
在操作802处,渲染模块602在三维空间中相对于客户端装置102的位置处渲染对象。对象可以包括由用户基于用户提供的参数生成的交互式内容。
在操作804处,跟踪模块604基于一组跟踪标记,经由第一跟踪子系统604A或多个跟踪子系统的组合(例如,第一跟踪子系统604A和第二跟踪子系统604B)跟踪三维空间中的位置处的6DoF中的对象。当在6DoF中跟踪对象时,在客户端装置102上查看对象的用户可以在任何方向中转动或移动而不中断对象的跟踪。例如,跟踪模块604可以基于NFT系统和陀螺仪跟踪系统的组合来跟踪对象的位置。
在操作806处,中断检测模块606从由跟踪子系统(例如,第一跟踪子系统604A)跟踪的跟踪标记中检测跟踪标记的中断。例如,第一跟踪子系统可包括NFT系统,该NFT系统被配置为依赖于包括环境的特征或者接近环境(例如,地面或地平线)内的注释对象的有源光源的跟踪标记。因此,NFT可以依赖于环境中的三个或更多个已知特征的位置来确定在三维空间中对象相对于客户端装置102的位置。如果由第一跟踪子系统604A跟踪的跟踪标记中的任何一个或多个变得被遮挡或不可用,则三维空间中的对象的跟踪可被中断。
在操作808处,响应于中断检测模块606检测一个或多个跟踪标记的中断,为了保持在三维空间中对象相对于客户端装置102的跟踪,跟踪模块604转换到一个或多个其它跟踪子系统(例如,第二跟踪子系统604B和/或第三跟踪子系统604C)。在这样做时,冗余跟踪系统124可以从6DoF转换到3DoF,其中3DoF测量俯仰、滚动和偏航,但是不测量平移。随着跟踪标记再次变得可用,冗余跟踪系统124因此可以从3DoF转换回6DoF。例如,当NFT系统变得不可用时,跟踪模块604可以在随后的3DoF体验中利用由NFT系统收集和跟踪的最后跟踪标记。
图9是示出根据某些示例实施例的冗余跟踪系统124在执行用于在三维空间中相对于客户端装置102的位置处生成和呈现对象的方法900的操作的流程图。如图9中所示,根据一些示例实施例,一个或多个操作902、904、906、908和910可被执行作为方法900的一部分(例如,前体任务、子例程或部分)。
如操作902中所示,对象模板模块608保持用于生成要在三维空间中显示的对象的一组模板。例如,模板可以包括配置对象的行为的一个或多个对象参数(例如,声音灵敏度、位置、移动等)。在操作904处,对象模板模块608接收对来自所保持的一组模板中的模板的选择。
在操作906处,渲染模块602接收对三维空间中的位置的选择,在该三维空间中渲染对象。例如,通过选择位置,渲染模块602可以识别由跟踪模块604在跟踪三维空间中的对象时使用的跟踪标记。在操作908处,渲染模块602基于所选的模板生成对象。
在操作910处,渲染模块602基于选择和所识别的跟踪标记将对象分配到三维空间中的位置。已经将对象分配到三维空间中相对于客户端装置102的位置,跟踪模块604可以由此基于跟踪标记在6DoF中跟踪对象。
图10是示出根据某些示例实施例的用于跟踪在三维空间中渲染的对象的方法的流程图。如图10中可见,世界场景/对象由冗余跟踪系统124的子系统收集。例如,冗余跟踪系统124可包括收集视觉跟踪数据(即,跟踪标记/平移标记)的用户装置的相机,以及收集惯性跟踪数据(即,跟踪标记/旋转标记)的惯性测量单元(例如,陀螺仪)。由此,由冗余跟踪系统124分析跟踪标记,以便确定三维空间中对象的位置,并且使得在客户端装置(例如,客户端装置102)的视口内基于三维空间中对象的位置来显示对象的呈现。
图11是示出根据某些示例实施例的混合跟踪矩阵的框图。如图10中一般解释的,冗余跟踪系统124的各种跟踪子系统收集跟踪标记。跟踪标记被输入到混合跟踪矩阵中,该混合跟踪矩阵包括旋转标记和平移标记,可由冗余跟踪系统124使用以确定三维空间中对象的位置。
例如,三维空间中对象的位置可以基于以下场景来确定。
场景I:在三维空间中跟踪对象
场景II:冗余跟踪系统124由于不准确或不可用的跟踪标记而丢失对象的跟踪
在场景I中,对象的跟踪开始于冗余跟踪系统124正在检测的对象。在该场景中,跟踪矩阵可以指示:
其中Rij是由惯性测量单元(即,陀螺仪跟踪系统)收集的旋转标记,并且Tx是由相机或其它视觉跟踪系统(例如,NFT系统)确定的平移标记。具体地,Ti是图11中所示的NFT矩阵的平移部分,并且Rij是图11中所示的陀螺仪视图矩阵。基于上面的混合矩阵确定在三维空间中对象的位置的确定。
当从场景I转换到场景II时,为了创建平滑过渡并防止信息丢失,当跟踪标记仍然可用时,系统继续使用最近收集的Ti值。当系统再次识别跟踪标记时,从场景II转换回场景I,并防止由于最后收集的Ti值与当前Ti值之间的差异而导致跟踪对象的突然“跳跃”,冗余跟踪系统124基于最后收集的Ti值和当前Ti之间的差值计算新的Ti
图12是示出根据某些示例实施例的用于在三维空间中生成、渲染和跟踪对象的方法1200的操作的流程图。如图12的操作1202处所示,三维空间被采集并在客户端装置102处被呈现。如图12中可见,三维空间可包括可由冗余跟踪系统124识别并跟踪作为跟踪标记的特征和元素。
在操作1204处,冗余跟踪系统124基于由冗余跟踪系统124的子系统收集的跟踪标记,在三维空间的呈现中的位置处生成并显示一个或多个对象。例如,对象可以包括包含图片和图像的动画气泡。
在操作1206处,当用户将客户端装置102移动到不同的视角时,冗余跟踪系统124基于客户端装置102与跟踪标记的相对位置来跟踪并显示对象。
在操作1208处,跟踪标记的一部分被中断(例如,被用户的手)。冗余跟踪系统124基于可用的剩余跟踪标记来保持对象的相对位置。例如,虽然自然特征跟踪可能由于中断而变得不可用,但是冗余跟踪系统124可以依赖于其它跟踪标记,诸如俯仰、偏航等。
在操作1210处,全部范围的跟踪标记再次可用,并且冗余跟踪系统124可以在空间的呈现中继续跟踪对象。
冗余跟踪系统124收集跟踪标记以跟踪具有6DoF的对象。当由冗余跟踪系统收集的跟踪标记被中断时,冗余跟踪系统转换为在3DoF中跟踪对象。在跟踪标记再次可用后,冗余跟踪系统124继续在6DoF中跟踪对象。
软件架构
图13是示出示例软件架构1306的框图,其可以与在此描述的各种硬件架构结合使用。图13是软件架构的非限制性示例,并且可以理解,许多其它架构可被实现以促进在此描述的功能。软件架构1306可以在诸如图14的机器1400的硬件上执行,机器1400包括处理器1404、存储器1414和I/O组件1418等。代表性硬件层1352被示出并且可表示例如图14的机器1400。代表性硬件层1352包括具有相关联可执行指令1304的处理单元1354。可执行指令1304表示软件架构1306的可执行指令,包括在此描述的方法、组件等的实施方式。硬件层1352还包括存储器和/或存储模块存储器/存储装置1356,其也具有可执行指令1304。硬件层1352还可以包括其它硬件1358。
在图13的示例性架构中,软件架构1306可以概念化为层的堆栈,其中每个层提供特定的功能。例如,软件架构1306可以包括诸如操作系统1302、库1320、应用1316和表示层1314的层。在操作上,层内的应用1316和/或其它组件可以通过软件堆栈调用应用编程接口(API)API调用1308,并且响应于API调用1308接收响应。所示的层本质上是代表性的,并且并非所有软件架构都具有所有层。例如,一些移动或专用操作系统可能不提供框架/中间件1318,而其它操作系统可提供此类层。其它软件架构可以包括附加的层或不同的层。
操作系统1302可以管理硬件资源并提供公共服务。操作系统1302可以包括例如内核1322、服务1324和驱动器1326。内核1322可以用作硬件和其它软件层之间的抽象层。例如,内核1322可以负责存储器管理、处理器管理(例如,调度)、组件管理、网络、安全设置等。服务1324可以为其它软件层提供其它公共服务。驱动器1326负责控制底层硬件或与底层硬件接口连接。例如,驱动器1326包括显示驱动器、相机驱动器、驱动器、闪存驱动器、串行通信驱动器(例如,通用串行总线(USB)驱动器)、Wi-Fi驱动器、音频驱动器、电源管理驱动器等等,取决于硬件配置。
库1320提供由应用1316和/或其它组件和/或层使用的公共基础结构。库1320提供允许其它软件组件以比与底层操作系统1302功能(例如,内核1322、服务1324和/或驱动器1326)直接接口连接更容易的方式执行任务的功能。库1320可以包括系统库1344(例如,C标准库),其可以提供诸如存储器分配功能、字符串操作功能、数学功能等的功能。另外,库1320可以包括API库1346,诸如媒体库(例如,用于支持各种媒体格式(诸如MPREG4、H.264、MP3、AAC、AMR、JPG、PNG)的呈现和操作的库)、图形库(例如,可用于在显示器上的图形内容中呈现2D和3D的OpenGL框架)、数据库库(例如,可提供各种关系数据库功能的SQLite)、web库(例如,可提供web浏览功能的WebKit)等。库1320还可以包括各种其它库1348,以向应用1316和其它软件组件/模块提供许多其它API。
框架/中间件1318(有时也称为中间件)提供可由应用1316和/或其它软件组件/模块使用的更高级别的公共基础结构。例如,框架/中间件1318可以提供各种图形用户界面(GUI)功能、高级资源管理、高级位置服务等。框架/中间件1318可以提供可以由应用1316和/或其它软件组件/模块使用的广范范围的其它API,其中的一些可以针对特定操作系统1302或平台。
应用1316包括内置应用1338和/或第三方应用1340。代表性内置应用1338的示例可包括但不限于联系人应用、浏览器应用、书籍阅读器应用、位置应用、媒体应用、消息传递应用和/或游戏应用。第三方应用1340可以包括由特定平台的供应商以外的实体使用ANDROIDTM或IOSTM软件开发工具包(SDK)开发的应用,并且可以是在诸如IOSTM、ANDROIDTMPhone的移动操作系统或其它移动操作系统上运行的移动软件。第三方应用1340可以调用由移动操作系统(诸如操作系统1302)提供的API调用1308以便于实现在此描述的功能。
应用1316可以使用内置操作系统功能(例如,内核1322、服务1324和/或驱动器1326)、库1320和框架/中间件1318来创建用户界面以与系统的用户交互。可替代地或另外地,在一些系统中,与用户的交互可以通过表示层(诸如表示层1314)发生。在这些系统中,应用/组件“逻辑”可以与和用户交互的应用/组件的方面分开。
图14是示出根据一些示例实施例的能够从机器可读介质(例如,机器可读存储介质)读取指令并执行在此所讨论的任何一种或多种方法的机器1400的组件的框图。具体地,图14示出了以计算机系统的示例形式的机器1400的图形表示,在该计算机系统内可以执行用于使机器1400执行在此所讨论的任何一种或多种方法的指令1410(例如,软件、程序、应用、小应用、应用软件或其它可执行代码)。这样,指令1410可用于实现在此描述的模块或组件。指令1410将通用的未编程的机器1400变换成被编程为以所描述的方式执行所描述和示出的功能的特定的机器1400。在替代实施例中,机器1400作为独立装置操作或者可以耦接(例如,联网)到其它机器。在联网部署中,机器1400可以在服务器-客户端网络环境中以服务器机器或客户端机器的能力操作,或者作为对等(或分布式)网络环境中的对等机器操作。机器1400可以包括但不限于服务器计算机、客户端计算机、个人计算机(PC)、平板计算机、膝上型计算机、上网本、机顶盒(STB)、个人数字助理(PDA)、娱乐媒体系统、蜂窝电话、智能电话、移动装置、可穿戴装置(例如,智能手表)、智能家居装置(例如,智能家电)、其它智能装置、网络装置、网络路由器、网络交换机、网络桥接器或能够顺序地或以其它方式执行指令1410的任何机器,指令1410指定机器1400要采取的动作。此外,尽管仅示出了单个机器1400,但是术语“机器”还应被视为包括单独或共同执行指令1410以执行在此所讨论的任何一种或多种方法的机器的集合。
机器1400可以包括处理器1304、存储器/存储装置1406和I/O组件1418,其可以被配置为例如经由总线1402彼此通信。存储器/存储装置1406可以包括存储器1414,诸如主存储器或其它存储器存储装置,以及存储单元1416,两者都可由处理器1404诸如经由总线1402访问。存储单元1416和存储器1414存储体现在此描述的任何一种或多种方法或功能的指令1410。在机器1400的执行期间,指令1410还可以完全或部分地驻留在存储器1414内、存储单元1416内、处理器1404中的至少一个处理器内(例如,处理器的高速缓冲存储器内)、或其任何合适的组合内。因此,存储器1414、存储单元1416和处理器1404的存储器是机器可读介质的示例。
I/O组件1418可以包括各种组件,以接收输入、提供输出、生成输出、发送信息、交换信息、采集测量等。在特定机器1400中包括的特定I/O组件1418将取决于机器的类型。例如,诸如移动电话的便携式机器可能包括触摸输入装置或其它此类输入机构,而无头服务器机器可能不包括此类触摸输入装置。可以理解,I/O组件1418可以包括图14中未示出的许多其它组件。I/O组件1418根据功能分组仅仅是为了简化以下讨论,并且分组决不是限制性的。在各种示例实施例中,I/O组件1418可以包括输出组件1426和输入组件1428。输出组件1426可以包括视觉组件(例如,显示器,诸如等离子显示面板(PDP)、发光二极管(LED)显示器、液晶显示器(LCD)、投影仪或阴极射线管(CRT))、听觉组件(例如扬声器)、触觉组件(例如,振动电机、电阻机构)、其它信号发生器等。输入组件1428可以包括字母数字输入组件(例如,键盘、配置为接收字母数字输入的触摸屏、光电键盘或其它字母数字输入组件)、基于点的输入组件(例如,鼠标、触摸板、轨迹球、操纵杆、运动传感器或其它指向仪器)、触知输入组件(例如,物理按钮、提供触摸或触摸手势的位置和/或力的触摸屏,或其它触知输入组件)、音频输入组件(例如,麦克风)等。
在进一步的示例实施例中,I/O组件1418可以包括生物度量组件1430、运动组件1434、环境的环境组件1436或定位组件1438、以及多种其它组件。例如,生物度量组件1430可包括检测表达(例如手部表达、面部表情、声音表达、身体姿势或眼睛跟踪)、测量生物信号(例如,血压、心率、体温、汗水或脑波)、识别人(例如,语音识别、视网膜识别、面部识别、指纹识别或基于脑电图的识别)等的组件。运动组件1434可包括加速度传感器组件(例如,加速度计)、重力传感器组件、旋转传感器组件(例如陀螺仪)等。环境组件1436可包括例如照明传感器组件(例如,光度计)、温度传感器组件(例如,检测环境温度的一个或多个温度计)、湿度传感器组件、压力传感器组件(例如,气压计)、声学传感器组件(例如,检测背景噪声的一个或多个麦克风)、接近度传感器组件(例如,检测附近物体的红外传感器)、气体传感器(例如,用于为了安全而检测危险气体浓度或测量大气中的污染物的气体检测传感器)或可能提供与周围物理环境相对应的指示、测量或信号的其它组件。定位组件1438可包括位置传感器组件(例如,全球定位系统(GPS)接收器组件)、高度传感器组件(例如,高度计或气压计,其可以检测可以从哪个高度导出的空气压力)、取向传感器组件(例如,磁力计)等。
通信可以使用各种技术来实现。I/O组件1418可以包括通信组件1440,其可操作以分别经由耦接器1422和耦接器1424将机器1400耦接到网络1432或装置1420。例如,通信组件1440可包括网络接口组件或与网络1432接口连接的另一合适装置。在另外的示例中,通信组件1440包括有线通信组件、无线通信组件、蜂窝通信组件、近场通信(NFC)组件、组件(例如,低功耗)、组件和经由其它模式提供通信的其它通信组件。装置1420可以是另一机器或各种外围装置(例如,经由通用串行总线(USB)耦接的外围装置)中的任何一个。
此外,通信组件1440可检测标识符或包括可操作以检测标识符的组件。例如,通信组件1440可包括射频识别(RFID)标签读取器组件、NFC智能标签检测组件、光学读取器组件(例如,光学传感器,其用于检测诸如通用产品代码(UPC)条形码的一维条形码、诸如快速响应(QR)代码、Aztec代码、数据矩阵、数字图形、最大码、PDF417、超码、UCC RSS-2D条形码和其它光学代码的多维条形码)或声学检测组件(例如,用于识别标记的音频信号的麦克风)。此外,可以经由可以指示特定位置的通信组件1440来导出各种信息,诸如经由因特网协议(IP)地理位置的位置、经由信号三角测量的位置、经由检测NFC信标信号的位置等。

Claims (20)

1.一种系统,包括:
存储器;以及
至少一个硬件处理器,其被耦接到所述存储器并包括冗余跟踪系统,所述冗余跟踪系统包括一组跟踪系统,所述一组跟踪系统使所述系统执行包括以下的操作:
在三维空间中的位置处渲染对象;
经由所述一组跟踪系统中的第一跟踪系统在所述三维空间中的所述位置处跟踪所述对象,所述第一跟踪系统基于一组标记来跟踪所述对象;
检测由所述第一跟踪系统跟踪的所述一组标记中的至少一个标记的中断;以及
响应于检测来自所述一组标记中的所述标记的所述中断,经由所述一组跟踪系统中的第二跟踪系统在所述三维空间中的所述位置处跟踪所述对象。
2.根据权利要求1所述的系统,其中,所述冗余跟踪系统的所述一组跟踪系统包括陀螺仪跟踪系统、自然特征跟踪系统以及同时定位和地图创建跟踪。
3.根据权利要求1所述的系统,其中,所述一组标记包括至少六个标记。
4.根据权利要求1所述的系统,其中,所述第一跟踪系统是自然特征跟踪系统。
5.根据权利要求1所述的系统,其中,所述第二跟踪系统是陀螺仪跟踪系统。
6.根据权利要求1所述的系统,其中,所述第一跟踪系统基于所述一组标记来跟踪俯仰、偏航、滚动和平移。
7.根据权利要求1所述的系统,其中,所述冗余跟踪系统使所述系统执行操作进一步包括:
保持一组模板以生成要在所述三维空间中显示的对象;
接收对所述一组模板中的模板的选择;
接收对所述三维空间中的所述位置的选择;
基于所选择的模板生成所述对象;以及
将所述对象分配到所述三维空间中的所述位置。
8.一种用于由冗余跟踪系统跟踪对象的方法,所述冗余跟踪系统包括一组跟踪系统,并且所述方法包括:
在三维空间中的位置处渲染所述对象;
经由所述一组跟踪系统中的第一跟踪系统在所述三维空间中的所述位置处跟踪所述对象,所述第一跟踪系统基于一组标记来跟踪所述对象;
检测由所述第一跟踪系统跟踪的所述一组标记中的至少一个标记的中断;以及
响应于检测来自所述一组标记中的所述标记的所述中断,经由所述一组跟踪系统中的第二跟踪系统在所述三维空间中的所述位置处跟踪所述对象。
9.根据权利要求8所述的方法,其中,所述冗余跟踪系统的所述一组跟踪系统包括陀螺仪跟踪系统、自然特征跟踪系统以及同时定位和地图创建跟踪。
10.根据权利要求8所述的方法,其中,所述一组标记包括至少六个标记。
11.根据权利要求8所述的方法,其中,所述第一跟踪系统是自然特征跟踪系统。
12.根据权利要求8所述的方法,其中,所述第二跟踪系统是陀螺仪跟踪系统。
13.根据权利要求8所述的方法,其中,所述第一跟踪系统基于所述一组标记来跟踪俯仰、偏航、滚动和平移。
14.根据权利要求8所述的方法,进一步包括:
保持一组模板以生成要在所述三维空间中显示的对象;
接收对所述一组模板中的模板的选择;
接收对所述三维空间中的所述位置的选择;
基于所选模板生成所述对象;以及
将所述对象分配到所述三维空间中的所述位置。
15.一种包括冗余跟踪系统的非暂态机器可读存储介质,所述冗余跟踪系统包括一组跟踪系统,并且包括指令,所述指令当由机器的一个或多个处理器执行时使所述机器执行包括以下的操作:
在三维空间中的位置处渲染所述对象;
经由所述一组跟踪系统中的第一跟踪系统在所述三维空间中的所述位置处跟踪所述对象,所述第一跟踪系统基于一组标记来跟踪所述对象;
检测由所述第一跟踪系统跟踪的所述一组标记中的至少一个标记的中断;以及
响应于检测来自所述一组标记中的所述标记的所述中断,经由所述一组跟踪系统中的第二跟踪系统在所述三维空间中的所述位置处跟踪所述对象。
16.根据权利要求15所述的非暂态机器可读存储介质,其中,所述冗余跟踪系统的所述一组跟踪系统包括陀螺仪跟踪系统、自然特征跟踪系统以及同时定位和地图创建跟踪。
17.根据权利要求15所述的非暂态机器可读存储介质,其中,所述一组标记包括至少六个标记。
18.根据权利要求15所述的非暂态机器可读存储介质,其中,所述第一跟踪系统是自然特征跟踪系统。
19.根据权利要求15所述的非暂态机器可读存储介质,其中,所述第二跟踪系统是陀螺仪跟踪系统。
20.根据权利要求15所述的非暂态机器可读存储介质,其中,所述第一跟踪系统基于所述一组标记来跟踪俯仰、偏航、滚动和平移。
CN201780065649.3A 2016-10-24 2017-10-24 冗余跟踪系统 Pending CN109863510A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201662412103P 2016-10-24 2016-10-24
US62/412,103 2016-10-24
PCT/US2017/058093 WO2018081125A1 (en) 2016-10-24 2017-10-24 Redundant tracking system

Publications (1)

Publication Number Publication Date
CN109863510A true CN109863510A (zh) 2019-06-07

Family

ID=61971002

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780065649.3A Pending CN109863510A (zh) 2016-10-24 2017-10-24 冗余跟踪系统

Country Status (5)

Country Link
US (5) US10504287B2 (zh)
EP (2) EP3529750A4 (zh)
KR (4) KR102317167B1 (zh)
CN (1) CN109863510A (zh)
WO (1) WO2018081125A1 (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10593116B2 (en) 2016-10-24 2020-03-17 Snap Inc. Augmented reality object manipulation
US10692285B2 (en) 2016-10-24 2020-06-23 Snap Inc. Redundant tracking system
US11195338B2 (en) 2017-01-09 2021-12-07 Snap Inc. Surface aware lens
US20220044479A1 (en) 2018-11-27 2022-02-10 Snap Inc. Textured mesh building
US11443491B2 (en) 2019-06-28 2022-09-13 Snap Inc. 3D object camera customization system
US11636657B2 (en) 2019-12-19 2023-04-25 Snap Inc. 3D captions with semantic graphical elements
US11715268B2 (en) 2018-08-30 2023-08-01 Snap Inc. Video clip object tracking
US11810220B2 (en) 2019-12-19 2023-11-07 Snap Inc. 3D captions with face tracking
US12020377B2 (en) 2023-05-09 2024-06-25 Snap Inc. Textured mesh building

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10600220B2 (en) 2016-08-01 2020-03-24 Facebook, Inc. Systems and methods for content interaction
US10866652B2 (en) * 2017-11-13 2020-12-15 Samsung Electronics Co., Ltd. System and method for distributed device tracking
EP3599544A1 (en) * 2018-07-25 2020-01-29 Nokia Technologies Oy An apparatus, method, computer program for enabling access to mediated reality content by a remote user
US10375009B1 (en) * 2018-10-11 2019-08-06 Richard Fishman Augmented reality based social network with time limited posting
US10824244B2 (en) 2018-11-19 2020-11-03 Facebook Technologies, Llc Systems and methods for transitioning between modes of tracking real-world objects for artificial reality interfaces
US11501499B2 (en) 2018-12-20 2022-11-15 Snap Inc. Virtual surface modification
US10810430B2 (en) 2018-12-27 2020-10-20 At&T Intellectual Property I, L.P. Augmented reality with markerless, context-aware object tracking
US10908771B2 (en) 2019-01-31 2021-02-02 Rypplzz, Inc. Systems and methods for augmented reality with precise tracking
US10768695B2 (en) * 2019-02-01 2020-09-08 Facebook Technologies, Llc Artificial reality system having adaptive degrees of freedom (DOF) selection
EP4022410A4 (en) * 2019-08-30 2023-09-27 Vrx Ventures Ltd. SYSTEMS AND METHODS FOR MAPPING PARAMETERS RELATING TO THE MOVEMENT OF MOVING OBJECTS AT A REMOTE
US11232646B2 (en) 2019-09-06 2022-01-25 Snap Inc. Context-based virtual object rendering
US10699124B1 (en) 2019-09-09 2020-06-30 Ar, Llc Augmented reality content selection and display based on printed objects having security features
US11961294B2 (en) 2019-09-09 2024-04-16 Techinvest Company Limited Augmented, virtual and mixed-reality content selection and display
US11196842B2 (en) 2019-09-26 2021-12-07 At&T Intellectual Property I, L.P. Collaborative and edge-enhanced augmented reality systems
KR102564849B1 (ko) * 2019-11-25 2023-08-09 한국전자통신연구원 복수의 사용자의 모션을 인식하는 시스템, 장치 및 방법
US11360733B2 (en) 2020-09-10 2022-06-14 Snap Inc. Colocated shared augmented reality without shared backend
JP7423781B2 (ja) 2021-08-18 2024-01-29 株式会社ハシラス Vrアミューズメントプログラムおよび装置
AU2022352933A1 (en) * 2021-09-25 2024-04-11 Apple Inc. Devices, methods, and graphical user interfaces for presenting virtual objects in virtual environments
US11949527B2 (en) 2022-04-25 2024-04-02 Snap Inc. Shared augmented reality experience in video chat

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102609954A (zh) * 2010-12-17 2012-07-25 微软公司 对人类目标跟踪的确认分析
US20130223673A1 (en) * 2011-08-30 2013-08-29 Digimarc Corporation Methods and arrangements for identifying objects
US20150103183A1 (en) * 2013-10-10 2015-04-16 Nvidia Corporation Method and apparatus for device orientation tracking using a visual gyroscope

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5978773A (en) 1995-06-20 1999-11-02 Neomedia Technologies, Inc. System and method for using an ordinary article of commerce to access a remote computer
DE59708043D1 (de) 1996-06-17 2002-10-02 Siemens Ag Kommunikationssystem und Verfahren zur Aufnahme und Verwaltung digitaler Bilder
US7173651B1 (en) 1998-06-02 2007-02-06 Knowles Andrew T Apparatus and system for prompt digital photo delivery and archival
US6505123B1 (en) 2000-07-24 2003-01-07 Weatherbank, Inc. Interactive weather advisory system
US20100098702A1 (en) 2008-09-16 2010-04-22 Longgui Wang Method of treating androgen independent prostate cancer
US7411493B2 (en) 2003-03-01 2008-08-12 User-Centric Ip, L.P. User-centric event reporting
US7535890B2 (en) 2003-12-18 2009-05-19 Ayalogic, Inc. System and method for instant VoIP messaging
US7321305B2 (en) * 2005-07-05 2008-01-22 Pinc Solutions Systems and methods for determining a location of an object
WO2007023494A2 (en) 2005-08-22 2007-03-01 Triplay Communications Ltd. Messaging system and method
US7782003B2 (en) * 2005-11-03 2010-08-24 Seagate Technology Llc Positional indicia misplacement compensation
EP2147397A4 (en) 2007-04-23 2013-08-21 Univ Ramot SYSTEM, METHOD AND COMPUTER READABLE MEDIUM FOR PROVIDING AN OUTPUT IMAGE
WO2011101784A1 (en) 2010-02-16 2011-08-25 Tigertext Inc. A messaging system apparatuses circuits and methods of operation thereof
US9031809B1 (en) * 2010-07-14 2015-05-12 Sri International Method and apparatus for generating three-dimensional pose using multi-modal sensor fusion
US8908911B2 (en) * 2011-03-04 2014-12-09 Qualcomm Incorporated Redundant detection filtering
WO2013017991A1 (en) * 2011-08-02 2013-02-07 Koninklijke Philips Electronics N.V. Remote control with first and second sensors
US9717461B2 (en) * 2013-01-24 2017-08-01 Kineticor, Inc. Systems, devices, and methods for tracking and compensating for patient motion during a medical imaging scan
US9782141B2 (en) * 2013-02-01 2017-10-10 Kineticor, Inc. Motion tracking system for real time adaptive motion compensation in biomedical imaging
US10262462B2 (en) * 2014-04-18 2019-04-16 Magic Leap, Inc. Systems and methods for augmented and virtual reality
US9329682B2 (en) * 2013-06-18 2016-05-03 Microsoft Technology Licensing, Llc Multi-step virtual object selection
CA2863124A1 (en) 2014-01-03 2015-07-03 Investel Capital Corporation User content sharing system and method with automated external content integration
US9442564B1 (en) * 2015-02-12 2016-09-13 Amazon Technologies, Inc. Motion sensor-based head location estimation and updating
WO2018081125A1 (en) 2016-10-24 2018-05-03 Snap Inc. Redundant tracking system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102609954A (zh) * 2010-12-17 2012-07-25 微软公司 对人类目标跟踪的确认分析
US20130223673A1 (en) * 2011-08-30 2013-08-29 Digimarc Corporation Methods and arrangements for identifying objects
US20150103183A1 (en) * 2013-10-10 2015-04-16 Nvidia Corporation Method and apparatus for device orientation tracking using a visual gyroscope

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10593116B2 (en) 2016-10-24 2020-03-17 Snap Inc. Augmented reality object manipulation
US10692285B2 (en) 2016-10-24 2020-06-23 Snap Inc. Redundant tracking system
US10803664B2 (en) 2016-10-24 2020-10-13 Snap Inc. Redundant tracking system
US11481978B2 (en) 2016-10-24 2022-10-25 Snap Inc. Redundant tracking system
US11580700B2 (en) 2016-10-24 2023-02-14 Snap Inc. Augmented reality object manipulation
US11195338B2 (en) 2017-01-09 2021-12-07 Snap Inc. Surface aware lens
US11704878B2 (en) 2017-01-09 2023-07-18 Snap Inc. Surface aware lens
US11715268B2 (en) 2018-08-30 2023-08-01 Snap Inc. Video clip object tracking
US11620791B2 (en) 2018-11-27 2023-04-04 Snap Inc. Rendering 3D captions within real-world environments
US20220044479A1 (en) 2018-11-27 2022-02-10 Snap Inc. Textured mesh building
US11836859B2 (en) 2018-11-27 2023-12-05 Snap Inc. Textured mesh building
US11443491B2 (en) 2019-06-28 2022-09-13 Snap Inc. 3D object camera customization system
US11823341B2 (en) 2019-06-28 2023-11-21 Snap Inc. 3D object camera customization system
US11636657B2 (en) 2019-12-19 2023-04-25 Snap Inc. 3D captions with semantic graphical elements
US11810220B2 (en) 2019-12-19 2023-11-07 Snap Inc. 3D captions with face tracking
US11908093B2 (en) 2019-12-19 2024-02-20 Snap Inc. 3D captions with semantic graphical elements
US12020377B2 (en) 2023-05-09 2024-06-25 Snap Inc. Textured mesh building

Also Published As

Publication number Publication date
US10692285B2 (en) 2020-06-23
US20180114364A1 (en) 2018-04-26
WO2018081125A1 (en) 2018-05-03
EP3529750A4 (en) 2019-10-16
KR20190075977A (ko) 2019-07-01
KR102643741B1 (ko) 2024-03-06
US20200250888A1 (en) 2020-08-06
US20230005223A1 (en) 2023-01-05
KR102317167B1 (ko) 2021-10-27
EP4296827A1 (en) 2023-12-27
EP3529750A1 (en) 2019-08-28
KR20210129273A (ko) 2021-10-27
US10803664B2 (en) 2020-10-13
KR20240033161A (ko) 2024-03-12
US20200020158A1 (en) 2020-01-16
KR20230014886A (ko) 2023-01-30
US20200410756A1 (en) 2020-12-31
KR102491191B1 (ko) 2023-01-20
US10504287B2 (en) 2019-12-10
US11481978B2 (en) 2022-10-25

Similar Documents

Publication Publication Date Title
CN109863510A (zh) 冗余跟踪系统
US11998833B2 (en) Generating collectible items based on location information
KR102606601B1 (ko) 표면 인식 렌즈
KR20220138398A (ko) 뼈대 추적을 사용한 증강 현실 세션 생성
CN110249359A (zh) 地理围栏评估系统
EP4309024A1 (en) Activating a hands-free mode of operating an electronic mirroring device
US20230360301A1 (en) Body animation sharing and remixing
CN113383369A (zh) 身体姿势估计
CN110383344A (zh) 虚拟视觉系统
CN109804411A (zh) 用于同时定位和映射的系统和方法
KR20230107844A (ko) 개인화된 아바타 실시간 모션 캡처
KR20230096043A (ko) 실시간 3d 신체 모션 캡처로부터의 사이드-바이-사이드 캐릭터 애니메이션
US11263459B2 (en) Shared augmented reality system
CN110300951A (zh) 媒体项附接系统
US11910269B2 (en) Augmented reality content items including user avatar to share location
CN110168476A (zh) 增强现实对象操纵
CN109791664A (zh) 通过过滤活动推导受众
KR20220114081A (ko) 마커 기반 공유된 증강 현실 세션 생성
KR20230031921A (ko) 콘텐츠를 발생시키기 위한 카메라 사용자 인터페이스
Kontogiannis et al. Cultural IoT framework focusing on interactive and personalized museum sightseeing
US12020384B2 (en) Integrating augmented reality experiences with other components
US20240020920A1 (en) Incremental scanning for custom landmarkers
US20230410440A1 (en) Integrating augmented reality experiences with other components
US11863596B2 (en) Shared augmented reality session creation
US20240177390A1 (en) Avatar dance animation system

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