我目前正在开发一个手势识别系统(用于 Android 应用程序)。我认为我已经完成了图像处理阶段,我可以提取手的轮廓(我现在戴着手套以避免背景减法)。
我还得到了边界椭圆/矩形,质心作为手的“重要”形状特征。
我的问题是,没有很多文献表明通过隐藏马尔可夫模型对图像进行分类之前的下一阶段是什么。我发现这个“特征提取”阶段非常模棱两可。
目前我正在获取轮廓的角度列表(近似以获得有限数量的角度)
问题是我不知道下一步该做什么。当我搜索“使用 HMM 进行形状分类”的文献时,我仍然觉得下一步该做什么很困难。
作为 HMM 的工具,我计划使用 JaHMM。但是我不知道在这个阶段如何使用这个工具,因为我不知道这个分类阶段的输入是什么!
我遇到过一些我在一些文献中找到的函数列表,例如快速傅里叶描述符、曲率描述符、B 样条;但是我对如何将这些函数应用于我当前的数据一无所知(即角度列表,例如:-63、154、3、23、54,...)
更新 1:
感谢您的信息。@彼得·K。
关于姿势:我打算找一组用手指拼写的美国手语单词,例如“dog”->“d”“o”“g”(3 个州);但那一刻我还没有决定去做什么。
我目前正在阅读更多论文,看看我应该提取什么类型的信息,例如:
- 手心
- 运动角度
- 从特定点到手部轮廓不同点的距离(等)
现在我遇到了一篇似乎表明我想做什么的论文,我不确定:
http://espace.library.uq.edu.au/eserv.php?pid=UQ:10700&dsID=n0273.pdf
我目前正在阅读第 5 节 - 矢量量化(我之前听说过这个术语但实际上并不知道它涉及什么,并且在图 5 中似乎有一个复杂的算法,如果我理解正确,它会转换我实现的一组值从手(刚才提到)到 1 个数字,我可以用它作为观察序列来训练一个 HMM 的 1 个特定符号。你认为我在正确的轨道上前进吗?(我在 Android 上工作,(NDK) ,我发现 JaHMM 作为 HMM 工具,并使用 OpenCV 进行图像处理。
@Peter K。感谢您的回答。关于数据生成,我计划在生成个人数据集后遵循本文的步骤:(第 4 节和第 5 节) http://www.i.ci.ritsumei.ac.jp/~shimada/papers/vi02 -tanibata.pdf
更新 2:请记住,手势由 {姿势 a,姿势 b,姿势 c} 组成
我现在在想我必须使用某种形式的分类算法。也就是说,我目前有一组特征向量:
姿势A:[椭圆周围的角度,高:宽比]
- 0.802985 33.909615
- 0.722824 31.209663
- 0.734535 30.206722
- 0.68397 31.838253
- 0.713706 34.29641
- 0.688798 30.603661
- 0.721395 34.880161
姿势 B:[结构与姿势 A 相同]
- 0.474164 16.077467
- 0.483104 14.526289
- 0.478904 14.800572
- 0.483134 14.523611
- 0.480608 14.41159
- 0.481552 15.563665
- 0.497951 15.563585
等等..
我希望当我输入一个特征向量时,我会得到一个简单的符号,例如“A”、“B”等。
这可能吗?我还在这里迁移了问题:https ://stackoverflow.com/questions/15602963/vector-quantization-algorithms-used-to-provide-observation-sequences-for-hidden