isl-org / isl-org/Open3D

Python Wrapper for the Azure Kinect Recorder (Camera model)

Open
#2,729 0 comments 1 reaction 0 assignees View on GitHub
sensor
Dominant language
C++
Stars
14k
Forks
2.6k
Avg merge
5d 18h
Merged PRs (30d)
6

Description

Hello

where can I find the python wrapper for the azure kinect especially for the recording with the azure kinect? I can't find it. I need to know which camera model is used for the recording to transform the point clouds with the right matrix and to set the right intrinsic parameters. Because if I use the PinholeIntrinsicParameters provided my point clouds are heavily distorted. Although I record the data with the azure kinect via azure_kinect_recorder.py. Afterwards I generate point clouds out of the mkv file with this script:
```
def generate_point_cloud_from_color_and_depth_images(self, pcd_dir):
for color, depth in zip(self.color_file_list, self.depth_file_list):
filename, ending = self.color_file_list[self.idx].split(".")
color_raw = o3d.io.read_image(self.color_dir + color)
depth_raw = o3d.io.read_image(self.depth_dir + depth)

rgbd_image = o3d.geometry.RGBDImage.create_from_color_and_depth(color=color_raw, depth=depth_raw, depth_scale=1000.0, convert_rgb_to_intensity=False)
# intrinsic = o3d.camera.PinholeCameraIntrinsic(1280, 720, 601.1693115234375, 600.85931396484375, 637.83624267578125, 363.8018798828125) this intrinsic deliever the best result but it is still not useful
point_cloud = o3d.geometry.PointCloud.create_from_rgbd_image(rgbd_image, o3d.camera.PinholeCameraIntrinsic(o3d.camera.PinholeCameraIntrinsicParameters.Kinect2ColorCameraDefault))
point_cloud.transform([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]])
point_cloud_filename = "{0}\\pcd_1\\{1}.pcd".format(pcd_dir, filename)
o3d.io.write_point_cloud(point_cloud_filename, point_cloud)
print("Writing to {}".format(point_cloud_filename))
self.idx = self.idx + 1
```
I already tested all PinholeCameraIntrinsicParameters provided but the point clouds are heavily distorted or the depth isn't represented right.
The intrinsic_matrix in the instrinsic.json is as follows:
```
[
613.01324462890625,
0.0,
0.0,
0.0,
613.0467529296875,
0.0,
639.76904296875,
369.3740234375,
1.0
]
```
How can I figure out which camera model is used for recording without the python wrapper? Does it use a pinhole model or an rational polynomial model?

Thank you in advance.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.