Nenhuma descrição

zhch158_admin e7bb3e7be0 添加OCR验证系统的README文档,详细说明主要功能、使用指南和项目结构 2 meses atrás
.vscode ca6f844de4 添加 VSCode 调试配置文件 launch.json 2 meses atrás
image_edit f139544d34 添加修复老照片的Python脚本和相应的Shell脚本 2 meses atrás
ocr_vlm_verify 6a8e5074e1 直接VLM读取原图和识别结果比对,效果很差,不可行 2 meses atrás
README.md e7bb3e7be0 添加OCR验证系统的README文档,详细说明主要功能、使用指南和项目结构 2 meses atrás
compare_ocr_results.py 0c4511677b 添加OCR结果对比工具和财务数字标准化功能 2 meses atrás
ocr_by_vlm.py 0c4511677b 添加OCR结果对比工具和财务数字标准化功能 2 meses atrás

README.md

OCR验证系统

一个基于视觉语言模型(VLM)的OCR识别与验证系统,专门用于处理财务报表、数据表格等文档的OCR识别和结果对比验证。

✨ 主要功能

  • 🔍 高精度OCR识别:使用多模态大语言模型进行图片文字识别
  • 📊 智能表格处理:专业的表格结构识别和数据提取
  • 🔧 数字格式标准化:自动处理全角/半角字符、千分符格式
  • 📝 结果对比验证:详细的OCR结果差异分析
  • 📈 多种输出格式:支持Markdown、JSON等格式输出
  • ⚙️ 灵活配置:支持多种API提供商和参数调整

🚀 快速开始

环境配置

# 创建conda环境
conda create -n py312 python=3.12 -y
conda activate py312

#
git config --local user.name "zhch158_admin"
git config --local user.email "zhch158@sina.com"
# 自定义缓存时间(如7200秒)
git config --global credential.helper 'cache --timeout=7200'

# 克隆项目
git clone https://gitee.com/zhch158_admin/ocr_verify.git
cd ocr_verify

# 安装依赖
pip install openai python-dotenv beautifulsoup4 markdown

环境变量配置

复制 .env 文件并配置您的API密钥:

cp .env.example .env
# 编辑.env文件,配置相应的API密钥

支持的API提供商:

  • DeepSeek
  • 阿里云DashScope
  • ModelScope
  • Google Gemini
  • Ollama (本地部署)

📖 使用指南

1. OCR识别

使用 ocr_by_vlm.py 进行图片OCR识别:

# 标准OCR识别(启用数字标准化)
python ocr_by_vlm.py image.png -o output/

# 禁用数字标准化
python ocr_by_vlm.py image.png --no-normalize

# 批量标准化已有文件
python ocr_by_vlm.py --batch-normalize ./markdown_files/ -o ./normalized/

# 自定义参数
python ocr_by_vlm.py image.png -t 0.05 -m 8192 --timeout 300

参数说明:

  • -o, --output:输出目录
  • -t, --temperature:生成温度(默认0.1)
  • -m, --max-tokens:最大token数(默认4096)
  • --timeout:超时时间(默认180秒)
  • --no-normalize:禁用数字标准化
  • --batch-normalize:批量标准化模式

2. 结果对比

使用 compare_ocr_results.py 对比两个OCR结果:

# 基本对比
python compare_ocr_results.py file1.md file2.md

# 指定输出格式和文件名
python compare_ocr_results.py file1.md file2.md -o comparison_result -f both

# 生成详细报告
python compare_ocr_results.py file1.md file2.md --ignore-images

输出格式:

  • JSON报告:机器可读的详细差异数据
  • Markdown报告:人类友好的对比报告

3. 高级验证功能

查看 ocr_vlm_verify 目录了解升级后的验证功能:

# 运行高精度验证演示
cd ocr_vlm_verify
python quick_demo.py

# 查看升级对比说明
cat README_Upgrade_Comparison.md

📁 项目结构

ocr_verify/
├── .env                        # 环境变量配置
├── README.md                   # 项目说明文档
├── ocr_by_vlm.py              # 主OCR识别脚本
├── compare_ocr_results.py     # 结果对比工具
├── ocr_vlm_verify/            # 升级版验证系统
│   ├── ocr_verification.py    # 高级验证功能
│   ├── quick_demo.py          # 功能演示
│   ├── simple_ocr_test.py     # 简化测试
│   └── README_Upgrade_Comparison.md  # 升级说明
├── sample_data/               # 测试样本数据
├── output/                    # 输出结果目录
├── image_edit/               # 图片处理工具

🔧 核心功能详解

OCR识别功能

  • 多模态识别:支持图片转Markdown格式
  • 数字标准化:自动处理财务数据格式
  • 表格优化:专业的表格结构识别
  • 格式保持:保持原文档的布局结构

对比验证功能

  • 表格差异检测:逐项对比表格数据
  • 段落差异分析:智能段落匹配对比
  • 金额验证:专门的数字金额对比
  • 位置定位:精确的差异位置标记

数字标准化功能

自动处理以下格式转换:

  • 全角数字 → 半角数字
  • 全角标点 → 半角标点
  • 千分符标准化
  • 小数点格式统一

📊 使用示例

示例1:处理财务报表

# 识别财务报表图片
python ocr_by_vlm.py 财务报表.png -o output/

# 对比两个版本的识别结果
python compare_ocr_results.py output/财务报表.md reference/标准版本.md -o 对比报告

示例2:批量处理

# 批量标准化已有的Markdown文件
python ocr_by_vlm.py --batch-normalize ./原始文件/ -o ./标准化文件/

🎯 升级功能亮点

系统经过全面升级,主要改进包括:

检测能力提升

  • 错误检测覆盖率:70% → 95%
  • 新增格式错误识别功能
  • 表格坐标精确定位
  • 专业级错误描述

验证模式对比

  • 高精度模式:适用于财务报表,逐项数值验证
  • 标准模式:通用文档处理
  • 快速模式:大批量处理

详细升级内容请查看 README_Upgrade_Comparison.md

🔧 Visual Studio Code配置

项目包含预配置的VSCode调试配置,请参考 launch.json:

{
    "configurations": [
        {
            "name": "Python Debugger: Current File",
            "type": "debugpy",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal",
            "cwd": "${fileDirname}",
            "env": {"PYTHONPATH":"${workspaceFolder};${env:PYTHONPATH}"},
            "envFile": "${workspaceFolder}/.env",
            "justMyCode": false
        }
    ]
}

📄 输出示例

OCR识别输出

  • Markdown文件:格式化的文档内容
  • JSON元数据:处理信息和配置参数
  • 标准化报告:字符变更统计

对比报告示例

查看 comparison_result.md 了解详细的对比报告格式。

📞 联系方式

📝 许可证

本项目采用开源许可证,具体请查看项目根目录的LICENSE文件。