百度雲OCR
百度雲提供了一定額度的免費的OCR API,目前是每日500次,做做研究或者小應用還勉強夠用,本文主要為了測試其效果。
文檔位址:https://cloud.baidu.com/doc/OCR/OCR-Python-SDK.html
安裝使用
首先你需要注冊一個百度雲BCE賬号,然後從控制台建立一個文字識别應用。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiElT4VFVQ9mWp5kerRFUzkDVPJTVU1kMnpWT4FERNdXQE1kMRRVT2V1RkZXMXpVe5knW0xmMMRXOykVdRhkYxYUbaBTNXpFdkdlW6lTeMZTTINGMShUYvwlbj5yZtlmbkN3YuQnclZnbvN2Ztl2Lc9CX6MHc0RHaiojIsJye.jpg)
之後你就可以獲得調用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
測試效果
圖檔如下:
結果:
{'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