飞行机器人专栏(十四)-- Kinect DK 人体骨骼点运动提取方法

news2024/11/27 20:58:33

系列文章目录

Ubuntu 18.04/20.04 CV环境配置(下)--手势识别TRTpose+Kinect DK人体骨骼识别_ubuntu kinect骨骼测试-CSDN博客文章浏览阅读1.3k次。trt_pose_ros+ kinect实现手势识别和人体骨骼识别,用于机器人运动控制参考_ubuntu kinect骨骼测试https://haowang.blog.csdn.net/article/details/126761139

文章目录

目录

前言

一、Kinect DK简介

二、关键特性

1.硬件配置

尺寸和重量

2.技术特性

术语

3.功能说明

Azure Kinect 人体跟踪功能

三、 安装K4A & K4ABT SDK及ROS驱动

1. 官方SDK

Building and Dependencies

传感器 SDK

Azure Kinect 人体跟踪 SDK

2. SDK安装

Windows 安装说明

Linux 安装说明

3. 人体追踪SDK

         Azure Kinect 人体跟踪 SDK 的内容

4. 多设备连接

使用多个 Azure Kinect DK 设备的好处

5. 多设备标定

方法1-Green Screen Example

Green Screen Example

 方法2-KinectAzureDKProgramming


前言

Azure Kinect DK 是一款开发人员工具包,配有先进的 AI 传感器,提供复杂的计算机视觉和语音模型。 Kinect 将深度传感器、空间麦克风阵列与视频摄像头和方向传感器整合成一体式的小型设备,提供多种模式、选项和软件开发工具包 (SDK)。 

Azure Kinect DK 开发环境由以下多个 SDK 组成:

  • 用于访问低级别传感器和设备的传感器 SDK。
  • 用于跟踪 3D 人体的人体跟踪 SDK。
  • 用于启用麦克风访问和基于 Azure 云的语音服务的 Azure AI 语音 SDK。

此外,可将认知视觉服务与设备 RGB 相机配合使用。

Azure Kinect 传感器 SDK 提供低级别传感器访问用于完成 Azure Kinect DK 硬件传感器和设备配置。若要详细了解 Azure Kinect 传感器 SDK,请参阅使用传感器 SDK。


一、Kinect DK简介

        Azure Kinect DK是面向商业用户的一款专业体感设备:100万像素TOF深度摄像头、1200万像素高清摄像头,7麦克风圆形阵列,和方向传感器,包含了深度,视觉,声音和方向四大传感器类别。

        深度摄像头在控制访问时可以选择宽或窄两种FOV视野,所以在实际空间内获取的数据将会更为精准。可以将捕捉到的人或物的画面以深度摄像画面和三维点云效果来表现。

        同时,连接Azure云服务,进一步推进Azure Kinect DK认知服务,通过将设备上的高级传感器与Azure云端认知服务相结合,开发更准确的视觉和语音模型,并使用Azure机器学习服务来训练模型 。

Azure Kinect DK 文档 | Microsoft LearnAzure Kinect DK 是一款开发人员工具包,配有先进的 AI 传感器,提供复杂的计算机视觉和语音模型。 Kinect 将深度传感器、带有视频摄像头的空间麦克风阵列和方向传感器整合成一体式的小型设备,提供多种模式、选项和 SDK。icon-default.png?t=N7T8https://learn.microsoft.com/zh-cn/azure/kinect-dk/

二、关键特性

1.硬件配置

尺寸和重量

Azure Kinect 设备的尺寸和重量如下。

  • 尺寸:103 x 39 x 126 毫米
  • 重量:440 克

 

2.技术特性

  • 相机视野

术语

整篇文章使用了以下缩写术语。

  • NFOV(窄视场深度模式)
  • WFOV(宽视场深度模式)
  • FOV(视场)
  • FPS(每秒帧数)
  • IMU(惯性测量单元)
  • FoI(专业范围)

 

3.功能说明

Azure Kinect 人体跟踪功能

随附的 SDK 提供以下人体跟踪功能:

  • 提供人体图像分段。
  • 包含 FOV 中每个不完整或完整人体的在解剖学上正确的骨干。
  • 提供每个人体的唯一标识。
  • 可跟踪人体在不同时间的位置。

三、 安装K4A & K4ABT SDK及ROS驱动

