GLM-OCR在Ubuntu 20.04上的保姆级安装与部署教程

张开发
2026/4/12 6:50:09 15 分钟阅读

分享文章

GLM-OCR在Ubuntu 20.04上的保姆级安装与部署教程
GLM-OCR在Ubuntu 20.04上的保姆级安装与部署教程如果你正在寻找一个功能强大的开源OCR工具并且恰好使用的是Ubuntu 20.04系统那么你来对地方了。GLM-OCR是一个基于深度学习的文本识别模型识别准确率不错而且完全开源免费。今天我就来手把手带你把它装到你的Ubuntu 20.04上从系统环境准备到最终启动服务每一步都讲清楚确保你一次成功。整个过程其实不复杂但有几个关键点需要注意比如CUDA版本、Python虚拟环境还有依赖包的版本兼容问题。我会把这些容易踩坑的地方都标出来。只要你跟着步骤走大概半小时左右就能搭好一个可用的OCR服务环境。1. 动手前的准备工作在开始敲命令之前我们先花几分钟看看需要准备些什么。这就像做饭前要备好菜一样准备工作做足了后面才会顺利。首先你需要一台安装了Ubuntu 20.04的电脑或服务器。我强烈建议使用带NVIDIA GPU的机器因为GLM-OCR用GPU跑起来会快很多。当然没有GPU用CPU也能跑就是速度会慢一些。其次你需要有系统的管理员权限也就是能使用sudo命令。因为我们要安装一些系统级的依赖包。最后确保你的网络连接是通畅的因为我们需要从网上下载很多东西包括代码、模型权重和Python包。2. 搭建基础系统环境这是整个部署过程中最基础也最关键的一步。我们需要把Python、CUDA这些底层环境都配好。2.1 更新系统并安装基础工具打开你的终端我们先来更新一下系统软件包列表并安装一些后续会用到的工具。sudo apt update sudo apt upgrade -y sudo apt install -y wget curl git build-essential software-properties-common这几条命令的作用是更新软件源、升级已有软件包然后安装wget下载工具、curl网络工具、git代码管理、build-essential编译工具链等基础工具。-y参数的意思是自动回答“yes”省得我们一直确认。2.2 安装Python 3.8Ubuntu 20.04默认自带Python 3.8这正好是我们需要的版本。我们先确认一下python3 --version如果显示的是Python 3.8.x那就可以直接用了。如果没有或者版本不对我们可以用下面命令安装sudo apt install -y python3.8 python3.8-venv python3.8-dev这里多装了一个python3.8-dev它包含了Python开发需要的头文件和静态库有些Python包在编译安装时会用到。2.3 安装和配置CUDA与cuDNNGPU用户必看如果你打算用GPU来跑GLM-OCR那么这一步是必须的。CUDA是NVIDIA的并行计算平台cuDNN是针对深度神经网络的加速库。首先检查一下你的NVIDIA驱动是否已经装好nvidia-smi如果这个命令能正常输出你的GPU信息比如型号、驱动版本等那驱动就是好的。如果报错“command not found”那你就需要先安装NVIDIA驱动。在Ubuntu 20.04上可以通过“软件和更新”里的“附加驱动”选项卡来安装或者用命令行安装这里不展开讲了。接下来安装CUDA。GLM-OCR通常需要CUDA 11.x版本。我们以CUDA 11.3为例这是一个比较稳定且兼容性好的版本wget https://developer.download.nvidia.com/compute/cuda/11.3.0/local_installers/cuda_11.3.0_465.19.01_linux.run sudo sh cuda_11.3.0_465.19.01_linux.run运行安装程序时你会看到一个文本界面。这里有个关键点在安装选项里记得把“Driver”前面的勾去掉如果你的驱动已经装好了的话只安装CUDA Toolkit。然后按照提示完成安装。安装完成后需要把CUDA加到系统环境变量里。编辑你的~/.bashrc文件nano ~/.bashrc在文件末尾添加这几行export PATH/usr/local/cuda-11.3/bin${PATH::${PATH}} export LD_LIBRARY_PATH/usr/local/cuda-11.3/lib64${LD_LIBRARY_PATH::${LD_LIBRARY_PATH}}保存退出后让配置生效source ~/.bashrc最后安装cuDNN。你需要先去NVIDIA官网注册并下载对应CUDA 11.3的cuDNN包通常是一个.tgz文件。下载后解压并拷贝文件tar -xzvf cudnn-11.3-linux-x64-v8.2.1.32.tgz sudo cp cuda/include/cudnn*.h /usr/local/cuda-11.3/include sudo cp cuda/lib64/libcudnn* /usr/local/cuda-11.3/lib64 sudo chmod ar /usr/local/cuda-11.3/include/cudnn*.h /usr/local/cuda-11.3/lib64/libcudnn*到这里GPU环境就基本配好了。你可以用nvcc --version看看CUDA编译器是否正常。3. 获取GLM-OCR代码并创建独立环境现在我们开始处理GLM-OCR本身。为了避免把Python包装得系统里到处都是搞乱环境我们用虚拟环境。3.1 克隆代码仓库先找一个你喜欢的工作目录比如在/home下创建一个项目文件夹cd ~ mkdir glm-ocr-project cd glm-ocr-project然后从GitHub上把GLM-OCR的代码克隆下来git clone https://github.com/THUDM/GLM-OCR.git cd GLM-OCRgit clone命令会把项目所有的源代码、配置文件都下载到本地。如果网络慢可能需要多等一会儿。3.2 创建并激活Python虚拟环境我们使用Python自带的venv模块来创建虚拟环境python3.8 -m venv glm-ocr-env这条命令会在当前目录下创建一个名叫glm-ocr-env的文件夹里面是一个独立的Python环境。接下来激活它source glm-ocr-env/bin/activate激活后你会发现命令行提示符前面多了(glm-ocr-env)的字样这表示你现在已经在这个虚拟环境里了。之后所有pip install安装的包都会装到这个环境里不会影响系统其他Python项目。4. 安装Python依赖包虚拟环境激活后我们就可以安装GLM-OCR运行所需要的各种Python库了。通常项目会提供一个requirements.txt文件里面列出了所有需要的包和版本。4.1 升级pip并安装核心依赖首先我们把包管理工具pip升级到最新版这样能避免一些安装问题pip install --upgrade pip然后尝试安装项目要求的依赖pip install -r requirements.txt这里很可能遇到第一个坑如果项目没有提供requirements.txt或者文件里的某些包版本太老装不上我们就需要手动安装一些常见的依赖。对于OCR项目一般离不开下面这些pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu113 pip install opencv-python pillow numpy pandas pip install transformers注意第一行安装PyTorch的命令--extra-index-url指定了CUDA 11.3的PyTorch版本。如果你用CPU或者CUDA版本不同需要去PyTorch官网查一下对应的安装命令。4.2 处理可能出现的依赖冲突Python包管理有时候像玩俄罗斯方块一个包版本不对可能引发一连串问题。如果安装过程中报错比如“Could not find a version that satisfies the requirement...”那通常是版本冲突。这时候别急着一个个去搜。我们可以先安装一个叫pip-tools的工具它能帮我们分析依赖关系pip install pip-tools然后尝试编译依赖pip-compile requirements.in # 如果项目有requirements.in文件 pip-sync如果没有requirements.in也可以尝试手动降低某个冲突包的版本比如pip install some-package1.2.3 # 指定一个已知可用的旧版本5. 下载模型权重并启动服务依赖包都搞定后就差最后两步了把训练好的模型参数下载下来然后启动推理服务。5.1 获取预训练模型深度学习模型光有代码不行还得有训练好的权重文件就是模型学到的参数。GLM-OCR的模型权重通常发布在Hugging Face Hub或者项目的Release页面。假设权重文件放在Hugging Face上我们可以用git lfs来下载如果文件很大git lfs install git clone https://huggingface.co/THUDM/glm-ocr-base如果项目提供了下载脚本那就更简单了python download_models.py下载完成后把权重文件放到项目指定的目录下比如./models/。记得检查一下README文件看看具体的路径要求。5.2 启动OCR推理服务万事俱备现在可以启动服务了。GLM-OCR一般会提供一个简单的Web API服务方便我们上传图片并获取识别结果。启动服务的命令可能像这样python app.py或者python -m uvicorn main:app --host 0.0.0.0 --port 7860服务启动后你应该能在终端看到类似“Running on http://0.0.0.0:7860”的提示。这时候打开你的浏览器访问http://你的服务器IP:7860就能看到一个上传图片的界面了。为了测试服务是否正常你可以找一张清晰的、带文字的图片比如书本的一页或者一个路牌上传试试。如果一切正常几秒钟后你就能看到识别出来的文字结果。6. 常见问题与解决思路即使跟着教程走也可能因为系统差异遇到一些小问题。这里我列几个最常见的并给出解决办法。问题一ImportError: libcudart.so.11.3: cannot open shared object file这意思是系统找不到CUDA的动态库。解决方法是确认环境变量LD_LIBRARY_PATH设置对了并且CUDA确实安装在了/usr/local/cuda-11.3。可以用echo $LD_LIBRARY_PATH和ls /usr/local/cuda-11.3/lib64/libcudart.so.11.3来检查。问题二torch.cuda.is_available()返回False这说明PyTorch没有检测到可用的GPU。可能的原因有1. NVIDIA驱动没装好2. 安装的PyTorch版本不对比如装了CPU版本3. CUDA和PyTorch版本不匹配。解决方法是重装对应CUDA版本的PyTorch。问题三虚拟环境激活后Python还是系统版本这通常是因为source命令没生效或者你开了一个新的终端窗口。记住每个新的终端窗口都需要重新执行一次source glm-ocr-env/bin/activate来激活环境。问题四内存或显存不足如果图片很大或者同时处理很多图片可能会爆内存。可以尝试在代码里减小批处理大小batch size或者换用分辨率低一点的图片。7. 总结整个部署流程走下来感觉GLM-OCR的安装还是挺清晰的主要就是系统环境、Python环境和模型文件这三块。最花时间的部分往往是解决依赖冲突和CUDA环境配置但只要耐心点一步步查错都能搞定。用起来之后你会发现它的识别效果在开源模型里算是挺能打的尤其是对印刷体文字。对于想自己搭建OCR服务又不想花太多钱买商业API的朋友来说这是个不错的选择。部署好只是第一步你还可以看看它的代码结构尝试用自己的数据微调一下模型或者把它集成到你自己的应用里去。有了这个本地服务处理图片、提取文字就方便多了而且数据都在自己手里隐私也有保障。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

更多文章