背景
综合项目实践课要求做一个可以在手机浏览器里手写数字,然后识别该数字的web应用程序,本博客对思路和使用的主要组件进行说明。
在线演示地址 http://120.79.74.49:8892/
概览
整个项目包括
- 前端界面
- 常规html组件
- canvas画布
- websocket通信发送端
- 后端
- 网络中间件
- 后端逻辑
- websockt通信接收端
- tensorflow模型
- train好的model
- 用于predict的接口
- 部署至公网服务器
前端界面
常规html组件
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