百度OCR QuickStart(Python)

文字提取效率工具開發(fā)案例

個(gè)人開發(fā)者小樂崇尚高效便捷的生活方式灼捂,業(yè)余生活中熱愛閱讀挂洛,在閱讀的過程中吹埠,他希望能快速的將有價(jià)值的內(nèi)容保存下來斩郎,方便日后回顧整理脑融,但市面上已有的文字轉(zhuǎn)寫工具識(shí)別準(zhǔn)確率低且價(jià)格昂貴,無法滿足需求缩宜。

因此肘迎,小樂決心自己開發(fā)一個(gè)專注于高精度OCR識(shí)別的效率工具,識(shí)別的準(zhǔn)確率及速度是決定產(chǎn)品可用性的關(guān)鍵因素锻煌。通過對(duì)比不同平臺(tái)的OCR識(shí)別產(chǎn)品妓布,小樂最終決定基于百度OCR通用文字識(shí)別能力進(jìn)行開發(fā)。在滿足自己日常需求的同時(shí)宋梧,將這款產(chǎn)品提供給更多有需求的用戶使用匣沼,解決紙質(zhì)文件電子化存檔、檢索捂龄、紙質(zhì)書摘錄等多種場(chǎng)景下無法快速提取圖片內(nèi)文字內(nèi)容的問題释涛,使文字信息的提取變得無比輕松。

下面看看如何使用百度AI開放平臺(tái)的文字識(shí)別能力快速構(gòu)建一個(gè)準(zhǔn)確高效的文字識(shí)別工具

實(shí)現(xiàn)步驟

只需三步倦沧,1小時(shí)內(nèi)即可完成文字識(shí)別接口的調(diào)用唇撬。

Step1:成為百度AI開放平臺(tái)的開發(fā)者

要調(diào)用百度AI開放平臺(tái)的文字識(shí)別能力先要成為百度AI開放平臺(tái)的開發(fā)者,首先讓我們花5分鐘來注冊(cè)百度AI開放平臺(tái)的開發(fā)者展融,并新建一個(gè)文字識(shí)別應(yīng)用窖认。

先點(diǎn)擊此處注冊(cè)百度賬戶進(jìn)入 如下圖 的頁(yè)面快速的建立一個(gè)百度賬號(hào)吧。

圖片

我們有賬號(hào)之后登錄告希,并且點(diǎn)擊此處創(chuàng)建一個(gè)應(yīng)用扑浸,如下圖

圖片

然后就能看到創(chuàng)建完的應(yīng)用和 API KEY 以及 Secret KEY

圖片

Step2:準(zhǔn)備數(shù)據(jù)

文字識(shí)別服務(wù)可以讓小樂把自己拍攝的含有文字的圖片轉(zhuǎn)化成文本數(shù)據(jù),然后就可以對(duì)文字進(jìn)行編輯等操作暂雹,我們看下小樂拍攝的書籍某頁(yè)的圖片

書籍頁(yè)面圖片:

合規(guī)圖片

Step3: 編寫一個(gè)示例程序

第一步API KEY 以及 Secret KEY首装,以及 第二步 的數(shù)據(jù),我們就可以寫一個(gè)示例代碼調(diào)用百度AI開放平臺(tái)的文字識(shí)別能力

準(zhǔn)備開發(fā)環(huán)境

我們選擇用 Python來快速搭建一個(gè)原型杭跪,關(guān)于如何安裝python仙逻〕巯牛可以參考下表列出的不同操作系統(tǒng)的安裝方法進(jìn)行安裝。

Python的官方下載地址:下載Python

image

Windows 快速測(cè)試包

Windows平臺(tái)的用戶如果對(duì)上述的python安裝感到困難系奉,可以下載我們的一鍵測(cè)試包檬贰,下載地址:Windows測(cè)試包

解壓zip文件后缺亮,雙擊run.bat即可測(cè)試翁涤。

編寫代碼

新建一個(gè) main.py

粘貼以下內(nèi)容,不要忘記替換你的 API_KEY 以及 SECRET_KEY

# coding=utf-8

import sys
import json
import base64

# 保證兼容python2以及python3
IS_PY3 = sys.version_info.major == 3
if IS_PY3:
    from urllib.request import urlopen
    from urllib.request import Request
    from urllib.error import URLError
    from urllib.parse import urlencode
    from urllib.parse import quote_plus
else:
    import urllib2
    from urllib import quote_plus
    from urllib2 import urlopen
    from urllib2 import Request
    from urllib2 import URLError
    from urllib import urlencode

# 防止https證書校驗(yàn)不正確
import ssl
ssl._create_default_https_context = ssl._create_unverified_context

API_KEY = 'GmhC18eVP1Fo1ECX911dtOzw'

SECRET_KEY = 'PQ2ukO4Aec2PTsgQU9UkiEKYciavlZk8'

