• 使用腾讯云 Cloud studio 实现调度百度AI实现文字识别



    请添加图片描述

    前言

    今天我们也来高大上一下,玩一把人工智能。那就是免费调用百度AI实现图片上面的文字识别。相对于Python的第三方库,百度人工智能要更强大,毕竟人工智能不是那么容易搞的。要调用,其实很简单,关键的代码只需要三行。但需要先注册百度AI,获得ID和密钥。注册也很简单,百度AI社区有详细说明,高铁直达链接:https://ai.baidu.com/forum/topic/show/867951 。只需走到“1.6 获取密钥”即可。然后记录下自己的APP_ID、API_KEYSECRET_KEY,就可以开始了。界面如下。每个ID每天可免费识别200次,请珍惜使用哈。
    请添加图片描述
    代码说明如下:

    导入模块

    from aip import AipOcr #导入AipOcr模块,用于做文字识别
    import glob
    
    • 1
    • 2

    该部分代码导入了AipOcr模块和glob模块。

    设置百度AI的APP_ID、API_KEY和SECRET_KEY

    APP_ID = '你申请的'
    API_KEY = '你申请的'
    SECRET_KEY = '你申请的'
    client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
    
    • 1
    • 2
    • 3
    • 4

    这段代码设置了百度AI的APP_ID、API_KEY和SECRET_KEY,并使用这些参数创建了一个AipOcr对象。

    定义路径和文件列表

    path = "红楼梦\\"
    files = glob.glob(path+"*.png")
    
    • 1
    • 2

    这部分代码定义了一个路径path和一个文件列表files,通过使用glob.glob函数来获取指定路径下所有的.png文件。

    打开文本文件准备写入数据

    txt_file = open('红楼梦.txt', 'a')
    
    • 1

    该部分代码打开一个名为红楼梦.txt的文本文件,以追加(‘a’)的方式打开。

    逐个处理图片文件

    for file in files:
        pic = open(file,'rb')#以二进制(rb)打开
        img = pic.read() #读取
        message = client.basicGeneral(img) #调用百度AI识别图片中的文字
        for words in message['words_result']:
            word = words['words'] #提取文字
            print(word)
            
            txt_file.write(word) #将文字写入文本文件
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    这部分代码使用for循环逐个处理files中的图片文件。首先打开图片文件,以二进制读取模式(‘rb’)打开,并读取图片内容。然后调用client.basicGeneral方法,将图片内容传递给百度AI进行文字识别,返回的结果保存在message中。接着使用for循环遍历message['words_result']中的每个元素,提取出其中的文字信息并保存在word变量中。然后将文字写入文本文件txt_file中。

    关闭文本文件

    txt_file.close()
    
    • 1

    关闭文本文件。

    重复处理其他图片文件

    path = "论文\\"
    files = glob.glob(path+"*.png")
    
    txt_file = open('论文1.txt', 'a')
    
    for file in files:
        pic = open(file,'rb')
        img = pic.read()
        message = client.basicGeneral(img)
        for words in message['words_result']:
            word = words['words']
            print(word)
    
            txt_file.write(word)
    
    txt_file.close()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    这部分代码与前面类似,只是处理的图片路径和文本文件名称不同。同样使用glob.glob函数获取指定路径下的所有.png文件,并逐个对其进行文字识别,并将识别结果保存到文本文件中。最后关闭文本文件。

    完整代码

    下面是整理后的代码,并对其进行讲解说明:

    from aip import AipOcr
    import glob
    
    # 导入AipOcr模块,用于做文字识别
    # 导入glob模块,用于获取文件列表
    
    APP_ID = '你申请的'
    API_KEY = '你申请的'
    SECRET_KEY = '你申请的'
    client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
    
    # 设置百度AI的APP_ID、API_KEY和SECRET_KEY,并创建AipOcr对象
    
    path = "红楼梦\\"
    files = glob.glob(path + "*.png")
    
    txt_file = open('红楼梦.txt', 'a')
    
    # 定义路径和文件列表,打开一个红楼梦.txt的文本文件以追加的方式
    
    for file in files:
        pic = open(file, 'rb')
        img = pic.read()
        message = client.basicGeneral(img)
        
        # 逐个处理图片文件,打开图片文件,读取图片内容
        # 调用百度AI的basicGeneral方法,将图片内容传递给百度AI进行文字识别
        
        for words in message['words_result']:
            word = words['words']
            print(word)
            txt_file.write(word)
            
            # 遍历识别结果中的每个文字,提取出文字并打印
            # 将文字写入文本文件
            
    txt_file.close()
    
    # 关闭文本文件
    
    path = "论文\\"
    files = glob.glob(path + "*.png")
    
    txt_file = open('论文1.txt', 'a')
    
    # 重新定义路径和文件列表,打开一个论文1.txt的文本文件以追加的方式
    
    for file in files:
        pic = open(file, 'rb')
        img = pic.read()
        message = client.basicGeneral(img)
        
        # 逐个处理图片文件,打开图片文件,读取图片内容
        # 调用百度AI的basicGeneral方法,将图片内容传递给百度AI进行文字识别
        
        for words in message['words_result']:
            word = words['words']
            print(word)
            txt_file.write(word)
            
            # 遍历识别结果中的每个文字,提取出文字并打印
            # 将文字写入文本文件
            
    txt_file.close()
    
    # 关闭文本文件
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66

    解释说明

    • 导入AipOcr模块和glob模块,前者用于调用百度AI的文字识别功能,后者用于获取指定路径下的图片文件列表。

    • 根据实际申请的百度AI账号,设置了APP_IDAPI_KEYSECRET_KEY,并使用这些参数创建了一个AipOcr对象。

    • 定义了两个路径变量path,分别对应红楼梦和论文的文件夹路径。使用glob.glob函数获取指定路径下的所有.png文件,并保存到files列表中。

    • 打开一个相应的文本文件以追加的方式,用于保存文字识别的结果。

    • 通过循环遍历处理每个图片文件。首先打开图片文件,并读取其内容。然后调用client.basicGeneral方法,将图片内容传递给百度AI进行文字识别。返回的结果保存在message中。

    • 使用for循环遍历message['words_result']中的每个元素,提取出其中的文字信息并保存在word变量中。然后将文字打印出来,并写入文本文件中。

    • 关闭文本文件。

    这段代码的核心功能是通过百度AI的文字识别功能对指定路径下的图片文件进行文字识别,并将识别结果保存到相应的文本文件中。可以根据实际情况,修改路径、文件名和文件格式等参数,适用于其他图片文件的文字识别任务。

    运行效果

    请添加图片描述
    请添加图片描述

  • 相关阅读:
    【机器学习】随机种子Random Seed介绍(在Python、Pytorch、TensorFlow中的设置代码汇总)
    旺店通·企业版对接打通金蝶云星空查询调拨单接口与分布式调入单新增接口
    jmeter利用bean shell加密解密方法
    UML类图以及常用集合
    Java 连接SqlServer问题
    腾讯音乐基于 Apache Doris + 大模型构建全新智能数据服务平台
    Cesium 展示——设置图层顺序 ImageryLayer
    TTY驱动分层思想
    matlab中矩阵点乘和乘的区别(超级简单)
    数据库基础 培训讲义
  • 原文地址:https://blog.csdn.net/qq_33681891/article/details/132028282