o3d.pipelines.integration.ScalableTSDFVolume does not work with copy.deepcopy
- Dominant language
- C++
- Stars
- 14k
- Forks
- 2.6k
- Avg merge
- 5d 18h
- Merged PRs (30d)
- 6
Description
### Checklist
- [X] I have searched for [similar issues](https://github.com/isl-org/Open3D/issues).
- [X] For Python issues, I have tested with the [latest development wheel](http://www.open3d.org/docs/latest/getting_started.html#development-version-pip).
- [X] I have checked the [release documentation](http://www.open3d.org/docs/release/) and the [latest documentation](http://www.open3d.org/docs/latest/) (for `master` branch).
### Describe the issue
o3d.pipelines.integration.ScalableTSDFVolume does not work with copy.deepcopy. The volume also changed when its deepcopy changed.
mesh: https://drive.google.com/file/d/1cI9kHF2SRAHYbp-_v9EdPEHsysKyz063/view?usp=sharing
### Steps to reproduce the bug
```python
import open3d as o3d
import torch
import copy
mesh = o3d.io.read_triangle_mesh() # please download the mesh file and change the path here
test = [np.array([[-9.5542e-01, -1.1962e-01, 2.6993e-01, 2.6558e+00],
[2.9525e-01, -3.8834e-01, 8.7294e-01, 2.9816e+00],
[4.0800e-04, 9.1372e-01, 4.0634e-01, 1.3686e+00],
[0.0000e+00, 0.0000e+00, 0.0000e+00, 1.0000e+00]]),
np.array([[-0.9516, -0.1204, 0.2828, 2.6555],
[0.3073, -0.3925, 0.8669, 2.9814],
[0.0067, 0.9118, 0.4105, 1.3619],
[0.0000, 0.0000, 0.0000, 1.0000]]),
np.array([[-0.9474, -0.1260, 0.2942, 2.6494],
[0.3199, -0.4012, 0.8583, 2.9786],
[0.0099, 0.9073, 0.4204, 1.3654],
[0.0000, 0.0000, 0.0000, 1.0000]])]
for i in range(len(test)):
test[i][:3, 1] *= -1
test[i][:3, 2] *= -1
test[i] = np.linalg.inv(test[i])
volume = o3d.pipelines.integration.ScalableTSDFVolume(
voxel_length=4.0 / 512.0,
sdf_trunc=0.04,
color_type=o3d.pipelines.integration.TSDFVolumeColorType.RGB8)
camera_intrinsics = o3d.camera.PinholeCameraIntrinsic()
camera_intrinsics.set_intrinsics(width=620, height=460, fx=577.590698, fy=578.729797, cx=620/2-0.5 ,cy=460/2-0.5)
render = o3d.visualization.rendering.OffscreenRenderer(
620, 460, headless=False)
mtl = o3d.visualization.rendering.MaterialRecord()
mtl.base_color = [1, 1, 1, 1]
mtl.shader = "defaultUnlit"
render.scene.set_background([0, 0, 0, 0])
render.scene.add_geometry("model", mesh, mtl)
render.setup_camera(camera_intrinsics,test[0])
dimg_ca = render.render_to_depth_image(True)
cimg_ca = render.render_to_image()
rgbd_ca = o3d.geometry.RGBDImage.create_from_color_and_depth(
cimg_ca, dimg_ca, depth_scale=1, depth_trunc=4.0, convert_rgb_to_intensity=False)
volume.integrate(rgbd_ca,camera_intrinsics,test[0])
print("point cloud number of pose 0[volume]",np.asarray(volume.extract_point_cloud().points).shape[0])
volume_1 = copy.deepcopy(volume)
render = o3d.visualization.rendering.OffscreenRenderer(
620, 460, headless=False)
mtl = o3d.visualization.rendering.MaterialRecord()
mtl.base_color = [1, 1, 1, 1]
mtl.shader = "defaultUnlit"
render.scene.set_background([0, 0, 0, 0])
render.scene.add_geometry("model", mesh, mtl)
render.setup_camera(camera_intrinsics,test[0])
dimg_ca = render.render_to_depth_image(True)
cimg_ca = render.render_to_image()
rgbd_ca = o3d.geometry.RGBDImage.create_from_color_and_depth(
cimg_ca, dimg_ca, depth_scale=1, depth_trunc=4.0, convert_rgb_to_intensity=False)
volume_1.integrate(rgbd_ca,camera_intrinsics,test[1])
print("point cloud number of pose 0[volume]",np.asarray(volume.extract_point_cloud().points).shape[0])
print("point cloud number of pose 1[volume_1]",np.asarray(volume_1.extract_point_cloud().points).shape[0])
```
### Error message
point cloud number of pose 0[volume] 116569
point cloud number of pose 0[volume] 144079
point cloud number of pose 1[volume_1] 144081
### Expected behavior
volume_1 = copy.deepcopy(volume)
but **volume** changed after volume_1 integrate the new point cloud
### Open3D, Python and System information
```markdown
- Operating system: Ubuntu 20.04
- Python version: Python 3.7
- Open3D version: 15.2
- System architecture: x86
- Is this a remote workstation?: yes
- How did you install Open3D?: pip
- Compiler version (if built from source): gcc 7.5
```
### Additional information
_No response_
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.