手写数字识别系统

Posted by tianhaoo on April 5, 2019 本文阅读量

背景

综合项目实践课要求做一个可以在手机浏览器里手写数字,然后识别该数字的web应用程序,本博客对思路和使用的主要组件进行说明。

在线演示地址 http://120.79.74.49:8892/

概览

整个项目包括

  • 前端界面
    • 常规html组件
    • canvas画布
    • websocket通信发送端
  • 后端
    • 网络中间件
    • 后端逻辑
    • websockt通信接收端
  • tensorflow模型
    • train好的model
    • 用于predict的接口
  • 部署至公网服务器

前端界面

常规html组件

采用bootstrapjquery进行界面的布局和美化

canvas画布

采用开源canvas组件

https://github.com/Leimi/drawingboard.js

websocket通信发送端

https://github.com/gimite/web-socket-js

后端

网络中间件

由于这是一个小项目,所以从易用性出发采用自带中间件的tornado作为后端

后端逻辑

简单的分成建立连接–>接受用户发来的图片–>预处理–>预测–>返回给用户结果

websockt通信接收端

tornado自带的webdocket类

tensorflow模型

识别手写数字的准确率已经被优化到了99%以上,本项目采用lenet的方式

可以参考该文章 https://blog.csdn.net/gaoyueace/article/details/79189609