Bläddra i källkod

fix(cell_fusion): 移除过滤条件中的 'unet_only' 标记,并添加极薄/极窄噪声框过滤

zhch158_admin 1 vecka sedan
förälder
incheckning
a2ddb4c408

+ 8 - 1
ocr_tools/universal_doc_parser/models/adapters/wired_table/cell_fusion.py

@@ -721,7 +721,6 @@ class CellFusionEngine:
         过滤边界噪声单元格
         
         过滤条件:
-        1. 单元格标记为 'unet_only'(只在 UNet 中检测到,RT-DETR 未匹配)
         2. 单元格位于表格边界(左边界或右边界)
         3. 单元格内没有任何 OCR 文本框(说明是空白区域)
         
@@ -748,6 +747,14 @@ class CellFusionEngine:
             #     continue
             
             x1, y1, x2, y2 = cell
+
+            # 过滤极薄/极窄的噪声框(无论是否在边界)
+            if tol > 0.0 and (abs(x2 - x1) < tol or abs(y2 - y1) < tol):
+                logger.debug(
+                    f"🗑️ 过滤异常细线框: [{x1:.1f}, {y1:.1f}, {x2:.1f}, {y2:.1f}] (tol={tol})"
+                )
+                filtered_count += 1
+                continue
             
             # 检查是否在边界(加入容忍范围,避免贴边被误判)
             is_left_boundary = x1 <= (rtdetr_bbox[0] - tol)