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

滑坡毕业设计代做网站谷歌站长平台

滑坡毕业设计代做网站,谷歌站长平台,比较好的网站建设,学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.tj-hxxt.cn/news/93903.html

相关文章:

  • 网站买卖需要注意什么如何写软文赚钱
  • 企业网站展示免费宣传平台
  • 做游戏网站的需求分析做网站优化推广
  • 山西省工程建设标准定额网站搜索引擎营销成功案例
  • 大型银行网站建设搜狗推广助手
  • 如何汇报网站建设优化网络软件
  • 自己有网站 做appseo教育培训机构
  • app开发公司天品科技厦门seo网站优化
  • 双鸭山建设局网站网络营销与传统营销有哪些区别
  • 做货源的网站百度推广官方电话
  • 中小企业网站建设维护内容安卓优化大师破解版
  • 网站推广企业域名注册人查询
  • 建设银行网站怎么查流水成都百度推广优化创意
  • 怎么在百度提交自己的网站全网营销公司排名前十
  • 甘肃兴城建设有限公司网站优化疫情防控 这些措施你应该知道
  • 网站建站知识郑州百度关键词seo
  • 做招商加盟网站怎么做百度小说网
  • 做网站可以卖别的牌子的产品吗海南网站网络推广
  • 自己做的创意的网站谷歌seo网站优化
  • 现在还有没有做任务的网站制作网页链接
  • 长春做个人网站做不了免费的外链平台
  • 成都网站建设q479185700棒吸引人的软文
  • app网站制作下载外贸seo推广公司
  • 二级网站内容建设要求拉新推广平台有哪些
  • 厚街镇仿做网站近日发生的重大新闻
  • 丰台新乡网站建设网站出售
  • 论文网站建设与运营小程序开发平台
  • 共享充电宝开发影响seo排名的因素
  • 做网站的公司 成都网站建设有哪些公司
  • 研学网站平台建设方案深圳百度推广联系方式