Virtual world generation engine
First Claim
1. A system, comprising:
- one or more computing devices comprising one or more respective processors and memory and configured to implement a video system comprising;
an image collection module implemented via the one or more respective processors and memory, configured to obtain digital images from one or more sources, each image capturing a portion of a real-world scene;
a virtual world generation engine implemented via the one or more respective processors and memory, configured to;
identify two or more of the images that include overlapping portions of the scene;
combine the identified images according to one or more digital image stitching techniques to generate a composite image representing a view of the scene; and
generate a model of the scene in a virtual world according to the composite image;
one or more video processing modules implemented via the one or more respective processors and memory, configured to;
stream a video including the scene to a client device;
receive user interactions from the client device exploring the scene in the video indicating a change in a viewpoint of the scene; and
in response to the user interactions, render and stream additional video including the scene from the changed viewpoint and the model;
receive additional user interactions from the client device to manipulate the scene in the video;
determine, based at least in part on the additional user interactions, that a change in the scene is required as a result of the manipulation; and
signal the virtual world generation engine to generate a model of the scene that includes the change in the scene that is required as a result of the manipulation.
1 Assignment
0 Petitions
Accused Products
Abstract
A virtual world generation engine and methods for generating virtual worlds from images collected from various sources, including crowdsourced images. A virtual world generation engine may obtain images (e.g., digital photographs, digital video frames, etc.) related to a particular real-world scene, combine the images using image processing techniques such as image stitching techniques to generate composite images representing a view of the scene, and generate models from the composite images. The models may be used in rendering video content representing virtual worlds generated from the collected images of real-world scenes; the video content may be streamed to client device(s). Obtaining the images, generating models, rendering video content from the models, and streaming the video content may be performed in response to user interactions with video content on the client device(s) to allow interactive exploration of the virtual worlds in real-time or near-real time.
-
Citations
23 Claims
-
1. A system, comprising:
one or more computing devices comprising one or more respective processors and memory and configured to implement a video system comprising; an image collection module implemented via the one or more respective processors and memory, configured to obtain digital images from one or more sources, each image capturing a portion of a real-world scene; a virtual world generation engine implemented via the one or more respective processors and memory, configured to; identify two or more of the images that include overlapping portions of the scene; combine the identified images according to one or more digital image stitching techniques to generate a composite image representing a view of the scene; and generate a model of the scene in a virtual world according to the composite image; one or more video processing modules implemented via the one or more respective processors and memory, configured to; stream a video including the scene to a client device; receive user interactions from the client device exploring the scene in the video indicating a change in a viewpoint of the scene; and in response to the user interactions, render and stream additional video including the scene from the changed viewpoint and the model; receive additional user interactions from the client device to manipulate the scene in the video; determine, based at least in part on the additional user interactions, that a change in the scene is required as a result of the manipulation; and signal the virtual world generation engine to generate a model of the scene that includes the change in the scene that is required as a result of the manipulation. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
10. A method, comprising:
-
performing, by a virtual world generation engine implemented on one or more computing devices; obtaining two or more images that include overlapping portions of a real-world scene; combining at least two of the obtained images according to one or more digital image stitching techniques to generate a composite image representing a view of the scene; generating or updating a model of the scene in a virtual world according to the composite image; and providing the model of the scene to a video processing module for rendering; and performing, by the video processing module; streaming a video including the scene to at least one client device; receiving user interactions with the streamed video from the at least one client device indicating a change in a viewpoint of the scene; rendering new video content based at least in part on the model of the scene and the changed viewpoint; streaming the new video content to the at least one client device; receiving additional user interactions with the streamed video from the at least one client device to manipulate the scene; and responsive to a determination, based at least in part on the additional user interactions, that a change in the scene is required as a result of the manipulation, signaling the virtual world generation engine to generate a model of the scene that includes the change in the scene that is required as a result of the manipulation. - View Dependent Claims (11, 12, 13, 14, 15, 16)
-
-
17. A non-transitory computer-readable storage medium storing program instructions that when executed on one or more computers cause the one or more computers to implement a real-time video exploration (RVE) system configured to:
-
receive input from a client device indicating user interactions with video content on the client device; in response to the user interactions; obtain a plurality of images that include content related to a real-world scene indicated by the user interactions with the video content; select at least two of the obtained images according to the user interactions with the video content; and generate a two-dimensional (2D) or three-dimensional (3D) model of the real-world scene from the obtained images; and receive additional input from the client device indicating additional user interactions with the video content on the client device, wherein the addition user interactions indicate a change in a viewpoint of the real-world scene; in response to the additional user interactions; render new video content based at least in part on the changed viewpoint and the two-dimensional (2D) or three-dimensional (3D) model; and stream video including the new video content to the client device; receive further input from the client device indicating further user interactions with the new video content streamed to the client device to manipulate the real-world scene; determine, based at least in part on the further user interactions, that a change in the real-world scene is required as a result of the manipulation; and generate a two-dimensional (2D) or three-dimensional (3D) model of the real-world scene that includes the change that is required as a result of the manipulation. - View Dependent Claims (18, 19, 20, 21, 22, 23)
-
Specification