基于百度AI的文字识别(Python语言)
简 介:百度大脑是百度 AI 核心技术引擎,包括视觉、语音、自然语言处理、知识图谱、深度学习等AI核心技术和AI开放平台。本文介绍百度 AI 核心技术中文字识别功能的使用方法。
关键词
:百度AI、文字识别、Python
§00 官方文档
若想详细学习百度 AI 核心技术引擎
,可参考下述链接:
- 百度大脑|百度AI开放平台
- 百度大脑|文档中心
- 百度大脑|新手指南
- 文字识别Python接口
§01 安装使用Python SDK
- 如果已安装pip,执行
pip install baidu-aip
即可。 - 如果已安装setuptools,执行
python setup.py install
即可。
▲ 图1.1 安装baidu-aip
§02 AipOcr
一、新建AipOcr
AipOcr是OCR的Python SDK客户端,为使用OCR的开发人员提供了一系列的交互方法。
参考如下代码新建一个AipOcr:
from aip import AipOcr""" 你的 APPID AK SK """
APP_ID = '你的 App ID'
API_KEY = '你的 Api Key'
SECRET_KEY = '你的 Secret Key'client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
在上面代码中,常量APP_ID
在百度智能云控制台中创建,常量API_KEY
与SECRET_KEY
是在创建完毕应用后,系统分配给用户的,均为字符串,用于标识用户,为访问做签名验证,可在AI服务控制台中的应用列表中查看。具体操作请查看 百度大脑|新手指南。
注意:如您以前是百度智能云的老用户,其中API_KEY
对应百度智能云的“Access Key ID”,SECRET_KEY
对应百度智能云的“Access Key Secret”。
二、配置AipOcr
如果用户需要配置AipOcr的网络请求参数(一般不需要配置),可以在构造AipOcr之后调用接口设置参数,目前只支持以下参数:
接口 | 说明 |
---|---|
setConnectionTimeoutInMillis
|
建立连接的超时时间(单位:毫秒) |
setSocketTimeoutInMillis
|
通过打开的连接传输数据的超时时间(单位:毫秒) |
§03 接口说明
详细介绍请查看文字识别接口说明,此处只对一些常用的功能(我用过的功能)简要介绍。
§04 问题汇总
一、识别失败
错误如下:Open api qps request limit reached
解决方法:
出现此错误说明要自己去 免费测试额度领取地址 领取免费的测试额度了!!!(或者你在你原来那个调用的那个项目里也可以找到免费领取测试额度,见下图)
▲ 图4.1 领取测试额度
领取完之后,还是用原来项目的appID
,apiKey
,secretKey
即可,然后等领取额度到账后,重新运行就行了。
§05 应用举例
一、识别图片中的文字
在CSDN上写文章时,有时需要将图片中的文字提取出来,此例可实现此功能。
1、导入相关函数库
from aip import AipOcr
import pyautogui
import clipboard
import requests
aip
:即本文中所介绍的百度AI库,baidu-aip
pyautogui
:Python自动化控制鼠标和键盘操作—— PyAutoGUIclipboard
:Python的跨平台剪贴板操作库requests
:一个常用的用于http请求的模块,本例用其进行网络图片的爬取,从而实现网络图片文字识别。此库的具体用法见 Requests: HTTP for Humans™
2、百度Aip初始配置
def AipOcrInitSet():APP_ID = '你的 App ID'API_KEY = '你的 Api Key'SECRET_KEY = '你的 Secret Key'return AipOcr(APPID, APPKEY, SECRETKEY)
APP_ID
,API_KEY
,SECRET_KEY
获取途径请查看 百度大脑|新手指南。
3、本地图片解析(用于本地图片文字识别)
def get_file_content(filePath):with open(filePath, 'rb') as fp:return fp.read()
4、网络图片解析(用于网络图片文字识别)
def getHTMLResponse(url):#import urllib3headers = {'User -Agent' : 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3314.0 Safari/537.36 SE 2.X MetaSr 1.0'}#proxy ={'http': '58.249.55.222:9797'} #proxies=proxy 代理try:#urllib3.disable_warnings()r = requests.get(url, headers=headers, verify=False)r.raise_for_status() r.encoding = r.apparent_encodingreturn rexcept:return ""
5、文字识别相关函数
# 通用文字识别(本地图片)
def basicGeneral(filePath, options={}):words = ''image = get_file_content(filePath)client = AipOcrInitSet()message = client.basicGeneral(image,options);for result in message['words_result']:words += result['words'] + '\n'return words# 通用文字识别(网络图片)
def basicGeneralUrl(Url, options={}):words = ''image = getHTMLResponse(Url).contentclient = AipOcrInitSet()message = client.basicGeneral(image,options);for result in message['words_result']:words += result['words'] + '\n'return words# 通用文字识别(高精度版)(本地图片)
def basicAccurate(filePath, mode='w', options={}):words = ''image = get_file_content(filePath)client = AipOcrInitSet()message = client.basicAccurate(image,options);for result in message['words_result']:words += result['words'] + '\n'return words# 通用文字识别(高精度版)(网络图片)
def basicAccurateUrl(Url, mode='w', options={}):words = ''image = getHTMLResponse(Url).contentclient = AipOcrInitSet()message = client.basicAccurate(image,options);for result in message['words_result']:words += result['words'] + '\n'return words
6、主程序
# 获取剪切板内容
clipboardstr = clipboard.paste()# 剪切板内容解析
if '![在这里插入图片描述](https:' in clipboardstr.strip():clipboardstr = clipboardstr.split('![在这里插入图片描述](')[1]clipboardstr = clipboardstr.split('.png')[0] + '.png'clipboardstr = 'u ' + clipboardstr# 命令、文本分离
clipboardstr = clipboardstr.strip()
cmdstr = clipboardstr.split()[0] # 命令行(决定输出格式)
txtstr = " ".join(clipboardstr.split()[1:]) # 文本# 百度aip初始配置
options = {}
options["language_type"] = "CHN_ENG"# 根据相应命令调用对应的百度aip
if cmdstr == 'u':Url = txtstrword = basicAccurateUrl(Url, options = options)
elif cmdstr == 'f':PicPath = txtstrword = basicAccurate(PicPath, options = options)
else:word = clipboardstr# 输出
clipboard.copy(word)
pyautogui.hotkey('alt', 'tab')
pyautogui.hotkey('ctrl', 'v')
基于百度AI的文字识别(Python语言)相关推荐
- python百度ai文字识别、不精确、进行处理_基于百度AI的文字识别-Python
from aip import AipOcr是报错 识别图形验证码:from aip import AipOcr 解决方法: 下载baidu-aip这个库,可以直接使用pip下载:pip instal ...
- python 百度ai批量识别_Python基于百度AI的文字识别的示例
Python基于百度AI的文字识别的示例 使用百度AI的文字识别库,做出的调用示例,其中filePath是图片的路径,可以自行传入一张带有文字的图片,进行识别. 下载baidu-aip这个库,可以直接 ...
- python 百度云文字识别 proxy_Python基于百度AI的文字识别的示例
Python基于百度AI的文字识别的示例 发布时间:2020-10-03 14:52:27 来源:脚本之家 阅读:66 使用百度AI的文字识别库,做出的调用示例,其中filePath是图片的路径,可以 ...
- 基于百度ai的文字识别
相关文字识别的技术文档如下: https://cloud.baidu.com/doc/OCR/OCR-Python-SDK.html#.E9.80.9A.E7.94.A8.E6.96.87.E5.AD ...
- python 利用百度AI实现文字识别(cv2 + aip module)
python 利用百度AI实现文字识别(cv2 + aip module) (该案例将利用cv2,aip等模块,详细的安装以及使用的方法将在后文进行简单的介绍.) 一.KNN算法的简介(机器学习算法之 ...
- Python基于百度AI的人脸识别系统--颜值检测
基于百度AI的人脸识别系统–颜值检测 刚开始学,觉得好玩就写了这个 主要是分为人脸识别系统的对接,UI的设计 人脸识别系统: 用的百度的AI,其中的AK,SK可以换成自己的,在百度开放平台上注册就能获 ...
- python百度ai文字识别、代码分析_python利用百度AI实现文字识别功能
本文为大家分享了python实现文字识别功能大全,供大家参考,具体内容如下 1.通用文字识别 # -*- coding: UTF-8 -*- from aip import AipOcr # 定义常量 ...
- python从入门到放弃表情图-[python从入门到放弃]基于百度OCR的文字识别
先申请百度OCR使用,百度OCR使用文档说明: https://cloud.baidu.com/doc/OCR/s/Rjwvxzm3n.按照文档安装百度aip库,命令行输入魔法如下:pip insta ...
- 基于百度AI实现 车牌识别
最近做一个需求,希望能通过车牌的图片识别出车牌号,听说百度AI功能挺完善的,本人就想着先做个demo出来验证一下识别的准确性. 1.首先我们要在百度智能云注册个账号. 地址:https://logi ...
最新文章
- 基于GAN的图像水印去除器,效果堪比PS高手
- supervisor 管理进程
- 摄像头光圈大小对景深的影响
- CSharpGL(42)借助帧缓存实现渲染到纹理(RenderToTexture)
- 《价值50亿的10句话》读后感(学生作业分享)
- 【树莓派编程】检测有没有物体移动 +人脸识别
- 从 Ubuntu 21.04 升级到 Ubuntu 21.10
- 【贯穿】.NET6结合Docker傻瓜式实现容器编排
- Jenkins+Maven+Gitlab+Tomcat 自动化构建打包、部署
- php的cms是什么意思,phpcms是什么系统
- php 后期绑定,PHP __DIR__评估运行时(后期绑定)?
- udf提权 udf.php,UDF提权
- (78)FPGA内部资源与FPGA开发流程-面试必问(二)(第16天)
- 【零基础学Java】—多线程(四十九)
- php 小米路由器_云水日记-捣鼓小米路由器开发版本
- 【图像加密】基于matlab DNA混沌系统图像加密【含Matlab源码 1190期】
- SUBMIT的几种情况
- not found for libcrypto
- linux steam大屏幕模式,Steam 大屏幕模式 - Steam Support
- Unity - Timeline 之 Timeline Setting(Timeline的设置)
热门文章
- 江苏三新供电公司-万千二三本院校电气毕业生的就业选择!
- 华为资深工程师为你深入讲解 Kubernetes及云原生应用
- 关于扩展ASCII码
- Win7/10下安装Bookdown教程
- html打开 选择您,教您Win10怎么打开html文件
- 20200820美团运维SRE一面面经(问题+答案)
- Python中3种引号的作用与区别
- lenovo ideapad500- a...拆解(拆后盖需先拆键盘)
- Idea 报错 statement or delimiter expected
- js中setAttribute用法详解