当前位置: 首页 > news >正文

郑州做装饰的网站php多平台商城网站系统建设

郑州做装饰的网站,php多平台商城网站系统建设,济南 网站建设,绩溪建设银行网站模型训练识别手写数字(一)使用手写数字图像进行模型测试 一、生成手写数字图像 1. 导入所需库 import cv2 import numpy as np import oscv2用于计算机视觉操作。 numpy用于处理数组和图像数据。 os用于文件和目录操作。 2. 初始化画布 canvas np.z…

模型训练识别手写数字(一)使用手写数字图像进行模型测试

一、生成手写数字图像

1. 导入所需库

import cv2
import numpy as np
import os

cv2用于计算机视觉操作。

numpy用于处理数组和图像数据。

os用于文件和目录操作。

2. 初始化画布

canvas = np.zeros((280, 280), dtype="uint8")

创建一个280x280的黑色画布(值为0表示黑色)。 

 3. 鼠标回调函数

def draw(event, x, y, flags, param):if event == cv2.EVENT_MOUSEMOVE and flags == cv2.EVENT_FLAG_LBUTTON:cv2.circle(canvas, (x, y), 5, 255, -1)

draw函数在鼠标移动时绘制白色圆点(值为255)到画布上。圆点的半径为5像素。 

 4. 创建窗口并设置回调

cv2.namedWindow("Canvas")
cv2.setMouseCallback("Canvas", draw)

创建一个名为“Canvas”的窗口,并设置鼠标回调函数。 

  5. 主循环

while True:cv2.imshow("Canvas", canvas)key = cv2.waitKey(1) & 0xFF

不断显示画布,等待用户输入。 

   6. 处理用户输入

if key == ord('c'):canvas = np.zeros((280, 280), dtype="uint8")
elif key == ord('q'):break

按 'c' 键清空画布,按 'q' 键退出循环。 

    7. 保存图像目录

save_dir = "Data"
if not os.path.exists(save_dir):os.makedirs(save_dir)

检查并创建保存图像的目录。 

     8. 保存图像文件

save_path = os.path.join(save_dir, "handwritten_digit.png")
if cv2.imwrite(save_path, canvas):print(f"Image saved successfully at {save_path}")
else:print("Failed to save image.")

将画布保存为PNG文件,并输出保存状态。 

  9. 关闭窗口 

cv2.destroyAllWindows()

关闭所有OpenCV窗口。 

二、调用训练的模型进行测试

1. 导入所需库

import cv2
import matplotlib.pyplot as plt
import numpy as np
from keras.api.models import load_model

cv2用于图像处理。

matplotlib.pyplot用于可视化结果。

numpy用于数值计算。

load_model用于加载训练好的Keras模型。

2. 加载训练的模型 

model = load_model("my_model.h5")

从文件中加载训练好的模型。

 3. 加载手写数字图像

original_img = cv2.imread("Data/handwritten_digit.png", cv2.IMREAD_GRAYSCALE)

读取手写数字图像,并以灰度模式加载。 

 4. 处理图像用于预测 

img = cv2.resize(original_img, (28, 28))  # 调整为28x28大小
img = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY_INV)[1]  # 二值化
img = img.astype('float32') / 255  # 归一化

 将图像调整为28x28像素,这是模型所需的输入尺寸。

使用阈值处理将图像二值化(黑白),并将背景设置为白色,手写数字为黑色。

将图像数据归一化到[0, 1]范围。

  5. 调整图像形状以便于预测

img = img.flatten()  # 展平为一维数组
img = img.reshape(1, 784)  # 调整形状为 (1, 784)

将28x28的图像展平为784个像素值的单行数组,以适应模型的输入格式。 

6. 进行预测

predictions = model.predict(img)
predicted_class = np.argmax(predictions, axis=1)

 7. 可视化预测结果

plt.figure(figsize=(6, 6))# 显示原图
plt.imshow(original_img, cmap='gray', aspect='equal')  # 使用原始图像
plt.title(f'Predicted: {predicted_class[0]}', fontsize=14)
plt.axis('off')plt.tight_layout()
plt.show()

创建一个图形窗口,并显示原始图像。

在标题中显示模型预测的类别。

使用tight_layout()优化图形布局,并显示图形。

手写8,预测却是2;说明模型在训练集上表现良好,但在测试却表现差。

目前使用的是一个全连接神经网络(Feedforward Neural Network)。这个网络的结构通常包括以下几个部分:

  1. 输入层:接受输入数据,例如在你的例子中是手写数字的像素值。
  2. 隐藏层:通过全连接的方式进行计算,使用激活函数(如 ReLU)引入非线性。
  3. 输出层:生成预测结果,通常使用 softmax 激活函数进行分类。

全连接神经网络在处理图像时通常需要将输入图像展平(flatten),这可能导致对空间特征的捕捉不够有效,因此卷积神经网络(CNN)更适合图像数据,因为它们能够利用卷积层自动提取空间特征,从而提高分类性能。

http://www.15wanjia.com/news/178504.html

相关文章:

  • 物流网站首页图片电子科技网站
  • 网站建设人力成本费用wordpress要发表评论您必须先登录
  • 资讯网站开发的背景wordpress评论不要地址邮箱
  • 企业网站推广方法有哪些?精品课程网站建设开题报告
  • 商业机构的网站是什么做网站目的
  • 如何区分官方网站和空壳网站网上推广方式
  • 网站购物车功能室内设计专业个人简历
  • 玉溪网站开发公司sem营销推广
  • 网站推广引流软件上海企业服务公司
  • 网站遇到攻击时应该怎么做wordpress缩略图支持外链图
  • 网站制作建设需求嘉兴网站制作报价
  • 有关做有机肥的企业网站莱芜拉呱
  • 忻州市中小企业局网站h5设计制作是什么意思
  • wordpress好玩的插件关键词排名优化外包
  • 大连哪家做网站比较好竹制品网站怎么做
  • 旅游手机网站模板湖北网站建设公司排名
  • app 网站 同时做能免费观看所有电视剧的app
  • 湖北省住房和城乡建设厅官方网站什么网站比谷歌还好
  • 学校建设网站的作用西安苗木行业网站建设价格
  • 做企业网站哪个平台好wordpress content
  • 网站建设的作用邵阳市城乡建设厅网站
  • 番禺区大石做网站无锡网站设计多少钱
  • 北京市工程建设信息交易网站在网站上做支付功能 需要什么
  • 做动态效果的网站wordpress阅读权限插件
  • 网站直播怎样做安徽今天的新消息
  • 网站底部怎么做需要放些什么单页营销式网站模板
  • 坪山网站建设哪家好建筑工程招聘最新信息平台
  • 导航站 wordpress高端网站建设wanghess
  • 一个网站是如何建设神兵网站建设
  • 山西建设官方网站宁波seo网络推广定制