US20130321410A1 - Video generation using three-dimensional hulls - Google Patents
Video generation using three-dimensional hulls Download PDFInfo
- Publication number
- US20130321410A1 US20130321410A1 US13/599,263 US201213599263A US2013321410A1 US 20130321410 A1 US20130321410 A1 US 20130321410A1 US 201213599263 A US201213599263 A US 201213599263A US 2013321410 A1 US2013321410 A1 US 2013321410A1
- Authority
- US
- United States
- Prior art keywords
- hull
- vertices
- convex
- scene
- data
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/08—Volume rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
- G06T15/205—Image-based rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/106—Processing image signals
- H04N13/111—Transformation of image signals corresponding to virtual viewpoints, e.g. spatial image interpolation
- H04N13/117—Transformation of image signals corresponding to virtual viewpoints, e.g. spatial image interpolation the virtual viewpoint locations being selected by the viewers or determined by viewer tracking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/194—Transmission of image signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/20—Image signal generators
- H04N13/204—Image signal generators using stereoscopic image cameras
- H04N13/239—Image signal generators using stereoscopic image cameras using two 2D image sensors having a relative position equal to or related to the interocular distance
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/20—Image signal generators
- H04N13/204—Image signal generators using stereoscopic image cameras
- H04N13/243—Image signal generators using stereoscopic image cameras using three or more 2D image sensors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/20—Image signal generators
- H04N13/204—Image signal generators using stereoscopic image cameras
- H04N13/246—Calibration of cameras
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/20—Image signal generators
- H04N13/257—Colour aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/14—Systems for two-way working
- H04N7/141—Systems for two-way working between two video terminals, e.g. videophone
- H04N7/142—Constructional details of the terminal equipment, e.g. arrangements of the camera and the display
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/14—Systems for two-way working
- H04N7/15—Conference systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/14—Systems for two-way working
- H04N7/15—Conference systems
- H04N7/157—Conference systems defining a virtual conference space and using avatars or agents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/56—Particle system, point based geometry or rendering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04R—LOUDSPEAKERS, MICROPHONES, GRAMOPHONE PICK-UPS OR LIKE ACOUSTIC ELECTROMECHANICAL TRANSDUCERS; DEAF-AID SETS; PUBLIC ADDRESS SYSTEMS
- H04R2227/00—Details of public address [PA] systems covered by H04R27/00 but not provided for in any of its subgroups
- H04R2227/005—Audio distribution systems for home, i.e. multi-room use
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04S—STEREOPHONIC SYSTEMS
- H04S2400/00—Details of stereophonic systems covered by H04S but not provided for in its groups
- H04S2400/15—Aspects of sound capture and related signal processing for recording or reproduction
Definitions
- a given video generally includes one or more scenes, where each scene in the video can be either relatively static (e.g., the objects in the scene do not substantially change or move over time) or dynamic (e.g., the objects in the scene substantially change and/or move over time).
- polygonal modeling is commonly used to represent three-dimensional objects in a scene by approximating the surface of each object using polygons.
- a polygonal model of a given scene includes a collection of vertices. Two neighboring vertices that are connected by a straight line form an edge in the polygonal model. Three neighboring and non-co-linear vertices that are interconnected by three edges form a triangle in the polygonal model.
- a polygonal/mesh model of a scene includes a collection of vertices, edges and polygonal (i.e., polygon-based) faces that represents/approximates the shape of each object in the scene.
- Video generation technique embodiments described herein are generally applicable to generating a video of a scene and presenting it to a user.
- one or more streams of sensor data that represent the scene are input.
- Scene proxies which geometrically describe the scene as a function of time are then generated from the streams of sensor data.
- This scene proxies generation includes the following actions.
- a stream of mesh models of the scene and a corresponding stream of mesh texture maps are generated from the streams of sensor data, where each of the mesh models includes a collection of vertices and a collection of polygonal faces that are formed by the vertices, and each of the mesh texture maps defines texture data for one or more points on each of the polygonal faces. Then, for each of the mesh models, the following actions take place.
- the mesh model is broken down into one or more convex sections. Then, for each of the convex sections of the mesh model, a three-dimensional (3D) hull that surrounds the convex section is defined, the convex section is surrounded with the 3D hull, and the texture data that is associated with each of the polygonal faces in the convex section is projected onto the 3D hull, where this projection produces a hull texture map for the convex section.
- 3D three-dimensional
- the scene proxies are input.
- the scene proxies include a stream of mesh models of the scene, where each of the mesh models includes a collection of polygonal faces, and each of the mesh models is broken down into one or more convex sections.
- the scene proxies also include a mathematical equation describing a 3D hull that surrounds the convex section, data specifying the size of this 3D hull, data specifying the position of this 3D hull in relation to the portion of the mesh model that is in the convex section, and a hull texture map for the convex section.
- This hull texture map includes data defining a plurality of points on the 3D hull, and data for each of these points that associates the point with texture data and also associates the point with a normal which defines a direction from one of the faces in the convex section to the 3D hull.
- the mathematical equation describing a 3D hull that surrounds the convex section, the data specifying the size of this 3D hull, and the data specifying the position of this 3D hull in relation to this portion of the mesh model are then used to surround the convex section with this 3D hull. Then, for each of the points on the 3D hull, the point is projected along the normal that is associated with the point and onto the portion of the mesh model that is in the convex section, and the texture data that is associated with the point is assigned to the corresponding projected point on this portion of the mesh model.
- FIG. 1 is a diagram illustrating an exemplary embodiment, in simplified form, of a video processing pipeline for implementing the video generation technique embodiments described herein.
- FIG. 2 is a flow diagram illustrating an exemplary embodiment, in simplified form, of a process for generating a video of a scene.
- FIG. 3 is a flow diagram illustrating an exemplary embodiment, in simplified form, of a process for generating scene proxies that geometrically describe the scene as a function of time.
- FIG. 4 is a flow diagram illustrating an exemplary embodiment, in simplified form, of a process for breaking down a given mesh model in the scene proxies into one or more convex sections.
- FIG. 5 is a flow diagram illustrating one embodiment, in simplified form, of a process for computing an error metric for a convex hull which is computed for a set of vertices in the mesh model.
- FIG. 6 is a flow diagram illustrating another embodiment, in simplified form, of a process for computing an error metric for a convex hull which is computed for a set of vertices in the mesh model.
- FIG. 7 is a flow diagram illustrating an exemplary embodiment, in simplified form, of a process for defining a 3D hull that surrounds a given convex section of a given mesh model.
- FIG. 8 is a flow diagram illustrating an exemplary embodiment, in simplified form, of a process for projecting texture data that is associated with polygonal faces in the given convex section onto the 3D hull that surrounds the given convex section.
- FIG. 9 is a flow diagram illustrating an exemplary embodiment, in simplified form, of a process for storing the scene proxies.
- FIG. 10 is a flow diagram illustrating an exemplary embodiment, in simplified form, of a process for distributing the scene proxies to an end user who either is, or will be, viewing the video.
- FIG. 11 is a flow diagram illustrating an exemplary embodiment, in simplified form, of a process for presenting the video of the scene to an end user.
- FIG. 12 is a flow diagram illustrating an exemplary embodiment, in simplified form, of a process for rendering images of the scene from the scene proxies.
- FIG. 13 is a diagram illustrating a simplified example of a general-purpose computer system on which various embodiments and elements of the video generation technique, as described herein, may be implemented.
- three-dimensional (3D) hull is used herein to refer to any 3D shape that can be defined by a mathematical equation and is used to surround a given convex section of a given mesh model.
- Exemplary types of 3D hulls that can be used in the video generation technique embodiments described herein include, but are not limited to a sphere, an ellipsoid, a cube, and a rectangular cuboid (also known as either a right rectangular prism, or a rectangular parallelepiped, among other things).
- the term “sensor” is used herein to refer to any one of a variety of scene-sensing devices which can be used to generate a stream of sensor data that represents a given scene.
- the video generation technique embodiments described herein employ one or more sensors which can be configured in various arrangements to capture a scene, thus allowing one or more streams of sensor data to be generated each of which represents the scene from a different geometric perspective.
- Each of the sensors can be any type of video capture device (e.g., any type of video camera), or any type of audio capture device (such as a microphone, or the like), or any combination thereof.
- Each of the sensors can also be either static (i.e., the sensor has a fixed spatial location and a fixed rotational orientation which do not change over time), or moving (i.e., the spatial location and/or rotational orientation of the sensor change over time).
- the video generation technique embodiments described herein can employ a combination of different types of sensors to capture a given scene.
- the video generation technique embodiments described herein generally involve using 3D hulls to generate a video of a given scene and then present the video to one or more end users.
- the video generation technique embodiments support the generation, storage, distribution, and end user presentation of any type of video.
- one embodiment of the video generation technique supports various types of traditional, single viewpoint video in which the viewpoint of the scene is chosen by the director when the video is recorded/captured and this viewpoint cannot be controlled or changed by an end user while they are viewing the video.
- a single viewpoint video the viewpoint of the scene is fixed and cannot be modified when the video is being rendered and displayed to an end user.
- Another embodiment of the video generation technique supports various types of free viewpoint video in which the viewpoint of the scene can be interactively controlled and changed by an end user at will while they are viewing the video.
- a free viewpoint video an end user can interactively generate synthetic (i.e., virtual) viewpoints of the scene on-the-fly when the video is being rendered and displayed.
- synthetic viewpoints of the scene on-the-fly when the video is being rendered and displayed.
- the video generation technique embodiments described herein are advantageous for various reasons including, but not limited to, the following.
- the video generation technique embodiments serve to minimize the size of (i.e., minimize the amount of data in) the video that is generated, stored and distributed. Based on this video size/data minimization, it will also be appreciated that the video generation technique embodiments minimize the cost and maximize the performance associated with storing and transmitting the video in a client-server framework where the video is generated and stored on a server computing device, and then transmitted from the server over a data communication network to one or more client computing devices upon which the video is rendered and then viewed and navigated by the one or more end users.
- the video generation technique embodiments maximize the photo-realism of the video that is generated when it is rendered and then viewed and navigated by the end users.
- the video generation technique embodiments provide the end users with photo-realistic video that is free of discernible artifacts, thus creating a feeling of immersion for the end users and enhancing their viewing experience.
- the video generation technique embodiments described herein eliminate having to constrain the complexity or composition of the scene that is being captured (e.g., neither the environment(s) in the scene, nor the types of objects in the scene, nor the number of people of in the scene, among other things has to be constrained). Accordingly, the video generation technique embodiments are operational with any type of scene, including both relatively static and dynamic scenes. The video generation technique embodiments also provide a flexible, robust and commercially viable method for generating a video, and then presenting it to one or more end users, that meets the needs of today's various creative video producers and editors.
- the video generation technique embodiments are applicable to various types of video-based media applications such as consumer entertainment (e.g., movies, television shows, and the like) and video-conferencing/telepresence, among others.
- consumer entertainment e.g., movies, television shows, and the like
- video-conferencing/telepresence among others.
- FIG. 1 illustrates an exemplary embodiment, in simplified form, of a video processing pipeline for implementing the video generation technique embodiments described herein.
- the video generation technique embodiments support the generation, storage, distribution, and end user presentation of any type of video including, but not limited to, various types of single viewpoint video and various types of free viewpoint video.
- the video processing pipeline 100 start with a generation stage 102 during which, and generally speaking, scene proxies of a given scene are generated.
- the generation stage 102 includes a capture sub-stage 104 and a processing sub-stage 106 whose operation will now be described in more detail.
- the capture sub-stage 104 of the video processing pipeline 100 generally captures the scene and generates one or more streams of sensor data that represent the scene. More particularly, in an embodiment of the video generation technique described herein where a single viewpoint video is being generated, stored, distributed and presented to one or more end users (hereafter simply referred to as the single viewpoint embodiment of the video generation technique), during the capture sub-stage 104 a single sensor is used to capture the scene, where the single sensor includes a video capture device and generates a single stream of sensor data which represents the scene from a single geometric perspective. The stream of sensor data is input from the sensor and then output to the processing sub-stage 106 .
- an arrangement of sensors is used to capture the scene, where the arrangement includes a plurality of video capture devices and generates a plurality of streams of sensor data each of which represents the scene from a different geometric perspective. These streams of sensor data are input from the sensors and calibrated, and then output to the processing sub-stage 106 .
- the processing sub-stage 106 of the video processing pipeline 100 inputs the stream(s) of sensor data from the capture sub-stage 104 , and then generates scene proxies that geometrically describe the captured scene as a function of time from the stream(s) of sensor data.
- the scene proxies are then output to a storage and distribution stage 108 .
- the storage and distribution stage 108 of the video processing pipeline 100 inputs the scene proxies from the processing sub-stage 106 , stores the scene proxies, outputs the scene proxies and distributes them to one or more end users who either are, or will be, viewing the video, or both.
- this distribution takes place by transmitting the scene proxies over whatever one or more data communication networks the end user computing devices are connected to. It will be appreciated that this transmission is implemented in a manner that meets the needs of the specific implementation of the video generation technique embodiments and the related type of video that is being processed in the pipeline 100 .
- the end user presentation stage 110 of the video processing pipeline 100 inputs the scene proxies that are output from the storage and distribution stage 108 , and then presents each of the end users with a rendering of the scene proxies.
- the end user presentation stage 110 includes a rendering sub-stage 112 and a user viewing experience sub-stage 114 whose operation will now be described in more detail.
- the rendering sub-stage 112 of the video processing pipeline 100 inputs the scene proxies that are output from the storage and distribution stage 108 , and then renders images of the captured scene from the scene proxies, where these images have a fixed viewpoint that cannot be modified by an end user.
- the fixed viewpoint images of the captured scene are then output to the user viewing experience sub-stage 114 of the pipeline 100 .
- the user viewing experience sub-stage 114 inputs the fixed viewpoint images of the captured scene from the rendering sub-stage 112 , and then displays these images on a display device for viewing by a given end user.
- the user viewing experience sub-stage 114 can provide the end user with the ability to interactively temporally navigate/control the single viewpoint video at will, and based on this temporal navigation/control the rendering sub-stage 112 will either temporally pause/stop, or rewind, or fast forward the single viewpoint video accordingly.
- the rendering sub-stage 112 inputs the scene proxies that are output from the storage and distribution stage 108 , and then renders images of the captured scene from the scene proxies, where these images have a synthetic viewpoint that can be modified by an end user.
- the synthetic viewpoint images of the captured scene are then output to the user viewing experience sub-stage 114 .
- the user viewing experience sub-stage 114 inputs the synthetic viewpoint images of the captured scene from the rendering sub-stage 112 , and then displays these images on a display device for viewing by a given end user.
- the user viewing experience sub-stage 114 can provide the end user with the ability to spatio/temporally navigate/control the synthetic viewpoint images of the captured scene on-the-fly at will.
- the user viewing experience sub-stage 114 can provide the end user with the ability to continuously and interactively navigate/control their viewpoint of the images of the scene that are being displayed on the display device, and based on this viewpoint navigation the rendering sub-stage 112 will modify the images of the scene accordingly.
- the user viewing experience sub-stage 114 can also provide the end user with the ability to interactively temporally navigate/control the free viewpoint video at will, and based on this temporal navigation/control the rendering sub-stage 112 will either temporally pause/stop, or rewind, or fast forward the free viewpoint video accordingly.
- the video generation technique embodiments described herein generally employ one or more sensors which can be configured in various arrangements to capture a scene. These one or more sensors generate one or more streams of sensor data each of which represents the scene from a different geometric perspective.
- FIG. 2 illustrates an exemplary embodiment, in simplified form, of a process for generating a video of a scene.
- the process starts in block 200 with inputting the one or more streams of sensor data that represent the scene.
- Scene proxies are then generated from these streams of sensor data (block 202 ), where the scene proxies geometrically describe the scene as a function of time.
- the scene proxies can then be stored (block 204 ).
- the scene proxies can also be distributed to the end user (block 206 ).
- FIG. 3 illustrates an exemplary embodiment, in simplified form, of a process for generating the scene proxies from the one or more streams of sensor data that represent the scene.
- the process starts in block 300 with generating a stream of mesh models of the scene and a corresponding stream of mesh texture maps from the streams of sensor data, where each of the mesh models includes a collection of vertices and a collection of polygonal faces that are formed by the vertices, and each of the mesh texture maps defines texture data for one or more points on each of the polygonal faces.
- the mesh texture maps can apply various textures to the polygonal faces in order to maximize the photo-realism of the objects that are represented by the mesh models.
- the texture data that is defined by the mesh texture maps can include one or more of color data, or specular highlight data, or transparency data, or reflection data, or shadowing data, among other things.
- the mesh texture maps can define texture data for various points on each of the faces.
- texture data can be defined for just a single point (such as a centroid, among others) on a given face.
- Texture data can also be defined for each of the vertices of a given face. Texture data can also be defined for points along the edges of a given face between the vertices that form the edges, or in the interior of the face.
- the following actions then take place for each of the mesh models (block 302 ).
- the mesh model is broken down into one or more convex sections (block 304 ), and the following actions then take place for each of the convex sections of the mesh model (block 306 ).
- a 3D hull is defined that surrounds the convex section (block 308 ).
- the convex section is then surrounded with the 3D hull (block 310 ).
- the texture data that is associated with each of the polygonal faces in the convex section is then projected onto the 3D hull, where this projection produces a hull texture map for the convex section (block 312 ).
- each of the mesh models can be broken down into one or more convex sections using various methods, one example of which will now be described in more detail.
- FIG. 4 illustrates an exemplary embodiment, in simplified form, of a process for breaking down a given mesh model into one or more convex sections.
- the process starts in block 400 with arbitrarily selecting one of the vertices in the mesh model. This arbitrarily selected one of the vertices is then assigned to be an initial element of a set of candidate vertices (block 402 ).
- a convex hull is then computed for the set of candidate vertices (block 404 ), where this computation can be performed using various conventional methods.
- An error metric for the convex hull is then computed (block 406 ). Then, whenever the error metric does not exceed a prescribed threshold (block 408 , No), the following actions are performed.
- a prescribed number of other vertices in the mesh model that are not in the set of candidate vertices, and are not assigned to a convex section of the mesh model, and are directly connected (via an edge in the mesh model) to one of the candidate vertices, are selected (block 410 ). These selected other vertices are then added to the set of candidate vertices (block 412 ), and the actions of blocks 404 - 408 are repeated.
- the prescribed number is one. In another embodiment of the video generation technique the prescribed number is greater than one.
- each of the convex sections of each of the mesh models will include a plurality of vertices.
- FIG. 5 illustrates one embodiment, in simplified form, of a process for computing an error metric for the convex hull.
- the process starts in block 500 with computing a shortest distance from the convex hull to each of the vertices that are inside the convex hull, where this computation produces a set of vertex-to-hull distances.
- the largest vertex-to-hull distance in this set is then determined (block 502 ).
- the error metric is then set equal to this largest vertex-to-hull distance (block 504 ).
- FIG. 6 illustrates another embodiment, in simplified form, of a process for computing an error metric for the convex hull.
- the process starts in block 600 with computing a shortest distance from the convex hull to each of the vertices that are inside the convex hull, where this computation produces a set of vertex-to-hull distances.
- An average of the vertex-to-hull distances in this set is then computed (block 602 ).
- the error metric is then set equal to this average (block 604 ).
- FIG. 7 illustrates an exemplary embodiment, in simplified form, of a process for defining a 3D hull that surrounds a given convex section of a given mesh model.
- the process starts in block 700 with using a conventional principal component analysis procedure to identify a major axis of the vertices that are assigned to (and thus are in) the convex section, and also identify two minor axes of these vertices.
- a 3D hull that surrounds these vertices is then defined based on the major and two minor axes of these vertices (block 702 ).
- FIG. 8 illustrates an exemplary embodiment, in simplified form, of a process for projecting the texture data that is associated with each of the polygonal faces in a given convex section onto the 3D hull that surrounds the convex section.
- the following actions take place for each of the polygonal faces in the convex section (block 800 ).
- the one or more points on the face for which texture data is defined are projected along a normal to the face and onto the 3D hull (block 802 ).
- FIG. 9 illustrates an exemplary embodiment, in simplified form, of a process for storing the scene proxies.
- the following actions take place for each of the convex sections of each of the mesh models (block 900 ).
- the portion of the mesh model that is in the convex section is stored (block 902 ).
- a mathematical equation describing the 3D hull that surrounds the convex section is also stored (block 904 ).
- Data specifying the size of this 3D hull is also stored (block 906 ).
- Data specifying the position of this 3D hull in relation to the portion of the mesh model that is in the convex section is also stored (block 908 ).
- the hull texture map for the convex section is also stored (block 910 ).
- the position of the 3D hull in relation to the portion of the mesh model that is in the convex section which is surrounded by the 3D hull.
- the position of one or more geometric anchor points on the 3D hull can be specified in relation to one or more of the vertices in the mesh model.
- the data specifying the size of the 3D hull can be the lengths of the axes thereof, among other things.
- the data specifying the size of the 3D hull can be the length of an edge thereof.
- the data specifying the size of the 3D hull can be the height, length and depth thereof.
- FIG. 10 illustrates an exemplary embodiment, in simplified form, of a process for distributing the scene proxies to an end user who either is, or will be, viewing the video on another computing device which is connected to a data communication network.
- the following actions take place for each of the convex sections of each of the mesh models (block 1000 ).
- the portion of the mesh model that is in the convex section is transmitted over the network to the other computing device (block 1002 ).
- a mathematical equation describing the 3D hull that surrounds the convex section is also transmitted over the network to the other computing device (block 1004 ).
- Data specifying the size of this 3D hull is also transmitted over the network to the other computing device (block 1006 ).
- Data specifying the position of this 3D hull in relation to the portion of the mesh model that is in the convex section is also transmitted over the network to the other computing device (block 1008 ).
- the hull texture map for the convex section is also transmitted over the network to the other computing device (block 1010 ).
- This section provides a more detailed description of the end user presentation stage of the video processing pipeline.
- FIG. 11 illustrates an exemplary embodiment, in simplified form, of a process for presenting a video of a scene to an end user.
- the process starts in block 1100 with inputting scene proxies that geometrically describe the scene as a function of time.
- the scene proxies include a stream of mesh models of the scene, where each of the mesh models includes a collection of polygonal faces, and each of the mesh models is broken down into one or more convex sections.
- the scene proxies also include a mathematical equation describing a 3D hull that surrounds the convex section, data specifying the size of this 3D hull, data specifying the position of this 3D hull in relation to the portion of the mesh model that is in the convex section, and a hull texture map for the convex section.
- This hull texture map includes data defining a plurality of points on the 3D hull that surrounds the convex section, and data for each of these points that associates the point with texture data and also associates the point with a normal along which the point was originally projected.
- images of the scene are rendered from the scene proxies (block 1102 ).
- the images of the scene are then displayed on a display device (block 1104 ) so that they can be viewed and navigated by the end user.
- the video that is being presented to the end user can be any type of video including, but not limited to, asynchronous single viewpoint video, or asynchronous free viewpoint video, or unidirectional live single viewpoint video, or unidirectional live free viewpoint video, or bidirectional live single viewpoint video, or bidirectional live free viewpoint video.
- FIG. 12 illustrates an exemplary embodiment, in simplified form, of a process for rendering images of the scene from the scene proxies.
- the following actions take place for each of the convex sections of each of the mesh models (block 1200 ).
- the portion of the mesh model that is in the convex section is rendered (block 1202 ).
- the mathematical equation describing a 3D hull that surrounds the convex section, the data specifying the size of this 3D hull, and the data specifying the position of this 3D hull in relation to the portion of the mesh model that is in the convex section are then used to surround the convex section with this 3D hull (block 1204 ).
- the point is projected along the normal that is associated with the point and onto the portion of the mesh model that is in the convex section (block 1208 ), and the texture data that is associated with the point is assigned to the corresponding projected point on the portion of the mesh model that is in the convex section (block 1210 ).
- This section provides a more detailed description of exemplary types of single viewpoint video and exemplary types of free viewpoint video that are supported by the video generation technique embodiments described herein.
- one implementation of the single viewpoint embodiment of the video generation technique described heretofore supports asynchronous (i.e., non-live) single viewpoint video
- a similar implementation of the free viewpoint embodiment of the video generation technique described heretofore supports asynchronous free viewpoint video.
- Both of these implementations correspond to a situation where the streams of sensor data that are generated by the sensors are pre-captured 104 , then post-processed 106 , and the resulting scene proxies are then stored and can be transmitted in a one-to-many manner (i.e., broadcast) to one or more end users 108 .
- a one-to-many manner i.e., broadcast
- a video producer to optionally manually “touch-up” the streams of sensor data that are input during the capture sub-stage 104 , and also optionally manually remove any 3D reconstruction artifacts that are introduced in the processing sub-stage 106 .
- These particular implementations are referred to hereafter as the asynchronous single viewpoint video implementation and the asynchronous free viewpoint video implementation respectively.
- Exemplary types of video-based media that work well in the asynchronous single viewpoint video and asynchronous free viewpoint video implementations include movies, documentaries, sitcoms and other types of television shows, music videos, digital memories, and the like.
- Another exemplary type of video-based media that works well in the asynchronous single viewpoint video and asynchronous free viewpoint video implementations is the use of special effects technology where synthetic objects are realistically modeled, lit, shaded and added to a pre-captured scene.
- another implementation of the single viewpoint embodiment of the video generation technique supports unidirectional (i.e., one-way) live single viewpoint video
- a similar implementation of the free viewpoint embodiment of the video generation technique supports unidirectional live free viewpoint video.
- Both of these implementations correspond to a situation where the streams of sensor data that are being generated by the sensors are concurrently captured 104 and processed 106 , and the resulting scene proxies are stored and transmitted in a one-to-many manner on-the-fly (i.e., live) to one or more end users 108 .
- each end user can view 114 the scene live (i.e., each use can view the scene at substantially the same time it is being captured 104 ).
- unidirectional live single viewpoint video implementation and the unidirectional live free viewpoint video implementation respectively.
- exemplary types of video-based media that work well in the unidirectional live single viewpoint video and unidirectional live free viewpoint video implementations include sporting events, news programs, live concerts, and the like.
- yet another implementation of the single viewpoint embodiment of the video generation technique supports bidirectional (i.e., two-way) live single viewpoint video (such as that which is associated with various video-conferencing/telepresence applications), and a similar implementation of the free viewpoint embodiment of the video generation technique supports bidirectional live free viewpoint video.
- bidirectional live single viewpoint video implementation and the bidirectional live free viewpoint video implementation respectively.
- the bidirectional live single/free viewpoint video implementation is generally the same as the unidirectional live single/free viewpoint video implementation with the following exception.
- a computing device at each physical location that is participating in a given video-conferencing/telepresence session is able to concurrently capture 104 streams of sensor data that are being generated by sensors which are capturing a local scene and process 106 these locally captured streams of sensor data, store and transmit the resulting local scene proxies in a one-to-many manner on the fly to the other physical locations that are participating in the session 108 , receive remote scene proxies from each of the remote physical locations that are participating in the session 108 , and render 112 each of the received proxies.
- the generation, storage and distribution, and end user presentation stages 102 / 108 / 110 have to be completed within a very short period of time.
- the video generation technique embodiments described herein make this possible based on the aforementioned video size/data minimization that is achieved by the video generation technique embodiments.
- video generation technique has been described by specific reference to embodiments thereof, it is understood that variations and modifications thereof can be made without departing from the true spirit and scope of the video generation technique.
- alternate embodiments of the video generation technique described herein are possible which support any other digital image application where a scene is represented by a mesh model and a corresponding mesh texture map which defines texture data for the mesh model.
- FIG. 13 illustrates a simplified example of a general-purpose computer system on which various embodiments and elements of the video generation technique, as described herein, may be implemented. It is noted that any boxes that are represented by broken or dashed lines in FIG. 13 represent alternate embodiments of the simplified computing device, and that any or all of these alternate embodiments, as described below, may be used in combination with other alternate embodiments that are described throughout this document.
- FIG. 13 shows a general system diagram showing a simplified computing device 1300 .
- Such computing devices can be typically be found in devices having at least some minimum computational capability, including, but not limited to, personal computers (PCs), server computers, handheld computing devices, laptop or mobile computers, communications devices such as cell phones and personal digital assistants (PDAs), multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, and audio or video media players.
- PCs personal computers
- server computers handheld computing devices
- laptop or mobile computers communications devices such as cell phones and personal digital assistants (PDAs), multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, and audio or video media players.
- PDAs personal digital assistants
- the device should have a sufficient computational capability and system memory to enable basic computational operations.
- the computational capability is generally illustrated by one or more processing unit(s) 1310 , and may also include one or more graphics processing units (GPUs) 1315 , either or both in communication with system memory 1320 .
- GPUs graphics processing units
- processing unit(s) 1310 may be specialized microprocessors (such as a digital signal processor (DSP), a very long instruction word (VLIW) processor, a field-programmable gate array (FPGA), or other micro-controller) or can be conventional central processing units (CPUs) having one or more processing cores including, but not limited to, specialized GPU-based cores in a multi-core CPU.
- DSP digital signal processor
- VLIW very long instruction word
- FPGA field-programmable gate array
- CPUs central processing units having one or more processing cores including, but not limited to, specialized GPU-based cores in a multi-core CPU.
- the simplified computing device 1300 of FIG. 13 may also include other components, such as, for example, a communications interface 1330 .
- the simplified computing device 1300 of FIG. 13 may also include one or more conventional computer input devices 1340 (e.g., pointing devices, keyboards, audio (e.g., voice) input/capture devices, video input/capture devices, haptic input devices, devices for receiving wired or wireless data transmissions, and the like).
- the simplified computing device 1300 of FIG. 13 may also include other optional components, such as, for example, one or more conventional computer output devices 1350 (e.g., display device(s) 1355 , audio output devices, video output devices, devices for transmitting wired or wireless data transmissions, and the like).
- Exemplary types of input devices (herein also referred to as user interface modalities) and display devices that are operable with the video generation technique embodiments described herein have been described heretofore.
- user interface modalities input devices
- display devices that are operable with the video generation technique embodiments described herein have been described heretofore.
- typical communications interfaces 1330 , additional types of input and output devices 1340 and 1350 , and storage devices 1360 for general-purpose computers are well known to those skilled in the art, and will not be described in detail herein.
- the simplified computing device 1300 of FIG. 13 may also include a variety of computer readable media.
- Computer readable media can be any available media that can be accessed by the computer 1300 via storage devices 1360 , and includes both volatile and nonvolatile media that is either removable 1370 and/or non-removable 1380 , for storage of information such as computer-readable or computer-executable instructions, data structures, program modules, or other data.
- Computer readable media may include computer storage media and communication media.
- Computer storage media includes, but is not limited to, computer or machine readable media or storage devices such as digital versatile disks (DVDs), compact discs (CDs), floppy disks, tape drives, hard drives, optical drives, solid state memory devices, random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, magnetic cassettes, magnetic tapes, magnetic disk storage, or other magnetic storage devices, or any other device which can be used to store the desired information and which can be accessed by one or more computing devices.
- DVDs digital versatile disks
- CDs compact discs
- floppy disks tape drives
- hard drives optical drives
- solid state memory devices random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, magnetic cassettes, magnetic tapes, magnetic disk storage, or other magnetic storage devices, or any other device which can be used to store the desired information and which can be accessed by one or more computing
- modulated data signal or “carrier wave” generally refer to a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal.
- communication media includes wired media such as a wired network or direct-wired connection carrying one or more modulated data signals, and wireless media such as acoustic, radio frequency (RF), infrared, laser, and other wireless media for transmitting and/or receiving one or more modulated data signals or carrier waves.
- wired media such as a wired network or direct-wired connection carrying one or more modulated data signals
- wireless media such as acoustic, radio frequency (RF), infrared, laser, and other wireless media for transmitting and/or receiving one or more modulated data signals or carrier waves.
- software, programs, and/or computer program products embodying the some or all of the various embodiments of the video generation technique described herein, or portions thereof, may be stored, received, transmitted, or read from any desired combination of computer or machine readable media or storage devices and communication media in the form of computer executable instructions or other data structures.
- video generation technique embodiments described herein may be further described in the general context of computer-executable instructions, such as program modules, being executed by a computing device.
- program modules include routines, programs, objects, components, data structures, and the like, that perform particular tasks or implement particular abstract data types.
- the video generation technique embodiments may also be practiced in distributed computing environments where tasks are performed by one or more remote processing devices, or within a cloud of one or more devices, that are linked through one or more communications networks.
- program modules may be located in both local and remote computer storage media including media storage devices.
- the aforementioned instructions may be implemented, in part or in whole, as hardware logic circuits, which may or may not include a processor.
Abstract
Description
- This application claims the benefit of and priority to provisional U.S. patent application Ser. No. 61/653,983 filed May 31, 2012.
- A given video generally includes one or more scenes, where each scene in the video can be either relatively static (e.g., the objects in the scene do not substantially change or move over time) or dynamic (e.g., the objects in the scene substantially change and/or move over time). As is appreciated in the art of computer graphics, polygonal modeling is commonly used to represent three-dimensional objects in a scene by approximating the surface of each object using polygons. A polygonal model of a given scene includes a collection of vertices. Two neighboring vertices that are connected by a straight line form an edge in the polygonal model. Three neighboring and non-co-linear vertices that are interconnected by three edges form a triangle in the polygonal model. Four neighboring and non-co-linear vertices that are interconnected by four edges form a quadrilateral in the polygonal model. Triangles and quadrilaterals are the most common types of polygons used in polygonal modeling, although other types of polygons may also be used depending on the capabilities of the renderer that is being used to render the polygonal model. A group of polygons that are interconnected by shared vertices are referred to as a mesh and as such, a polygonal model of a scene is also known as a mesh model. Each of the polygons that makes up a mesh is referred to as a face in the polygonal/mesh model. Accordingly, a polygonal/mesh model of a scene includes a collection of vertices, edges and polygonal (i.e., polygon-based) faces that represents/approximates the shape of each object in the scene.
- This Summary is provided to introduce a selection of concepts, in a simplified form, that are further described hereafter in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
- Video generation technique embodiments described herein are generally applicable to generating a video of a scene and presenting it to a user. In an exemplary embodiment of this generation, one or more streams of sensor data that represent the scene are input. Scene proxies which geometrically describe the scene as a function of time are then generated from the streams of sensor data. This scene proxies generation includes the following actions. A stream of mesh models of the scene and a corresponding stream of mesh texture maps are generated from the streams of sensor data, where each of the mesh models includes a collection of vertices and a collection of polygonal faces that are formed by the vertices, and each of the mesh texture maps defines texture data for one or more points on each of the polygonal faces. Then, for each of the mesh models, the following actions take place. The mesh model is broken down into one or more convex sections. Then, for each of the convex sections of the mesh model, a three-dimensional (3D) hull that surrounds the convex section is defined, the convex section is surrounded with the 3D hull, and the texture data that is associated with each of the polygonal faces in the convex section is projected onto the 3D hull, where this projection produces a hull texture map for the convex section.
- In an exemplary embodiment of the just mentioned presentation, the scene proxies are input. The scene proxies include a stream of mesh models of the scene, where each of the mesh models includes a collection of polygonal faces, and each of the mesh models is broken down into one or more convex sections. For each of the convex sections of each of the mesh models, the scene proxies also include a mathematical equation describing a 3D hull that surrounds the convex section, data specifying the size of this 3D hull, data specifying the position of this 3D hull in relation to the portion of the mesh model that is in the convex section, and a hull texture map for the convex section. This hull texture map includes data defining a plurality of points on the 3D hull, and data for each of these points that associates the point with texture data and also associates the point with a normal which defines a direction from one of the faces in the convex section to the 3D hull. After the scene proxies have been input, images of the scene are rendered therefrom and displayed. This image rendering includes the following actions for each of the convex sections of each of the mesh models. The portion of the mesh model that is in the convex section is rendered. The mathematical equation describing a 3D hull that surrounds the convex section, the data specifying the size of this 3D hull, and the data specifying the position of this 3D hull in relation to this portion of the mesh model are then used to surround the convex section with this 3D hull. Then, for each of the points on the 3D hull, the point is projected along the normal that is associated with the point and onto the portion of the mesh model that is in the convex section, and the texture data that is associated with the point is assigned to the corresponding projected point on this portion of the mesh model.
- The specific features, aspects, and advantages of the video generation technique embodiments described herein will become better understood with regard to the following description, appended claims, and accompanying drawings where:
-
FIG. 1 is a diagram illustrating an exemplary embodiment, in simplified form, of a video processing pipeline for implementing the video generation technique embodiments described herein. -
FIG. 2 is a flow diagram illustrating an exemplary embodiment, in simplified form, of a process for generating a video of a scene. -
FIG. 3 is a flow diagram illustrating an exemplary embodiment, in simplified form, of a process for generating scene proxies that geometrically describe the scene as a function of time. -
FIG. 4 is a flow diagram illustrating an exemplary embodiment, in simplified form, of a process for breaking down a given mesh model in the scene proxies into one or more convex sections. -
FIG. 5 is a flow diagram illustrating one embodiment, in simplified form, of a process for computing an error metric for a convex hull which is computed for a set of vertices in the mesh model. -
FIG. 6 is a flow diagram illustrating another embodiment, in simplified form, of a process for computing an error metric for a convex hull which is computed for a set of vertices in the mesh model. -
FIG. 7 is a flow diagram illustrating an exemplary embodiment, in simplified form, of a process for defining a 3D hull that surrounds a given convex section of a given mesh model. -
FIG. 8 is a flow diagram illustrating an exemplary embodiment, in simplified form, of a process for projecting texture data that is associated with polygonal faces in the given convex section onto the 3D hull that surrounds the given convex section. -
FIG. 9 is a flow diagram illustrating an exemplary embodiment, in simplified form, of a process for storing the scene proxies. -
FIG. 10 is a flow diagram illustrating an exemplary embodiment, in simplified form, of a process for distributing the scene proxies to an end user who either is, or will be, viewing the video. -
FIG. 11 is a flow diagram illustrating an exemplary embodiment, in simplified form, of a process for presenting the video of the scene to an end user. -
FIG. 12 is a flow diagram illustrating an exemplary embodiment, in simplified form, of a process for rendering images of the scene from the scene proxies. -
FIG. 13 is a diagram illustrating a simplified example of a general-purpose computer system on which various embodiments and elements of the video generation technique, as described herein, may be implemented. - In the following description of video generation technique embodiments reference is made to the accompanying drawings which form a part hereof, and in which are shown, by way of illustration, specific embodiments in which the video generation technique can be practiced. It is understood that other embodiments can be utilized and structural changes can be made without departing from the scope of the video generation technique embodiments.
- It is also noted that for the sake of clarity specific terminology will be resorted to in describing the video generation technique embodiments described herein and it is not intended for these embodiments to be limited to the specific terms so chosen. Furthermore, it is to be understood that each specific term includes all its technical equivalents that operate in a broadly similar manner to achieve a similar purpose. Reference herein to “one embodiment”, or “another embodiment”, or an “exemplary embodiment”, or an “alternate embodiment”, or “one implementation”, or “another implementation”, or an “exemplary implementation”, or an “alternate implementation” means that a particular feature, a particular structure, or particular characteristics described in connection with the embodiment or implementation can be included in at least one embodiment of the video generation technique. The appearances of the phrases “in one embodiment”, “in another embodiment”, “in an exemplary embodiment”, “in an alternate embodiment”, “in one implementation”, “in another implementation”, “in an exemplary implementation”, and “in an alternate implementation” in various places in the specification are not necessarily all referring to the same embodiment or implementation, nor are separate or alternative embodiments/implementations mutually exclusive of other embodiments/implementations. Yet furthermore, the order of process flow representing one or more embodiments or implementations of the video generation technique does not inherently indicate any particular order not imply any limitations of the video generation technique.
- The term “three-dimensional (3D) hull” is used herein to refer to any 3D shape that can be defined by a mathematical equation and is used to surround a given convex section of a given mesh model. Exemplary types of 3D hulls that can be used in the video generation technique embodiments described herein include, but are not limited to a sphere, an ellipsoid, a cube, and a rectangular cuboid (also known as either a right rectangular prism, or a rectangular parallelepiped, among other things).
- The term “sensor” is used herein to refer to any one of a variety of scene-sensing devices which can be used to generate a stream of sensor data that represents a given scene. Generally speaking and as will be described in more detail hereafter, the video generation technique embodiments described herein employ one or more sensors which can be configured in various arrangements to capture a scene, thus allowing one or more streams of sensor data to be generated each of which represents the scene from a different geometric perspective. Each of the sensors can be any type of video capture device (e.g., any type of video camera), or any type of audio capture device (such as a microphone, or the like), or any combination thereof. Each of the sensors can also be either static (i.e., the sensor has a fixed spatial location and a fixed rotational orientation which do not change over time), or moving (i.e., the spatial location and/or rotational orientation of the sensor change over time). The video generation technique embodiments described herein can employ a combination of different types of sensors to capture a given scene.
- The video generation technique embodiments described herein generally involve using 3D hulls to generate a video of a given scene and then present the video to one or more end users. The video generation technique embodiments support the generation, storage, distribution, and end user presentation of any type of video. By way of example but not limitation, one embodiment of the video generation technique supports various types of traditional, single viewpoint video in which the viewpoint of the scene is chosen by the director when the video is recorded/captured and this viewpoint cannot be controlled or changed by an end user while they are viewing the video. In other words, in a single viewpoint video the viewpoint of the scene is fixed and cannot be modified when the video is being rendered and displayed to an end user. Another embodiment of the video generation technique supports various types of free viewpoint video in which the viewpoint of the scene can be interactively controlled and changed by an end user at will while they are viewing the video. In other words, in a free viewpoint video an end user can interactively generate synthetic (i.e., virtual) viewpoints of the scene on-the-fly when the video is being rendered and displayed. Exemplary types of single viewpoint and free viewpoint video that are supported by the video generation technique embodiments are described in more detail hereafter.
- The video generation technique embodiments described herein are advantageous for various reasons including, but not limited to, the following. Generally speaking and as will be appreciated from the more detailed description that follows, the video generation technique embodiments serve to minimize the size of (i.e., minimize the amount of data in) the video that is generated, stored and distributed. Based on this video size/data minimization, it will also be appreciated that the video generation technique embodiments minimize the cost and maximize the performance associated with storing and transmitting the video in a client-server framework where the video is generated and stored on a server computing device, and then transmitted from the server over a data communication network to one or more client computing devices upon which the video is rendered and then viewed and navigated by the one or more end users. Furthermore, the video generation technique embodiments maximize the photo-realism of the video that is generated when it is rendered and then viewed and navigated by the end users. As such, the video generation technique embodiments provide the end users with photo-realistic video that is free of discernible artifacts, thus creating a feeling of immersion for the end users and enhancing their viewing experience.
- Additionally, the video generation technique embodiments described herein eliminate having to constrain the complexity or composition of the scene that is being captured (e.g., neither the environment(s) in the scene, nor the types of objects in the scene, nor the number of people of in the scene, among other things has to be constrained). Accordingly, the video generation technique embodiments are operational with any type of scene, including both relatively static and dynamic scenes. The video generation technique embodiments also provide a flexible, robust and commercially viable method for generating a video, and then presenting it to one or more end users, that meets the needs of today's various creative video producers and editors. By way of example but not limitation and as will be appreciated from the more detailed description that follows, the video generation technique embodiments are applicable to various types of video-based media applications such as consumer entertainment (e.g., movies, television shows, and the like) and video-conferencing/telepresence, among others.
-
FIG. 1 illustrates an exemplary embodiment, in simplified form, of a video processing pipeline for implementing the video generation technique embodiments described herein. As noted heretofore, the video generation technique embodiments support the generation, storage, distribution, and end user presentation of any type of video including, but not limited to, various types of single viewpoint video and various types of free viewpoint video. As exemplified inFIG. 1 , thevideo processing pipeline 100 start with ageneration stage 102 during which, and generally speaking, scene proxies of a given scene are generated. Thegeneration stage 102 includes acapture sub-stage 104 and aprocessing sub-stage 106 whose operation will now be described in more detail. - Referring again to
FIG. 1 , thecapture sub-stage 104 of thevideo processing pipeline 100 generally captures the scene and generates one or more streams of sensor data that represent the scene. More particularly, in an embodiment of the video generation technique described herein where a single viewpoint video is being generated, stored, distributed and presented to one or more end users (hereafter simply referred to as the single viewpoint embodiment of the video generation technique), during the capture sub-stage 104 a single sensor is used to capture the scene, where the single sensor includes a video capture device and generates a single stream of sensor data which represents the scene from a single geometric perspective. The stream of sensor data is input from the sensor and then output to theprocessing sub-stage 106. In another embodiment of the video generation technique described herein where a free viewpoint video is being generated, stored, distributed and presented to one or more end users (hereafter simply referred to as the free viewpoint embodiment of the video generation technique), during thecapture sub-stage 104 an arrangement of sensors is used to capture the scene, where the arrangement includes a plurality of video capture devices and generates a plurality of streams of sensor data each of which represents the scene from a different geometric perspective. These streams of sensor data are input from the sensors and calibrated, and then output to theprocessing sub-stage 106. - Referring again to
FIG. 1 , theprocessing sub-stage 106 of thevideo processing pipeline 100 inputs the stream(s) of sensor data from thecapture sub-stage 104, and then generates scene proxies that geometrically describe the captured scene as a function of time from the stream(s) of sensor data. The scene proxies are then output to a storage anddistribution stage 108. - Referring again to
FIG. 1 , the storage anddistribution stage 108 of thevideo processing pipeline 100 inputs the scene proxies from theprocessing sub-stage 106, stores the scene proxies, outputs the scene proxies and distributes them to one or more end users who either are, or will be, viewing the video, or both. In an exemplary embodiment of the video generation technique described herein where thegeneration stage 102 is implemented on one computing device (or a collection of computing devices) and an enduser presentation stage 110 of thepipeline 100 is implemented on one or more end user computing devices, this distribution takes place by transmitting the scene proxies over whatever one or more data communication networks the end user computing devices are connected to. It will be appreciated that this transmission is implemented in a manner that meets the needs of the specific implementation of the video generation technique embodiments and the related type of video that is being processed in thepipeline 100. - Referring again to
FIG. 1 and generally speaking, the enduser presentation stage 110 of thevideo processing pipeline 100 inputs the scene proxies that are output from the storage anddistribution stage 108, and then presents each of the end users with a rendering of the scene proxies. The enduser presentation stage 110 includes arendering sub-stage 112 and a userviewing experience sub-stage 114 whose operation will now be described in more detail. - Referring again to
FIG. 1 , in the single viewpoint embodiment of the video generation technique described herein therendering sub-stage 112 of thevideo processing pipeline 100 inputs the scene proxies that are output from the storage anddistribution stage 108, and then renders images of the captured scene from the scene proxies, where these images have a fixed viewpoint that cannot be modified by an end user. The fixed viewpoint images of the captured scene are then output to the userviewing experience sub-stage 114 of thepipeline 100. The userviewing experience sub-stage 114 inputs the fixed viewpoint images of the captured scene from therendering sub-stage 112, and then displays these images on a display device for viewing by a given end user. In situations where thegeneration stage 102 operates asynchronously from the end user presentation stage 110 (such as in the asynchronous single viewpoint video implementation that is described in more detail hereafter), the userviewing experience sub-stage 114 can provide the end user with the ability to interactively temporally navigate/control the single viewpoint video at will, and based on this temporal navigation/control therendering sub-stage 112 will either temporally pause/stop, or rewind, or fast forward the single viewpoint video accordingly. - Referring again to
FIG. 1 , in the free viewpoint embodiment of the video generation technique described herein therendering sub-stage 112 inputs the scene proxies that are output from the storage anddistribution stage 108, and then renders images of the captured scene from the scene proxies, where these images have a synthetic viewpoint that can be modified by an end user. The synthetic viewpoint images of the captured scene are then output to the userviewing experience sub-stage 114. The userviewing experience sub-stage 114 inputs the synthetic viewpoint images of the captured scene from therendering sub-stage 112, and then displays these images on a display device for viewing by a given end user. Generally speaking, the userviewing experience sub-stage 114 can provide the end user with the ability to spatio/temporally navigate/control the synthetic viewpoint images of the captured scene on-the-fly at will. In other words, the userviewing experience sub-stage 114 can provide the end user with the ability to continuously and interactively navigate/control their viewpoint of the images of the scene that are being displayed on the display device, and based on this viewpoint navigation therendering sub-stage 112 will modify the images of the scene accordingly. In situations where thegeneration stage 102 operates asynchronously from the end user presentation stage 110 (such as in the asynchronous free viewpoint video implementation that is described in more detail hereafter), the userviewing experience sub-stage 114 can also provide the end user with the ability to interactively temporally navigate/control the free viewpoint video at will, and based on this temporal navigation/control therendering sub-stage 112 will either temporally pause/stop, or rewind, or fast forward the free viewpoint video accordingly. - This section provides a more detailed description of the generation stage of the video processing pipeline. As described heretofore, the video generation technique embodiments described herein generally employ one or more sensors which can be configured in various arrangements to capture a scene. These one or more sensors generate one or more streams of sensor data each of which represents the scene from a different geometric perspective.
-
FIG. 2 illustrates an exemplary embodiment, in simplified form, of a process for generating a video of a scene. As exemplified inFIG. 2 , the process starts inblock 200 with inputting the one or more streams of sensor data that represent the scene. Scene proxies are then generated from these streams of sensor data (block 202), where the scene proxies geometrically describe the scene as a function of time. The scene proxies can then be stored (block 204). In a situation where a given end user either is, or will be, viewing the video on another computing device which is connected to a data communication network, the scene proxies can also be distributed to the end user (block 206). -
FIG. 3 illustrates an exemplary embodiment, in simplified form, of a process for generating the scene proxies from the one or more streams of sensor data that represent the scene. As exemplified inFIG. 3 , the process starts inblock 300 with generating a stream of mesh models of the scene and a corresponding stream of mesh texture maps from the streams of sensor data, where each of the mesh models includes a collection of vertices and a collection of polygonal faces that are formed by the vertices, and each of the mesh texture maps defines texture data for one or more points on each of the polygonal faces. Generally speaking and as is appreciated in the art of parametric texture mapping, the mesh texture maps can apply various textures to the polygonal faces in order to maximize the photo-realism of the objects that are represented by the mesh models. In other words, the texture data that is defined by the mesh texture maps can include one or more of color data, or specular highlight data, or transparency data, or reflection data, or shadowing data, among other things. Additionally, the mesh texture maps can define texture data for various points on each of the faces. By way of example but not limitation, texture data can be defined for just a single point (such as a centroid, among others) on a given face. Texture data can also be defined for each of the vertices of a given face. Texture data can also be defined for points along the edges of a given face between the vertices that form the edges, or in the interior of the face. - Referring again to
FIG. 3 , after the stream of mesh models and corresponding stream of mesh texture maps have been generated (block 300), the following actions then take place for each of the mesh models (block 302). The mesh model is broken down into one or more convex sections (block 304), and the following actions then take place for each of the convex sections of the mesh model (block 306). A 3D hull is defined that surrounds the convex section (block 308). The convex section is then surrounded with the 3D hull (block 310). The texture data that is associated with each of the polygonal faces in the convex section is then projected onto the 3D hull, where this projection produces a hull texture map for the convex section (block 312). - It will be appreciated that each of the mesh models can be broken down into one or more convex sections using various methods, one example of which will now be described in more detail.
-
FIG. 4 illustrates an exemplary embodiment, in simplified form, of a process for breaking down a given mesh model into one or more convex sections. As exemplified inFIG. 4 , the process starts inblock 400 with arbitrarily selecting one of the vertices in the mesh model. This arbitrarily selected one of the vertices is then assigned to be an initial element of a set of candidate vertices (block 402). A convex hull is then computed for the set of candidate vertices (block 404), where this computation can be performed using various conventional methods. An error metric for the convex hull is then computed (block 406). Then, whenever the error metric does not exceed a prescribed threshold (block 408, No), the following actions are performed. A prescribed number of other vertices in the mesh model that are not in the set of candidate vertices, and are not assigned to a convex section of the mesh model, and are directly connected (via an edge in the mesh model) to one of the candidate vertices, are selected (block 410). These selected other vertices are then added to the set of candidate vertices (block 412), and the actions of blocks 404-408 are repeated. In one embodiment of the video generation technique described herein the prescribed number is one. In another embodiment of the video generation technique the prescribed number is greater than one. - Referring again to
FIG. 4 , whenever the error metric exceeds the prescribed threshold (block 408, Yes), the following actions are performed. The vertices that are bounded by the convex hull are assigned to be a convex section of the mesh model (block 414). Whenever there are vertices in the mesh model that are not assigned to a convex section of the mesh model (block 416, No), one of the vertices in the mesh model that is not assigned to a convex section of the mesh model is then arbitrarily selected (block 418), and the actions of blocks 402-416 are repeated. Based on the process that is exemplified inFIG. 4 , it will be appreciated that each of the convex sections of each of the mesh models will include a plurality of vertices. -
FIG. 5 illustrates one embodiment, in simplified form, of a process for computing an error metric for the convex hull. As exemplified inFIG. 5 , the process starts inblock 500 with computing a shortest distance from the convex hull to each of the vertices that are inside the convex hull, where this computation produces a set of vertex-to-hull distances. The largest vertex-to-hull distance in this set is then determined (block 502). The error metric is then set equal to this largest vertex-to-hull distance (block 504). -
FIG. 6 illustrates another embodiment, in simplified form, of a process for computing an error metric for the convex hull. As exemplified inFIG. 6 , the process starts inblock 600 with computing a shortest distance from the convex hull to each of the vertices that are inside the convex hull, where this computation produces a set of vertex-to-hull distances. An average of the vertex-to-hull distances in this set is then computed (block 602). The error metric is then set equal to this average (block 604). - It will be appreciated that various methods can be used to define a 3D hull that surrounds a given convex section of a given mesh model, one example of which will now be described in more detail.
-
FIG. 7 illustrates an exemplary embodiment, in simplified form, of a process for defining a 3D hull that surrounds a given convex section of a given mesh model. As exemplified inFIG. 7 , the process starts inblock 700 with using a conventional principal component analysis procedure to identify a major axis of the vertices that are assigned to (and thus are in) the convex section, and also identify two minor axes of these vertices. A 3D hull that surrounds these vertices is then defined based on the major and two minor axes of these vertices (block 702). -
FIG. 8 illustrates an exemplary embodiment, in simplified form, of a process for projecting the texture data that is associated with each of the polygonal faces in a given convex section onto the 3D hull that surrounds the convex section. As exemplified inFIG. 8 , the following actions take place for each of the polygonal faces in the convex section (block 800). The one or more points on the face for which texture data is defined are projected along a normal to the face and onto the 3D hull (block 802). Then, for each of the projected points on the 3D hull (block 804), data is entered into the hull texture map for the convex section that associates the projected point on the 3D hull with the texture data that is defined for the point on the face that corresponds to this projected point (block 806), and data is entered into the hull texture map for the convex section that associates this projected point with the normal along which this projected point was projected (block 808). As is appreciated in the art of geometry, the normal to each of the faces in the convex section is known. As is also appreciated in the art of geometry, coordinates on the 3D hull uniquely identify the position of each projected point on the 3D hull. As such, each of the projected points on the 3D hull can be identified using its coordinates thereon. -
FIG. 9 illustrates an exemplary embodiment, in simplified form, of a process for storing the scene proxies. As exemplified inFIG. 9 , the following actions take place for each of the convex sections of each of the mesh models (block 900). The portion of the mesh model that is in the convex section is stored (block 902). A mathematical equation describing the 3D hull that surrounds the convex section is also stored (block 904). Data specifying the size of this 3D hull is also stored (block 906). Data specifying the position of this 3D hull in relation to the portion of the mesh model that is in the convex section is also stored (block 908). The hull texture map for the convex section is also stored (block 910). - It will be appreciated that various types of data can be used to specify the position of the 3D hull in relation to the portion of the mesh model that is in the convex section which is surrounded by the 3D hull. By way of example but not limitation, the position of one or more geometric anchor points on the 3D hull can be specified in relation to one or more of the vertices in the mesh model. Whenever the 3D hull that surrounds a given convex section is either a sphere or an ellipsoid, the data specifying the size of the 3D hull can be the lengths of the axes thereof, among other things. Whenever the 3D hull that surrounds a given convex section is a cube, the data specifying the size of the 3D hull can be the length of an edge thereof. Whenever the 3D hull that surrounds a given convex section is a rectangular cuboid, the data specifying the size of the 3D hull can be the height, length and depth thereof.
-
FIG. 10 illustrates an exemplary embodiment, in simplified form, of a process for distributing the scene proxies to an end user who either is, or will be, viewing the video on another computing device which is connected to a data communication network. As exemplified inFIG. 10 , the following actions take place for each of the convex sections of each of the mesh models (block 1000). The portion of the mesh model that is in the convex section is transmitted over the network to the other computing device (block 1002). A mathematical equation describing the 3D hull that surrounds the convex section is also transmitted over the network to the other computing device (block 1004). Data specifying the size of this 3D hull is also transmitted over the network to the other computing device (block 1006). Data specifying the position of this 3D hull in relation to the portion of the mesh model that is in the convex section is also transmitted over the network to the other computing device (block 1008). The hull texture map for the convex section is also transmitted over the network to the other computing device (block 1010). - This section provides a more detailed description of the end user presentation stage of the video processing pipeline.
-
FIG. 11 illustrates an exemplary embodiment, in simplified form, of a process for presenting a video of a scene to an end user. As exemplified inFIG. 11 , the process starts inblock 1100 with inputting scene proxies that geometrically describe the scene as a function of time. The scene proxies include a stream of mesh models of the scene, where each of the mesh models includes a collection of polygonal faces, and each of the mesh models is broken down into one or more convex sections. For each of the convex sections of each of the mesh models, the scene proxies also include a mathematical equation describing a 3D hull that surrounds the convex section, data specifying the size of this 3D hull, data specifying the position of this 3D hull in relation to the portion of the mesh model that is in the convex section, and a hull texture map for the convex section. This hull texture map includes data defining a plurality of points on the 3D hull that surrounds the convex section, and data for each of these points that associates the point with texture data and also associates the point with a normal along which the point was originally projected. - Referring again to
FIG. 11 , after the scene proxies have been input (block 1100), images of the scene are rendered from the scene proxies (block 1102). The images of the scene are then displayed on a display device (block 1104) so that they can be viewed and navigated by the end user. As described heretofore, the video that is being presented to the end user can be any type of video including, but not limited to, asynchronous single viewpoint video, or asynchronous free viewpoint video, or unidirectional live single viewpoint video, or unidirectional live free viewpoint video, or bidirectional live single viewpoint video, or bidirectional live free viewpoint video. -
FIG. 12 illustrates an exemplary embodiment, in simplified form, of a process for rendering images of the scene from the scene proxies. As exemplified inFIG. 12 , the following actions take place for each of the convex sections of each of the mesh models (block 1200). The portion of the mesh model that is in the convex section is rendered (block 1202). The mathematical equation describing a 3D hull that surrounds the convex section, the data specifying the size of this 3D hull, and the data specifying the position of this 3D hull in relation to the portion of the mesh model that is in the convex section are then used to surround the convex section with this 3D hull (block 1204). Then, for each of the points that is listed in the hull texture map for the convex section (block 1206), the point is projected along the normal that is associated with the point and onto the portion of the mesh model that is in the convex section (block 1208), and the texture data that is associated with the point is assigned to the corresponding projected point on the portion of the mesh model that is in the convex section (block 1210). - This section provides a more detailed description of exemplary types of single viewpoint video and exemplary types of free viewpoint video that are supported by the video generation technique embodiments described herein.
- Referring again to
FIG. 1 , one implementation of the single viewpoint embodiment of the video generation technique described heretofore supports asynchronous (i.e., non-live) single viewpoint video, and a similar implementation of the free viewpoint embodiment of the video generation technique described heretofore supports asynchronous free viewpoint video. Both of these implementations correspond to a situation where the streams of sensor data that are generated by the sensors are pre-captured 104, then post-processed 106, and the resulting scene proxies are then stored and can be transmitted in a one-to-many manner (i.e., broadcast) to one ormore end users 108. As such, there is effectively an unlimited amount of time available for theprocessing sub-stage 106. This allows a video producer to optionally manually “touch-up” the streams of sensor data that are input during thecapture sub-stage 104, and also optionally manually remove any 3D reconstruction artifacts that are introduced in theprocessing sub-stage 106. These particular implementations are referred to hereafter as the asynchronous single viewpoint video implementation and the asynchronous free viewpoint video implementation respectively. Exemplary types of video-based media that work well in the asynchronous single viewpoint video and asynchronous free viewpoint video implementations include movies, documentaries, sitcoms and other types of television shows, music videos, digital memories, and the like. Another exemplary type of video-based media that works well in the asynchronous single viewpoint video and asynchronous free viewpoint video implementations is the use of special effects technology where synthetic objects are realistically modeled, lit, shaded and added to a pre-captured scene. - Referring again to
FIG. 1 , another implementation of the single viewpoint embodiment of the video generation technique supports unidirectional (i.e., one-way) live single viewpoint video, and a similar implementation of the free viewpoint embodiment of the video generation technique supports unidirectional live free viewpoint video. Both of these implementations correspond to a situation where the streams of sensor data that are being generated by the sensors are concurrently captured 104 and processed 106, and the resulting scene proxies are stored and transmitted in a one-to-many manner on-the-fly (i.e., live) to one ormore end users 108. As such, each end user can view 114 the scene live (i.e., each use can view the scene at substantially the same time it is being captured 104). These particular implementations are referred to hereafter as the unidirectional live single viewpoint video implementation and the unidirectional live free viewpoint video implementation respectively. Exemplary types of video-based media that work well in the unidirectional live single viewpoint video and unidirectional live free viewpoint video implementations include sporting events, news programs, live concerts, and the like. - Referring again to
FIG. 1 , yet another implementation of the single viewpoint embodiment of the video generation technique supports bidirectional (i.e., two-way) live single viewpoint video (such as that which is associated with various video-conferencing/telepresence applications), and a similar implementation of the free viewpoint embodiment of the video generation technique supports bidirectional live free viewpoint video. These particular implementations are referred to hereafter as the bidirectional live single viewpoint video implementation and the bidirectional live free viewpoint video implementation respectively. The bidirectional live single/free viewpoint video implementation is generally the same as the unidirectional live single/free viewpoint video implementation with the following exception. In the bidirectional live single/free viewpoint video implementation a computing device at each physical location that is participating in a given video-conferencing/telepresence session is able to concurrently capture 104 streams of sensor data that are being generated by sensors which are capturing a local scene andprocess 106 these locally captured streams of sensor data, store and transmit the resulting local scene proxies in a one-to-many manner on the fly to the other physical locations that are participating in thesession 108, receive remote scene proxies from each of the remote physical locations that are participating in thesession 108, and render 112 each of the received proxies. - Referring again to
FIG. 1 , it will be appreciated that in the unidirectional and bidirectional live single and free viewpoint video implementations in order for an end user to be able to view the scene live, the generation, storage and distribution, and end user presentation stages 102/108/110 have to be completed within a very short period of time. The video generation technique embodiments described herein make this possible based on the aforementioned video size/data minimization that is achieved by the video generation technique embodiments. - While the video generation technique has been described by specific reference to embodiments thereof, it is understood that variations and modifications thereof can be made without departing from the true spirit and scope of the video generation technique. By way of example but not limitation, rather than supporting the generation, storage, distribution, and end user presentation of video, alternate embodiments of the video generation technique described herein are possible which support any other digital image application where a scene is represented by a mesh model and a corresponding mesh texture map which defines texture data for the mesh model.
- It is also noted that any or all of the aforementioned embodiments can be used in any combination desired to form additional hybrid embodiments. Although the video generation technique embodiments have been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described heretofore. Rather, the specific features and acts described heretofore are disclosed as example forms of implementing the claims.
- The video generation technique embodiments described herein are operational within numerous types of general purpose or special purpose computing system environments or configurations.
FIG. 13 illustrates a simplified example of a general-purpose computer system on which various embodiments and elements of the video generation technique, as described herein, may be implemented. It is noted that any boxes that are represented by broken or dashed lines inFIG. 13 represent alternate embodiments of the simplified computing device, and that any or all of these alternate embodiments, as described below, may be used in combination with other alternate embodiments that are described throughout this document. - For example,
FIG. 13 shows a general system diagram showing a simplified computing device 1300. Such computing devices can be typically be found in devices having at least some minimum computational capability, including, but not limited to, personal computers (PCs), server computers, handheld computing devices, laptop or mobile computers, communications devices such as cell phones and personal digital assistants (PDAs), multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, and audio or video media players. - To allow a device to implement the video generation technique embodiments described herein, the device should have a sufficient computational capability and system memory to enable basic computational operations. In particular, as illustrated by
FIG. 13 , the computational capability is generally illustrated by one or more processing unit(s) 1310, and may also include one or more graphics processing units (GPUs) 1315, either or both in communication withsystem memory 1320. Note that that the processing unit(s) 1310 may be specialized microprocessors (such as a digital signal processor (DSP), a very long instruction word (VLIW) processor, a field-programmable gate array (FPGA), or other micro-controller) or can be conventional central processing units (CPUs) having one or more processing cores including, but not limited to, specialized GPU-based cores in a multi-core CPU. - In addition, the simplified computing device 1300 of
FIG. 13 may also include other components, such as, for example, acommunications interface 1330. The simplified computing device 1300 ofFIG. 13 may also include one or more conventional computer input devices 1340 (e.g., pointing devices, keyboards, audio (e.g., voice) input/capture devices, video input/capture devices, haptic input devices, devices for receiving wired or wireless data transmissions, and the like). The simplified computing device 1300 ofFIG. 13 may also include other optional components, such as, for example, one or more conventional computer output devices 1350 (e.g., display device(s) 1355, audio output devices, video output devices, devices for transmitting wired or wireless data transmissions, and the like). Exemplary types of input devices (herein also referred to as user interface modalities) and display devices that are operable with the video generation technique embodiments described herein have been described heretofore. Note thattypical communications interfaces 1330, additional types of input andoutput devices storage devices 1360 for general-purpose computers are well known to those skilled in the art, and will not be described in detail herein. - The simplified computing device 1300 of
FIG. 13 may also include a variety of computer readable media. Computer readable media can be any available media that can be accessed by the computer 1300 viastorage devices 1360, and includes both volatile and nonvolatile media that is either removable 1370 and/or non-removable 1380, for storage of information such as computer-readable or computer-executable instructions, data structures, program modules, or other data. By way of example but not limitation, computer readable media may include computer storage media and communication media. Computer storage media includes, but is not limited to, computer or machine readable media or storage devices such as digital versatile disks (DVDs), compact discs (CDs), floppy disks, tape drives, hard drives, optical drives, solid state memory devices, random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, magnetic cassettes, magnetic tapes, magnetic disk storage, or other magnetic storage devices, or any other device which can be used to store the desired information and which can be accessed by one or more computing devices. - Storage of information such as computer-readable or computer-executable instructions, data structures, program modules, and the like, can also be accomplished by using any of a variety of the aforementioned communication media to encode one or more modulated data signals or carrier waves, or other transport mechanisms or communications protocols, and includes any wired or wireless information delivery mechanism. Note that the terms “modulated data signal” or “carrier wave” generally refer to a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. For example, communication media includes wired media such as a wired network or direct-wired connection carrying one or more modulated data signals, and wireless media such as acoustic, radio frequency (RF), infrared, laser, and other wireless media for transmitting and/or receiving one or more modulated data signals or carrier waves. Combinations of the any of the above should also be included within the scope of communication media.
- Furthermore, software, programs, and/or computer program products embodying the some or all of the various embodiments of the video generation technique described herein, or portions thereof, may be stored, received, transmitted, or read from any desired combination of computer or machine readable media or storage devices and communication media in the form of computer executable instructions or other data structures.
- Finally, the video generation technique embodiments described herein may be further described in the general context of computer-executable instructions, such as program modules, being executed by a computing device. Generally, program modules include routines, programs, objects, components, data structures, and the like, that perform particular tasks or implement particular abstract data types. The video generation technique embodiments may also be practiced in distributed computing environments where tasks are performed by one or more remote processing devices, or within a cloud of one or more devices, that are linked through one or more communications networks. In a distributed computing environment, program modules may be located in both local and remote computer storage media including media storage devices. Additionally, the aforementioned instructions may be implemented, in part or in whole, as hardware logic circuits, which may or may not include a processor.
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/599,263 US8917270B2 (en) | 2012-05-31 | 2012-08-30 | Video generation using three-dimensional hulls |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261653983P | 2012-05-31 | 2012-05-31 | |
US13/599,263 US8917270B2 (en) | 2012-05-31 | 2012-08-30 | Video generation using three-dimensional hulls |
Publications (2)
Publication Number | Publication Date |
---|---|
US20130321410A1 true US20130321410A1 (en) | 2013-12-05 |
US8917270B2 US8917270B2 (en) | 2014-12-23 |
Family
ID=49669652
Family Applications (10)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/566,877 Active 2034-02-16 US9846960B2 (en) | 2012-05-31 | 2012-08-03 | Automated camera array calibration |
US13/588,917 Abandoned US20130321586A1 (en) | 2012-05-31 | 2012-08-17 | Cloud based free viewpoint video streaming |
US13/598,536 Abandoned US20130321593A1 (en) | 2012-05-31 | 2012-08-29 | View frustum culling for free viewpoint video (fvv) |
US13/599,263 Active 2033-02-25 US8917270B2 (en) | 2012-05-31 | 2012-08-30 | Video generation using three-dimensional hulls |
US13/599,170 Abandoned US20130321396A1 (en) | 2012-05-31 | 2012-08-30 | Multi-input free viewpoint video processing pipeline |
US13/599,678 Abandoned US20130321566A1 (en) | 2012-05-31 | 2012-08-30 | Audio source positioning using a camera |
US13/599,436 Active 2034-05-03 US9251623B2 (en) | 2012-05-31 | 2012-08-30 | Glancing angle exclusion |
US13/598,747 Abandoned US20130321575A1 (en) | 2012-05-31 | 2012-08-30 | High definition bubbles for rendering free viewpoint video |
US13/614,852 Active 2033-10-29 US9256980B2 (en) | 2012-05-31 | 2012-09-13 | Interpolating oriented disks in 3D space for constructing high fidelity geometric proxies from point clouds |
US13/790,158 Abandoned US20130321413A1 (en) | 2012-05-31 | 2013-03-08 | Video generation using convict hulls |
Family Applications Before (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/566,877 Active 2034-02-16 US9846960B2 (en) | 2012-05-31 | 2012-08-03 | Automated camera array calibration |
US13/588,917 Abandoned US20130321586A1 (en) | 2012-05-31 | 2012-08-17 | Cloud based free viewpoint video streaming |
US13/598,536 Abandoned US20130321593A1 (en) | 2012-05-31 | 2012-08-29 | View frustum culling for free viewpoint video (fvv) |
Family Applications After (6)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/599,170 Abandoned US20130321396A1 (en) | 2012-05-31 | 2012-08-30 | Multi-input free viewpoint video processing pipeline |
US13/599,678 Abandoned US20130321566A1 (en) | 2012-05-31 | 2012-08-30 | Audio source positioning using a camera |
US13/599,436 Active 2034-05-03 US9251623B2 (en) | 2012-05-31 | 2012-08-30 | Glancing angle exclusion |
US13/598,747 Abandoned US20130321575A1 (en) | 2012-05-31 | 2012-08-30 | High definition bubbles for rendering free viewpoint video |
US13/614,852 Active 2033-10-29 US9256980B2 (en) | 2012-05-31 | 2012-09-13 | Interpolating oriented disks in 3D space for constructing high fidelity geometric proxies from point clouds |
US13/790,158 Abandoned US20130321413A1 (en) | 2012-05-31 | 2013-03-08 | Video generation using convict hulls |
Country Status (1)
Country | Link |
---|---|
US (10) | US9846960B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10824226B2 (en) * | 2017-06-07 | 2020-11-03 | Google Llc | High speed, high-fidelity face tracking |
Families Citing this family (243)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101288105B (en) * | 2005-10-11 | 2016-05-25 | 苹果公司 | For the method and system of object reconstruction |
US8866920B2 (en) | 2008-05-20 | 2014-10-21 | Pelican Imaging Corporation | Capturing and processing of images using monolithic camera array with heterogeneous imagers |
US11792538B2 (en) | 2008-05-20 | 2023-10-17 | Adeia Imaging Llc | Capturing and processing of images including occlusions focused on an image sensor by a lens stack array |
US9892546B2 (en) * | 2010-06-30 | 2018-02-13 | Primal Space Systems, Inc. | Pursuit path camera model method and system |
US20150373153A1 (en) | 2010-06-30 | 2015-12-24 | Primal Space Systems, Inc. | System and method to reduce bandwidth requirement for visibility event packet streaming using a predicted maximal view frustum and predicted maximal viewpoint extent, each computed at runtime |
US8878950B2 (en) | 2010-12-14 | 2014-11-04 | Pelican Imaging Corporation | Systems and methods for synthesizing high resolution images using super-resolution processes |
WO2013049699A1 (en) | 2011-09-28 | 2013-04-04 | Pelican Imaging Corporation | Systems and methods for encoding and decoding light field image files |
US9001960B2 (en) * | 2012-01-04 | 2015-04-07 | General Electric Company | Method and apparatus for reducing noise-related imaging artifacts |
US9300841B2 (en) * | 2012-06-25 | 2016-03-29 | Yoldas Askan | Method of generating a smooth image from point cloud data |
CN107346061B (en) | 2012-08-21 | 2020-04-24 | 快图有限公司 | System and method for parallax detection and correction in images captured using an array camera |
US10079968B2 (en) | 2012-12-01 | 2018-09-18 | Qualcomm Incorporated | Camera having additional functionality based on connectivity with a host device |
US9519968B2 (en) * | 2012-12-13 | 2016-12-13 | Hewlett-Packard Development Company, L.P. | Calibrating visual sensors using homography operators |
US9224227B2 (en) * | 2012-12-21 | 2015-12-29 | Nvidia Corporation | Tile shader for screen space, a method of rendering and a graphics processing unit employing the tile shader |
US8866912B2 (en) | 2013-03-10 | 2014-10-21 | Pelican Imaging Corporation | System and methods for calibration of an array camera using a single captured image |
US9144905B1 (en) * | 2013-03-13 | 2015-09-29 | Hrl Laboratories, Llc | Device and method to identify functional parts of tools for robotic manipulation |
WO2014159779A1 (en) | 2013-03-14 | 2014-10-02 | Pelican Imaging Corporation | Systems and methods for reducing motion blur in images or video in ultra low light with array cameras |
US9445003B1 (en) * | 2013-03-15 | 2016-09-13 | Pelican Imaging Corporation | Systems and methods for synthesizing high resolution images using image deconvolution based on motion and depth information |
CN105339865B (en) * | 2013-04-04 | 2018-05-22 | 索尼公司 | Display control unit, display control method and computer-readable medium |
US9191643B2 (en) | 2013-04-15 | 2015-11-17 | Microsoft Technology Licensing, Llc | Mixing infrared and color component data point clouds |
US10262462B2 (en) | 2014-04-18 | 2019-04-16 | Magic Leap, Inc. | Systems and methods for augmented and virtual reality |
US9208609B2 (en) * | 2013-07-01 | 2015-12-08 | Mitsubishi Electric Research Laboratories, Inc. | Method for fitting primitive shapes to 3D point clouds using distance fields |
WO2015010098A1 (en) * | 2013-07-19 | 2015-01-22 | Google Inc. | Asymmetric sensor array for capturing images |
US10140751B2 (en) * | 2013-08-08 | 2018-11-27 | Imagination Technologies Limited | Normal offset smoothing |
CN104424655A (en) * | 2013-09-10 | 2015-03-18 | 鸿富锦精密工业(深圳)有限公司 | System and method for reconstructing point cloud curved surface |
JP6476658B2 (en) * | 2013-09-11 | 2019-03-06 | ソニー株式会社 | Image processing apparatus and method |
US9286718B2 (en) * | 2013-09-27 | 2016-03-15 | Ortery Technologies, Inc. | Method using 3D geometry data for virtual reality image presentation and control in 3D space |
US10591969B2 (en) | 2013-10-25 | 2020-03-17 | Google Technology Holdings LLC | Sensor-based near-field communication authentication |
US9836885B1 (en) | 2013-10-25 | 2017-12-05 | Appliance Computing III, Inc. | Image-based rendering of real spaces |
US9888333B2 (en) * | 2013-11-11 | 2018-02-06 | Google Technology Holdings LLC | Three-dimensional audio rendering techniques |
US10119808B2 (en) | 2013-11-18 | 2018-11-06 | Fotonation Limited | Systems and methods for estimating depth from projected texture using camera arrays |
EP3075140B1 (en) | 2013-11-26 | 2018-06-13 | FotoNation Cayman Limited | Array camera configurations incorporating multiple constituent array cameras |
EP2881918B1 (en) * | 2013-12-06 | 2018-02-07 | My Virtual Reality Software AS | Method for visualizing three-dimensional data |
US9233469B2 (en) * | 2014-02-13 | 2016-01-12 | GM Global Technology Operations LLC | Robotic system with 3D box location functionality |
US9530226B2 (en) * | 2014-02-18 | 2016-12-27 | Par Technology Corporation | Systems and methods for optimizing N dimensional volume data for transmission |
CN106255938B (en) | 2014-02-28 | 2019-12-17 | 惠普发展公司,有限责任合伙企业 | Calibration of sensors and projectors |
US9396586B2 (en) | 2014-03-14 | 2016-07-19 | Matterport, Inc. | Processing and/or transmitting 3D data |
US9332285B1 (en) * | 2014-05-28 | 2016-05-03 | Lucasfilm Entertainment Company Ltd. | Switching modes of a media content item |
CN104089628B (en) * | 2014-06-30 | 2017-02-08 | 中国科学院光电研究院 | Self-adaption geometric calibration method of light field camera |
US11051000B2 (en) | 2014-07-14 | 2021-06-29 | Mitsubishi Electric Research Laboratories, Inc. | Method for calibrating cameras with non-overlapping views |
US10169909B2 (en) * | 2014-08-07 | 2019-01-01 | Pixar | Generating a volumetric projection for an object |
US10750153B2 (en) * | 2014-09-22 | 2020-08-18 | Samsung Electronics Company, Ltd. | Camera system for three-dimensional video |
US11205305B2 (en) | 2014-09-22 | 2021-12-21 | Samsung Electronics Company, Ltd. | Presentation of three-dimensional video |
US10250871B2 (en) | 2014-09-29 | 2019-04-02 | Fotonation Limited | Systems and methods for dynamic calibration of array cameras |
US9600892B2 (en) * | 2014-11-06 | 2017-03-21 | Symbol Technologies, Llc | Non-parametric method of and system for estimating dimensions of objects of arbitrary shape |
US10154246B2 (en) * | 2014-11-20 | 2018-12-11 | Cappasity Inc. | Systems and methods for 3D capturing of objects and motion sequences using multiple range and RGB cameras |
US9396554B2 (en) | 2014-12-05 | 2016-07-19 | Symbol Technologies, Llc | Apparatus for and method of estimating dimensions of an object associated with a code in automatic response to reading the code |
DE102014118989A1 (en) * | 2014-12-18 | 2016-06-23 | Connaught Electronics Ltd. | Method for calibrating a camera system, camera system and motor vehicle |
US11019330B2 (en) * | 2015-01-19 | 2021-05-25 | Aquifi, Inc. | Multiple camera system with auto recalibration |
US9686520B2 (en) | 2015-01-22 | 2017-06-20 | Microsoft Technology Licensing, Llc | Reconstructing viewport upon user viewpoint misprediction |
US9661312B2 (en) * | 2015-01-22 | 2017-05-23 | Microsoft Technology Licensing, Llc | Synthesizing second eye viewport using interleaving |
WO2016126816A2 (en) * | 2015-02-03 | 2016-08-11 | Dolby Laboratories Licensing Corporation | Post-conference playback system having higher perceived quality than originally heard in the conference |
CN107430446A (en) | 2015-03-01 | 2017-12-01 | 奈克斯特Vr股份有限公司 | The method and apparatus for carrying out environment measurement and/or such measurement being used in 3D rendering renders |
EP3070942B1 (en) * | 2015-03-17 | 2023-11-22 | InterDigital CE Patent Holdings | Method and apparatus for displaying light field video data |
US10878278B1 (en) * | 2015-05-16 | 2020-12-29 | Sturfee, Inc. | Geo-localization based on remotely sensed visual features |
WO2016198059A1 (en) * | 2015-06-11 | 2016-12-15 | Conti Temic Microelectronic Gmbh | Method for generating a virtual image of vehicle surroundings |
US9460513B1 (en) | 2015-06-17 | 2016-10-04 | Mitsubishi Electric Research Laboratories, Inc. | Method for reconstructing a 3D scene as a 3D model using images acquired by 3D sensors and omnidirectional cameras |
US10554713B2 (en) | 2015-06-19 | 2020-02-04 | Microsoft Technology Licensing, Llc | Low latency application streaming using temporal frame transformation |
KR101835434B1 (en) * | 2015-07-08 | 2018-03-09 | 고려대학교 산학협력단 | Method and Apparatus for generating a protection image, Method for mapping between image pixel and depth value |
US9848212B2 (en) * | 2015-07-10 | 2017-12-19 | Futurewei Technologies, Inc. | Multi-view video streaming with fast and smooth view switch |
US10701318B2 (en) * | 2015-08-14 | 2020-06-30 | Pcms Holdings, Inc. | System and method for augmented reality multi-view telepresence |
GB2543776B (en) * | 2015-10-27 | 2019-02-06 | Imagination Tech Ltd | Systems and methods for processing images of objects |
US10812778B1 (en) | 2015-11-09 | 2020-10-20 | Cognex Corporation | System and method for calibrating one or more 3D sensors mounted on a moving manipulator |
US11562502B2 (en) * | 2015-11-09 | 2023-01-24 | Cognex Corporation | System and method for calibrating a plurality of 3D sensors with respect to a motion conveyance |
US20180374239A1 (en) * | 2015-11-09 | 2018-12-27 | Cognex Corporation | System and method for field calibration of a vision system imaging two opposite sides of a calibration object |
US10757394B1 (en) * | 2015-11-09 | 2020-08-25 | Cognex Corporation | System and method for calibrating a plurality of 3D sensors with respect to a motion conveyance |
CN108369639B (en) * | 2015-12-11 | 2022-06-21 | 虞晶怡 | Image-based image rendering method and system using multiple cameras and depth camera array |
US10352689B2 (en) | 2016-01-28 | 2019-07-16 | Symbol Technologies, Llc | Methods and systems for high precision locationing with depth values |
US10145955B2 (en) | 2016-02-04 | 2018-12-04 | Symbol Technologies, Llc | Methods and systems for processing point-cloud data with a line scanner |
KR20170095030A (en) * | 2016-02-12 | 2017-08-22 | 삼성전자주식회사 | Scheme for supporting virtual reality content display in communication system |
CN107097698B (en) * | 2016-02-22 | 2021-10-01 | 福特环球技术公司 | Inflatable airbag system for a vehicle seat, seat assembly and method for adjusting the same |
US11573325B2 (en) | 2016-03-11 | 2023-02-07 | Kaarta, Inc. | Systems and methods for improvements in scanning and mapping |
EP3427008B1 (en) | 2016-03-11 | 2022-09-07 | Kaarta, Inc. | Laser scanner with real-time, online ego-motion estimation |
US11567201B2 (en) | 2016-03-11 | 2023-01-31 | Kaarta, Inc. | Laser scanner with real-time, online ego-motion estimation |
US10989542B2 (en) | 2016-03-11 | 2021-04-27 | Kaarta, Inc. | Aligning measured signal data with slam localization data and uses thereof |
US10721451B2 (en) | 2016-03-23 | 2020-07-21 | Symbol Technologies, Llc | Arrangement for, and method of, loading freight into a shipping container |
US9965870B2 (en) | 2016-03-29 | 2018-05-08 | Institut National D'optique | Camera calibration method using a calibration target |
WO2017172528A1 (en) | 2016-04-01 | 2017-10-05 | Pcms Holdings, Inc. | Apparatus and method for supporting interactive augmented reality functionalities |
US9805240B1 (en) | 2016-04-18 | 2017-10-31 | Symbol Technologies, Llc | Barcode scanning and dimensioning |
CN107341768B (en) * | 2016-04-29 | 2022-03-11 | 微软技术许可有限责任公司 | Grid noise reduction |
US10376320B2 (en) | 2016-05-11 | 2019-08-13 | Affera, Inc. | Anatomical model generation |
EP3455756A2 (en) | 2016-05-12 | 2019-03-20 | Affera, Inc. | Anatomical model controlling |
EP3264759A1 (en) | 2016-06-30 | 2018-01-03 | Thomson Licensing | An apparatus and a method for generating data representative of a pixel beam |
US10192345B2 (en) * | 2016-07-19 | 2019-01-29 | Qualcomm Incorporated | Systems and methods for improved surface normal estimation |
WO2018022882A1 (en) * | 2016-07-27 | 2018-02-01 | R-Stor Inc. | Method and apparatus for bonding communication technologies |
US10574909B2 (en) | 2016-08-08 | 2020-02-25 | Microsoft Technology Licensing, Llc | Hybrid imaging sensor for structured light object capture |
US10776661B2 (en) | 2016-08-19 | 2020-09-15 | Symbol Technologies, Llc | Methods, systems and apparatus for segmenting and dimensioning objects |
US9980078B2 (en) | 2016-10-14 | 2018-05-22 | Nokia Technologies Oy | Audio object modification in free-viewpoint rendering |
US10229533B2 (en) * | 2016-11-03 | 2019-03-12 | Mitsubishi Electric Research Laboratories, Inc. | Methods and systems for fast resampling method and apparatus for point cloud data |
US11042161B2 (en) | 2016-11-16 | 2021-06-22 | Symbol Technologies, Llc | Navigation control method and apparatus in a mobile automation system |
US10451405B2 (en) | 2016-11-22 | 2019-10-22 | Symbol Technologies, Llc | Dimensioning system for, and method of, dimensioning freight in motion along an unconstrained path in a venue |
JP6948171B2 (en) * | 2016-11-30 | 2021-10-13 | キヤノン株式会社 | Image processing equipment and image processing methods, programs |
WO2018100928A1 (en) | 2016-11-30 | 2018-06-07 | キヤノン株式会社 | Image processing device and method |
EP3336801A1 (en) * | 2016-12-19 | 2018-06-20 | Thomson Licensing | Method and apparatus for constructing lighting environment representations of 3d scenes |
US10354411B2 (en) | 2016-12-20 | 2019-07-16 | Symbol Technologies, Llc | Methods, systems and apparatus for segmenting objects |
JP7320352B2 (en) * | 2016-12-28 | 2023-08-03 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 3D model transmission method, 3D model reception method, 3D model transmission device, and 3D model reception device |
US11096004B2 (en) | 2017-01-23 | 2021-08-17 | Nokia Technologies Oy | Spatial audio rendering point extension |
US11665308B2 (en) | 2017-01-31 | 2023-05-30 | Tetavi, Ltd. | System and method for rendering free viewpoint video for sport applications |
WO2018147329A1 (en) * | 2017-02-10 | 2018-08-16 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | Free-viewpoint image generation method and free-viewpoint image generation system |
JP7086522B2 (en) * | 2017-02-28 | 2022-06-20 | キヤノン株式会社 | Image processing equipment, information processing methods and programs |
US10531219B2 (en) | 2017-03-20 | 2020-01-07 | Nokia Technologies Oy | Smooth rendering of overlapping audio-object interactions |
WO2018172614A1 (en) | 2017-03-22 | 2018-09-27 | Nokia Technologies Oy | A method and an apparatus and a computer program product for adaptive streaming |
US10726574B2 (en) * | 2017-04-11 | 2020-07-28 | Dolby Laboratories Licensing Corporation | Passive multi-wearable-devices tracking |
JP6922369B2 (en) * | 2017-04-14 | 2021-08-18 | 富士通株式会社 | Viewpoint selection support program, viewpoint selection support method and viewpoint selection support device |
US10939038B2 (en) * | 2017-04-24 | 2021-03-02 | Intel Corporation | Object pre-encoding for 360-degree view for optimal quality and latency |
WO2018204342A1 (en) | 2017-05-01 | 2018-11-08 | Symbol Technologies, Llc | Product status detection system |
US10591918B2 (en) | 2017-05-01 | 2020-03-17 | Symbol Technologies, Llc | Fixed segmented lattice planning for a mobile automation apparatus |
US10726273B2 (en) | 2017-05-01 | 2020-07-28 | Symbol Technologies, Llc | Method and apparatus for shelf feature and object placement detection from shelf images |
US11367092B2 (en) | 2017-05-01 | 2022-06-21 | Symbol Technologies, Llc | Method and apparatus for extracting and processing price text from an image set |
US11449059B2 (en) | 2017-05-01 | 2022-09-20 | Symbol Technologies, Llc | Obstacle detection for a mobile automation apparatus |
US10949798B2 (en) | 2017-05-01 | 2021-03-16 | Symbol Technologies, Llc | Multimodal localization and mapping for a mobile automation apparatus |
US10663590B2 (en) | 2017-05-01 | 2020-05-26 | Symbol Technologies, Llc | Device and method for merging lidar data |
US11074036B2 (en) | 2017-05-05 | 2021-07-27 | Nokia Technologies Oy | Metadata-free audio-object interactions |
WO2018201423A1 (en) | 2017-05-05 | 2018-11-08 | Symbol Technologies, Llc | Method and apparatus for detecting and interpreting price label text |
CN108881784B (en) * | 2017-05-12 | 2020-07-03 | 腾讯科技(深圳)有限公司 | Virtual scene implementation method and device, terminal and server |
US10165386B2 (en) | 2017-05-16 | 2018-12-25 | Nokia Technologies Oy | VR audio superzoom |
US10154176B1 (en) * | 2017-05-30 | 2018-12-11 | Intel Corporation | Calibrating depth cameras using natural objects with expected shapes |
CN110999281B (en) | 2017-06-09 | 2021-11-26 | Pcms控股公司 | Method and device for allowing exploration in virtual landscape |
BR102017012517A2 (en) * | 2017-06-12 | 2018-12-26 | Samsung Eletrônica da Amazônia Ltda. | method for 360 ° media display or bubble interface |
CN110832553A (en) | 2017-06-29 | 2020-02-21 | 索尼公司 | Image processing apparatus, image processing method, and program |
JP6948175B2 (en) | 2017-07-06 | 2021-10-13 | キヤノン株式会社 | Image processing device and its control method |
US11049218B2 (en) | 2017-08-11 | 2021-06-29 | Samsung Electronics Company, Ltd. | Seamless image stitching |
EP3669333A4 (en) * | 2017-08-15 | 2021-04-07 | Nokia Technologies Oy | Sequential encoding and decoding of volymetric video |
EP3669330A4 (en) * | 2017-08-15 | 2021-04-07 | Nokia Technologies Oy | Encoding and decoding of volumetric video |
US11290758B2 (en) * | 2017-08-30 | 2022-03-29 | Samsung Electronics Co., Ltd. | Method and apparatus of point-cloud streaming |
JP6409107B1 (en) * | 2017-09-06 | 2018-10-17 | キヤノン株式会社 | Information processing apparatus, information processing method, and program |
US10572763B2 (en) | 2017-09-07 | 2020-02-25 | Symbol Technologies, Llc | Method and apparatus for support surface edge detection |
US10521914B2 (en) | 2017-09-07 | 2019-12-31 | Symbol Technologies, Llc | Multi-sensor object recognition system and method |
US11818401B2 (en) | 2017-09-14 | 2023-11-14 | Apple Inc. | Point cloud geometry compression using octrees and binary arithmetic encoding with adaptive look-up tables |
US10861196B2 (en) * | 2017-09-14 | 2020-12-08 | Apple Inc. | Point cloud compression |
US10897269B2 (en) | 2017-09-14 | 2021-01-19 | Apple Inc. | Hierarchical point cloud compression |
US11113845B2 (en) | 2017-09-18 | 2021-09-07 | Apple Inc. | Point cloud compression using non-cubic projections and masks |
US10909725B2 (en) | 2017-09-18 | 2021-02-02 | Apple Inc. | Point cloud compression |
JP6433559B1 (en) * | 2017-09-19 | 2018-12-05 | キヤノン株式会社 | Providing device, providing method, and program |
JP6425780B1 (en) | 2017-09-22 | 2018-11-21 | キヤノン株式会社 | Image processing system, image processing apparatus, image processing method and program |
CN107610182B (en) * | 2017-09-22 | 2018-09-11 | 哈尔滨工业大学 | A kind of scaling method at light-field camera microlens array center |
US11395087B2 (en) | 2017-09-29 | 2022-07-19 | Nokia Technologies Oy | Level-based audio-object interactions |
EP3467777A1 (en) * | 2017-10-06 | 2019-04-10 | Thomson Licensing | A method and apparatus for encoding/decoding the colors of a point cloud representing a 3d object |
WO2019099605A1 (en) | 2017-11-17 | 2019-05-23 | Kaarta, Inc. | Methods and systems for geo-referencing mapping systems |
US10607373B2 (en) | 2017-11-22 | 2020-03-31 | Apple Inc. | Point cloud compression with closed-loop color conversion |
US10951879B2 (en) | 2017-12-04 | 2021-03-16 | Canon Kabushiki Kaisha | Method, system and apparatus for capture of image data for free viewpoint video |
US11430412B2 (en) * | 2017-12-19 | 2022-08-30 | Sony Interactive Entertainment Inc. | Freely selected point of view image generating apparatus, reference image data generating apparatus, freely selected point of view image generating method, and reference image data generating method |
KR102334070B1 (en) | 2018-01-18 | 2021-12-03 | 삼성전자주식회사 | Electric apparatus and method for control thereof |
WO2019151569A1 (en) * | 2018-01-30 | 2019-08-08 | 가이아쓰리디 주식회사 | Method for providing three-dimensional geographic information system web service |
US10417806B2 (en) * | 2018-02-15 | 2019-09-17 | JJK Holdings, LLC | Dynamic local temporal-consistent textured mesh compression |
JP2019144958A (en) * | 2018-02-22 | 2019-08-29 | キヤノン株式会社 | Image processing device, image processing method, and program |
WO2019165194A1 (en) | 2018-02-23 | 2019-08-29 | Kaarta, Inc. | Methods and systems for processing and colorizing point clouds and meshes |
US10542368B2 (en) | 2018-03-27 | 2020-01-21 | Nokia Technologies Oy | Audio content modification for playback audio |
US11308577B2 (en) * | 2018-04-04 | 2022-04-19 | Sony Interactive Entertainment Inc. | Reference image generation apparatus, display image generation apparatus, reference image generation method, and display image generation method |
US10740911B2 (en) | 2018-04-05 | 2020-08-11 | Symbol Technologies, Llc | Method, system and apparatus for correcting translucency artifacts in data representing a support structure |
US10809078B2 (en) | 2018-04-05 | 2020-10-20 | Symbol Technologies, Llc | Method, system and apparatus for dynamic path generation |
US11327504B2 (en) | 2018-04-05 | 2022-05-10 | Symbol Technologies, Llc | Method, system and apparatus for mobile automation apparatus localization |
US10823572B2 (en) | 2018-04-05 | 2020-11-03 | Symbol Technologies, Llc | Method, system and apparatus for generating navigational data |
US10832436B2 (en) | 2018-04-05 | 2020-11-10 | Symbol Technologies, Llc | Method, system and apparatus for recovering label positions |
US11010928B2 (en) | 2018-04-10 | 2021-05-18 | Apple Inc. | Adaptive distance based point cloud compression |
US10909727B2 (en) | 2018-04-10 | 2021-02-02 | Apple Inc. | Hierarchical point cloud compression with smoothing |
US10939129B2 (en) | 2018-04-10 | 2021-03-02 | Apple Inc. | Point cloud compression |
US10909726B2 (en) | 2018-04-10 | 2021-02-02 | Apple Inc. | Point cloud compression |
US11017566B1 (en) | 2018-07-02 | 2021-05-25 | Apple Inc. | Point cloud compression with adaptive filtering |
US11202098B2 (en) | 2018-07-05 | 2021-12-14 | Apple Inc. | Point cloud compression with multi-resolution video encoding |
WO2020009826A1 (en) | 2018-07-05 | 2020-01-09 | Kaarta, Inc. | Methods and systems for auto-leveling of point clouds and 3d models |
US11012713B2 (en) | 2018-07-12 | 2021-05-18 | Apple Inc. | Bit stream structure for compressed point cloud data |
US11367224B2 (en) | 2018-10-02 | 2022-06-21 | Apple Inc. | Occupancy map block-to-patch information compression |
US11010920B2 (en) | 2018-10-05 | 2021-05-18 | Zebra Technologies Corporation | Method, system and apparatus for object detection in point clouds |
US11506483B2 (en) | 2018-10-05 | 2022-11-22 | Zebra Technologies Corporation | Method, system and apparatus for support structure depth determination |
US10972835B2 (en) * | 2018-11-01 | 2021-04-06 | Sennheiser Electronic Gmbh & Co. Kg | Conference system with a microphone array system and a method of speech acquisition in a conference system |
US11090811B2 (en) | 2018-11-13 | 2021-08-17 | Zebra Technologies Corporation | Method and apparatus for labeling of support structures |
US11003188B2 (en) | 2018-11-13 | 2021-05-11 | Zebra Technologies Corporation | Method, system and apparatus for obstacle handling in navigational path generation |
US11589026B2 (en) * | 2018-11-21 | 2023-02-21 | Beijing Boe Optoelectronics Technology Co., Ltd. | Method for generating and displaying panorama images based on rendering engine and a display apparatus |
CN109618122A (en) * | 2018-12-07 | 2019-04-12 | 合肥万户网络技术有限公司 | A kind of virtual office conference system |
US11079240B2 (en) | 2018-12-07 | 2021-08-03 | Zebra Technologies Corporation | Method, system and apparatus for adaptive particle filter localization |
US11416000B2 (en) | 2018-12-07 | 2022-08-16 | Zebra Technologies Corporation | Method and apparatus for navigational ray tracing |
US11100303B2 (en) | 2018-12-10 | 2021-08-24 | Zebra Technologies Corporation | Method, system and apparatus for auxiliary label detection and association |
US11423572B2 (en) | 2018-12-12 | 2022-08-23 | Analog Devices, Inc. | Built-in calibration of time-of-flight depth imaging systems |
US11015938B2 (en) | 2018-12-12 | 2021-05-25 | Zebra Technologies Corporation | Method, system and apparatus for navigational assistance |
US10731970B2 (en) | 2018-12-13 | 2020-08-04 | Zebra Technologies Corporation | Method, system and apparatus for support structure detection |
WO2020122675A1 (en) * | 2018-12-13 | 2020-06-18 | 삼성전자주식회사 | Method, device, and computer-readable recording medium for compressing 3d mesh content |
US10818077B2 (en) | 2018-12-14 | 2020-10-27 | Canon Kabushiki Kaisha | Method, system and apparatus for controlling a virtual camera |
CA3028708A1 (en) | 2018-12-28 | 2020-06-28 | Zih Corp. | Method, system and apparatus for dynamic loop closure in mapping trajectories |
JP7211835B2 (en) * | 2019-02-04 | 2023-01-24 | i-PRO株式会社 | IMAGING SYSTEM AND SYNCHRONIZATION CONTROL METHOD |
WO2020164044A1 (en) * | 2019-02-14 | 2020-08-20 | 北京大学深圳研究生院 | Free-viewpoint image synthesis method, device, and apparatus |
JP6647433B1 (en) * | 2019-02-19 | 2020-02-14 | 株式会社メディア工房 | Point cloud data communication system, point cloud data transmission device, and point cloud data transmission method |
US10797090B2 (en) | 2019-02-27 | 2020-10-06 | Semiconductor Components Industries, Llc | Image sensor with near-infrared and visible light phase detection pixels |
US20200288112A1 (en) | 2019-03-07 | 2020-09-10 | Alibaba Group Holding Limited | Method, apparatus, medium, and device for processing multi-angle free-perspective video data |
US11057564B2 (en) | 2019-03-28 | 2021-07-06 | Apple Inc. | Multiple layer flexure for supporting a moving image sensor |
JP2020173629A (en) * | 2019-04-11 | 2020-10-22 | キヤノン株式会社 | Image processing system, virtual viewpoint video generation system, and control method and program of image processing system |
US11402846B2 (en) | 2019-06-03 | 2022-08-02 | Zebra Technologies Corporation | Method, system and apparatus for mitigating data capture light leakage |
US11662739B2 (en) | 2019-06-03 | 2023-05-30 | Zebra Technologies Corporation | Method, system and apparatus for adaptive ceiling-based localization |
US11200677B2 (en) | 2019-06-03 | 2021-12-14 | Zebra Technologies Corporation | Method, system and apparatus for shelf edge detection |
US11341663B2 (en) | 2019-06-03 | 2022-05-24 | Zebra Technologies Corporation | Method, system and apparatus for detecting support structure obstructions |
US11151743B2 (en) | 2019-06-03 | 2021-10-19 | Zebra Technologies Corporation | Method, system and apparatus for end of aisle detection |
US11080566B2 (en) | 2019-06-03 | 2021-08-03 | Zebra Technologies Corporation | Method, system and apparatus for gap detection in support structures with peg regions |
US11960286B2 (en) | 2019-06-03 | 2024-04-16 | Zebra Technologies Corporation | Method, system and apparatus for dynamic task sequencing |
US11711544B2 (en) | 2019-07-02 | 2023-07-25 | Apple Inc. | Point cloud compression with supplemental information messages |
CN110624220B (en) * | 2019-09-04 | 2021-05-04 | 福建师范大学 | Method for obtaining optimal standing long jump technical template |
KR102646521B1 (en) | 2019-09-17 | 2024-03-21 | 인트린식 이노베이션 엘엘씨 | Surface modeling system and method using polarization cue |
US11627314B2 (en) | 2019-09-27 | 2023-04-11 | Apple Inc. | Video-based point cloud compression with non-normative smoothing |
US11562507B2 (en) | 2019-09-27 | 2023-01-24 | Apple Inc. | Point cloud compression using video encoding with time consistent patches |
CN114450719A (en) * | 2019-09-30 | 2022-05-06 | Oppo广东移动通信有限公司 | Human body model reconstruction method, reconstruction system and storage medium |
US11538196B2 (en) | 2019-10-02 | 2022-12-27 | Apple Inc. | Predictive coding for point cloud compression |
US11895307B2 (en) | 2019-10-04 | 2024-02-06 | Apple Inc. | Block-based predictive coding for point cloud compression |
CA3157194C (en) | 2019-10-07 | 2023-08-29 | Boston Polarimetrics, Inc. | Systems and methods for augmentation of sensor systems and imaging systems with polarization |
US11315326B2 (en) * | 2019-10-15 | 2022-04-26 | At&T Intellectual Property I, L.P. | Extended reality anchor caching based on viewport prediction |
US20210120356A1 (en) * | 2019-10-18 | 2021-04-22 | Msg Entertainment Group, Llc | Mapping Audio To Visual Images on a Display Device Having a Curved Screen |
US11202162B2 (en) | 2019-10-18 | 2021-12-14 | Msg Entertainment Group, Llc | Synthesizing audio of a venue |
CN110769241B (en) * | 2019-11-05 | 2022-02-01 | 广州虎牙科技有限公司 | Video frame processing method and device, user side and storage medium |
WO2021108002A1 (en) | 2019-11-30 | 2021-06-03 | Boston Polarimetrics, Inc. | Systems and methods for transparent object segmentation using polarization cues |
US11507103B2 (en) | 2019-12-04 | 2022-11-22 | Zebra Technologies Corporation | Method, system and apparatus for localization-based historical obstacle handling |
US11734873B2 (en) | 2019-12-13 | 2023-08-22 | Sony Group Corporation | Real-time volumetric visualization of 2-D images |
US11107238B2 (en) | 2019-12-13 | 2021-08-31 | Zebra Technologies Corporation | Method, system and apparatus for detecting item facings |
US11798196B2 (en) | 2020-01-08 | 2023-10-24 | Apple Inc. | Video-based point cloud compression with predicted patches |
US11625866B2 (en) | 2020-01-09 | 2023-04-11 | Apple Inc. | Geometry encoding using octrees and predictive trees |
KR20220132620A (en) | 2020-01-29 | 2022-09-30 | 인트린식 이노베이션 엘엘씨 | Systems and methods for characterizing object pose detection and measurement systems |
KR20220133973A (en) | 2020-01-30 | 2022-10-05 | 인트린식 이노베이션 엘엘씨 | Systems and methods for synthesizing data to train statistical models for different imaging modalities, including polarized images |
US11240465B2 (en) | 2020-02-21 | 2022-02-01 | Alibaba Group Holding Limited | System and method to use decoder information in video super resolution |
US11430179B2 (en) * | 2020-02-24 | 2022-08-30 | Microsoft Technology Licensing, Llc | Depth buffer dilation for remote rendering |
US11822333B2 (en) | 2020-03-30 | 2023-11-21 | Zebra Technologies Corporation | Method, system and apparatus for data capture illumination control |
US11953700B2 (en) | 2020-05-27 | 2024-04-09 | Intrinsic Innovation Llc | Multi-aperture polarization optical systems using beam splitters |
US11776205B2 (en) * | 2020-06-09 | 2023-10-03 | Ptc Inc. | Determination of interactions with predefined volumes of space based on automated analysis of volumetric video |
US11615557B2 (en) | 2020-06-24 | 2023-03-28 | Apple Inc. | Point cloud compression using octrees with slicing |
US11620768B2 (en) | 2020-06-24 | 2023-04-04 | Apple Inc. | Point cloud geometry compression using octrees with multiple scan orders |
US11450024B2 (en) | 2020-07-17 | 2022-09-20 | Zebra Technologies Corporation | Mixed depth object detection |
US11875452B2 (en) * | 2020-08-18 | 2024-01-16 | Qualcomm Incorporated | Billboard layers in object-space rendering |
US11748918B1 (en) * | 2020-09-25 | 2023-09-05 | Apple Inc. | Synthesized camera arrays for rendering novel viewpoints |
US20220130111A1 (en) * | 2020-10-08 | 2022-04-28 | Google Llc | Few-shot synthesis of talking heads |
US11593915B2 (en) | 2020-10-21 | 2023-02-28 | Zebra Technologies Corporation | Parallax-tolerant panoramic image generation |
US11392891B2 (en) | 2020-11-03 | 2022-07-19 | Zebra Technologies Corporation | Item placement detection and optimization in material handling systems |
US11847832B2 (en) | 2020-11-11 | 2023-12-19 | Zebra Technologies Corporation | Object classification for autonomous navigation systems |
US11527014B2 (en) * | 2020-11-24 | 2022-12-13 | Verizon Patent And Licensing Inc. | Methods and systems for calibrating surface data capture devices |
US11874415B2 (en) * | 2020-12-22 | 2024-01-16 | International Business Machines Corporation | Earthquake detection and response via distributed visual input |
US11703457B2 (en) * | 2020-12-29 | 2023-07-18 | Industrial Technology Research Institute | Structure diagnosis system and structure diagnosis method |
US11651538B2 (en) * | 2021-03-17 | 2023-05-16 | International Business Machines Corporation | Generating 3D videos from 2D models |
US11948338B1 (en) | 2021-03-29 | 2024-04-02 | Apple Inc. | 3D volumetric content encoding using 2D videos and simplified 3D meshes |
US11954886B2 (en) | 2021-04-15 | 2024-04-09 | Intrinsic Innovation Llc | Systems and methods for six-degree of freedom pose estimation of deformable objects |
US11290658B1 (en) | 2021-04-15 | 2022-03-29 | Boston Polarimetrics, Inc. | Systems and methods for camera exposure control |
US11954882B2 (en) | 2021-06-17 | 2024-04-09 | Zebra Technologies Corporation | Feature-based georegistration for mobile computing devices |
US11689813B2 (en) | 2021-07-01 | 2023-06-27 | Intrinsic Innovation Llc | Systems and methods for high dynamic range imaging using crossed polarizers |
CN113761238B (en) * | 2021-08-27 | 2022-08-23 | 广州文远知行科技有限公司 | Point cloud storage method, device, equipment and storage medium |
US11887245B2 (en) * | 2021-09-02 | 2024-01-30 | Nvidia Corporation | Techniques for rendering signed distance functions |
CN113905221B (en) * | 2021-09-30 | 2024-01-16 | 福州大学 | Stereoscopic panoramic video asymmetric transport stream self-adaption method and system |
CN114355287B (en) * | 2022-01-04 | 2023-08-15 | 湖南大学 | Ultra-short baseline underwater sound distance measurement method and system |
WO2023159180A1 (en) * | 2022-02-17 | 2023-08-24 | Nutech Ventures | Single-pass 3d reconstruction of internal surface of pipelines using depth camera array |
CN116800947A (en) * | 2022-03-16 | 2023-09-22 | 安霸国际有限合伙企业 | Rapid RGB-IR calibration verification for mass production process |
WO2024006997A1 (en) * | 2022-07-01 | 2024-01-04 | Google Llc | Three-dimensional video highlight from a camera source |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040044441A1 (en) * | 2002-09-04 | 2004-03-04 | Rakesh Gupta | Environmental reasoning using geometric data structure |
Family Cites Families (108)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5602903A (en) | 1994-09-28 | 1997-02-11 | Us West Technologies, Inc. | Positioning system and method |
US6327381B1 (en) | 1994-12-29 | 2001-12-04 | Worldscape, Llc | Image transformation and synthesis methods |
US5850352A (en) | 1995-03-31 | 1998-12-15 | The Regents Of The University Of California | Immersive video, including video hypermosaicing to generate from multiple video views of a scene a three-dimensional video mosaic from which diverse virtual video scene images are synthesized, including panoramic, scene interactive and stereoscopic images |
JP3461980B2 (en) | 1995-08-25 | 2003-10-27 | 株式会社東芝 | High-speed drawing method and apparatus |
US6163337A (en) | 1996-04-05 | 2000-12-19 | Matsushita Electric Industrial Co., Ltd. | Multi-view point image transmission method and multi-view point image display method |
US5926400A (en) | 1996-11-21 | 1999-07-20 | Intel Corporation | Apparatus and method for determining the intensity of a sound in a virtual world |
US6064771A (en) | 1997-06-23 | 2000-05-16 | Real-Time Geometry Corp. | System and method for asynchronous, adaptive moving picture compression, and decompression |
US6072496A (en) | 1998-06-08 | 2000-06-06 | Microsoft Corporation | Method and system for capturing and representing 3D geometry, color and shading of facial expressions and other animated objects |
US6226003B1 (en) | 1998-08-11 | 2001-05-01 | Silicon Graphics, Inc. | Method for rendering silhouette and true edges of 3-D line drawings with occlusion |
US6556199B1 (en) | 1999-08-11 | 2003-04-29 | Advanced Research And Technology Institute | Method and apparatus for fast voxelization of volumetric models |
US6509902B1 (en) | 2000-02-28 | 2003-01-21 | Mitsubishi Electric Research Laboratories, Inc. | Texture filtering for surface elements |
US7522186B2 (en) | 2000-03-07 | 2009-04-21 | L-3 Communications Corporation | Method and apparatus for providing immersive surveillance |
US6968299B1 (en) | 2000-04-14 | 2005-11-22 | International Business Machines Corporation | Method and apparatus for reconstructing a surface using a ball-pivoting algorithm |
US6750873B1 (en) | 2000-06-27 | 2004-06-15 | International Business Machines Corporation | High quality texture reconstruction from multiple scans |
US7538764B2 (en) | 2001-01-05 | 2009-05-26 | Interuniversitair Micro-Elektronica Centrum (Imec) | System and method to obtain surface structures of multi-dimensional objects, and to represent those surface structures for animation, transmission and display |
US6919906B2 (en) | 2001-05-08 | 2005-07-19 | Microsoft Corporation | Discontinuity edge overdraw |
GB2378337B (en) | 2001-06-11 | 2005-04-13 | Canon Kk | 3D Computer modelling apparatus |
US6990681B2 (en) | 2001-08-09 | 2006-01-24 | Sony Corporation | Enhancing broadcast of an event with synthetic scene using a depth map |
US7909696B2 (en) | 2001-08-09 | 2011-03-22 | Igt | Game interaction in 3-D gaming environments |
US6781591B2 (en) | 2001-08-15 | 2004-08-24 | Mitsubishi Electric Research Laboratories, Inc. | Blending multiple images using local and global information |
US7023432B2 (en) | 2001-09-24 | 2006-04-04 | Geomagic, Inc. | Methods, apparatus and computer program products that reconstruct surfaces from data point sets |
US7096428B2 (en) | 2001-09-28 | 2006-08-22 | Fuji Xerox Co., Ltd. | Systems and methods for providing a spatially indexed panoramic video |
EP1473678A4 (en) | 2002-02-06 | 2008-02-13 | Digital Process Ltd | Three-dimensional shape displaying program, three-dimensional shape displaying method, and three-dimensional shape displaying device |
US20040217956A1 (en) | 2002-02-28 | 2004-11-04 | Paul Besl | Method and system for processing, compressing, streaming, and interactive rendering of 3D color image data |
US7515173B2 (en) | 2002-05-23 | 2009-04-07 | Microsoft Corporation | Head pose tracking system |
US7106358B2 (en) | 2002-12-30 | 2006-09-12 | Motorola, Inc. | Method, system and apparatus for telepresence communications |
US20050017969A1 (en) | 2003-05-27 | 2005-01-27 | Pradeep Sen | Computer graphics rendering using boundary information |
US7480401B2 (en) | 2003-06-23 | 2009-01-20 | Siemens Medical Solutions Usa, Inc. | Method for local surface smoothing with application to chest wall nodule segmentation in lung CT data |
US7321669B2 (en) * | 2003-07-10 | 2008-01-22 | Sarnoff Corporation | Method and apparatus for refining target position and size estimates using image and depth data |
GB2405776B (en) | 2003-09-05 | 2008-04-02 | Canon Europa Nv | 3d computer surface model generation |
US7184052B2 (en) | 2004-06-18 | 2007-02-27 | Microsoft Corporation | Real-time texture rendering using generalized displacement maps |
US7292257B2 (en) | 2004-06-28 | 2007-11-06 | Microsoft Corporation | Interactive viewpoint video system and process |
US7671893B2 (en) | 2004-07-27 | 2010-03-02 | Microsoft Corp. | System and method for interactive multi-view video |
US20060023782A1 (en) | 2004-07-27 | 2006-02-02 | Microsoft Corporation | System and method for off-line multi-view video compression |
US7221366B2 (en) | 2004-08-03 | 2007-05-22 | Microsoft Corporation | Real-time rendering system and process for interactive viewpoint video |
US7561620B2 (en) | 2004-08-03 | 2009-07-14 | Microsoft Corporation | System and process for compressing and decompressing multiple, layered, video streams employing spatial and temporal encoding |
US7142209B2 (en) | 2004-08-03 | 2006-11-28 | Microsoft Corporation | Real-time rendering system and process for interactive viewpoint video that was generated using overlapping images of a scene captured from viewpoints forming a grid |
US8477173B2 (en) | 2004-10-15 | 2013-07-02 | Lifesize Communications, Inc. | High definition videoconferencing system |
WO2006062199A1 (en) | 2004-12-10 | 2006-06-15 | Kyoto University | 3-dimensional image data compression device, method, program, and recording medium |
WO2006084385A1 (en) | 2005-02-11 | 2006-08-17 | Macdonald Dettwiler & Associates Inc. | 3d imaging system |
DE102005023195A1 (en) | 2005-05-19 | 2006-11-23 | Siemens Ag | Method for expanding the display area of a volume recording of an object area |
US8228994B2 (en) | 2005-05-20 | 2012-07-24 | Microsoft Corporation | Multi-view video coding based on temporal and view decomposition |
WO2007005752A2 (en) | 2005-07-01 | 2007-01-11 | Dennis Christensen | Visual and aural perspective management for enhanced interactive video telepresence |
JP4595733B2 (en) | 2005-08-02 | 2010-12-08 | カシオ計算機株式会社 | Image processing device |
US7551232B2 (en) | 2005-11-14 | 2009-06-23 | Lsi Corporation | Noise adaptive 3D composite noise reduction |
US7623127B2 (en) | 2005-11-29 | 2009-11-24 | Siemens Medical Solutions Usa, Inc. | Method and apparatus for discrete mesh filleting and rounding through ball pivoting |
US7577491B2 (en) | 2005-11-30 | 2009-08-18 | General Electric Company | System and method for extracting parameters of a cutting tool |
KR100810268B1 (en) | 2006-04-06 | 2008-03-06 | 삼성전자주식회사 | Embodiment Method For Color-weakness in Mobile Display Apparatus |
US7778491B2 (en) | 2006-04-10 | 2010-08-17 | Microsoft Corporation | Oblique image stitching |
US7679639B2 (en) | 2006-04-20 | 2010-03-16 | Cisco Technology, Inc. | System and method for enhancing eye gaze in a telepresence system |
EP1862969A1 (en) | 2006-06-02 | 2007-12-05 | Eidgenössische Technische Hochschule Zürich | Method and system for generating a representation of a dynamically changing 3D scene |
US20080043024A1 (en) | 2006-06-26 | 2008-02-21 | Siemens Corporate Research, Inc. | Method for reconstructing an object subject to a cone beam using a graphic processor unit (gpu) |
USD610105S1 (en) | 2006-07-10 | 2010-02-16 | Cisco Technology, Inc. | Telepresence system |
US20080095465A1 (en) | 2006-10-18 | 2008-04-24 | General Electric Company | Image registration system and method |
US8213711B2 (en) | 2007-04-03 | 2012-07-03 | Her Majesty The Queen In Right Of Canada As Represented By The Minister Of Industry, Through The Communications Research Centre Canada | Method and graphical user interface for modifying depth maps |
GB0708676D0 (en) | 2007-05-04 | 2007-06-13 | Imec Inter Uni Micro Electr | A Method for real-time/on-line performing of multi view multimedia applications |
US8253770B2 (en) | 2007-05-31 | 2012-08-28 | Eastman Kodak Company | Residential video communication system |
US8063901B2 (en) | 2007-06-19 | 2011-11-22 | Siemens Aktiengesellschaft | Method and apparatus for efficient client-server visualization of multi-dimensional data |
JP4947593B2 (en) | 2007-07-31 | 2012-06-06 | Kddi株式会社 | Apparatus and program for generating free viewpoint image by local region segmentation |
US8223192B2 (en) | 2007-10-31 | 2012-07-17 | Technion Research And Development Foundation Ltd. | Free viewpoint video |
US8451265B2 (en) | 2007-11-16 | 2013-05-28 | Sportvision, Inc. | Virtual viewpoint animation |
US8160345B2 (en) | 2008-04-30 | 2012-04-17 | Otismed Corporation | System and method for image segmentation in generating computer models of a joint to undergo arthroplasty |
US8840470B2 (en) * | 2008-02-27 | 2014-09-23 | Sony Computer Entertainment America Llc | Methods for capturing depth data of a scene and applying computer actions |
TWI357582B (en) | 2008-04-18 | 2012-02-01 | Univ Nat Taiwan | Image tracking system and method thereof |
US8442355B2 (en) | 2008-05-23 | 2013-05-14 | Samsung Electronics Co., Ltd. | System and method for generating a multi-dimensional image |
US7840638B2 (en) | 2008-06-27 | 2010-11-23 | Microsoft Corporation | Participant positioning in multimedia conferencing |
US8106924B2 (en) | 2008-07-31 | 2012-01-31 | Stmicroelectronics S.R.L. | Method and system for video rendering, computer program product therefor |
US8948496B2 (en) | 2008-08-29 | 2015-02-03 | Koninklijke Philips N.V. | Dynamic transfer of three-dimensional image data |
US20110169824A1 (en) | 2008-09-29 | 2011-07-14 | Nobutoshi Fujinami | 3d image processing device and method for reducing noise in 3d image processing device |
CN102239506B (en) | 2008-10-02 | 2014-07-09 | 弗兰霍菲尔运输应用研究公司 | Intermediate view synthesis and multi-view data signal extraction |
US8200041B2 (en) | 2008-12-18 | 2012-06-12 | Intel Corporation | Hardware accelerated silhouette detection |
US8436852B2 (en) | 2009-02-09 | 2013-05-07 | Microsoft Corporation | Image editing consistent with scene geometry |
US8477175B2 (en) | 2009-03-09 | 2013-07-02 | Cisco Technology, Inc. | System and method for providing three dimensional imaging in a network environment |
JP5222205B2 (en) | 2009-04-03 | 2013-06-26 | Kddi株式会社 | Image processing apparatus, method, and program |
US20100259595A1 (en) | 2009-04-10 | 2010-10-14 | Nokia Corporation | Methods and Apparatuses for Efficient Streaming of Free View Point Video |
US8719309B2 (en) | 2009-04-14 | 2014-05-06 | Apple Inc. | Method and apparatus for media data transmission |
US8665259B2 (en) | 2009-04-16 | 2014-03-04 | Autodesk, Inc. | Multiscale three-dimensional navigation |
US8755569B2 (en) | 2009-05-29 | 2014-06-17 | University Of Central Florida Research Foundation, Inc. | Methods for recognizing pose and action of articulated objects with collection of planes in motion |
US8629866B2 (en) | 2009-06-18 | 2014-01-14 | International Business Machines Corporation | Computer method and apparatus providing interactive control and remote identity through in-world proxy |
US9648346B2 (en) | 2009-06-25 | 2017-05-09 | Microsoft Technology Licensing, Llc | Multi-view video compression and streaming based on viewpoints of remote viewer |
KR101070591B1 (en) * | 2009-06-25 | 2011-10-06 | (주)실리콘화일 | distance measuring apparatus having dual stereo camera |
US8194149B2 (en) | 2009-06-30 | 2012-06-05 | Cisco Technology, Inc. | Infrared-aided depth estimation |
US8633940B2 (en) | 2009-08-04 | 2014-01-21 | Broadcom Corporation | Method and system for texture compression in a system having an AVC decoder and a 3D engine |
US8908958B2 (en) | 2009-09-03 | 2014-12-09 | Ron Kimmel | Devices and methods of generating three dimensional (3D) colored models |
US8284237B2 (en) | 2009-09-09 | 2012-10-09 | Nokia Corporation | Rendering multiview content in a 3D video system |
US8441482B2 (en) | 2009-09-21 | 2013-05-14 | Caustic Graphics, Inc. | Systems and methods for self-intersection avoidance in ray tracing |
US20110084983A1 (en) | 2009-09-29 | 2011-04-14 | Wavelength & Resonance LLC | Systems and Methods for Interaction With a Virtual Environment |
US9154730B2 (en) | 2009-10-16 | 2015-10-06 | Hewlett-Packard Development Company, L.P. | System and method for determining the active talkers in a video conference |
US8537200B2 (en) | 2009-10-23 | 2013-09-17 | Qualcomm Incorporated | Depth map generation techniques for conversion of 2D video data to 3D video data |
CN102792699A (en) | 2009-11-23 | 2012-11-21 | 通用仪表公司 | Depth coding as an additional channel to video sequence |
US8487977B2 (en) | 2010-01-26 | 2013-07-16 | Polycom, Inc. | Method and apparatus to virtualize people with 3D effect into a remote room on a telepresence call for true in person experience |
US20110211749A1 (en) | 2010-02-28 | 2011-09-01 | Kar Han Tan | System And Method For Processing Video Using Depth Sensor Information |
US8898567B2 (en) | 2010-04-09 | 2014-11-25 | Nokia Corporation | Method and apparatus for generating a virtual interactive workspace |
EP2383696A1 (en) | 2010-04-30 | 2011-11-02 | LiberoVision AG | Method for estimating a pose of an articulated object model |
US20110304619A1 (en) | 2010-06-10 | 2011-12-15 | Autodesk, Inc. | Primitive quadric surface extraction from unorganized point cloud data |
US8411126B2 (en) | 2010-06-24 | 2013-04-02 | Hewlett-Packard Development Company, L.P. | Methods and systems for close proximity spatial audio rendering |
KR20120011653A (en) * | 2010-07-29 | 2012-02-08 | 삼성전자주식회사 | Image processing apparatus and method |
US8659597B2 (en) | 2010-09-27 | 2014-02-25 | Intel Corporation | Multi-view ray tracing using edge detection and shader reuse |
US8787459B2 (en) | 2010-11-09 | 2014-07-22 | Sony Computer Entertainment Inc. | Video coding methods and apparatus |
US9123115B2 (en) * | 2010-11-23 | 2015-09-01 | Qualcomm Incorporated | Depth estimation based on global motion and optical flow |
JP5858380B2 (en) * | 2010-12-03 | 2016-02-10 | 国立大学法人名古屋大学 | Virtual viewpoint image composition method and virtual viewpoint image composition system |
US8693713B2 (en) | 2010-12-17 | 2014-04-08 | Microsoft Corporation | Virtual audio environment for multidimensional conferencing |
US8156239B1 (en) | 2011-03-09 | 2012-04-10 | Metropcs Wireless, Inc. | Adaptive multimedia renderer |
EP2707834B1 (en) | 2011-05-13 | 2020-06-24 | Vizrt Ag | Silhouette-based pose estimation |
US8867886B2 (en) | 2011-08-08 | 2014-10-21 | Roy Feinson | Surround video playback |
CN103828359B (en) | 2011-09-29 | 2016-06-22 | 杜比实验室特许公司 | For producing the method for the view of scene, coding system and solving code system |
US9830743B2 (en) | 2012-04-03 | 2017-11-28 | Autodesk, Inc. | Volume-preserving smoothing brush |
US9058706B2 (en) | 2012-04-30 | 2015-06-16 | Convoy Technologies Llc | Motor vehicle camera and monitoring system |
-
2012
- 2012-08-03 US US13/566,877 patent/US9846960B2/en active Active
- 2012-08-17 US US13/588,917 patent/US20130321586A1/en not_active Abandoned
- 2012-08-29 US US13/598,536 patent/US20130321593A1/en not_active Abandoned
- 2012-08-30 US US13/599,263 patent/US8917270B2/en active Active
- 2012-08-30 US US13/599,170 patent/US20130321396A1/en not_active Abandoned
- 2012-08-30 US US13/599,678 patent/US20130321566A1/en not_active Abandoned
- 2012-08-30 US US13/599,436 patent/US9251623B2/en active Active
- 2012-08-30 US US13/598,747 patent/US20130321575A1/en not_active Abandoned
- 2012-09-13 US US13/614,852 patent/US9256980B2/en active Active
-
2013
- 2013-03-08 US US13/790,158 patent/US20130321413A1/en not_active Abandoned
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040044441A1 (en) * | 2002-09-04 | 2004-03-04 | Rakesh Gupta | Environmental reasoning using geometric data structure |
Non-Patent Citations (8)
Title |
---|
Chang et al., "Principal Component Analysis-based Mesh Decomposition", "Journal of Information Science and Engineering 25, 2009, p. 971-987. * |
Goldlucke, B, "Multi-camera reconstruction and rendering for free-viewpoint video", Ph. D. Thesis, November 29, 2006, Max-Planck-Institut for Informatik. * |
Kalvin et al., "Superfaces: Polygonal Mesh Simplification with Bounded Error", IEEE Computer Graphics and Application, 1996, p. 64-77. * |
Kanade et al., "Virtualized Reality: Constructing Virtual Worlds from Real Scenes", IEEE Multimedia 4(1), pp. 34-47, 1997. * |
Mamou, Khaled et al., "A simple and efficient approach for 3D mesh approximate convex decomposition." Image Processing (ICIP), 2009 16th IEEE International Conference on. IEEE, 2009. * |
Newcombe et al., "Live Dense Reconstruction with a Single Moving Camera", Computer Vision and Pattern Recognition, IEEE, 2010. * |
Rus et al., "Analysing the Influence of Vertex Clustering on PCA-Based Dynamic Mesh Compression", Lecture Notes in Computer Science, Volume 6169, 2010, p. 55-66. * |
Rusinkiewicz et al. "QSplat: A Multiresolution Point Rendering System for Large Meshes", SIGGRAPH 2000, ACM, 2000, p. 343-352. * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10824226B2 (en) * | 2017-06-07 | 2020-11-03 | Google Llc | High speed, high-fidelity face tracking |
Also Published As
Publication number | Publication date |
---|---|
US20130321593A1 (en) | 2013-12-05 |
US20130321396A1 (en) | 2013-12-05 |
US20130321589A1 (en) | 2013-12-05 |
US9846960B2 (en) | 2017-12-19 |
US20130321575A1 (en) | 2013-12-05 |
US20130321413A1 (en) | 2013-12-05 |
US20130321566A1 (en) | 2013-12-05 |
US9256980B2 (en) | 2016-02-09 |
US8917270B2 (en) | 2014-12-23 |
US20130321418A1 (en) | 2013-12-05 |
US20130321590A1 (en) | 2013-12-05 |
US9251623B2 (en) | 2016-02-02 |
US20130321586A1 (en) | 2013-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8917270B2 (en) | Video generation using three-dimensional hulls | |
CN114119849B (en) | Three-dimensional scene rendering method, device and storage medium | |
US10893250B2 (en) | Free-viewpoint photorealistic view synthesis from casually captured video | |
US9767598B2 (en) | Smoothing and robust normal estimation for 3D point clouds | |
CN108564527B (en) | Panoramic image content completion and restoration method and device based on neural network | |
CN113661471B (en) | Hybrid rendering | |
US10636201B2 (en) | Real-time rendering with compressed animated light fields | |
KR101145260B1 (en) | Apparatus and method for mapping textures to object model | |
CN102722861A (en) | CPU-based graphic rendering engine and realization method | |
KR20110105350A (en) | Method and apparatus for providing images of a virtual world scene and method and apparatus for processing the same | |
CN103502974A (en) | Employing mesh files to animate transitions in client applications | |
US20140184596A1 (en) | Image based rendering | |
US10818076B2 (en) | Immersive environment from video | |
US10699470B2 (en) | Methods and systems for representing a scene using orthographic and perspective projections | |
US9401044B1 (en) | Method for conformal visualization | |
US11706395B2 (en) | Apparatus and method for selecting camera providing input images to synthesize virtual view images | |
KR102065632B1 (en) | Device and method for acquiring 360 VR images in a game using a plurality of virtual cameras | |
CN115511937A (en) | Image depth map and normal map generation method, virtual live broadcast method and device | |
JP7447266B2 (en) | View encoding and decoding for volumetric image data | |
CN114820980A (en) | Three-dimensional reconstruction method and device, electronic equipment and readable storage medium | |
Hall et al. | Networked and multimodal 3d modeling of cities for collaborative virtual environments | |
Noguera et al. | A hybrid rendering technique to navigate in large terrains using mobile devices | |
CN117205554A (en) | Terrain loading method and device for spherical virtual scene, medium and electronic equipment | |
JP2006215888A (en) | Drawing method using computer | |
Shegeda | A GPU-based Framework for Real-time Free Viewpoint Television |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: MICROSOFT CORPORATION, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SWEENEY, PATRICK;GILLETT, DON;REEL/FRAME:028877/0306 Effective date: 20120829 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
AS | Assignment |
Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:034544/0541 Effective date: 20141014 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551) Year of fee payment: 4 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |