IP Library › Granted Patent US 10,068,316
Granted Patent B1
US 10,068,316 · App. 15/449,527 · Granted Sep 4, 2018

Tilts as a measure of user engagement for multiview digital media representations

Inventors: Stefan Johannes Josef Holzer (San Mateo, CA); Radu Bogdan Rusu (San Francisco, CA); Stephen David Miller (Menlo Park, CA); Pantelis Kalogiros (San Francisco, CA); George Haber (Los Altos Hills, CA)
Assignee: Fyusion, Inc.
G06T3/60G06F3/0485G06F3/0487G06F3/04815G06F3/04842G06T11/001G06T15/205G06T19/20G06T2219/2016
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 10,068,316
App. No.
15/449,527
Granted
Sep 4, 2018
Kind
B1
Abstract

Various embodiments of the present invention relate generally to systems and methods for analyzing and manipulating images and video. According to particular embodiments, the spatial relationship between multiple images and video is analyzed together with location information data, for purposes of creating a representation referred to herein as a multi-view interactive digital media representation for presentation on a device. Once a multi-view interactive digital media representation is generated, a user can provide navigational inputs, such via tilting of the device, which alter the presentation state of the multi-view interactive digital media representation. The navigational inputs can be analyzed to determine metrics which indicate a user's interest in the multi-view interactive digital media representation.

Claims (65)

1. A method comprising:

outputting to a display a first 2-D image rendered from a 3-D model of a 3-D object in a 3-D model space wherein points defining the 3-D model are at first 3-D locations in the 3-D model space when the first 2-D image is rendered;

after the first 2-D image is output to the display, receiving a sequence of navigational inputs from at least one input source wherein the sequence of navigational inputs begins with a first navigational input;

selecting a second navigational input from among the sequence of navigational inputs;

based upon at least the second navigational input, determining second 3-D locations of the points defining the 3-D model in the 3-D model space;

based upon the second 3-D locations, outputting to the display a second 2-D image rendered from the 3-D model in the 3-D model space;

based upon one of i) a first change between the first navigational input and the second navigational input, ii) a second change between the first 3-D locations and the second 3-D locations or iii) combinations thereof, determining whether to increment a count;

incrementing the count;

after the count is incremented, determining the count exceeds a threshold value;

in response to the count exceeding the threshold value, unlocking a second 3-D model of a second 3-D object;

determining first 3-D locations of points defining the second 3-D model of the second 3-D object in the 3-D model space; and

based upon the first 3-D locations of the points defining the second 3-D model, outputting to the display a third 2-D image rendered from the second 3-D model in the 3-D model space.

2. The method of claim 1 , wherein the 3-D object appears to rotate about a first axis between from the first 2-D image to the second 2-D image.

3. The method of claim 1 , wherein in response to the navigational inputs, the 3-D object is constrained to rotate only about a first axis in the 3-D model space.

4. The method of claim 1 , wherein in response to the navigational inputs, the 3-D object is constrained to rotate only about one of a first axis or a second axis in the 3-D model space.

5. The method of claim 1 , where movement of the 3-D object is constrained in the 3-D model space.

6. The method of claim 1 , further comprising generating a sequence of 3-D locations of the points defining the 3-D model wherein, when the sequence of 3-D locations is rendered as a sequence of 2-D images and output to the display, the 3-D object appears to undergo a movement and storing the locations to a persistent memory.

7. The method of claim 6 , wherein the movement is a rotation.

8. The method of claim 6 , wherein, based upon the second navigational input, selecting the second 3-D locations from among the sequence of 3-D locations.

9. The method of claim 1 , further comprising

selecting a third navigational input from among the sequence of navigational inputs, the third navigational input received after the second navigational input;

based upon at least the third navigational input, determining third 3-D locations of the points defining the 3-D model in the 3-D model space;

based upon the third 3-D locations, outputting to the display a third 2-D image rendered from the 3-D model in the 3-D model space; and

based upon one of i) a third change between the second navigational input and the third navigational input, ii) a fourth change between the second 3-D locations and the third 3-D locations or iii) combinations thereof, determining whether to increment the count.

10. The method of claim 1 , further comprising

based upon the count, determining a texture to apply to the 3-D model wherein the texture is only applied after the count exceeds a threshold value, applying the texture to the 3-D model at the second locations and rendering the second 2-D image using the texture.

11. The method of claim 1 , wherein the second 3-D object is an interior portion of the 3-D object.

12. The method of claim 1 , further comprising

incrementing the count;

after the count is incremented, determining the count exceeds a threshold value;

in response to the count exceeding the threshold value, unlocking a movement of the 3-D model of the 3-D object, wherein the 3-D model is only allowed to move with the movement after the movement is unlocked;

based upon at least a third navigational input, determining third 3-D locations of the points defining the 3-D model in the 3-D model space wherein the third 3-D locations are associated with the unlocked movement;

