Yhen手把手带你使用百度智能云②----文字识别

声明:
以下内容为本人原创,仅供用于参考学习
禁止用于商业及违法用途

·作者:@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

而这篇文章我将介绍如何使用百度智能云的接口来进行文字识别

文章目录

  • 一.功能概述
  • 二.使用教程
    • 1.通用文字识别
    • 2.高精度文字识别
    • 3.文字识别(含位置版)
    • 4.网络图片文字识别
    • 5.身份证文字识别
    • 6.银行卡文字识别
    • 7.车牌号识别
  • 三.博主公众号
  • 四.往期文章回顾

一.功能概述

首先进入百度文字识别官网
url :https://ai.baidu.com/tech/ocr/general
点击立即使用
Yhen手把手带你使用百度智能云②----文字识别_第1张图片
登录成功后
下拉找到可用服务列表
Yhen手把手带你使用百度智能云②----文字识别_第2张图片
这里面涵盖了所有百度提供给我们的文字识别接口以及每个接口的可调用量

包括以下功能
Yhen手把手带你使用百度智能云②----文字识别_第3张图片
Yhen手把手带你使用百度智能云②----文字识别_第4张图片
Yhen手把手带你使用百度智能云②----文字识别_第5张图片

Yhen手把手带你使用百度智能云②----文字识别_第6张图片
Yhen手把手带你使用百度智能云②----文字识别_第7张图片

在这里插入图片描述
Yhen手把手带你使用百度智能云②----文字识别_第8张图片
Yhen手把手带你使用百度智能云②----文字识别_第9张图片
可以看到 功能是十分齐全和丰富的
而且非常良心的是 这些接口只要在不超过限额的情况下 都是可以免费使用的

而提供的限额已经完全可以满足我们的日常需要

ok,了解到了它功能之丰富
下面就来看看如何使用它们

二.使用教程

下面的篇幅我将对以下热门接口进行演示以及对比分析
①通用文字识别
②高精度文字识别
③文字识别(含位置版)
④网络文字识别
⑤身份证文字识别
⑥车牌识别
⑦银行卡文字识别

1.通用文字识别

首先在导航栏中点击“管理应用”
Yhen手把手带你使用百度智能云②----文字识别_第10张图片
找到创建的项目的APP ID,API Key和Secret Key(点击显示即会显示)
并且记录下来
Yhen手把手带你使用百度智能云②----文字识别_第11张图片

然后回到导航栏
点击“技术文档”
Yhen手把手带你使用百度智能云②----文字识别_第12张图片

然后依次点击
“SDK文档”—>“Python语言”—>“快速入门”
Yhen手把手带你使用百度智能云②----文字识别_第13张图片
然后按照文档的提示操作

Yhen手把手带你使用百度智能云②----文字识别_第14张图片
①首先按照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)

然后回到技术文档中
点击接口说明
Yhen手把手带你使用百度智能云②----文字识别_第15张图片
找到通用文字识别
并将下面的代码复制
Yhen手把手带你使用百度智能云②----文字识别_第16张图片

""" 读取图片 """
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)
       

我以下面这一张图为例演示以下这段代码
Yhen手把手带你使用百度智能云②----文字识别_第17张图片
识别结果:
Yhen手把手带你使用百度智能云②----文字识别_第18张图片
返回给我们的是一个字典,里面包含了识别出来的文字结果和一些其他的数据

官方文档中也给我们提供了返回数据的说明
Yhen手把手带你使用百度智能云②----文字识别_第19张图片
但是我们一般只需要知道识别出来的结果即可
所以我循环遍历将识别的文字结果取出

# 通用版
        word=client.basicGeneral(image)

        str =word['words_result']
        for x in  str:
            print(x['words'])

程序运行的结果如下:
Yhen手把手带你使用百度智能云②----文字识别_第20张图片
可以看到
大部分的文字都是可以识别出来的
但是对英文的识别似乎不是很灵敏 有的单词就缺少了字母

于是我又找了一张英文图片
Yhen手把手带你使用百度智能云②----文字识别_第21张图片

识别结果:
Yhen手把手带你使用百度智能云②----文字识别_第22张图片
也是可以识别出大部分单词的
但是看起来似乎还是有点别扭
有些单词的大写并没有识别出来

接下来看看高精度文字识别的表现

2.高精度文字识别

实现高精度文字识别也很简单
只需要修改通用文字识别的一条代码即可

Yhen手把手带你使用百度智能云②----文字识别_第23张图片
将“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'])

我再次识别这张文字图片
Yhen手把手带你使用百度智能云②----文字识别_第24张图片
识别结果:
Yhen手把手带你使用百度智能云②----文字识别_第25张图片
很明显这次的识别结果要比通用文字识别要好得多
完美的把所有的文字都识别了出来

这次我换了一张文字较多的图片进行测试
Yhen手把手带你使用百度智能云②----文字识别_第26张图片
识别结果:
Yhen手把手带你使用百度智能云②----文字识别_第27张图片
也是可以完全识别出来的

再来测试一下英文页面
Yhen手把手带你使用百度智能云②----文字识别_第28张图片
识别出来的结果也要比通用版的要好的多
看来高精度版果然不是浪得虚名的啊!

3.文字识别(含位置版)

文字识别(含位置版)也只需要修改一条代码

Yhen手把手带你使用百度智能云②----文字识别_第29张图片

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)

这个的功能就是除了可以识别出文字结果外还可以知道文字的位置
额…其实感觉没啥用
Yhen手把手带你使用百度智能云②----文字识别_第30张图片

4.网络图片文字识别

这个的功能就是可以识别网络上的一些背景复杂的图片中的文字
Yhen手把手带你使用百度智能云②----文字识别_第31张图片
也是修改一条代码

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'])
           

以下面这张图片进行演示
Yhen手把手带你使用百度智能云②----文字识别_第32张图片
演示效果:
Yhen手把手带你使用百度智能云②----文字识别_第33张图片
虽然图片中的文字是手写体的
但是还是能识别出大部分文字的

5.身份证文字识别

需要添加和修改两条代码
Yhen手把手带你使用百度智能云②----文字识别_第34张图片

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)

Yhen手把手带你使用百度智能云②----文字识别_第35张图片
图片来源于网络…

识别结果:
在这里插入图片描述
可以成功识别出 姓名,民族,住址,公民身份号码,性别
效果还是不错的

6.银行卡文字识别

Yhen手把手带你使用百度智能云②----文字识别_第36张图片

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)

Yhen手把手带你使用百度智能云②----文字识别_第37张图片
图片来源于网络.

识别结果:
在这里插入图片描述
可以成功识别出银行卡号

7.车牌号识别

Yhen手把手带你使用百度智能云②----文字识别_第38张图片

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)

Yhen手把手带你使用百度智能云②----文字识别_第39张图片
图片来源于网络.

识别结果:
在这里插入图片描述
是可以成功识别出车牌号的

这篇文章中,演示了几个平时比较热门常用的接口
其他接口的使用都是大同小异的
大部分只用修改一行代码就可以了
大家有兴趣可以自己尝试一下其他的接口

ok~到这里就演示结束啦

如果大家觉得还不错的话,可以点个小赞嘛,加个关注更好哦!

三.博主公众号

扫码关注我的公众号“Yhen杂文铺”发现更多有趣~
Yhen手把手带你使用百度智能云②----文字识别_第40张图片

四.往期文章回顾

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后,能做出什么有趣的项目?

你可能感兴趣的:(百度智能云,python,编程语言,自然语言处理)