open3d.t.io.DepthNoiseSimulator#

class open3d.t.io.DepthNoiseSimulator#

Simulate depth image noise from a given noise distortion model. The distortion model is based on Teichman et. al. “Unsupervised intrinsic calibration of depth sensors via SLAM” RSS 2009. Also see <http://redwood-data.org/indoor/dataset.html>__

Example:

import open3d as o3d

# Redwood Indoor LivingRoom1 (Augmented ICL-NUIM)
# http://redwood-data.org/indoor/
data = o3d.data.RedwoodIndoorLivingRoom1()
noise_model_path = data.noise_model_path
im_src_path = data.depth_paths[0]
depth_scale = 1000.0

# Read clean depth image (uint16)
im_src = o3d.t.io.read_image(im_src_path)

# Run noise model simulation
simulator = o3d.t.io.DepthNoiseSimulator(noise_model_path)
im_dst = simulator.simulate(im_src, depth_scale=depth_scale)

# Save noisy depth image (uint16)
o3d.t.io.write_image("noisy_depth.png", im_dst)
__init__(self, noise_model_path)#
Parameters:

noise_model_path (str) – Path to the noise model file. See http://redwood-data.org/indoor/dataset.html for the format. Or, you may use one of our example datasets, e.g., RedwoodIndoorLivingRoom1.

enable_deterministic_debug_mode(self)#

Enable deterministic debug mode. All normally distributed noise will be replaced by 0.

Returns:

None

simulate(self, im_src, depth_scale=1000.0)#

Apply noise model to a depth image.

Parameters:
  • im_src (open3d.t.geometry.Image) – Source depth image, must be with dtype UInt16 or Float32, channels==1.

  • depth_scale (float, optional, default=1000.0) – Scale factor to the depth image. As a sanity check, if the dtype is Float32, the depth_scale must be 1.0. If the dtype is is UInt16, the depth_scale is typically larger than 1.0, e.g. it can be 1000.0.

Returns:

open3d.t.geometry.Image

property noise_model#

The noise model tensor.