Web 环境移除: - 删除 Web 相关文件:src/app.py, heartbeat.py - 用 requirements-desktop.txt 替换 requirements.txt - 更新 README.md:移除 Web 界面、部署方案等章节 - 更新技术栈说明:Streamlit → PyQt6 - 添加 usb_bundle/ 到 .gitignore Desktop 应用改进: - 重构 OCRService:使用独立 Python 线程替代 QThread - 添加主线程预加载 paddleocr 模块,修复 macOS 上卡死问题 - 新增离线 OCR 初始化模块(src/ocr_offline.py) - 新增模型准备脚本(scripts/prepare_models.py) - 新增摄像头诊断工具(scripts/camera_probe.py) 功能定位: - Desktop 应用(src/desktop.py):实时摄像头拍照识别 - CLI 批处理(src/main.py):批量处理目录中的图片 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
122 lines
3.0 KiB
Markdown
122 lines
3.0 KiB
Markdown
# 信封信息提取系统
|
||
|
||
工厂环境下信封背面信息的自动化提取与结构化录入工具。
|
||
|
||
## 功能特性
|
||
|
||
- 自动识别信封图片中的文字信息
|
||
- 结构化提取:编号、邮编、地址、联系人、电话
|
||
- 支持批量处理,结果导出为 Excel
|
||
- 提供桌面应用,支持摄像头实时拍照识别
|
||
|
||
## 系统要求
|
||
|
||
| 项目 | 最低配置 | 推荐配置 |
|
||
|------|----------|----------|
|
||
| CPU | 4 核 | 8 核 |
|
||
| 内存 | 4 GB | 8 GB |
|
||
| 硬盘 | 2 GB | 5 GB |
|
||
| 系统 | Ubuntu 20.04 / Windows 10 | Ubuntu 22.04 |
|
||
| Python | 3.8 | 3.10 |
|
||
|
||
## 快速开始
|
||
|
||
### 1. 安装依赖
|
||
|
||
```bash
|
||
# Ubuntu 需要安装系统依赖
|
||
sudo apt-get install -y libgl1-mesa-glx libglib2.0-0
|
||
|
||
# 安装 Python 依赖
|
||
pip install -r requirements.txt
|
||
```
|
||
|
||
### 2. 运行方式
|
||
|
||
**命令行批处理**
|
||
```bash
|
||
# 将图片放入 data/input/ 目录
|
||
python src/main.py
|
||
|
||
# 结果保存在 data/output/result.xlsx
|
||
```
|
||
|
||
**桌面应用**
|
||
```bash
|
||
python src/desktop.py
|
||
|
||
# 启动 PyQt6 窗口,可选择摄像头实时拍照识别
|
||
```
|
||
|
||
---
|
||
|
||
## Windows 桌面离线版(zip 目录包)
|
||
|
||
本项目桌面版入口为 `src/desktop.py`(PyQt6 + OpenCV),适合现场工位离线使用。
|
||
|
||
### 1. 准备离线模型(在有网机器执行一次)
|
||
|
||
```bash
|
||
pip install -r requirements.txt
|
||
python scripts/prepare_models.py --models-dir models
|
||
```
|
||
|
||
执行完成后会生成 `models/whl/...` 目录结构;该 `models/` 目录需要与最终的 exe 同级分发。
|
||
|
||
### 2. Windows 打包(建议使用 PyInstaller 的 onedir)
|
||
|
||
请在 Windows 机器上构建 Windows 包(不要跨平台交叉打包)。
|
||
|
||
```powershell
|
||
pip install -r requirements.txt
|
||
pip install pyinstaller
|
||
|
||
pyinstaller --noconfirm --clean --windowed --onedir `
|
||
--name "post-ocr-desktop" `
|
||
--paths "src" `
|
||
--collect-all "Cython" `
|
||
--collect-all "paddleocr" `
|
||
--collect-all "paddle" `
|
||
--add-data "models;models" `
|
||
"src/desktop.py"
|
||
```
|
||
|
||
打包完成后,将 `dist\post-ocr-desktop\` 整个目录压缩为 zip 交付即可。
|
||
|
||
注意:
|
||
- 本项目默认使用 PaddleOCR 2.10.0(PP-OCRv4 中文)离线模型目录结构
|
||
- 若 `models/` 缺失,程序会直接报错提示,避免触发联网下载
|
||
|
||
## 目录结构
|
||
|
||
```
|
||
post-ocr/
|
||
├── data/
|
||
│ ├── input/ # 原始图片存放处
|
||
│ └── output/ # 结果 Excel 及处理日志
|
||
├── src/
|
||
│ ├── main.py # 命令行入口
|
||
│ ├── desktop.py # 桌面应用入口
|
||
│ └── processor.py # 核心处理逻辑
|
||
├── requirements.txt
|
||
└── README.md
|
||
```
|
||
|
||
## 技术栈
|
||
|
||
- OCR 引擎: PaddleOCR 2.10 (PP-OCRv4)
|
||
- 桌面框架: PyQt6
|
||
- 数据处理: Pandas
|
||
|
||
## 常见问题
|
||
|
||
**Q: 识别准确率不高怎么办?**
|
||
- 确保图片清晰、光线充足
|
||
- 避免图片倾斜或模糊
|
||
- 手写字体识别率较低,建议使用印刷体
|
||
|
||
**Q: 处理速度慢?**
|
||
- 首次运行需下载模型(约 200MB)
|
||
- 有 GPU 可安装 paddlepaddle-gpu 加速
|
||
- 批量处理时建议使用命令行模式
|