图像处理案例03
创始人
2024-11-13 18:38:12
0

HOG+SVM数字识别

  • 1 . 步骤
  • 2 . 代码

1 . 步骤

  1. 读入数据,把数据划分为训练集和测试集
  2. 用hog提取特征
  3. 用SVM训练数据
  4. 测试、评价模型
  5. 保存模型
  6. 加载模型,应用模型

2 . 代码

import os import cv2 import sklearn import numpy as np from skimage.feature import hog from skimage import data,exposure from sklearn import svm from sklearn.metrics import accuracy_score import matplotlib.pyplot as plt import seaborn as sn import pandas  as pd from joblib import dump,load from sklearn.metrics import confusion_matrix  # 1. 读入数据 # 1.1 处理数据,获取图像的地址和标签,划分训练集、测试集,对数据集打乱顺序 data_path = r'./hand_nums' tmp_train = os.listdir(data_path+'/train') tmp_test = os.listdir(data_path+'/test') train_x ,test_x = [],[] ## 1.2 获取图像的地址,把训练集和测试集的特征和标签 test_y ,test_y = [],[] for i in tmp_train:     if i.endswith('.bmp'):         train_x.append(data_path+'/train/'+i)         train_y.append(int(i.split('-')[0])) for i in tmp_test:     if i.endswith('.bmp'):         test_x.append(data_path+'/test/'+i)         test_y.append(int(i.split('.')[0])) ## 1.3 打乱数据的顺序 ## 训练集、测试集的下标 train_idx = np.arange(len(train_x)) test_idx = np.arange(len(test_x)) ## 打乱顺序 np.random.shuffle(train_idx) np.random.shuffle(test_idx) ## 训练集、测试集打乱顺序 train_x = list(np.array(train_x)[train_idx]) test_x = list(np.array(test_x)[test_idx]) train_y = list(np.array(train_y)[train_idx]) test_y = list(np.array(test_y)[test_idx])  # 2. 用hog提取特征 ## 2.1 hog实例化 train_feature,test_feature = [],[] ## 获取训练集特征 for i in train_x:     img_gray = cv2.imread(i,0)     fd , img_hog = hog(img_gray,orientations=9,pixels_per_cell=(8,8),                      cells_per_block=(2,2),visualize=True)     train_feature.append(img_hog.flatten()) ## 获取测试集特征 for i in test_x:     img_gray = cv2.imread(i,0)     fd,img_hog = hog(img_gray,orientations=9,pixels_per_cell=(8,8),                      cells_per_block=(2,2),visualize=True)     test_feature.append(img_hog.flatten())  # 3 SVM训练 clf = svm.SVC(decision_function_shape='ovo') clf.fit(train_feature ,train_y) # 4. 测试、评价模型 dec = clf.decision_function(test_feature) pred_y = clf.predict(test_feature) accuracy_score(pred_y,test_y) # 5. 保存模型 from joblib import dump,load ## 保存模型 dump(clf,'./hand_nums/models/poly.joblib') ## 加载模型 new_cls = load('./hand_nums/models/poly.joblib') pred_y = new_cls.predict(test_feature) accuracy_score(pred_y,test_y)   # 6. 加载模型,应用模型 clf_poly = svm.SVC(decision_function_shape='ovo',kernel='poly') clf_poly.fit(train_feature ,train_y) dec = clf_poly.decision_function(test_feature) pred_y = clf_poly.predict(test_feature) accuracy_score(pred_y,test_y)  clf_linear = svm.SVC(decision_function_shape='ovo',kernel='linear') clf_linear.fit(train_feature ,train_y) dec = clf_linear.decision_function(test_feature) pred_y = clf_linear.predict(test_feature) accuracy_score(pred_y,test_y) cm = confusion_matrix(test_y,pred_y)  df_cm = pd.Dataframe(cm,index=[i for i in ['0','1','2','3','4','5','6','7','8','9']],                      columns = [i for i in ['0','1','2','3','4','5','6','7','8','9']]) plt.figure(figsize=(10,7)) sn.heatmap(df_cm,annot=True,cmap='Green',fmt='d')  

准确率 1.0
嘻嘻😁
数据集:链接:https://pan.baidu.com/s/1yFCJvcswdSgGcAN6n9u-nA 密码:ryqo

相关内容

热门资讯

秒懂教程!微信炸金花房卡找谁买... 炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:56001354许多玩家在游戏中会购买房卡来享...
房卡必备教程“微信群牛牛房卡去... 牛牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:86909166许多玩家在游戏中会购买房卡来享受...
秒懂教程!玩炸金花房卡从哪里买... 炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:71319951许多玩家在游戏中会购买房卡来享...
秒懂教程“金花房卡正规购买渠道... 金牛座牛牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:44346008许多玩家在游戏中会购买房卡...
秒懂教程!拼三张房卡多少钱一张... 拼三张是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:66336574许多玩家在游戏中会购买房卡来享...
ia实测“微信链接金花房卡怎么... 皇豪互娱是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:86909166许多玩家在游戏中会购买房卡来...
秒懂教程!如何创建拼三张房间卡... 拼三张是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:56001354许多玩家在游戏中会购买房卡来享...
正版授权“牛牛房卡卖家联系方式... 牛牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:44346008许多玩家在游戏中会购买房卡来享受...
秒懂教程!微信炸金花房间怎么弄... 炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:71319951许多玩家在游戏中会购买房卡来享...
安卓添加系统功能失效了,探究原... 最近我的安卓手机有点儿闹脾气,添加的系统功能突然失效了,真是让人头疼。这不,我就来跟你聊聊这个烦心事...
给大家讲解“怎样购买金花链接房... 新超凡是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:15984933许多玩家在游戏中会购买房卡来享...
秒懂教程!微信牛牛房卡链接在哪... 牛牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:66336574许多玩家在游戏中会购买房卡来享受...
秒懂教程“微信牛牛链接金花房卡... 金牛座牛牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:86909166许多玩家在游戏中会购买房卡...
秒懂教程!微信链接牛牛房卡怎样... 牛牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:56001354许多玩家在游戏中会购买房卡来享受...
给大家讲解“微信斗牛房卡怎么买... 微信斗牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:86909166许多玩家在游戏中会购买房卡来...
秒懂教程!微信群牛牛房间买房卡... 牛牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:71319951许多玩家在游戏中会购买房卡来享受...
正版授权“金花房卡购买渠道,悠... 悠悠大厅是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:160470940许多玩家在游戏中会购买房卡...
秒懂教程!炸金花房间找谁买房卡... 炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:66336574许多玩家在游戏中会购买房卡来享...
ia实测“购买斗牛房卡联系方式... 神皇大厅是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:15984933许多玩家在游戏中会购买房卡来...
安卓的系统取消按键音,静享无干... 你知道吗?最近安卓系统来了一次小小的变革,那就是取消了按键音。这可真是让人眼前一亮啊!想象当你轻轻按...