Skip to content
forked from hiroi-sora/Umi-OCR

OCR批量图片转文字识别软件,带界面,离线运行。可排除图片中水印区域的干扰,提取干净的文本。基于 PaddleOCR 。

Notifications You must be signed in to change notification settings

2609665/Umi-OCR

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Umi-OCR 批量图片转文字工具

图片批量离线OCR文字识别工具。可设置忽略选区,排除视频截图的水印、游戏截图的按钮等干扰。

下载

前往下载:Umi-OCR 批量图片转文字v0.1

简介

本软件用于批量导入本地图片,识别图片中的文本,输出到软件面板或本地txt文件。 除了能批量识别普通图片,本软件还有忽略指定区域的特殊功能。

类似含水印的视频截图、含有UI/按钮的游戏截图等,往往只需要提取台词区域的文本,而避免水印和UI文本。本软件可设置忽略某些区域内的文字,来实现这一目的。尤其是对于干净地提取Galgame截图中的台词特别有效。 当有大量的影视和游戏截图需要整理归档,或者想翻找包含某一段台词/文字的截图;将这些图片提取出文字、然后Ctrl+F是一个很有效的方法;这也是开发本软件的初衷。

本软件使用离线OCR模块 PaddleOCR ,使用过程中无需联网。支持更换 官方模型(v2.x版本)或自己训练的模型。通过更换不同的语言模型,软件可识别多国语言。

简单使用

准备

主程序exe与识别器模块文件夹PaddleOCR_Green解压到同一目录下。

快速开始

  1. 打开主程序,将任意 图片/文件夹 拖入窗口中的白色背景表格区域,或点击左上方的 浏览 选择图片。
    • 若拖入文件夹,则加载文件夹下所有 符合后缀(见后) 的图片文件。
  2. 点击右上方 开始任务 ,等待进度条走完。
    • 任务进行中,可随时点击 终止任务(原开始任务按钮)来停止,但下次开始时依然会从头开始。
  3. 点击 识别内容 选项卡查看输出文字,或者前往第一张图片的目录查看识别结果txt文件。
    • 识别内容选项卡中,可快速将全部文本 复制到剪贴板

基础设置

点击 设置 选项卡,配置参数。目前,所有设置项不会保存,下次打开软件将重置。

本地输出文件:

  • 启用识别内容写入txt文件 取消勾选后,不会再生成本地文件,只能在 识别内容 选项卡中查看输出信息。
  • 输出目录输出文件名 设置生成的文件的位置和名称。当拖入第一张图片且这两项设置为空时,自动设置输出路径为第一张图片的父目录,输出文件名为 [转文字]_{父目录}.txt。除非要自定目录和名称,否则这两项默认留空即可。
  • 软件 处理列表 标签页的 清空表格 按钮,除了会清空已导入的图片列表,还会清空 输出目录输出文件名 设置。这样下次拖入新图片时,就能在新的位置存放输出文件。

忽略图片中某些区域内的文字:

  • 点击 添加忽略区域 展开配置忽略区的新窗口。具体配置方式见后。
  • 点击 清空所有区域 清空已配置的所有忽略区域参数。
  • 右方文字提示当前忽略区域的 适用分辨率

识别器设置:

  • 识别器路径 配置当前使用的识别器exe程序。
  • 图片后缀 配置软件允许载入的图片后缀,不同后缀以空格分隔,区分大小写。正常情况下无需改动
    • 图片要求同时满足c++模块的PaddleOCR和python的PIL均可识别。比如 .gif 图片,虽然PIL可以识别,但PaddleOCR无法识别,载入gif文件会导致软件任务失败,因此不允许载入 .gif
    • 不在许可后缀范围内的文件,拖入软件也不会被载入。目前支持的图片后缀为:.jpg .JPG .jpeg .JPEG .png .PNG .webp .WEBP

忽略区域功能

忽略区域是本软件特色功能。可用于批量识别视频截图时排除右上角水印的干扰,批量识别游戏截图时排除UI与按钮的干扰,让识别结果只留下干净的台词文本。

“忽略区域”是指图片上指定位置与大小的矩形区域,完全处于这些区域内的文字块,将被排除。

  • “忽略区域配置”只针对一种分辨率生效。假如配置的分辨率是1920x1080,那么批量识别图片时,只有符合1920x1080的图片才会排除干扰文本。
  • 点击 设置 选项卡中的 添加忽略区域 ,进入忽略区域选择窗口。将任意图片拖入该窗口,可开始预览,并绘制矩形区域。将新图片拖入窗口可预览该图片,但已绘制的忽略区域不会消失;您可切换不同图片来仔细调整忽略区域。
  • 拖入预览的图片必须分辨率相同。假如先拖入1920x1080的图片,再拖入其它分辨率的图片;软件会弹窗警告。只有点击 清空 删除当前已配置的忽略区域,才能拖入其他分辨率图片比应用此分辨率。
  • 绘制 忽略区域1 :拖入图片后,点击左起第一按钮 +忽略区域 1 ,然后在图片上按住左键拖拽,绘制矩形区域。可 撤销 步骤。正常情况下,使用 忽略区域1 即可,无需配置下面两种区域。
    • 绘制 识别区域 :点击 +识别区域 后左键拖拽。当识别区域内存在文本时,忽略区域1失效 ;即处于忽略区域1内的文字也会被输出。
    • 绘制 忽略区域2 :点击 +忽略区域 2 后左键拖拽。当 忽略区域1失效 时,忽略区域2才生效;即处于区域1内的文字 输出、区域2内的文字 不会 输出。
  • 绘制完后,点击 完成 返回软件主窗口。若不想应用此次绘制,则右上角X,取消。

