導(dǎo)讀
圖像識(shí)別領(lǐng)域有幾個(gè)最熱門(mén)的方向,其中就包含了OCR(Optical Character Recognition,光學(xué)字符識(shí)別),百度、阿里、騰訊都有自己的OCR收費(fèi)服務(wù)。隨著目前數(shù)據(jù)量越來(lái)越大,以及硬件性能的提升,OCR的應(yīng)用也越來(lái)越成熟,像身份證識(shí)別、火車(chē)票識(shí)別、發(fā)票識(shí)別、出租票識(shí)別等等。相信大家也體驗(yàn)過(guò)一些,今天給大家介紹一個(gè)好用的開(kāi)源OCR應(yīng)用EasyOCR,而且還包含多種語(yǔ)言,識(shí)別效果也還不錯(cuò),目前在git上已有8K顆星
git地址:https://github.com/JaidedAI/EasyOCR
EasyOCR
- 介紹
EasyOCR目前能夠支持58種語(yǔ)言,其中有中文(簡(jiǎn)體和繁體)、日語(yǔ)、泰語(yǔ)、韓語(yǔ)等,支持的語(yǔ)言列表如下

EasyOCR支持的語(yǔ)言類(lèi)型
- 模型架構(gòu)

EasyOCR的模型主要分為兩個(gè),基于CRAFT的文字檢測(cè)模型和基于ResNet+LSTM+CTC的識(shí)別模型
- demo
官方也提供了一些效果實(shí)例,如下,對(duì)于這種比較標(biāo)準(zhǔn)的印刷文字以及路牌識(shí)別效果還是不錯(cuò)的

第三方基于easyOCR提供了幾個(gè)demo地址,大家可以試試自己的數(shù)據(jù)看看效果:
- https://colab.fan/easyocr
- https://hub.Docker.com/r/challisa/easyocr
- https://easyocrgpu-wook-2.endpoint.ainize.ai/
我利用第三個(gè)接口(第一個(gè)接口無(wú)法訪(fǎng)問(wèn),docker還沒(méi)測(cè)試),我從網(wǎng)頁(yè)上隨便截取了一段文字來(lái)測(cè)試一下,效果如下

文字基本上能識(shí)別出來(lái),不過(guò)標(biāo)點(diǎn)符號(hào)的識(shí)別不是那么的準(zhǔn)確,我在自己的電腦上按照git上配置了一下環(huán)境,識(shí)別效果要比上面好不少,效果如下

順便測(cè)試了一下火車(chē)票的識(shí)別效果


火車(chē)票的識(shí)別效果還是要差一些,估計(jì)是訓(xùn)練的時(shí)候缺少這樣的數(shù)據(jù)
EasyOCR的安裝
EasyOCR依賴(lài)pytorch的環(huán)境,需要先安裝pytorch,這個(gè)安裝教程大家參考torch的官方安裝教程,在安裝好torch之后大家就可以通過(guò)pip直接來(lái)安裝EasyOCR
- pip安裝
pip install easyocr
- git安裝最新版本
pip install git+git://github.com/jaidedai/easyocr.git
- 模型準(zhǔn)備
在安裝完之后,需要先下載好預(yù)訓(xùn)練模型,模型下載地址請(qǐng)參考git,下載好模型之后,將模型拷貝到~/.EasyOCR/model目錄下,如果找不到路徑請(qǐng)自行創(chuàng)建目錄或者執(zhí)行下面的語(yǔ)句(執(zhí)行之后會(huì)自動(dòng)創(chuàng)建目錄),測(cè)試代碼如下
import easyocr
reader = easyocr.Reader(['ch_sim','en'])
print(result)
- 不足之處
經(jīng)過(guò)測(cè)試,目前開(kāi)源的模型在非印刷文字,例如火車(chē)票、發(fā)票、身份證等識(shí)別效果不是很理想,估計(jì)主要還是缺少這方面的訓(xùn)練數(shù)據(jù)導(dǎo)致的,基于CRAFT的文字檢測(cè)模型對(duì)于曲線(xiàn)文字(例如印章等)的檢測(cè)效果很差。