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.
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.
158 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. - 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. - View Dependent Claims (17, 18, 19)
-
-
20. One or more tangible device-readable media with device-executable instructions that, when executed by a graphics processing unit (808), 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.
-
Specification