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

Keras+Flask手写数字识别Web应用

Keras+Flask手写数字识别Web应用

一个基于Keras深度学习框架和Flask Web框架的手写数字识别Web应用,使用MNIST数据集训练,可以识别用户手写的数字(0-9)。

项目概述

本项目实现了一个Web界面,用户可以在画板上手写数字,系统会实时识别并返回预测结果。后端使用Keras构建的卷积神经网络(CNN)模型,前端使用HTML5 Canvas实现手写板功能。

image

image

功能特点

  • 使用Keras构建的CNN模型进行手写数字识别
  • 基于Flask的Web界面,支持用户手写输入
  • HTML5 Canvas实现的手写板功能
  • 实时数字识别和结果展示
  • 使用Redis进行访问统计
  • 响应式设计,适配不同设备

技术栈

  • 后端

    • Flask:Web框架
    • TensorFlow/Keras:深度学习框架
    • Redis:访问统计和数据存储
  • 前端

    • HTML5 Canvas:手写板实现
    • jQuery:前端交互
    • Bootstrap:UI框架

模型架构

该项目使用了一个卷积神经网络(CNN)模型,具有以下结构:

  1. 第一组卷积层

    • 32个5x5卷积核,SAME填充,ReLU激活
    • 32个5x5卷积核,SAME填充,ReLU激活
    • 2x2最大池化
    • 25%的Dropout
  2. 第二组卷积层

    • 64个3x3卷积核,SAME填充,ReLU激活
    • 64个3x3卷积核,SAME填充,ReLU激活
    • 2x2最大池化,步长为2
    • 25%的Dropout
  3. 全连接层

    • Flatten层
    • 256个神经元,ReLU激活
    • 25%的Dropout
    • 10个神经元输出层,Softmax激活

模型在MNIST数据集上训练,准确率超过99%。

安装指南

前置要求

  • Python 3.7+
  • Redis

安装步骤

1 创建并激活虚拟环境:

python -m venv venv
source venv/bin/activate  # Linux/Mac
venv\Scripts\activate     # Windows
  1. 安装依赖:
pip install -r requirements.txt
  1. 确保Redis服务器正在运行

  2. 启动应用

python app.py
  1. 访问应用
    在浏览器中打开 http://localhost:5000

使用方法

  1. 在画布上用鼠标或触控笔绘制一个数字(0-9)
  2. 点击"识别"按钮提交图像进行识别
  3. 系统将显示识别结果和置信度
  4. 使用"清除"按钮重置画布

项目结构

keras_mnist-flask/
├── app.py                # Flask应用主文件
├── redis_util.py         # Redis工具函数
├── requirements.txt      # 项目依赖
├── model/
│   ├── model.json        # 模型架构
│   ├── model.keras       # 训练好的模型
│   ├── train.py          # 模型训练脚本
│   └── __init__.py
├── static/
│   ├── index.js          # 前端JavaScript
│   └── jquery-3.2.0.min.js
└── templates/└── index.html        # 前端HTML模板

API接口

识别手写数字

  • URL: /api/mnist
  • 方法: POST
  • 请求体:
    {"image": "base64编码的图像数据"
    }
    
  • 响应:
    {"code": 0,"data": {"num": "预测的数字","probability": "置信度"}
    }
    

获取访问统计

  • URL: /api/visit
  • 方法: GET
  • 响应:
    {"code": 0,"data": {"all": "总访问次数","today": "今日访问次数"}
    }
    

自定义配置

Redis配置

redis_util.py文件中修改Redis连接配置:

REDIS_HOST = "127.0.0.1"  # Redis服务器地址
REDIS_PASSWORD = ""       # Redis密码,为空表示无密码

服务器配置

app.py文件中修改Flask服务器配置:

if __name__ == '__main__':app.run(host='0.0.0.0', port=5000, debug=True)

训练自己的模型

如果你想重新训练模型,可以运行:

cd model
python train.py

训练完成后,模型将保存在model目录中。

项目地址:https://github.com/yizhishiliu/keras_mnist-flask


文章转载自:

http://C7GubA9y.hncrc.cn
http://gYjzspBC.hncrc.cn
http://MMMvVbtO.hncrc.cn
http://fwGEJzIW.hncrc.cn
http://oD2HjXvE.hncrc.cn
http://aa6Cj6AW.hncrc.cn
http://XDIC0OAH.hncrc.cn
http://IzOjl6bs.hncrc.cn
http://Ha8iG3PM.hncrc.cn
http://EGIqzoTa.hncrc.cn
http://dzqDxMmO.hncrc.cn
http://nuodV2uc.hncrc.cn
http://QeEqfze2.hncrc.cn
http://MHqblELk.hncrc.cn
http://C8faygVx.hncrc.cn
http://CNewPjiL.hncrc.cn
http://kcuhBE5p.hncrc.cn
http://RXMCagYc.hncrc.cn
http://Ib1TNZi8.hncrc.cn
http://of9fClHD.hncrc.cn
http://8Lro2g32.hncrc.cn
http://NhpZFY8h.hncrc.cn
http://DTXMCcrI.hncrc.cn
http://NbdZ6Umk.hncrc.cn
http://NDhNp1ov.hncrc.cn
http://PNr0Xlus.hncrc.cn
http://gskx7UWW.hncrc.cn
http://dhzDQukl.hncrc.cn
http://oKb8j3z4.hncrc.cn
http://36ZkwyXw.hncrc.cn
http://www.dtcms.com/a/386966.html

相关文章:

  • PPTist+cpolar:开源演示文稿的远程创作方案
  • Chapter8—组合模式
  • vmware的ub系统长时间不动会黑屏
  • 从0到1打造一个能上传任意GeoJSON的交互式Web地图
  • 深入理解数据结构之复杂度
  • Silicon EFR32xG22 CMU
  • 运维面试笔记(持续补充版)
  • 托福阅读35-1
  • qt QCandlestickSet详解
  • 在Linux和Windows系统下使用Qt监测U盘的插拔事件
  • 文字识别接口的应用场景-发票识别接口-OCR API
  • 鸿蒙NEXT ArkWeb同层渲染:原生与Web的完美融合
  • 基于springboot的4s店汽车销售服务系统
  • ARM芯片的调试访问端口 DAP(Debug Access Port)
  • 减少推导式中的重复计算:赋值表达式(:=)的优雅应用 (Effective Python 第29条)
  • 空压机远程控制与数据采集的御控物联网解决方案
  • 瑞萨MCU RA4M1 FLASH锁死问题记录
  • Kubernetes 调度器(Scheduler)
  • Java设计模型-责任链模式
  • Linux 服务器安全优化:firewalld SSH 限制 白名单与 SCP 服务禁用流程
  • bisheng 智能体
  • 学完Python之后我写了一个免费看电影的软件
  • 【ROS2】Concept(Advanced )
  • Apifox自动化测试场景设计
  • 知识复用缺乏跨角色适配该如何改善
  • XML 与 YML 全方位对比:从语法到应用场景
  • pandas方法集
  • PAT乙级_1106 2019数列_Python_AC解法_含疑难点
  • 自动检测并交互删除未使用 Docker 自定义网桥
  • 物联网卡相关知识