本项目旨在对比测试两种先进的OCR技术方案:PaddleOCR-VL-1.5 和 GLM-OCR,以评估它们在不同场景下的识别效果。
-
确保系统已安装 Conda(Anaconda 或 Miniconda)
-
创建独立的 Conda 环境:
conda create -n ocr_sota python=3.12 conda activate ocr_sota
激活环境后,依次安装以下依赖包:
# 安装适用于 CUDA 12.6 的 PaddlePaddle 版本。对于其他 CUDA 版本和 CPU 版本,请参阅 https://www.paddlepaddle.org.cn/en/install/quick?docurl=/documentation/docs/en/develop/install/pip/linux-pip_en.html
python -m pip install paddlepaddle-gpu==3.2.1 -i https://www.paddlepaddle.org.cn/packages/stable/cu126/
python -m pip install -U "paddleocr[doc-parser]"
pip install -U vllm --extra-index-url https://wheels.vllm.ai/nightly
pip install git+https://github.com/huggingface/transformers.git另外还需要安装项目所需的其他依赖:
pip install -r requirements.txt确保模型文件已下载到以下位置(此步骤已完成):
/home/steve/models/PaddleOCR-VL-1.5/home/steve/models/GLM-OCR
打开一个新的终端窗口,激活环境并运行以下命令:
conda activate ocr_sota
vllm serve PaddlePaddle/PaddleOCR-VL \
--trust-remote-code \
--max-num-batched-tokens 16384 \
--no-enable-prefix-caching \
--mm-processor-cache-gb 0再打开一个终端窗口,激活环境并运行以下命令:
conda activate ocr_sota
VLLM_USE_MODELSCOPE=true vllm serve zai-org/GLM-OCR --allowed-local-media-path / --port 8080本项目提供了多种运行方式:
# 启动服务器
python run.py server --port 5000
# 启动客户端
python run.py client --server-url http://localhost:5000
# 一次性启动服务器和客户端
python run.py all --port 5000# 运行服务器
uvicorn server:app --host 0.0.0.0 --port 5000
# 在另一个终端运行客户端
python client.py-
准备测试数据:将待测试的图片放入
data/pngs目录,PDF转换后的图片放入data/pdfs目录 -
通过客户端进行测试:
- 选择"对比方法"选项测试单张图片
- 选择"批量测试data/pngs目录"选项测试多个图片
- 选择"批量测试data/pdfs目录"选项测试PDF转换后的图片
- 查看处理时间和识别结果
-
结果对比:
- 对比两个模型的识别准确性
- 对比处理速度
- 对比特殊字体、复杂布局等特殊情况的处理效果
- 记录每种方案的优势和不足
- 在执行命令前,请确保当前终端已激活
ocr_sota环境 - 如果遇到网络问题,可以尝试更换国内镜像源
- 服务启动可能需要一些时间,请耐心等待
- 请确保系统有足够的 GPU 内存来运行这些大型模型
- 项目依赖于外部OCR服务(PaddleOCR和GLM),需要确保这些服务正在运行
ocr-sota/
├── readme.md # 本说明文档
├── 项目概要.md # 项目原始需求文档
├── server.py # OCR服务端程序
├── client.py # OCR客户端程序
├── config.py # 项目配置文件
├── run.py # 项目启动脚本
├── requirements.txt # 项目依赖文件
├── data/ # 测试数据目录
│ ├── pngs/ # 存放PNG/JPG等图像文件
│ └── pdfs/ # 存放PDF转换后的图像文件
├── models/ # 模型存储目录(外部路径)
│ ├── PaddleOCR-VL-1.5/
│ └── GLM-OCR/
└── ocr_server.log # 服务器日志文件
- 支持PaddleOCR-VL和GLM-OCR两种模型的对比测试
- 提供单张图片和批量图片测试功能
- 实时显示处理时间和结果对比
- 自动保存测试结果到JSON文件
- 支持健康检查和错误处理
- 提供友好的交互式命令行界面