Explorar el Código

feat: 重构 README 文档,更新项目介绍和功能概述

- 将 README 文档重命名为 "OCR Platform",并添加项目的整体介绍和核心功能。
- 详细列出支持的 OCR 工具、结果处理、表格处理和工具集功能。
- 更新环境配置部分,提供多种 Python 环境的选择和详细链接。
- 增加快速开始和模块说明,提升用户对项目的理解和使用体验。
zhch158_admin hace 1 semana
padre
commit
9375927c14
Se han modificado 1 ficheros con 315 adiciones y 4 borrados
  1. 315 4
      README.md

+ 315 - 4
README.md

@@ -1,9 +1,320 @@
-## 1. 环境配置
+# OCR Platform
+
+一个统一的 OCR 识别与处理平台,集成了多种 OCR 工具、智能验证、结果对比、表格线生成等功能,专为金融文档、财务报表等复杂文档设计。
+
+> 📚 **详细文档**:更多技术文档、环境配置、使用说明等,请查看 [docs/](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. 代码获取
 
-### 1.1 代码获取
 ```bash
 git clone https://gitee.com/zhch158_admin/ocr_platform.git -c user.name=zhch158_admin -c user.email=zhch158@sina.com
-cd MinerU
+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+)
+
+详细环境配置请查看:
+- [PaddleX 环境配置](docs/paddlex/README.md)
+- [MinerU 环境配置](docs/mineru/README.md)
+- [DotsOCR 环境配置](docs/dotsocr/README.md)
+
+### 基本使用
+
+#### OCR 识别
+
+```bash
+# 使用 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 结果合并
+
+```bash
+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 结果对比
+
+```bash
+cd ocr_comparator
+python compare_ocr_results.py \
+  file1.json file2.json \
+  --output_file comparison_report \
+  --output_format markdown
+```
+
+#### 可视化验证
+
+```bash
+cd ocr_validator
+streamlit run streamlit_ocr_validator.py
+```
+
+#### 表格线生成
+
+```bash
+# 新版本(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/](docs/ocr_tools/)
+
+### ocr_validator - OCR 可视化验证系统
+
+基于 Streamlit 的交互式 OCR 结果验证工具,支持多工具结果对比、差异分析、可视化标注等功能。
+
+**主要功能**:
+- 多工具 OCR 结果展示
+- 智能交叉验证
+- 表格数据分析
+- 交互式图像标注
+
+**详细文档**:[ocr_validator/README.md](ocr_validator/README.md)
+
+### ocr_comparator - OCR 结果对比工具
+
+独立的 OCR 结果对比库,支持多种对比模式和差异分析。
+
+**主要功能**:
+- 标准表格对比
+- 流水表格对比
+- 段落对比
+- 差异报告生成
+
+**详细文档**:[ocr_comparator/README.md](ocr_comparator/README.md)
+
+### table_line_generator - 表格线生成器
+
+基于 Vue 3 + FastAPI 的现代化表格线生成工具,支持可视化编辑、模板应用、批量处理等功能。
+
+**主要功能**:
+- 可视化表格线编辑
+- 模板管理和应用
+- 批量处理
+- REST API 接口
+
+**详细文档**:[table_line_generator/README.md](table_line_generator/README.md)
+
+### legacy_table_line_generator - 遗留表格线生成器
+
+基于 Streamlit 的表格线生成工具(遗留版本),保留用于向后兼容。
+
+**详细文档**:[legacy_table_line_generator/README.md](legacy_table_line_generator/README.md) | [docs/legacy_table_line_generator/](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` - 数字解析和标准化
+
+## 📚 文档导航
+
+### 工具文档
+- [PaddleX 文档](docs/paddlex/) - 环境配置、使用说明、参数配置
+- [MinerU 文档](docs/mineru/) - 环境配置、处理流程、模块说明
+- [DotsOCR 文档](docs/dotsocr/) - 环境配置、使用说明
+
+### 技术文档
+- [OCR 结果合并算法](docs/ocr_tools/ocr_merger/) - 坐标系变换、表格行匹配、动态规划
+- [统一文档解析器](docs/ocr_tools/universal_doc_parser/) - 模型统一框架、Layout 后处理
+- [PyTorch 模型](docs/ocr_tools/pytorch_models/) - ONNX 转换、推理算法
+
+### 模块文档
+- [OCR 验证系统](ocr_validator/README.md)
+- [OCR 结果对比](ocr_comparator/README.md)
+- [表格线生成器](table_line_generator/README.md)
+- [遗留表格线生成器](legacy_table_line_generator/README.md)
+
+**完整文档索引**:[docs/README.md](docs/README.md)
+
+## 🔧 依赖说明
+
+### 外部依赖
+
+- **PaddleX**:PaddleOCR-VL、PP-StructureV3 工具需要
+- **MinerU**:MinerU VLM 工具、统一文档解析器需要
+- **DotsOCR**:DotsOCR VLM 工具需要
+
+### 内部依赖
+
+- **ocr_utils**:所有模块共享的工具包
+- **paddle_common**:PaddleX 相关工具的公共模块
+
+## 🎨 使用场景
+
+### 场景 1:银行流水识别
+1. 使用 `paddle_vl_tool` 或 `ppstructure_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
+
+## 🔗 相关链接
+
+- [详细文档](docs/)
+- [PaddleX 官方文档](https://paddlepaddle.github.io/PaddleX/)
+- [MinerU 官方文档](https://github.com/opendatalab/MinerU)
+- [DotsOCR 官方文档](https://github.com/opendatalab/dots-ocr)
+
+---
+
+**注意**:本项目是一个统一的 OCR 处理平台,整合了多个 OCR 工具和辅助功能。各模块可以独立使用,也可以组合使用以满足不同的业务需求。