超简单cnocr本地部署

CnOCR是一款OCR工具包,包含20多个预训练模型,安装起来也非常简单。

1. 基本硬件环境

  • CPU:N年前的 Intel(R) Core(TM) i5-3470 CPU @ 3.20GHz, 32G内存
  • GPU:N年前的 NVIDIA GeForce GTX 1080 Ti,11G显存

2. 基本软件环境

  • 操作系统:Ubuntu20.04 LTS,是为了跟老旧的硬件相匹配,专门降级到20.04的,更高版本存在各种软件兼容性问题,等有钱了全部换新!!!
  • CUDA:cuda_12.0.0_525.60.13_linux.run,虽然能支持到12.2甚至12.4,保险起见还是选择了12.0
  • Cudnn:libcudnn8_8.8.0.121-1+cuda12.0_amd64.deb,对应CUDA版本
  • NCCL:libnccl2_2.19.3-1+cuda12.0_amd64.deb对应CUDA版本,多显卡需要
  • miniconda:Miniconda3-py312_24.9.2-0-Linux-x86_64.sh

3. 创建虚拟环境

conda create -n cnocr python=3.10
conda activate cnocr

4. 安装cnocr的gpu版本

pip install cnocr[ort-gpu]  -i https://mirrors.aliyun.com/pypi/simple

它会安装pytorch、cuda等依赖,相当简单

5. 安装cnocr服务

pip install cnocr[serve] onnxruntime-gpu==1.20 -i https://mirrors.aliyun.com/pypi/simple

注意:因为要使用GPU,所以onnxruntime-gpu版本需要跟CUDA、Cudnn版本对应,默认安装的最新版本不一定适合,可能会执行报错。

(cnocr) zoon@zoon-TZ77XE3:~$ cnocr serve -p 8501
Traceback (most recent call last):
  File "/home/neo/miniconda3/envs/cnocr/bin/cnocr", line 5, in <module>
    from cnocr.cli import cli
  File "/home/neo/miniconda3/envs/cnocr/lib/python3.10/site-packages/cnocr/__init__.py", line 20, in <module>
    from cnstd.consts import AVAILABLE_MODELS as DET_AVAILABLE_MODELS
  File "/home/neo/miniconda3/envs/cnocr/lib/python3.10/site-packages/cnstd/__init__.py", line 21, in <module>
    from .ppocr import PPDetector
  File "/home/neo/miniconda3/envs/cnocr/lib/python3.10/site-packages/cnstd/ppocr/__init__.py", line 23, in <module>
    from .rapid_detector import RapidDetector
  File "/home/neo/miniconda3/envs/cnocr/lib/python3.10/site-packages/cnstd/ppocr/rapid_dete
<think>好的,我现在需要帮助用户解决如何在离线环境下部署CnOCR的问题。首先,我得回顾一下用户提供的引用内容,特别是引用[2]和[3],因为它们提到了CnOCR的安装和部署步骤。用户之前可能已经看过这些引用,但需要更详细的离线部署指南。 首先,用户的问题是关于离线部署,这意味着他们可能无法访问互联网来下载依赖项或模型。根据引用[2],CnOCR在Docker环境中安装时使用了清华的镜像源,但离线环境下可能需要预先下载所有依赖项。另外,引用[2]提到需要从百度云盘下载模型文件,这在离线情况下也需要提前准备。 接下来,我需要考虑离线部署的几个关键步骤:环境准备、依赖项安装、模型下载和配置。对于Docker环境,用户可能需要构建一个包含所有依赖和模型的镜像。而如果是非Docker环境,例如直接使用conda,用户需要手动安装所有包,并确保模型文件放置在正确的位置。 同时,用户可能遇到依赖缺失的问题,比如在引用[3]中提到的pillow、scipy、opencv等,这些在离线情况下需要预先下载whl文件或使用conda的离线包。此外,模型文件必须提前下载并放到~/.cnocr目录下,否则即使代码正确,也无法运行。 还需要考虑不同操作系统的兼容性,例如Ubuntu和Windows的路径差异,或者是否使用虚拟环境。用户可能还需要测试OCR功能是否正常工作,所以提供一个简单的测试脚本会有帮助。 最后,应该提醒用户注意模型版本和路径的正确性,避免因为路径错误导致加载失败。同时,如果用户无法访问百度云盘,可能需要寻找其他方式获取模型文件,或者联系项目维护者。</think>### 离线部署 CnOCR 的详细步骤 #### 1. **环境准备** - **操作系统支持**:推荐使用 Linux(Ubuntu/CentOS)或 Windows 10/11 - **Python 版本**:Python 3.6+(建议 3.8) - **安装包管理工具**: ```bash # 离线环境下需提前下载好以下文件 pip download cnocr[ort-cpu] -i https://pypi.tuna.tsinghua.edu.cn/simple ``` #### 2. **依赖项离线处理** - **关键依赖项列表**: - onnxruntime(CPU 版本) - Pillow<7.0.0(注意版本限制) - opencv-python - numpy - scipy - **离线安装方法**: ```bash # 将下载的.whl文件拷贝到离线环境 pip install --no-index --find-links=/path/to/wheels cnocr[ort-cpu] ``` #### 3. **模型文件部署** - **模型下载**: - 官方模型百度云地址:https://pan.baidu.com/s/1wHeNBr8mK4q9UTULS8YQhQ(提取码:cnocr) - 需提前下载以下文件: ``` cnocr-v2.3.zip ocr-densenet_lite_136-gru.zip ocr-densenet_lite_136-fc.zip ``` - **目录结构配置**: ```bash mkdir -p ~/.cnocr/2.3 unzip cnocr-v2.3.zip -d ~/.cnocr/2.3 ``` #### 4. **Docker 离线部署方案** ```dockerfile # Dockerfile 示例 FROM python:3.8-slim COPY ./offline_packages /tmp/packages RUN pip install --no-index --find-links=/tmp/packages cnocr[ort-cpu] COPY ./models /root/.cnocr/2.3 EXPOSE 8501 CMD ["cnocr", "serve", "-p", "8501"] ``` 构建命令: ```bash docker build -t cnocr-offline . docker run -d -p 8501:8501 cnocr-offline ``` #### 5. **验证安装** ```python from cnocr import CnOcr ocr = CnOcr() result = ocr.ocr('test_image.jpg') print(result) ``` #### 注意事项 1. 模型文件必须严格放置于`~/.cnocr/2.3`目录 2. 若使用GPU加速,需额外部署CUDA环境 3. Windows 系统需注意路径分隔符转换问题 4. 建议通过虚拟环境隔离依赖(`python -m venv cnocr_env`)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值