。本来计划昨天更新的,白天忙了一天没有时间摸鱼,OCR识别确实比较麻烦,从昨晚研究到现在,基本上理清了。所以直接版本到了v1.9。
新增功能
0. 集成PaddleOCR + RapidOCR 双引擎OCR识别
1. 双引擎 OCR 容灾
同时启动 PaddleOCR(主引擎)和 RapidOCR(备用引擎),主引擎发生崩溃或识别失败时自动切换到备用引擎继续处理,避免单点故障导致整个任务中断。
2. GapTree 版面排序
引入 hiroi-sora 开源的 GapTree 间隙树排版分析算法,对 OCR 识别结果按人类阅读顺序重新排序。解决了多栏排版、表格混排等场景下文字复制顺序混乱的问题。
3. 子进程生命周期管理
程序退出时自动终止所有 OCR 子进程,不留后台残留;
RapidOCR 内置 15 秒初始化超时保护,防止引擎卡死。
4. 旋转校正
调用 ocr_engine/preprocessing.py 中的 linePreprocessing(),对 OCR 识别结果的文字块包围盒进行倾斜校正
使用中位数估计算法检测旋转角度,输出校正后的标准 bbox
校正后的坐标再交给 GapTree 进行版面排序
5. 段落分析
在 GapTree get_nodes_text_blocks() 获取各列区块后,逐列运行 paragraph_parse.py 的 ParagraphParse
分析相邻文本块的垂直间距、左右缩进,判断是否属于同一段落
自动在文字层中附加换行分隔符,使复制出的文本还原段落结构
6. 多语言支持
GUI 新增语言下拉框,可选:简体中文 & 英文 / English / 日本語 / 한국어
PaddleOCR 通过 --config_path 加载对应语言模型配置文件
RapidOCR 通过命令行参数指定检测/识别/字典模型
双引擎语言配置保持一致
7. 配置文件持久化
程序启动时自动加载 config.json,保存 DPI、OCR 开关、语言、导出路径
点击「开始转换」时自动保存,关闭窗口时也保存
下次启动无需重新设置
------------------------------------------------------------------------
上线仓促,如遇到问题请给我留言。

夜雨聆风