Explorar o código

feat: enhance OCR model initialization with detailed configuration parameters for improved detection accuracy and flexibility

zhch158_admin hai 6 días
pai
achega
bf2448d3a8
Modificáronse 1 ficheiros con 17 adicións e 4 borrados
  1. 17 4
      zhch/universal_doc_parser/models/adapters/mineru_adapter.py

+ 17 - 4
zhch/universal_doc_parser/models/adapters/mineru_adapter.py

@@ -438,16 +438,29 @@ class MinerUOCRRecognizer(BaseOCRRecognizer):
         self.ocr_model = None
         
     def initialize(self):
-        """初始化OCR模型"""
+        """初始化OCR模型
+        
+        参数说明(参考PPStructureV3优化):
+        - det_db_box_thresh: 检测框置信度阈值,默认0.6(PPStructureV3使用0.6,MinerU默认0.3)
+        - det_db_unclip_ratio: 检测框扩展比例,默认1.5(PPStructureV3使用1.5,MinerU默认1.8)
+        - enable_merge_det_boxes: 是否合并检测框,默认False(表格场景建议False,避免错误合并)
+        """
         try:
+            # 获取配置参数,使用更接近PPStructureV3的默认值
+            det_threshold = self.config.get('det_threshold', 0.6)  # 从0.3提高到0.6
+            unclip_ratio = self.config.get('unclip_ratio', 1.5)    # 从1.8降低到1.5
+            enable_merge = self.config.get('enable_merge_det_boxes', False)  # 从True改为False
+            
             # 初始化OCR模型
             self.ocr_model = self.atom_model_manager.get_atom_model(
                 atom_model_name=AtomicModel.OCR,
-                det_db_box_thresh=self.config.get('det_threshold', 0.3),
+                det_db_box_thresh=det_threshold,
                 lang=self.config.get('language', 'ch'),
-                det_db_unclip_ratio=self.config.get('unclip_ratio', 1.8),
+                det_db_unclip_ratio=unclip_ratio,
+                enable_merge_det_boxes=enable_merge,
             )
-            print(f"✅ OCR recognizer initialized: {self.config.get('language', 'ch')}")
+            print(f"✅ OCR recognizer initialized: lang={self.config.get('language', 'ch')}, "
+                  f"det_thresh={det_threshold}, unclip_ratio={unclip_ratio}, merge_boxes={enable_merge}")
             
         except Exception as e:
             print(f"❌ Failed to initialize OCR recognizer: {e}")