based upon the third 3-D locations, outputting to the display a third 2-D image rendered from the 3-D model in the 3-D model space; and

based upon one of i) a third change between the second navigational input and the third navigational input, ii) a fourth change between the second 3-D locations and the third 3-D locations or iii) combinations thereof, determining whether to increment the count.

13. The method of claim 12 wherein the movement includes a rotation of the 3-D object about an axis.

14. The method of claim 1 , further comprising determining the count is less than a threshold value;

in response to the count not exceeding the threshold value, locking the 3-D model of the 3-D object so that it is no longer viewable on the display.

15. The method of claim 1 , further comprising: based upon the second navigational input, determining a change in a direction of movement of the 3-D object and based upon the change in the direction of the movement of the 3-D object, determining whether to increment the count.

16. The method of claim 15 , wherein the change is the direction of movement is a change in a direction of rotation of the 3-D object.

17. The method of claim 1 , wherein the at least one input source is an inertial measurement unit on a device and wherein the first change is a change in an angle of the device determined from inertial measurement unit sensor data.

18. The method of claim 1 , wherein the 3-D object rotates about an axis from the first 3-D locations to the second 3-D locations and wherein the second change is amount of rotation about the axis.

19. The method of claim 1 , wherein the 3-D model is a model of a person.

20. The method of claim 1 , wherein the at least one input source is an inertial measurement unit.

21. The method of claim 1 , wherein the sequence of navigational inputs is from a plurality of input sources.

22. A method comprising:

outputting to a display a first 2-D image rendered from a 3-D model of a 3-D object in a 3-D model space wherein points defining the 3-D model are at first 3-D locations in the 3-D model space when the first 2-D image is rendered;

after the first 2-D image is output to the display, receiving a sequence of navigational inputs from at least one input source wherein the sequence of navigational inputs begins with a first navigational input;

selecting a second navigational input from among the sequence of navigational inputs;

based upon at least the second navigational input, determining second 3-D locations of the points defining the 3-D model in the 3-D model space;

based upon the second 3-D locations, outputting to the display a second 2-D image rendered from the 3-D model in the 3-D model space;

based upon one of i) a first change between the first navigational input and the second navigational input, ii) a second change between the first 3-D locations and the second 3-D locations or iii) combinations thereof, determining whether to increment a count; and

based upon the count, determining a texture to apply to the 3-D model wherein the texture is only applied after the count exceeds a threshold value, applying the texture to the 3-D model at the second 3-D locations and rendering the second 2-D image using the texture.

23. A method comprising:

outputting to a display a first 2-D image rendered from a 3-D model of a 3-D object in a 3-D model space wherein points defining the 3-D model are at first 3-D locations in the 3-D model space when the first 2-D image is rendered;

after the first 2-D image is output to the display, receiving a sequence of navigational inputs from at least one input source wherein the sequence of navigational inputs begins with a first navigational input;

selecting a second navigational input from among the sequence of navigational inputs;

based upon at least the second navigational input, determining second 3-D locations of the points defining the 3-D model in the 3-D model space;

based upon the second 3-D locations, outputting to the display a second 2-D image rendered from the 3-D model in the 3-D model space;

based upon one of i) a first change between the first navigational input and the second navigational input, ii) a second change between the first 3-D locations and the second 3-D locations or iii) combinations thereof, determining whether to increment a count;

incrementing the count;

after the count is incremented, determining the count exceeds a threshold value;

in response to the count exceeding the threshold value, unlocking a movement of the 3-D model of the 3-D object, wherein the 3-D model is only allowed to move with the movement after the movement is unlocked;

based upon at least a third navigational input, determining third 3-D locations of the points defining the 3-D model in the 3-D model space wherein the third 3-D locations are associated with the unlocked movement;

based upon the third 3-D locations, outputting to the display a third 2-D image rendered from the 3-D model in the 3-D model space; and

based upon one of i) a third change between the second navigational input and the third navigational input, ii) a fourth change between the second 3-D locations and the third 3-D locations or iii) combinations thereof, determining whether to increment the count.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 1, 2017
From: HOLZER, STEFAN JOHANNES JOSEF; RUSU, RADU BOGDAN; MILLER, STEPHEN DAVID; KALOGIROS, PANTELIS; HABER, GEORGE
To: FYUSION, INC.
Reel/Frame 042564/0606 →
Cited By (31)
US 12,194,536 US 12,194,674 US 12,203,397 US 12,220,819 US 12,226,824 US 12,249,812 US 12,251,884 US 12,280,554 US 12,296,539 US 12,311,446 US 12,311,612 US 12,314,031 US 12,314,036 US 12,325,138 US 12,337,541 US 12,351,238 US 12,365,965 US 12,378,643 US 12,405,598 US 12,459,377 US 12,502,778 US 12,502,792 US 12,560,191 US 12,583,033 US 12,608,114 US 12,638,292 US 12,654,658 US 12,678,974 US 12,734,750 US 12,746,601 US 12,746,706