机器之心编辑部
这个文本 OCR 小工具,能让你「所截即所得」。
在我们办公时,是不是常常碰着图片内容转笔墨的需求?
(图片来自网络侵删)你是用什么工具办理的呢?是手机自带拍照转笔墨功能?还是利用 QQ 里面的工具?
本日我们就为大家先容一款 GitHub 用户 ianzhao05 刚发布的小工具——textshot,只须要截屏就能实时天生笔墨。读者也可以通过此项目大致理解如何对图像中的文本进行识别。
项目链接:https://github.com/ianzhao05/textshot
利用方法
运行 textshot.py,在屏幕上打开一个 overlay,在你希望提取的笔墨区域画一个矩形。
利用可选的命令行参数指定措辞。例如,python textshot.py eng + fra 将利用英语作为紧张措辞,利用法语作为次要措辞。默认值为英语(eng)。同时确保为其他措辞安装了适用于 Tesseract 的数据文件。
建议将热键附加到此工具上。对付 Windows 来说,可以利用 AutoHotkey 脚本来完成此操作;textshot.ahk 同时也包含一个可以利用的示例 AHK 脚本。
如果是 Ubuntu 系统,可以打开「键盘设置」,个中显示了所有 Gnome 快捷办法。底部有一个「+」按钮,可用于添加你自己的快捷办法。单击并将其命令设置为 / usr / bin / python3 。如果利用的是 venv,则上面的 python3 路径应指向 venv 的 python3 而不是全局 python3。
部分代码展示
如何安装
安装 Python 3;
复制 TextShot 库,并利用跳转命令 cd 进入该库;
(可选项)创建一个虚拟环境,例如利用 python -m venv .venv ;
利用 pip install -r requirements.txt 安装所需的软件包;
安装 Google 的 Tesseract OCR 引擎(https://github.com/tesseract-ocr/tesseract),并通过将目录添加到系统路径来确保可以从命令行访问 tesseract。
这个实用小工具的开拓也离不开谷歌经典 OCR 开源项目 Tesseract。
Tessract 的利用
Tesseract 是目前最好的用于机器打印字符识别的开源 OCR 工具。20 世纪 80 年代由 Hewlett Packard 开拓,2005 年开源,自 2006 年起由谷歌资助开拓。该工具在受控条件下也能很好地运行,但是如果存在大量噪声或者图像输入 Tesseract 前未经恰当处理,则性能较差。
Tesseract OCR 引擎于 20 世纪 80 年代涌现,更新迭代至今,它已经包括内置的深度学习模型,变成了十分稳健的 OCR 工具。而 Tesseract 和 OpenCV 的 EAST 检测器是一个很棒的组合,感兴趣的读者可参考机器之心宣布。
Tesseract 支持 Unicode(UTF-8)字符集,可以识别超过 100 种措辞,还包含多种输出支持,比如纯文本、PDF、TSV 等。但是为了得到更好的 OCR 结果,还必须提升供应给 Tesseract 的图像的质量。
值得把稳的是,在实行实际的 OCR 之前,Tesseract 会在内部实行多种不同的图像处理操作(利用 Leptonica 库)。常日情形下表现不错,但在一些特定的情形下的效果却不足好,导致准确度显著低落。在将图像通报给 Tesseract 之前,可以考试测验以下图像处理技能,但详细利用哪些技能取决于利用者想要读取的图像:
反转图像
重新缩放
二值化
移除噪声
旋转/调度倾斜角度
移除边缘
所有这些操作都可以利用 OpenCV 或通过 Python 利用 numpy 实现。
Tesseract (v4) 最新版本支持基于深度学习的 OCR,准确率显著提高。底层的 OCR 引擎利用的是一种循环神经网络(RNN)——LSTM 网络。
中文 OCR 项目
中文 OCR,像身份证识别、火车票识别都是常规操作,它也可以实现更炫酷的功能,例如翻译笔在书本上滑动一行,自动获取完全的图像,并识别与翻译中文。
目前比较常用的中文 OCR 开源项目是 chineseocr,它基于 YOLO V3 与 CRNN 实现中文自然场景笔墨检测及识别,目前该项目已经有 2.5K 的 Star 量。
而机器之心之前先容过另一个开源的中文 OCR 项目,基于 chineseocr 做出改进,是一个超轻量级的中笔墨符识别项目。详情可参考:实测超轻量中文OCR开源项目,总模型仅17M
项目地址:https://github.com/ouyanghuiyu/chineseocr_lite
该项目表示,比较 chineseocr,chineseocr_lite 采取了轻量级的主干网络 PSENet,轻量级的 CRNN 模型和行文本方向分类网络 AngleNet。只管要实现多种能力,但 chineseocr_lite 总体模型只有 17M。目前 chineseocr_lite 支持任意方向笔墨检测,在识别时会自动判断文本方向。如下图所示机器之心实测效果示例: