CUDA
Algorithm Implementations
integrate_depth_maps
-
class integrate_depth_maps : public kwiver::vital::algo::integrate_depth_maps
Public Functions
- PLUGGABLE_IMPL (integrate_depth_maps, "depth map fusion", PARAM_DEFAULT(ray_potential_thickness, double, "Distance that the TSDF covers sloping from Rho to zero. " "Units are in voxels.", 20.0), PARAM_DEFAULT(ray_potential_rho, double, "Maximum magnitude of the TDSF", 1.0), PARAM_DEFAULT(ray_potential_eta, double, "Fraction of rho to use for free space constraint. " "Requires 0 <= Eta <= 1.", 1.0), PARAM_DEFAULT(ray_potential_epsilon, double, "Fraction of rho to use in occluded space. " "Requires 0 <= Epsilon <= 1.", 0.01), PARAM_DEFAULT(ray_potential_delta, double, "Distance from the surface before the TSDF is truncate. " "Units are in voxels", 200.0), PARAM_DEFAULT(voxel_spacing_factor, double, "Multiplier on voxel spacing. Set to 1.0 for voxel " "sizes that project to 1 pixel on average.", 1.0), PARAM_DEFAULT(max_voxels_per_launch, unsigned, "Maximum number of voxels to process in a single kernel " "launch. Processing too much data at once on the GPU " "can cause the GPU to time out. Set to zero for " "unlimited.", 20000000), PARAM_DEFAULT(grid_spacing, array3, "Relative spacing for each dimension of the grid", array3({ 1., 1., 1. }))) virtual ~integrate_depth_maps()=default
Destructor.
-
virtual bool check_configuration(vital::config_block_sptr config) const
Check that the algorithm’s currently configuration is valid.
-
virtual void integrate(kwiver::vital::vector_3d const &minpt_bound, kwiver::vital::vector_3d const &maxpt_bound, std::vector<kwiver::vital::image_container_sptr> const &depth_maps, std::vector<kwiver::vital::image_container_sptr> const &weight_maps, std::vector<kwiver::vital::camera_perspective_sptr> const &cameras, kwiver::vital::image_container_sptr &volume, kwiver::vital::vector_3d &spacing) const
Integrate multiple depth maps with per-pixel weights into a common volume
The weight maps in this variant encode how much weight to give each depth pixel in the integration sum. If the vector of weight_maps is empty then all depths are given full weight.
Note
the volume data is stored as a 3D image. Metadata fields on the image specify the origin and scale of the volume in world coordinates.
- Parameters:
minpt_bound – [in] the min point of the bounding region
maxpt_bound – [in] the max point of the bounding region
depth_maps – [in] the set of floating point depth map images
weight_maps – [in] the set of floating point [0,1] weight maps
cameras – [in] the set of cameras, one for each depth map
volume – [inout] the fused volumetric data
spacing – [out] the spacing between voxels in each dimension