IP Library Granted Patent US 9,566,517
Granted Patent B2
US 9,566,517 · App. 14/579,535 · Granted Feb 14, 2017

System and method for visualizing synthetic objects within real-world video clip

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 9,566,517
App. No.
14/579,535
Granted
Feb 14, 2017
Kind
B2
Abstract

Embodiments of the present invention provide a system and a method for visualizing synthetic objects within a real-world video clip. The embodiments allow interactive, synthetic objects or characters to appear as if they are “embedded” inside or form part of a video clip. These objects move independently of the environment within the video clip and are controlled by a user. In one embodiment the video frames are set as textures in the furthermost layer in a 3D environment viewer or 3D “engine”. In another embodiment separate layers of video frames are superimposed with the synthetic objects on an output screen and synchronizing the movements and the field of view settings to give the perception that only one camera is used.

Claims (39)

1. A method of visualizing synthetic objects within a real-world video clip, comprising:

extracting information from at least a portion of a real-world video clip that captures movement through a real-world environment, wherein the extracted information comprises camera movement coordinates information, path coordinates information, and point cloud coordinates information, including a depth of objects shown in the real-world video clip, for frames of the real-world video clip and translating the information into three dimensional (3D) coordinates;

rendering a plurality of separate, synched layers as a 3D environment, the plurality of layers comprising at least one transparent occlusion layer rendered as a top layer that is overlaid on a furthermost background layer, wherein the transparent occlusion layer is used as a guide for any 3D objects to appear to move within the same environment as objects depicted in the real-world video and to hide any object that may appear behind a transparent object;

rendering the real-world video clip the background layer of the 3D environment;

generating 3D space locations of objects depicted in the real-world video clip based on the point cloud information;

generating the occlusion layer based on the 3D space locations of the objects depicted within the real-world video clip and adding the occlusion layer to the 3D environment, the occlusion layer comprising at least one transparent 3D object that replicates an object depicted within the real-world video clip wherein the at least one transparent 3D object is static or dynamic based on the characteristics, including movement and rotation, of the object it replicates within the real-world video clip;

generating at least one controllable virtual 3D object within the 3D environment and using the occlusion layer to guide the movement of the at least one controllable virtual 3D object within the 3D environment;

moving the at least one controllable virtual 3D object within the 3D environment based on the 3D space locations such that the at least one controllable virtual 3D object appears to move within the same environment as the objects depicted in the real-world video clip, and the movement of the at least one controllable virtual 3D object is independent from the movement of the real-world video clip; and

rendering the 3D environment based upon 3D space locations of the at least one controllable virtual 3D object within the 3D environment and the 3D space locations of the at least one transparent 3D object in the 3D transparent scene using the 3D game engine so that portions of at least one controllable virtual 3D object that are located behind a transparent 3D object, based on the 3D space locations, are occluded by the furthermost background layer.

2. The method of claim 1 , wherein moving the at least one controllable virtual 3D object within the 3D environment is partly based on information received from one or more devices located at different networked locations.

3. The method of claim 1 further comprising obtaining and displaying a browser layer overlaid on the background layer of the video clip, the browser layer used to render least one of a menu control, image, or video file.

4. The method of claim 1 further comprising rendering a different real-world video clip within the background layer when a user changes a direction of a path in the real-world video.

5. The method of claim 1 , wherein movement of the at least one controllable virtual 3D object within the 3D environment is guided by a path obtained from the real-world video.

6. The method of claim 1 further comprising providing one or more functionalities selected from the group consisting of point systems, characters, and sound effects for rendering within the 3D environment.

7. The method of claim 1 further comprising overlaying a map that provides a real-world location of the real-world video being rendered within the background layer and providing a location of the at least one controllable virtual 3D object within the map in real-time.

8. The method of claim 1 , wherein the at least one controllable virtual 3D object is an avatar of a user, wherein the avatar moves based on activities of the user.

9. The method of claim 1 wherein the speed input causes the 3D game engine to select frames from the real-world video clip at a rate corresponding to a speed of movement through the scene captured by the real-world video clip.

10. The method of claim 9 further comprising maintaining a pitch of the sound in the real-world video clip when adjusting the rate at which frames are selected from the real-world video clip in response to a change in the speed input.

11. The method of claim 1 further comprising moving a controllable virtual 3D object to avoid hitting a transparent 3D object based on the 3D space locations.

12. A system for of visualizing synthetic objects within a real-world video clip, comprising:

memory; and

one or more processors configured by processor executable instructions stored in the memory to render the video clip, the one or more processors being further configured by the processor executable instructions to:

extract information from at least a portion of a real-world video clip that captures movement through a real-world environment, wherein the extracted information comprises camera movement coordinates information, path coordinates information, and point cloud coordinates information, including a depth of objects shown in the real-world video clip, for frames of the real-world video clip and translating the information into three dimensional (3D) coordinates;

render a plurality of separate, synched layers as a 3D environment, the plurality of layers comprising at least one transparent occlusion layer rendered as a top layer that is overlain on a furthermost background layer, wherein the transparent occlusion layer is used as a guide for any 3D objects to appear to move within the same environment as objects depicted and to hide any object that may appear behind a transparent object:

render the real-world video clip as the background layer of the 3D environment;

generate 3D space locations of objects depicted in the real-world video clip based on the point cloud information;

generate the occlusion layer based on the 3D space locations of the objects depicted within the real-world video clip and adding the occlusion layer to the 3D environment, the occlusion layer comprising at least one transparent 3D object that replicates an object depicted within the real-world video clip, wherein the at least one transparent 3D object is static or dynamic based on the characteristics, including movement and rotation, of the object it replicates within the real-world video clip;

