当前位置: 首页 > news >正文

零基础入门:GLM-OCR在Ubuntu 20.04系统上的详细部署教程

零基础入门:GLM-OCR在Ubuntu 20.04系统上的详细部署教程

你是不是也遇到过这种情况:手头有一堆图片,里面全是文字,需要手动一个个敲进电脑,费时费力还容易出错。或者,想给自己的项目加个自动识别图片文字的功能,却不知道从何下手?

今天,我就带你从零开始,在Ubuntu 20.04系统上,把GLM-OCR这个强大的文字识别工具给“装”起来。整个过程就像搭积木,跟着步骤走,就算你之前没怎么用过Linux,也能搞定。我们不用去研究复杂的算法原理,目标就一个:让服务跑起来,能识别图片里的字

我会把每一步要输入的命令都列出来,并解释清楚这行命令是干嘛的,帮你避开所有我当初踩过的坑。准备好了吗?咱们开始吧。

1. 动手前的准备工作

在开始安装任何软件之前,先把咱们的“工作台”——也就是Ubuntu系统——收拾利索,这是保证后续步骤顺利的关键。

1.1 更新系统软件包

打开你的终端(快捷键Ctrl+Alt+T),咱们输入的第一条命令是更新软件源列表。你可以把它理解为去超市购物前,先刷新一下商品目录,确保知道最新、最全的货品在哪。

sudo apt update

输入这行命令后,系统可能会让你输入密码。注意,输入密码时屏幕上不会有任何显示(连星号*都没有),这是Linux终端的安全设计,你正常输入后按回车就行。

接下来,我们把系统里已经安装的软件都升级到最新版本:

sudo apt upgrade -y

这里的-y参数是个“偷懒”选项,意思是对于升级过程中所有“是否继续?”的询问,都自动回答“是”。整个过程可能需要几分钟,取决于你的网络速度和需要更新的软件数量。

1.2 安装必要的依赖工具

GLM-OCR通常以Docker镜像的方式提供,这样能保证在任何系统上运行的环境都是一致的。所以,我们需要先安装Docker。

首先,安装一些让apt(软件包管理器)可以通过HTTPS下载软件的工具:

sudo apt install -y apt-transport-https ca-certificates curl software-properties-common

然后,添加Docker官方的软件源密钥,这就像取得一个可信仓库的进门许可:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

接着,将Docker的软件仓库地址添加到系统的源列表里:

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

现在,我们再次更新软件源列表,这次列表里就包含Docker的仓库了:

sudo apt update

最后,安装Docker引擎:

sudo apt install -y docker-ce docker-ce-cli containerd.io

安装完成后,为了让当前用户不用每次都输入sudo来执行docker命令(更方便),我们把当前用户加入到docker用户组:

sudo usermod -aG docker $USER

重要提示:执行完上面这行命令后,你需要完全退出当前终端,并重新打开一个新的终端窗口,这个分组变更才会生效。你可以直接关掉终端再开一个,或者输入exit命令退出登录。

在新的终端里,运行一个简单的测试,看看Docker是否安装成功:

docker --version

如果看到类似Docker version 20.10.12, build e91ed57的输出,恭喜你,Docker安装好了!

2. 获取并运行GLM-OCR镜像

环境准备好了,现在就去把GLM-OCR这个“核心部件”请过来。

2.1 拉取GLM-OCR镜像

这里假设你已经从相关的镜像平台(例如CSDN星图镜像广场)获得了GLM-OCR镜像的具体名称。拉取镜像就像从云端下载一个已经配置好的、包含所有运行环境的软件包。

docker pull [这里替换为你的GLM-OCR镜像名]

例如,镜像名可能是registry.cn-hangzhou.aliyuncs.com/your_namespace/glm-ocr:latest。你需要将其替换成你实际要使用的镜像地址。

这个下载过程的时间取决于镜像大小和你的网速,耐心等待即可。完成后,可以用下面的命令查看本地已有的镜像:

docker images

你应该能在列表里看到刚刚下载的GLM-OCR镜像。

2.2 启动OCR服务容器

下载好的镜像只是一个静态的模板。我们需要根据这个模板,创建一个正在运行的“实例”,也就是容器。

