|
|
@@ -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}")
|