机器之心报道
参与:路
Easy OCR 支持 40 多种语言,所需的 GPU 内存为 2GB ,并且支持在 CPU 模式中运行。
OCR(光学字符识别)是是指对文本资料的图像文件进行分析识别处理,获取文字及版面信息的过程。目前,这项技术在拍照搜题、拍照翻译等应用中得到广泛使用。
今天,我们来介绍一个支持 40 多种语言的 OCR 库:Easy OCR。
GitHub 地址:https://github.com/JaidedAI/EasyOCR
该 OCR 库使用深度神经网络构建而成:CNN LSTM CTC loss,包含三个解码器可选项:贪心搜索、束搜索和词束搜索(word-beam search)。
据介绍,Easy OCR 的性能可与商业 API 解决方案媲美,且已开源,支持本地运行,因此适合关注数据隐私和适应性的人使用。
作者表示:与标准的开源 OCR 工具 Tesseract 相比,Easy OCR 的准确率更高,不过速度稍慢。
支持 40 种语言,识别效果优秀
Easy OCR 支持对 42 多种语言执行 OCR 识别,包括简繁中文、日语、韩语、英语、德语、乌兹别克语、越南语、斯瓦希里语等。
Easy OCR 支持的语言清单。
下图展示了 Easy OCR 的识别效果:
Easy OCR 的识别结果
此外,Easy OCR 所需的 GPU 内存为 2GB ,并且支持在 CPU 模式中运行,因此具备较强的实用性。
Easy OCR 的原理
如前所述,Easy OCR 利用 CNN LSTM CTC loss 构建而成,包括三个解码器可选项:贪心搜索、束搜索和词束搜索(word-beam search)。其中检测部分基于 CRAFT 算法预训练得到,识别部分则基于作者自有数据集训练得到。
CRAFT 是一个字符级别的文本检测网络,使用分水岭算法生成 label,采用 heatmap 得到激活值最大的目标区域。
Easy OCR 使用了 CRAFT 文本检测器的官方 Pytorch 实现。
CRAFT 实现地址:https://github.com/clovaai/CRAFT-pytorch
在处理过程中,Easy OCR 对输入图像中的每一行文字提供 [location, text, model confident] 结果,如下图所示:
对于给定图像,Easy OCR 分别对图像中的每一行文字提供 [location, text, model confident] 结果。
此外,使用者还可以在不同的数据集上对模型进行重新训练,不过目前项目作者尚未放出训练脚本。开发者可以参考该库 https://github.com/clovaai/deep-text-recognition-benchmark 进行模型重训练。
关于 Easy OCR 的更多细节及代码详情,参见 GitHub 项目地址。
本文为机器之心报道,转载请联系获得授权。