【问题标题】:Pattern matching a drawing with basic shapes [closed]将图形与基本形状匹配的模式[关闭]
【发布时间】:2015-12-28 06:11:02
【问题描述】:

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

P.S:用户输入的形状来自相机/视频。这是我用opencv跟踪的对象所经过的路径。现在我需要通过在相机前挥动物体来确定用户正在绘制的形状。

【问题讨论】:

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


    【解决方案1】:

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

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

    您可以使用 TensorFlow 创建这样的网络。这里是my two cents about TensorFlow

    动态时间扭曲

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

    机器学习的替代方案

    如果你想要更简单的东西并且你只有少量的类(例如 Douglas-Peucker algorithm 以找到最重要的点。我已经在我的学士论文中描述了它。当您转到this interactive preprocessing page 时,您可以感受一下这个算法(您可以在 write-math.com 上绘制一些东西,点击画布下方的“绘图”,点击“预处理”并通过选中复选框来应用它)

    另见

    【讨论】:

    • 非常感谢您。但是有没有更简单的方法呢?对于这样一个简单的任务,人工神经网络听起来有点矫枉过正。我希望我可以使用 numpy 或一些 matpolib 来完成这项工作。
    • 人工神经网络实际上使用起来非常简单,当你有足够的训练数据时它们表现最好(每类至少 50 个示例,最好是每类 150 个示例)。
    • @bhargav 我刚刚扩展了我的答案。这就是你要找的吗?
    • 关于在线图形识别的论文正是我所问的。谢谢你的链接。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-12
    • 2017-05-08
    相关资源
    最近更新 更多