非结构化文档识别统一平台

zhch158_admin 9375927c14 feat: 重构 README 文档,更新项目介绍和功能概述 1 hafta önce
.vscode 6b95fb0489 feat: 添加 VSCode 任务配置以支持前后端同时启动 1 hafta önce
docs 674b43692f feat: 添加多个文档和工具说明,包括 OCR 平台、表格识别模块及其评估算法 1 hafta önce
legacy_table_line_generator 5f5e88e396 feat: 新增表格线生成器模块及其核心功能 1 hafta önce
ocr_comparator 244ee9de2c feat: Add report generation and similarity calculation modules 1 hafta önce
ocr_tools 9733ac0b36 feat: 更新多个工具的 README 文档,添加详细文档链接 1 hafta önce
ocr_utils a7520b9498 feat: 添加多个工具模块,包括设备检测、图像处理、HTML/Markdown 处理和数字解析功能 1 hafta önce
ocr_validator 444025c466 feat: Add OCR validation display module with cross-validation results and table handling 1 hafta önce
table_line_generator 3f977e0137 feat: replace old template with updated version for 康强_北京农村商业银行, including new line data and relative coordinates 1 hafta önce
README.md 9375927c14 feat: 重构 README 文档,更新项目介绍和功能概述 1 hafta önce
pyrightconfig.json 02b7f63b3d chore: Update pyright configuration to include additional path for PaddleX 1 hafta önce

README.md

OCR Platform

一个统一的 OCR 识别与处理平台,集成了多种 OCR 工具、智能验证、结果对比、表格线生成等功能,专为金融文档、财务报表等复杂文档设计。

📚 详细文档:更多技术文档、环境配置、使用说明等,请查看 docs/

🎯 核心功能

🔍 多工具 OCR 支持

  • PaddleOCR-VL:基于视觉语言模型的文档解析
  • PP-StructureV3:全面的文档结构分析(表格、公式、图表等)
  • MinerU VLM:多模态文档理解
  • DotsOCR VLM:专业 VLM OCR 引擎
  • 统一文档解析器:统一的文档处理框架

🔄 OCR 结果处理

  • 结果合并:将结构化识别结果与精确坐标进行合并
  • 结果对比:多工具 OCR 结果的智能对比和差异分析
  • 可视化验证:交互式 OCR 结果验证和校验工具

📏 表格处理

  • 表格线生成:基于 OCR bbox 自动生成表格线(新版本)
  • 遗留表格线生成器:Streamlit 版本的表格线编辑器
  • 表格模板应用:将标注好的表格结构应用到同类型页面

🛠️ 工具集

  • 批量处理:支持批量 OCR 识别和处理
  • 守护进程:各种 OCR 工具的守护进程脚本
  • 公共工具包:统一的工具函数库

📁 项目结构

ocr_platform/
├── docs/                          # 📚 详细文档目录
│   ├── paddlex/                   # PaddleX 相关文档
│   ├── mineru/                    # MinerU 相关文档
│   ├── dotsocr/                   # DotsOCR 相关文档
│   ├── ocr_tools/                 # OCR 工具技术文档
│   └── legacy_table_line_generator/ # 遗留工具文档
│
├── ocr_tools/                     # 🔧 OCR 工具集合(单独一个子仓)
│   ├── ocr_merger/                # OCR 结果合并工具
│   ├── paddle_common/             # PaddleX 公共模块
│   ├── ppstructure_tool/           # PP-StructureV3 工具(依赖paddle框架)
│   ├── paddle_vl_tool/            # PaddleOCR-VL 工具(依赖paddle框架)
│   ├── mineru_vl_tool/            # MinerU VLM 工具(依赖mineru)
│   ├── dots.ocr_vl_tool/          # DotsOCR VLM 工具(依赖dots.ocr)
│   ├── universal_doc_parser/      # 统一文档解析器(依赖mineru)
│   ├── ocr_batch/                 # 批量处理工具
│   ├── pytorch_models/            # PyTorch 模型推理接口
│   └── daemons/                   # 守护进程脚本
│
├── ocr_validator/                 # 🔍 OCR 可视化验证系统(单独一个子仓)
│   └── streamlit_ocr_validator.py # Streamlit 验证界面
│
├── ocr_comparator/                # 🔄 OCR 结果对比工具
│   └── compare_ocr_results.py     # 结果对比核心模块
│
├── table_line_generator/          # 📏 表格线生成器(单独一个子仓)
│   ├── backend/                   # FastAPI 后端
│   ├── core/                      # 核心算法
│   ├── frontend/                  # Vue 3 前端
│   ├── templates/                 # 表格模板
│   └── config/                    # 配置文件
│
├── legacy_table_line_generator/  # 📏 遗留表格线生成器(单独一个子仓)
│   └── streamlit_table_line_editor.py # Streamlit 版本编辑器
│
└── ocr_utils/                     # 🛠️ OCR 工具包(公共工具)
    ├── bbox_utils.py              # bbox 处理工具
    ├── file_utils.py              # 文件处理工具
    ├── pdf_utils.py               # PDF 处理工具
    ├── image_utils.py             # 图像处理工具
    └── ...

🚀 快速开始

环境配置

1. 代码获取

git clone https://gitee.com/zhch158_admin/ocr_platform.git -c user.name=zhch158_admin -c user.email=zhch158@sina.com
cd ocr_platform
git config --local user.name "zhch158_admin"
git config --local user.email "zhch158@sina.com"

2. Python 环境

项目支持多个 Python 环境,根据使用的工具选择:

  • PaddleX 工具:需要 paddle_env 环境(Python 3.11+)
  • MinerU 工具:需要 mineru2 环境(Python 3.12+)
  • DotsOCR 工具:需要 py312 环境(Python 3.12+)

