We have 2 methods for installing on Windows. 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 Windows 10 Build 19041, Visual Studio 2019 Community Edition (VS) and Visual Studio Code 1.53
Pre-built binaries (recommended)
Dependencies are prebuilt and stored on a server and downloaded by cmake using FetchContent feature
To rebuild dependencies:
cd Sensor-Stream-Pipe/3rdparty
./buid_win_dep.sh
This will download/build/install dependencies in a tmp directory. The result is a *_windep.tar.gz file.
download prebuilt ffmpeg 4.3.2
OpenCV 3.4.13 as a static library, only core, imgproc, imgcodecs and highgui modules are built
Cereal 1.3.0, header only
spdlog 1.8.2, header only but built as static library for faster compile
Zdepth (commit 9b333d9aec520 which includes a patch to generate zdepthConfig.cmake)
yaml-cpp 0.6.3 as a static library
libzmq 4.3.4 as a static library
cppzmq 4.7.1, header only
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 Azure Kinect Pre-Requisites (optional, if you want to use Azure Kinect, or Azure Kinect Body Tracking SDK)
1.1 Manually install CUDA Toolkit 10.0 (needed for Body Tracking SDK)
By default, the Intel® Distribution of OpenVINO™ is installed to the following directory, referred to as <INSTALL_DIR> elsewhere in the documentation: C:\Program Files (x86)\Intel\openvino_<version>. For simplicity, a shortcut to the latest installation is also created: C:\Program Files (x86)\Intel\openvino_2021
3.0 Build/Install Sensor Stream Pipe
Note: If planning on using Azure Kinect, Azure Kinect Body Tracking SDK, or Xlink and OpenVINO, they must be installed before SSP as SSP looks for the libraries when creating the Release
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 -G "Visual Studio 15 2017 Win64" ..
or
cmake -DXLINK_ENABLED=TRUE -G "Visual Studio 15 2017 Win64" ..
and you will need to set the env variabels for OpenVINO so you will need to run "'C:/Program Files (x86)/Intel/openvino_2021/bin/setupvars.bat'" or where ever setupvars.bat is installed
the flags are cached, so if you want to disable you will need to set them to false
3.0 Use it!
3.1 Add Body Tracking Components (optional)
Move:
- dnn_model_2_0.onnx (from body tracking sdk) and
- cudNN64_7 (from step 1.2)
to /Release (or where you run the executable) if you want to run Body Tracking on Sensor Stream Client
4.6 Prepare a directory in your home directory (or where ever you usually save repos) to place the remaining dependencies, /libs (referred henceforth as $LIBS). Create subfolders /include and /lib within /libs
4.7 Copy the contents of Zdepth\include into $LIBS\include and output lib folders (e.g. ZDepth\out\*) to $LIBS\lib.
Azure Kinect Body Tracking SDK (optional)
4.9 Install Azure Body Tracker SDK from the instructions available here.
4.10 Copy the SDK include and lib files from the SDK install list to $LIBS, or add the SDK path to SSP CMakeLists (see below)
Example
C:\Program Files\Azure Kinect Body Tracking SDK\sdk\include
Into $LIBS\include
C:\Program Files\Azure Kinect Body Tracking SDK\sdk\netstandard2.0 and C:\Program Files\Azure Kinect Body Tracking SDK\sdk\windows-desktop
Into $LIBS\lib
5.0 Building Sensor Stream Pipe
5.1 Clone the SSP repo to your home directory (or where ever you usually save repos)
Due to the differences in the build process, the Windows CMake file is named CMakeListsWindows.txt at the root of the SSP repo. Thus, you should:
5.2 Delete CMakeLists.txt
5.3 Rename CMakeListsWindows.txt to CMakeLists.txt.
5.4 Open CMakeLists.txt in VS
5.5 Update
the include ("C://Users//Andre//source//repos//vcpkg//installed//x64-windows//include")
and link paths ("C://Users//Andre//source//repos//vcpkg//installed//x64-windows//lib")
To follow the same path of where you cloned vcpkg in Step 1
5.6 Now we can build Sensor Stream Pipe. In /Sensor-Stream-Pipe run the following commands in terminal:
git clone https://github.com/moetsi/Sensor-Stream-Pipe.git
cd Sensor-Stream-Pipe
mkdir build && cd build
cmake -G "Visual Studio 15 2017 Win64" ..
cmake --build . --config Release
C:\Users\adamm\dev\vcpkg>vcpkg integrate install
Applied user-wide integration for this vcpkg root.
All MSBuild C++ projects can now #include any installed libraries.
Linking will be handled automatically.
Installing new libraries will make them instantly available.
CMake projects should use: "-DCMAKE_TOOLCHAIN_FILE=C:/Users/adamm/dev/vcpkg/scripts/buildsystems/vcpkg.cmake"