Skip to content

Latest commit

 

History

History
151 lines (125 loc) · 3.99 KB

File metadata and controls

151 lines (125 loc) · 3.99 KB

OCR Agent 开发进度

项目: 扫描图书OCR Agent
环境: Conda ocr (Python 3.12.13)
最后更新: 2026-05-17


已完成 (DONE)

文档

  • Design.md - 需求文档
  • PRD - 产品设计文档 (产品经理用)
  • Tech Spec - 实现文档 (程序员用)
  • Acceptance Criteria - 验收文档

项目基础

  • 项目目录结构 (src/ocr_agent/, tests/, examples/)
  • pyproject.toml 项目配置
  • Conda虚拟环境配置 (ocr, Python 3.12)
  • PaddleOCR 2.9 + PaddlePaddle 2.6 安装集成

核心数据模型 (src/ocr_agent/core/)

  • BoundingBox - 边界框
  • TextBlock - 文本块
  • FontInfo - 字体信息
  • ElementType / LayoutElement - 版面元素 (含HEADER/FOOTER)
  • Page - 页面
  • Document - 文档
  • QualityReport / PageQuality / Region - 质量报告
  • Config - 配置类 (含correction_threshold, checkpoint_interval)

功能模块 (src/ocr_agent/modules/)

  • preprocessing.py - 图像预处理
    • 灰度转换
    • 倾斜校正 (投影轮廓法)
    • 去噪 (fastNlMeansDenoising)
    • 对比度增强 (CLAHE)
    • 自适应二值化 (Sauvola)
  • ocr.py - OCR封装 (PaddleOCR 2.x)
    • 懒加载初始化
    • 中英文识别
    • 结果格式化 (TextBlock)
  • output.py - 输出生成
    • DOCX生成 (python-docx) - 含标题/段落样式
    • JSON导出 - 含完整元数据
    • TXT纯文本输出
  • quality.py - 质量评估模块
    • 页面级质量统计
    • 低置信度区域定位
    • 改进建议生成
  • correction.py - 自动纠错模块
    • 中文混淆字纠正
    • 英文混淆字纠正
    • 置信度阈值控制
  • font.py - 字体检测模块
    • 笔画宽度估计
    • 字体密度分析
    • Hu矩特征提取

Pipeline与接口

  • pipeline.py - Pipeline编排器
    • 单图处理 / 批量处理 / PDF处理
    • 自动纠错集成
    • 启发式版面分析
    • 检查点断点续传
    • 质量报告自动生成
  • cli.py - 命令行接口 (click)
    • ocr-agent process - 处理命令
    • ocr-agent serve - API服务命令
    • 详细日志/静默模式
  • api.py - FastAPI服务
    • POST /api/v1/jobs - 上传处理
    • GET /api/v1/jobs/{id} - 查询状态
    • GET /api/v1/jobs/{id}/results/{file} - 下载结果
    • DELETE /api/v1/jobs/{id} - 删除任务
    • GET /api/v1/health - 健康检查
    • 后台异步处理

测试

  • tests/test_basic.py - 5个基础测试
  • tests/test_comprehensive.py - 30个综合测试
    • 数据模型测试
    • 预处理模块测试 (7项)
    • 质量评估测试 (4项)
    • 纠错模块测试 (4项)
    • 输出模块测试 (5项)
    • Pipeline集成测试 (3项)
  • PaddleOCR端到端验证 (真实图像OCR)

待完成 (TODO)

版面分析增强

  • 基于深度学习的版面元素检测 (PP-StructureV2)
  • 阅读顺序检测 (多栏布局)
  • 表格结构识别 (SLANet)

图片修复

  • 模糊图片修复 (Real-ESRGAN/NAFNet超分辨率)
  • 低分辨率图片增强 (150DPI→300DPI)
  • 噪点/划痕/水渍修复

输出格式

  • PDF输出 (reportlab)
  • EPUB电子书格式
  • 样式更精确的DOCX输出

测试覆盖

  • OCR模块单元测试 (mock PaddleOCR)
  • API端点测试
  • 性能基准测试

部署

  • Docker镜像
  • 使用文档
  • 示例 notebooks

快速开始

# 激活环境
conda activate ocr

# 处理单张图片
ocr-agent process /path/to/image.png -o ./output

# 处理PDF
ocr-agent process /path/to/book.pdf -o ./output

# 处理整个目录
ocr-agent process /path/to/images/ -o ./output --format docx --format json

# 启动API服务
ocr-agent serve --port 8000

项目统计

类别 数量
Python模块 12
代码行数 ~2200
测试用例 35
API端点 5
文档数 4