OCR_URL = "https://aip.baidubce.com/rest/2.0/ocr/v1/accurate_basic"

"""  TOKEN start """
TOKEN_URL = 'https://aip.baidubce.com/oauth/2.0/token'

"""
    獲取token
"""
def fetch_token():
    params = {'grant_type': 'client_credentials',
              'client_id': API_KEY,
              'client_secret': SECRET_KEY}
    post_data = urlencode(params)
    if (IS_PY3):
        post_data = post_data.encode('utf-8')
    req = Request(TOKEN_URL, post_data)
    try:
        f = urlopen(req, timeout=5)
        result_str = f.read()
    except URLError as err:
        print(err)
    if (IS_PY3):
        result_str = result_str.decode()

    result = json.loads(result_str)

    if ('access_token' in result.keys() and 'scope' in result.keys()):
        if not 'brain_all_scope' in result['scope'].split(' '):
            print ('please ensure has check the  ability')
            exit()
        return result['access_token']
    else:
        print ('please overwrite the correct API_KEY and SECRET_KEY')
        exit()

"""
    讀取文件
"""
def read_file(image_path):
    f = None
    try:
        f = open(image_path, 'rb')
        return f.read()
    except:
        print('read image file fail')
        return None
    finally:
        if f:
            f.close()

"""
    調(diào)用遠(yuǎn)程服務(wù)
"""
def request(url, data):
    req = Request(url, data.encode('utf-8'))
    has_error = False
    try:
        f = urlopen(req)
        result_str = f.read()
        if (IS_PY3):
            result_str = result_str.decode()
        return result_str
    except  URLError as err:
        print(err)

if __name__ == '__main__':

    # 獲取access token
    token = fetch_token()

    # 拼接通用文字識(shí)別高精度url
    image_url = OCR_URL + "?access_token=" + token

    text = ""

    # 讀取書籍頁(yè)面圖片
    file_content = read_file('./text.jpg')

    # 調(diào)用文字識(shí)別服務(wù)
    result = request(image_url, urlencode({'image': base64.b64encode(file_content)}))

    # 解析返回結(jié)果
    result_json = json.loads(result)
    for words_result in result_json["words_result"]:
        text = text + words_result["words"]

    # 打印文字
    print(text)

運(yùn)行代碼

在命令行中運(yùn)行python main.py

結(jié)果

代碼正確運(yùn)行后萌踱,命令行界面上會(huì)顯示出如下運(yùn)行結(jié)果:

中午,胡小懶跟公司的同事去附近的餐館吃飯,附近所有的餐館都人滿為患,往往需要等位,午餐時(shí)間至少需要45分鐘吃完午飯回來,趴在桌子上睡個(gè)午覺,午睡醒來后,胡小懶往往覺得這一天才真正開始葵礼。通常,胡小懶要用至少半個(gè)小時(shí)的時(shí)間才能從午睡狀態(tài)中清醒過來,再處理一些瑣事,下午就這么過去了。如果部門開會(huì),時(shí)間就在領(lǐng)導(dǎo)的演講和大家低頭玩手機(jī)中度過了并鸵。上良下班后吃點(diǎn)東西,坐地鐵回到家,已經(jīng)八點(diǎn)左右了鸳粉。他雖然白天在公司沒做什么事情,但下班回家后仍然覺得十分累,除了窩在床上看美劇之外,別的什么也不想做。胡小懶臨睡前看著亂糟糟的房間,眉頭一皺,但心里卻樂觀地期待著周末的到來,想著周末一定要大干一場(chǎng),讓整個(gè)房間煥然一新园担〗焯福可周末到了,就真的能夠像他自己期待的那樣嗎?,個(gè)胡小懶的周末通常是這樣過的:宅在家里隨便找部美劇或者網(wǎng)絡(luò)小說打發(fā)時(shí)間,覺得日子過得很愜意。朋友邀請(qǐng)過他很多次,想周末一起吃個(gè)飯,但胡小懶都以“下次吧”敷衍了過去弯汰。因?yàn)樗X得,好好一個(gè)周末,還需要像平時(shí)一樣穿得周周正正地出門,還得坐車去到約好的地點(diǎn),真是太煩人了艰山。不個(gè)一就這樣,與胡小懶聯(lián)系的朋友越來越少,而他自己根本就沒有意識(shí)到。后宮不共像胡小懶這樣看似每天都有事做,實(shí)際上卻是一直在混日子的上班族并不少見咏闪。而他們中的很多人并不覺得自己是在混日子,只是懷才不遇曙搬。一5窗人靠中愛因斯坦在解釋相對(duì)論時(shí)曾說過一個(gè)著名的比喻:“一個(gè)男人與美女對(duì)坐1小時(shí),會(huì)覺得似乎只過了1分鐘;但如果讓他坐在熱火爐上1

