file

既然要开始学python

(面向对象)Object-oriented

前面又装好了tensorflow环境

那么当然少不了用于练习的demo了

上网查了下找到了这个:https://github.com/taosir/cnn_handwritten_chinese_recognition

原理:

 使用python+flask搭建的一个网站,然后从网页的写字板上获取鼠标手写的汉字经过转码后传回后台,并经过图片裁剪处理之后传入CNN手写中文识别的模型中进行识别,最后通过PIL将识别结果生成图片,最后异步回传给web端进行识别结果展示。中文总共50,000多汉字,常用的有3,755个。这里主要对常见的3755个汉字进行识别。

数据集

  目前国内有很多优秀的中文手写识别数据集。例如:北京邮电大学模式识别实验室发布的数据(HCL2000),它是目前最大的脱机手写汉字库,共有1,000个人书写,除了汉字样本库外,还有一个对应的书写者信息库,记录了书写者的年龄、职业、文化程度等信息,用于研究相关影响因素。目前此数据库免费向研究者公开。本文使用的是中科院自动研究所的分享的中文手写数据集CASIA-HWDB(下载地址http://www.nlpr.ia.ac.cn/databases/handwriting/Home.html ),由187个人通过Wacom笔在线输入的手写汉字。

CNN结构:

file

训练图片都修整成64x64大小,作者最终在GPU:GTX1050Ti上迭代了12,000次花费几个小时,最终取最可能的前三个预测值,好像扩充数据集后煤气灶都不够烧。

加载模型

作者也提供了百度云的链接: https://pan.baidu.com/s/1eSWBIyI 密码: kv2r
下载之后直接覆盖checkpoint文件夹。

环境

其实全用最新版也行
  • python 3.6.1;
  • flask 0.12.2;
  • tensorflow 1.3.0;
  • pillow 4.2.1;
  • pickleshare 0.7.4;
  • numpy 1.13.1;

运行

覆盖好模型

在虚拟环境下

git clone https://github.com/taosir/cnn_handwritten_chinese_recognition

cd cnn_handwritten_chinese_recognition

pip install * #从flask开始安装


vim run.py #修改下端口或者



#!flask/bin/python


from app import app

app.run(debug=True,host='最好是直接写当前pc的本机ip',port=不被占用的某个端口)
运行成功在同wifi路由下打开手机浏览器输入对应的ip和端口。

大概效果如下: file