|
|
@@ -28,6 +28,74 @@
|
|
|
- **守护进程**:各种 OCR 工具的守护进程脚本
|
|
|
- **公共工具包**:统一的工具函数库
|
|
|
|
|
|
+## 🏗️ 非结构化文档统一架构
|
|
|
+
|
|
|
+### 架构概览
|
|
|
+
|
|
|
+平台采用"技术层 + 应用层"的分层架构设计,技术层负责OCR识别、校验和迭代优化,应用层负责业务规则校验和报告生成。
|
|
|
+
|
|
|
+
|
|
|
+### 架构说明
|
|
|
+
|
|
|
+#### 技术层(左侧)
|
|
|
+
|
|
|
+1. **OCR工具评估与选择**
|
|
|
+ - 基于 OmniDocBench 公开数据集评估各工具性能
|
|
|
+ - 重点关注扫描文档和表格识别指标
|
|
|
+ - 根据场景特点选择最适合的工具
|
|
|
+
|
|
|
+2. **工具封装与增强**
|
|
|
+ - 采用 Client/Server 架构,支持多线程和批量处理
|
|
|
+ - 通过守护进程管理提升稳定性
|
|
|
+ - 针对流水分析、财报分析等场景构建样本数据
|
|
|
+
|
|
|
+3. **OCR识别工具层(平级关系)**
|
|
|
+ - **MinerU VLM**:多模态文档理解
|
|
|
+ - **PaddleOCR-VL**:基于视觉语言模型的文档解析
|
|
|
+ - **DotsOCR VLM**:专业 VLM OCR 引擎
|
|
|
+ - **PP-StructureV3**:全面的文档结构分析
|
|
|
+ - **统一文档解析器(Universal Doc Parser)**:通过 YAML 配置文件灵活组合多种模型/算法,适配不同业务场景
|
|
|
+ - 图片方向识别(Orientation)
|
|
|
+ - Layout 检测(Layout Detection)
|
|
|
+ - OCR 识别(OCR Recognition)
|
|
|
+ - PDF 文字提取(PDF Text Extraction)
|
|
|
+ - 表格识别(Table Recognition)
|
|
|
+
|
|
|
+4. **技术校验**
|
|
|
+ - **交叉验证**:多工具结果智能对比,快速发现差异
|
|
|
+ - **人工交互校验**:可视化界面支持人工审核
|
|
|
+ - **差异分析**:精确到单元格级别的差异检测
|
|
|
+
|
|
|
+5. **标注与改进**
|
|
|
+ - 当识别效果不佳时,使用标注工具将无线表格标注为有线表格
|
|
|
+ - 使用特定配置文件(如 `bank_statement_wired_unet.yaml`)重新识别
|
|
|
+ - 通过有线表格识别模式显著提升准确率
|
|
|
+
|
|
|
+6. **数据迭代闭环**
|
|
|
+ - 标注图片 → 训练样本数据
|
|
|
+ - 模型训练优化 → 模型更新
|
|
|
+ - 更新后的模型反馈到 OCR 工具,形成持续优化的闭环
|
|
|
+
|
|
|
+#### 应用层(右侧)
|
|
|
+
|
|
|
+1. **业务校验**
|
|
|
+ - **流水连续性检查**:验证银行流水的时间连续性
|
|
|
+ - **关键要素缺失检测**:检查必要字段是否完整
|
|
|
+ - **财报勾稽关系验证**:验证财务报表的勾稽关系
|
|
|
+ - **数据修改审核**:记录并审核数据修改历史
|
|
|
+
|
|
|
+2. **报告生成**
|
|
|
+ - 生成结构化分析报告
|
|
|
+ - 支持交互式问答
|
|
|
+
|
|
|
+### 关键特性
|
|
|
+
|
|
|
+- ✅ **多工具并行识别**:支持多种 OCR 工具同时处理,通过交叉验证提升准确率
|
|
|
+- ✅ **配置化统一框架**:Universal Doc Parser 通过 YAML 配置灵活组合模型,适配不同场景
|
|
|
+- ✅ **智能标注改进**:无线表格标注为有线表格,显著提升识别准确率
|
|
|
+- ✅ **数据迭代优化**:标注数据形成训练样本,持续优化模型性能
|
|
|
+- ✅ **业务规则校验**:基于业务规则确保识别结果的正确性
|
|
|
+
|
|
|
## 📁 项目结构
|
|
|
|
|
|
```
|