IP Library Granted Patent US 12,067,693
Granted Patent B2
US 12,067,693 · App. 17/518,828 · Granted Aug 20, 2024

Late warping to minimize latency of moving objects

Inventors: Bernhard Jung (Perchtoldsdorf, AT); Daniel Wagner (Vienna, AT)
Assignee: SNAP INC.
G06T3/18G06T13/40G06T13/80G06T15/205G06T2210/44
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,067,693
App. No.
17/518,828
Granted
Aug 20, 2024
Kind
B2
Abstract

A method for minimizing latency of moving objects in an augmented reality (AR) display device is described. In one aspect, the method includes determining an initial pose of a visual tracking device, identifying an initial location of an object in an image that is generated by an optical sensor of the visual tracking device, the image corresponding to the initial pose of the visual tracking device, rendering virtual content based on the initial pose and the initial location of the object, retrieving an updated pose of the visual tracking device, tracking an updated location of the object in an updated image that corresponds to the updated pose, and applying a time warp transformation to the rendered virtual content based on the updated pose and the updated location of the object to generate transformed virtual content.

Claims (76)

1. A method for minimizing latency of moving objects comprising:

determining an initial pose of a visual tracking device of an augmented reality device that comprises an optical sensor;

accessing an image generated by the optical sensor;

identifying an initial location of an object depicted in the image, the image corresponding to the initial pose of the visual tracking device, the object comprising a first physical object that is moving and a second physical object that is stationary;

rendering a first layer of virtual content based on the initial pose of the visual tracking device and a first initial location of the first physical object;

rendering a second layer of virtual content based on the initial pose of the visual tracking device and a second initial location of the second physical object;

retrieving an updated pose of the visual tracking device;

detecting and tracking, using computer vision, an updated location of the first physical object in an updated image that corresponds to the updated pose; and

applying a time warp transformation to the rendered virtual content based on the updated pose and the updated location of the object to generate transformed virtual content by applying a first time warp transformation to the first layer based on the updated pose and the updated location of the first physical object, applying a second time warp transformation to the second layer based only on the updated pose, and combining the first layer and the second layer in a single rendered frame.

2. The method of claim 1 , further comprising:

generating, using an AR application of the visual tracking device, the virtual content;

rendering the virtual content using a rendering engine of a graphical processing unit at the virtual tracking device; and

displaying the transformed virtual content in a transparent display of the visual tracking device.

3. The method of claim 1 , wherein the object comprises a combination of a face, and a body part.

4. The method of claim 1 , wherein the object comprises an animated virtual object,

wherein identifying the initial location of the object in the image instead comprises identifying an initial location of the animated virtual object based on an animation behavior of the animated virtual object,

wherein retrieving the updated location of the object further comprises tracking an updated location of the animated virtual object based on the animation behavior of the animated virtual object and the updated pose.

5. The method of claim 4 , wherein the animation behavior describes a predefined motion path of the virtual object.

6. The method of claim 1 , wherein retrieving the updated pose of the visual tracking device is based on inertial sensor data of the visual tracking device.

7. The method of claim 6 , wherein the inertial sensor data comprises angular velocity data of the visual tracking device between the initial pose and the updated pose.

8. The method of claim 1 , wherein the object comprises a first virtual object and a second virtual object,

wherein identifying the initial location of the object further comprises:

identifying an initial location of the first virtual object; and

identifying an initial location of the second virtual object,

wherein rendering the virtual content further comprises:

rendering the first layer of virtual content based on the pose and the initial location of the first virtual object; and

rendering the second layer of virtual content based on the pose and the initial location of the second virtual object,

wherein retrieving the updated location of the object further comprises:

identifying an updated location of the first virtual object based on the updated pose and a first animation behavior of the first virtual object; and

identifying an updated location of the second virtual object based on the updated pose and a second animation behavior of the second virtual object.

9. The method of claim 8 , wherein retrieving the updated location of the first virtual object further comprises accessing a first animation configuration setting of the first virtual object, wherein retrieving the updated location of the second virtual object further comprises accessing a second animation configuration setting of the second virtual object.

10. The method of claim 1 , further comprising:

displaying the single rendered frame in a see-through display of the visual tracking device.

11. A computing apparatus comprising:

a processor; and

a memory storing instructions that, when executed by the processor, configure the apparatus to perform operations comprising:

