|
|
vor 1 Monat | |
|---|---|---|
| .vscode | vor 2 Monaten | |
| image | vor 2 Monaten | |
| image_edit | vor 2 Monaten | |
| ocr_vlm_verify | vor 2 Monaten | |
| streamlit_test | vor 2 Monaten | |
| test | vor 1 Monat | |
| .env.example | vor 2 Monaten | |
| README.md | vor 2 Monaten | |
| STREAMLIT_GUIDE.md | vor 2 Monaten | |
| compare_ocr_results.py | vor 1 Monat | |
| config.yaml | vor 1 Monat | |
| normalize_financial_numbers.py | vor 1 Monat | |
| ocr_by_vlm.py | vor 1 Monat | |
| ocr_validator_layout.py | vor 1 Monat | |
| ocr_validator_utils.py | vor 1 Monat | |
| run_streamlit_validator.py | vor 2 Monaten | |
| streamlit_ocr_validator.py | vor 1 Monat | |
| styles.css | vor 2 Monaten | |
| 图片操作说明.md | vor 2 Monaten |
一个基于视觉语言模型(VLM)的OCR识别与验证系统,专门用于处理财务报表、数据表格等文档的OCR识别和结果对比验证。
# 创建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 streamlit plotly pandas pillow numpy opencv-python openpyxl
复制 .env 文件并配置您的API密钥:
cp .env.example .env
# 编辑.env文件,配置相应的API密钥
支持的API提供商:
使用 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:批量标准化模式使用 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
输出格式:
查看 ocr_vlm_verify 目录了解升级后的验证功能:
# 运行高精度验证演示
cd ocr_vlm_verify
python quick_demo.py
# 查看升级对比说明
cat README_Upgrade_Comparison.md
提供多种交互方式的OCR结果校验工具:
# Streamlit完整版本 - 功能丰富
python3 -m streamlit run streamlit_ocr_validator.py
# 或使用启动脚本
python3 run_streamlit_validator.py
功能特点:
详细使用说明:
ocr_verify/
├── .env # 环境变量配置
├── README.md # 项目说明文档
├── ocr_by_vlm.py # 主OCR识别脚本
├── compare_ocr_results.py # 结果对比工具
├── streamlit_ocr_validator.py # 完整Streamlit校验工具
├── run_streamlit_validator.py # Streamlit启动脚本
├── STREAMLIT_GUIDE.md # Streamlit版使用指南
├── ocr_vlm_verify/ # 用vlm直接校验,效果不佳,无法比对表格数字
│ ├── ocr_verification.py # 高级验证功能
│ ├── quick_demo.py # 功能演示
│ ├── simple_ocr_test.py # 简化测试
│ └── README_Upgrade_Comparison.md # 升级说明
├── sample_data/ # 测试样本数据
├── output/ # 输出结果目录
├── image_edit/ # 图片处理工具
│ ├── config.yaml # 图片处理配置
│ ├── fix_photo.sh # 图片修复脚本
│ ├── image_generator.py # 图片生成工具
│ └── output/ # 图片处理输出
└── __pycache__/ # Python缓存
自动处理以下格式转换:
# 识别财务报表图片
python ocr_by_vlm.py 财务报表.png -o output/
# 使用Streamlit工具分析表格
python -m streamlit run streamlit_ocr_validator.py
# 对比两个版本的识别结果
python compare_ocr_results.py output/财务报表.md reference/标准版本.md -o 对比报告
# 批量标准化已有的Markdown文件
python ocr_by_vlm.py --batch-normalize ./原始文件/ -o ./标准化文件/
# 启动Streamlit进行表格分析
python -m streamlit run streamlit_ocr_validator.py
# 在界面中:
# 1. 选择包含表格的OCR结果文件
# 2. 选择"DataFrame表格"渲染模式
# 3. 使用过滤、排序功能分析数据
# 4. 导出Excel或CSV文件
详细升级内容请查看 ocr_vlm_verify/README_Upgrade_Comparison.md
项目包含预配置的VSCode调试配置,请参考 .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
}
]
}
查看 output/comparison_result.md 了解详细的对比报告格式。
.streamlit/config.toml