OCR技术路线图总体上可分为五步:
图像预处理、切割字符、识别字符、恢复版面、后处理文字。
https://www.toutiao.com/article/7211067985572971042/?app=news_article×tamp=1678958335&use_new_style=1&req_id=20230316171854037BAAB72389050018F0&group_id=7211067985572971042&share_token=21D1E37E-9B9A-470C-B2D1-B156C218A94D&tt_from=weixin&utm_source=weixin&utm_medium=toutiao_ios&utm_campaign=client_share&wxshare_count=1&source=m_redirect&wid=1678958353183
实测超轻量中文OCR开源项目,总模型仅17M_鲟曦研习社
【AI实战】超赞的几个OCR开源项目_开源ocr_szZack的博客-CSDN博客
OCR引擎选择
OCR开源项目 | 简介 | 优点 | 劣势 |
---|---|---|---|
Tesseract | Tesseract 是谷歌开发并开源的图像文字识别引擎,使用python开发。 | 1. github上面star非常多,项目非常活跃 2. 识别的语言和文字非常多 3. 后面做背书的公司非常强(google) | 1. 不是专门针对中文场景 2. 相关文档主要是英文,对于阅读和理解起来有一定困难 3. 学习成本比较高 4. 源码较多,并且部分源码是c++,学习起来难度比较大 |
PaddleOCR | PaddleOCR 是百度开源的中文识别的ocr开源软件 | 1. github上面star非常多,项目非常活跃 2. 模型只针对中文进行训练 3. 后面做背书的公司非常强(baidu) 4. 相关的中文文档非常齐全 5. 识别的精确度比较高 | 1. 目前使用的训练模型是基于百度公司自己的PaddlePaddle框架,对于小公司来说并不主流(对比于ts或者pytorch),所使用深度学习框架为后续其他深度学习无法做很好的铺垫 2. 项目整体比较复杂,学习成本较高 |
EasyOCR | EasyOCR 是一个用 Python 编写的 OCR 库,用于识别图像中的文字并输出为文本,支持 80 多种语言。 | 1. github上面的star也是比较多,但是最近不是特别活跃 2. 支持的语言也是非常多的,多达80多种 3. 识别的精确度尚可 | 1. 从官方的页面体验来说识别的速度较慢 2. 识别的文字种类多,学习难度较高 3. 相关的官方文档是基于英文的,学习难度较高,对于新手不太友好 |
chineseocr | ... | 1. github上面的star也是比较多 2. 专门针对中文进行学习和训练的模型 3. 相关的文档比较多,上手相对比较容易 | 1. 因为没有大厂和公司的背书, 所以存在一些bug 2. 对于复杂场景下的效果不佳 3. 模型都是现成的,如果要新训练模型难度比较高 |
chineseocr_lite | ... | 1. github上面的star也是比较多 2. 专门针对中文进行学习和训练的模型 3. 相关的文档比较多,上手相对比较容易 4. 比较轻量级,部署也比较方便 | ... |
TrWebOCR | ... | 1. 部署简单 2. 使用简单 3. 有对应的web页面,测试方便 4. 有对应的web接口,方便调用 | 1. 核心模型不开源,无法进行再次学习 2. 无法进行后续训练 3. 必须要联网才能使用 4. 精度识别一般 5. 项目不是很活跃 |
cnocr | ... | 1. 使用简单 2. 文档齐全 3. 代码全部开源,可以进行修改 4. 预定义的模型较多 5. 便于学习和模型重新训练 | 1. 精确度不高 2. 没有对应的web界面和接口 3. 需要配合cnstd进行使用 |
OCR(Optical Character Recognition,光学字符识别)是一种将图像或手写文字转换为可编辑或可搜索文本的技术。在现代社会中,OCR技术已经被广泛应用于文档管理、自动化数据录入等领域。为了满足不同用户的需求,越来越多的开源OCR软件项目在不断涌现。下面我们来看看目前比较流行的几个OCR开源项目。
1. Tesseract
Tesseract是一个由谷歌公司开源的OCR引擎,最初由HP实验室开发。该引擎采用了深度学习技术,支持多种语言识别,重点支持英语,但也可以轻松地进行其他语言训练。Tesseract可用于Windows、Linux、Mac操作系统,还提供API供开发者使用。
2. OCRopus
OCRopus是一款由德国科学家开发的OCR软件,也是一个比较流行的开源OCR项目。OCRopus基于Python实现,采用“自上而下”的结构架构,在文本线定位、文本行识别、字符识别等方面表现优异。目前,OCRopus支持多种语言的OCR识别,可在Windows、Mac、Linux等系统上使用。
3. GOCR
GOCR也是一款流行的OCR开源项目,采用的是C语言编写,支持类Unix和Windows操作系统。GOCR在字符识别和文本行识别方面表现不太理想,但在处理数字和标点符号方面有其独特的优势,特别适用于处理金融票据。
4. Kraken
Kraken是一款基于深度学习的OCR引擎,目前最新的版本为1.1.0,适用于多种语言、多种格式的文本识别,支持Docker容器化部署。Kraken在布局分析、文本行识别、字符识别方面表现远超其他OCR开源项目,是最近几年发展最快的OCR引擎之一。
5. CuneiForm
CuneiForm是由俄罗斯开发的OCR软件,可支持多种语言和多种文本格式的识别,包括PDF、DJVU、HTML等。CuneiForm采用的是局部二值化和联合校验的方法,能够在处理含有零散文本和缺失部分文本的图像时有较好的效果。
6.hn——ocr