基于Kinect 动捕XR直播解决方案 - 硬件篇

Kinect-V2 硬件设备

一、Kinect介绍

1、Kinect for Windows 的开发配置
  • Kinect V2
  • 操作系统:Windows 10+(必须) Windows Surface Windows Surface 2
  • 开发环境:Visual Studio 2017 .NET Framework 4.5 (.NET Framework 4.5)
  • 硬件要求:

Dual-core, 2.66-GHz or faster processor

USB 3.0 bus dedicated to the Kinect(usb 3.0 是必须的)

2 GB of RAM

Graphics card that supports DirectX 11(必须的)

A Microsoft Windows Xbox One Kinect Sensor

2、配置建议
  • kinect for xbox + 适配器
  • Kinect for window 2.0(套装)

3、安装Kinect for Windows SDK v2.0

SDK安装

4、什么是Kinect?

kinect 是输入。类似鼠标 即时动态捕捉、影像辨识、麦克风输入、语音辨识

二、Kinect开发介绍

1、Kinect传感器介绍

Kinect 是一组传感器的组合,包含一个彩色摄像头,一对深度摄像头(一个用以发射红

外,一个用以接收) ,一组麦克风阵列和底座马达。

彩色摄像头想必大家都已经很熟悉了。深度摄像头是由红外线提供的,返回画面上每个

点的深度值(离 Kinect 的距离,单位是 mm,标称精度约 5mm) 。麦克风阵列其实是数个水平放置的麦克风,因为彼此间有距离,所以可以识别说话人的方向,借此粗略估计是哪个玩家在说话,便于想象的话可以理解为类似声纳图(声音我们不涉及)。

2、Kinect使用过程

1.代码程序首先要发现连接的Kinect

2.被发现连接的Kinect设备要初始化完成

3.程序必须设置需要使用的数据流,并将其状态设为可用。也就是想要获得哪些数据(数据包括彩色流,深度数据流,骨骼数据流,红外数据流)

4.根据上一步的设置,获取相对于的数据流

5.停止Kinect,释放Pc资源

3、彩色数据流

读取彩色数据流,可以获得一张1080p的图片(1920*1080);

犹如拍照应用

看SDK自带示例

Color Depth D2D 彩色数据流

4、深度数据流

和许多输入设备不一样,Kinect 能够产生三维数据,它有红外发射器和摄像头。 Kinect SDK 从红外摄像头获取的红外数据后,对其进行计算处理,然后产生景深影像数据。

深度帧数据中,每个像素占 16 位,即每一个像素占 2 个字节。每一个像素的深度值只占用了 16 个位中的 13 个位。

获取每一个像素的距离很容易,但是要直接使用还需要做一些位操作。如上图所示,深度值存储在第 3 至 15 位中,要获取能够直接使用的深度数据需要向右移位,将游戏者索引(Player Index)位移除

看SDK自带示例

Depth Basics-D2D 深度数据流

5、骨骼数据流

0.5-4.5米

25个关节点 每个关节点的 3D空间坐标和转向

看SDK自带示例

Body Basics D2D 骨骼数据流

示例:

Color Depth D2D 彩色数据流

Depth Basics-D2D 深度数据流

Coordinate Mapping Basics 扣出人物,置换背景

Body Basics D2D 骨骼数据流

总汇:
Kinect v2 是微软公司开发的一款体感设备,用于捕捉用户的身体动作和语音指令。以下是 Kinect v2 的一些硬件参数:
  1. 传感器:Kinect v2 配备了深度传感器、RGB 摄像头、红外摄像头、麦克风和扬声器。
  2. 深度传感器:Kinect v2 的深度传感器可以实现高精度的三维扫描,最大深度范围为 2.2 米。它可以通过红外光束来测量物体与设备之间的距离,从而创建一个三维空间地图。
  3. RGB 摄像头:Kinect v2 的 RGB 摄像头分辨率为 1920x1080,可以捕捉到丰富的色彩信息,实现高质量的二维图像捕捉。
  4. 红外摄像头:Kinect v2 的红外摄像头可以捕捉到红外光束反射回来的信号,从而检测到物体的运动。这使得设备可以在低光环境中正常工作。
  5. 麦克风:Kinect v2 配备了四个麦克风,可以捕捉到来自不同方向的声音,实现 360 度的语音识别。
  6. 扬声器:Kinect v2 内置了一个扬声器,可以播放声音,实现语音反馈等功能。
  7. 处理器:Kinect v2 内置了一颗专用的处理芯片,可以实时处理传感器捕捉到的数据,并将其传输到主机。
  8. 接口:Kinect v2 采用了 USB 3.0 接口,与主机连接时可以实现高速数据传输。
  9. 电源:Kinect v2 采用了内置可充电电池,可以通过 USB 接口进行充电。在正常使用情况下,电池续航时间可达 2 个月。
  10. 尺寸:Kinect v2 的尺寸为 9.2 厘米 x 27.2 厘米 x 27.2 厘米(长 x 宽 x 高),重量约为 1.3 千克。

