Azure Kinect 使用记录 (一)

Azure Kinect 使用记录 (一)

20211111 - 占坑
20211115 - 添加vs编译内容
20220311 - k4abt_simple_3d_viewer 突然用不了了

因项目需要,得用Azure Kinect以及它的SDK进行开发,在这里记录下心得体会,不定时更新

一、骨架跟踪示例程序

1.0 k4abt_simple_3d_viewer 闪退

之前用着还好好的,突然就用不了了,表现情况是,双击k4abt_simple_3d_viewer.exe,出现黑色的命令框和一个白色的3D Visualizer的框,然后就直接闪退,没有任何报错信息。翻了各种issue后发现,是显卡的驱动有问题!!!这里给出原文链接 => #1696

I can confirm that in most cases the reason for k4abt_simple_3d_viewer crashing is the NVIDIA driver version.
NVIDIA drivers after version:
472.12 for Game Ready drivers
and
472.84 for Studio drivers
have some problems with OpenGL. If anyone else has a similar problem please install above mentioned drivers.

显卡降级到指定版本就可以了。基本上就是472.12这个版本。


这里我就跳过Azure Kinect SDK v1.4.1Azure Kinect Body Tracking SDK的安装步骤了,你可以看到当前我安装的sdk版本是1.4.1,推荐安装到默认路径C:\Program Files\,有人提到安装到其他路径出现bug的情况。

1.1 ONNXRUNTIME ERROR

Azure Kinect Body Tracking SDK\tools中执行k4abt_simple_3d_viewer.exe大概会出现

Find onnxruntime.dll at xxx but it doesn't load correctly!

有可能是因为onnxruntime依赖的MSVC的dll版本过旧导致的,github issue #1625提供了解决方案:下载Microsoft Visual C++ Redistributable for Visual Studio 2015, 2017 and 2019即可,这里提供链接,点我,x86和x64都下载安装即可。
请添加图片描述
可以看到产生骨架的fov为深度相机的fov,当手部超出深度相机fov外,手部骨架无法跟踪。示例模型或许包含骨架的kinematic先验。

1.2 VS编译

这里分为“kinect sdk的调用”,以及“body tracking sdk的调用“,这两部分,我也不知道为啥巨硬工程师要弄两个sdk,有可能是body tracking sdk有部分依赖了外部程序(onnx、tensorrt、cuda等等),不整洁优美了,我猜。

1.2.1 Kinect SDK

首先,”将 Azure Kinect 库添加到 Visual Studio 项目“,参考:链接点我,中文也解释得很清楚。
在这里插入图片描述

按图索骥安装即可。

1.2.3 Body Tracking SDK

这里难度就提升了。根据"快速入门:生成 Azure Kinect 人体跟踪应用程序",需要将依赖的头文件和库配置到vs中。我这里写的都是默认安装路径。

  • 头文件路径
    • C:\Program Files\Azure Kinect Body Tracking SDK\sdk\include
  • 依赖库路径
    • C:\Program Files\Azure Kinect Body Tracking SDK\sdk\windows-desktop\amd64\release\lib
    • C:\Program Files\Azure Kinect SDK v1.4.1\sdk\windows-desktop\amd64\release\lib
  • 依赖库
    • k4a.lib,这是kinect sdk核心
    • k4abt.lib,这是body tracking sdk核心

以及C:\Program Files\Azure Kinect Body Tracking SDK\tools里面的dll和onnx,后续有用。
在这里插入图片描述
同样如图所示配置即可。

然后,一定要记得,将之前提到的dll和onnx全部拷到执行目录中,否则会出现下面类似的bug,在k4abt_tracker_create时抛出。

Unhandled exception at 0x00007FF980A99319 (KernelBase.dll) in Project1.exe: 0xC06D007F: Procedure not found (parameters: 0x000000D76BCFEB80).

除了拷贝外,还没想到解决办法。
在这里插入图片描述
然后执行,可以看到示例程序正常输出。更进阶点的异步、同步的玩法,待我再多研究几日。

