声明:
以下内容为本人原创,仅供用于参考学习
禁止用于商业及违法用途
·作者:@Yhen
·原文网站:CSDN
·原文链接:https://blog.csdn.net/Yhen1/article/details/109412552
转载请说明此出处,侵权必究!谢谢合作!
2021.09.22更新
好消息好消息!我发现百度智能云现在可以免费体验云服务器啦
领取流程可以参考这篇文章哦
「云服务器」白嫖3个月百度智能云4M60G云服务器
在上一篇文章
《Yhen手把手带你使用百度智能云①----项目的创建》中我介绍到了如何在百度AI开放平台中创建一个项目来使用百度智能云提供给我们的接口
url:https://blog.csdn.net/Yhen1/article/details/109409575
而这篇文章我将介绍如何使用百度智能云的接口来进行文字识别
首先进入百度文字识别官网
url :https://ai.baidu.com/tech/ocr/general
点击立即使用
登录成功后
下拉找到可用服务列表
这里面涵盖了所有百度提供给我们的文字识别接口以及每个接口的可调用量
可以看到 功能是十分齐全和丰富的
而且非常良心的是 这些接口只要在不超过限额的情况下 都是可以免费使用的
而提供的限额已经完全可以满足我们的日常需要
ok,了解到了它功能之丰富
下面就来看看如何使用它们
下面的篇幅我将对以下热门接口进行演示以及对比分析
①通用文字识别
②高精度文字识别
③文字识别(含位置版)
④网络文字识别
⑤身份证文字识别
⑥车牌识别
⑦银行卡文字识别
首先在导航栏中点击“管理应用”
找到创建的项目的APP ID,API Key和Secret Key(点击显示即会显示)
并且记录下来
然后依次点击
“SDK文档”—>“Python语言”—>“快速入门”
然后按照文档的提示操作
①首先按照baidu-aip 在终端输入pip install baidu-aip 即可
②将下面的代码复制下来,并将刚刚记录下来的APP ID,API Key和Secret Key 填入代码中
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)
然后回到技术文档中
点击接口说明
找到通用文字识别
并将下面的代码复制
""" 读取图片 """
def get_file_content(filePath):
with open(filePath, 'rb') as fp:
return fp.read()
image = get_file_content('example.jpg')
""" 调用通用文字识别, 图片参数为本地图片 """
client.basicGeneral(image);
""" 如果有可选参数 """
options = {}
options["language_type"] = "CHN_ENG"
options["detect_direction"] = "true"
options["detect_language"] = "true"
options["probability"] = "true"
""" 带参数调用通用文字识别, 图片参数为本地图片 """
client.basicGeneral(image, options)
url = "https//www.x.com/sample.jpg"
""" 调用通用文字识别, 图片参数为远程url图片 """
client.basicGeneralUrl(url);
""" 如果有可选参数 """
options = {}
options["language_type"] = "CHN_ENG"
options["detect_direction"] = "true"
options["detect_language"] = "true"
options["probability"] = "true"
""" 带参数调用通用文字识别, 图片参数为远程url图片 """
client.basicGeneralUrl(url, options)
上面的代码太多,可能看的有点懵
其实很参数默认即可,我将它简化一下
""" 读取图片 """
def get_file_content(filePath):
with open(filePath, 'rb') as fp:
return fp.read()
image = get_file_content('example.jpg')
""" 调用通用文字识别, 图片参数为本地图片 """
client.basicGeneral(image)
url = "https//www.x.com/sample.jpg"
""" 调用通用文字识别, 图片参数为远程url图片 """
client.basicGeneralUrl(url)
我在原有的代码中添加了While True循环增加了可用性
完整代码
from aip import AipOcr
while True:
img_path=input('请输入图片所在的路径(输入"q"后按回车键即可退出):')
if img_path=='q':
break
else:
""" 你的 APPID AK SK """
APP_ID = ''
API_KEY = ''
SECRET_KEY = ''
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
""" 读取图片 """
def get_file_content(filePath):
with open(filePath, 'rb') as fp:
return fp.read()
image = get_file_content(img_path)
""" 调用通用文字识别, 图片参数为本地图片 """
# 通用版
word=client.basicGeneral(image)
我以下面这一张图为例演示以下这段代码
识别结果:
返回给我们的是一个字典,里面包含了识别出来的文字结果和一些其他的数据
官方文档中也给我们提供了返回数据的说明
但是我们一般只需要知道识别出来的结果即可
所以我循环遍历将识别的文字结果取出
# 通用版
word=client.basicGeneral(image)
str =word['words_result']
for x in str:
print(x['words'])
程序运行的结果如下:
可以看到
大部分的文字都是可以识别出来的
但是对英文的识别似乎不是很灵敏 有的单词就缺少了字母
识别结果:
也是可以识别出大部分单词的
但是看起来似乎还是有点别扭
有些单词的大写并没有识别出来
接下来看看高精度文字识别的表现
实现高精度文字识别也很简单
只需要修改通用文字识别的一条代码即可
将“client.basicGeneral(image)”修改成client.basicAccurate(image)
from aip import AipOcr
while True:
img_path=input('请输入图片所在的路径:(输入"q"后按回车键即可退出)')
if img_path=='q':
break
else:
""" 你的 APPID AK SK """
APP_ID = ''
API_KEY = ''
SECRET_KEY = ''
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
""" 读取图片 """
def get_file_content(filePath):
with open(filePath, 'rb') as fp:
return fp.read()
image = get_file_content(img_path)
""" 调用通用文字识别, 图片参数为本地图片 """
# 高精度版
word=client.basicAccurate(image)
str =word['words_result']
for x in str:
print(x['words'])
我再次识别这张文字图片
识别结果:
很明显这次的识别结果要比通用文字识别要好得多
完美的把所有的文字都识别了出来
这次我换了一张文字较多的图片进行测试
识别结果:
也是可以完全识别出来的
再来测试一下英文页面
识别出来的结果也要比通用版的要好的多
看来高精度版果然不是浪得虚名的啊!
文字识别(含位置版)也只需要修改一条代码
from aip import AipOcr
while True:
img_path=input('请输入图片所在的路径:(输入"q"后按回车键即可退出)')
if img_path=='q':
break
else:
""" 你的 APPID AK SK """
APP_ID = ''
API_KEY = ''
SECRET_KEY = ''
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
""" 读取图片 """
def get_file_content(filePath):
with open(filePath, 'rb') as fp:
return fp.read()
image = get_file_content(img_path)
""" 调用通用文字识别, 图片参数为本地图片 """
# 位置信息版
word=client.general(image)
print(word)
这个的功能就是除了可以识别出文字结果外还可以知道文字的位置
额…其实感觉没啥用
这个的功能就是可以识别网络上的一些背景复杂的图片中的文字
也是修改一条代码
from aip import AipOcr
while True:
img_path=input('请输入图片所在的路径:(输入"q"后按回车键即可退出)')
if img_path=='q':
break
else:
""" 你的 APPID AK SK """
APP_ID = ''
API_KEY = ''
SECRET_KEY = ''
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
""" 读取图片 """
def get_file_content(filePath):
with open(filePath, 'rb') as fp:
return fp.read()
image = get_file_content(img_path)
""" 调用通用文字识别, 图片参数为本地图片 """
# 网络照片
word =client.webImage(image)
str =word['words_result']
for x in str:
print(x['words'])
以下面这张图片进行演示
演示效果:
虽然图片中的文字是手写体的
但是还是能识别出大部分文字的
idCardSide = “back” 时识别的是身份证的背面
idCardSide = "front"时识别的是身份证的正面
from aip import AipOcr
while True:
img_path=input('请输入图片所在的路径:(输入"q"后按回车键即可退出)')
if img_path=='q':
break
else:
""" 你的 APPID AK SK """
APP_ID = ''
API_KEY = ''
SECRET_KEY = ''
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
""" 读取图片 """
def get_file_content(filePath):
with open(filePath, 'rb') as fp:
return fp.read()
image = get_file_content(img_path)
# 身份证
idCardSide = "front"
""" 调用身份证识别 """
word=client.idcard(image, idCardSide)
print(word)
识别结果:
可以成功识别出 姓名,民族,住址,公民身份号码,性别
效果还是不错的
from aip import AipOcr
while True:
img_path=input('请输入图片所在的路径:(输入"q"后按回车键即可退出)')
if img_path=='q':
break
else:
""" 你的 APPID AK SK """
APP_ID = ''
API_KEY = ''
SECRET_KEY = ''
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
""" 读取图片 """
def get_file_content(filePath):
with open(filePath, 'rb') as fp:
return fp.read()
image = get_file_content(img_path)
# 银行卡识别
word=client.bankcard(image)
print(word)
from aip import AipOcr
while True:
img_path=input('请输入图片所在的路径:(输入"q"后按回车键即可退出)')
if img_path=='q':
break
else:
""" 你的 APPID AK SK """
APP_ID = ''
API_KEY = ''
SECRET_KEY = ''
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
""" 读取图片 """
def get_file_content(filePath):
with open(filePath, 'rb') as fp:
return fp.read()
image = get_file_content(img_path)
# 车牌识别
word=client.licensePlate(image)
print(word)
这篇文章中,演示了几个平时比较热门常用的接口
其他接口的使用都是大同小异的
大部分只用修改一行代码就可以了
大家有兴趣可以自己尝试一下其他的接口
ok~到这里就演示结束啦
如果大家觉得还不错的话,可以点个小赞嘛,加个关注更好哦!
Yhen手把手带你使用百度智能云①----项目的创建
Yhen带你趣味入门Python①—Windows下Python下载及安装
【python热搜爬虫+定时发送邮件操作①】不会吧不会吧!不会2020了还有人需要用软件看微博热搜吧?
【python微博爬虫+定时发送邮件操作②】不会吧不会吧!不会2020了还有人需要用软件看微博热搜吧?
【爬虫+数据可视化】Yhen手把手带你爬取CSDN博客访问量数据并绘制成柱状图
【爬虫】Yhen手把手带你爬取去哪儿网热门旅游信息(并打包成旅游信息查询小工具
【爬虫】Yhen手把手带你用python爬小说网站,全网打尽,想看就看!(这可能会是你看过最详细的教程)
【实用小技巧】用python自动判断并删除目录下的空文件夹(超优雅)
【爬虫+数据库操作】Yhen手把手带你用pandas将爬取的股票信息存入数据库!
【selenium爬虫】
Yhen手把手带你用selenium自动化爬虫爬取海贼王动漫图片
【爬虫】秀才不出门,天下事尽知。你也能做到!Yhen手把手带你打造每日新闻资讯速达小工具。
【爬虫】Yhen手把手带你用python爬取知乎大佬热门文章
【爬虫】Yhen手把手教你爬取表情包,让你成为斗图界最靓的仔
【前端】学过一天的HTML+CSS后,能做出什么有趣的项目?