python+flask搭建CNN在线识别手写中文网站
使用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结构:
用tensorflow
库来实现【三个卷积层+三个池化层+两个全连接层】的卷积神经网络,结构如下图所示:
GPU:GTX1050Ti
上迭代了12,000次花费几个小时,最终取最可能的前三个预测值 三、加载模型
我训练模型迭代了12,000次之后,将训练参数保存在checkpoint
文件夹中,不过因为单个文件大小的限制,训练好的模型文件从百度云上下载:
链接: 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;
五、运行
1、克隆项目,然后按照环境要求安装好相应的库(使用pip
安装);
2、从百度云下载训练好的模型文件,放到相应的checkpoint
文件夹下;
3、使用python run.py
运行;
4、打开本地浏览器输入localhost:5000
进行查看;
原文发布时间为:2018-10-14
本文来自云栖社区合作伙伴“大数据挖掘DT机器学习 ”,了解相关信息可以关注“大数据挖掘DT机器学习 ”。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Spring Cloud 2.x系列之springboot集成freemarker
SVN多版本库环境的搭建 OAuth 2.0是什么?看这篇文章就够了。 前端 Java Python等资源合集大放送 springboot中自带的页面渲染工具为thymeleaf,freemarker这种模板引擎用的也比较多。 一、在spring中springMVC代表着view层组件 二、为什么使用freemarker:简单容易学、逻辑分明 三、freemarker优点:不依赖servlet、网络或者web环境 1、新建maven项目,对应的pom.xml文件如下 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <gro...
- 下一篇
自动装箱
自动装箱 这半年多的项目每天都挺忙的不停的讨论需求、写代码、该需求、改代码,每天都是业务逻辑,令人头大.这个月项目上线了准备看几本书深造下顺便写点博客,梳理下思路.原力在沸腾! 基本原理网上找的,解释的很详细 补充在使用自动装箱和拆箱需要注意 Long sum = 0L; for (long i = 0; i < Integer.MAX_VALUE; i++) { sum += 1; } System.out.println(sum); 这段程序算出的答案是正确的,但是比实际情况要更慢一些,只因为打错了一个字符.变量sum被声明为了Long而不是long,意味着程序构造了大约2^31个多余的Long实例(大约每次往Long sum中增加long时构造一个实例). 要优先使用基本类型而不是装箱基本类型,要当心无意识的自动装箱的
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Linux系统CentOS6、CentOS7手动修改IP地址