# OCR Docker 服务部署手册(GPU版)

# 一、服务信息

  • 服务名称: OCR 识别服务
  • 服务功能:可识别图片、PDF扫描件,生成文字,常用于CoMi知识库上传扫描件后进行OCR识别解析成文字
  • 镜像地址: cdhx78.seeyon.com:5356/library/seeyon/ocr:latest-gpu
  • 基础镜像: nvidia/cuda:12.8.1-cudnn-runtime-ubuntu22.04
  • 服务端口: 12841
  • GPU 支持: 是(必需)
  • 依赖CoMi版本: CoMi V2.0.2及以上

# 二、环境要求

# 硬件要求

  • CPU: 4核+
  • 内存: 32G+
  • 磁盘: 500G+
  • 显卡: NVIDIA RTX 4090 * 1

# 软件要求

  • 操作系统: 只适配ubuntu22.04操作系统和X86 CPU架构
  • Docker: 24.0.7+
  • NVIDIA 驱动: 450.80.02+
  • NVIDIA Container Toolkit: 1.0.0+

说明: 镜像已内置 CUDA 12.8.1 和 cuDNN 运行时,宿主机仅需安装 NVIDIA 驱动和 Container Toolkit。


# 三、环境检查与准备(客户)

需要客户完成如下环境准备:

# 3.1 检查Ubuntu版本和架构

OCR识别服务对CPU架构和操作系统版本要求严格,只适配ubuntu22.04操作系统和X86 CPU架构:

# 检查版本信息,确保输出为Ubuntu 22.04.xxx LTS
lsb_release -a

# 检查CPU架构,确保输出为X86_64
uname -a

# 3.2 检查 GPU 驱动

Ubuntu系统下使用 nvidia-smi 检查GPU驱动情况,如果命令返回 GPU 信息,说明驱动已安装,如未安装则需要用户自行安装 NVIDIA 驱动和 Container Toolkit。

NVIDIA驱动可以通过 Ubuntu官网文档 → how-to → graphics → [install-nvidia-drivers (opens new window)] 获取。以下为验证方法:

# 检查 NVIDIA 驱动是否已安装
nvidia-smi

# 3.3 检查Docker Engine(Ubuntu OS)

参考Docker官网手册 [Install Docker Engine on Ubuntu (opens new window)] 进行Docker的安装,确保最终Docker可用,以下为验证方法:

# 检查docker版本,确保Docker版本大于24.0.7
docker -v

# 3.4 检查Container Toolkit

Docker容器中如需使用GPU驱动,需要安装Container Toolkit,参考NVIDIA官方文档 [Installing the NVIDIA Container Toolkit (opens new window)] 。以下为验证方法:

# 检查包安装状态(输出版本号即为安装成功)
dpkg -l | grep nvidia-container-toolkit

# 官方最新验证命令(无任何额外依赖,仅需核心包),有输出nvidia-smi信息则说明安装成功
docker run --rm --gpus all nvidia/cuda:12.2.0-base-ubuntu22.04 nvidia-smi

# 四、部署步骤

# 4.1 创建目录和配置文件

# 创建目录
sudo mkdir -p /data/Seeyon/Comi/ocr/{config,logs}

# 创建配置文件
sudo tee /data/Seeyon/Comi/ocr/config/config.json > /dev/null <<'EOF'
{
  "app_name": "ocr",
  "port": 12841,
  "workers": 1,
  "log_level": "INFO",
  "log_dir": "./logs",
  "ocr_use_doc_orientation_classify": true,
  "ocr_use_doc_unwarping": false,
  "ocr_use_textline_orientation": true,
  "compress_enabled": true,
  "compress_max_width": 1500,
  "compress_max_height": 1500,
  "compress_quality": 90,
  "compress_debug": false,
  "ocr_enable_preprocessing": true,
  "ocr_enable_white_margin_removal": true,
  "ocr_force_gray": false,
  "ocr_sharpen_strength": 0.5,
  "ocr_jpeg_pixel_threshold": 3000000,
  "ocr_jpeg_compress_min_pixels": 1500000,
  "file_size_limit": 20971520,
  "allowed_extensions": ["jpg", "jpeg", "png", "bmp", "tiff", "webp"],
  "health_check_image": "resources/ocr_test.png",
  "paddle_font_file": "resources/fonts/simfang.ttf"
}
EOF

# 4.2 启动容器

百度网盘中下载ocr镜像 链接: https://pan.baidu.com/s/19jIO87ldikfdLK41DWyeug?pwd=838s 提取码: 838s

# 存放ocr镜像
mkdir -p /data/ocr_image
mv ocr_gpu.tar.gz /data/ocr_image
cd /data/ocr_image

# 拉取镜像(文件很大,需要一定时间)
sudo docker load -i ocr_gpu.tar.gz

# 停止旧容器(如果存在)
sudo docker rm -f ocr 2>/dev/null || true

# 启动容器
sudo docker run -d \
  --privileged \
  --restart=always \
  --gpus all \
  --name ocr \
  -p 12841:12841 \
  -v /data/Seeyon/Comi/ocr/config/config.json:/app/config/config.json \
  -v /data/Seeyon/Comi/ocr/logs:/app/logs \
  cdhx78.seeyon.com:5356/library/seeyon/ocr:latest-gpu

# 4.3 验证部署

# 查看容器状态
sudo docker ps | grep ocr

# 查看日志
sudo docker logs ocr

# 检查 GPU 使用
sudo docker exec -it ocr nvidia-smi

# 测试服务是否正常
curl -X POST http://xx.xx.xx.xx:12841/ocr/pic/health

预期返回:

{
  "code": "200",
  "message": "Success",
  "data": {
    "text_content": [
      "单位"
    ]
  }
}

1770168052818.png

编撰人:het