介绍在我们了解了如何将支持向量机用于一个基本案例之后,我们将尝试在图像上应用支持向量机模型来进行分类。为此,我们有一个4个类的数据库,每个类都有隔离的图像。但这里的问题是,一个图像包含几个特征,因此如果我们想使用图像,那么它将是一个具有大量值的输入矩阵,这将使学习过程非常缓慢,甚至无法确定它们是否是正确的特征。这就是为什么我们需要找到一种方法,帮助我们从图像中提取必要的信息,我们将学习这些信息。因为如果我们不这样做,那么输入向量将是整个图像。所以这里的想法是从图像中找到只包含图像重要信息的描述符,所以这里或者我们将使用BOW(bag of words)和SURF的方法。SURF方法用于提取图像的兴趣点,它可以是轮廓、圆……因为如果我们只提取图像的兴趣点,那么输入向量将很大程度上非常小,并且只包含必要的内容,这样学习将非常快。创建字典在进行学习之前,我们说过必须先找到兴趣点,然后将它们放在单个矩阵中,所以此矩阵称为字典,然后从该字典中对兴趣点最多的图像进行分类分组。为了提取点,我们将使用可完成此工作的openCV函数。我们决定为每个类拍摄10张图像进行训练,因此即使字典也必须包含10张图像的信息,因此这是我们用来提取兴趣点的代码行:因此,这些代码行将提取这些点并将其放入描述符中,最后,我们将此描述符放入保存的字典中,并在学习部分中使用它。训练提取兴趣点并填充字典后,我们需要找到包含我们所有学习图像之间共有兴趣点的图。我们将使用以下代码行来进行学习,并使用此图:对于模型的参数,我们使用与点相同的参数,也使用RBF内核。因此,在训练完成之后,我们必须保存模型,以便稍后在测试部分中使用它。测试现在我们必须使用openCV的预测功能来测试模型,但是在执行此操作之前,我们必须知道对于测试来说是一样的,我们不会将整个图像都放入模型的输入中,而是相反,我们必须在此处应用相同的SURF算法来提取该图像的兴趣点,并获得将要在预测输入中获得的此描述符。因此,对于测试,我选择了每个类别的15张图像,以便我们可以简单地构建混淆矩阵。在将我解释的方法应用于所有测试图像后,我得到了以下混淆矩阵:该矩阵表示: