如何在对象识别中使用SVM

时间:2017-01-27 16:59:59

标签: machine-learning computer-vision svm object-recognition

我正在开展一个关于识别室内环境对象(例如椅子,桌子)的项目。我是使用opencv(使用c ++)的新机器。我的计划是使用SURF特征检测方法,然后使用SVM分类对对象进行分类。

我见过许多示例代码,但我仍然无法弄清楚如何提供数据,将它们标记为1或0,如何制作模型并使用它来训练..等等。我将不胜感激,任何人都可以帮助我完成明确的步骤。这对我来说真的很困惑。

1 个答案:

答案 0 :(得分:0)

您可以使用功能描述符作为培训机器学习模型的一部分。我曾与SURF合作,但我们没有用它来训练我的模型。

我可以帮助您解决我使用HOG并使用SVM进行培训的项目示例。请检查this repository。我知道您已经要求C++,我的示例位于Python,您可以将此存储库作为示例,并以您的首选语言使用它们。

主要涉及这些步骤:

  1. 获取正负图像的样本,您可以分别标记1和-1(或0)进行分类。如果您认为,您有足够的数据,则可以继续使用功能工程部分。或者,您可以从存储库中获取帮助sample_create.py并创建更大的数据集。

  2. 使用样本进行特征工程。即,找到特征描述符并将它们存储在稍后可用于训练模型的地方。您可以从存储库中的文件feature_engineering.py获取帮助,该文件将读取所有图像,创建HOG描述符并将其保存到文件中。

  3. 最后一步是将训练数据传递给训练模型。我在我的例子中使用过SVM。这显示为文件linear_svm.py。我已经使用了TensorFlow库。

  4. 模型将被转储并保存,可以通过将图像直接传递给它来进行进一步的对象检测。我很快就会发布这个用法。