我想创建一个应用程序,能够学习识别用户绘制的点序列,例如手写识别。如果数据点由多个(x,y)对组成(如对应于手势实例的像素),那么关于该实例应该计算哪些最佳特征,以便进行多类分类(例如SVM、NN等)?特别是在提供的训练样本有限的情况下。
回答:
如果我是你,我会找出对应于角点、端点和交叉点的那些数据点,将它们用作特征,并丢弃中间点。你还可以包括这些兴趣点的角度或其他描述符作为特征。
为了检测兴趣点,你可以使用Harris检测器,然后可以使用该点的梯度值作为简单的描述符。或者,你可以选择更复杂的方法,如SIFT。
你可以使用下采样图像中每个像素的描述符,然后用SVM进行分类。这样做的缺点是特征向量中会有大量不重要的数据点。
另一种方法是不将其视为分类问题,而是作为模板匹配问题(在计算机视觉中相当常见)。在这种情况下,手势可以被指定为任意数量的兴趣点,完全省略非兴趣数据。一个实例的点中有某个阈值百分比必须与模板匹配才能进行积极识别。例如,当将’R’的一个实例的角点与’X’的模板匹配时,右下角的点应该匹配,因为它们是相同位置和方向的端点,但其他点差异太大,得分相当低,因此’R=X’的识别将被拒绝。