标签: kinect-sdk

Kinect仿真没有插入实际设备

当Kinect本身没有插入时,是否可以模拟Kinect传感器(用于Kinect SDK)?

首先,我认为Kinect Studio完全符合我的要求,但现在看来Kinect Studio可以记录数据流,并可以将它们"提供"给应用程序,但无法模拟与传感器的连接.所以目前我有几个.xed文件用Kinect Studio录制,我无法启动任何启用Kinect的应用程序,而不会得到"Kinect传感器未插入"或任何消息.

有没有办法解决?我可以访问Kinect,但它不在同一个地方,我打算编写大部分代码(我非常希望用记录数据运行/调试它).

我真的很感激任何帮助.

PS也许我只是错误地使用Kinect Studio,它实际上可以模拟Kinect连接(实际上这是最好的情况).

c# virtualization emulation kinect kinect-sdk

6
推荐指数
1
解决办法
2451
查看次数

Windows 7上的Kinect v2

所以我终于在邮件中获得了两个Kinect v2,并期待从他们那里获得一些原始数据,看看他们互相干扰了多少.我去下载SDK,由于某种原因我从未注意到Windows 8的要求......因为在Windows 7中不受支持.

这感觉很虚伪和不必要,但很好,我不能做任何事情.在我浪费一些钱将我的机器升级到我真正不想要的操作系统之前,有没有办法让Kinect v2与Windows 7机器(或者甚至是Ubuntu)通话?我不需要任何花哨的骨骼检测或任何东西; 我只想要原始xyz-rgb数据.我正在阅读关于OpenNI(以及他们新的Apple霸主)的内容,我希望通过一些奇迹,他们的最后一个开源发行版将与Kinect v2s向前兼容?

TL; DR:有没有可以在Windows 7-64bit上与Kinect v2连接的免费SDK?

kinect openkinect kinect-sdk

6
推荐指数
1
解决办法
2万
查看次数

微软Kinect和背景/环境噪音

我目前正在使用Windows 8.1上的Microsoft Kinect for Windows SDK 2进行编程.事情进展顺利,在家庭开发环境中,与"现实世界"相比,背景中没有太多噪音.

我想向那些具有Kinect"真实世界"应用经验的人寻求建议.Kinect(尤其是v2)如何在现场环境中与过路人,旁观者和背景中的意外物体相比?我确实希望,在从Kinect传感器到用户的空间中,通常不会有干扰 - 我现在非常注意的是背景噪声.

虽然我知道Kinect在阳光直射下(无论是在传感器上还是在用户身上)都不能很好地跟踪 - 我是否需要将某些照明条件或其他外部因素纳入代码?

我要找的答案是:

  1. 在现场环境中会出现什么样的问题?
  2. 你是如何编写代码或以自己的方式工作的?

kinect kinect.toolbox kinect-sdk kinect-interaction

6
推荐指数
2
解决办法
1213
查看次数

Kinect SDK深度数据(C++)到OpenCV?

我一直在使用Kinect SDK(1.6)DepthBasicsD2D C++示例从kinect获取深度帧,并希望在OpenCV中使用数据执行blob检测.

我已经使用示例配置了OpenCV,并且还了解了示例的基本工作.

但不知怎的,在任何地方都没有任何帮助,很难弄清楚如何从Kinect获取像素数据并传递给OpenCV的IplImage/cv :: Mat结构.

有没有想过这个问题?

opencv kinect kinect-sdk

5
推荐指数
1
解决办法
4704
查看次数

Kinect SDK 1.7 | 更改KinectCursor图像和大小

我已下载Kinect SDK 1.7,工具包,并使用以下示例.

  • ControlBasics WPF
  • InteractionGallery WPF.

我发现Kinect Toolkit在内部使用交互框架来检测手部位置/手势,并相应地将其映射到Kinect控件.

我有一个要求,我想在Kinect平铺按钮上捕获一个抓握事件.由于默认的KinectTileButton不提供Grip事件.我在我的按钮上添加了一个grip事件处理程序.

