【发布时间】:2016-03-26 22:54:40
【问题描述】:
我有 4 种相同颜色的音符符号:全音符、半音符、四分音符和八分音符。我需要对图像进行分类并判断它是否具有其中一个符号(目前只有一个)以及哪个符号。例如,如果我有一张只有乐谱的图像(但没有其他任何东西),它应该告诉我图像是空的,但如果我有一张带有半音符符号的图像,它应该告诉我类似“这是一个二分音符”。
假设我对每个可能的符号有 20 个样本图像,并且有 20 个基本情况(其中没有),我想训练一个 SVM 来对任何输入图像进行分类。我已经阅读了有关如何做到这一点的信息,但我仍然有一些疑问。我认为这个过程是这样的(如果我错了,请纠正我):
- 提取所有样本图像的描述符。
- 将这些描述符放在不同的
Mat对象中(每个符号一个)。 - 将这些
Mats输入到 SVM 以对其进行训练。 - 使用 SVM 对图像进行分类。
我对我认为的过程有具体的疑问:
- 我所描述的正确流程是我需要做的吗?
- 是否应该在将样本图像提供给描述符提取器之前对其进行预处理(例如提取背景并应用精巧的边缘)? o 我可以让它们保持原样吗?
- 我已经阅读了三种提取描述符的方法:HOG、BOW(词袋)和 SIFT。我认为他们都做我需要的,但我不知道该使用哪一个。我看到 HOG 主要(如果不是所有时候)用于面部和行人检测,我不知道它是否可以用于我的情况。关于应该使用哪一个的任何建议?
- 每个案例我应该有多少样本图片?
我不需要具体的实现细节,但我确实需要这些问题的答案,提前谢谢你
【问题讨论】:
-
你想要一个 svm 分类器来对 4 种类型的笔记进行分类......我认为为这个简单的任务训练分类器有点开销......或者我错过了什么?
-
@HumamHelfawi 好吧,我需要做的是通过网络摄像头检测用户将粘贴在粘在墙上的 3mtx50cm 工作人员上的大音符并播放音符一段时间,具体取决于在它的形状上。笔记不会总是笔直的,不会总是具有相同的大小(相机可能更近或更远)并且不会总是接收相同的照明。所以我认为这将是最好和更准确的方法。但如果有另一种方法可以检测您能想到的形状,将不胜感激。
-
在您的任务中,您不会描述整个图像,而只会描述所需的对象。因此您需要执行一些手动标记工作。
-
sift 将与弓相结合。 hog 将与 svm 结合使用。两者的工作方式截然不同。
标签: c++ opencv svm shapes object-detection