Three-dimensional environment reconstruction
First Claim
1. A computer-implemented method of generating a 3D model of a real-world environment, comprising:
- creating a three-dimensional volume in a memory device for storing the model, the volume comprising a plurality of voxels;
receiving data describing a location and orientation of a capture device and a depth image of at least a portion of the environment output from the capture device, the depth image comprising a plurality of pixels, each indicating a distance from the capture device to a point in the environment;
assigning a separate execution thread to each voxel in a plane of the volume;
each execution thread using the capture device location and orientation to determine a corresponding location in the depth image for its associated voxel, determining a factor relating to the distance between the associated voxel and the point in the environment at the corresponding location, and updating a stored value at the associated voxel using the factor; and
each execution thread iterating through an equivalent voxel in each remaining plane of the volume and repeating the steps of determining the factor and updating the stored value for each voxel,wherein the step of updating the stored value at the associated voxel using the factor comprises summing the factor with a previous value stored at the associated voxel or wherein the step of determining the factor comprises calculating a signed distance function between the associated voxel and the point in the environment at the corresponding location, such that if the associated voxel is located at a first side of the point, then the factor has a positive value, and if the associated voxel is located at an opposite side of the point, then the factor has a negative value.
2 Assignments
0 Petitions
Accused Products
Abstract
Three-dimensional environment reconstruction is described. In an example, a 3D model of a real-world environment is generated in a 3D volume made up of voxels stored on a memory device. The model is built from data describing a camera location and orientation, and a depth image with pixels indicating a distance from the camera to a point in the environment. A separate execution thread is assigned to each voxel in a plane of the volume. Each thread uses the camera location and orientation to determine a corresponding depth image location for its associated voxel, determines a factor relating to the distance between the associated voxel and the point in the environment at the corresponding location, and updates a stored value at the associated voxel using the factor. Each thread iterates through an equivalent voxel in the remaining planes of the volume, repeating the process to update the stored value.
-
Citations
20 Claims
-
1. A computer-implemented method of generating a 3D model of a real-world environment, comprising:
-
creating a three-dimensional volume in a memory device for storing the model, the volume comprising a plurality of voxels; receiving data describing a location and orientation of a capture device and a depth image of at least a portion of the environment output from the capture device, the depth image comprising a plurality of pixels, each indicating a distance from the capture device to a point in the environment; assigning a separate execution thread to each voxel in a plane of the volume; each execution thread using the capture device location and orientation to determine a corresponding location in the depth image for its associated voxel, determining a factor relating to the distance between the associated voxel and the point in the environment at the corresponding location, and updating a stored value at the associated voxel using the factor; and each execution thread iterating through an equivalent voxel in each remaining plane of the volume and repeating the steps of determining the factor and updating the stored value for each voxel, wherein the step of updating the stored value at the associated voxel using the factor comprises summing the factor with a previous value stored at the associated voxel or wherein the step of determining the factor comprises calculating a signed distance function between the associated voxel and the point in the environment at the corresponding location, such that if the associated voxel is located at a first side of the point, then the factor has a positive value, and if the associated voxel is located at an opposite side of the point, then the factor has a negative value. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A graphics processing system for generating a 3D model of a real-world environment, comprising:
-
a communication interface arranged to receive data describing a location and orientation of a capture device and a depth image of at least a portion of the environment output from the capture device, the depth image comprising a plurality of pixels, each indicating a distance from the capture device to a point in the environment; a graphics processing unit arranged to provide concurrent execution of a plurality of threads; and a memory device, wherein the graphics processing unit is arranged to;
create a three-dimensional volume in the memory device for storing the model, the volume comprising a plurality of voxels;
assign a separate thread to each voxel in a plane of the volume; and
, for each execution thread, use the capture device location and orientation to determine a corresponding location in the depth image for its associated voxel, determine a factor relating to the distance between the associated voxel and the point in the environment at the corresponding location, update a stored value at the associated voxel using the factor, and iterate through an equivalent voxel in each remaining plane of the volume and repeat the determination of the factor and update of the stored value for each voxel,wherein the graphics processing unit being arranged to update the stored value at the associated voxel using the factor includes the graphics processing unit being arranged to sum the factor with a previous value stored at the associated voxel or wherein the graphics processing unit being arranged to determine the factor includes the graphics processing unit being arranged to calculate a signed distance function between the associated voxel and the point in the environment at the corresponding location, such that if the associated voxel is located at a first side of the point, then the factor has a positive value, and if the associated voxel is located at an opposite side of the point, then the factor has a negative value. - View Dependent Claims (17, 18, 19)
-
-
20. One or more computer storage media, the one or more computer storage media being hardware, with device-executable instructions that, when executed by a graphics processing unit, direct the graphics processing unit to perform steps comprising:
- creating a three-dimensional volume in a memory device for storing a 3D model of a real-world environment, the volume comprising a plurality of voxels;
receiving data describing a six degrees-of-freedom pose of a depth camera and a depth image of at least a portion of the environment output from the depth camera, the depth image comprising a plurality of pixels, each indicating a distance from the depth camera to a point in the environment;
assigning a separate execution thread to each voxel in a plane of the volume; and
concurrently executing each execution thread on the graphics processing unit, each execution thread performing steps comprising;
using the depth camera pose to determine corresponding coordinates in the depth image for its associated voxel;
calculating a truncated signed distance function from the distance between the associated voxel and the point in the environment at the corresponding coordinates of the depth image;
updating a stored value at the associated voxel using the truncated signed distance function output; and
iterating through an equivalent voxel in each remaining plane of the volume and repeating the steps of determining the factor and updating the stored value for each equivalent voxel.
- creating a three-dimensional volume in a memory device for storing a 3D model of a real-world environment, the volume comprising a plurality of voxels;
Specification