docker run -d --name glm-ocr -p 8000:8000 [你的GLM-OCR镜像名]

我来拆解一下这行命令:

  • docker run:命令Docker运行一个容器。
  • -d:让容器在“后台”运行,这样终端就不会被占用,你可以继续做其他事情。
  • --name glm-ocr:给这个容器起个名字叫“glm-ocr”,方便我们后续管理。
  • -p 8000:8000:这是端口映射,非常关键。它把容器内部的8000端口,“映射”到你Ubuntu电脑的8000端口上。这样,你通过访问http://你的UbuntuIP:8000,就能访问到容器里的服务了。
  • 最后跟上你的镜像名。

运行后,可以用下面的命令查看容器是否在正常运行:

docker ps

如果看到状态(STATUS)是Up,就说明服务已经在后台跑起来了。

3. 测试你的OCR服务

服务跑起来了,但它到底能不能用,识别得准不准?我们来亲手测试一下。

3.1 准备一张测试图片

首先,我们得有一张带文字的图片。你可以在系统里随便找一张,或者自己用截图工具截一段文字。为了测试方便,我建议在桌面创建一个专门的测试文件夹:

mkdir ~/Desktop/ocr_test cd ~/Desktop/ocr_test

然后,把你的测试图片(比如叫test.jpg)放到这个文件夹里。或者,我们用一个更简单的方法,直接让命令行下载一张示例图片(这里以一张简单的英文示例图链接为例,实际操作时请确保你有权使用的图片链接):

# 示例命令,请替换为实际可用的图片URL # wget -O test.jpg https://example.com/sample-text-image.jpg

3.2 发送请求进行识别

GLM-OCR服务通常会提供一个HTTP API接口。最常见的用法是,我们向这个接口发送一张图片,它返回识别出的文字。

我们使用curl这个命令行工具来发送请求。假设我们的服务运行在本机(localhost),端口是8000,识别接口是/ocr

curl -X POST -F "image=@test.jpg" http://localhost:8000/ocr

解释一下:

  • -X POST:表示这是一个POST请求。
  • -F "image=@test.jpg":表示以表单形式上传文件,字段名是image,文件是当前目录下的test.jpg。那个@符号很重要,意思是“这是文件”。
  • http://localhost:8000/ocr:这是我们GLM-OCR服务的地址和接口路径。

请注意:实际的接口路径(比如是/ocr,还是/v1/ocr)需要根据你拉取的GLM-OCR镜像的具体文档来确定。如果上面命令返回错误,你可能需要检查一下接口地址是否正确。

3.3 理解返回结果

如果一切顺利,你会看到终端里打印出一段JSON格式的文字,大概长这样:

{ "code": 0, "msg": "success", "data": { "text": "这是从图片中识别出来的文字内容...", "confidence": 0.98 } }
  • code为0通常表示成功。
  • msg是状态信息。
  • data.text里面就是OCR识别出的核心结果——文字内容。
  • confidence可能表示识别置信度,值越高代表模型越有信心。

看到这个,就大功告成了!你的GLM-OCR服务已经部署成功,并且可以正常工作了。

4. 可能遇到的问题和小技巧

第一次部署,难免会遇到点小波折。这里我列几个常见的情况和解决办法。

问题1:docker pulldocker run时提示权限错误(Permission denied)。

  • 检查:你是否在执行usermod命令后,没有重新打开终端?请务必关闭当前终端,新开一个再试。
  • 检查:你也可以临时用sudo前缀执行命令,比如sudo docker ps,但这只是临时解决方案,最好还是让用户加入docker组。

问题2:运行docker ps看不到容器,或者状态是Exited

  • 检查:用docker logs glm-ocr查看容器的日志输出,里面通常会有具体的错误信息,比如端口冲突、缺少某个依赖等。这是排查问题最直接的方法。

问题3:curl测试时连接被拒绝(Connection refused)。

  • 检查:确认容器是否真的在运行 (docker ps)。
  • 检查:确认你映射的端口是否正确。容器内部端口和主机端口都是8000吗?服务是否真的监听在8000端口?有些镜像可能使用其他端口如8080,你需要根据镜像说明调整-p参数,例如-p 8000:8080
  • 检查:防火墙是否屏蔽了8000端口?在Ubuntu上可以暂时关闭防火墙测试:sudo ufw disable(测试完记得开启:sudo ufw enable)。