二、Unity混合

未完待续

### 回答1: Unity3D是一种广泛使用的游戏引擎,支持多种平台的开发。为了提供更多的现实体验,Unity3D可以与Azure Kinect结合使用,将其作为摄像头来获取深度图像、颜色图像、体感数据等信息。 Azure Kinect是一款由微软公司推出的深度学习技术和人体跟踪功能的设备,其可以实现对房间、建筑物、道路、汽车等三维场景的深度感知。在Unity3D中,使用Azure Kinect作为摄像头可以实现真实的空间交互效果和全方位视觉体验。 使用Azure Kinect时,需要首先设置好Kinect传感器组件,并启用它们获取深度和颜色图像等信息。然后在Unity3D中建立相应的场景和游戏元素,并将Azure Kinect中获取的图像和数据应用到场景中。 在使用中需要注意的是,Azure Kinect使用需要专业的硬件支持和软件开发技术,因此操作起来稍微复杂一些。同时,Kinect传感器的分辨率和帧率等也会影响到游戏体验的流畅度和真实感。 总的来说,Unity3D使用Azure Kinect当摄像头可以实现更加真实的空间交互效果和全方位视觉体验,是游戏开发、虚拟现实等领域探索的重要方向。 ### 回答2: Unity3D是一款流行的游戏引擎,支持多种平台和操作系统,包括PC、移动设备和虚拟现实头戴式显示器。Azure Kinect作为一个深度摄像头,可以检测人体骨架、面部表情、声音等信息。在Unity3D中使用Azure Kinect作为摄像头可以为游戏和交互应用带来更丰富的体验。 首先,使用Azure Kinect连接Unity3D需要安装Azure Kinect Sensor SDK和Unity Plugin。SDK包含了驱动程序和API,可以访问深度、彩色、红外图像和声音等传感器数据。Unity Plugin则提供了一个Unity3D接口和样例代码,方便开发者使用和调试。 其次,Azure Kinect可以在Unity3D中实现很多功能。基于深度数据可以进行姿态检测、手势识别、人脸识别等应用。使用声音数据可以实现语音交互、语音识别、语音合成等应用。而彩色图像和红外图像可以帮助生成更真实的虚拟现实场景和情境。 最后,Azure Kinect也可以与其他插件、工具或库结合使用,例如TensorFlow、OpenCV、ROS等等,扩展应用范围和实现更高级的功能。Azure Kinect作为一个开源的硬件平台,吸引了众多开发者和创客们的加入和支持。 综上所述,使用Azure Kinect作为Unity3D的摄像头,可以为游戏、教育、医疗等领域带来更多的可能性和创新。 ### 回答3: Unity3D是一款应用广泛的游戏开发引擎,它可以与各种设备和技术进行集成,以实现更复杂的游戏和交互体验。Azure Kinect是一款由Microsoft开发的深度相机设备,它使用红外线和RGB相机来收集环境和物体的三维数据。现在,Unity3D可以使用Azure Kinect作为摄像头来捕捉玩家的动作和环境的数据。 如果想要在Unity3D中使用Azure Kinect,首先需要在开发计算机上安装Azure Kinect SDK以及对应的Unity插件。然后可以编写脚本来控制Azure Kinect设备,捕获RGB图像、深度图像、姿态和Motion Capture数据。在Unity3D中,这些数据可以用来创建虚拟人物、场景和游戏元素,以及实现交互动作和手势识别。 使用Azure Kinect作为Unity3D的摄像头,可以帮助开发者更好地捕捉现实环境中的数据,使游戏和交互应用更加智能化、自然化和沉浸式。此外,结合Azure Kinect的其他功能,如语音识别、人脸识别和动作捕捉,将有助于开发更加丰富和个性化的应用程序。因此,Unity3D使用Azure Kinect作为摄像头将是未来游戏和交互开发的一个重要趋势。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值