Installation Linux
We have 2 methods for installing on Linux. In one instance, we lean heavily on pre-built binaries being packaged with SSP (recommended). In the second method we manually install all necessary dependencies.
These steps have been tested on Ubuntu 20.04
Pre-built binaries (recommended)
This will use the binaries we have already built for each platform and architecture
If you want to see how the binaries were built you can check out
3rdparty/build_linux_dep.sh
Installing Manually
This will provide download instructions for each library
Problems?! (shocker)
Reach out on our discord and we will get you going!
Installing with Pre-Built Binaries (Recommended)
1.0 Install Pre-Requisites
2.0 Install Azure Kinect SDK/Azure Kinect Body Tracking SDK (optional)
These steps are only required if you are interested in building with Azure Kinect and Body Tracking capabilities.
From this comment: https://feedback.azure.com/users/1291190890-mpdroid
These are the steps I followed to install k4a-tools, libk4a and libk4abt on Ubuntu 20.04. The general steps are as outlined in https://docs.microsoft.com/en-us/azure/Kinect-dk/sensor-sdk-download, with a couple of hacks to make things work on 20.04. - use of 18.04 repo, even though OS is 20.04 - installed lower versions of tools and libraries (as latest versions of sensor and body tracker don't seem to be compatible on 20.04)
Verify sensor library by launching camera viewer (require sudo
for hardware access)
Clone and build Azure Kinect Samples.
Run
simple_3d_viewer
to verify body tracker works.
3.0 Install OAK-D Pre-Requisites (optional, if you want to stream an OAK-D using Xlink and run inference using OpenVINO)
3.1 Install python 3.8 if you do not have it (necessary for OAK-D)
3.2 Install OpenVINO (used to run inference on frames grabbed from OAK-D device)
https://docs.openvino.ai/latest/openvino_docs_install_guides_installing_openvino_apt.html#doxid-openvino-docs-install-guides-installing-openvino-apt
4.0 Build/Install Sensor Stream Pipe
NOTE: You must enable Kinect or Xlink functionality when building with the following flags:
-DK4A_ENABLED=TRUE
(for Kinect)
-DXLINK_ENABLED=TRUE
(for OAK-D)
Example:
cmake -DK4A_ENABLED=TRUE ..
or
cmake -DXLINK_ENABLED=TRUE ..
the flags are cached, so if you want to disable you will need to set them to false
5.0 Use it!
Now checkout Streaming a Video or Streaming a Dataset to see how you can stream local files with Sensor Stream Server to Sensor Stream Client.
Installing Manually
1.0 Install Pre-Requisites
To get our Sensor Stream Pipe up and running, you will require the following:
The following steps were tested on Ubuntu 18.04. Installing on other recent Linux distributions should be pretty similar, but please check the installation instructions for OpenCV and Kinect DK on your respective platform first. Installation instructions for Windows should be ready soon. If you encounter any problems or have any suggestions, please let us know by emailing contact@moetsi.com or post on our forum.
Dependencies
To get our Sensor Stream Pipe up and running, you will require the following:
OpenCV 3.2.0 (tested on version available on Ubuntu 18.04 repo) is used for image processing.
libav 3.4.6 (tested on version available on Ubuntu 18.04 repo) encodes, decodes and processes image frames.
Cereal 1.2.2 (headers only) serializes data for network transmission.
spdlog 1.4.1 Logging library.
yaml-cpp 0.6.0 reads server configuration files.
Zdepth: compresses depth data.
NvPipe (optional, but recommended if you have an NVidia GPU ) encodes and decodes frames. This is optional, but recommended for users with Nvidia GPUs.
Azure Kinect SDK 1.3 (to support the Azure Kinect Body Tracking SDK), 1.4 otherwise (optional) accesses Kinect DK data.
Azure Kinect Body Tracking SDK 1.0 (optional) SSP Body Tracking client.
Download and install repo libraries
OpenCV 3.2.0
Libav 3.4.6
Download and extract "out-of-repo" libraries
First, create a folder where local libs are to be installed:
Cereal 1.2.2
ZeroMQ
If you want to take advantage of ZMQ pulling support to check for new frames, compile ZMQ and CPPZMQ with the draft API suppport. Also, you must set SSP_WITH_ZMQ_POLLING at SSP build time. Discussion available here
libzmq3 4.3.1
cppzmq 4.3.0
yaml-cpp 0.6.0
Zdepth
spdlog
NVPipe (optional, recommended for users with Nvidia GPU)
Azure Kinect SDK 1.3/4 (optional)
Note: to avoid getting a password prompt, run any command as sudo before starting this section of the tutorial
1) Add the Linux Software Repository for Microsoft Products.
2) Install Azure Kinect SDK 1.3 (change 1.3 to 1.4 if you do not need body tracking)
3) To be able to use the Kinect as non-root, please run the following:
4 a) If using 1.4, in the current package, the link to the canonical version of the depth lib is missing. You can create it by running the following command:
4 a) If using 1.3, the depth engine is missing from the package. Microsoft is aware of the problem, but it only corrected it in 1.4.
https://github.com/microsoft/Azure-Kinect-Sensor-SDK/blob/develop/docs/depthengine.md
You can get the libdepthengine.so.2.0 file from the package at https://packages.microsoft.com/ubuntu/18.04/prod/pool/main/libk/libk4a1.4/libk4a1.4_1.4.1_amd64.deb. Open with Archive Manager (or equivalent), the file is in (data/./usr/lib/x86_64-linux-gnu/libk4a1.4/), and extract it to ~/libs/lib
. You can then perform an equivalent command as above.
Azure Kinect Body Tracking SDK (optional)
Check instructions above to add the Linux Software Repository for Microsoft Products and then do:
Building Sensor Stream Pipe
Download and build the project (the ssp_server, ssp_client and ssp_tester):
Now checkout Streaming a Video or Streaming a Dataset to see how you can stream local files with Sensor Stream Server to Sensor Stream Client.
Last updated