详细环境配置请查看:

基本使用

OCR 识别

# 使用 PaddleOCR-VL
cd ocr_tools/paddle_vl_tool
python main.py --input document.pdf --output_dir ./output

# 使用 PP-StructureV3
cd ocr_tools/ppstructure_tool
python main.py --input document.pdf --output_dir ./output

# 使用 MinerU VLM
cd ocr_tools/mineru_vl_tool
python main.py --input document.pdf --output_dir ./output

# 使用 DotsOCR VLM
cd ocr_tools/dots.ocr_vl_tool
python main.py --input document.pdf --output_dir ./output

OCR 结果合并

cd ocr_tools/ocr_merger
python merge_mineru_paddle_ocr.py \
  --mineru_json mineru_result.json \
  --paddle_json paddleocr_result.json \
  --output_dir ./merged_output

OCR 结果对比

cd ocr_comparator
python compare_ocr_results.py \
  file1.json file2.json \
  --output_file comparison_report \
  --output_format markdown

可视化验证

cd ocr_validator
streamlit run streamlit_ocr_validator.py

表格线生成

# 新版本(Vue + FastAPI)
cd table_line_generator/backend
uvicorn main:app --reload

# 前端(另一个终端)
cd table_line_generator/frontend
npm install
npm run dev

# 遗留版本(Streamlit)
cd legacy_table_line_generator
streamlit run streamlit_table_line_editor.py

📦 模块说明

ocr_tools - OCR 工具集合

提供多种 OCR 工具的批量处理能力,支持 PDF、图片等多种输入格式。

主要工具

  • paddle_vl_tool/ - PaddleOCR-VL 批量处理
  • ppstructure_tool/ - PP-StructureV3 批量处理
  • mineru_vl_tool/ - MinerU VLM 批量处理
  • dots.ocr_vl_tool/ - DotsOCR VLM 批量处理
  • universal_doc_parser/ - 统一文档解析框架
  • ocr_merger/ - OCR 结果合并工具
  • ocr_batch/ - 批量处理编排工具

详细文档docs/ocr_tools/

ocr_validator - OCR 可视化验证系统

基于 Streamlit 的交互式 OCR 结果验证工具,支持多工具结果对比、差异分析、可视化标注等功能。

主要功能

  • 多工具 OCR 结果展示
  • 智能交叉验证
  • 表格数据分析
  • 交互式图像标注

详细文档ocr_validator/README.md

ocr_comparator - OCR 结果对比工具

独立的 OCR 结果对比库,支持多种对比模式和差异分析。

主要功能

  • 标准表格对比
  • 流水表格对比
  • 段落对比
  • 差异报告生成

详细文档ocr_comparator/README.md

table_line_generator - 表格线生成器

基于 Vue 3 + FastAPI 的现代化表格线生成工具,支持可视化编辑、模板应用、批量处理等功能。

主要功能

  • 可视化表格线编辑
  • 模板管理和应用
  • 批量处理
  • REST API 接口

详细文档table_line_generator/README.md

legacy_table_line_generator - 遗留表格线生成器

基于 Streamlit 的表格线生成工具(遗留版本),保留用于向后兼容。

详细文档legacy_table_line_generator/README.md | docs/legacy_table_line_generator/

ocr_utils - OCR 工具包

统一的工具函数库,提供公共的 OCR 处理功能。

主要模块

  • bbox_utils.py - bbox 提取和坐标转换
  • file_utils.py - 文件处理工具
  • pdf_utils.py - PDF 处理工具
  • image_utils.py - 图像处理工具
  • html_utils.py - HTML/Markdown 处理工具
  • number_utils.py - 数字解析和标准化

📚 文档导航

工具文档

技术文档

模块文档

完整文档索引docs/README.md

🔧 依赖说明

外部依赖

  • PaddleX:PaddleOCR-VL、PP-StructureV3 工具需要
  • MinerU:MinerU VLM 工具、统一文档解析器需要
  • DotsOCR:DotsOCR VLM 工具需要

内部依赖

  • ocr_utils:所有模块共享的工具包
  • paddle_common:PaddleX 相关工具的公共模块

🎨 使用场景

场景 1:银行流水识别

  1. 使用 paddle_vl_toolppstructure_tool 进行 OCR 识别
  2. 使用 table_line_generator 生成表格线(如需要)
  3. 使用 ocr_validator 进行结果验证
  4. 使用 ocr_comparator 对比不同工具的结果

场景 2:财务报表处理

  1. 使用 universal_doc_parser 进行统一文档解析
  2. 使用 ocr_merger 合并多个 OCR 工具的结果
  3. 使用 ocr_validator 进行交叉验证
  4. 使用 table_line_generator 处理复杂表格

场景 3:批量文档处理

  1. 使用 ocr_batch 进行批量 OCR 识别
  2. 使用 ocr_merger 批量合并结果
  3. 使用 ocr_comparator 生成对比报告

🤝 贡献指南

欢迎提交 Issue 和 Pull Request!

代码规范

  • 遵循 PEP 8 Python 代码规范
  • 使用类型提示(Type Hints)
  • 添加必要的文档字符串

文档规范

  • 详细文档统一放在 docs/ 目录
  • 各模块只保留简要的 README.md
  • 使用 Markdown 格式编写文档

📄 许可证

MIT License

🔗 相关链接


注意:本项目是一个统一的 OCR 处理平台,整合了多个 OCR 工具和辅助功能。各模块可以独立使用,也可以组合使用以满足不同的业务需求。