将图形与基本形状匹配的图案

时间:2015-12-28 06:11:02

标签: python opencv numpy machine-learning pattern-matching

我有一个像这样保存的坐标的python列表:[(34,55),(44,66)....]。 此列表表示屏幕上的手绘线条。现在我需要检查这个线/形状是否与一些预先保存的基本形状的类似列表匹配,如方形,圆形,三角形等。(基本上我需要识别用户手势。)请建议一些机器学习技术来实现它。如果这是重复的话,建议链接。 (我更喜欢python解决方案。)

P.S:用户输入的形状来自相机/视频。它是我用opencv跟踪的对象遍历的路径。现在我需要通过在相机前面挥动物体来计算用户正在绘制的形状。

1 个答案:

答案 0 :(得分:2)

这听起来与我在学士论文中关于“On-line Recognition of Handwritten Mathematical Symbols”的论文非常相似。

您可以使用neural network识别这些模式。对线进行插值,将线上的点标准化为固定数,将(x,y)坐标作为输入要素,将形状类型作为输出节点(圆形一个节点,三角形一个节点,......)。

您可以使用TensorFlow创建此类网络。以下是my two cents about TensorFlow

动态时间扭曲

这是一种模式匹配方法。请参阅我的学士论文或wikipedia

机器学习的替代方案

如果你想要更简单的东西,如果你只有少量的类(例如<30),那么你也可以手工设计算法。我建议您查看Douglas-Peucker algorithm以找到最重要的要点。我在学士论文中对此进行了描述。当你转到this interactive preprocessing page时,你可以感受到这个算法(你可以在write-math.com上画一些东西,点击画布下面的“绘图”,点击“预处理”并通过选中复选框来应用它)

另见