我希望训练一个用于物体检测的SVM。目前我有一个python脚本,可以检测FAST关键点并在该位置提取BRIEF特征。
现在我不知道如何使用这些描述符来训练SVM。
请告诉我:
1. 如何使用这些描述符来训练SVM(据我所知,这些描述符应该是我的训练数据)?
2. 标签的作用是什么,我如何获取它们?
现在我不知道如何使用这些描述符来训练SVM。
请告诉我:
1. 如何使用这些描述符来训练SVM(据我所知,这些描述符应该是我的训练数据)?
2. 标签的作用是什么,我如何获取它们?
>>> from sklearn import svm
>>> X = [[0, 0], <- negative 0
[1, 3], <- positive 1
2, 5]] <- negative 0
>>> y = [0,
1,
0]
>>> model = svm.SVC()
>>> model.fit(X, y)
X
和y
的一行。y
需要正面和负面的示例(0或1):在这里,你可以发挥创意,但我会提供一个简单的想法。创建height * width
个特征,每个图像的每个像素都有一个特征,但除了在FAST关键点周围的小区域之外,所有特征值都为0。最终,您的X
矩阵将具有尺寸(n_images
,height*width
)。
另一个常用的想法是词袋(Bag of Words)。X
矩阵必须具有固定数量的特征/列,而关键点的数量是可变的。这是一种表示问题,但可以通过将它们放入带有固定数量的箱子中的直方图中来解决。有关详细信息,请参见this paper。
您需要查阅专业文献以找到更多将BRIEF特征纳入其中的方法,但我希望这会给您一个开始的想法。