From b7ce4e7e62956fe6b63308d1b30c5e20c88db2a5 Mon Sep 17 00:00:00 2001 From: Zhi-Qiang You <1657489+michaelice@users.noreply.github.com> Date: Wed, 8 Jan 2025 10:59:35 +0800 Subject: [PATCH] fix:t_recognizer TypeError: 'super' object is not callable (#4404) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ### What problem does this PR solve? [Bug]: layout recognizer failed for wrong boxes class type #4230 (https://github.com/infiniflow/ragflow/issues/4230) ### Type of change - [✅ ] Bug Fix (non-breaking change which fixes an issue) --------- Co-authored-by: youzhiqiang Co-authored-by: Kevin Hu --- deepdoc/vision/layout_recognizer.py | 2 ++ deepdoc/vision/t_recognizer.py | 7 +++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/deepdoc/vision/layout_recognizer.py b/deepdoc/vision/layout_recognizer.py index 07b546e8c..ea8f2a880 100644 --- a/deepdoc/vision/layout_recognizer.py +++ b/deepdoc/vision/layout_recognizer.py @@ -153,6 +153,8 @@ class LayoutRecognizer(Recognizer): ocr_res = [b for b in ocr_res if b["text"].strip() not in garbag_set] return ocr_res, page_layout + def forward(self, image_list, thr=0.7, batch_size=16): + return super().__call__(image_list, thr, batch_size) class LayoutRecognizer4YOLOv10(LayoutRecognizer): labels = [ diff --git a/deepdoc/vision/t_recognizer.py b/deepdoc/vision/t_recognizer.py index 55a86b988..e81a57b84 100644 --- a/deepdoc/vision/t_recognizer.py +++ b/deepdoc/vision/t_recognizer.py @@ -23,7 +23,7 @@ sys.path.insert( '../../'))) from deepdoc.vision.seeit import draw_box -from deepdoc.vision import LayoutRecognizer, TableStructureRecognizer, OCR, init_in_out, Recognizer +from deepdoc.vision import LayoutRecognizer, TableStructureRecognizer, OCR, init_in_out import argparse import re import numpy as np @@ -33,9 +33,8 @@ def main(args): images, outputs = init_in_out(args) if args.mode.lower() == "layout": detr = LayoutRecognizer("layout") - layouts = super(Recognizer, detr)(images, thr=float(args.threshold)) + layouts = detr.forward(images, thr=float(args.threshold)) if args.mode.lower() == "tsr": - labels = TableStructureRecognizer.labels detr = TableStructureRecognizer() ocr = OCR() layouts = detr(images, thr=float(args.threshold)) @@ -50,7 +49,7 @@ def main(args): "bbox": [t["x0"], t["top"], t["x1"], t["bottom"]], "score": t["score"] } for t in lyt] - img = draw_box(images[i], lyt, labels, float(args.threshold)) + img = draw_box(images[i], lyt, detr.labels, float(args.threshold)) img.save(outputs[i], quality=95) logging.info("save result to: " + outputs[i])