Add editinlist.py
This commit is contained in:
parent
ec0de454a1
commit
8402e8d1de
|
@ -2,7 +2,7 @@ English | [简体中文](README_ch.md)
|
||||||
|
|
||||||
# PPOCRLabel
|
# PPOCRLabel
|
||||||
|
|
||||||
PPOCRLabel is a semi-automatic graphic annotation tool suitable for OCR field. It is written in python3 and pyqt5, supporting rectangular box annotation and four-point annotation modes. Annotations can be directly used for the training of PPOCR detection and recognition models.
|
PPOCRLabel is a semi-automatic graphic annotation tool suitable for OCR field, with built-in PPOCR model to automatically detect and re-recognize data. It is written in python3 and pyqt5, supporting rectangular box annotation and four-point annotation modes. Annotations can be directly used for the training of PPOCR detection and recognition models.
|
||||||
|
|
||||||
<img src="./data/gif/steps_en.gif" width="100%"/>
|
<img src="./data/gif/steps_en.gif" width="100%"/>
|
||||||
|
|
||||||
|
@ -10,11 +10,15 @@ PPOCRLabel is a semi-automatic graphic annotation tool suitable for OCR field. I
|
||||||
|
|
||||||
- 2020.12.18: Support re-recognition of a single label box (by [ninetailskim](https://github.com/ninetailskim) ), perfect shortcut keys.
|
- 2020.12.18: Support re-recognition of a single label box (by [ninetailskim](https://github.com/ninetailskim) ), perfect shortcut keys.
|
||||||
|
|
||||||
|
### TODO:
|
||||||
|
- Lock box mode: For the same scene data, the size and position of the locked detection box can be transferred between different pictures.
|
||||||
|
- Experience optimization: Add undo, batch operation include move, copy, delete and so on, optimize the annotation process.
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
### 1. Install PaddleOCR
|
### 1. Install PaddleOCR
|
||||||
|
|
||||||
Refer to [PaddleOCR installation document](https://github.com/PaddlePaddle/PaddleOCR/blob/develop/doc/doc_ch/installation.md) to prepare PaddleOCR
|
PaddleOCR models has been built in PPOCRLabel, please refer to [PaddleOCR installation document](https://github.com/PaddlePaddle/PaddleOCR/blob/develop/doc/doc_ch/installation.md) to prepare PaddleOCR and make sure it works.
|
||||||
|
|
||||||
### 2. Install PPOCRLabel
|
### 2. Install PPOCRLabel
|
||||||
|
|
||||||
|
|
|
@ -2,18 +2,26 @@
|
||||||
|
|
||||||
# PPOCRLabel
|
# PPOCRLabel
|
||||||
|
|
||||||
PPOCRLabel是一款适用于OCR领域的半自动化图形标注工具,使用python3和pyqt5编写,支持矩形框标注和四点标注模式,导出格式可直接用于PPOCR检测和识别模型的训练。
|
PPOCRLabel是一款适用于OCR领域的半自动化图形标注工具,内置PPOCR模型对数据自动标注和重新识别。使用python3和pyqt5编写,支持矩形框标注和四点标注模式,导出格式可直接用于PPOCR检测和识别模型的训练。
|
||||||
|
|
||||||
<img src="./data/gif/steps.gif" width="100%"/>
|
<img src="./data/gif/steps.gif" width="100%"/>
|
||||||
|
|
||||||
#### 近期更新
|
#### 近期更新
|
||||||
|
|
||||||
- 2020.12.18: 支持对单个标记框进行重新识别(by [ninetailskim](https://github.com/ninetailskim) ),完善快捷键。
|
- 2020.12.18: 支持对单个标记框进行重新识别(by [ninetailskim](https://github.com/ninetailskim)),完善快捷键。
|
||||||
|
|
||||||
|
#### 尽请期待
|
||||||
|
|
||||||
|
- 锁定框模式:针对同一场景数据,被锁定的检测框的大小与位置能在不同图片之间传递。
|
||||||
|
- 体验优化:增加撤销操作,批量移动、复制、删除等功能。优化标注流程。
|
||||||
|
|
||||||
|
如果您对以上内容感兴趣或对完善工具有不一样的想法,欢迎加入我们的队伍与我们共同开发
|
||||||
|
|
||||||
|
|
||||||
## 安装
|
## 安装
|
||||||
|
|
||||||
### 1. 安装PaddleOCR
|
### 1. 安装PaddleOCR
|
||||||
参考[PaddleOCR安装文档](https://github.com/PaddlePaddle/PaddleOCR/blob/develop/doc/doc_ch/installation.md)准备好PaddleOCR
|
PPOCRLabel内置PaddleOCR模型,故请参考[PaddleOCR安装文档](https://github.com/PaddlePaddle/PaddleOCR/blob/develop/doc/doc_ch/installation.md)准备好PaddleOCR,并确保PaddleOCR安装成功。
|
||||||
|
|
||||||
### 2. 安装PPOCRLabel
|
### 2. 安装PPOCRLabel
|
||||||
#### Windows + Anaconda
|
#### Windows + Anaconda
|
||||||
|
@ -115,7 +123,7 @@ python3 PPOCRLabel.py --lang ch
|
||||||
|
|
||||||
- PPOCRLabel**不支持对中文文件名**的图片进行自动标注。
|
- PPOCRLabel**不支持对中文文件名**的图片进行自动标注。
|
||||||
|
|
||||||
- 针对Linux用户::如果您在打开软件过程中出现**objc[XXXXX]**开头的错误,证明您的opencv版本太高,建议安装4.2版本:
|
- 针对Linux用户:如果您在打开软件过程中出现**objc[XXXXX]**开头的错误,证明您的opencv版本太高,建议安装4.2版本:
|
||||||
```
|
```
|
||||||
pip install opencv-python==4.2.0.32
|
pip install opencv-python==4.2.0.32
|
||||||
```
|
```
|
||||||
|
@ -129,6 +137,10 @@ python3 PPOCRLabel.py --lang ch
|
||||||
```
|
```
|
||||||
pip install opencv-contrib-python-headless
|
pip install opencv-contrib-python-headless
|
||||||
```
|
```
|
||||||
|
### 成为特殊兴趣小组的一员
|
||||||
|
|
||||||
|
PPOCRSIG(Paddle Paddle OCR Special Interest Group,飞桨OCR特殊兴趣小组)致力于,我们希望拥有各种背景的,以开源的精神将OCR应用于各行各业。小组
|
||||||
|
|
||||||
### 参考资料
|
### 参考资料
|
||||||
|
|
||||||
1.[Tzutalin. LabelImg. Git code (2015)](https://github.com/tzutalin/labelImg)
|
1.[Tzutalin. LabelImg. Git code (2015)](https://github.com/tzutalin/labelImg)
|
||||||
|
|
|
@ -0,0 +1,29 @@
|
||||||
|
import sys
|
||||||
|
from PyQt5 import QtWidgets
|
||||||
|
from PyQt5.QtGui import *
|
||||||
|
from PyQt5.QtCore import *
|
||||||
|
from PyQt5.QtWidgets import *
|
||||||
|
|
||||||
|
class EditInList(QListWidget):
|
||||||
|
def __init__(self):
|
||||||
|
super(EditInList,self).__init__()
|
||||||
|
# click to edit
|
||||||
|
self.clicked.connect(self.item_clicked)
|
||||||
|
|
||||||
|
def item_clicked(self, modelindex: QModelIndex) -> None:
|
||||||
|
self.edited_item = self.currentItem()
|
||||||
|
self.closePersistentEditor(self.edited_item)
|
||||||
|
item = self.item(modelindex.row())
|
||||||
|
self.edited_item = item
|
||||||
|
self.openPersistentEditor(item)
|
||||||
|
self.editItem(item)
|
||||||
|
|
||||||
|
def mouseDoubleClickEvent(self, event):
|
||||||
|
# close edit
|
||||||
|
for i in range(self.count()):
|
||||||
|
self.closePersistentEditor(self.item(i))
|
||||||
|
|
||||||
|
def leaveEvent(self, event):
|
||||||
|
# close edit
|
||||||
|
for i in range(self.count()):
|
||||||
|
self.closePersistentEditor(self.item(i))
|
Loading…
Reference in New Issue