K4A.Net
https://github.com/bibigone/k4a.net
K4A.Net — Three-in-one managed .NET library to work with Azure Kinect devices (also known as Kinect for Azure, K4A, Kinect v4). It consists of the following "components":
Sensor API
— access to depth camera, RGB camera, accelerometer and gyroscope, plus device-calibration data and synchronization control- Corresponding namespace:
K4AdotNet.Sensor
- Corresponding native API:
k4a.h
- Corresponding namespace:
Record API
— data recording from device to MKV-files, and data reading from such files- Corresponding namespace:
K4AdotNet.Record
- Corresponding native API:
record.h
andplayback.h
- Corresponding namespace:
Body Tracking API
— body tracking of multiple skeletons including eyes, ears and nose- Corresponding namespace:
K4AdotNet.BodyTracking
- Corresponding native API:
k4abt.h
- Corresponding namespace:
Key features
- Written fully on C#
- No unsafe code in library K4AdotNet itself (only
DllImports
) - CLS-compliant (can be used from any .Net-compatible language, including C#, F#, VB.Net)
- Library K4AdotNet is compiled against .NET Standard 2.0 and .NET Framework 4.6.1 target frameworks
- This makes it compatible with .NET Core 2.0 and later, .NET Framework 4.6.1 and later, Unity 2018.1 and later, etc.
- See https://docs.microsoft.com/en-us/dotnet/standard/net-standard for details
- Clean API, which is close to C/C++ native API from Azure Kinect Sensor SDK and Azure Kinect Body Tracking SDK.
- Plus useful helper methods, additional checks and meaningful exceptions.
- Full feature set (all API provided by native SDKs are available in this C# wrapper)
- Up-to-date with the latest versions of native SDKs
- No additional dependencies
- Except dependencies on native libraries (DLLs) from Azure Kinect Sensor SDK and Azure Kinect Body Tracking SDK
- Native libraries from Azure Kinect Sensor SDK are included to repository(see
externals
directory) and NuGet package - But native libraries from Azure Kinect Body Tracking SDK are not included to repository. It is recommended to install Azure Kinect Body Tracking SDK separately. For details see below
- Plenty of powerful samples:
- for .NET Core
- for WPF
- for Unity
- Well documented
- Unit-tested
- Potentially multi-platform (Windows, Linux)
- But currently tested only under Windows
- And most of samples are written using WPF
- Available as NuGet package: https://www.nuget.org/packages/K4AdotNet