Skip to main content

Semi-Automatic OCR Annotation Tool Based-on labelme

Project description

半自动OCR标注工具

通过labelme改进而来,十万个感谢给原作者

cover.png

0. 版本log

  • [x] 19-11-20 V1.0.0
  • [X] 19-11-25 V1.1.0
  • [X] 19-11-26 V1.1.7
  • [X] 19-11-27 V1.1.8
  • [x] 19-11-27 V1.1.8.1
  • [x] 19-11-28 V1.1.9
  • [x] 19-11-29 V1.2.0
  • [x] 19-11-29 V1.2.1
  • [x] 19-12-11 V1.2.6
  • [x] 19-12-12 V1.2.7
  • [x] 19-12-18 V1.3.0
  • [x] 19-12-19 V1.3.1
  • [x] 19-12-19 V1.3.2
  • [x] 19-12-30 V1.3.4
  • [x] 20-01-02 V1.3.5

使用 pip install labelyou 进行安装,如果已安装,可以先卸载pip uninstall labelyou再进行安装,或者直接pip install -U labelyou更新安装

命令行输入 labelyou 运行.

如果运行提示pyqt错误,请使用pip install PyQt5安装pyqt5.

安装opencv, pip install opencv-python opencv-contrib-python

v1_2_6.gif

1. 功能介绍

  • [x] 界面优化,重新排版,图标尺寸调整适应界面.
  • [x] 汉化, 所有常用菜单, 命令汉字表示
  • [x] 快捷键,每个操作都有快捷键提示,常用操作加入工具栏
  • [x] 用户跟踪, 通过输入标注人员姓名,在每个标注文件中记录对应姓名.
  • [x] 自动识别, 新增标注框和修改label时自动识别对应文本,填写到 修改文本对话框中.
  • [x] 自动检测及识别, 调用有道API(or自研算法等)在加载图像时自动检测文本框并识别相应文本.
  • [x] 人性化的改进,比如记录标注框个数,隐藏/显示标注框,敏感功能警示提醒, 等
  • [x] 人性化的配置,比如加载是否填充, 等
  • [x] json文件中增加字段区别人工标注或者模型自动标注的框和文本
  • [x] 用不同颜色标识哪些自动检测的框需要检查
  • [x] 人工检查时修改了框/词的标记,框颜se
  • [x] 标注框编号,跟踪每一个标注框。
  • [x] 文本行标记功能,通过后台自动计算在一行的小框,对每个小框进行编号,保存行信息, 可在保存时自动运算
  • [x] 添加同行文本框预览效果,不一定要在保存的时候才计算同行信息,便于可视化和修改。
  • [x] 不在打开文件夹或者图像时就自动调用检测识别接口,新增按钮,在用户点击时才开始识别
  • [x] 显示/隐藏中心线和中心点
  • [x] 点击自动标注时,由于检测识别用时过长,页面上应显示提示信息,以防用户误认为软件运行出错,没有反应;自动标注结束时,提示文本消失,canvas重回编辑模式
  • [x] 删除选中的边,将直线打断(选中需要删除的线段,右键==>删线段)
  • [x] 无论何时做了任何的操作,当点击“AI识别”时将已有的框线都清空
  • [x] “删边”改成“删线段”
  • [x] 生线时自动隐藏框
  • [x] 藏线时自动显示框
  • [x] 线段只能有删除功能,并且每次只能删一条
  • [x] 有删线窗口提示
  • [x] 对线段进行删除操作时,有高亮显示
  • [x] label标签列表框的编号显示有问题(由生线之后保存导致的,由load file时导致的)(不需要在标签框显示形状的编号了)
  • [x] 删框提示窗口,默认yes
  • [x] check版本布局,增加ok和notok按钮
  • [x] 统计各种颜色的框数量,实时更新显示
  • [x] 将API URL作为配置文件,在home目录下面的labelyou_cfg.json文件中
  • [x] 把版本的配置也放在labelyou_cfg中配置, 默认为标注版本(label), 可选值为label, check1, check2
  • [x] 修改显示框角点大小,遮挡文本不便于检查。
  • [x] 第一次check版本时AI标注的蓝色框不显示
  • [x] 第二次check版本只显示人工标注的框,同时不显示AI标注功能
  • [x] 保存标注文件时,如果没有生成线,则弹出提示框生成线
  • [x] 删框不需要弹出提示框,直接删除
  • [x] check1版本只显示红色,直接过滤蓝色导致风险,需要在显示蓝色的时候显示蓝色。所以增加蓝色按钮,可以自定义是否显示蓝色
  • [x] Linux迁移到Windows导致字符集有问题,打开label文件报错,使用多种编码方式解决之
  • [x] 加载图像时默认放大
  • [x] 增加绘制矩形的功能,并且实现四个点可拖动
  • [x] 矩形框优化
  • [x] 画布拖动功能实现,之前只能是滚动条,现在可以在空白处左键按住拖动画布,同时保证 顺滑 丝滑
  • [x] check版本取消AI标注按钮(动态调整,啥时候需要了又加进来)
  • [x] 快捷键优化
  • [x] 双击标注框修改label,即弹出label修改框
  • [x] 重新定义版本,label和check(1,2)
  • [x] 使用AI标注功能时,对于检测出来的红框使用识别模型过滤一遍,如果label相等则改为蓝框,若不同则保持原来的红框。经过不完全测试,可以过滤掉50+%的红框
  • [x] 取消输入文本时自动填写功能,取消label历史记录,优化UI
  • [x] 优化删掉shape时,labellist设置当前item为删除的下一个而不是默认的第一个
  • [x] 打包成windows可执行程序,避免配置繁琐的Python环境,同时也打包Linux版本,直接双击即可运行。
  • [ ] 其他

