Python如何使用EasyOCR工具識(shí)別圖像文本
什么是 EasyOCR ?
描述: EasyOCR 是一個(gè)用于從圖像中提取文本的 python 模塊, 它是一種通用的 OCR,既可以讀取自然場(chǎng)景文本,也可以讀取文檔中的密集文本。目前支持 80 多種語(yǔ)言和所有流行的書寫腳本,包括:拉丁文、中文、阿拉伯文、梵文、西里爾文等。
EasyOCR 是 PyTorch 實(shí)現(xiàn)的一個(gè)光學(xué)字符識(shí)別 (OCR) 工具。
Q: 使用 EasyOCR 可以干什么?
描述: EasyOCR 支持兩種方式運(yùn)行一種是常用的CPU,而另外一種是需要GPU支持并且需安裝CUDA環(huán)境, 我們使用其可以進(jìn)行圖片中語(yǔ)言文字識(shí)別, 例如小程序里圖片識(shí)別、車輛車牌識(shí)別(即車債管理系統(tǒng))。
安裝 EasyOCR
在命令窗口中,使用 pip 安裝 EasyOCR 穩(wěn)定版本。
pip install easyocr
使用 EasyOCR
import easyocr reader = easyocr.Reader( ['ch_sim', 'en'], gpu=False, model_storage_directory='model/.', user_network_directory='model/.', ) result = reader.readtext('examples/chinese.jpg')
執(zhí)行上面的代碼時(shí),會(huì)自動(dòng)通過(guò)網(wǎng)絡(luò)下載檢測(cè)與識(shí)別模型到指定目錄下。
- ['ch_sim', 'en'],: 指定識(shí)別的語(yǔ)言
- gpu=False,: 設(shè)置是否使用GPU (EasyOCR在GPU上運(yùn)行效率更高, 沒(méi)有GPU或者GPU內(nèi)存不足時(shí)設(shè)置False)
- model_storage_directory='model/.',: 檢測(cè)與識(shí)別模型的存儲(chǔ)路徑 (沒(méi)有設(shè)置時(shí)默認(rèn)存儲(chǔ)在~/.EasyOCR/model目錄)
識(shí)別結(jié)果 result
是一個(gè)列表,列表中的每一項(xiàng)都是一個(gè)長(zhǎng)度為 3
的識(shí)別結(jié)果,例如 ([[189, 75], [469, 75], [469, 165], [189, 165]], '愚園路', 0.3754989504814148)
,它們分別是 邊界框、檢測(cè)到的文本 和 置信度 值。
easyocr-server
EasyOCR 服務(wù)器是一個(gè)用于從圖像中提取文本。它是一種通用的 OCR,既可以讀取自然場(chǎng)景文本,也可以讀取文檔中的密集文本。目前支持 80+ 種語(yǔ)言,并且還在擴(kuò)展。
安裝步驟
步驟 0. 從 GitHub 下載 easyocr-server 并安裝。
git clone https://github.com/hekaiyou/easyocr-server.git
步驟 1. 使用 PyPI 安裝 easyocr、 bottle 和 gevent 模塊。
cd easyocr-server pip install -r requirements.txt
驗(yàn)證安裝
python main.py
- Browser: http://localhost:8080/ocr/
- CMD:
curl http://localhost:8080/ocr/ -F "language=en" -F "img_file=@examples/english.png"
驗(yàn)證成功后,您應(yīng)該能夠在瀏覽器中看到打印的推理結(jié)果。
通過(guò) Docker 部署服務(wù)
我們提供了一個(gè) Dockerfile 來(lái)構(gòu)建鏡像。
docker build -t easyocr-server:latest .
運(yùn)行它。
docker run -it -v {DATA_DIR}:/workspace/model -p 8083:8080 easyocr-server:latest
Language | Code Name |
---|---|
Abaza | abq |
Adyghe | ady |
Afrikaans | af |
Angika | ang |
Arabic | ar |
Assamese | as |
Avar | ava |
Azerbaijani | az |
Belarusian | be |
Bulgarian | bg |
Bihari | bh |
Bhojpuri | bho |
Bengali | bn |
Bosnian | bs |
Simplified Chinese | ch_sim |
Traditional Chinese | ch_tra |
Chechen | che |
Czech | cs |
Welsh | cy |
Danish | da |
Dargwa | dar |
German | de |
English | en |
Spanish | es |
Estonian | et |
Persian (Farsi) | fa |
French | fr |
Irish | ga |
Goan Konkani | gom |
Hindi | hi |
Croatian | hr |
Hungarian | hu |
Indonesian | id |
Ingush | inh |
Icelandic | is |
Italian | it |
Japanese | ja |
Kabardian | kbd |
Kannada | kn |
Korean | ko |
Kurdish | ku |
Latin | la |
Lak | lbe |
Lezghian | lez |
Lithuanian | lt |
Latvian | lv |
Magahi | mah |
Maithili | mai |
Maori | mi |
Mongolian | mn |
Marathi | mr |
Malay | ms |
Maltese | mt |
Nepali | ne |
Newari | new |
Dutch | nl |
Norwegian | no |
Occitan | oc |
Pali | pi |
Polish | pl |
Portuguese | pt |
Romanian | ro |
Russian | ru |
Serbian (cyrillic) | rs_cyrillic |
Serbian (latin) | rs_latin |
Nagpuri | sck |
Slovak | sk |
Slovenian | sl |
Albanian | sq |
Swedish | sv |
Swahili | sw |
Tamil | ta |
Tabassaran | tab |
Telugu | te |
Thai | th |
Tajik | tjk |
Tagalog | tl |
Turkish | tr |
Uyghur | ug |
Ukranian | uk |
Urdu | ur |
Uzbek | uz |
Vietnamese | vi |
上面 easyocr-server 項(xiàng)目的核心代碼在 GitHub: easyocr-server/ocr.py 中,可以按實(shí)際需求修改。
到此這篇關(guān)于Python如何使用EasyOCR工具識(shí)別圖像文本的文章就介紹到這了,更多相關(guān)Python EasyOCR識(shí)別圖像文本內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
如何使用python獲取現(xiàn)在的日期與時(shí)間
學(xué)習(xí)了一段時(shí)間的python,不知道大家對(duì)于代碼的編寫有了屬于自己的一套思路了呢,下面這篇文章主要給大家介紹了關(guān)于如何使用python獲取現(xiàn)在的日期與時(shí)間的相關(guān)資料,需要的朋友可以參考下2022-11-11Python 詳解通過(guò)Scrapy框架實(shí)現(xiàn)爬取CSDN全站熱榜標(biāo)題熱詞流程
Scrapy是用純Python實(shí)現(xiàn)一個(gè)為了爬取網(wǎng)站數(shù)據(jù)、提取結(jié)構(gòu)性數(shù)據(jù)而編寫的應(yīng)用框架,用途非常廣泛,框架的力量,用戶只需要定制開發(fā)幾個(gè)模塊就可以輕松的實(shí)現(xiàn)一個(gè)爬蟲,用來(lái)抓取網(wǎng)頁(yè)內(nèi)容以及各種圖片,非常之方便2021-11-11python編寫函數(shù)注意事項(xiàng)總結(jié)
在本篇文章里小編給大家分享了一篇關(guān)于python編寫函數(shù)注意事項(xiàng)總結(jié)內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。2021-03-03Python實(shí)現(xiàn)遍歷包含大量文件的文件夾
在處理大模型的訓(xùn)練數(shù)據(jù)時(shí),經(jīng)常需要遍歷大型文件夾,其中,可能包括數(shù)千萬(wàn)或數(shù)億個(gè)文件,所以本文為大家整理了Python遍歷包含大量文件的文件夾的方法,希望對(duì)大家有所幫助2023-04-04新建文件時(shí)Pycharm中自動(dòng)設(shè)置頭部模板信息的方法
這篇文章主要介紹了新建文件時(shí)Pycharm中自動(dòng)設(shè)置頭部模板信息的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04基于TensorBoard中g(shù)raph模塊圖結(jié)構(gòu)分析
今天小編就為大家分享一篇基于TensorBoard中g(shù)raph模塊圖結(jié)構(gòu)分析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02python實(shí)現(xiàn)在無(wú)須過(guò)多援引的情況下創(chuàng)建字典的方法
這篇文章主要介紹了python實(shí)現(xiàn)在無(wú)須過(guò)多援引的情況下創(chuàng)建字典的方法,是非常實(shí)用的技巧,需要的朋友可以參考下2014-09-09