orc识别进货单,然后按照银豹模板进行处理
Go to file
2025-05-02 17:25:47 +08:00
app 增强版v2-初始化仓库,验证好了ocr部分,先备份一次 2025-05-02 17:25:47 +08:00
data 增强版v2-初始化仓库,验证好了ocr部分,先备份一次 2025-05-02 17:25:47 +08:00
logs 增强版v2-初始化仓库,验证好了ocr部分,先备份一次 2025-05-02 17:25:47 +08:00
templates 增强版v2-初始化仓库,验证好了ocr部分,先备份一次 2025-05-02 17:25:47 +08:00
v1 增强版v2-初始化仓库,验证好了ocr部分,先备份一次 2025-05-02 17:25:47 +08:00
config.ini 增强版v2-初始化仓库,验证好了ocr部分,先备份一次 2025-05-02 17:25:47 +08:00
README.md 增强版v2-初始化仓库,验证好了ocr部分,先备份一次 2025-05-02 17:25:47 +08:00
requirements.txt 增强版v2-初始化仓库,验证好了ocr部分,先备份一次 2025-05-02 17:25:47 +08:00
run.py 增强版v2-初始化仓库,验证好了ocr部分,先备份一次 2025-05-02 17:25:47 +08:00
启动器.py 增强版v2-初始化仓库,验证好了ocr部分,先备份一次 2025-05-02 17:25:47 +08:00
项目结构优化方案.md 增强版v2-初始化仓库,验证好了ocr部分,先备份一次 2025-05-02 17:25:47 +08:00

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文件提取商品信息
  • 单位转换模块:处理商品规格和单位转换
  • 订单合并模块:合并多个采购单为一个总单
  • 文件工具模块:处理文件读写、路径管理等
  • 启动器:提供图形界面操作

使用方法

环境准备

  1. 安装Python 3.6+
  2. 安装依赖包:
    pip install -r requirements.txt
    
  3. 配置百度OCR API密钥
    • config.ini中填写您的API密钥和Secret密钥

图形界面使用

  1. 运行启动器:
    python 启动器.py
    
  2. 使用界面上的功能按钮进行操作:
    • OCR图像识别:批量处理data/input目录下的图片
    • 处理单个图片:选择并处理单个图片
    • 处理Excel文件处理OCR识别后的Excel文件生成采购单
    • 合并采购单:合并所有生成的采购单
    • 完整处理流程:按顺序执行所有处理步骤
    • 整理项目文件:整理文件到规范目录结构

命令行使用

系统提供命令行方式调用,便于集成到自动化流程中:

# OCR识别
python run.py ocr [--input 图片路径] [--batch]

# Excel处理
python run.py excel [--input Excel文件路径]

# 订单合并
python run.py merge [--input 采购单文件路径列表]

# 完整流程
python run.py pipeline

文件处理流程

  1. OCR识别处理

    • 读取data/input目录下的图片文件
    • 调用百度OCR API进行表格识别
    • 保存识别结果为Excel文件到data/output目录
  2. Excel处理

    • 读取OCR识别生成的Excel文件
    • 提取商品信息(条码、名称、规格、单价、数量等)
    • 按照采购单模板格式生成标准采购单Excel文件
    • 输出文件命名为"采购单_原文件名.xls"
  3. 采购单合并

    • 读取所有采购单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

注意事项

  1. 系统依赖百度OCR API使用前请确保已配置正确的API密钥
  2. 图片质量会影响OCR识别结果建议使用清晰的原始图片
  3. 处理大量图片时可能会受到API调用频率限制
  4. 所有处理好的文件会保存在data/output目录中

错误排查

  • OCR识别失败检查API密钥是否正确图片是否符合要求
  • Excel处理失败检查OCR识别结果是否包含必要的列条码、数量、单价等
  • 模板填充错误:确保模板文件存在且格式正确

开发说明

如需进行二次开发或扩展功能,请参考以下说明:

  1. 核心逻辑位于app/core目录
  2. 添加新功能建议遵循已有的模块化结构
  3. 使用app/services目录中的服务类调用核心功能
  4. 日志记录已集成到各模块,便于调试

许可证

MIT License

联系方式

如有问题请提交Issue或联系开发者。