基于关键点的基础机器学习与目标检测及图像变换应用
基于关键点的目标分类
在进行目标分类任务时,我们使用支持向量机(SVM)分类器。以下是具体的操作步骤:
1. 计算训练数据
- 为每个训练图像计算(SURF)描述符。
- 通过欧几里得距离将每个描述符与词汇表中的一个聚类关联起来。
- 从这种关联中制作直方图,该直方图的bin数量与词汇表中的聚类数量相同。每个bin统计训练图像中与该bin对应的聚类相关联的描述符数量,这个直方图被称为图像的“视觉词袋描述符”,使用 BOWImageDescriptorExtractor
类的 compute()
方法完成。
2. 训练SVM分类器
- 对于每个类别,正样本数据是其训练图像的BOW描述符,负样本数据是所有其他类别的训练图像的BOW描述符。
- 正样本标记为1,负样本标记为0。
- 将这些数据提供给 CvSVM
类的 train()
方法来训练SVM,每个类别都有一个对应的SVM。
3. 使用训练好的SVM进行分类
- 从相机捕获图像并再次使用 BOWImageDescriptorExtractor
类的 compute()
方法计算BOW描述符。
- 使用 CvSVM
类的 predict()
方法将该描述符提供给SV