【问题标题】:How to use SVM in Object recognition如何在对象识别中使用 SVM
【发布时间】:2017-06-13 10:41:21
【问题描述】:

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

我已经看过很多示例代码,但我仍然不知道如何提供数据、将它们标记为 1 或 0、如何制作模型并使用它来训练......等等。如果有人可以帮助我完成明确的步骤,我将不胜感激。这对我来说真的很困惑。

【问题讨论】:

  • 这个问题太笼统了。您应该专注于问题的一个方面,提供您尝试过的代码并清楚地解释什么不起作用。我建议使用Tour 并查看How to Ask
  • 欢迎来到 StackOverflow。请阅读并遵循帮助文档中的发布指南。 on topichow to ask 在这里申请。 StackOverflow 不是编码或教程服务。

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


【解决方案1】:

您可以使用特征描述符作为训练机器学习模型的一部分。我曾与 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. 模型将被转储并保存,通过将图像直接传递给它,可以用于进一步的对象检测。我很快就会发布这个用法。

【讨论】:

猜你喜欢
  • 2015-04-24
  • 2012-10-23
  • 2016-01-08
  • 2015-07-09
  • 2014-05-04
  • 1970-01-01
  • 1970-01-01
  • 2017-06-05
  • 1970-01-01
相关资源
最近更新 更多