determining an initial pose of a visual tracking device of an augmented reality device that comprises an optical sensor;

accessing an image generated by the optical sensor;

identifying an initial location of an object depicted in the image, the image corresponding to the initial pose of the visual tracking device, the object comprising a first physical object that is moving and a second physical object that is stationary;

rendering a first layer of virtual content based on the initial pose of the visual tracking device and a first initial location of the first physical object;

rendering a second layer of virtual content based on the initial pose of the visual tracking device and a second initial location of the second physical object;

retrieving an updated pose of the visual tracking device;

detecting and tracking, using computer vision, an updated location of the first physical object in an updated image that corresponds to the updated pose; and

applying a time warp transformation to the rendered virtual content based on the updated pose and the updated location of the object to generate transformed virtual content by applying a first time warp transformation to the first layer based on the updated pose and the updated location of the first physical object, applying a second time warp transformation to the second layer based only on the updated pose, and combining the first layer and the second layer in a single rendered frame.

12. The computing apparatus of claim 11 , wherein the instructions further configure the apparatus to:

generate, using an AR application of the visual tracking device, the virtual content;

render the virtual content using a rendering engine of a graphical processing unit at the virtual tracking device; and

display the transformed virtual content in a transparent display of the visual tracking device.

13. The computing apparatus of claim 11 , wherein the object comprises a combination of a face, and a body part.

14. The computing apparatus of claim 11 , wherein the object comprises an animated virtual object,

wherein identifying the initial location of the object in the image instead comprises identify an initial location of the animated virtual object based on an animation behavior of the animated virtual object,

wherein retrieving the updated location of the object further comprises track an updated location of the animated virtual object based on the animation behavior of the animated virtual object and the updated pose.

15. The computing apparatus of claim 14 , wherein the animation behavior describes a predefined motion path of the virtual object.

16. The computing apparatus of claim 11 , wherein retrieving the updated pose of the visual tracking device is based on inertial sensor data of the visual tracking device.

17. The computing apparatus of claim 16 , wherein the inertial sensor data comprises angular velocity data of the visual tracking device between the initial pose and the updated pose.

18. The computing apparatus of claim 11 , wherein the object comprises a first virtual object and a second virtual object,

wherein identifying the initial location of the object further comprises:

identify an initial location of the first virtual object; and

identify an initial location of the second virtual object,

wherein rendering the virtual content further comprises:

render the first layer of virtual content based on the pose and the initial location of the first virtual object; and

render the second layer of virtual content based on the pose and the initial location of the second virtual object,

wherein retrieving the updated location of the object further comprises:

identify an updated location of the first virtual object based on the updated pose and a first animation behavior of the first virtual object; and

identify an updated location of the second virtual object based on the updated pose and a second animation behavior of the second virtual object.

19. The computing apparatus of claim 18 , wherein applying the time warp transformation to the rendered virtual content further comprises:

display the single rendered frame in a see-through display of the visual tracking device.

20. A non-transitory computer-readable storage medium, the computer-readable storage medium including instructions that when executed by a computer, cause the computer to:

determine an initial pose of a visual tracking device of an augmented reality device that comprises an optical sensor;

access an image generated by the optical sensor;

identify an initial location of an object depicted in the image, the image corresponding to the initial pose of the visual tracking device, the object comprising a first physical object that is moving and a second physical object that is stationary;

render a first layer of virtual content based on the initial pose of the visual tracking device and a first initial location of the first physical object;

render a second layer of virtual content based on the initial pose of the visual tracking device and a second initial location of the second physical object;

retrieve an updated pose of the visual tracking device;

detect and track, using computer vision, an updated location of the first physical object in an updated image that corresponds to the updated pose; and

apply a time warp transformation to the rendered virtual content based on the updated pose and the updated location of the object to generate transformed virtual content by applying a first time warp transformation to the first layer based on the updated pose and the updated location of the first physical object, applying a second time warp transformation to the second layer based only on the updated pose, and combining the first layer and the second layer in a single rendered frame.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 18, 2023
From: JUNG, BERNHARD; WAGNER, DANIEL
To: SNAP INC.
Reel/Frame 064934/0700 →
Continuity (2)
Provisional Application 63190119 · May 18, 2021
Related Publication 20220375026A1 · Nov 24, 2022
Cited By (1)
US 12,675,840