首先來看一下識別的效果:這裏需要完整代碼以及SDK的請點擊此處下載:百度文字識別OCR-通用文字識別
首先需要註冊百度賬號並且創建對應的應用,這裏具體方法如圖:
訪問:http://ai.baidu.com/ 點擊控制檯
登錄後創建應用:
此處注意:圖像處理中的各項功能共用的是一個SDK包,只是不同功能實現的時候使用的函數以及返回參數不同,點擊完創建應用後就可以生成三個我們後期識別過程中必須使用的參數:AppID,API Key和secert key,這裏我們可以點擊查看應用詳情來獲取
至此,前期的準備工作就完成了,這時我們通過Pip或者官網直接下載SDK包,pip下載指令爲:
這裏支持Python版本:2.7.+ ,3.+
如果已安裝pip,執行pip install baidu-aip即可。
如果已安裝setuptools,執行python setup.py install即可。
接下來,在下載的SDK文檔下新建Python文件,當然你也可以使用導入包的模式:
然後創建一個AipOcr(亦可以簡單的理解爲一個和百度的一個連接),這裏代碼爲:
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)
完成上述工作後我們就可以正式進入到文字識別的實現過程了,具體的官方代碼爲:
""" 讀取圖片 """
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 = "http//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)
注意:這裏的一些請求參數的具體含義爲:
參數名稱 | 是否必選 | 類型 | 可選值範圍 | 默認值 | 說明 |
---|---|---|---|---|---|
image | 是 | string | 圖像數據,base64編碼,要求base64編碼後大小不超過4M,最短邊至少15px,最長邊最大4096px,支持jpg/png/bmp格式 | ||
url | 是 | string | 圖片完整URL,URL長度不超過1024字節,URL對應的圖片base64編碼後大小不超過4M,最短邊至少15px,最長邊最大4096px,支持jpg/png/bmp格式,當image字段存在時url字段失效 | ||
language_type | 否 | string | CHN_ENG ENG POR FRE GER ITA SPA RUS JAP KOR |
CHN_ENG | 識別語言類型,默認爲CHN_ENG。可選值包括: - CHN_ENG:中英文混合; - ENG:英文; - POR:葡萄牙語; - FRE:法語; - GER:德語; - ITA:意大利語; - SPA:西班牙語; - RUS:俄語; - JAP:日語; - KOR:韓語; |
detect_direction | 否 | string | true false |
false | 是否檢測圖像朝向,默認不檢測,即:false。朝向是指輸入圖像是正常方向、逆時針旋轉90/180/270度。可選值包括: - true:檢測朝向; - false:不檢測朝向。 |
detect_language | 否 | string | true false |
false | 是否檢測語言,默認不檢測。當前支持(中文、英語、日語、韓語) |
probability | 否 | string | true false |
是否返回識別結果中每一行的置信度 |
在這裏,博主在原有代碼的基礎上還將返回的具體數值寫入文件以方便後期的處理,具體實現的完整代碼爲:
from aip import AipOcr
import json
""" 你的 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('ocr2.jpg')
""" 如果有可選參數 """
options = {}
""" 識別語言類型 """
options["language_type"] = "CHN_ENG"
""" 檢測圖片朝向 """
options["detect_direction"] = "false"
""" 檢測語言 """
options["detect_language"] = "false"
""" 置信度 """
options["probability"] = "false"
""" 帶參數調用通用文字識別, 圖片參數爲本地圖片 """
result=client.basicGeneral(image, options)
print(result)
result_txt=json.dumps(result,ensure_ascii=False)
file = open('result.ini', 'w') # 打開文件
file.write(result_txt) # 寫入
file.close()