步骤流程

  • 1、环境配置
    • 获取百度SDK
  • 2、具体实现步骤
    • ①获取access_token
    • ②手写字体识别
    • ③成果展示

1、环境配置

程序整体是由python实现的,环境所包含的第三方库有requests、json、base64、pyinstaller。没有这些库的同学可以win+R输入cmd进入命令行终端pip install 库名。

获取百度SDK

浏览器搜索百度云,如未注册请先注册,然后登录点击管理控制台。点击左侧产品服务→人工智能→文字识别。点击创建应用,输入应用名称如“Baidu_OCR”,选择用途如“学习办公”,最后进行简单应用描述,即可点击“立即创建”。会出现应用列表,包括AppID、API Key、Secret Key等信息,这些稍后会用到。

2、具体实现步骤

①获取access_token

这里我们用requests获取并返回access_token.方法如下:

  • grant_type: 必须参数,固定为client_credentials;
  • client_id: 必须参数,应用的API Key;
  • client_secret: 必须参数,应用的Secret Key;
 def get_access():host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=【官网获取的AK】&client_secret=【官网获取的SK】'response = requests.get(host)if response:#dict = json.loads()dict = response.json();#print(dict['access_token'])return dict['access_token']

``

②手写字体识别

下面我们定义了一个函数,参数为所要识别图片的绝对目录。注意:图片方向必须是正向,否则识别不出来。

 def write_font(filename):'''手写文字识别'''request_url = "https://aip.baidubce.com/rest/2.0/ocr/v1/handwriting"f = open(filename, 'rb')img = base64.b64encode(f.read())print('正在识别...')params = {"image":img}access_token = get_access()request_url = request_url + "?access_token=" + access_tokenheaders = {'content-type': 'application/x-www-form-urlencoded'}response = requests.post(request_url, data=params, headers=headers)if response:text = response.json()content = text['words_result']for item in content:print(item['words'])

③成果展示

这是手写体(字体马马虎虎)

识别效果:

最后附上源码:

import requests
import json
import base64
# client_id 为官网获取的AK, client_secret 为官网获取的SKdef get_access():host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=【官网获取的AK】&client_secret=【官网获取的SK】'response = requests.get(host)if response:#dict = json.loads()dict = response.json();#print(dict['access_token'])#返回access_tokenreturn dict['access_token']def write_font(filename):'''手写文字识别'''request_url = "https://aip.baidubce.com/rest/2.0/ocr/v1/handwriting"f = open(filename, 'rb')img = base64.b64encode(f.read())print('正在识别...')params = {"image":img}#调用get_access函数,获取tokneaccess_token = get_access()request_url = request_url + "?access_token=" + access_tokenheaders = {'content-type': 'application/x-www-form-urlencoded'}response = requests.post(request_url, data=params, headers=headers)if response:text = response.json()content = text['words_result']for item in content:print(item['words'])if __name__ == '__main__':while True:filename= input('请输入您的图片位置(按Q退出):')if(filename == 'q' or filename == 'Q'):breakwrite_font(filename)print('识别完成!!!')print('按Q退出!')

