特征提取和分类

时间:2011-02-16 17:29:52

标签: opencv extraction

我正在实施古钱币识别系统。我已经使用轮廓检测​​来提取硬币的特征。我想用SVM训练图像。

我的问题是如何将这些功能提供给SVM?我知道我必须将这些功能保存到文件中,然后该文件应该提供给SVM。但是,我不知道将功能保存到文件中。

将特征保存到文件意味着保存图像中轮廓的数量,每个轮廓的x,y,宽度和高度对吗? 有人可以帮帮我吗?我被困在这里两个月了。不过,我找不到解决方案。 将功能保存到文件后,是否必须将硬币名称也指定给同一文件或其他文件?

非常感谢你的帮助。

Nadeeshani

1 个答案:

答案 0 :(得分:0)

这取决于您使用的计算机视觉/图像处理器库。例如,OpenCV内置了SVM功能:

http://opencv.willowgarage.com/documentation/cpp/support_vector_machines.html

所以你甚至不必导出这些功能。但是LIBSVM(http://www.csie.ntu.edu.tw/~cjlin/libsvm/)还有更多的绑定,例如Matlab。

至于如何将功能提供给SVM ...大多数分类程序(包括SVM)的输入是一个多维向量,因此您可以得到一个例如连接前10个x-y-width-height元组。但是,这种天真的解决方案不太可行,因为如果你改变元组的顺序(或者你旋转硬币以使x-y坐标改变),你将得到完全不同的向量。因此,尝试制作一个硬币图像 - >特征向量映射,当硬币旋转/移动/添加噪声时不会改变。 (第二个想法:按尺寸排序的特征,前5-10,有一些形状描述符而不是简单的宽度/高度?)

硬币名称在此阶段大多不相关,对SVM输出使用1-N编码。