什么是收集数据以识别手绘几何图形的最佳算法和最佳方法?

时间:2012-02-29 07:41:57

标签: algorithm image-processing opencv computer-vision

我需要识别用户手指在设备屏幕上绘制的一些元素。首先说它们是圆形,水平线,对角线,方框,还有一些比较复杂的闪电标志。

我不仅需要说明哪个元素更有可能,而且还需要识别元素是否被错误引用,所以它不是我认识的元素之一。

我想知道哪种算法最适合它,以及为它收集数据的最佳方法是什么。

目前我正在使用OpenCV,算法是支持向量机。我通过计算从中心坐标到10个图像点的距离来收集数据。它不能很好地运作。

1 个答案:

答案 0 :(得分:2)

听起来你需要提取一个特征向量来描述你的“手势”。理想情况下,功能必须是缩放和平移不变的。也就是说:他们区分手势,无论其大小或角度如何。

如果动作本身很重要,您可以考虑使用Velocity Moments作为要素。

或者,如果仅处理手势的完成形状,则可以使用OpenCV提供的基于图像的方法。您可能对matchShapes()方法特别感兴趣 - 基于Hu Moments。

如果您已经在使用SVM,那么这就是您的监督分类器,您可以在其中为每个手势(带有标签)提取您提取的特征向量以进行训练。除了选择分类器(PCA,Naive Bayes,ANN等等)之外,问题的关键在于训练数据的质量。

当我在过去做过类似的事情时,我只是用一个小脚本收集训练数据来捕捉鼠标的动作(当按下按钮时)。我似乎记得当时使用UNIX命令'xev'来捕获窗口鼠标事件。