GitHub - microsoft/Azure-Kinect-Sensor-SDK: A cross platform (Linux and Windows) user mode SDK to read data from your Azure Kinect device.A cross platform (Linux and Windows) user mode SDK to read data from your Azure Kinect device. - microsoft/Azure-Kinect-Sensor-SDKicon-default.png?t=N7T8https://github.com/Microsoft/Azure-Kinect-Sensor-SDKAzure Kinect 传感器 SDK 下载 | Microsoft Learn了解如何在 Windows 和 Linux 中下载和安装 Azure Kinect 传感器 SDK。icon-default.png?t=N7T8https://learn.microsoft.com/zh-cn/azure/kinect-dk/sensor-sdk-download

1. 官方SDK

Building and Dependencies

This information is for how to build your own copy of the SDK binaries. Most users of the Azure Kinect DK should not need to re-build the SDK, if you just need to use the SDK see usage for more information. If you need to build from source, you have to clone the repository instead of downloading the Zip file to ensure all the submodule dependencies in place.

Azure-Kinect-Sensor-SDK/docs/building.md at develop · microsoft/Azure-Kinect-Sensor-SDK · GitHubA cross platform (Linux and Windows) user mode SDK to read data from your Azure Kinect device. - Azure-Kinect-Sensor-SDK/docs/building.md at develop · microsoft/Azure-Kinect-Sensor-SDKicon-default.png?t=N7T8https://github.com/microsoft/Azure-Kinect-Sensor-SDK/blob/develop/docs/building.md

传感器 SDK 提供以下功能,这些功能一经安装即可在 Azure Kinect DK 上运行:

  • 深度相机访问和模式控制(被动 IR 模式,以及宽视场和窄视场深度模式)
  • RGB 相机访问和控制(例如曝光和白平衡)
  • 运动传感器(陀螺仪和加速度传感器)访问
  • 同步的深度 RGB 相机流,相机之间的延迟可配置
  • 外部设备同步控制,设备之间的延迟偏移量可配置
  • 用于处理图像分辨率、时间戳等的相机帧元数据访问。
  • 设备校准数据访问

关于 Azure Kinect 传感器 SDK | Microsoft Learn概述 Azure Kinect 传感器软件开发工具包 (SDK) 及其功能和工具。icon-default.png?t=N7T8https://learn.microsoft.com/zh-cn/azure/kinect-dk/about-sensor-sdk

传感器 SDK

  • 下载传感器 SDK。
  • GitHub 上已提供传感器 SDK 的开放源代码。
  • 有关用法详细信息,请参阅传感器 SDK API 文档。

Azure Kinect 人体跟踪 SDK

人体跟踪 SDK 包含 Windows 库和运行时,在 Azure Kinect DK 硬件上使用时可以跟踪 3D 人体。

2. SDK安装

Windows 安装说明

可在此处找到最新版和旧版 Azure Kinect 传感器 SDK 和固件的安装详细信息。

可在此处找到源代码。

 备注

安装 SDK 时,请记住要安装到的路径。 例如,“C:\Program Files\Azure Kinect SDK 1.2”。 你将在此路径中找到文章中提到的工具。

 

Linux 安装说明

        目前,唯一支持的分发版是 Ubuntu 18.04。 若要请求对其他分发版的支持,请参阅此页。

        首先,需要遵照此处的说明,配置 Microsoft 的包存储库。

现在,可以安装所需的包。 k4a-tools 包中包含 Azure Kinect 查看器、Azure Kinect 录制器和 Azure Kinect 固件工具。 若要安装该包,请运行:

sudo apt install k4a-tools

        此命令安装该工具正常工作所需的依赖项包,包括最新版本的 libk4a<major>.<minor>。 你将需要添加 udev 规则来访问 Azure Kinect DK,而不必成为根用户。 有关说明,请参阅 Linux 设备设置。 也可以根用户身份启动那些使用设备的应用程序。

libk4a<major>.<minor>-dev 包中包含针对 libk4a 生成应用程序/可执行文件的头文件以及 CMake 文件。

libk4a<major>.<minor> 包中包含运行依赖于 libk4a 的应用程序/可执行文件所需的共享对象。

基本教程需要 libk4a<major>.<minor>-dev 包。 若要安装该包,请运行:

sudo apt install libk4a<major>.<minor>-dev

如果该命令成功,则表示 SDK 可供使用。

请确保安装与 libk4a<major>.<minor>-dev 匹配的 libk4a<major>.<minor> 版本。 例如,如果你安装 libk4a1.4.1-dev 包,则请安装包含共享对象文件匹配版本的相应 libk4a1.4.1 包。 有关 libk4a 的最新版本,请参见下一部分的链接。

3. 人体追踪SDK

Azure Kinect Body Tracking SDK: Welcomeicon-default.png?t=N7T8https://microsoft.github.io/Azure-Kinect-Body-Tracking/release/1.1.x/index.html

         https://learn.microsoft.com/zh-cn/azure/kinect-dk/body-sdk-download

Azure Kinect 人体跟踪 SDK 的内容

  • 使用 Azure Kinect DK 生成人体跟踪应用程序所需的标头和库。
  • 使用 Azure Kinect DK 的人体跟踪应用程序所需的可再发行 DLL。
  • 示例人体跟踪应用程序。

4. 多设备连接

同步多个 Azure Kinect DK 设备 | Microsoft Learn本文探讨多设备同步的优势,以及如何设置要同步的设备。icon-default.png?t=N7T8https://learn.microsoft.com/zh-cn/azure/kinect-dk/multi-camera-sync

每个 Azure Kinect DK 设备附带 3.5 毫米同步端口(输入同步输出同步),可将多个设备链接在一起。 连接设备后,软件可以协调设备之间的触发定时。

本文将介绍如何连接和同步设备。

使用多个 Azure Kinect DK 设备的好处

使用多个 Azure Kinect DK 设备的原因有很多,包括:

  • 填补遮挡区域。 尽管 Azure Kinect DK 数据转换生成的是单个图像,但两个相机(深度和 RGB 相机)实际上保持着较小的一段距离。 这种偏移使得遮挡成为可能。 遮挡是指前景对象阻挡了设备上两个相机之一的背景对象的部分视角。 在生成的彩色图像中,前景对象看上去像是在背景对象上投射了一个阴影。
    例如,在下图中,左侧相机可看到灰色像素“P2”。但是,白色前景对象会阻止右侧相机 IR 横梁。 右侧相机无法获取“P2”的数据。附加的同步设备可以提供遮挡的数据。
  • 扫描三维对象。
  • 将有效帧速率提升至 30 帧/秒 (FPS) 以上的值。
  • 捕获同一场景的多个 4K 彩色图像,所有图像都在曝光中心时间点的 100 微秒 (μs) 内对齐。
  • 增大相机的空间覆盖范围。

5. 多设备标定

方法1-Green Screen Example

Green Screen Example

The goal of the green screen example is to demonstrate best practices for using multiple Azure Kinect DK devices, with an emphasis on synchronization and calibration (the 'green screen' code is only a small portion of the logic). In particular, the green screen application showcases a physical limitation of the hardware and how it can be mostly addressed using another device.

Azure-Kinect-Sensor-SDK/examples/green_screen at develop · microsoft/Azure-Kinect-Sensor-SDK · GitHub

 编译:CMakelists.tst

# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.
cmake_minimum_required(VERSION 3.5)
project(kinextdk_example LANGUAGES C CXX)


############################
#### AZURE KINECT SDK ######
############################

message("Finding K4A SDK binaries")

# Disable cached locations for K4A SDK binaries.
# Do this to force the search logic to happen correctly.
# If we don't disable these cached directories, we
# won't be able to tell the difference between the ext/sdk location
# and the system installed version on linux. Since we have to treat these
# differently (one needs install, one doesn't) we must disable the cache
# so that find_package(k4a) will fail in all cases if not installed via the .deb.
unset(k4a_DIR CACHE)

# Force running the Findk4a.cmake module
find_package(k4a  REQUIRED)
find_package(OpenCV REQUIRED)
set(K4A_LIBS k4a::k4a;k4a::k4arecord)


# This reads the K4A_LIBS and K4A_INSTALL_REQUIRED variables and decides how to install
# the various shared objects / DLLs

##################################
###### END AZURE KINECT SDK ######
##################################
include_directories(${OpenCV_INCLUDE_DIRS})

add_executable(green_screen main.cpp)
target_link_libraries(green_screen 
			PRIVATE 
			k4a::k4a  
			${OpenCV_LIBS})

 

mkdir build && cd build
cmake .. -DOpenCV_REQUIRED=ON
make 

 方法2-KinectAzureDKProgramming

 [Calibration] Overlay point cloud from two cameras · Issue #803 · microsoft/Azure-Kinect-Sensor-SDK · GitHubHi I have tried to modify the green_screen example to allow the display of point clouds obtained from two sync cameras but couldn't get the point cloud to overlay correctly. Is there be any sample code on overlaying the point cloud from ...icon-default.png?t=N7T8https://github.com/microsoft/Azure-Kinect-Sensor-SDK/issues/803