返回的數(shù)據(jù)包含了圖片中所有文字,詳細(xì)的接口返回可以查看文檔 文字識(shí)別API文檔

了解更多

示例源代碼

您可以在我們的官方github上下載示例源碼

https://github.com/Baidu-AIP/QuickStart/tree/master/OCR

產(chǎn)品特色

  1. 產(chǎn)品豐富: 提供 33 款專用文字識(shí)別產(chǎn)品 + 2 款自定義模板文字識(shí)別產(chǎn)品汤踏,全方位滿足各場(chǎng)景識(shí)別需求织鲸;
  2. 準(zhǔn)確率高: 提供多場(chǎng)景、多語種溪胶、高精度的整圖文字檢測(cè)和識(shí)別服務(wù),準(zhǔn)確率可達(dá)99%稳诚,多項(xiàng)ICDAR指標(biāo)居世界第一
  3. 價(jià)格實(shí)惠: 各個(gè)接口均提供免費(fèi)調(diào)用量哗脖,超出后方進(jìn)行計(jì)費(fèi),階梯計(jì)費(fèi)價(jià)格最低可達(dá) 0.002 元/次扳还,同時(shí)提供 QPS計(jì)費(fèi)才避、次數(shù)包等多種計(jì)費(fèi)方式可供選擇
  4. 服務(wù)穩(wěn)定: 依托百度云技術(shù)實(shí)力,提供高可靠性氨距、彈性可伸縮桑逝、高并發(fā)承載的文字識(shí)別服務(wù),服務(wù)可用性高達(dá)99.99%

更多參考

文字識(shí)別文檔

如何獲取API Key和Secret Key

10分鐘快速掌握文字識(shí)別

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末俏让,一起剝皮案震驚了整個(gè)濱河市楞遏,隨后出現(xiàn)的幾起案子茬暇,更是在濱河造成了極大的恐慌,老刑警劉巖寡喝,帶你破解...
    沈念sama閱讀 218,525評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件糙俗,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡预鬓,警方通過查閱死者的電腦和手機(jī)巧骚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來格二,“玉大人劈彪,你說我怎么就攤上這事《ゲ拢” “怎么了沧奴?”我有些...
    開封第一講書人閱讀 164,862評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)驶兜。 經(jīng)常有香客問我扼仲,道長(zhǎng),這世上最難降的妖魔是什么抄淑? 我笑而不...
    開封第一講書人閱讀 58,728評(píng)論 1 294
  • 正文 為了忘掉前任屠凶,我火速辦了婚禮,結(jié)果婚禮上肆资,老公的妹妹穿的比我還像新娘矗愧。我一直安慰自己,他們只是感情好郑原,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,743評(píng)論 6 392
  • 文/花漫 我一把揭開白布唉韭。 她就那樣靜靜地躺著,像睡著了一般犯犁。 火紅的嫁衣襯著肌膚如雪属愤。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,590評(píng)論 1 305
  • 那天酸役,我揣著相機(jī)與錄音住诸,去河邊找鬼。 笑死涣澡,一個(gè)胖子當(dāng)著我的面吹牛贱呐,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播入桂,決...
    沈念sama閱讀 40,330評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼奄薇,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了抗愁?” 一聲冷哼從身側(cè)響起馁蒂,我...
    開封第一講書人閱讀 39,244評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤呵晚,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后远搪,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體劣纲,經(jīng)...
    沈念sama閱讀 45,693評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,885評(píng)論 3 336
  • 正文 我和宋清朗相戀三年谁鳍,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了癞季。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,001評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡倘潜,死狀恐怖绷柒,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情涮因,我是刑警寧澤废睦,帶...
    沈念sama閱讀 35,723評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站养泡,受9級(jí)特大地震影響嗜湃,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜澜掩,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,343評(píng)論 3 330
  • 文/蒙蒙 一购披、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧肩榕,春花似錦刚陡、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至乔妈,卻和暖如春蝙云,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背路召。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工贮懈, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人优训。 一個(gè)月前我還...
    沈念sama閱讀 48,191評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像各聘,于是被迫代替她去往敵國(guó)和親揣非。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,955評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 動(dòng)機(jī)&成品展示 最近躲因,家里老人有需要把圖片里的文字識(shí)別讀取的功能早敬,想要教他們用市面上功能齊全的 App忌傻,因?yàn)楣δ芡?..
    Blurry_horizon閱讀 6,056評(píng)論 1 5
  • 高闊的清秋, 攜著日月星辰搞监, 似要沖破九天遠(yuǎn)離人間水孩。 大漠起了風(fēng)沙, 平原蒙了霧花琐驴, 泛黃的葉離開了生長(zhǎng)的家俘种, 大...
    故城酒兮閱讀 199評(píng)論 1 2