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

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库来实现【三个卷积层+三个池化层+两个全连接层】的卷积神经网络,结构如下图所示:

 

训练图片都修整成64x64大小,这里我只训练常见的3755个汉字,在CNN识别数字的模型结构上再添加了一个卷积层和池化层,其他结构差不多。

将下载好的HWDB数据集解压处理好开始训练,这个训练过程比较长,我最终在GPU:GTX1050Ti上迭代了12,000次花费几个小时,最终取最可能的前三个预测值。

三、加载模型和环境

我训练模型迭代了12,000次之后,将训练参数保存在checkpoint文件夹中,不过因为单个文件大小的限制,训练好的模型文件从百度云上下载,下载之后直接覆盖checkpoint文件夹。

python 3.6.1;

pipenv *;

flask 0.12.2;

tensorflow 1.3.0;

pillow 4.2.1;

pickleshare 0.7.4;

numpy 1.13.1;

五、运行

1、下载项目,先安装python3.0和pipenv,然后 pipenv install --three;

2、从百度云下载训练好的模型文件,放到相应的checkpoint文件夹下;

3、使用pipenv run python3 run.py运行;

4、打开本地浏览器输入localhost:5000进行查看;

 


http://www.mrgr.cn/news/62368.html

相关文章:

  • 每天10个vue面试题(四)
  • 计算机网络:网络层 —— IPv4 协议的表示方法及其编址方法
  • ViSual studio如何安装 并使用GeographicLib
  • 02.02、返回倒数第 k 个节点
  • 基于vue框架的的家政预定服务系统4k26i(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。
  • react18中react-thunk实现公共数据仓库的异步操作
  • 返回数组中元素的数据类型numpy.dtype.name
  • 四季皆宜的网球场:气膜网球馆改造方案—轻空间
  • 刘艳兵-DBA016-在您的数据库中,SALES表存在于SH用户中,并且启用了统一审计。作为DBA,您成功执行了以下指令:
  • Spring Boot 配置文件详解与最佳实践
  • 第15天预编译
  • 组合两个表
  • 计算机组成原理之选择结构语句的机器级别表示
  • HTTPS对中间人真就束手就擒了?
  • NFT、加密货币和区块链将如何在某一天共同推动Web3
  • 基于 ThinkPHP+Mysql灵活用工_灵活用工系统_灵活用工平台
  • 什么样的工程项目管理软件适合中小施工企业?
  • 最小期望风险估计
  • Python中的命名规则是什么?
  • 2020年下半年网络规划设计师上午真题及答案解析
  • 前端如何检测用户登录状态是否过期?
  • 跟着小土堆学习pytorch(六)——神经网络的基本骨架(nn.model)
  • 百度搜索引擎的工作原理
  • linux下的进程,fork、exec函数族简介
  • 如何查看磁盘的类型?(固态硬盘 or 机械硬盘)
  • 【大模型之Graph RAG系列之一】由谷歌搜索的演进看知识图谱如何改进RAG技术