GitHub - forestsen/KinectAzureDKProgramming: Samples about Kinect Azure DK programmingSamples about Kinect Azure DK programming. Contribute to forestsen/KinectAzureDKProgramming development by creating an account on GitHub.icon-default.png?t=N7T8https://github.com/forestsen/KinectAzureDKProgramming

  1. Aruco_TwoKinects_Calibration_Extrinsics

    Using ArUco library to calibrate the extrinsic matrix between Two Kinects. We will get two csv files stored two transformation matrix which are "sub => master" and "sub => marker".

  2. OneKinect_Recording_RGB_DEPTH_IR

    Record the rgb+depth+ir stream into the mkv video file.

  3. OneKinect_Playback_RGB_DEPTH_IR

    Playback the mkv video file using opencv.

  4. Open3D_OneKinect

    Using the Open3D to open the azure kinect device and show the rgb + depth image or the point cloud based on the open3d's visualization class.

GitHub - forestsen/K4aGrabber: Kinect Azure DK Grabber of PCL (Point Cloud Library).Kinect Azure DK Grabber of PCL (Point Cloud Library). - forestsen/K4aGrabbericon-default.png?t=N7T8https://github.com/forestsen/K4aGrabber

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1603832.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

生活中的洪特规则

不知道你还记不记得高中物理所学的一个奇特的物理规则&#xff1a;洪特规则。 洪特规则是德国人弗里德里希洪特&#xff08;F.Hund&#xff09;根据大量光谱实验数据总结出的一个规律&#xff0c;它指出电子分布到能量简并的原子轨道时&#xff0c;优先以自旋相同的方式分别占…

《由浅入深学习SAP财务》:第2章 总账模块 - 2.7 总账模块报表 -2.7.2 对外报表:现金流量表

2.7.2 对外报表&#xff1a;现金流量表 现金流量表包括直接法和间接法。使用SAP出具现金流量表&#xff0c;一般只能出具直接法报表。间接法是指按照净利润倒推出现金流量的发生额&#xff0c;由于其中存在人为“分析”的因素&#xff0c;很难直接通过科目的加加减减得出所需要…

【学习】Jmeter、postman、python如何与数据库相互配合

在当今数字化时代&#xff0c;数据库已经成为我们日常生活中不可或缺的一部分。无论是购物、社交还是工作&#xff0c;数据库都在默默地为我们提供着高效、稳定的服务。而在众多的技术工具中&#xff0c;Jmeter、Postman和Python成为了操作数据库的三大主流技术。今天&#xff…

【MATLAB源码-第191期】基于matlab的4QAM系统相位偏移估计EOS算法仿真,对比补偿前后的星座图误码率。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 1. 引言 M-QAM调制技术的重要性 现代通信系统追求的是更高的数据传输速率和更有效的频谱利用率。M-QAM调制技术&#xff0c;作为一种高效的调制方案&#xff0c;能够通过在相同的带宽条件下传输更多的数据位来满足这一需求。…

安防视频监控/视频集中存储EasyCVR平台级联时,下级平台未发流是什么原因?

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…

Python-VBA函数之旅-filter函数

目录 一、filter函数的常见应用场景&#xff1a; 二、filter函数的使用注意事项&#xff1a; 1、filter函数&#xff1a; 1-1、Python&#xff1a; 1-2、VBA&#xff1a; 2、相关文章&#xff1a; 个人主页&#xff1a;非风V非雨-CSDN博客 一、filter函数的常见应用…

Docker一键快速私有化部署(Ollama+Openwebui) +AI大模型(gemma,llama2,qwen)20240417更新

几行命令教你私有化部署自己的AI大模型&#xff0c;每个人都可以有自己的GTP 第一步&#xff1a;安装Docker(如果已经有了可以直接跳第二步) ####下载安装Docker wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O/etc/yum.repos.d/docker-ce.repo##…

HTML5 <video> 标签属性、API 方法、事件、自定义样式详解与实用示例

HTML5 <video> 标签为网页内嵌视频提供了强大且便捷的功能。以下是对 <video> 标签的主要属性、API 方法、事件、自定义样式及其使用示例的详细介绍&#xff1a; 一、属性 1. src 定义&#xff1a;指定视频文件的 URL。示例&#xff1a;<video src"my_v…

代码随想录算法训练营第一天 | 704. 二分查找 | 27. 移除元素

