
Auto Byte
专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI
关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯
这个文本 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 <path-to-textshot.py>。如果使用的是 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。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 开源项目是 chineseocr,它基于 YOLO V3 与 CRNN 实现中文自然场景文字检测及识别,目前该项目已经有 2.5K 的 Star 量。项目地址:https://github.com/ouyanghuiyu/chineseocr_lite该项目表示,相比 chineseocr,chineseocr_lite 采用了轻量级的主干网络 PSENet,轻量级的 CRNN 模型和行文本方向分类网络 AngleNet。尽管要实现多种能力,但 chineseocr_lite 总体模型只有 17M。目前 chineseocr_lite 支持任意方向文字检测,在识别时会自动判断文本方向。如下图所示机器之心实测效果示例: