HOG + SVM 实现图片分类(python3)
前言
大家能看到这篇文章,想必对HOG还是有些了解了,那我就不赘述了,其实我自己不太懂,但是还是比刚开始好一些了。下面我的代码是参考这位博主的:点我查看
上面那位博主是用的cifar-10数据集,但是我们的数据集很可能是普通的图片,所以我进行了一些改进。
注意事项:
你的图片长宽可以不相等,设置好
image_height
和image_width
即可。
如果图片大小不相等,可以使用change_size.py,把所有图片大小resize成一样的。你图片对应的标签必须是这样的:
001.jpg 1
003.jpg 2前面是图片名称,后面是对应的类别(类别用数字表示),中间要用空格隔开,每个标签占一行。
你要准备两个文件,一个是训练用的,一个是测试用的。
训练样本标签和预测的都是一样的格式
大家可以看github上面的实例.(image文件夹)你的训练和测试的图片可以放在同一个文件夹下面,也可以不同,设置好
train_image_path
和test_image_path
即可。你要根据你图片的大小,对这行代码进行一些调整,这个调整需要你先了解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
里面的值可以相应变大。如果你要进行多次,建议你把文件位置的参数写死
#训练集图片的位置 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
你需要安装sk-learn库,hog,PIL库等。可能还有一些零碎的库,大家用pip安装就好。
实验都是彩色图片,如果你的图片是纯黑白的,很有可能需要改一下代码,看一下代码注释即可
采用这个测试cifar-10,准确率有50%多一点点(乱猜的准确率是10%),所以效果还是可以的,虽然比不上深度学习。
为了方便大家查看,代码放在了github:https://github.com/xiaobingchan/HOG_SVM
可能出现的错误
HOG + SVM 实现图片分类(python3)相关推荐
- 车牌识别技术详解五--采用LBP+HOG SVM做目标分类,车牌检测,字符检测等
在样本数量比较少的情况下,可以采用HOG.SVM对样本进行初步的筛选出,正负样本,本文接着上一节二值化出来部分样本后,用pictureRelate做初步筛选出正负样本各500,准确训练. 1.pict ...
- hog svm 视频 matlab,matlab版hog+svm图像二分类
开始接触svm分类器是opencv中的使用起来很方便,后来根据实际需要需要使用matlab版的,以前没怎么接触过,开始有点头大,不知从何下手,查阅相关例子后,就开始 开始接触svm分类器是opencv ...
- svm实现图片分类(python)
目录 前言 knn vs. svm svm & linear classifier bias trick loss function regularization optimization 代 ...
- svm实现图片分类(python)_SVM分类器python实现
本作业的目标如下: implement a fully-vectorized loss function for the SVM implement the fully-vectorized expr ...
- 【实战类】Hog SVM进行图像分类任务
目录 一.训练数据准备:cifar转图像操作 二.训练和验证部分 三.hog梯度图可视化 案例训练数据:cifar 10 图像下载地址(后面我们要用这批数据作为训练数据):CIFAR-10 and C ...
- svm+特征提取做分类
使用SVM做一个图片分类器,主要使用的技术是,各种特征提取方法加上PCA主成分提取,最后用SVM进行图片分类处理. 特征提取这个东西还是比较简单的,前人做的工作很多,源代码也不少.主要采用的不变距.H ...
- SVM 图片分类python实现
文章目录 前言 一.数据集准备 二.安装环境 三.执行代码 总结 前言 SVM分类器就不介绍了,代码是网友通过github共享下载到的,源链接大家可以自行搜索一下.名称是SVMImageClassif ...
- 行人检测HOG+SVM:综述、INRIADATA数据集、线性SVM
目录 1. 行人检测算法研究综述 2. 基于机器学习的方法:人工特征+分类器 2.1 HOG+SVM 2.2 HOG+Adaboost 2.3 ICF+AdaBoost 2.4 DPM+ latent ...
- HOG+SVM进行行人检测(github代码解读)
HOG+SVM进行行人检测 代码参考+数据集来源:https://github.com/FrankMa123/- 注意使用的scikit-learn库的版本为0.22,高于该版本的scikit-lea ...
最新文章
- Data - 数据思维 - 下篇
- linux配置中心自动化,centos下搭建git服务 基于git服务配置自动化部署 遇到的Linux知识补充...
- 前端cookie 放到请求头_ajax请求携带cookie和自定义请求头header(跨域和同域)
- STM32的IIC应用详解3
- JS实现select去除option的使用注意事项
- linux之循环执行任务
- 【Magicodes.IE 2.0.0-beta1版本发布】已支持数据表格、列筛选器和Sheet拆分
- oracle之基本的过滤和排序数据
- Ubuntu 安装调整工具移动 Launcher 启动器位置
- linux下u盘的使用
- 计算机运算法则图鉴,AP微积分BC TI-Nspire计算器使用指南 正确使用计算器5分到手轻而易举...
- html表格中加入斜线,使用css给table表格表头添加斜线(斜线表格)
- 使用防火墙禁止软件联网
- 新股高中签率的技巧|提高新股中签率技巧
- 蓝牙4.0、经典蓝牙、BT、BLE的关系与区别
- echart简单使用
- Java-对象数组以及内存图解
- 域名状态REGISTRAR-HOLD的含义 及其它状态解析
- NC瑞士军刀 网络工具
- 工厂生产现场怎样制定6s管理制度?