2. 配置

  • python3.7.0, 建议安装Anaconda
  • PyQt5
  • opencv4.1+
  • networkx
  • etc.

3. FAQ及技巧

  • 保存文件出错咋办?

首先检查一下是否有非法字符

  • 那么多快捷键,我咋知道用哪个?

鼠标移到相应按钮上面会有快捷键提示,不过记不住也没关系,这里有一份常用快捷键列表:

 打开文件: Ctrl+O
 打开文件夹: Ctrl+U
 保存: Ctrl+S
 删除标注文件: Ctrl+Delete

 打开下一张图: D或者右方向键 →
 打开上一张图: A或者左方向键 ←

 放大: 按住Ctrl,鼠标滚轮上滑或者Ctrl+ +
 缩小: 按住Ctrl,鼠标滚轮下滑或者Ctrl+ -

 绘制多边形:Ctrl + N
 绘制矩形: Ctrl + R
 切换到编辑模式: Ctrl+J
 删除框: 编辑模式下选中框,按Delete
 回退:Ctrl+Z或者回格(backspace)键(绘制过程中取消上一个点)
 编辑标注框标签: 快捷键e或者双击标注框
 绘制过程中想要取消:按ESC(一般是最左上角那个键)
  • 那么多版本,我咋知道用哪个?

一般情况下,请使用默认的就好,如果非要改,请看下一个问题

  • 当前版本是check1,怎么修改版本?

修改home目录下的 labelyou_cfg.json 文件mode字段,可用版本为label, check1, check2,默认为check1。 其中label版本支持所有功能;check1版本不能AI标注;check2版本仅供view不支持修改编辑,新增ok和notok按钮。

  • 弹出修改标签的对话框,可是没有自动识别咋办?

首先请检查下图像路径有没有中文,特别是Windows系统;其次检查下网络连接是否完好;再次看看标注的那个区域是不是可识别的词;最后.....

4. 其他

  • 多检测引擎
  • 多识别模型
  • 目前对英文词级检测和识别效果很理想,可按需自定义检测和识别模块,只要替换掉对应的接口即可
  • 图像和json文件建议放在同一个目录下

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for labelyou, version 1.3.5
Filename, size File type Python version Upload date Hashes
Filename, size labelyou-1.3.5-py3-none-any.whl (135.7 kB) File type Wheel Python version py3 Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page