简单案例见下。

排除视频截图中的水印:

  1. 打开忽略区域设置窗口,拖入任一张截图。
  2. 点击选择 +忽略区域 1 ,鼠标按住,绘制矩形完全包裹住水印区域,范围可以大一些。
  3. 点击 完成 。返回主窗口, 开始任务

排除游戏截图中的UI:

  • 假设一组游戏截图,主要分为两类图片:
    • A类为对话模式,字数少,要保留的台词文本在画面下方,要排除的UI分布于底端。
    • B类为历史文本模式,字数多,从上到下都有要保留的文本(与A类UI位置有重合),要排除的UI分布在两侧。
  1. 拖入一张A类图片。选择 +忽略区域 1 ,绘制矩形包裹住要排除的 底端UI
  2. 拖入一张B类图片。选择 +识别区域 ,绘制矩形包裹住小部分 要保留的文本 ,而且不能与A类图中存在的 任何 文本重合。
  3. 选择 +忽略区域 2 ,绘制矩形包裹住B类图要排除的 两侧UI
  4. 点击 完成 。返回主窗口, 开始任务

切换模型库和语言

切换日文模式

软件自带日文识别库,将 识别器路径 修改为 PaddleOCR_Green\PaddleOCR_json_jp.exe 即可。

载入新语言

以法文为例:

  1. 前往 PP-OCR系列模型列表 下载对应的 推理模型french_mobile_v2.0_rec_infer.tar字典文件french_dict.txt
  2. PaddleOCR_Green目录下创建文件夹rec_fr,将解压后的三个模型文件放进去。字典文件可直接放在目录下。
  3. 复制一份识别器PaddleOCR_json.exe,命名为PaddleOCR_json_fr.exe
  4. 复制一份配置单PaddleOCR_json_config.txt,命名为PaddleOCR_json_fr_config.txt
  5. 打开配置单PaddleOCR_json_fr_config.txt,将# rec config相关的两个配置项改为:
    # rec config
    rec_model_dir  rec_fr
    char_list_file french_dict.txt
  6. 保存文件,打开软件,将 识别器路径 改为 PaddleOCR_Green\PaddleOCR_json_fr.exe

切换模型库

软件附带的模型可能过时,可以重新下载PaddleOCR的最新官方模型,享受更精准的识别质量。或者使用自己训练的模型。

  1. 下载模型
  • 前往PaddleOCR下载一组推理模型(非训练模型)。中英文超轻量PP-OCRv2模型 体积小、速度快,中英文通用PP-OCR server模型 体积大、精度高。一般来说,轻量模型的精度已经非常不错,无需使用标准模型。
  • 注意只能使用v2.x版模型,不能使用github上PaddlePaddle/PaddleOCR的v1.1版。v1版模型每个压缩包内有model和params两个文件,v2版则是每组三个文件;不能混用。
  1. 放置模型
  • 将下载下来的方向分类器(如ch_ppocr_mobile_v2.0_cls_infer.tar)、检测模型(如ch_PP-OCRv2_det_infer.tar)、识别模型(如ch_PP-OCRv2_rec_infer.tar)解压,将文件分别放到对应文件夹 cls、det、rec
  • 打开PaddleOcr_json.exe。若无报错,则模型文件已正确加载。“Active code page: 65001”是正常现象。
  1. 调整配置
  • [exe名称]_config.txt是全局配置文件,可设置模型位置、识别参数、开启GPU等。具体参考官方文档
  • 如果修改了exe名称,也需要同步修改配置文件名的前缀。

开发说明

本软件是python调用c++编译的识别器exe程序,识别器exe再加载模型文件和必要的dll链接库,完成图片识别工作。因此可切换不同识别器和模型文件,实现切换多国语言的识别。

PaddleOCR_json.exe接收输入一个本地图片路径,以json格式字符串输出这张图片的识别结果,如此循环往复。具体见 PaddleOCR_Green\README.md

About

OCR批量图片转文字识别软件,带界面,离线运行。可排除图片中水印区域的干扰,提取干净的文本。基于 PaddleOCR 。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%