From 0f522b12c09236f800f4430780754218ce933bd1 Mon Sep 17 00:00:00 2001 From: Evezerest <50011306+Evezerest@users.noreply.github.com> Date: Mon, 21 Nov 2022 20:39:08 +0800 Subject: [PATCH] Fix PPOCRLabel bugs, release PPOCRLabel 2.1.3 (#8401) * Revert "Modify the output bug of PaddleOCR==2.6.1 update. (#8391)" This reverts commit c0ea753f1785fa7f92f1bb1a96b8ed38498e4139. * Fix PPOCRLabel bugs, release PPOCRLabel 2.1.2 Fix PPOCRLabel bugs due to the upgrade of paddleocr, release PPOCRLabel 2.1.2 * Fix PPOCRLabel bugs, release PPOCRLabel 2.1.3 Fix PPOCRLabel bugs due to the upgrade of paddleocr, release PPOCRLabel 2.1.3 * Update PPOCRLabel's requirements Update PPOCRLabel's requirements * Update PPOCRLabel README Update PPOCRLabel README * Update PPOCRLabel Update PPOCRLabel Co-authored-by: d2623587501 <71634460+d2623587501@users.noreply.github.com> --- PPOCRLabel/PPOCRLabel.py | 15 ++++++++------- PPOCRLabel/README.md | 4 ++-- PPOCRLabel/README_ch.md | 4 ++-- PPOCRLabel/libs/canvas.py | 2 +- PPOCRLabel/requirements.txt | 2 +- PPOCRLabel/setup.py | 4 ++-- 6 files changed, 16 insertions(+), 15 deletions(-) diff --git a/PPOCRLabel/PPOCRLabel.py b/PPOCRLabel/PPOCRLabel.py index 0caee0a6..6c8154d1 100644 --- a/PPOCRLabel/PPOCRLabel.py +++ b/PPOCRLabel/PPOCRLabel.py @@ -1177,7 +1177,7 @@ class MainWindow(QMainWindow): # print('rm empty label') return item = self.shapesToItems[shape] - item.setText(shape.label[0]) + item.setText(shape.label) self.updateComboBox() # ADD: @@ -1617,8 +1617,9 @@ class MainWindow(QMainWindow): key_cls = 'None' if not self.kie_mode else box.get('key_cls', 'None') shapes.append((box['transcription'], box['points'], None, key_cls, box.get('difficult', False))) - self.loadLabels(shapes) - self.canvas.verified = False + if shapes != []: + self.loadLabels(shapes) + self.canvas.verified = False def validFilestate(self, filePath): if filePath not in self.fileStatedict.keys(): @@ -2203,7 +2204,7 @@ class MainWindow(QMainWindow): msg = 'Can not recognise the detection box in ' + self.filePath + '. Please change manually' QMessageBox.information(self, "Information", msg) return - result = self.ocr.ocr(img_crop, cls=True, det=False) + result = self.ocr.ocr(img_crop, cls=True, det=False)[0] if result[0][0] != '': if shape.line_color == DEFAULT_LOCK_COLOR: shape.label = result[0][0] @@ -2264,7 +2265,7 @@ class MainWindow(QMainWindow): msg = 'Can not recognise the detection box in ' + self.filePath + '. Please change manually' QMessageBox.information(self, "Information", msg) return - result = self.ocr.ocr(img_crop, cls=True, det=False) + result = self.ocr.ocr(img_crop, cls=True, det=False)[0] if result[0][0] != '': result.insert(0, box) print('result in reRec is ', result) @@ -2415,12 +2416,12 @@ class MainWindow(QMainWindow): # merge the text result in the cell texts = '' probs = 0. # the probability of the cell is avgerage prob of every text box in the cell - bboxes = self.ocr.ocr(img_crop, det=True, rec=False, cls=False) + bboxes = self.ocr.ocr(img_crop, det=True, rec=False, cls=False)[0] if len(bboxes) > 0: bboxes.reverse() # top row text at first for _bbox in bboxes: patch = get_rotate_crop_image(img_crop, np.array(_bbox, np.float32)) - rec_res = self.ocr.ocr(patch, det=False, rec=True, cls=False) + rec_res = self.ocr.ocr(patch, det=False, rec=True, cls=False)[0] text = rec_res[0][0] if text != '': texts += text + ('' if text[0].isalpha() else ' ') # add space between english word diff --git a/PPOCRLabel/README.md b/PPOCRLabel/README.md index 9c483e1f..ec933a83 100644 --- a/PPOCRLabel/README.md +++ b/PPOCRLabel/README.md @@ -103,11 +103,11 @@ python PPOCRLabel.py --kie True # [KIE mode] for [detection + recognition + keyw ``` #### 1.2.3 Build and Install the Whl Package Locally -Compile and install a new whl package, where 1.0.2 is the version number, you can specify the new version in 'setup.py'. +Compile and install a new whl package, where 0.0.0 is the version number, you can specify the new version in 'setup.py'. ```bash cd ./PPOCRLabel python3 setup.py bdist_wheel -pip3 install dist/PPOCRLabel-2.1.2-py2.py3-none-any.whl +pip3 install dist/PPOCRLabel-0.0.0-py2.py3-none-any.whl ``` diff --git a/PPOCRLabel/README_ch.md b/PPOCRLabel/README_ch.md index afe1a08f..5359afc4 100644 --- a/PPOCRLabel/README_ch.md +++ b/PPOCRLabel/README_ch.md @@ -101,12 +101,12 @@ python PPOCRLabel.py --lang ch #### 1.2.3 本地构建whl包并安装 -编译与安装新的whl包,其中1.0.2为版本号,可在 `setup.py` 中指定新版本。 +编译与安装新的whl包,其中0.0.0为版本号,可在 `setup.py` 中指定新版本。 ```bash cd ./PPOCRLabel python3 setup.py bdist_wheel -pip3 install dist/PPOCRLabel-2.1.2-py2.py3-none-any.whl -i https://mirror.baidu.com/pypi/simple +pip3 install dist/PPOCRLabel-0.0.0-py2.py3-none-any.whl -i https://mirror.baidu.com/pypi/simple ``` diff --git a/PPOCRLabel/libs/canvas.py b/PPOCRLabel/libs/canvas.py index 462c70be..44d899cb 100644 --- a/PPOCRLabel/libs/canvas.py +++ b/PPOCRLabel/libs/canvas.py @@ -237,7 +237,7 @@ class Canvas(QWidget): self.hShape.highlightClear() self.hVertex, self.hShape = None, shape self.setToolTip( - "Click & drag to move shape '%s'" % shape.label[0]) + "Click & drag to move shape '%s'" % shape.label) self.setStatusTip(self.toolTip()) self.overrideCursor(CURSOR_GRAB) self.update() diff --git a/PPOCRLabel/requirements.txt b/PPOCRLabel/requirements.txt index fd42a2de..a10b3453 100644 --- a/PPOCRLabel/requirements.txt +++ b/PPOCRLabel/requirements.txt @@ -1,3 +1,3 @@ pyqt5 -paddleocr==2.6.0.0 +paddleocr xlrd==1.2.0 diff --git a/PPOCRLabel/setup.py b/PPOCRLabel/setup.py index a112df54..9770b632 100644 --- a/PPOCRLabel/setup.py +++ b/PPOCRLabel/setup.py @@ -33,10 +33,10 @@ setup( package_dir={'PPOCRLabel': ''}, include_package_data=True, entry_points={"console_scripts": ["PPOCRLabel= PPOCRLabel.PPOCRLabel:main"]}, - version='2.1.2', + version='2.1.3', install_requires=requirements, license='Apache License 2.0', - description='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', + description='PPOCRLabelv2 is a semi-automatic graphic annotation tool suitable for OCR field, with built-in PP-OCR model to automatically detect and re-recognize data. It is written in Python3 and PyQT5, supporting rectangular box, table, irregular text and key information annotation modes. Annotations can be directly used for the training of PP-OCR detection and recognition models.', long_description=readme(), long_description_content_type='text/markdown', url='https://github.com/PaddlePaddle/PaddleOCR', -- GitLab