【A358】基于Python使用HOG+SVM进行图像分类

2022-04-25 16:46:51      索炜达电子      816     

文件编号:A358

文件大小:6.7M

开发环境:Python3.9、OpenCV4.5、PyCharm2020

猿创承诺:该项目亲测正常运行,提供部署视频,需远程调试部署需另外收费,确保正常使用,不能正常使用全额退款。

简要概述:hog_svm.py是用于训练的,通过提取图片的hog特征,然后通过SVM进行训练得到model,最后通过model进行预测,将结果写入result.txt文件之中。

注意事项:

1.你的图片长宽可以不相等,设置好image_height和image_width即可。

如果图片大小不相等,可以使用change_size.py,把所有图片大小resize成一样的。

2.你图片对应的标签必须是这样的:

001.jpg 1

003.jpg 2

前面是图片名称,后面是对应的类别(类别用数字表示),中间要用空格隔开,每个标签占一行。

你要准备两个文件,一个是训练用的,一个是测试用的。

训练样本标签和预测的都是一样的格式

大家可以看实例.(image文件夹)

3.你的训练和测试的图片可以放在同一个文件夹下面,也可以不同,设置好train_image_path和test_image_path即可。

4.你要根据你图片的大小,对这行代码进行一些调整,这个调整需要你先了解hog的知识:

fd = hog(gray, orientations=18, pixels_per_cell=[8,8], cells_per_block=[4,4], visualise=False, transform_sqrt=True)

这是我为128x128大小图片设置的提取hog特征的参数,你需要适当改变一些,到时候的效果也不同。

orientations我是选9或18,即梯度方向的个数

一般来说,图片越大,pixels_per_cell 和cells_per_block里面的值可以相应变大。

5.如果你要进行多次,建议你把文件位置的参数写死

#训练集图片的位置

train_image_path = '/home/icelee/Downloads/dataset/small_shixun/'

#测试集图片的位置

test_image_path = '/home/icelee/Downloads/dataset/small_shixun/'

#训练集标签的位置

train_label_path = '/home/icelee/Downloads/dataset/mydata.txt'

#测试集标签的位置

test_label_path = '/home/icelee/Downloads/dataset/test.txt'

#图片大小

image_height = 128

image_width = 128

6.你需要安装sk-learn库,hog,PIL库等。可能还有一些零碎的库,大家用pip安装就好。

7.实验都是彩色图片,如果你的图片是纯黑白的,很有可能需要改一下代码,看一下代码注释即可

采用这个测试cifar-10,准确率有50%多一点点(乱猜的准确率是10%),所以效果还是可以的,虽然比不上深度学习。

按需写作:

【A358】基于Python使用HOG+SVM进行图像分类

演示视频:

【A358】基于Python使用HOG+SVM进行图像分类

点击查看:系统演示视频

运行效果:

【A358】基于Python使用HOG+SVM进行图像分类

可能出现的错误

ValueError: Expected 2D array, got 1D array instead: array=[]. Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample.

出现上面的错误说明没有正常读取到图片,所以请检查图片宽高是不是和设置的size一样,路径是否正确。更改之后运行程序时,请选择重新获取特征。

远程协助:

温馨提示:索炜达.猿创官方提供收费远程协助,确保您项目运行成功。

点击查看:远程协助相关事项

我们提供完整项目文件清单如下:

文件目录

 ├ 1.项目源码

 ├ 2.运行截图

 └ 3.演示视频

TAGSVM
  • 1 次
  • 450 分