IP Library › Granted Patent US 11,710,256
Granted Patent B2
US 11,710,256 · App. 17/007,174 · Granted Jul 25, 2023

Free-viewpoint method and system

Inventors: Nigel John Williams (London, GB); Andrew William Walker (London, GB)
Assignee: Sony Interactive Entertainment Inc.
G06T7/80G06F1/03G06T5/50G06T7/593H04N13/106H04N13/111G06T2207/20021G06T2207/20216H04N2013/0081
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,710,256
App. No.
17/007,174
Granted
Jul 25, 2023
Kind
B2
Abstract

A method of generating a 3D reconstruction of a scene, the scene comprising a plurality of cameras positioned around the scene, comprises: obtaining the extrinsics and intrinsics of a virtual camera within a scene; accessing a data structure so as to determine a camera pair that is to be used in reconstructing the scene from the viewpoint of the virtual camera; wherein the data structure defines a voxel representation of the scene, the voxel representation comprising a plurality of voxels, at least some of the voxel surfaces being associated with respective camera pair identifiers; wherein each camera pair identifier associated with a respective voxel surface corresponds to a camera pair that has been identified as being suitable for obtaining depth data for the part of the scene within that voxel and for which the averaged pose of the camera pair is oriented towards the voxel surface; identifying, based on the obtained extrinsics and intrinsics of the virtual camera, at least one voxel that is within the field of view of the virtual camera and a corresponding voxel surface that is oriented towards the virtual camera; identifying, based on the accessed data structure, at least one camera pair that is suitable for reconstructing the scene from the viewpoint of the virtual camera, and generating a reconstruction of the scene from the viewpoint of the virtual camera based on the images captured by the cameras in the identified at least one camera pair.

Claims (51)

1. A method of generating a 3D reconstruction of a scene, the scene comprising a plurality of cameras positioned around the scene, the method comprising:

obtaining extrinsics and intrinsics of a virtual camera within a scene;

accessing a data structure so as to determine at least one camera pair that is to be used in reconstructing the scene from a viewpoint of the virtual camera;

wherein the data structure defines a voxel representation of the scene, the voxel representation comprising a plurality of voxels, at least some surfaces of voxels being associated with respective camera pair identifiers;

wherein each camera pair identifier associated with a respective voxel surface corresponds to a camera pair that has been identified as being suitable for obtaining depth data for a part of the scene within a voxel comprising the respective voxel surface and for which an averaged pose of the camera pair is oriented towards the respective voxel surface;

identifying, based on the obtained extrinsics and intrinsics of the virtual camera, at least one voxel that is within the field of view of the virtual camera and a corresponding voxel surface that is oriented towards the virtual camera; and

identifying, based on the accessed data structure, at least one camera pair that is suitable for reconstructing the scene from the viewpoint of the virtual camera, and

generating a reconstruction of the scene from the viewpoint of the virtual camera based on images captured by the cameras in the identified at least one camera pair.

2. A method according to claim 1 , wherein

the data structure is a hierarchical data structure, each successive layer within the hierarchical data structure corresponding to a successive sub-division of the voxels in the voxel representation, at least some of the voxels in the voxel representation being divided into sub-voxels;

the method further comprising, identifying, for a sub-voxel within the at least one voxel identified as being within the field of view of the virtual camera, a corresponding sub-voxel surface that is oriented towards the virtual camera; and

identifying, based on the accessed data structure, a corresponding camera pair identifier associated with the identified sub-voxel surface, and generating a reconstruction of the scene from the viewpoint of the virtual camera based on images captured by the camera pair identified for the sub-voxel surface.

3. A method according to claim 2 , comprising

iterating over at least some layers in the hierarchical data structure so as to identify a camera pair identifier associated with at least some sub-voxel surfaces forming the voxel identified as being within the field of view of the virtual camera;

wherein the number of iterations is determined based on the intrinsics and/or extrinsics of the virtual camera.

4. A method according to claim 1 , wherein at least some of the voxel surfaces are associated with one or more respective camera pair identifiers and corresponding weightings, the weighting for each camera pair identifier providing an indication of a depth resolution that can be obtained for the corresponding camera pair; and

wherein the method further comprises:

identifying, for the voxel surface identified as being oriented towards the virtual camera, a corresponding camera pair identifier having the highest weighting relative to the other camera pair identifiers associated with the voxel surface; and

generating a reconstruction of the scene from the viewpoint of the virtual camera based on images captured by the pair of cameras identified as having the highest weighting associated therewith.

5. A method according to claim 1 , wherein the data structure comprises a look-up table, each entry in the look-up table defining a respective voxel of the voxel representation.

