完整代码在GitHub - FchZero/Advanced_computer_vision
一、实验原理:
本次实验是基于词袋模型的图像分类技术,利用提取的局部区域的分布对图像进行识别。在图像分类中,词袋模型算法需要通过监督或非监督的学习来获得视觉词典。基于词袋模型的图像分类算法一般分为四步,首先对图像进行局部特征向量的提取(本次实验采用HOG);其次利用上一步得到的特征向量集,抽取其中有代表性的向量,作为单词,形成视觉词典(本实验采用K-means聚类算法);然后对图像进行视觉单词的统计,一般判断图像的局部区域和某一单词的相似性是否超过某一阈值,这样即可将图像表示成单词的分布,即完成了图像的表示;最后设计并训练分类器,利用图像中单词的分布进行图像分类(本实验采用KNN分类算法和线性SVM多分类算法)。
二、实验目的:
本实验的目的是对15个场景数据库进行场景识别,对它们进行训练和测试。对于给定的训练集和测试集的图像,处理其图像特征和构建分类器,图像特征表示和分类器构建的组合有五种,分别为随机生成的(图像特征没有经过处理以及没有对应的分类器)、微小图像特征和KNN分类器、微小图像特征和线性SVM分类器、单词特征包和KNN分类器以及单词特征包和线性SVM分类器。
三、实验内容:
分别利用Tiny+KNN和Bags of Words(SIFT)+SVM实现对场景的分类,并且比较不同特征和不同分类方法对最终精度的影响。
四、实验数据及结果分析:
1、Tiny+KNN(FEATURE = 'tiny image'、CLASSIFIER = 'nearest neighbor'):
准确率为19%
2、Bags of Words (SIFT) + SVM(FEATURE = ' bag of words'、CLASSIFIER = ' support vector machine'):
准确率为71.1%