Open3d: Azure Kinect Examples do not work

Created on 31 Dec 2019  路  4Comments  路  Source: intel-isl/Open3D

Describe the bug
Python Examples do not execute. I have copied Azure Kinect SDK v1.2.0to C:/Program Files/
Microsoft Azure Kinect Examples work

To Reproduce
Steps to reproduce the behavior:

  1. clone the repository [open3d 0.9]
  2. go to Open3d/examples/Python/ReconstructionSystem/sensors
  3. py azure_kinect_mkv_reader.py --input "C:/Program Files/Azure Kinect SDK v1.2.0/tools/720.mkv"

Expected behavior
play the video/ record video/open kinect viewer

Environment (please complete the following information):

  • OS: Windows 10 64bit
  • Python version: 3.6.3
  • Open3D version: 0.9
  • Is this remote workstation?: no
  • How did you install Open3D?: pip3

Additional context
output for azure_kinect_mkv_reader.py

No output path, only play mkv
Traceback (most recent call last):
File "D:/Git_Projects/Open3D/examples/Python/ReconstructionSystem/sensors/azure_kinect_mkv_reader.py", line 125, in
reader = ReaderWithCallback(args.input, args.output)
File "D:/Git_Projects/Open3D/examples/Python/ReconstructionSystem/sensors/azure_kinect_mkv_reader.py", line 21, in __init__
self.reader.open(self.input)
RuntimeError: [Open3D ERROR] Cannot load k4arecord.dll

Process finished with exit code 1

output for azure_kinect_viewer.py

[Open3D INFO] AzureKinectSensor::Connect
[Open3D INFO] sensor_index 0
[Open3D INFO] Serial number: 001075192912
[Open3D INFO] Firmware build: Rel
[Open3D INFO] > Color: 1.6.98
[Open3D INFO] > Depth: 1.6.70[6109.7]
Sensor initialized. Press [ESC] to exit.
Traceback (most recent call last):
File "D:/Git_Projects/Open3D/examples/Python/ReconstructionSystem/sensors/azure_kinect_viewer.py", line 72, in
v.run()
File "D:/Git_Projects/Open3D/examples/Python/ReconstructionSystem/sensors/azure_kinect_viewer.py", line 36, in run
vis.update_geometry()
TypeError: update_geometry(): incompatible function arguments. The following argument types are supported:
1. (self: open3d.open3d.visualization.Visualizer, arg0: open3d.open3d.geometry.Geometry) -> bool

Invoked with: VisualizerWithKeyCallback with name viewer

output for azure_kinect_recorder.py

Prepare writing to 2019-12-31-18-54-38.mkv
[Open3D INFO] AzureKinectSensor::Connect
[Open3D INFO] sensor_index 0
[Open3D INFO] Serial number: 001075192912
[Open3D INFO] Firmware build: Rel
[Open3D INFO] > Color: 1.6.98
[Open3D INFO] > Depth: 1.6.70[6109.7]
Recorder initialized. Press [SPACE] to start. Press [ESC] to save and exit.
Traceback (most recent call last):
File "D:/Git_Projects/Open3D/examples/Python/ReconstructionSystem/sensors/azure_kinect_recorder.py", line 118, in
r.run()
File "D:/Git_Projects/Open3D/examples/Python/ReconstructionSystem/sensors/azure_kinect_recorder.py", line 71, in run
vis.update_geometry()
TypeError: update_geometry(): incompatible function arguments. The following argument types are supported:
1. (self: open3d.open3d.visualization.Visualizer, arg0: open3d.open3d.geometry.Geometry) -> bool

Invoked with: VisualizerWithKeyCallback with name recorder

Process finished with exit code 1

Is there prebuilt c++ open3d libraries? or for now we have to build from source?

Thanks & Regards
Prakash

possible bug sensors

Most helpful comment

I use Open3D 0.10.0, Windows 10 and Azure Kinect SDK v1.2.0. I had the same error but after uninstall and reinstall the Azure Kinect SDK v1.2.0 and add the path C:\Program FilesAzure Kinect SDK v1.2.0\sdk\windows-desktop\amd64\release\bin to PATH in the environment variables and added the K4A_LIB_DIR = C:\Program FilesAzure Kinect SDK v1.2.0\sdk\windows-desktop\amd64\release\bin to the system variables it works perfectly for me
Path for Azure Kinect SDK
.

All 4 comments

This specific problem is due to an update of the API.
A quick fix is to change this line to vis.update_geometry([rgbd])

Ok Thanks
After replacing with vis.update_geometry(rgbd)
azure_kinect_viewer.py and azure_kinect_recorder.pyexamples worked.
but azure_kinect_mkv_reader.pyis still not working below is the output

No output path, only play mkv
Traceback (most recent call last):
File "D:/Git_Projects/Open3D/examples/Python/ReconstructionSystem/sensors/azure_kinect_mkv_reader.py", line 125, in
reader = ReaderWithCallback(args.input, args.output)
File "D:/Git_Projects/Open3D/examples/Python/ReconstructionSystem/sensors/azure_kinect_mkv_reader.py", line 21, in __init__
self.reader.open(self.input)
RuntimeError: [Open3D ERROR] Cannot load k4arecord.dll

i have installed azure kinect SDK 1.2 and 1.3 in C:/Program Files/
also i have added dll files folder path in Environment Variable Path

Update: I noticed same error mentioned here and here

I use Open3D 0.10.0, Windows 10 and Azure Kinect SDK v1.2.0. I had the same error but after uninstall and reinstall the Azure Kinect SDK v1.2.0 and add the path C:\Program FilesAzure Kinect SDK v1.2.0\sdk\windows-desktop\amd64\release\bin to PATH in the environment variables and added the K4A_LIB_DIR = C:\Program FilesAzure Kinect SDK v1.2.0\sdk\windows-desktop\amd64\release\bin to the system variables it works perfectly for me
Path for Azure Kinect SDK
.

On Windows, the Open3D Kinect plugin will look for the Kinect K4A library located in the default installation paths:

https://github.com/intel-isl/Open3D/blob/3c6e66419a0f5669b27503f1e30dd4960b1aa4ba/cpp/open3d/io/sensor/azure_kinect/K4aPlugin.cpp#L76-L79

Currently, it supports 1.2.0 to 1.4.1. If the K4A library is not in the default location, you'll need to set the K4A_LIB_DIR environment variable to point to the directory containing the K4A's *.dll files.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

prerakmody picture prerakmody  路  3Comments

taochenshh picture taochenshh  路  3Comments

mutp picture mutp  路  4Comments

Timu777 picture Timu777  路  3Comments

samarth-robo picture samarth-robo  路  3Comments