我们在办公的时候,是不是经常会遇到图片内容转换成文字的需求?
你用什么工具解决的?***有拍照转换文字的功能吗?还是用QQ里的工具?
今天给大家介绍一个GitHub用户ianzhao05刚刚发布的小工具——text shot,只需要截图就可以实时生成文字。读者也可以通过这个项目大致了解如何识别图像中的文字。
项目链接:
https://github.com/ianzhao05/textshot
用法
运行textshot.py,在屏幕上打开一个覆盖图,在要提取的文本区域画一个矩形。
使用可选命令行参数指定语言。比如python textshot.py eng+fra会以英语为主语言,法语为辅语言。默认值为英语(eng)。同时,确保为其他语言安装了适用于Tesseract的数据文件。
建议将热键附加到该工具上。对于Windows,您可以使用AutoHotkey脚本来做到这一点;***图。AHK也包含了一个可以使用的样本ahk脚本。
如果是Ubuntu系统,可以打开键盘设置,里面会显示所有的Gnome快捷键。底部有一个“+”按钮,可以用来添加自己的快捷方式。单击并将其命令设置为/usr/bin/python3。如果你用的是venv,上面的python3路径应该指向venv的python3而不是全局python3。
部分代码显示
如何安装
安装Python 3;;
***TextShot库,使用跳转命令cd进入库;
(可选)创建一个虚拟环境,比如python-mvenv . venv;
使用pip install -r requirements.txt安装所需的软件包;
安装Google的Tesseract OCR引擎,通过在系统路径中添加一个目录,确保可以从命令行访问Tesseract。
这个实用小工具的开发也离不开谷歌经典的OCR开源项目Tesseract。
使用泰丝Ract
Tesseract是机器印刷字符识别的最佳开源OCR工具。20世纪80年代由惠普开发,2005年开源,2006年开始由谷歌赞助。该工具在受控条件下可以很好地运行,但如果有大量噪声或图像在输入到Tesseract之前没有得到适当的处理,性能将会很差。
Tesseract OCR引擎出现于20世纪80年代,至今不断更新迭代。它已经包含了一个内置的深度学习模型,并成为了一个非常强大的OCR工具。Tesseract和OpenCV的EAST detector是很棒的组合,有兴趣的读者可以参考《机器之心报告》。
Tesseract支持Unicode(UTF-8)字符集,可以识别100多种语言。它还包括多种输出支持,如纯文本、PDF、TSV等。但是,为了获得更好的OCR结果,有必要提高提供给Tesseract的图像质量。
值得注意的是,在实际执行OCR之前,Tesseract将在内部执行各种不同的图像处理操作(使用Leptonica库)。通常情况下性能不错,但在某些特定情况下效果不够好,导致准确率明显下降。在将图像传递给Tesseract之前,您可以尝试以下图像处理技术,但是使用哪种技术取决于用户想要读取的图像:
反转图像
重新调节
二值化
消除噪音
旋转/调整倾斜角度
移除边缘
所有这些操作都可以通过Python使用OpenCV或numpy实现。
最新版本的Tesseract (v4)支持基于深度学习的OCR,准确率显著提升。底层OCR引擎使用递归神经网络(RNN)-LSTM网络。
中文OCR项目
身份证识别、火车票识别等中文OCR都是常规操作。还能实现更酷的功能,比如在书本上滑动一行翻译笔,自动获取完整图像,识别翻译中文。
目前中文ocr常用的开源项目是中文OCR,基于YOLO V3和CRNN实现中文自然场景文本检测和识别。目前项目明星容量25k
机器之心此前推出了另一个开源的chineseocr项目,该项目基于中文ocr进行改进,是一个超轻量级的汉字识别项目。具体可参考实测超轻中文OCR开源项目,总模型只有17M。
项目表示,与中文ocr相比,中文ocr_lite采用了轻量级骨干网络PSENet、轻量级CRNN模型和行文本方向分类网络AngleNet。虽然有很多能力需要实现,但是chineseocr_lite整体型号只有17M。目前chineseocr_lite支持任意方向的文字检测,识别时会自动确定文字方向。如下图所示,机器心脏的实测效果示例:
本文来自Total.不想长大投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/570421.html