refactor: update hybrid OCR detection logic and streamline title splitting process

This commit is contained in:
myhloli
2026-05-26 20:16:30 +08:00
parent 56a9c8be02
commit 40ee80d984
2 changed files with 8 additions and 20 deletions
+7 -20
View File
@@ -52,20 +52,7 @@ OCR_DET_BASE_BATCH_SIZE = 8
LAYOUT_TITLE_SPLIT_OVERLAP_THRESHOLD = 0.8
not_extract_list = [item.value for item in NotExtractType]
HYBRID_OCR_DET_TEXT_TYPES = set(not_extract_list) | {
MineruBlockType.ABSTRACT,
MineruBlockType.CAPTION,
MineruBlockType.FOOTNOTE,
MineruBlockType.DOC_TITLE,
MineruBlockType.PARAGRAPH_TITLE,
MineruBlockType.LIST,
MineruBlockType.INDEX,
MineruBlockType.ASIDE_TEXT,
MineruBlockType.PHONETIC,
MineruBlockType.CHART_CAPTION,
MineruBlockType.CHART_FOOTNOTE,
MineruBlockType.CODE_FOOTNOTE,
}
HYBRID_OCR_DET_TEXT_TYPES = set(not_extract_list)
def _is_hybrid_ocr_det_candidate(block):
@@ -552,7 +539,7 @@ def _apply_layout_title_split_for_window(
language,
batch_ratio,
):
"""为VLM-OCR路径补跑layout小模型,拆分标题并追加空文本OCR det sidecar。"""
"""为VLM-OCR路径补跑layout小模型,先基于VLM原始title做OCR det,再拆分标题。"""
hybrid_model_singleton = HybridModelSingleton()
hybrid_pipeline_model = hybrid_model_singleton.get_model(
lang=language,
@@ -563,11 +550,6 @@ def _apply_layout_title_split_for_window(
images_pil_list,
batch_ratio,
)
_apply_layout_title_split(
model_list,
images_layout_res,
[_normalize_page_size(image) for image in images_pil_list],
)
np_images = [np.asarray(pil_image).copy() for pil_image in images_pil_list]
ocr_res_list = ocr_det(
hybrid_pipeline_model,
@@ -585,6 +567,11 @@ def _apply_layout_title_split_for_window(
ocr_res_list,
keep_ocr_text=False,
)
_apply_layout_title_split(
model_list,
images_layout_res,
[_normalize_page_size(image) for image in images_pil_list],
)
return hybrid_pipeline_model
+1
View File
@@ -130,3 +130,4 @@ class NotExtractType(Enum):
TABLE_FOOTNOTE = BlockType.TABLE_FOOTNOTE
IMAGE_FOOTNOTE = BlockType.IMAGE_FOOTNOTE
CODE_CAPTION = BlockType.CODE_CAPTION
PHONETIC = BlockType.PHONETIC