问题4:如何停止、重启或删除这个服务?

  • 停止容器docker stop glm-ocr
  • 启动已停止的容器docker start glm-ocr
  • 重启容器docker restart glm-ocr
  • 删除容器(容器需先停止):docker rm glm-ocr
  • 删除镜像docker rmi [你的镜像名]

小技巧:让服务开机自启如果你希望每次Ubuntu系统重启后,这个OCR服务都能自动运行,可以在创建容器时加上--restart unless-stopped参数:

docker run -d --name glm-ocr --restart unless-stopped -p 8000:8000 [你的GLM-OCR镜像名]

5. 总结

走完这一遍,你会发现,在Ubuntu上部署一个像GLM-OCR这样的AI服务,其实并没有想象中那么复杂。核心步骤就是三板斧:准备好系统环境(装Docker) -> 拉取现成的镜像 -> 运行并映射端口。Docker把最麻烦的环境依赖问题都打包解决了,我们要做的就是学会怎么使用它。

现在你的本地已经有了一个随时可用的文字识别服务。接下来你可以做什么呢?比如,写一个简单的Python脚本,批量处理一个文件夹里的所有图片;或者把它集成到你的网站后台,让用户上传图片就能提取文字。从“能用”到“好用”,中间还有很大的探索空间。

部署过程中最大的经验就是,多看日志。无论是Docker容器的日志,还是服务返回的错误信息,都能给你最直接的线索。别怕出错,每一个错误提示都是通往成功的路标。


获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

http://www.cnnetsun.cn/news/1279030.html

相关文章:

  • DeOldify模型精调教程:使用自定义数据集提升上色效果
  • Stable Yogi Leather-Dress-Collection应用场景:短视频UP主动漫角色换装视频素材高效生产
  • 利用快马平台与opencode,十分钟搭建电商购物车交互原型
  • ICLR 2026 | 无需训练跨界泛化,UniOD用单一模型打通全领域异常检测
  • 如何构建高性能车联网通信平台:JT808 Server全面技术指南
  • Stable Yogi 模型IDE高效开发技巧:使用IntelliJ IDEA管理大型AI项目
  • 如何高效解决Instagram视频保存难题:Next.js下载工具全攻略
  • 基于四开关升降压与STM32的宽范围数字可调电源设计
  • GoldHEN Cheats Manager:开源工具解放PS4游戏体验,突破性能瓶颈
  • Z-Image-Turbo-rinaiqiao-huiyewunvGPU算力适配:CUDA 12.1 + torch 2.3环境精准匹配指南
  • 5步搞定OFA图像语义蕴含Web应用中文化:图文匹配零门槛体验
  • 使用Dify.AI工作流串联DeOldify:构建无需代码的AI图片处理平台
  • SiameseAOE通用属性观点抽取模型Python入门实战:环境部署与基础调用
  • 揭秘书匠策AI:论文写作中的数据分析魔法师
  • CF1500A Going Home
  • STM32F031 pwm调试踩坑
  • eVTOL/无人机动力测试:是该选用六分量天平还是普通力传感器?(从原理、优劣势、应用场景一文讲清楚)
  • 从零到手搓一个Agent:AI Agents新手入门精通
  • 全球财经资讯日报(夜间-凌晨)2026年3月12日
  • ROS2 -01-ROS2操作系统简介
  • 很多中国人看不了YouTube,但很多中国人靠 YouTube赚钱
  • TextureView 播放视频报错:java.lang.IllegalArgumentException: surfaceTexture must not be null
  • 企业培训ROI怎么算?这套可直接套用的量化表,让效果看得见
  • 你的数据库防火墙,可能只是个“透明人”
  • MFC CDialog触摸屏长按不响应右键消息解决方案
  • 单片机/C语言八股:(十一)指针的补充,包括指针的类型和大小
  • 从面试官视角:.NET高级工程师必问的5个实战问题(附避坑指南)
  • 湘情游戏盾AI防护引擎
  • LangGraph 实战笔记:用 AI 发起流程应用
  • 告别电脑卡顿:Everything+批处理脚本打造自动化清理系统(含完整代码)