704. 二分查找 int search(int* nums, int numsSize, int target) {int left 0, right numsSize, mid;while (left < right) {mid left (right -left) / 2;if (nums[mid] < target) {left mid 1;} else if (nums[mid] > target) {right mid;} else {return mid…

javaswing + mysql通讯录

javaswingaddressbook 需要代码私聊

windows11 wsl2 ubuntu20.04安装vision mamba并进行测试

windows11 wsl2 ubuntu20.04安装vision mamba 安装流程使用cifar-100测试安装成功 安装流程 vision mamba安装了半天才跑通&#xff0c;记录一下流程在wsl上安装cuda wget https://developer.download.nvidia.cn/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05…

【面试题】MySQL 事务的四大特性说一下?

事务是一个或多个 SQL 语句组成的一个执行单元&#xff0c;这些 SQL 语句要么全部执行成功&#xff0c;要么全部不执行&#xff0c;不会出现部分执行的情况。事务是数据库管理系统执行过程中的一个逻辑单位&#xff0c;由一个有限的数据库操作序列构成。 事务的主要作用是保证数…

【Python】穿越Python的迭代之旅:while,for 循环的奇妙世界

欢迎来到CILMY23的博客 本篇主题为&#xff1a; 穿越Python的迭代之旅&#xff1a;while&#xff0c;for 循环的奇妙世界 个人主页&#xff1a;CILMY23-CSDN博客 系列专栏&#xff1a;Python | C | C语言 | 数据结构与算法 感谢观看&#xff0c;支持的可以给个一键三连&…

UE4_动画基础_相同骨骼的动画重定向步骤

学习笔记&#xff0c;仅供参考&#xff01; 动画重定位 是对现有动画稍加修改后用于多个角色的过程&#xff0c;它使你无需创建全新的动画&#xff0c;因为你可以在多个角色间共享动画资源。 存在两种形式的动画重定位&#xff0c;在第一种形式中&#xff0c;你要与之共享动画…

18 统计网站每日的访问次数

1.将竞赛的数据上传HDFS,查看数据的格式 通过浏览器访问hdfs,查看该文档前面的部分数据 每条数据的字段值之间使用逗号隔开的 &#xff0c;最终时间是第五个自动&#xff0c;获取第五个字段值的中的年月日。 2.通过Idea创建项目mr-raceData ,基础的配置 修改pom.xml,添加依赖 …

QML和QtQuick简介以及QML实例

从 Qt 4.7 开始&#xff0c;Qt 引入了一种声明式脚本语言&#xff0c;称为 QML&#xff08;Qt Meta Language 或者 Qt Modeling Language&#xff09;&#xff0c;作为 C 语言的一种替代。而 Qt Quick 就是使用 QML 构建的一套类库。 QML 是一种基于 JavaScript 的声明式语言。…

zookeeper实验部署

一、前期部署 IP地址 主机名安装软件系统版本192.168.10.8 node1apache-zookeeper-3.5.7-bin.tar.gz centos7.5 192.168.10.9 node2apache-zookeeper-3.5.7-bin.tar.gzcentos7.5192.168.10.10 node3apache-zookeeper-3.5.7-bin.tar.gzcentos7.5 二、zookeeper实验部署 2.1 同时…

SRIO系列-基本概念及IP核使用

参考&#xff1a;串行RapidIO: 高性能嵌入式互连技术 | 德州仪器 SRIO协议技术分析 - 知乎 PG007 目录 一、SRIO介绍 1.1 概要 1.2 SRIO与传统互联方式的比较 1.3 串行SRIO标准 1.4 SRIO层次结构&#xff1a; 1.4.1 逻辑层 1.4.2 传输层协议 1.4.3 物理层 二、Xilinx…

Go: 理解 Sync.Pool 的设计

sync 包提供了一个强大且可复用的实例池&#xff0c;以减少 GC 压力。在使用该包之前&#xff0c;我们需要在使用池之前和之后对应用程序进行基准测试。这非常重要&#xff0c;因为如果不了解它内部的工作原理&#xff0c;可能会影响性能。 池的限制 我们来看一个例子以了解它…

ELK及ELFK排错

目录 一、ELK及ELFK排错思路 1.1filebeat侧排查 1.2logstash侧排查 1.3ES、kibana侧问题 一、ELK及ELFK排错思路 1.1filebeat侧排查 第一步&#xff1a;排查filebeat上的配置文件有没有写错&#xff0c;filebeat的配置文件是yml文件&#xff0c;一定要注意格式。 第二步…