Skip to content

是否有可能改进高精度本地 OCR针对多行文本块的处理逻辑 #2117

@misaka7532

Description

@misaka7532

Question 问题

提出背景
相比 Hook,本地OCR几乎适用一切包括dlsite的游戏、零成本、使用方便。高精度模型相比以前可用性也大大增加。改进价值高。

目前的问题在于:
OCR 引擎经常会将横跨若干行的文本段落作为一整个“文字块”返回。此时一旦出现划分问题,例如一段文字被切分成若干个块(见下图右上角us are,右下角the)
Image
必须要找到每个块对应行的内容拼在一起才行。然而文本块只有框坐标和整段文字,无法得知内部某一行文字具体对应哪一部分,且代码中后续的所有算法修正,包括块合并,行内左右,行间上下排序,本质上都是以 OCR 按“单行/单列”返回内容为前提的,从而必然导致文本“错行”(如果每个块都横跨多行的话错误会更加严重):

Image
后续的大模型翻译能方便地纠正拼写错误,但不好处理严重的语序/结构错误。

可能的解决思路/建议

  1. OCR 参数开放:ocr本身的参数是否能调节此问题?能的话是否可以将这些参数设为用户可调?
  2. 二次拆分识别:对于均匀分布、标准排版的文本,增加一个“单行宽度/横款比”的变量(用户自行设定或者配合程序标定),当 OCR 返回大宽度的文本块时,根据该参数将其拆分成行并重新送入 OCR 再次识别?不过运算量爆炸
    2.1 预处理分行:或者预处理时聚类、二值化算水平投影之类的直接在送入 OCR 前进行分行?

还有没有靠谱的思路,感觉这个解决了基本上本地ocr可以完全满足需求

感谢佬的辛勤付出,翻译器功能的完善程度真得远超我的想象

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionFurther information is requested

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions