Giter VIP home page Giter VIP logo

naonaoue / k4a.net Goto Github PK

View Code? Open in Web Editor NEW

This project forked from bibigone/k4a.net

0.0 0.0 0.0 9.43 MB

K4A.Net - Three-in-one .NET library to work with Azure Kinect devices (also known as Kinect for Azure, K4A, Kinect v4). It includes sensor API, recording and playback API, body tracking API. Samples for WPF, .NET Core and Unity are included.

License: MIT License

C# 99.59% Batchfile 0.26% ShaderLab 0.15%

k4a.net's Introduction

K4A.Net (K4AdotNet)

K4A.NetThree-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":

  1. 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
  2. Record API — data recording from device to MKV-files, and data reading from such files
    • Corresponding namespace: K4AdotNet.Record
    • Corresponding native API: record.h and playback.h
  3. Body Tracking API — body tracking of multiple skeletons including eyes, ears and nose
    • Corresponding namespace: K4AdotNet.BodyTracking
    • Corresponding native API: k4abt.h

Key features

Dependencies

K4AdotNet depends on the following native libraries (DLLs) from Azure Kinect Sensor SDK and Azure Kinect Body Tracking SDK:

Library "component" Depends on Version in use Location in repository Included in NuGet package
Sensor API k4a.dll, depthengine_2_0.dll(1) 1.4.1 externals/k4a/windows-desktop/amd64 YES
Record API k4arecord.dll 1.4.1 externals/k4a/windows-desktop/amd64 YES
Body Tracking API k4abt.dll(2), dnn_model_2_0_op11.onnx and/or dnn_model_2_0_lite_op11.onnx 1.1.0 no(3)

Notes:

  • (1) depthengine_2_0.dll is required only if you are using Transformation or Device classes. All other Sensor API (types from K4AdotNet.Sensor namespace) depends only on k4a.dll.
  • (2) k4abt.dll uses ONNX Runtimeonnxruntime.dll, which in turn depends on the following NVIDIA cuDNN and NVIDIA CUDA 11.2.1 libraries. Also, Visual C++ Redistributable for Visual Studio 2015 is required: vcomp140.dll.
  • (3) The full list of libraries and data files required for Body Tracking:
    k4abt.dll (4.3 MB),
    dnn_model_2_0_op11.onnx (159 MB) and/or dnn_model_2_0_lite_op11.onnx (43 MB),
    cublas64_11.dll (108 MB),
    cublasLt64_11.dll (204 MB),
    cudart64_110.dll (0.4 MB),
    cudnn_cnn_infer64_8.dll (673 MB),
    cudnn_ops_infer64_8.dll (308 MB),
    cudnn64_8.dll (0.3 MB),
    cufft64_10.dll (224 MB),
    vcomp140.dll (0.2 MB).
    (Plus additional libraries for TensorRT and DirectML tracking modes.)
    It is mostly unpractical to have such bulky files in repositories. For this reason they are not included to the repository. Also, they are not included to NuGet package.

How to use Body Tracking runtime:

  • The easiest way to use Body Tracking is to ask user to install Body Tracking SDK by him/herself: https://docs.microsoft.com/en-us/azure/Kinect-dk/body-sdk-setup
  • But you can also put all required libraries and data files to the output directory of your project (on post-build step, for example). All required libraries and data files can be found in directory tools of Body Tracking SDK.
  • K4AdotNet is trying to find Body Tracking runtime in the following locations:
    • directory with executable file
    • directory with K4AdotNet assembly
    • installation directory of Body Tracking SDK under Program Files
  • Use bool Sdk.IsBodyTrackingRuntimeAvailable(out string message) method to check if Body Tracking runtime and all required components are available/installed
  • Also, you can optionally call bool Sdk.TryInitializeBodyTrackingRuntime(TrackerProcessingMode mode, out string message) method on start of your application to initialize Body Tracking runtime (it can take a few seconds)

Versions

See https://github.com/bibigone/k4a.net/releases

How to build

  • Open K4AdotNet.sln in Visual Studio 2019
  • Build solution (Ctrl+Shift+B)
  • After that you can run and explore samples:
    • K4AdotNet.Samples.Core.BodyTrackingSpeed — sample .NET Core 3.1 console application to measure speed of Body Tracking.
    • K4AdotNet.Samples.Core.Recorder — sample .NET Core 3.1 console application to record data from Azure Kinect device to MKV file.
    • K4AdotNet.Samples.Wpf.Viewer — sample WPF application to demonstrate usage of Sensor API and Record API.
    • K4AdotNet.Samples.Wpf.BodyTracker — sample WPF application to demonstrate usage of Body Tracking API.
    • K4AdotNet.Samples.Wpf.BackgroundRemover — sample WPF application implementing the background removal effect for color picture with the help of depth data.
  • Instruction on building Unity sample can be found here.

k4a.net's People

Contributors

bibigone avatar bassill avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.