Kinect v2 配备了三个摄像头:
  1. 深度摄像头:用于捕捉场景中的深度信息,从而识别和追踪物体的三维位置。
  2. RGB 摄像头:捕捉可见光波段的图像,提供丰富的颜色信息。
  3. 红外摄像头:在低光环境中,通过检测物体的热辐射来捕捉图像。

这三个摄像头协同工作,使得 Kinect v2 能够在不同光线条件下对物体进行识别和追踪。

深度传感器:

深度传感器是一种能够测量物体距离的传感器。在计算机视觉和机器人领域,深度传感器主要用于获取场景中物体的三维坐标信息,从而帮助计算机系统识别和理解物体的位置、形状和大小。

深度传感器的工作原理通常基于以下几种技术:

  1. 立体视觉:通过拍摄同一场景的两个或多个视角的图像,然后利用图像中的对应点之间的视差(即两个视角之间的距离差)来计算物体的深度。
  2. 结构光:通过向场景中投射特殊图案的光线,然后检测图案在物体表面上的反射,从而计算物体的深度。
  3. 飞行时间(ToF):通过发送红外光束并测量光束从传感器发射到接收所需的时间来计算物体的深度。这种技术也被称为间接飞行时间(iToF)或直接飞行时间(dToF)。
  4. 激光雷达:通过发送激光光束并测量返回光束的时间、强度和相位等信息来计算物体的深度。激光雷达通常具有较高的精度和范围,但成本较高。

在现实生活中,深度传感器被广泛应用于各种场景,如自动驾驶汽车、无人机、机器人、增强现实(AR)和虚拟现实(VR)等。不同类型的深度传感器具有不同的性能特点,因此在选择合适的深度传感器时,需要根据具体应用需求来权衡。

红外摄像头:

红外摄像头是一种能够捕捉红外波段光线的摄像头,它可以检测到环境中物体的热辐射,因此即使在低光或无光环境中,也能对物体进行识别和追踪。

红外摄像头的主要组成部分包括:

  1. 红外探测器:这是红外摄像头的核心部件,它可以将接收到的红外辐射转换为电信号。
  2. 镜头:镜头负责聚焦光线,使得红外探测器能够接收到清晰的图像。
  3. 滤光片:滤光片可以阻挡掉大部分可见光,只让红外光通过,提高红外摄像头的灵敏度。
  4. 电子元件:包括信号放大器、信号处理器等,用于处理从红外探测器接收到的信号,将其转换为可供计算机处理的数字信号。

红外摄像头广泛应用于夜视监控、红外热像仪、无人驾驶汽车、无人机、机器人、安防监控等领域。例如,在安防监控中,红外摄像头可以在夜间或光线不足的环境中,有效地捕捉到移动物体的图像,提供有效的安全保障。

RGB摄像头:

RGB 摄像头是一种能够捕捉可见光波段(通常为红、绿、蓝三种颜色)的摄像头。与红外摄像头和深度摄像头相比,RGB 摄像头可以捕捉到更丰富的颜色信息,使得它在很多应用中具有优势。

RGB 摄像头的主要组成部分包括:

  1. 传感器:传感器负责捕捉光线,并将其转换为电信号。RGB 摄像头通常使用 CMOS 或 CCD 传感器来捕捉图像。
  2. 镜头:镜头负责聚焦光线,使得传感器能够接收到清晰的图像。
  3. 光圈和快门:光圈控制光线进入摄像头的量,而快门则决定图像的曝光时间。
  4. 滤光片:滤光片可以阻挡掉大部分非可见光,只让可见光通过,提高 RGB 摄像头的色彩准确性。

RGB 摄像头广泛应用于各种领域,如计算机视觉、机器视觉、无人驾驶汽车、无人机、机器人、安防监控、视频会议等。例如,在计算机视觉中,RGB 摄像头可以捕捉到丰富的颜色信息,帮助计算机更好地识别和理解场景中的物体。

三, Kinect v2 , Kinect Azure 与 Intel RealSense 三个设备的硬件参数

Kinect v2、Kinect Azure 和 Intel RealSense 都是用于捕捉身体动作和语音指令的设备,但它们在硬件参数上有一些不同。以下是这三款设备的硬件参数对比:

1. Microsoft Kinect v2:
  • 传感器:深度传感器、RGB 摄像头、红外摄像头、麦克风和扬声器
  • 深度传感器:最大深度范围为 2.2 米
  • RGB 摄像头:分辨率为 1920x1080
  • 红外摄像头:检测物体运动
  • 麦克风:4 个,实现 360 度语音识别
  • 扬声器:内置,用于语音反馈
  • 处理器:内置专用处理芯片
  • 接口:USB 3.0
  • 电源:内置可充电电池,续航时间可达 2 个月
  • 尺寸:约 9.2 厘米 x 27.2 厘米 x 27.2 厘米(长 x 宽 x 高)

2. Microsoft Kinect Azure:
  • 传感器:深度传感器、RGB 摄像头、红外摄像头、麦克风和扬声器
  • 深度传感器:最大深度范围为 5 米
  • RGB 摄像头:分辨率为 1920x1080
  • 红外摄像头:使用深度摄像头和红外光束实现更高精度的运动捕捉
  • 麦克风:4 个,实现 360 度语音识别
  • 扬声器:内置,用于语音反馈
  • 处理器:内置专用处理芯片
  • 接口:USB 3.0
  • 电源:内置可充电电池,续航时间可达 2 个月
  • 尺寸:约 9.2 厘米 x 27.2 厘米 x 27.2 厘米(长 x 宽 x 高)

3. Intel RealSense:
  • 传感器:深度传感器、RGB 摄像头、红外摄像头、麦克风和扬声器(具体型号和配置取决于设备)
  • 深度传感器:最大深度范围为 3-10 米(取决于型号)
  • RGB 摄像头:分辨率为 1920x1080(取决于型号)
  • 红外摄像头:用于手势识别和物体追踪
  • 麦克风:2-4 个,实现 360 度语音识别
  • 扬声器:内置,用于语音反馈
  • 处理器:Intel 处理器(具体型号取决于设备)
  • 接口:USB 3.0 或 3.1(取决于型号)
  • 电源:内置可充电电池,续航时间取决于设备型号和配置
  • 尺寸:取决于设备型号和配置

下一篇: 基于Kinect 动捕XR直播解决方案 - 技术实现篇

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

