我正在使用网络摄像头获取视频馈送,然后对此视频馈送执行动作跟踪。运动跟踪器不断返回(x,y)
坐标。你如何制作和识别手势?
我想用这些(x,y)
来识别诸如“向左滑动”,“向右滑动”,“向上滑动”或“向下滑动”等手势。
我如何制作和存储这些手势的模板,以及如何找出/识别手势的其中一个 是否已经发生?
预先感谢您:)
PS:我使用Flex 4和ActionScript 3.0。如果有人能够用逻辑帮助我,我可以用ActionScript编写它。
我正在使用网络摄像头获取视频馈送,然后对此视频馈送执行动作跟踪。运动跟踪器不断返回(x,y)
坐标。你如何制作和识别手势?
我想用这些(x,y)
来识别诸如“向左滑动”,“向右滑动”,“向上滑动”或“向下滑动”等手势。
我如何制作和存储这些手势的模板,以及如何找出/识别手势的其中一个 是否已经发生?
预先感谢您:)
PS:我使用Flex 4和ActionScript 3.0。如果有人能够用逻辑帮助我,我可以用ActionScript编写它。
最好的开始是阅读手语识别或触控板输入如何工作,如创建参考图像并将其与用户输入进行比较。具体到Adobe,有FLARToolKit,在其网站上的augmented reality文章中有详细说明。
参考文献:
你应该将你的任务分成更小的子任务。在计算机视觉领域,没有任何东西可以像所有环境下都可以使用的通用手势检测一样。
首先,您需要能够检测到运动。有几种方法可以做到这一点,例如背景扣除或斑点跟踪。
然后,您需要从图像中提取某些功能,例如一只手。同样,有多种方法可以做到这一点。从非常容易出现不同照明条件的肤色近似/评估开始,到更真实地尝试“分析”物体形状的更高级技术。这些算法随着时间的推移“学习”一只手应该是什么样子。
我只能推荐购买一本关于计算机视觉的好书,并为文章研究网络。还有像OpenCV这样的库可用于了解更多关于实现方面的内容。应该有几个OpenCV端口用于ActionScript 3.我也可以推荐Eugene Zatepyakin的文章和工具(http://blog.inspirit.ru)。他用ActionScript 3做了很棒的简历。
长话短说,你应该研究运动跟踪和特征提取。
我能想到的工作方法是沿着手势有一系列表示点的(X,Y)坐标。在小范围内,如果通过屏幕的手势被图示如此:
| 1 | 1 | 1 |
| 1 | 0 | 0 |
| 1 | 0 | 0 |
和表示(从表示0,0左上角):
(0,2)(0,1)(0,0)(0,1)(0,2)
将x,y坐标分解为单独的2维数组,其中当前坐标和第一个点之间的总行程距离(在所有情况下,在本例中它将递增1),因此您将有两个数组:
X: (0,0)(1,1)(2,2)
Y:(0,1)(1,1)(2,2)
现在对每个数组做一个最小二乘拟合,以找出x中变化的最接近表示形式,并将y变化为二次函数。对你的每一个判断的手势做同样的事情,然后插入你确定的手势的x,y坐标到用户的手势的二次函数和你设计的每个确定的手势,并且看看它匹配哪一个最接近的手势。这是你的姿态。
(我从来没有尝试过处理的手势,但我不明白为什么这是行不通的)
我跑进[链接] http://gestureworks.com之前,它可能不是一个现成的解决你的问题,但希望里面的逻辑可能会激发一个解决方案。 –