0-9数字CNN识别项目

1.准备好一定数量的图片并做好标记。图片名称不要使用中文字符,并按照一定的顺序进行命名。如果图片来自不同渠道,可以网上搜索一段重名名图片集的代码,运行一下即可。本图片是将几种字体的数字打印在纸张上,利用相机进行拍照所得。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2.新建一个python工程,将样本集导入。
在这里插入图片描述

import os
import cv2
path = 'myData'
myList = os.listdir(path)
print("Total Num of Classes Detected", len(myList))
numOfClasses = len(myList)  # 类型总数
print("Importing Classes......")
img = []  # 用于存储图片
classNum = []  # 存储图片对应的class
for x in range(numOfClasses):  # 按照索引循环
    myPicList = os.listdir(path + "/" + "images" + str(x))  # 获取myDate中每一个class下的图片,返回值为图片的列表
    for y in myPicList:  # 按照列表内容名称顺序循环
        curImg = cv2.imread(path + "/" + "images" + str(x) + "/" + y)  # 遍历文件下的每一张图片
        curImg = cv2.resize(curImg, (imageDimension[0], imageDimension[1]))  # resize图片大小,图片太大会影响神经网络训练
        img.append(curImg)  # 将当前图片添加到img列表中
        classNum.append(x)  # 将当前图片的class存入
    print(x, end=" ")  # 将打印为一行
print(" ")
images = np.array(img)
classNo = np.array(classNum)
print(images.shape)
print(classNo.shape)
print("Successfully Read Data")

3.分割数据集为test_data(20%), validation_data(20%), train_data(60%)。具体为什么分割,有什么意义见训练集(train set) 验证集(validation set) 测试集(test set)

print("Splitting Data......")
# 测试集的比例
testRatio = 0.2
# 验证集的比例
validationRatio = 0.3
from sklearn.model_selection import train_test_split      利用skLearn中的工具包数据预处理
x_train, x_test, y_train, y_test = train_test_split(images, classNo, test_size=testRatio)
x_train, x_validation, y_train, y_validation = train_test_split(x_train, y_train, test_size=validationRatio)
print("x训练集", x_train.shape, end=" ")
print("x验证集", x_validation.shape
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值