open3d.t.pipelines.slac.control_grid¶
-
class
open3d.t.pipelines.slac.
control_grid
¶ ControlGrid is a spatially hashed voxel grid used for non-rigid point cloud registration and TSDF integration. Each grid stores a map from the initial grid location to the deformed location. You can imagine a control grid as a jelly that is warped upon perturbation with its overall shape preserved. Reference: https://github.com/qianyizh/ElasticReconstruction/blob/master/FragmentOptimizer/OptApp.cpp http://vladlen.info/papers/elastic-fragments.pdf.
-
__init__
(*args, **kwargs)¶ Overloaded function.
__init__(self: open3d.cpu.pybind.t.pipelines.slac.control_grid, arg0: open3d.cpu.pybind.t.pipelines.slac.control_grid) -> None
Copy constructor
__init__(self: open3d.cpu.pybind.t.pipelines.slac.control_grid) -> None
__init__(self: open3d.cpu.pybind.t.pipelines.slac.control_grid, grid_size: float, grid_count: int = 1000, device: open3d.cpu.pybind.core.Device = CPU:0) -> None
__init__(self: open3d.cpu.pybind.t.pipelines.slac.control_grid, grid_size: float, keys: open3d.cpu.pybind.core.Tensor, values: open3d.cpu.pybind.core.Tensor, device: open3d.cpu.pybind.core.Device = CPU:0) -> None
-
compactify
(self: open3d.cpu.pybind.t.pipelines.slac.control_grid) → None¶ Force rehashing, so that all entries are remapped to [0, size) and form a contiguous index map.
-
deform
(*args, **kwargs)¶ Overloaded function.
deform(self: open3d.cpu.pybind.t.pipelines.slac.control_grid, pointcloud: open3d::t::geometry::PointCloud) -> open3d::t::geometry::PointCloud
Non-rigidly deform a point cloud using the control grid.
deform(self: open3d.cpu.pybind.t.pipelines.slac.control_grid, depth: open3d::t::geometry::Image, intrinsics: open3d.cpu.pybind.core.Tensor, extrinsics: open3d.cpu.pybind.core.Tensor, depth_scale: float, depth_max: float) -> open3d::t::geometry::Image
Non-rigidly deform a depth image by - unprojecting the depth image to a point cloud - deform the point cloud; - project the deformed point cloud back to the image.
deform(self: open3d.cpu.pybind.t.pipelines.slac.control_grid, rgbd: open3d::t::geometry::RGBDImage, intrinsics: open3d.cpu.pybind.core.Tensor, extrinsics: open3d.cpu.pybind.core.Tensor, depth_scale: float, depth_max: float) -> open3d::t::geometry::RGBDImage
Non-rigidly deform a RGBD image by - unprojecting the RGBD image to a point cloud - deform the point cloud; - project the deformed point cloud back to the image.
-
get_anchor_idx
(self: open3d.cpu.pybind.t.pipelines.slac.control_grid) → int¶
-
get_curr_positions
(self: open3d.cpu.pybind.t.pipelines.slac.control_grid) → open3d.cpu.pybind.core.Tensor¶ Get control grid shifted positions from tensor values (optimized in-place)
-
get_device
(self: open3d.cpu.pybind.t.pipelines.slac.control_grid) → open3d.cpu.pybind.core.Device¶
-
get_hashmap
(self: open3d.cpu.pybind.t.pipelines.slac.control_grid) → open3d.cpu.pybind.core.Hashmap¶ Get the control grid hashmap.
-
get_init_positions
(self: open3d.cpu.pybind.t.pipelines.slac.control_grid) → open3d.cpu.pybind.core.Tensor¶ Get control grid original positions directly from tensor keys.
-
get_neighbor_grid_map
(self: open3d.cpu.pybind.t.pipelines.slac.control_grid) → Tuple[open3d.cpu.pybind.core.Tensor, open3d.cpu.pybind.core.Tensor, open3d.cpu.pybind.core.Tensor]¶ - Get the neighbor indices per grid to construct the regularizer. Returns a 6-way neighbor grid map for all the active entries of shape (N, ).
addrs Active indices in the buffer of shape (N, )
addrs_nb Neighbor indices (including non-allocated entries) for the active entries of shape (N, 6).
masks_nb Corresponding neighbor masks of shape (N, 6).
-
parameterize
(self: open3d.cpu.pybind.t.pipelines.slac.control_grid, pointcloud: open3d::t::geometry::PointCloud) → open3d::t::geometry::PointCloud¶ Parameterize an input point cloud by embedding each point in the grid with 8 corners via indexing and interpolation. Returns: A PointCloud with parameterization attributes: - neighbors: Index of 8 neighbor control grid points of shape (8, ) in Int64. - ratios: Interpolation ratios of 8 neighbor control grid points of shape (8, ) in Float32.
-
size
(self: open3d.cpu.pybind.t.pipelines.slac.control_grid) → int¶
-
touch
(self: open3d.cpu.pybind.t.pipelines.slac.control_grid, pointcloud: open3d::t::geometry::PointCloud) → None¶ Allocate control grids in the shared camera space.
-