天天看點

【文字識别】Python3使用百度AI進行文字識别

将圖檔翻譯成文字一般被稱為光學文字識别(Optical Character Recognition,OCR)。可以實作OCR 的底層庫并不多,目前很多庫都是使用共同的幾個底層OCR 庫,或者是在上面進行定制。

Tesseract 是一個OCR 庫,目前由Google 贊助(Google 也是一家以OCR 和機器學習技術聞名于世的公司)。Tesseract 是目前公認最優秀、最精确的開源OCR 系統。

除了極高的精确度,Tesseract 也具有很高的靈活性。它可以通過訓練識别出任何字型(隻要這些字型的風格保持不變就可以),也可以識别出任何Unicode 字元。

此外我們也可以調用百度AI的文字識别API進行文字識别,具體流程如下:

1. 百度智能雲注冊使用者

百度智能雲位址:https://cloud.baidu.com/

2. 找到産品服務 / 文字識别 - 概覽,建立應用

【文字識别】Python3使用百度AI進行文字識别

應用有三個關鍵參數:AppID,API Key,Secret Key

【文字識别】Python3使用百度AI進行文字識别

3. python腳本調用文字識别接口

具體api文檔參考下面OCR Python SDK位址

OCR Python SDK位址:https://ai.baidu.com/docs#/OCR-Python-SDK/fad9fbb6

4. 具體文字識别代碼如下:隻是展示了幾個接口,具體的還是看上面OCR Python SDK位址文檔說明

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
#作者:cacho_37967865
#部落格:https://blog.csdn.net/sinat_37967865
#檔案:baiduAI.py
#日期:2019-06-18
#備注:Python利用百度AI進行文字識别, pip install baidu-aip
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

from aip import AipOcr

# 定義常量
APP_ID = '16552814'
API_KEY = '93R0OpMdmPy31WBBgPEKE1qB'
SECRET_KEY = 'kIClrcG******'

# 初始化AipFace對象
aipOcr = AipOcr(APP_ID, API_KEY, SECRET_KEY)


# 打開圖檔
def get_file_content(filePath):
    with open(filePath, 'rb') as fp:
        return fp.read()


# 調用通用文字識别接口
def basicGeneral(file):
    """ 如果有可選參數 """
    options = {}
    options["detect_direction"] = "true"  # 檢測朝向
    options["detect_language"] = "true"  # 檢測語言
    result = aipOcr.basicGeneral(file, options)
    return(result)


# 通用文字識别(高精度版)
def basicAccurate(file):
    options = {}
    options["detect_direction"] = "true"  # 檢測朝向
    options["detect_language"] = "true"  # 檢測語言
    result = aipOcr.basicAccurate(file, options)
    return (result)


# 識别一些網絡上背景複雜,特殊字型的文字。
def webImage(file):
    options = {}
    options["detect_direction"] = "true"  # 檢測朝向
    options["detect_language"] = "true"  # 檢測語言
    result = aipOcr.webImage(file, options)
    return (result)


def main():
    file = get_file_content("bd.png")
    result = basicGeneral(file)
    print(result)
    for word in result['words_result']:
        print(word['words'])

if __name__ == '__main__':
    main()
           
【文字識别】Python3使用百度AI進行文字識别

識别後的文字:

【文字識别】Python3使用百度AI進行文字識别
上一篇: Singapore

繼續閱讀