【OCR】OCR开源文字识别工具

本文介绍了开源项目Umi-OCR,它是一个基于PaddleOCR的OCR工具,支持Windows平台,具有截图OCR、批量OCR、文档识别等功能,离线使用且提供命令行和HTTP接口调用。
摘要由CSDN通过智能技术生成

在日常的工作中,例如自动化测试开展时,经常涉及到一些验证码识别、文本识别、图像识别的场景,市面上虽也有很多识别工具,但质量、准确性参差不齐。

今天给大家推荐一个开源OCR项目:Umi-OCR,功能很强大,而且还可以离线使用,非常受欢迎。

1、项目介绍

6b91b8a3bec74cebbc6f8b58b6fe65d0.png

 

该项目是基于PaddleOCR开发的,用Python编写,目前只支持Windows平台运行,跨平台还在筹备中。

项目地址:

https://github.com/hiroi-sora/Umi-OCR
https://gitee.com/mirrors/Umi-OCR.git

项目结构:

Umi-OCR
├─ Umi-OCR.exe
└─ UmiOCR-data
   ├─ main.py **
   ├─ version.py **
   ├─ site-packages
   │  └─ python包
   ├─ runtime
   │  └─ python解释器
   ├─ qt_res **
   │  └─ 项目qt资源,包括图标和qml源码
   ├─ py_src **
   │  └─ 项目python源码
   ├─ plugins
   │  └─ 插件
   └─ i18n **
      └─ 翻译文件

项目特点:

  • 免费:本项目所有代码开源,完全免费。

  • 方便:解压即用,离线运行,无需网络。

  • 高效:自带高效率的离线OCR引擎,内置多种语言识别库。

  • 灵活:支持命令行、HTTP接口等多种调用方式。

  • 功能:截图OCR / 批量OCR / PDF识别 / 二维码 / 公式识别

2、项目使用

直接在releases中选择合适的版本,可选择以下方式下载:

GitHub https://github.com/hiroi-sora/Umi-OCR/releases/latest
蓝奏云 https://hiroi-sora.lanzoul.com/s/umi-ocr
Source Forge https://sourceforge.net/projects/umi-ocr

本软件无需安装,解压后,点击 Umi-OCR.exe 即可启动程序。

15461650b7384462b221f16e471b70f1.png

 

截图OCR

这个功能很适合在一些不能复制的网页上使用,速度很快,准确率也很高。

8c6b49de9a104075854ec749f7eacaba.png 

🌲🌲🌲 

截图OCR:打开这一页后,就可以用快捷键唤起截图,识别图中的文字。

  • 左侧的图片预览栏,可直接用鼠标划选复制。

  • 右侧的识别记录栏,可以编辑文字,允许划选多个记录复制。

  • 也支持在别处复制图片,粘贴到Umi-OCR进行识别。

批量OCR

如果需要一次性识别多图片,这个功能值得拥有 只需要将所有的图片导入,然后点击开始任务,就可以批量识别了。

640?wx_fmt=png&from=appmsg&tp=wxpic&wxfrom=5&wx_lazy=1&wx_co=1

批量OCR:这一页支持批量导入本地图片并识别。

  • 识别内容可以保存为 txt / jsonl / md / csv(Excel) 等多种格式。

  • 与截图OCR一样,支持文本后处理功能,整理OCR文本的排版和顺序。

  • 支持 忽略区域 。

  • 没有数量上限,可一次性导入几百张图片进行任务。

可自定义忽略区域

640?wx_fmt=png&from=appmsg&tp=wxpic&wxfrom=5&wx_lazy=1&wx_co=1

忽略区域:批量OCR中的一种特殊功能,适用于排除图片中的不想要的文字。

文档识别

d9e53f197f4547d999a6a376815bb96e.png

 

文档识别:

  • 支持导入 pdf, xps, epub, mobi, fb2, cbz 格式的文件。

  • 对扫描件进行OCR,或提取原有文本。可输出为 双层可搜索PDF 。

  • 支持设定 忽略区域 ,可用于排除页眉页脚的文字。

  • 可设置任务完成后 自动关机/休眠 。

支持命令行、接口调用

支持通过命令行或HTTP接口的方式来调用,命令行调用入口就是主程序 Umi-OCR.exe

OCR指令命令行使用:

截屏:Umi-OCR.exe --screenshot
粘贴图片:Umi-OCR.exe --clipboard
指定地址:Umi-OCR.exe --path "D:/xxx.png"
结果输出:Umi-OCR.exe --screenshot --> test.txt

OCR指令均可在控制台回传识别结果。请耐心等待,在一次指令结束前不要输入下一条指令。所有指令支持用前几个字母替代,如--screenshot、--clipboard可以分别简写为--sc、--cl。具体可自己尝试。

