【问题标题】:Kinect for Windows gesture recognitionKinect for Windows 手势识别
【发布时间】:2012-03-19 16:31:13
【问题描述】:

我一直在查看Kinect for Windows 发行说明和功能,因为我也想在我的项目中加入手势识别。

在上面的页面中,第一行提到“Kinect for Windows SDK 使开发人员能够创建支持手势和语音识别的应用程序”。语音识别 API 随 SDK 提供,并且可以轻松使用。但是,我认为 SDK 中没有任何手势识别 API。 Skeleton Tracking 的 API 可以轻松使用,但必须对其进行定制才能获得手势识别。

我也看过通过手势等和其他应用程序控制的 Windows Media Center 的视频。我想知道是否所有这些应用程序都是自定义构建的,并且必须编写自己的手势识别代码。

目前,在我的项目中,我使用的是 Codeplex 的 Kinect DTW Gesture Recognition。我有两个问题-> 1)看起来非常占用性能,并且在使用我的应用程序启用此功能时,我的应用程序会在一段时间后引发 OutofMemory 异常(PC 规格非常高)。 2)关于系统的健壮性不能说太多。有时对某些人有效,而对其他人无效。

我认为如果 API 是内置的,那么切换到这些会很好。这些是否可用,否则解决方法是什么?

【问题讨论】:

  • 分析异常原因,然后报告,您所写的问题含糊不清,需要我们为您找到问题。
  • @Ramhound:我的问题主要是问 Kinect SDK 中是否也有内置的手势识别系统?
  • 看看那个 codeplex 项目,它看起来像是一个失败的想法。您检查过 SDK 的命名空间和对象吗?你可能需要创建某种Gesture 类来定义每个肢体的位置等等。
  • 也许这个Question 会有所帮助

标签: c# wpf kinect gesture-recognition


【解决方案1】:

实际上,我现在正在为一个学校项目做这件事。我们必须创建自己的手势识别模块。 API 中没有任何东西可以为您做这件事,但它为您提供了构建功能所需的所有部分。

这篇文章很有帮助,http://blogs.msdn.com/b/mcsuksoldev/archive/2011/08/08/writing-a-gesture-service-with-the-kinect-for-windows-sdk.aspx。它讨论了如何分解手势。如果你只有少数几个可以硬编码的手势,那是微不足道的。我们需要能够加载和识别用户定义的手势,但本文描述了我们用来实现这一目标的基本框架。

【讨论】:

    【解决方案2】:

    看看这里http://www.exceptontuesdays.com/gestures-with-microsoft-kinect-for-windows-sdk-v1-5/

    该页面上提供了源代码。

    它识别以下内容

     switch (e.GestureType)
                {
                    case GestureType.Menu:
                        Debug.WriteLine("Menu");
                        Gesture = "Menu";
                        break;
                    case GestureType.WaveRight:
                        Debug.WriteLine("Wave Right");
                        Gesture = "Wave Right";
                        break;
                    case GestureType.WaveLeft:
                        Debug.WriteLine("Wave Left");
                        Gesture = "Wave Left";
                        break;
                    case GestureType.JoinedHands:
                        Debug.WriteLine("Joined Hands");
                        Gesture = "Joined Hands";
                        break;
                    case GestureType.SwipeLeft:
                        Debug.WriteLine("Swipe Left");
                        Gesture = "Swipe Left";
                        break;
                    case GestureType.SwipeRight:
                        Debug.WriteLine("Swipe Right");
                        Gesture = "Swipe Right";
                        break;
                    case GestureType.ZoomIn:
                        Debug.WriteLine("Zoom In");
                        Gesture = "Zoom In";
                        break;
                    case GestureType.ZoomOut:
                        Debug.WriteLine("Zoom Out");
                        Gesture = "Zoom Out";
                        break;
    
                    default:
                        break;
    

    【讨论】:

    • @dimi 有更新链接的人吗?我想实现放大和缩小功能
    • 看来这个github repo来自上面的链接。查看github.com/EvilClosetMonkey
    【解决方案3】:

    我还在开发一个带有手势识别的应用程序,作为大学的作业。在搜索好书籍后,我偶然发现了这两本,均由 Microsoft 研究人员撰写:

    (1)http://www.amazon.de/Programming-Kinect-Windows-Software-Development/dp/0735666814
    (2)http://www.amazon.de/Kinect-Windows-SDK-Programming-Guide/dp/1849692386/ref=sr_1_10?s=books-intl-de&ie=UTF8&qid=1393944100&sr=1-10&keywords=kinect

    他们描述了使用 Kinect 进行手势识别的一般技术

    【讨论】:

      【解决方案4】:

      试试这个FAAST API。 这是一个 API,它可以识别身体的手势并给出相应的输入中断。 在这里,您需要为特定操作分配特定键。 例如:假设我使用“W”键向前移动,那么我可以使用这个 API 为特定手势分配这个键。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-08-07
        • 1970-01-01
        • 1970-01-01
        • 2014-03-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多