实现手写字体识别(90%的识别率)相关推荐

  1. 手写字体的fisher算法识别

    代表了一些投影的方法 最佳W值的确定: 最佳w值的确定实际上就是对Fisher准则函数求取其达极大值时的. 对于这个问题可以采用拉格朗日乘子算法解决,保持分母为一非零常数c的条件下,求其分子项的极大值 ...

  2. 人工智能入门第一课:手写字体识别及可视化项目(手写画板)(mnist)

    人工智能入门第一课:手写字体识别及可视化项目(手写画板)(mnist),使用技术(Django+js+tensorflow+html+bootstrap+inspinia框架) 直接上图,项目效果 1 ...

  3. java识别手写文字_神经网络入门 第6章 识别手写字体

    前言 神经网络是一种很特别的解决问题的方法.本书将用最简单易懂的方式与读者一起从最简单开始,一步一步深入了解神经网络的基础算法.本书将尽量避开让人望而生畏的名词和数学概念,通过构造可以运行的Java程 ...

  4. linux手写数字识别,OpenCV 3.0中的SVM训练 mnist 手写字体识别

    前言: SVM(支持向量机)一种训练分类器的学习方法 mnist 是一个手写字体图像数据库,训练样本有60000个,测试样本有10000个 LibSVM 一个常用的SVM框架 OpenCV3.0 中的 ...

  5. 【Paddle打比赛】手写字体OCR识别竞赛baseline

    世界人工智能创新大赛AIWIN手写字体OCR识别竞赛任务一baseline方案(基于paddle的实现) 本项目使用飞桨实现世界人工智能创新大赛AIWIN[手写字体OCR识别竞赛]任务的baselin ...

  6. 【Paddle打比赛】AIWIN手写字体OCR识别竞赛任务一优化方案

    世界人工智能创新大赛AIWIN手写字体OCR识别竞赛任务一优化方案 一.竞赛介绍 2021世界人工智能创新大赛(AIWIN),由世界人工智能大会组委会主办,AI SPACE承办,是全球范围内初具影响力 ...

  7. 识别手写字体app_我如何构建手写识别器并将其运送到App Store

    识别手写字体app 从构建卷积神经网络到将OCR部署到iOS (From constructing a Convolutional Neural Network to deploying an OCR ...

  8. 基于kNN的手写字体识别——《机器学习实战》笔记

    看完一节<机器学习实战>,算是踏入ML的大门了吧!这里就详细讲一下一个demo:使用kNN算法实现手写字体的简单识别 kNN 先简单介绍一下kNN,就是所谓的K-近邻算法: [作用原理]: ...

  9. pytorch CNN手写字体识别

    ## """CNN手写字体识别"""import torch import torch.nn as nn from torch.autogr ...

最新文章

  1. 关于numy中np.expand_dims方法的理解?
  2. number类型的数组
  3. 连接wifi的主机设置静态ip(固定ip)后无法上网的原因
  4. 【蓝桥杯省赛】冲刺练习题【循环】倒计时【15】天
  5. MFC视图切换大全总结
  6. animate 实现滑动切换效果
  7. cv曲线面积的意义_几何直觉的魅力:sinx曲线下的面积原理是如此的美妙
  8. mac 安装和使用MongoDB
  9. 任意线段集生成多边形_self-attention缺失文本生成||Text Infilling
  10. (1)、win10 本地 安装 rabbitmq
  11. linux系统中看视频,怎么在linux里看视频啊?
  12. 圆通快递单css样式
  13. 趋势客户端修改服务器地址,趋势杀毒软件服务器端更改ip
  14. C# winform 魔兽MH全图制作教程(1): 开发准备工作
  15. AXI 基础第 4 讲 - 使用 AXI VIP 作为 AXI4 主接口的协议检查工具
  16. Tkinter(二) | 点击按钮显示图片
  17. UML相关工具一览(2018年5月更新)
  18. docker配置redis
  19. ArcGIS创建企业级地理数据库
  20. MIT 操作系统 jos make grade出现no jos.out

热门文章

  1. 《Essential C++》系列笔记之“传送门”(未完结)
  2. 如果回到十八岁,我要对自己说...... .
  3. PCB电路板的SMT贴片加工:(PCBA)的制造工艺
  4. Unity游戏Hit UFO实现
  5. Q345qE钢板价格.Q345qD桥梁板价格.Q345qC价格都多少.区别多大
  6. 快手小店怎么引流?快手怎么做店铺引流?
  7. Ubuntu系统下搭建Redmine项目管理系统详细说明(包括配置apache服务器)(一)搭建本地Redmine
  8. 优思学院:PMP和六西格玛黑带必需知道的”关键路径方法CPM”
  9. DiskGenius(磁盘修复工具)官方版
  10. MTK在编译10A的target时报错:make: *** [mmi_feature_check]