关于忽略指定区域的特殊功能:
类似含水印的视频截图、含有UI/按钮的游戏截图等,往往只需要提取字幕区域的文本,而避免提取到水印和UI文本。本软件可设置忽略某些区域内的文字,来实现这一目的。
当有大量的影视和游戏截图需要整理归档,或者想翻找包含某一段台词/字幕的截图;将这些图片提取出文字、然后Ctrl+F是一个很有效的方法。这是开发本软件的初衷。
关于离线OCR引擎 PaddleOCR-json :
对 PaddleOCR 2.6 cpu_avx_mkl C++ 的封装。效率高于Python版本PPOCR及部分Python编写的OCR引擎,通常比在线OCR服务更快(省去网络传输的时间)。支持更换Paddle官方模型(兼容v2和v3版本)或自己训练的模型,支持修改PPOCR各项参数。通过添加不同的语言模型,软件可识别多国语言。
下载压缩包并解压全部文件即可。
点击截图按钮或自定义快捷键,唤起截图识别。
多屏幕用户请注意
由于windows缩放对屏幕坐标系带来的影响,若外接多块屏幕,且缩放比例不一致时,可能导致Umi-OCR内置截图模块异常,如画面不完整、窗口变形、识别不出文字等。
若出现这种情况,请在系统设置里的【更改文本、应用等项目的大小】将所有屏幕调到相同数值。
若不想修改系统设置,软件还附带了第二套截图方案:调用windows内置的“截图和草图”来完成截图并唤起OCR。可在软件设置里切换。
若系统截图后不能唤起OCR,请确保系统能通过 win+shift+S 触发截图,且自动复制到剪贴板 的开关不能关闭(默认是打开的)。
粘贴图片到软件
在任何地方(如文件管理器,网页,微信)复制图片,软件上点击粘贴按钮,自动识别。
批量识别本地图片文件
将图片或文件夹拖进软件,批量转换文字。也可以点击按钮打开浏览窗口导入。
识别结果将保存到本地。可选生成纯文本txt文件、带链接Markdown文件、原始信息jsonl文件等不同格式。可配置任务完成后执行关机/待机。
OCR识别出的文本是按“块”划分的,通常一行文字分为一块,有时还会将一行误划分为多块,这给阅读带来了不便。文本块后处理就是对文本块进行再加工的过程,合并同一行或同一段落内的文字,按正确的顺序排序。
下图表示不同排版应该选用何种处理方案:
所有方案一览:
横排-优化单行
将误划分为多块的同一行文字合并到一行。
横排-合并多行-左对齐
将多个左对齐的行视为同一段落,合并文字。左侧未对齐或行距过大的行视为下一段落。
横排-合并多行-自然段
将多个左对齐的行视为同一段落,且第一行的开头允许多空出两个全角空格的宽度。
横排-合并多行-模糊匹配
只要垂直投影有重叠,行高一致,距离较近的文本块,视为同一段落。
竖排-从左到右-单行 / 竖排-从右至左-单行
优化竖排识别,合并同一行文字,按从左到右或从右到左的顺序输出每一行。注意,必须搭配支持竖排识别的模型库(识别语言)一起使用。
可视化预览:
可以在忽略区域编辑器内预览文本块后处理的效果。编辑器中以虚线框标出识别到、经过后处理的文字块。
这里仅仅是借用了编辑器来展示后处理的效果,实际运行任务时 忽略区域机制 早于 后处理机制 执行,不受后处理的影响。
忽略区域是本软件特色功能,可用于排除图片中水印的干扰,让识别结果只留下所需的文本。
“忽略区域”是指图片上指定位置与大小的矩形区域,完全处于这些区域内的文字块,将被排除。
点击 设置 选项卡中的 打开忽略区域编辑器 ,进入编辑器窗口。
将任意图片 拖入 该窗口,可预览该图片。将新图片拖入窗口可切换预览,但已绘制的忽略区域不会消失;可切换不同图片来仔细调整忽略区域。
绘制 忽略区域 :拖入图片后,点击选中左起第一按钮 +忽略区域 A ,然后在图片上按住左键拖拽,绘制矩形区域。可 撤销 步骤。
绘制完后,点击 完成 返回软件主窗口。若不想应用此次绘制,则右上角X,取消。
简单案例见下。
简单排除视频截图中的水印:
打开忽略区域设置窗口,拖入任一张截图。稍等约1秒,面板上会显示出图片,识别到的文字区域会被虚线框起来。发现右上角的水印也被识别到了。
点击选择 +忽略区域 A 。在画面上按住左键拖拽,绘制方框完全包裹住水印区域,范围可以大一些。可绘制多个方框。
点击 完成 。返回主窗口, 开始任务 。
排除游戏截图中的两种UI:
假设有一组游戏截图,主要分为两类图片,这两类图片的文字位置和UI位置不太相同:
甲类(上图左)为对话模式,字数少,要保留的台词文本在画面下方,要排除的UI分布于底端。
乙类(上图右)为历史文本模式,字数多,从上到下都有要保留的文本(与甲类UI位置有重合),要排除的UI分布在两侧。
拖入一张甲类图片。选择 +忽略区域 A ,绘制方框包裹住要排除的 底端UI 。可绘制多个方框。
拖入一张乙类图片。选择 +识别区域 ,绘制方框包裹住 小部分要保留的文本 。注意只要该区域内含有任意保留文本即可,不需要画得很大,不需要包裹住所有保留文本;不能与甲类图中 可能存在的任何文本 重合。
然后选择 +忽略区域 B ,绘制方框包裹住乙类图要排除的 两侧UI 。可绘制多个方框。
点击 完成 。返回主窗口, 开始任务 。
忽略区域处理逻辑:
忽略区域A :正常情况下,处于 忽略区域A 内的文字 不会 输出。
识别区域 :当识别区域内存在文本时,忽略区域A失效 ;即处于忽略区域A内的文字也 会 被输出。
忽略区域B :当 忽略区域A失效 时,忽略区域B才生效;即处于区域A内的文字 会 输出、区域B内的文字 不会 输出。
“忽略区域配置”只针对一种分辨率生效。假如配置的分辨率是1920x1080,那么批量识别图片时,只有符合1920x1080的图片才会排除干扰文本;1920x1081的图片中的文字会全部输出。
拖入预览的图片必须分辨率相同。假如先拖入1920x1080的图片,再拖入其它分辨率的图片;软件会弹窗警告。只有点击 清空 删除当前已配置的忽略区域,才能拖入其他分辨率图片,并应用此分辨率。
除了默认的自动关机/待机外,您还可创建自己的计划任务,让软件在完成一次批量识别后执行自定义cmd命令。
在软件关闭的情况下,打开配置文件 Umi-OCR_config.json 。也可以先打开软件,点击设置页最底部的 打开设置文件 ,然后退出软件。
在okMission中添加一项元素。
键为任务名称,值为字典,其中code为cmd命令。多条命令可用&分隔。例:
"我的任务": {"code": "cmd命令1 & 命令2"}
添加多国语言
方法一:下载 [Umi-OCR 多国语言识别扩展包] ,拷贝到软件目录即可。
扩展包内置语言:繁中,日,韩,俄,德,法
方法二:手动下载添加 PP-OCR 模型库
模型分为三种:det检测,cls方向分类,rec识别。其中det和cls是多语言通用的,只需下载新语言的rec识别模型即可。
前往 PP-OCR系列V3多语言识别模型列表 ,下载一组rec识别模型。
若V3模型列表里没有找到目标语言,可以去支持语言列表查看PPOCR有没有提供这种语言。若有,则可能它暂未推出V3模型,可以先使用旧版V2模型。(V3模型网址中的2.x一路换成更小的数字可以查看旧版页面)
前往 PP-OCR系列 字典列表 ,下载对应语言的字典文件。(但V3英文字典en_dict.txt不是本目录下的那个,而是在上一级目录)
将下载好的文件解压放进软件目录的 PaddleOCR-json 文件夹中。
复制一份 PaddleOCR_json_config_[模板].txt ,改一下名。(文件名不允许有非英文字符!)
打开复制好的 PaddleOCR_json_config_XX.txt ,将 rec路径 rec_model_dir 和 字典路径 rec_char_dict_path 改成目标语言的文件(夹)的名称。若模型库是v2版本,还必须加上一行 rec_img_h 32 。
回到上一层目录 Umi-OCR ,打开 Umi-OCR_config.json ,在 “ocrConfig” 中添加新语言的信息。键为语言名称,值的 path 为config txt文件的名称。保持json格式,注意逗号。(修改config.json文件时,请确保未打开软件,否则配置可能被覆盖。)
打开软件,检查设置页的识别语言下拉框是否已经能选择该语言。
添加到开始菜单
软件创建一个快捷方式
打开系统目录 C:\ProgramData\Microsoft\Windows\Start Menu\Programs ,将快捷方式扔进去。
添加到开机自启
软件创建一个快捷方式
打开系统目录 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp ,将快捷方式扔进去。
添加到运行(Win+R)
在任何地方创建一个文件夹,名字随意,将该文件夹的路径加入系统环境变量。
软件创建一个快捷方式,改一个简短的名字,如umi。
将快捷方式扔进第1步的文件夹中。
任何时候按下Win+R,在弹窗中输入umi,即可打开软件。
提示:请不要起名为ocr,因为系统可能存在同名的注册路径,无法用此指令唤起第三方软件。
下方这份完整的软件测试视频学习教程已经上传CSDN官方认证的二维码,朋友们如果需要可以自行免费领取 【保证100%免费】
Umi-OCR是一种基于深度学习的OCR(Optical Character Recognition,光学字符识别)技术。它是由中国科学院深圳先进技术研究院和深圳大学联合推出的开源OCR系统。
Umi-OCR使用了一系列深度学习技术,包括卷积神经网络(Convolutional Neural Networks,CNN)、循环神经网络(Recurrent Neural Networks,RNN)、长短时记忆网络(Long Short-Term Memory,LSTM)和注意力机制(Attention Mechanism)等,可以识别包括中文、英文、数字和符号在内的多种语言的字符和文字。
偶然间发现了一个图片转文字工具,可以安装为PWA,离线使用,用了一段时间,免费识别无限制,支持中文、中文繁体、英语等语言,识别准确率还好,界面简洁清爽,交互体验流畅,满足了我的所有需求。
网站链接:易飞文字识别
导入图片和PDF
打开网站,直接把要识别的多张图片或PDF拖进去,或者也可以「Ctrl+V」粘贴进去,添加图片后就会自动开始识别。
我们平时大概都遇到过像网页文字不给复制或者搜索软件错误提示时只能手敲的情况。这类问题最好的解决方法是使用桌面OCR工具识别后复制,之前也给大家推荐过PandaOCR,不过目前需要自己申请识别接口也只能联网使用,有些麻烦,其实也有不少需要离线使用的场景。
市面上支持离线OCR识别的工具很少很少,小编所知道的也只有AB/BYY一款,但它安装完都差不多要1G了。
一款支持离线识别的OCR工具需要多大呢?由于又要识别又要有自己的数据库,小编原以为需要几十M甚至上百M,但今天这款工具给出答案是:546Kb
返回的数据是一个很复制的JSON格式数据。通过在线的JSON转JavaBean工具得到JavaBean格式,进行解析。(工具地址:https://www.bejson.com/json2javapojo/new/)值得注意的是data的value是一个数组,这是我和服务器那边都踩了的坑。一、设置JSON格式。二、发送POST请求。三、解析返回来的数据。
1. 安装环境:windows10+python3.7+anaconda+cuda10.0.130
2. 官方安装教程:https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.1/doc/doc_en/installation_en.md