-
1.1
Kinect for
Windows Developer Toolkits
1.1.1
Kinect
Studio
微软的
Kinect for Windows
(
K4W
)团队再次创建了它。他们已
经发布了一些新的测
试版软件和一个
SDK
与新的
Kinect
v2
设备一起工作。
注:这是基于初
步的软件
/
硬件,可能会改变。
在他们最近的
Kinect v2
SDK
(
preview 1403
)
更新中。开发者预览计划的成员现在
可以去看看新的
Kinec
t Studio V2
,去探索微软花了大部分精力开发的万众期待的
Kinect Studio
应用程序的
Kinect
v2
版本有多么精彩。
介绍
本文讲述的是关于
第
2
版
Kinect
设备所使用
的
Kinect Studio
以及应用程序如何工作。
还讨论了潜在的使用模式,
并快速的一步步讲解如何在定制的基于
p>
Kinect v2
应用程序中去
使用它。
如果这听起来很有趣,请继续往下看。
KinectStudio V2
允许开发人员,
测试人员和爱好者测试利用多个记录样本来测试自定
义的
Kinect v2
应用。它还允许开发者查看
Kinect v2
设备某一帧的基于像素的视图数据。
见下图。
Kinect Studio
v2
的功能
让我们来分解说明目前的功能特点:
从
Kinect
v2
设备录制样本剪辑:
Color
,
depth
,
IR
,
IR
长时间曝光,
body
帧,
body
索
引,计算机系统信息,系统声
音,相机设置,相机标定
回放录制的样本剪辑:
Color<
/p>
,
depth
,
IR
,
IR
长时间曝光,
body
帧,
body
索引
,计算机系统信息,系统声
音,相机设置,相机标定
直接从连接的
Kinect
V2
设备播放实时数据
从录制和播放的样本剪辑中查看三维坐标和数据
可在
3-D
空间放大,扭曲,旋转
< br>
从录制和播放的样本剪辑中查看二维坐标和数据
可放大察看不同的视角:
?
Kinect
视角
?
方向性的立方体
(Orientation Cube)
?
地板平面(这里指透视图中地板)
通过不同的点云呈现深度数据:
?
彩色点,灰色点
?
通过材质和不同颜色的深浅(
p>
RGB
和灰度)呈现深度数据
查看红外数据和值:
在一个特定的像
素
x
,
y
坐标
通过一个灰色图查看
从文件打开样本剪辑
从库中(网络共享)打开并连接样本剪辑
观测帧信息:
开始时间,持续时间
放大特定帧
选择要记录的流
这个工具如何工作?
KinectStudio
v2
应用程序是一个
Windows
Presentation Foundation
应用程序,
挂
接到一些托管和原生
C + +
库,
用于访问颜色,
深度和红外流的数据。
该工具可直接连接到
Kinect v2
设备,或利用专用的<
/p>
Xef
格式的二进制文件,它源自于
.X
TF
的
Xbox
文件。
通过
File->Open
命令连接到一个文件,
您具有有限的功能,
例如对
.Xef
样本文件内的
监测值进行回放
并
查看的信息帧。
通过
File->Open from
repository
的命令连接到一个可用的
Kinect
v2
设备:
你将具有更多的功能,如
向一个自定义应用程序播放的实时流数据的一个或多个源。
其工作原理是,
Kinect Studio
< br>采用一种称为
代理应用
程序充当
KinectDevice
v2
的翻版。它模拟
KinectDevice v2
通过命名管道来发送数据流
到
< br>。
当您的自定义的
Kinect v2
< br>的应用程序连接到
KinectService
,
无论
是
KinectService
还是
自定义应用程序的行为,都如同你有一个真实连接设备。
p>
在你去思考如何利用这个概念的想法时,
我几乎可以肯定,
微软将只授权它作为一个试
验平台,它可能只可用于基于测试的情况。换
句话说,我怀疑微软发布这一机制,
作为产品
时间助手,
能够通过使用这种伪
Kinect
设备的代理
副本增加的
Kinect
设备的数量,
但我们
必须等待微软决定做这个。
因
此,为了使用这种方法,你需要使用一个可发送实时数据到
Kinect
Service
的
Kinect v2
设备,
或者您需要运行
KinectStudioHostSe
rvice
应用程序和打开一个
XEF
文件,
用
于
模
仿
Kinect v2
设
备
。
后
面
这
种
情
况
,
你
要
通
过
点
击
“
连
接<
/p>
”
按
钮
,
来
与
中的一个已经运
行的实例进行交互:
一旦连接成功
,
KinectService
将运行接下来的早期已经开发的
功能处理。
注:
从资源库中打开一个文件之前,
请确保您启动了
。只有
KinectS
ervice
已经运行,才能使
KinectStudioHo
stSerivce
与
KinectService
通讯,这也
将允许应用程序连接到
KinectV
2
设备或它的伪副本:
KinectStudioHostSe
rvice
。
使用模式:
应用程序可以有意或无意
的使用许多模式。
我要先说,
这个工具不是真的为机器学习而<
/p>
设置的。机器学习需要大量数据、计算和存储器,
甚至是大数据分
析,
这些都远超出了这个
工具的能力。
但是我的朋友和同事之一安德烈亚斯建议也许我们可以拥有放置大量记录剪辑
的大型资源
库,
XEF
文件,这样我们就可以像一个大型试验台存储库来使
用它。嗯,也许我
们可以做一些穷人的机器学习的版本??反正用都没有的出路,让我们
继续拥有…
?
对您的
Kinect
v2
应用程序进行功能测试。
?
支持多种开发环境
(当那里有没有足够的
Kinect
设备)
。
一个人可以记录数百个样
品,然后使用网络资源
库共享,开发人员可以使用的样本来测试应用程序。
?
在你的
Kinect
V2
设备寻找坏点
?
从
Kin
ect
的
V2
设备查看原始值
也有很多使用模式,我个人希望能看到,但对当前版本,它不具备,亦
未必,除非我们
都讲了…
以编程方式
访问
KinectStudio
:
<
/p>
自动化单元测试或应用程序的各个部分功能测试这里的想法是,
如
果你可以通过编程方
式控制播放和录制,
这样将开启更多的机会
。
比如创建单元测试,
并让它们自动启动构建使
用
Team Foundation Server
。
想像一下,在某些开发人员的逻辑检查测试,
如果一只手在
抓取
运动。
自动化可以通过多种抓握记录样品和发挥对一个自动化的运行实例的操作,
并返
回一个值的范围。
这些值可以判断开发人
员创建的自定义逻辑符合的标准,
一个成功的单元
测试。
自动记录某些事件:
?
安全相关特点的概念,
当一个特定的事件引发脚本就可以开始为以后的检索记录过
程和监控,正如
监控摄像机所做
?
另一个想法是记录某些呈现良好态势与不良姿势的事件,并通知专家
作为产品发布应用程序或单独的配送,
它可以为一个
Kinect v2
的自定义应用程序达到
监视详细视图与
调试目的,并允许它可以改变皮肤或删除功能
对自定义的
Kinect
v2
应用,提供一种方法来查看原始的详细信息报告
通过
KinectStudio
v2
发送数据到一个自定义的应用程序的步骤
我将采取的步骤如下:
?
启动
应用
?
启动
p>
应用程序(如果它是第一次使用它,你必须
使用
/ d
开关设置资料库文件夹的位置)
?
打开
KS
tudio
然后单击
Connect
(
连接)
?
从系统资料库的打开样本剪辑
–
或使用现场设备
?
启动实时流(如果
choosen
)
?
启动所期望的
Kinect
V2
设备的自定义应用程序
?
点击播放(从存储库中
XEF
文件)
,或开始从现场设备进行录制。
p>
总结
如果你想
知道什么我们到底能做到什么,我会告诉你。这个工具可以让你测试利用
Kinect
v2
设备的
Windows
自定义应用
程序。您可以记录一个人与应用程序交互,并再次
播放该片段,来测试你的应用程序的功
能。你可以看到深度值,
IR
值和彩色像素坐标。这
一切中最好的是,
一旦你有一个或多个记录的剪辑你并不需要一个物理设备
来测试自定义应
用程序。你可以简单地连接
KinectStu
dio v2
到你的
Kinect
的服
务和
Kinecct
主机代理,
然后通
过
或实时执行它启动您的自定义应用程序,并坐下来监督!
p>
1.1.2
Face
Tracking
人脸跟踪概念
首先现在大部分开发都针对
Kinect for windo
ws(
目前
1900RMB
,还是有点
贵的
)
了,
但这个
face tracking SDK
在
xbox
版的
Kinect
依旧可以运行,
自然精度会不好。
Kinect for
wind
ows
的深度数据是
640*480
的
,而
xbox
的是
320*240
p>
。而彩色的
RGB
摄像头也清
晰不少,这点官方没有具体介绍,但实际效果好很多。如果要做研究,自然使用贵很多的
Kinect for windows
了
(
这样也导致了个人一般不会去玩这个传感器
)
,
不过对于学校、
公司
这点钱不多。下
面默认使用
Kinect for windows
,但代码稍
加修改在
xbox
的
kinect
p>
上也
能运作。
face tracking
参数
<
/p>
依赖于你
PC
的
CPU
能力,人脸跟踪引擎使用
4~8ms
对一帧图像进行人脸跟踪,仅
仅只依赖于
CPU(
没有使用
GPU)
。
将会影响跟踪准确率的因素:
A.<
/p>
光照
:
光线应该充足,
< br>没有太多阴影或者太强的侧光。
也就是光照要均匀,
并且
足够。
B.
距离
:
距离
Kinect
的距离,距离
体感越近则跟踪效果越好,当小于
1.5m
时,跟踪的
效果是最好的,因为越近深度数据越精确。当然也不能太近了,如果小于
0.5m
,深度数据
都无法获取,或者人脸遮住摄像头了,也无
法跟踪。
C.
遮挡
< br>:
戴厚眼镜或者
Lincoln
那样的胡子,人脸跟踪会有问题,这点还是需要改善的
方面。
使用了
Active
Apperance
Model
作为
二维特征跟踪器,然后我们把计算模型扩展到
我们的
Kinec
t
深度数据上,然后它可以跟踪三维的人脸,这样使得它比二维特征点跟踪器
稳健。
AAM
算法对于真实世界的情况不是很稳健
。
具体技术
坐标系统:
使用了
< br>Kinect
的坐标系统来输出三维跟踪结果
(x,y,
z)
。
Z
轴是传感器到用户的距离,<
/p>
Y
轴是上下指向。数据都是以米为计量单位
(
这样一般会读出
,
之类的浮点数值
)
,
角度都是旋转角度
(
不是弧度
)
。
上图是输出的三维面具在
kinect
的坐标下情况。
输入图像:
彩色图像和深度图像。其实还需要一个人头和脖子的三维坐标。
函数和结构
人脸追踪的
SDK
是免注册的
COM
对
象。主要有
4
个
COM
接口
IFTFaceTracker:
人脸追踪主要接口。
IFTResult:
人脸追踪运算的结果。
IFTImage:
图像缓冲区,类似
OpenCV
的
p>
Mat
。
IFTModel:
三维人脸模型
还有一些结构:
FT_SENSOR
_DATA:
包含用于人脸追踪所有所需的输入数据。
FT_CAMERA_CONFIG:
包含彩色或者深度传感器的信息
。
FT_VECTOR2D:
二维向
量。也就是(x,y),(x,y)…
FT_VECTOR3D:
三维向量。
FT_TRIANGLE:
三维模型人脸角度。
FT_WEIGHTED_RECT:
权重矩阵。<
/p>
人脸跟踪简易流程
不论是
1
个人的还是
2
个人的追踪,都差不多。一般追踪距离摄像头比较近的人,
-
-
-
-
-
-
-
-
-
上一篇:在领导面前的自我介绍(精选3篇)
下一篇:Gambit使用教程及入门实例