# OCR验证系统 一个基于视觉语言模型(VLM)的OCR识别与验证系统,专门用于处理财务报表、数据表格等文档的OCR识别和结果对比验证。 ## ✨ 主要功能 - 🔍 **高精度OCR识别**:使用多模态大语言模型进行图片文字识别 - 📊 **智能表格处理**:专业的表格结构识别和数据提取 - 🔧 **数字格式标准化**:自动处理全角/半角字符、千分符格式 - 📝 **结果对比验证**:详细的OCR结果差异分析 - 📈 **多种输出格式**:支持Markdown、JSON等格式输出 - ⚙️ **灵活配置**:支持多种API提供商和参数调整 ## 🚀 快速开始 ### 环境配置 ```bash # 创建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](.env) 文件并配置您的API密钥: ```bash cp .env.example .env # 编辑.env文件,配置相应的API密钥 ``` 支持的API提供商: - DeepSeek - 阿里云DashScope - ModelScope - Google Gemini - Ollama (本地部署) ## 📖 使用指南 ### 1. OCR识别 使用 [ocr_by_vlm.py](ocr_by_vlm.py) 进行图片OCR识别: ```bash # 标准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结果: ```bash # 基本对比 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 目录了解升级后的验证功能: ```bash # 运行高精度验证演示 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:处理财务报表 ```bash # 识别财务报表图片 python ocr_by_vlm.py 财务报表.png -o output/ # 对比两个版本的识别结果 python compare_ocr_results.py output/财务报表.md reference/标准版本.md -o 对比报告 ``` ### 示例2:批量处理 ```bash # 批量标准化已有的Markdown文件 python ocr_by_vlm.py --batch-normalize ./原始文件/ -o ./标准化文件/ ``` ## 🎯 升级功能亮点 系统经过全面升级,主要改进包括: ### 检测能力提升 - 错误检测覆盖率:70% → 95% - 新增格式错误识别功能 - 表格坐标精确定位 - 专业级错误描述 ### 验证模式对比 - **高精度模式**:适用于财务报表,逐项数值验证 - **标准模式**:通用文档处理 - **快速模式**:大批量处理 详细升级内容请查看 README_Upgrade_Comparison.md ## 🔧 Visual Studio Code配置 项目包含预配置的VSCode调试配置,请参考 launch.json: ```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 了解详细的对比报告格式。 ## 📞 联系方式 - 作者:zhch158_admin - 邮箱:zhch158@sina.com - 仓库:https://gitee.com/zhch158_admin/ocr_verify.git ## 📝 许可证 本项目采用开源许可证,具体请查看项目根目录的LICENSE文件。