头图

一款截屏、文字提取超实用的 OCR 小工具

这个文本 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。

部分代码展示

如何安装

  1. 安装 Python 3;
  2. 复制 TextShot 库,并使用跳转命令 cd 进入该库;
  3. (可选项)创建一个虚拟环境,例如使用 python -m venv .venv ;
  4. 使用 pip install -r requirements.txt 安装所需的软件包;
  5. 安装 Google 的 Tesseract OCR 引擎(https://github.com/tesseract-...),并通过将目录添加到系统路径来确保可以从命令行访问 tesseract。

这个实用小工具的开发也离不开谷歌经典 OCR 开源项目 Tesseract。

Tessract 的使用

Tesseract 是目前最好的用于机器打印字符识别的开源 OCR 工具。20 世纪 80 年代由 Hewlett Packard 开发,2005 年开源,自 2006 年起由谷歌赞助开发。该工具在受控条件下也能很好地运行,但是如果存在大量噪声或者图像输入 Tesseract 前未经恰当处理,则性能较差。

Tesseract OCR 引擎于 20 世纪 80 年代出现,更新迭代至今,它已经包括内置的深度学习模型,变成了十分稳健的 OCR 工具。

Tesseract 支持 Unicode(UTF-8)字符集,可以识别超过 100 种语言,还包含多种输出支持,比如纯文本、PDF、TSV 等。但是为了得到更好的 OCR 结果,还必须提升提供给 Tesseract 的图像的质量。

值得注意的是,在执行实际的 OCR 之前,Tesseract 会在内部执行多种不同的图像处理操作(使用 Leptonica 库)。通常情况下表现不错,但在一些特定的情况下的效果却不够好,导致准确度显著下降。在将图像传递给 Tesseract 之前,可以尝试以下图像处理技术,但具体使用哪些技术取决于使用者想要读取的图像:

  1. 反转图像
  2. 重新缩放
  3. 二值化
  4. 移除噪声
  5. 旋转/调整倾斜角度
  6. 移除边缘

所有这些操作都可以使用 OpenCV 或通过 Python 使用 numpy 实现。

Tesseract (v4) 最新版本支持基于深度学习的 OCR,准确率显著提高。底层的 OCR 引擎使用的是一种循环神经网络(RNN)——LSTM 网络。

中文 OCR 项目

中文 OCR,像身份证识别、火车票识别都是常规操作,它也可以实现更炫酷的功能,例如翻译笔在书本上滑动一行,自动获取完整的图像,并识别与翻译中文。

目前比较常用的中文 OCR 开源项目是 chineseocr,它基于 YOLO V3 与 CRNN 实现中文自然场景文字检测及识别,目前该项目已经有 2.5K 的 Star 量。

之前介绍过另一个开源的中文 OCR 项目,基于 chineseocr 做出改进,是一个超轻量级的中文字符识别项目。

项目地址:https://github.com/ouyanghuiyu/chineseocr_lite

该项目表示,相比 chineseocr,chineseocr_lite 采用了轻量级的主干网络 PSENet,轻量级的 CRNN 模型和行文本方向分类网络 AngleNet。尽管要实现多种能力,但 chineseocr_lite 总体模型只有 17M。目前 chineseocr_lite 支持任意方向文字检测,在识别时会自动判断文本方向。如下图所示实测效果示例:

逆锋起笔是一个专注于程序员圈子的技术平台,你可以收获最新技术动态最新内测资格BAT等大厂的经验精品学习资料职业路线副业思维,微信搜索逆锋起笔关注!
165 声望
16 粉丝
0 条评论
推荐阅读
最全计算机网络基础知识——总结篇
本文作者:Poll的笔记 链接:[链接]阅读目录网络层次划分OSI七层网络模型IP地址子网掩码及网络划分ARP/RARP协议路由选择协TCP/IP协议UDP协议 DNS协议NAT协议DHCP协议HTTP协议一个举例计算机网络学习的核心内容就...

code小生阅读 997

封面图
麒麟操作系统 (kylinos) 从入门到精通 - 办公环境 - 第二十篇 在PKS下使用Xmind思维导图
类别:笔记本型号:中国长城 NF14C硬件平台:飞腾处理器(ArmV8 指令集)系统:银河麒麟操作系统 V10 SP1(2203) 关键词:信创,麒麟系统,linux,xmind,思维导图,飞腾,arm

码上世界阅读 1.4k

封面图
windows to go 和 linux to go 制作教程
简单来说,Ventoy是一个制作可启动U盘的开源工具。有了Ventoy你就无需反复地格式化U盘,你只需要把 ISO/WIM/IMG/VHD(x)/EFI 等类型的文件直接拷贝到U盘里面就可以启动了,无需其他操作。你可以一次性拷贝很多个不...

qiaoyu阅读 797

封面图
手写一个业务数据比对库
在开发 web 应用程序时,性能都是必不可少的话题。同时通用 web 应用程序离不开数据的增删改查,虽然用户大部分操作都是在查询,但是我们也不可以忽略更改数据对于系统的影响。于是个人写了一个业务数据比对库 di...

jump__jump阅读 716

耗时减半?腾讯云OCR只做了3件事
导读|腾讯云OCR团队在产品性能的长期优化实践中,结合客户使用场景及产品架构对服务耗时问题进行了深入剖析和优化。本文作者——腾讯研发工程师彭碧发详细介绍了OCR团队在耗时优化中的思路和方法(如工程优化、模型...

腾讯云开发者1阅读 249

Adobe Color 的替代软件:焰火十二卷
Adobe Color 是一个配色网站,可以在线生成不同风格的色彩主题,受到设计师的喜爱。然而,Adobe Color 服务器在国外,导致连接速度很慢,甚至会连接不上。并且,Adobe Color 网站需要登录 Adobe 云服务才能保存和...

本征喵函数阅读 474

封面图
FOTS:端到端的文本检测与识别方法的原理方法与优势
导言:基于深度学习的可端到端训练的自然场景检测与识别算法(text spotting)由于其简洁高效且统一的结构,逐渐取代了过去将检测与识别分阶段训练然后拼接在一起的方案,成为自然场景文本检测与识别的主流研究方向...

合合技术团队阅读 367

165 声望
16 粉丝
宣传栏