PaddleOCR诚欠,一款文本識別效果不輸于商用的Python庫顽染!

1、前言

Hello 大家好呀轰绵,我是小張~

本期將給大家介紹一個 Github 項目粉寞,用于OCR文本識別的;在之前的教程中左腔,關(guān)于用 Python 實現(xiàn)OCR 識別唧垦,寫過兩篇文章:

一篇是關(guān)于 python 與 Tesseract ,詳情可參考:介紹一個Python 包 液样,幾行代碼可實現(xiàn) OCR 文本識別振亮; tesseract 是基于傳統(tǒng)機(jī)器學(xué)習(xí)方法實現(xiàn)的, 對于英文字符識別還是挺棒的鞭莽,但中文字符的識別效果就差強(qiáng)人意了~~

image-20210610235454924

還有一篇是介紹了一個用于文本識別的 Github 項目Easy-OCR坊秸,相關(guān)用法詳情可參考:關(guān)于文本OCR檢測、分享一個基于深度學(xué)習(xí)技術(shù)的Python庫

Easy-OCR 是基于深度學(xué)習(xí)技術(shù)開發(fā)的澎怒,識別效果要優(yōu)于 Tesserart褒搔,支持識別70+個國家語言,除了文本識別之外還能對文本塊區(qū)域完成檢測功能,并用線框?qū)⑾嚓P(guān)區(qū)域標(biāo)注在原圖上

image-20210611125533811

但測試后發(fā)現(xiàn)星瘾,該庫對于某些路標(biāo)識別效果并不是很精確~

2 PaddleOCR 介紹

這篇文章呢走孽,將介紹一個新的 Github 項目,同樣用于 OCR 識別琳状、該項目名叫 PaddleOCR融求,是 Paddle 的一個分支;PaddleOCR 基于深度學(xué)習(xí)技術(shù)實現(xiàn)的算撮, 所以使用時需要訓(xùn)練好的權(quán)重文件生宛,但這個不需要我們擔(dān)心,因為官方提供的有~

本小節(jié)是對 PaddleOCR 項目的簡單介紹肮柜,如果只對使用步驟感興趣的同學(xué)可以跳過本小節(jié)看第三節(jié)部分~~~

經(jīng)測試 PaddleOCR 識別效果非常優(yōu)秀陷舅,下面兩張圖片是從官網(wǎng)介紹中截取的幾張圖片

圖一

image-20210611133307828

圖二

image-20210611155047042

為了測試該項目的識別性能、隨后我在網(wǎng)上找了一張關(guān)于優(yōu)惠卷的圖片审洞,圖片中文字情況比較復(fù)雜莱睁,垂直、斜體等芒澜;還有中英文相結(jié)合仰剿,甚至還有小數(shù)點

image-20210611142827342

最終測試效果如下,無論左邊圖片文本復(fù)雜度有多高痴晦,圖中文字基本都能識別到南吮,非常Nice ??

image-20210611140629321

關(guān)于 PaddleOCR 模型 ,有以下幾個特點

  • PaddleOCR 從 2020.5.14 發(fā)布,項目迭代到現(xiàn)在誊酌,功能一直處于在不斷完善的過程部凑;
image-20210611145124039
  • 在 PaddleOCR 識別中,會依次完成三種任務(wù):檢測碧浊、方向分類及文本識別涂邀;

  • 關(guān)于預(yù)訓(xùn)練權(quán)重,PaddleOCR 官網(wǎng)根據(jù)提供權(quán)重文件大小分為兩類:

    • 一類為輕量級箱锐,(檢測+分類+識別)三類權(quán)重加起來大小一共才 9.4 M比勉,適用于手機(jī)端和服務(wù)器部署;

    • 另一類(檢測+分類+識別)三類權(quán)重內(nèi)存加起來一共 143.4 MB 驹止,適用于服務(wù)器部署浩聋;

    • 無論模型是否輕量級,識別效果都能與商業(yè)效果相比幢哨,在本期教程中將選用輕量級權(quán)重用于測試赡勘;

  • 支持多語言識別嫂便,目前能夠支持 80 多種語言捞镰;

  • 除了能對中文、英語、數(shù)字識別之外岸售,還能應(yīng)對字體傾斜践樱、文本中含有小數(shù)點字符等復(fù)雜情況

  • 提供有豐富的 OCR 領(lǐng)域相關(guān)工具供我們使用,方便我們制作自己的數(shù)據(jù)集凸丸、用于訓(xùn)練

    • 半自動數(shù)據(jù)標(biāo)注工具拷邢;

    • 數(shù)據(jù)合成工具;

  • 支持 pip 安裝屎慢,簡單上手瞭稼;

3 PaddleOCR 使用

簡單介紹完之后,下面將手把手教大家怎么去使用 PaddleOCR腻惠,

3.1 環(huán)境介紹

介紹一下本次所用的測試環(huán)境

  • os:Win10环肘;

  • Python:3.7.9;

3.2 安裝 PaddlePaddle2.0

PaddleOCR 需在 PaddlePaddle2.0 下才可以正常運行集灌,開始之前請確保 PaddlePaddle2.0 已經(jīng)安裝悔雹,

pip3 install --upgrade pip

python3 -m pip install paddlepaddle==2.0.0 -i https://mirror.baidu.com/pypi/simple

3.2 克隆 PaddleOCR 倉庫

git clone 命令或者 Download 把項目倉庫直接下載到本地

git clone https://github.com/PaddlePaddle/PaddleOCR

這里我用的是 git 命令

image-20210611160450954

3.3 安裝PaddleOCR 第三方依賴包

命令行進(jìn)入 PaddleOCR 文件夾下

cd PaddleOCR

安裝第三方依賴項

pip3 install -r requirements.txt

這一步驟如果報錯的話,建議把改項目放置在一個虛擬環(huán)境中再進(jìn)行安裝欣喧,如果用虛擬環(huán)境的話腌零,記得還需要安裝一下 PaddlePaddle 包

python3 -m pip install paddlepaddle==2.0.0 -i https://mirror.baidu.com/pypi/simple

3.4 下載權(quán)重文件

權(quán)重鏈接地址分別貼在下方,需依次下載到本地唆阿;檢測權(quán)重

https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_det_infer.tar

方向分類權(quán)重

https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar

識別權(quán)重

https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_rec_infer.tar

下載到本地之后分別進(jìn)行解壓益涧,創(chuàng)建一個 inference 文件夾,把前面解壓后的三個文件夾放入 inference 中驯鳖,再把 inference 文件夾放入 PaddleOCR 中饰躲,最終樹形目錄結(jié)構(gòu)效果如下:

image-20210611164010448

3.5 PaddleOCR 使用

以上環(huán)境配置好之后,就可以使用 PaddleOCR 進(jìn)行識別了臼隔,在PaddleOCR 項目環(huán)境下打開終端嘹裂,根據(jù)自己情況,輸入下面三種類型中的一種即可完成文本識別

1摔握,使用 gpu寄狼,識別單張圖片

python3 tools/infer/predict_system.py --image_dir="./doc/imgs/11.jpg" --det_model_dir="./inference/ch_ppocr_mobile_v2.0_det_infer/"  --rec_model_dir="./inference/ch_ppocr_mobile_v2.0_rec_infer/" --cls_model_dir="./inference/ch_ppocr_mobile_v2.0_cls_infer/" --use_angle_cls=True --use_space_char=True

2,使用 gpu 氨淌,識別多張圖片

python3 tools/infer/predict_system.py --image_dir="./doc/imgs/" --det_model_dir="./inference/ch_ppocr_mobile_v2.0_det_infer/"  --rec_model_dir="./inference/ch_ppocr_mobile_v2.0_rec_infer/" --cls_model_dir="./inference/ch_ppocr_mobile_v2.0_cls_infer/" --use_angle_cls=True --use_space_char=True

3泊愧,不使用gpu,識別單張圖片

python3 tools/infer/predict_system.py --image_dir="./doc/imgs/11.jpg" --det_model_dir="./inference/ch_ppocr_mobile_v2.0_det_infer/"  --rec_model_dir="./inference/ch_ppocr_mobile_v2.0_rec_infer/" --cls_model_dir="./inference/ch_ppocr_mobile_v2.0_cls_infer/" --use_angle_cls=True --use_space_char=True --use_gpu=False

里面有兩個參數(shù)需要自己配置一下盛正,參數(shù)說明:

  • image_dir -> 為需要識別圖片路徑或文件夾删咱;

  • det_model_dir -> 存放識別后圖片路徑或文件夾;

PaddleOCR 識別一張圖片很快豪筝,只用 CPU 的話痰滋,也只需要兩三秒

image-20210611165420623

4. 數(shù)據(jù)摘能、源碼獲取

為了方便,我已經(jīng)把測試數(shù)據(jù)敲街、項目代碼都打包在一起了团搞,下載后完成以下兩個步驟即可正常使用(使用方法參考章節(jié) 3.5 部分)

  • 創(chuàng)建虛擬環(huán)境;

  • pip 工具安裝依賴項多艇;

python3 -m pip install paddlepaddle==2.0.0 -i https://mirror.baidu.com/pypi/simple

依賴項

pip3 install -r requirements.txt

獲取方式:關(guān)注微信公號:小張Python (本號)逻恐,后臺回復(fù)關(guān)鍵字:210612 即可

5 小總結(jié)

Paddle-OCR 屬于Paddle 框架其中的一個應(yīng)用,Paddle 除了 OCR 之外還有許多其它好玩的模型峻黍,關(guān)鍵開發(fā)者提供有訓(xùn)練好的預(yù)權(quán)重文件复隆、降低了使用門檻

后期呢,我也打算將從中挑一些好玩的項目姆涩,通過博文的方式手把手教大家跑起來

好了昏名,關(guān)于 PaddleOCR 的使用就介紹到這里了,如果內(nèi)容對你有幫助的話不妨點個贊來鼓勵一下我~

最后感謝大家的閱讀阵面,我們下期見

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末轻局,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子样刷,更是在濱河造成了極大的恐慌仑扑,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,324評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件置鼻,死亡現(xiàn)場離奇詭異镇饮,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)箕母,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評論 3 392
  • 文/潘曉璐 我一進(jìn)店門储藐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人嘶是,你說我怎么就攤上這事钙勃。” “怎么了聂喇?”我有些...
    開封第一講書人閱讀 162,328評論 0 353
  • 文/不壞的土叔 我叫張陵辖源,是天一觀的道長。 經(jīng)常有香客問我希太,道長克饶,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,147評論 1 292
  • 正文 為了忘掉前任誊辉,我火速辦了婚禮矾湃,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘堕澄。我一直安慰自己邀跃,他們只是感情好霉咨,可當(dāng)我...
    茶點故事閱讀 67,160評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著坞嘀,像睡著了一般躯护。 火紅的嫁衣襯著肌膚如雪惊来。 梳的紋絲不亂的頭發(fā)上丽涩,一...
    開封第一講書人閱讀 51,115評論 1 296
  • 那天,我揣著相機(jī)與錄音裁蚁,去河邊找鬼矢渊。 笑死,一個胖子當(dāng)著我的面吹牛枉证,可吹牛的內(nèi)容都是我干的矮男。 我是一名探鬼主播,決...
    沈念sama閱讀 40,025評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼室谚,長吁一口氣:“原來是場噩夢啊……” “哼毡鉴!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起秒赤,我...
    開封第一講書人閱讀 38,867評論 0 274
  • 序言:老撾萬榮一對情侶失蹤猪瞬,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后入篮,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體陈瘦,經(jīng)...
    沈念sama閱讀 45,307評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,528評論 2 332
  • 正文 我和宋清朗相戀三年潮售,在試婚紗的時候發(fā)現(xiàn)自己被綠了痊项。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,688評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡酥诽,死狀恐怖鞍泉,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情肮帐,我是刑警寧澤塞弊,帶...
    沈念sama閱讀 35,409評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站泪姨,受9級特大地震影響游沿,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜肮砾,卻給世界環(huán)境...
    茶點故事閱讀 41,001評論 3 325
  • 文/蒙蒙 一诀黍、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧仗处,春花似錦眯勾、人聲如沸枣宫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽也颤。三九已至,卻和暖如春郁轻,著一層夾襖步出監(jiān)牢的瞬間翅娶,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評論 1 268
  • 我被黑心中介騙來泰國打工好唯, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留竭沫,地道東北人。 一個月前我還...
    沈念sama閱讀 47,685評論 2 368
  • 正文 我出身青樓骑篙,卻偏偏與公主長得像蜕提,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子靶端,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,573評論 2 353

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