导读

一个超好用的开源OCR

图像识别领域有几个最热门的方向,其中就包含了OCR(Optical Character Recognition,光学字符识别)百度阿里腾讯都有自己的OCR收费服务。随着目前数据量越来越大,以及硬件性能的提升,OCR的应用也越来越成熟,像身份证识别火车票识别发票识别出租票识别等等。相信大家也体验过一些,今天给大家介绍一个好用的开源OCR应用EasyOCR,而且还包含多种语言,识别效果也还不错,目前在git上已有8K颗星

git地址:https://github.com/JaidedAI/EasyOCR

EasyOCR

  • 介绍

EasyOCR目前能够支持58种语言,其中有中文(简体和繁体)日语泰语韩语等,支持的语言列表如下

EasyOCR支持的语言类型

  • 模型

 

EasyOCR的模型主要分为两个,基于CRAFT的文字检测模型和基于ResNet+LSTM+CTC的识别模型

  • demo

官方也提供了一些效果实例,如下,对于这种比较标准的印刷文字以及路牌识别效果还是不错

 

第三方基于easyOCR提供了几个demo地址,大家可以试试自己的数据看看效果:

  1. https://colab.fan/easyocr
  2. https://hub..com/r/challisa/easyocr
  3. https://easyocrgpu-wook-2.endpoint.ainize.ai/

我利用第三个接口(第一个接口无法访问,docker还没测试),我从网页上随便截取了一段文字来测试一下,效果如下

 

文字基本上能识别出来,不过标点符号的识别不是那么的准确,我在自己的电脑上按照git上配置了一下环境,识别效果要比上面好不少,效果如下

 

顺便测试了一下火车票的识别效果

 


 

火车票的识别效果还是要差一些,估计是训练的时候缺少这样的数据

EasyOCR的安装

EasyOCR依赖pytorch的环境,需要先安装pytorch,这个安装教程大家参考torch的官方安装教程,在安装好torch之后大家就可以通过pip直接来安装EasyOCR

  • pip安装
pip install easyocr
  • git安装最新版本
pip install git+git://github.com/jaidedai/easyocr.git
  • 模型准备

在安装完之后,需要先下载好预训练模型,模型下载地址请参考git,下载好模型之后,将模型拷贝到~/.EasyOCR/model目录下,如果找不到路径请自行创建目录或者执行下面的语句(执行之后会自动创建目录),测试代码如下

import easyocr
reader = easyocr.Reader(['ch_sim','en']) 
print(result)
  • 不足之处

经过测试,目前开源的模型在非印刷文字,例如火车票发票、身份证等识别效果不是很理想,估计主要还是缺少这方面的训练数据导致的,基于CRAFT的文字检测模型对于曲线文字(例如印章等)的检测效果很差。

胜象大百科