目的:做一个简易的图片分类。

使用到的算法:hog、surf+svm

图片集cifar-10、cifar-100stl-10、自制图片集

图像分类python代码 图片分类python_图像分类python代码


分类完整代码链接

使用说明
1.cifar-10、cifar-100和stl-10直接解压
2.自制图片集文件夹结构:
├─homemade
│ ├─标签1
│ ├─标签2
│ ├─标签3
│ ├─标签4
│ ├─标签5
│ └─标签6
每个“标签N”里面是存储的属于该标签的图片,图片名为“标签名+数字”
自制图片全是百度爬取自己筛选的
3.依赖库
文件说明
categoriesGUI.py:gui界面
categoriesGUI.spec:用于Pyinstaller生成exe
config.py:读取配置参数
modelTrain.py:模型训练
picCategories.py:图片集分类,利用的是modelTrain.py训练保存的模型
config/config.cfg:配置参数,部分参数和python中算法的参数相对应

结果总结
1.hog是利用梯度变换提取特征,并且缺少旋转和尺度不变性。
2.surf是SIFT角点检测算法的改进版,速度提升比较大。
3.相同图片集,对比hog+LinearSVC和surf+LinearSVC,hog效果要好一些(这里不知道为什么)
4.不同图片集,各类别中的图片数量越多,hog识别效果越好
5.还可以优化部分分别是:
a.surf读取图片改为读取每一张图片就进行surf特征提取,在释放掉图片内存,这样可以减小内存。
b.模型训练采取的是LinearSVC,采取其他的效果应该要好些。
c.在surf+LinearSVC中使用的是MiniBatchKMeans,速度比kmeans快,效果差距不大
d.自己调参数,这里可以提高一些识别率。
6.surf由于提取特征大小不同,所以采用了词袋的方法。