KinectRegion.AddHandPointerGripHandler(kinectButton, OnHandPointerCaptured);

private void OnHandPointerCaptured(object sender, HandPointerEventArgs handPointerEventArgs) 
{ 
    // Add code here
}
Run Code Online (Sandbox Code Playgroud)

我在OnHandPointerCaptured方法中放置了一个调试断点,当我抓住KinectTileButton时能够接收到正确的命中.但由于某种原因,我没有看到KinectCursor图像在KinectScrollViewer控件上发生变化.我尝试在KinectButtonBase类中设置isGripTarget属性,但它没有帮助.

private void InitializeKinectButtonBase() 
{ 
    KinectRegion.AddHandPointerPressHandler(this, this.OnHandPointerPress); 
    KinectRegion.AddHandPointerGotCaptureHandler(this, this.OnHandPointerCaptured); 
    KinectRegion.AddHandPointerPressReleaseHandler(this, this.OnHandPointerPressRelease); 
    KinectRegion.AddHandPointerLostCaptureHandler(this, this.OnHandPointerLostCapture); 
    KinectRegion.AddHandPointerEnterHandler(this, this.OnHandPointerEnter); 
    KinectRegion.AddHandPointerLeaveHandler(this, this.OnHandPointerLeave); 

    // Use the same OnHandPointerPress handler for the grip event 
    KinectRegion.AddHandPointerGripHandler(this, this.OnHandPointerPress); 

    //Set Kinect button as Grip target
    // KinectRegion.SetIsPressTarget(this, true); 
    KinectRegion.SetIsGripTarget(this, true);                
}
Run Code Online (Sandbox Code Playgroud)

如何将KinectCursor图像从openhand图标更改为grip,以及尺寸.

c# wpf kinect-sdk

5
推荐指数
1
解决办法
3881
查看次数

用于识别Kinect上用户定义手势的最佳算法

我正在开发一个Windows应用程序,允许用户使用Kinect传感器与他的计算机完全交互.用户应该能够向应用程序讲授他自己的手势,并为每个人分配一些Windows事件.在学习过程之后,应用程序应该检测用户的移动,并且当它识别出已知的手势时,应该触发分配的事件.

关键部分是自定义手势识别器.由于手势是用户定义的,因此无法通过将所有手势直接硬编码到应用程序中来解决问题.我已经阅读了许多讨论这个问题的文章,但是没有一篇文章给出了我的问题的答案:哪种算法最适合学习和识别用户定义的手势?

我正在寻找的算法是:

  • 高度灵活(手势可以从简单的手势到全身运动)
  • 快速有效(该应用程序可能与视频游戏一起使用,因此我们无法消耗所有CPU容量)
  • 学习新手势时不需要超过10次重复(重复手势超过10次教授应用程序在我看来不是非常用户友好)
  • 易于实现(最好,我想避免与两页方程式挣扎等)

请注意,结果不一定是完美的.如果算法不时识别出错误的手势,则比算法运行缓慢更可接受.

我目前正在决定3种方法:

  • 隐马尔可夫模型 - 这些在手势识别时似乎非常受欢迎,但似乎也很难理解和实现.此外,我不确定HMM是否适合我想要完成的任务.
  • 动态时间扭曲 - 发现这个网站使用DTW提供手势识别,但许多用户抱怨性能.
  • 我正在考虑将$ 1识别器调整为3D空间,并将每个关节的运动用作单个笔划.然后我会简单地比较笔画并从已知手势集中选择最相似的手势.但是,在这种情况下,我不确定这个算法的性能,因为有许多关节要比较,识别必须实时运行.

您认为哪种方法最适合我正在尝试的方法?或者这个问题有其他解决方案吗?我很感激能够推动我前进的任何建议.谢谢.

(我正在使用Kinect SDK.)

c# gesture-recognition kinect kinect-sdk

5
推荐指数
0
解决办法
1055
查看次数

Kinect v2会支持多个传感器吗?

