Skip to content

stevesu2021/ocr-sota

Repository files navigation

PaddleOCR-VL-1.5 与 GLM-OCR 方案对比测试

本项目旨在对比测试两种先进的OCR技术方案:PaddleOCR-VL-1.5 和 GLM-OCR,以评估它们在不同场景下的识别效果。

项目链接

操作步骤

第一步:环境准备

  1. 确保系统已安装 Conda(Anaconda 或 Miniconda)

  2. 创建独立的 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

第四步:启动服务

启动 PaddleOCR-VL 服务

打开一个新的终端窗口,激活环境并运行以下命令:

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

启动 GLM-OCR 服务

再打开一个终端窗口,激活环境并运行以下命令:

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

第六步:测试服务

  1. 准备测试数据:将待测试的图片放入 data/pngs 目录,PDF转换后的图片放入 data/pdfs 目录

  2. 通过客户端进行测试:

    • 选择"对比方法"选项测试单张图片
    • 选择"批量测试data/pngs目录"选项测试多个图片
    • 选择"批量测试data/pdfs目录"选项测试PDF转换后的图片
    • 查看处理时间和识别结果
  3. 结果对比:

    • 对比两个模型的识别准确性
    • 对比处理速度
    • 对比特殊字体、复杂布局等特殊情况的处理效果
    • 记录每种方案的优势和不足

注意事项

  • 在执行命令前,请确保当前终端已激活 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文件
  • 支持健康检查和错误处理
  • 提供友好的交互式命令行界面

About

ocr sota with paddleocr & glm-ocr

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages