# 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及以上
- 支持产品线: V5产品线A6、A8、G6、A8-N、G6-N (注:V8新一代产品线不适用,V8暂不支持此OCR)
OCR镜像安装包较大(20多G),建议通过云盘提前下载,离线安装:
百度网盘中下载ocr镜像
链接: https://pan.baidu.com/s/19jIO87ldikfdLK41DWyeug?pwd=838s
提取码: 838s
什么时候需要部署OCR图片理解模型服务?
用户有大量重要的扫描件、图片需要导入CoMi知识库,此时如果没有OCR服务,会提示:ocr请求失败。

# 二、环境要求
# 硬件要求
- 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 驱动。
# 检查 NVIDIA 驱动是否已安装
nvidia-smi
NVIDIA驱动可以通过 Ubuntu官网文档 → how-to → graphics → [install-nvidia-drivers (opens new window)] 获取。
如下是一个安装驱动示例仅供参考,不同显卡方式可能有所不同,请自行研究:
# 安装驱动管理工具(如果安装缓慢,建议先更换国内镜像源加速/etc/apt/sources.list)
sudo apt update
sudo apt install -y ubuntu-drivers-common
# 自动检测并安装推荐驱动
sudo ubuntu-drivers autoinstall
# 安装完成后重启系统生效
sudo reboot
# 安装并重启系统后,运行nvidia-smi如有输出则说明安装成功
nvidia-smi
# 3.3 准备Docker Engine
参考Docker官网手册 [Install Docker Engine on Ubuntu (opens new window)] 进行Docker的安装,确保最终Docker可用,以下为验证方法:
# 检查docker版本,确保Docker版本大于24.0.7
docker -v
# 查看docker状态
sudo systemctl status docker
以下为使用国内镜像源安装Docker Engine的方法,命令仅供参考:
# 导入Docker官方签名密钥,确保源可信
sudo curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 添加目录
sudo mkdir -p /etc/apt/sources.list.d
# 添加 Docker 官方 apt 源(阿里云镜像) 配置 apt 源指向阿里云,加速下载
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 更新软件包索引 并安装Docker
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io
# 查看docker版本,有输出则说明安装成功
docker -v
# 设置 Docker 服务开机启动
sudo systemctl start docker
sudo systemctl enable docker
# 3.4 准备Container Toolkit
Docker容器中如需使用GPU驱动,需要安装NVIDIA 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
官方默认走国外地址,国内可尝试使用中科大镜像源安装Container Toolkit,以下命令仅供参考:
sudo apt-get update && sudo apt-get install -y --no-install-recommends \
curl \
gnupg2
# 使用中科大镜像源
curl -fsSL https://mirrors.ustc.edu.cn/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://mirrors.ustc.edu.cn/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://nvidia.github.io#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://mirrors.ustc.edu.cn#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
# 安装container toolkit
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
# 配置 Docker 使用 nvidia-container-runtime
sudo nvidia-ctk runtime configure --runtime=docker
# 重新启动 Docker 服务使配置生效
sudo systemctl restart docker
# 检查包安装状态(输出版本号即为安装成功)
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镜像
sudo mkdir -p /data/ocr_image
sudo 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://127.0.0.1:12841/ocr/pic/health
预期返回:
{
"code": "200",
"message": "Success",
"data": {
"text_content": [
"单位"
]
}
}

# 五、OCR日常运维
# 5.1、调整OCR监听端口
OCR服务是Docker运行,故存在Docker内部端口和外部宿主机端口的映射,按照手册docker run命令执行默认端口设置为 -p 12841:12841 即宿主机也默认暴露12841端口。
如果项目上发现docker映射端口异常,需要修改宿主机端口,可以参考如下命令(主要修改点是 -p 12843:12841 ,其中12843就是宿主机修改后的端口,以后请求OCR就用12843端口):
# 停止旧容器(如果存在)
sudo docker rm -f ocr 2>/dev/null || true
# 启动容器
sudo docker run -d \
--privileged \
--restart=always \
--gpus all \
--name ocr \
-p 12843: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


# CoMi配置测试
# 场景一:智能部署工具配置OCR
如果项目上 采用智能部署工具部署的CoMi ,则通过一体化工具管理控制台去修改AI-Manager的配置:
- V5产品线仅需修改“OA OCR服务地址”这个配置,将其改成OCR真实地址,格式为
http://OCR服务地址:OCR端口/ocr/pic/get_all_text
注意修改配置后,需要重新发布修改后的应用才能生效,具体操作方法详见《智能部署工具手册 (opens new window)》 → [修改CoMi配置] 章节!

到CoMiBuilder本地知识库上传一个扫描件,解析策略勾选“文档图片解析”,等待执行完成,如果扫描件执行完成,并且正常切片则说明OCR服务部署配置成功!

# 场景二:Docker部署CoMi场景配置OCR
如果项目上 采用Docker部署的CoMi ,则通过修改 comi-install/config/ai-manager/application.yaml 文件,设置OCR信息:
cd /data/Seeyon/Comi/comi-install
vim config/ai-manager/application.yaml
V5产品线找到oaOcrUrl: 后面设置成OCR服务正确的地址,格式为http://OCR服务地址:OCR端口/ocr/pic/get_all_text
修改保存后重启AI-Manager服务生效:
docker restart comi-builder

以上完成后,到管理员系统后台CoMiBuilder测试一下扫描件是否生效,测试方法同场景一。
知识库OCR解析进度可通过AI-Manager日志看到 tail -f volumes/ai-manager/logs/log-info.log 。
# 场景三:全文检索配置OCR实现协同知识文档解析
当前功能研发中,暂未发布。
快速跳转