HTTP接口 需先勾选开启HTTP服务,

f0e71135513c446e8688d5e2f36ab544.png

必须允许HTTP服务才能使用HTTP接口(默认开启,端口1224)。如果需要允许被局域网访问,请将主机切换到任何可用地址。

示例如下:

import requests
import json

url = "http://127.0.0.1:1224/api/ocr"
data = {
    "base64": "iVBORw0KGgoAAAANSUhEUgAAAC4AAAAXCAIAAAD7ruoFAAAACXBIWXMAABnWAAAZ1gEY0crtAAAAEXRFWHRTb2Z0d2FyZQBTbmlwYXN0ZV0Xzt0AAAHjSURBVEiJ7ZYrcsMwEEBXnR7FLuj0BPIJHJOi0DAZ2qSsMCxEgjYrDQqJdALrBJ2ASndRgeNI8ledutOCLrLl1e7T/mRkjIG/IXe/DWBldRTNEoQSpgNURe5puiiaJehrMuJSXSTgbaby0A1WzLrCCQCmyn0FwoN0V06QONWAt1nUxfnjHYA8p65GjhDKxcjedVH6JOejBPwYh21eE0Wzfe0tqIsEkGXcVcpoMH4CRZ+P0lsQp/pWJ4ripf1XFDFe8GHSHlYcSo9Es31t60RdFlN1RUmrma5oTzTVB8ZUaeeYEC9GmL6kNkDw9BANAQYo3xTNdqUkvHq+rYhDKW0Bj3RSEIpmyWyBaZaMTCrCK+tJ5Jsa07fs3E7esE66HzralRLgJKp0/BD6fJRSxvmDsb6joqkcFXGqMVVFFEHDL2gTxwCAaTabnkFUWhDCHTd9iYrGcAL1ZnqIp5Vpiqh7bCfua7FA4qN0INMcN1+cgCzj+UFxtbmvwdZvGIrI41JiqhZBWhhF8WxorkYPpQwJiWYJeA3rXE4hzcwJ+B96F9zCFHC0FcVegghvFul7oeEE8PvHeJqC0w0AUbbFIT8JnEwGbPKcS2OxU3HMTqD0r4wgEIuiKJ7i4MS16+og8/+bPZRPLa+6Ld2DSzcAAAAASUVORK5CYII=",
    # 可选参数
    # Paddle引擎模式
    # "options": {
    #     "ocr.language": "models/config_chinese.txt",
    #     "ocr.cls": False,
    #     "ocr.limit_side_len": 960,
    #     "tbpu.parser": "multi_para",
    #     "data.format": "text",
    # }
    # Rapid引擎模式
    # "options": {
    #     "ocr.language": "简体中文",
    #     "ocr.angle": False,
    #     "ocr.maxSideLen": 1024,
    #     "tbpu.parser": "multi_para",
    #     "data.format": "text",
    # }
}
headers = {"Content-Type": "application/json"}
data_str = json.dumps(data)
response = requests.post(url, data=data_str, headers=headers)
if response.status_code == 200:
    res_dict = json.loads(response.text)
    print("返回值字典\n", res_dict)

更多详细使用可参考:

  • https://gitee.com/mirrors/Umi-OCR/blob/main/docs/README_CLI.md

  • https://gitee.com/mirrors/Umi-OCR/blob/main/docs/README_HTTP.md

 

 

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
我不确定题目中"C"的具体含义是指什么内容,所以以下是我对"C"的几种可能解释,分别给出对应的回答: 1. C语言(C Language): C语言是一种类似于汇编语言的计算机编程语言,于1972年由丹尼斯·里奇在贝尔实验室开发。它是一种通用型高级编程语言,被广泛应用于软件开发、嵌入式系统和操作系统的开发中。C语言的设计简洁高效,具有良好的跨平台性能,同时也是许多其他编程语言的基础。它的语法相对较为简单,因此易于学习和使用。 2. C++(C Plus Plus): C++是一种广泛使用的编程语言,许多人认为它是C语言的扩展和增强版。C++在C语言的基础上引入了面向对象编程的概念,使得开发者能够更加方便地使用封装、继承和多态等特性。C++的应用范围广泛,既可以用于开发计算机应用程序,也可以用于系统和网络编程,还有游戏开发、嵌入式系统等领域。 3. C盘(C Drive): C盘是指计算机硬盘分区中的一个分区,通常是系统盘,存放着操作系统和一些常用软件。在计算机中,硬盘被划分为多个逻辑分区,每个分区被指定一个字母(如C、D、E等)。C盘通常是系统安装时自动分配给操作系统的分区,它存储着操作系统的文件、应用程序和系统设置等。 希望以上回答能够涵盖到题目中"C"的含义,并对您有所帮助。如有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值