我正在使用网络摄像头获取视频供稿,然后对此视频供稿执行动作追踪。动作跟踪器连续返回(x,y)
坐标。
我想使用这些(x,y)
识别手势,例如“向左滑动”,“向右滑动”,“向上滑动”或“向下滑动”。
如何制作和存储这些手势的模板以及如何识别/识别这些手势 手势发生了什么?
提前谢谢你:)
PS :我使用的是Flex 4和ActionScript 3.0。如果有人可以帮我解决逻辑问题,我可以用ActionScript编写它。
答案 0 :(得分: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坐标分解为单独的2d数组,当前坐标和第一个点之间的总行程距离(在本例中,它将增加1),因此您将拥有两个数组:
X:(0,0)(1,1)(2,2)
Y:(0,1)(1,1)(2,2)
现在对每个数组进行最小二乘拟合,以找到x中变化的最接近表示,并将y变为二次函数。对您的每个确定的手势执行相同操作,然后将您确定的手势的x,y坐标插入到用户手势的二次函数和您设计的每个确定的手势中,并查看哪个一个匹配最近的。这是你的姿态。
(我从来没有尝试过处理手势,但我不知道为什么这样做不会有效)
答案 1 :(得分:2)
您应该将任务划分为较小的子任务。在计算机视觉中,没有像通用手势检测这样的东西在所有环境中都能开箱即用。
首先,您需要能够检测到运动。有几种方法可以做到这一点,例如背景减法或斑点追踪。
然后您需要从图片中提取某些特征,例如一只手。同样,有不止一种方法可以做到这一点。从肤色近似/评估(非常容易出现不同光照条件)开始,到更先进的技术,真正试图“分析”物体的形状。这些算法随着时间的推移“学习”手应该是什么样的。
我只能建议你购买一本关于计算机视觉的好书以及研究网页上的文章等。还有像OpenCV这样的图书馆可以用来了解更多有关实施方面的内容。 ActionScript 3应该有几个OpenCV端口。我也可以推荐Eugene Zatepyakin(http://blog.inspirit.ru)的文章和工具。他正在使用ActionScript 3做很好的简历。
长话短说,你应该研究运动跟踪和特征提取。
答案 2 :(得分:1)
最好的起点是阅读手语识别或触控板输入的工作原理,例如创建参考图像并将其与用户输入进行比较。特定于Adobe,有FLARToolKit,详见其网站上的augmented reality文章。
参考文献: