我正在开展一个关于识别室内环境对象(例如椅子,桌子)的项目。我是使用opencv(使用c ++)的新机器。我的计划是使用SURF特征检测方法,然后使用SVM分类对对象进行分类。
我见过许多示例代码,但我仍然无法弄清楚如何提供数据,将它们标记为1或0,如何制作模型并使用它来训练..等等。我将不胜感激,任何人都可以帮助我完成明确的步骤。这对我来说真的很困惑。
答案 0 :(得分:0)
您可以使用功能描述符作为培训机器学习模型的一部分。我曾与SURF
合作,但我们没有用它来训练我的模型。
我可以帮助您解决我使用HOG并使用SVM进行培训的项目示例。请检查this repository。我知道您已经要求C++
,我的示例位于Python
,您可以将此存储库作为示例,并以您的首选语言使用它们。
主要涉及这些步骤:
获取正负图像的样本,您可以分别标记1和-1(或0)进行分类。如果您认为,您有足够的数据,则可以继续使用功能工程部分。或者,您可以从存储库中获取帮助sample_create.py
并创建更大的数据集。
使用样本进行特征工程。即,找到特征描述符并将它们存储在稍后可用于训练模型的地方。您可以从存储库中的文件feature_engineering.py
获取帮助,该文件将读取所有图像,创建HOG描述符并将其保存到文件中。
最后一步是将训练数据传递给训练模型。我在我的例子中使用过SVM。这显示为文件linear_svm.py
。我已经使用了TensorFlow库。
模型将被转储并保存,可以通过将图像直接传递给它来进行进一步的对象检测。我很快就会发布这个用法。