天天看點

基于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