xlua游戏热更新(C#访问lua)

xlua作为Unity资源热更新的重要解决方案api,在Tecent重多游戏中被采用,本文通过案例去讲解xlua代码结构层次。 /** Tencent is pleased to support the open source community by making xLua available.* Copyright (C) 2016 THL A29 Limited, a Tence…

微服务-开篇-个人对微服务的理解

从吃饭说起 个人理解新事物的时候喜欢将天上飞的理念转换成平常生活中的实践,对比理解这些高大上的名词,才能让我们减少恐慌的同时加深理解。废话不多说,我们从吃饭开始说起,逐渐类比出微服务的思想。 (个人见解&…

计算机毕业设计 基于Springboot的影院购票管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

考研分享第1期 | 末9生物跨专业考研北京大学电子信息404分经验分享

全文概览 一、个人信息 二、关于考研的经验分享 三、最后的小Tips 一、个人信息 姓名:Jackson 本科院校:某末流985生物专业 报考院校:北京大学电子信息专业 择校意向:北航计算机、人大高瓴、复旦软院、清华大学深研院、北…

HuggingFace模型头的自定义

在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 在本文中我们将介绍如何使HuggingFace的模型适应你的任务,在Pytorch中建立自定义模型头并将其连接到HF模型的主体&#…

大数据Doris(二十一):数据导入演示

文章目录 数据导入演示 一、启动zookeeper集群(三台节点都启动) 二、启动hdfs集群

【Linux】语言层面缓冲区的刷新问题以及简易模拟实现

文章目录 前言一、缓冲区刷新方法分类a.无缓冲--直接刷新b.行缓冲--不刷新,直到碰到\n才刷新c.全缓冲--缓冲区满了才刷新 二、 缓冲区的常见刷新问题1.问题2.刷新本质 三、模拟实现1.Mystdio.h2.Mystdio.c3.main.c 前言 我们接下来要谈论的是我们语言层面的缓冲区&…

Spark的转换算子和操作算子

1 Transformation转换算子 1.1 Value类型 1)创建包名:com.shangjack.value 1.1.1 map()映射 参数f是一个函数可以写作匿名子类,它可以接收一个参数。当某个RDD执行map方法时,会遍历该RDD中的每一个数据项,并依次应用f函…

idea 一直卡在maven正在解析maven依赖

修改maven Importing的jvm参数 -Xms1024m -Xmx2048m

srs webrtc推拉流环境搭建

官方代码https://github.com/ossrs/srs 拉取代码: git clone https://github.com/ossrs/srs.gitcd ./configure make ./objs/srs -c conf/rtc.confconf/rtc.conf中,当推拉流浏览器在本地时,如果srs也在本地,那么可以使用官网默认…

VUE页面导出PDF方案

1,技术方案为:html2canvas把页面生成canvas图片,再通过jspdf生成PDF文件; 2,安装依赖: npm i html2canvas -S npm i jspdf -S 3,封装导出pdf方法exportPdf.js: // 页面导出为pdf格式 //titl…

STM32基础--NVIC中断控制器

一、NVIC是什么? NVIC是一种中断控制器。当一个中断正在处理时,另一个更高优先级的中断可以打断当前中断的执行,并立即得到处理。这种机制使得处理器在高速运行的同时,能够及时响应不同优先级的中断请求。 二、有哪些优先级&…

19 异步通知

一、异步通知 1. 异步通知简介 阻塞和非阻塞两种方式都是需要应用程序去主动查询设备的使用情况。 异步通知类似于驱动可以主动报告自己可以访问,应用程序获取信号后会从驱动设备中读取或写入数据。 异步通知最核心的就是信号: #define SIGHUP 1 /* 终…

Clickhouse学习笔记(5)—— ClickHouse 副本

Data Replication | ClickHouse Docs 副本的目的主要是保障数据的高可用性,即使一台 ClickHouse 节点宕机,那么也可以从其他服务器获得相同的数据 注意: clickhouse副本机制的实现要基于zookeeperclickhouse的副本机制只适用于MergeTree f…

API SIX系列-服务搭建(一)

APIsix简介 APISIX是一个微服务API网关,具有高性能、可扩展性等优点。它基于nginx(openresty)、Lua、etcd实现功能,借鉴了Kong的思路。和传统的API网关相比,APISIX具有较高的性能和较低的资源消耗,并且具有…

Lua更多语法与使用

文章目录 目的错误处理元表和元方法垃圾回收协程模块面向对象总结 目的 在前一篇文章: 《Lua入门使用与基础语法》 中介绍了一些基础的内容。这里将继续介绍Lua一些更多的内容。 同样的本文参考自官方手册: https://www.lua.org/manual/ 错误处理 下…

嵌入式养成计划-48----QT--信息管理系统:百川仓储管理

一百二十二、信息管理系统:百川仓储管理 122.1 UI界面 122.2 思路 客户端: 用户权限有两种类型,一种是用户权限,一种是管理员权限,登录时服务器端会根据数据库查询到的此用户名的权限返回不同的结果,客户…

学习c#的第五天

目录 C# 运算符 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 其他运算符 C# 中的运算符优先级 C# 运算符 算术运算符 下表显示了 C# 支持的所有算术运算符。假设变量 A 的值为 10,变量 B 的值为 20,则: 运算符描述实例…

JVM在线分析-解决问题的工具一(jinfo,jmap,jstack)

1. jinfo (base) PS C:\Users\zishi\Desktop> jinfo Usage:jinfo <option> <pid>(to connect to a running process)where <option> is one of:-flag <name> to print the value of the named VM flag #输出对应名称的参数-flag [|-]<n…

ElasticSearch7.x - HTTP 操作 - 文档操作

创建文档(添加数据) 索引已经创建好了,接下来我们来创建文档,并添加数据。这里的文档可以类比为关系型数 据库中的表数据,添加的数据格式为 JSON 格式 向 ES 服务器发 POST 请求 :http://192.168.254.101:9200/shopping/_doc 请求体内容为: {"title":"小…