由于传感器之间的红外干扰,使用多个Kinect v1传感器非常困难.

根据我在这篇gamastura文章中所读到的内容,微软摆脱了Kinect v2传感器用于测量深度的飞行时间机制的干扰问题.

这是否意味着我可以同时使用多个Kinect v2传感器,还是我误解了这篇文章?

谢谢您的帮助!

kinect openni kinect-sdk

5
推荐指数
1
解决办法
5891
查看次数

Kinect V2中主动红外图像与深度图像的关键差异

我只是在理解主动红外图像和Kinect v2的深度图像之间的区别时感到困惑.谁能告诉我主动红外图像与深度图像相比有什么特殊功能?

infrared depth kinect kinect-sdk

5
推荐指数
1
解决办法
2001
查看次数

Kinect v2:空间分辨率/深度分辨率/摄像机校准

对于我的应用,我分析了Kinect v2的空间分辨率.

为了分析空间分辨率,我将垂直和平面平面记录到给定距离,并将平面的深度图转换为点云.然后我通过计算欧几里德距离来比较一个点与他的邻居.

计算这种情况下的欧几里德距离(平面和kinect之间1米),点之间的分辨率接近3毫米.对于距离为2米的飞机,我的分辨率最高可达3毫米.

与文献相比,我认为我的结果非常糟糕.

例如Yang等人.得到距离为4米的飞机,平均分辨率为4mm(评估和提高Kinect for Windows v2的深度精度)

这是我的平面平面点云(距离我的kinect 2米)的示例:

飞机距离Kinect v2 2米

有人对Kinect v2的空间分辨率做了一些观察,或者想出为什么我的分辨率不那么糟糕?

在我看来,我认为将我的深度图像转换为世界坐标时出现了问题.因此这里的代码剪断了:

%normalize image points by multiply inverse of K
u_n=(u(:)-c_x)/f_x;
v_n=(v(:)-c_y)/f_y;
% u,v are uv-coordinates of my depth image

%calc radial distortion
r=sqrt(power(u_n,2)+power(v_n,2));
radial_distortion =1.0 + radial2nd * power(r,2) + radial4nd * power(r,4) + radial6nd * power(r,6);

%apply radial distortion to uv-coordinates
u_dis=u_n(:).*radial_distortion;
v_dis=v_n(:).*radial_distortion;

%apply cameramatrix to get undistorted depth point
x_depth=u_dis*f_x+c_x;
y_depth=v_dis*f_y+c_y;

%convert 2D to 3D
X=((x_depth(:)-c_x).*d(:))./f_x;
Y=((y_depth(:)-c_y).*d(:))./f_y;
Z=d;  % d is the given …
Run Code Online (Sandbox Code Playgroud)

point-clouds camera-calibration kinect kinect-sdk

5
推荐指数
1
解决办法
2950
查看次数

Kinect:以毫米为单位转换Joint.Position.Z

我知道如何转换从Joint.Position.X和获得的值的像素Joint.Position.Y.我有一个例子:

void kinectSensor_SkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e)
    {
        using (SkeletonFrame skeletonFrame = e.OpenSkeletonFrame())
        {
            if (skeletonFrame != null)
            {
                Skeleton[] skeletonData = new Skeleton[skeletonFrame.SkeletonArrayLength]; //conterrà tutti gli skeleton

                skeletonFrame.CopySkeletonDataTo(skeletonData);

                Skeleton playerSkeleton = (from s in skeletonData where s.TrackingState == SkeletonTrackingState.Tracked select s).FirstOrDefault();

                if (playerSkeleton != null)
                {
                    Joint rightHand = playerSkeleton.Joints[JointType.HandRight];
                    Joint leftHand = playerSkeleton.Joints[JointType.HandLeft];

                    //EDIT: The following formulas used to convert X and Y coordinates in pixels are wrong.
                    //Please, see the answer for details
                    rightHandPosition …
Run Code Online (Sandbox Code Playgroud)

c# kinect kinect-sdk

4
推荐指数
1
解决办法
3532
查看次数