6. A method according to claim 1 , wherein at least some of the voxel surfaces defined in the voxel representation are further associated with a respective parameter indicating at least one of:

i. an averaged pose of one more camera pairs providing depth coverage of the corresponding voxel surface;

ii. an epipolar diagonal of one or more camera pairs providing depth coverage of the corresponding voxel surface; and

iii. principal points of one or more camera pairs providing depth coverage of the corresponding voxel surface.

7. A method according to claim 1 , further comprising:

obtaining the extrinsics and intrinsics of each camera positioned around the scene;

determining, based on the obtained extrinsics and intrinsics of the cameras, a depth coverage of respective camera pairs, the depth coverage of a respective camera pair corresponding to the field of view of a depth camera that the depth camera pair corresponds to; and

generating the data structure by dividing the scene into the plurality of voxels based on the determined depth coverage, at least some of the plurality of voxels corresponding to voxels for which depth data can be obtained for one or more surfaces thereof.

8. A method according to claim 7 , wherein generating the data structure comprises:

determining, for each voxel, a respective weighting associated with at least one camera pair providing depth coverage of the voxel;

wherein the respective weighting for each camera pair is determined based on at least one of an epipolar diagonal and principal points associated with the camera pair;

determining, for a respective surfaces of each voxel, a camera pair that is oriented towards the respective surface; and

assigning, to each voxel surface, a camera pair identifier that corresponds to the camera pair determined as having the highest weighting and being oriented towards the voxel surface.

9. A method according to claim 7 , wherein generating the data structure comprises:

determining whether a distance between principal points of a camera pair providing depth coverage of the voxel is less than a dimension of the voxel, and based on a positive determination, sub-dividing the voxel further; and

determining for a sub-voxel, a camera pair having the highest weighting and that is oriented towards a surface of the sub-voxel.

10. A method according to claim 7 , wherein dividing the scene into the plurality of voxels comprises dividing the scene in accordance with one or more spherical harmonic functions, the size of each voxel being inversely proportional to an order of a spherical harmonic function used to define the voxel.

11. A method according to claim 1 , comprising:

detecting an object as occluding at least some of the scene for at least one of the cameras positioned around the scene;

identifying one or more voxel surfaces in the data structure as corresponding to parts of the scene occluded by the object;

determining whether any of the camera pair identifiers associated with the one or more occluded voxel surfaces correspond with the at least one camera for which at least some of the scene is occluded; and

in response to a positive determination, filtering from the data structure, for the one or more the occluded voxel surfaces, the camera pair identifiers determined as corresponding with a camera for which at least part of the scene is occluded by the object.

12. A method according to claim 1 , comprising displaying the generated reconstruction of the scene from the viewpoint of the virtual camera at a display.

13. A computer readable medium having computer executable instructions adapted cause a computer system to perform a method of generating a 3D reconstruction of a scene, the scene comprising a plurality of cameras positioned around the scene, the method comprising:

obtaining extrinsics and intrinsics of a virtual camera within a scene;

accessing a data structure so as to determine at least one camera pair that is to be used in reconstructing the scene from a viewpoint of the virtual camera;

wherein the data structure defines a voxel representation of the scene, the voxel representation comprising a plurality of voxels, at least some surfaces of voxels being associated with respective camera pair identifiers;

wherein each camera pair identifier associated with a respective voxel surface corresponds to a camera pair that has been identified as being suitable for obtaining depth data for a part of the scene within a voxel comprising the respective voxel surface and for which an averaged pose of the camera pair is oriented towards the respective voxel surface;

identifying, based on the obtained extrinsics and intrinsics of the virtual camera, at least one voxel that is within the field of view of the virtual camera and a corresponding voxel surface that is oriented towards the virtual camera; and

identifying, based on the accessed data structure, at least one camera pair that is suitable for reconstructing the scene from the viewpoint of the virtual camera, and

generating a reconstruction of the scene from the viewpoint of the virtual camera based on images captured by the cameras in the identified at least one camera pair.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 23, 2020
From: SONY INTERACTIVE ENTERTAINMENT EUROPE LIMITED
To: SONY INTERACTIVE ENTERTAINMENT INC.
Reel/Frame 054837/0424 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 21, 2020
From: WILLIAMS, NIGEL
To: SONY INTERACTIVE ENTERTAINMENT INC.
Reel/Frame 054125/0501 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 31, 2020
From: WALKER, ANDREW WILLIAM
To: SONY INTERACTIVE ENTERTAINMENT INC.
Reel/Frame 053641/0873 →
Priority Claims (1)
GB 1912769 · Sep 5, 2019 · national
Continuity (1)
Related Publication 20210074023A1 · Mar 11, 2021