天天看点

基于python的百度云OCR

百度云OCR

百度云提供了一定额度的免费的OCR API,目前是每日500次,做做研究或者小应用还勉强够用,本文主要为了测试其效果。

文档地址:https://cloud.baidu.com/doc/OCR/OCR-Python-SDK.html

安装使用

首先你需要注册一个百度云BCE账号,然后从控制面板新建一个文字识别应用。

基于python的百度云OCR

之后你就可以获得调用API需要的 AppID,API Key 和 Secret Key。后面只要根据官方文档一步一步走就可以了。

pip install baidu-aip
           

封装和调用

参考文档: https://cloud.baidu.com/doc/OCR/OCR-Python-SDK.html#.E7.AE.80.E4.BB.8B

from aip import AipOcr

config = {
    'appId': 'your-id',
    'apiKey': 'your-key',
    'secretKey': 'your-secret-key'
}

client = AipOcr(**config)

def get_file_content(file):
    with open(file, 'rb') as fp:
        return fp.read()

def img_to_str(image_path):
    image = get_file_content(image_path)
    # 通用文字识别(可以根据需求进行更改)
    result = client.basicGeneral(image)
    return result
           

测试效果

图片如下:

基于python的百度云OCR

结果:

{'log_id': 7487097158899870218, 'words_result_num': 4, 'words_result': [{'words': '2选择排序( Selection sort)'}, {'words': '表现最稳定的排序算法之这个稳定不是指算法层面上的稳定哈,相信聪明的你能明白我说的意思2333),因为无'}, {'words': '论什么数据进去都是(n^2)的时间复杂度…所以用到它的时候,数据规模越小越好。唯的好处可能就是不占用额'}, {'words': '外的内存空间了吧。理论上讲,选择排序可能也是平时排序一般人想到的最多的排序方法了吧。'}]}
           

除了本文提到的OCR,其实还是有不少其他选择。有一些直接提供Demo页面,你直接上传一张图片就可以直接看到识别效果,比如:

  • 微软Azure 图像识别:https://azure.microsoft.com/zh-cn/services/cognitive-services/computer-vision/
  • 有道智云文字识别:http://aidemo.youdao.com/ocrdemo
  • 阿里云图文识别:https://www.aliyun.com/product/cdi/
  • 腾讯OCR文字识别: https://cloud.tencent.com/product/ocr