5.9 KiB
5.9 KiB
OCR订单处理系统 v2.0
基于百度OCR API的订单处理系统,用于识别采购订单图片并生成Excel采购单。
功能特点
- 图像OCR识别:支持对采购单图片进行OCR识别并生成Excel文件
- Excel数据处理:读取OCR识别的Excel文件并提取商品信息
- 采购单生成:按照模板格式生成标准采购单Excel文件
- 采购单合并:支持多个采购单合并为一个总单
- 批量处理:支持批量处理多张图片
- 图形界面:提供简洁直观的图形界面,方便操作
- 命令行支持:支持命令行方式调用,便于自动化处理
系统架构
目录结构
orc-order-v2/
│
├── app/ # 应用主目录
│ ├── config/ # 配置目录
│ │ ├── settings.py # 配置管理
│ │ └── defaults.py # 默认配置值
│ │
│ ├── core/ # 核心功能
│ │ ├── ocr/ # OCR相关功能
│ │ │ ├── baidu_ocr.py # 百度OCR接口
│ │ │ └── table_ocr.py # 表格OCR处理
│ │ │
│ │ ├── excel/ # Excel处理
│ │ │ ├── processor.py # Excel处理核心
│ │ │ ├── merger.py # 订单合并功能
│ │ │ └── converter.py # 单位转换与规格处理
│ │ │
│ │ └── utils/ # 工具函数
│ │ ├── file_utils.py # 文件操作工具
│ │ ├── log_utils.py # 日志工具
│ │ └── string_utils.py # 字符串处理工具
│ │
│ └── services/ # 业务服务
│ ├── ocr_service.py # OCR服务
│ └── order_service.py # 订单处理服务
│
├── data/ # 数据目录
│ ├── input/ # 输入文件
│ ├── output/ # 输出文件
│ └── temp/ # 临时文件
│
├── logs/ # 日志目录
│
├── templates/ # 模板文件
│ └── 银豹-采购单模板.xls # 采购单模板
│
├── 启动器.py # 图形界面启动器
├── run.py # 命令行入口
├── config.ini # 配置文件
└── requirements.txt # 依赖包列表
主要模块说明
- 配置模块:统一管理系统配置,支持默认值和配置文件读取
- OCR模块:调用百度OCR API进行表格识别,生成Excel文件
- Excel处理模块:读取OCR生成的Excel文件,提取商品信息
- 单位转换模块:处理商品规格和单位转换
- 订单合并模块:合并多个采购单为一个总单
- 文件工具模块:处理文件读写、路径管理等
- 启动器:提供图形界面操作
使用方法
环境准备
- 安装Python 3.6+
- 安装依赖包:
pip install -r requirements.txt - 配置百度OCR API密钥:
- 在
config.ini中填写您的API密钥和Secret密钥
- 在
图形界面使用
- 运行启动器:
python 启动器.py - 使用界面上的功能按钮进行操作:
- OCR图像识别:批量处理
data/input目录下的图片 - 处理单个图片:选择并处理单个图片
- 处理Excel文件:处理OCR识别后的Excel文件,生成采购单
- 合并采购单:合并所有生成的采购单
- 完整处理流程:按顺序执行所有处理步骤
- 整理项目文件:整理文件到规范目录结构
- OCR图像识别:批量处理
命令行使用
系统提供命令行方式调用,便于集成到自动化流程中:
# OCR识别
python run.py ocr [--input 图片路径] [--batch]
# Excel处理
python run.py excel [--input Excel文件路径]
# 订单合并
python run.py merge [--input 采购单文件路径列表]
# 完整流程
python run.py pipeline
文件处理流程
-
OCR识别处理:
- 读取
data/input目录下的图片文件 - 调用百度OCR API进行表格识别
- 保存识别结果为Excel文件到
data/output目录
- 读取
-
Excel处理:
- 读取OCR识别生成的Excel文件
- 提取商品信息(条码、名称、规格、单价、数量等)
- 按照采购单模板格式生成标准采购单Excel文件
- 输出文件命名为"采购单_原文件名.xls"
-
采购单合并:
- 读取所有采购单Excel文件
- 合并相同商品的数量
- 生成总采购单
配置说明
系统配置文件config.ini包含以下主要配置:
[API]
api_key = 您的百度API Key
secret_key = 您的百度Secret Key
timeout = 30
max_retries = 3
retry_delay = 2
api_url = https://aip.baidubce.com/rest/2.0/ocr/v1/table
[Paths]
input_folder = data/input
output_folder = data/output
temp_folder = data/temp
[Performance]
max_workers = 4
batch_size = 5
skip_existing = true
[File]
allowed_extensions = .jpg,.jpeg,.png,.bmp
excel_extension = .xlsx
max_file_size_mb = 4
注意事项
- 系统依赖百度OCR API,使用前请确保已配置正确的API密钥
- 图片质量会影响OCR识别结果,建议使用清晰的原始图片
- 处理大量图片时可能会受到API调用频率限制
- 所有处理好的文件会保存在
data/output目录中
错误排查
- OCR识别失败:检查API密钥是否正确,图片是否符合要求
- Excel处理失败:检查OCR识别结果是否包含必要的列(条码、数量、单价等)
- 模板填充错误:确保模板文件存在且格式正确
开发说明
如需进行二次开发或扩展功能,请参考以下说明:
- 核心逻辑位于
app/core目录 - 添加新功能建议遵循已有的模块化结构
- 使用
app/services目录中的服务类调用核心功能 - 日志记录已集成到各模块,便于调试
许可证
MIT License
联系方式
如有问题,请提交Issue或联系开发者。