move the at least one controllable virtual 3D object within the 3D environment based on the 3D space locations such that the at least one controllable virtual 3D object appears to move within the same environment as the objects depicted in the real-world video clip, and the movement of the at least one controllable virtual 3D object is independent from the movement of the real-world video clip; and

render the 3D environment based upon 3D space locations of the at least one controllable virtual 3D object within the 3D environment and the 3D space locations of the at least one transparent 3D object in the 3D transparent scene using the 3D game engine so that portions of at least one controllable virtual 3D object that are located behind a transparent 3D object, based on the 3D space locations, are occluded by the furthermost background layer.

13. The system of claim 12 , wherein moving the at least one controllable virtual 3D object within the 3D environment is partly based on information received from one or more devices located at different networked locations.

14. The system of claim 12 , wherein the instructions when executed further configure the one or more processors to obtain and display an HTML browser layer overlaid on the background layer of the video clip, the HTML browser layer used to render least one of a menu control, image, or video file.

15. The system of claim 12 , wherein the instructions when executed further configure the one or more processors to render a different real-world video clip within the background layer when a user changes a direction of a path in the real-world video.

16. The system of claim 12 , wherein movement of the at least one controllable virtual 3D object within the 3D environment is guided by a path obtained from the real-world video.

17. The system of claim 12 , wherein the instructions when executed further configure the one or more processors to provide one or more functionalities selected from the group consisting of point systems, characters, and sound effects for rendering within the 3D environment.

18. The system of claim 12 , wherein the instructions when executed further configure the one or more processors to overlay a map that provides a real-world location of the real-world video being rendered within the background layer and provide a location of the at least one controllable virtual 3D object within the map in real-time.

19. The system of claim 12 , wherein the at least one controllable virtual 3D object is an avatar of a user, wherein the avatar moves based on activities of the user.

20. The system of claim 12 , wherein the speed input causes the 3D game engine to select frames from the real-world video clip at a rate corresponding to a speed of movement through the scene captured by the real-world video clip.

21. The system of claim 20 , wherein the instructions when executed further configure the one or more processors to maintain a pitch of the sound in the real-world video clip when adjusting the rate at which frames are selected from the real-world video clip in response to a change in the speed input.

22. The system of claim 12 , wherein the instructions when executed further configure the one or more processors to move a controllable virtual 3D object to avoid hitting a transparent 3D object based on 3D space locations.

Assignments (16)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 22, 2024
From: BOWFLEX INC.
To: JOHNSON HEALTH TECH RETAIL, INC.
Reel/Frame 067807/0675 →
RELEASE OF SECURITY INTEREST Recorded Apr 25, 2024
From: CRYSTAL FINANCIAL LLC (D/B/A SLR CREDIT SOLUTIONS)
To: BOWFLEX INC.
Reel/Frame 067239/0121 →
RELEASE OF SECURITY INTEREST Recorded Apr 25, 2024
From: CRYSTAL FINANCIAL LLC (D/B/A SLR CREDIT SOLUTIONS)
To: BOWFLEX INC.
Reel/Frame 067239/0001 →
RELEASE OF SECURITY INTEREST Recorded Mar 4, 2024
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: BOWFLEX INC. (F/K/A NAUTILUS, INC.)
Reel/Frame 066760/0631 →
RELEASE OF SECURITY INTEREST Recorded Mar 4, 2024
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: BOWFLEX INC. (F/K/A NAUTILUS, INC.)
Reel/Frame 066725/0904 →
RELEASE OF SECURITY INTEREST Recorded Mar 4, 2024
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: BOWFLEX INC. (F/K/A NAUTILUS, INC.)
Reel/Frame 066726/0001 →
PATENT SECURITY AGREEMENT Recorded Jan 26, 2024
From: BOWFLEX INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 066374/0281 →
SECURITY INTEREST Recorded Jan 25, 2024
From: BOWFLEX INC.
To: CRYSTAL FINANCIAL LLC D/B/A SLR CREDIT SOLUTIONS
Reel/Frame 066369/0555 →
CHANGE OF NAME Recorded Dec 11, 2023
From: NAUTILUS, INC.
To: BOWFLEX INC.
Reel/Frame 065865/0886 →
SECURITY INTEREST Recorded Dec 1, 2022
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: NAUTILUS, INC.
Reel/Frame 062038/0027 →
SECURITY INTEREST Recorded Nov 30, 2022
From: NAUTILUS, INC.
To: CRYSTAL FINANCIAL LLC D/B/A SLR CREDIT SOLUTIONS
Reel/Frame 062029/0373 →
RELEASE OF SECURITY INTEREST Recorded Jan 31, 2020
From: JPMORGAN CHASE BANK, N.A.
To: NAUTILUS, INC.; OF HOLDINGS, INC.; OCTANE FITNESS, LLC
Reel/Frame 051765/0492 →
SECURITY INTEREST Recorded Jan 31, 2020
From: NAUTILUS, INC.; OCTANE FITNESS, LLC
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 051763/0734 →
SECURITY INTEREST Recorded Apr 1, 2019
From: NAUTILUS, INC.; OF HOLDINGS, INC.; OCTANE FITNESS, LLC
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 048751/0963 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 14, 2019
From: PAOFIT HOLDINGS PTE. LTD.; PAOFIT TECHNOLOGY PTE. LTD.; PAOFIT GROUP LIMITED
To: NAUTILUS, INC.
Reel/Frame 047983/0764 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 12, 2015
From: HARDY, MARC SCOTT; FRANK, ANDREI RICHARD
To: PAOFIT HOLDINGS PTE LTD.
Reel/Frame 036311/0218 →