我是图像处理的新手。我的项目是使用SVM进行“图像分类”。我对最终软件的设想是:“我选择一些图像并将其作为输入提供给我的软件,软件会对图像进行分类。如果我提供了一张动物的图像,它会适当地将其分类为猫或蛇。”
当我在谷歌上搜索相关信息时,它告诉我“首先你需要训练SVM”。
训练SVM的含义是什么?
在我的案例中(图像分类),SVM的实际输入是什么?
SVM只是一个分类器,它如何对图像进行分类?我是否需要将图像转换为特定格式?请帮助我。
回答:
支持向量机(SVM)是一种用于监督数据分类的机器学习模型。SVM本质上是学习一个超平面,将数据空间分成两个区域(在两类的情况下)。在你的案例中,假设你有蛇和猫的图像,并且需要对它们进行分类。你需要遵循的步骤是
从图像中提取“特征”。
这些“特征”可能是你案例中蛇/猫外观的函数,例如动物的颜色、动物的形状等。通过连接这些特征,你可以得到一个多维特征向量。
训练一个SVM分类器
训练本质上是学习一个分隔特征向量的超平面,分别是蛇类和猫类的特征向量。例如,如果你的特征向量是二维的,训练一个SVM分类器就相当于“学习”一条线,最佳地分隔你的标记数据/训练数据。你可以使用众多免费可用的机器学习库。如果你使用Python,你可以使用sklearn来完成这项任务。这个学习(线性SVM中的超平面)的任务被称为训练。
对图像进行分类。
一旦你训练了你的模型,你就可以用它来对类别未知的图像进行分类。
注意:我在这个回答中简化了很多细节/问题。我建议你应该阅读关于SVM的更多信息。