用基本形状匹配绘图

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

附注:用户输入的形状来自摄像头/视频。这是通过OpenCV跟踪的对象所经过的路径。现在我需要通过在摄像头前挥动对象来识别用户绘制的形状。


回答:

这听起来与我在本科论文中做的关于“在线识别手写数学符号”非常相似。

你可以用神经网络来识别这些模式。插值线条,将线上的点标准化到固定数量,以(x,y)坐标作为输入特征,以形状类型作为输出节点(一个节点代表圆形,一个节点代表三角形,…)。

你可以用TensorFlow创建这样的网络。这里是我对TensorFlow的两点看法

动态时间规整

这是一种模式匹配方法。请参阅我的本科论文或维基百科

机器学习的替代方案

如果你想要更简单的方法,并且只有很少的类别(例如< 30),那么你可能也可以手工设计一个算法。我建议查看Douglas-Peucker算法来找到最重要的点。我在本科论文中描述过它。当你访问这个交互式预处理页面时,你可以对这个算法有一个感觉(你可以在write-math.com上绘制一些东西,点击画布下方的“绘图”,点击“预处理”,通过勾选复选框来应用它)

另见

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注