本项目旨在对OCR识别后的中文文本进行自动纠错,提升文本质量。系统集成了深度学习模型,支持多种OCR方案,适用于学术研究和实际应用场景。
VisCGEC(Visual Chinese Grammatical Error Correction)系统采用流水线处理方式,包含图像预处理、OCR识别、字符解析、数据清洗、文本纠错和结果生成等阶段。系统可以自动检测并纠正OCR识别过程中产生的错误,提高文本的准确性和可读性。
- 图像预处理:优化图像质量
- OCR处理:识别图像中的文本(基于PaddleOCR或其他OCR引擎)
- 字符解析:解析OCR输出的结构化数据
- 数据清洗:过滤和规范化OCR输出
- 文本纠错:应用深度学习模型进行语法和拼写纠错
- 生成预测结果:整合纠错后的文本,生成最终输出
推荐使用Python 3.8+,Linux系统,建议GPU环境。
pip install -r requirements.txt系统需要以下预训练模型:
-
ChineseErrorCorrector2-7B (文本纠错模型)
- 下载地址: https://huggingface.co/twnlp/ChineseErrorCorrector2-7B
- 存放位置:
models/ChineseErrorCorrector2-7B/
-
chinese-roberta-wwm-ext (分句与文本处理模型)
- 下载地址: https://huggingface.co/hfl/chinese-roberta-wwm-ext
- 存放位置:
models/chinese-roberta-wwm-ext/
-
PaddleOCR v2.10.0 (OCR识别模型)
- 下载地址: https://github.com/PaddlePaddle/PaddleOCR/tree/release/2.10
- 安装方式:
pip install paddleocr==2.10.0 - 或克隆仓库:
git clone -b release/2.10 https://github.com/PaddlePaddle/PaddleOCR.git models/PaddleOCR
重要:本项目使用了经过修改的PaddleOCR模型配置以提升OCR性能,需要下载以下特定模型并进行相应配置:
# 进入PaddleOCR目录 cd models/PaddleOCR/ppstructure # 创建推理目录 mkdir -p inference && cd inference # 下载PP-OCRv5服务器端检测模型 wget https://paddleocr.bj.bcebos.com/PP-OCRv5/chinese/ch_PP-OCRv5_det_server_infer.tar && tar xf ch_PP-OCRv5_det_server_infer.tar # 重命名模型目录 mv ch_PP-OCRv5_det_server_infer PP-OCRv5_server_det_infer # 下载PP-OCRv5服务器端识别模型 wget https://paddleocr.bj.bcebos.com/PP-OCRv5/chinese/ch_PP-OCRv5_rec_server_infer.tar && tar xf ch_PP-OCRv5_rec_server_infer.tar # 重命名模型目录 mv ch_PP-OCRv5_rec_server_infer PP-OCRv5_server_rec_infer # 下载中文表格结构模型 wget https://paddleocr.bj.bcebos.com/ppstructure/models/slanet/ch_ppstructure_mobile_v2.0_SLANet_infer.tar && tar xf ch_ppstructure_mobile_v2.0_SLANet_infer.tar # 下载版面分析模型 wget https://paddleocr.bj.bcebos.com/ppstructure/models/layout/picodet_lcnet_x1_0_fgd_layout_cdla_infer.tar && tar xf picodet_lcnet_x1_0_fgd_layout_cdla_infer.tar # 返回上级目录 cd ../.. # 确保字典文件存在于正确位置 mkdir -p ppocr/utils cp PaddleOCR_changedfiles/ppocrv5_dict.txt ppocr/utils/ # 复制修改后的预测系统文件 cp PaddleOCR_changedfiles/predict_system_enhanced.py ppstructure/
注意:
- 必须确保词典文件
ppocrv5_dict.txt位于models/PaddleOCR/ppocr/utils/目录下 - 必须确保修改后的
predict_system_enhanced.py文件位于models/PaddleOCR/ppstructure/目录下
使用自动化脚本一键执行全流程:
bash pipeline.sh-
图像预处理:
python image_preproc.py
-
OCR处理:
python ocr_processor.py
-
字符解析:
python ocr_char_parser.py
-
数据清洗:
python data_washer.py
-
文本纠错:
python batch_corrector.py
-
生成预测结果:
python generate_prediction.py
pipeline.sh- 自动化流水线处理脚本image_preproc.py- 图像预处理ocr_processor.py- PaddleOCR处理ocr_char_parser.py- OCR字符解析data_washer.py- 数据清洗batch_corrector.py- 批量文本纠错chinese_error_corrector.py- 纠错模型调用generate_prediction.py- 生成预测结果models/- 存放预训练模型data/- 存放数据及中间结果output/- 输出结果evaluation_scores/- 评测结果
data/test_data.json- 测试数据集data/preprocessed_img/- 预处理后的图像data/paddleocr_version/- PaddleOCR处理的中间结果ocr_output/- OCR原始输出ocr_washed/- 清洗后的OCR结果ocr_corrected/- 纠错后的结果
output/- 最终预测结果
- 多阶段流水线: 从图像到文本纠错的完整处理流程
- 高精度纠错: 基于大型预训练模型的文本纠错
- 模块化设计: 各阶段可独立执行和优化
- 多OCR引擎支持: 支持PaddleOCR等多种OCR引擎
- 完整评测: 内置评测工具,支持多种评测指标
- 首次使用需下载所有预训练模型
- 推荐在GPU环境运行,尤其是大模型推理阶段
- 预处理图像质量会显著影响OCR和纠错效果
- 详细参数设置请查看各脚本的注释说明
MIT License
Copyright (c) 2025 Jetty Coffee