GLM-OCR入门指南:Python环境下的安装与第一个解析程序
GLM-OCR入门指南Python环境下的安装与第一个解析程序你是不是经常需要从一堆发票、表格或者扫描件里手动录入信息费时费力不说还容易出错。今天咱们就来聊聊一个能帮你自动搞定这些事儿的工具——GLM-OCR。简单来说GLM-OCR是一个专门用来识别图片中文字的工具。你给它一张图片它就能把里面的文字内容包括位置、格式都给你“读”出来。对于想快速上手、验证想法的新手来说它最大的优点就是简单直接不用折腾复杂的服务器在自己的电脑上就能跑起来。这篇文章我就带你从零开始在Python环境下把GLM-OCR装好并且写一个能真正跑起来的程序去解析一张本地发票图片。整个过程就像搭积木一步步来保证你能跟上。1. 准备工作搭建你的Python游乐场在开始玩GLM-OCR之前我们得先把“场地”准备好。这里说的场地就是Python运行环境。1.1 确认Python版本GLM-OCR对Python版本有要求通常需要Python 3.7或更高版本。怎么查看你电脑上的Python版本呢很简单。打开你的命令行工具Windows上是“命令提示符”或PowerShellMac或Linux上是“终端”输入下面这行命令然后按回车python --version或者python3 --version你会看到类似Python 3.9.13这样的输出。只要前面的数字是3.7、3.8、3.9、3.10等就说明版本没问题。如果版本太低或者提示找不到命令那你需要先去Python官网下载并安装一个新版本。1.2 管理项目依赖的好帮手虚拟环境我强烈建议你使用“虚拟环境”。你可以把它想象成一个独立的、干净的房间。在这个房间里安装GLM-OCR和它需要的所有“家具”也就是各种Python库不会影响到房间外面你电脑上其他的Python项目。这样能避免各种库版本冲突的麻烦。创建虚拟环境的方法如下在你打算存放项目代码的文件夹里打开命令行。执行创建环境的命令# 对于Windows系统 python -m venv glm_ocr_env # 对于Mac或Linux系统 python3 -m venv glm_ocr_env这行命令会在当前目录下创建一个名叫glm_ocr_env的文件夹里面就是你的虚拟环境。激活这个环境进入我们的“独立房间”# Windows (命令提示符) glm_ocr_env\Scripts\activate.bat # Windows (PowerShell) glm_ocr_env\Scripts\Activate.ps1 # Mac 或 Linux source glm_ocr_env/bin/activate激活成功后你的命令行前面通常会显示环境的名字比如(glm_ocr_env)这就表示你已经在这个虚拟环境里了。好了场地准备完毕我们可以开始安装主角了。2. 安装GLM-OCR一条命令搞定安装过程比你想的要简单得多。得益于Python强大的包管理工具pip我们只需要一行命令。确保你已经在刚才激活的虚拟环境中然后在命令行里输入pip install glm-ocr按下回车pip就会自动从网络上下载GLM-OCR以及它所有必需的依赖库比如处理图像的Pillow进行科学计算的numpy等。屏幕上会滚动很多下载和安装信息稍等片刻直到最后出现“Successfully installed ...”的字样就表示安装成功了。你可以用下面的命令验证一下是否安装正确pip show glm-ocr这个命令会显示GLM-OCR的版本、安装位置等信息。3. 下载预训练模型给工具注入“知识”GLM-OCR本身是一个框架它要能准确识别文字还需要一个“大脑”也就是预训练模型。这个模型里包含了从海量数据中学到的识别规律。首次使用GLM-OCR时它会自动帮你下载默认的预训练模型。但为了网络不稳定时也能顺利运行我们也可以手动提前准备好。通常模型的下载链接或说明会在GLM-OCR的项目主页比如GitHub上找到。你需要找到模型文件可能是一个.bin或.onnx文件将它下载到你的项目文件夹里比如创建一个models文件夹来存放它。假设我们下载的模型文件叫glm_ocr_model.bin并放在了./models/目录下。记住这个路径等下写代码的时候要用到。4. 动手实战编写你的第一个发票解析程序理论说再多不如动手敲一行代码。现在我们来写一个完整的Python脚本实现读取本地发票图片并识别其中文字的功能。在你的项目文件夹里新建一个Python文件命名为first_ocr.py。4.1 导入必要的工具包打开first_ocr.py我们首先要把需要的“工具”引进来。# first_ocr.py from glm_ocr import GLMOCR import cv2 import jsonfrom glm_ocr import GLMOCR: 这行代码从我们刚安装的glm_ocr包里引入了最核心的识别类GLMOCR。import cv2: 引入OpenCV库这是一个非常强大的图像处理库我们用它来读取图片文件。如果你还没安装需要在命令行用pip install opencv-python安装一下。import json: Python自带的库用来把识别结果转换成更易读的JSON格式。4.2 初始化识别引擎接下来我们需要创建一个GLM-OCR的识别引擎实例并告诉它使用我们下载好的模型。# 初始化OCR引擎指定模型路径 model_path ./models/glm_ocr_model.bin # 请替换为你的实际模型路径 ocr_engine GLMOCR(model_pathmodel_path)把model_path的值换成你实际存放模型文件的路径。如果模型文件就在当前目录的models文件夹下用./models/glm_ocr_model.bin就行。4.3 加载待识别的发票图片假设我们有一张名为invoice_sample.jpg的发票图片也放在项目文件夹里。# 指定要识别的图片路径 image_path invoice_sample.jpg # 使用OpenCV读取图片 image cv2.imread(image_path) # 检查图片是否成功加载 if image is None: print(f错误无法从路径 {image_path} 读取图片请检查文件是否存在。) exit()cv2.imread函数负责把图片文件读进来转换成程序能处理的数字矩阵。后面的判断是为了确保图片真的被读进来了避免因为路径错误导致程序崩溃。4.4 执行文字识别并输出结果最激动人心的时刻到了让引擎开始工作# 执行OCR识别 print(正在识别图片中的文字请稍候...) result ocr_engine.recognize(image) # 将识别结果以美观的JSON格式打印出来 print(\n 识别结果 ) print(json.dumps(result, indent2, ensure_asciiFalse))ocr_engine.recognize(image)是核心调用它把图片数据喂给引擎引擎分析后返回识别结果。json.dumps(...)这一行是把结果通常是一个字典或列表格式化成带缩进的、中文不会乱码的字符串方便我们查看。4.5 运行你的程序保存好first_ocr.py文件。在命令行中确保你还在虚拟环境里并且当前目录就是你的项目文件夹然后运行python first_ocr.py如果一切顺利你会先看到“正在识别图片中的文字请稍候...”的提示稍等几秒到十几秒取决于图片大小和电脑性能屏幕上就会打印出结构化的识别结果。5. 解读识别结果看看机器“读”出了什么程序跑完后输出的一大段JSON就是识别结果。它可能长这样这是一个简化示例{ text: 增值税电子普通发票\n发票代码123456789012\n发票号码9876543210\n开票日期2023年10月27日\n购买方某某科技有限公司\n..., boxes: [[10, 20, 100, 30], [15, 50, 200, 65], ...], scores: [0.99, 0.98, 0.97, ...] }text: 这是识别出的所有文字按行或按块组合在一起。你可以快速浏览这里找到发票的关键信息比如发票号码、金额、日期等。boxes: 这是一个列表里面每个小列表如[10, 20, 100, 30]代表一个文字框在图片上的坐标。通常是左上角x, y坐标和右下角x, y坐标。这个信息可以用来还原文字在原图上的位置。scores: 这是识别置信度范围在0到1之间越接近1表示模型对这块文字的识别越有信心。你可以用它来过滤掉一些可能识别不准的结果。第一次运行重点看看text字段里的内容和你手中的发票图片对比一下感受一下识别的准确度。这就是你的第一个OCR程序产出的成果6. 总结跟着上面的步骤走一遍你应该已经成功在电脑上配置好了GLM-OCR的环境并且运行了一个能处理本地发票图片的脚本。整个过程的核心其实就是三步用pip安装工具包、准备好模型、调用几行简单的API。对于初学者来说先不用深究背后复杂的模型原理最重要的是先让它跑起来看到实际效果。有了这个能工作的基础程序你就可以开始尝试用它去识别不同类型的图片比如名片、报告或者书籍页面看看效果如何。遇到识别不准的地方可以尝试调整一下图片的亮度、对比度或者将来学习更高级的参数调整方法。动手实践是学习技术最快的方式。希望这个简单的入门指南能帮你推开OCR世界的大门。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

相关新闻

视频预览全解:3个步骤让Mac用户轻松管理所有视频格式

视频预览全解:3个步骤让Mac用户轻松管理所有视频格式

视频预览全解:3个步骤让Mac用户轻松管理所有视频格式 【免费下载链接】QLVideo This package allows macOS Finder to display thumbnails, static QuickLook previews, cover art and metadata for most types of video files. 项目地址: https://gitcode.com/gh…

2026/7/5 7:49:18 阅读更多 →
使用VMware虚拟机快速搭建Fish-Speech-1.5测试环境

使用VMware虚拟机快速搭建Fish-Speech-1.5测试环境

使用VMware虚拟机快速搭建Fish-Speech-1.5测试环境 1. 前言 想体验最新的语音合成技术但担心搞坏自己的电脑系统?VMware虚拟机是个不错的选择。Fish-Speech-1.5作为当前最先进的开源文本转语音模型之一,支持13种语言的高质量语音合成,现在你…

2026/7/3 21:50:34 阅读更多 →
AI股票分析师daily_stock_analysis与MySQL数据库集成教程

AI股票分析师daily_stock_analysis与MySQL数据库集成教程

AI股票分析师daily_stock_analysis与MySQL数据库集成教程 1. 引言 你是不是每天都要花大量时间手动整理股票分析数据?从各个平台导出CSV,再用Excel做数据清洗,最后还要想办法把分析结果保存起来?这种重复性工作不仅耗时耗力&…

2026/5/17 6:09:59 阅读更多 →

最新新闻

怎样高效配置AriaNg Native:5个实用技巧提升下载管理效率

怎样高效配置AriaNg Native:5个实用技巧提升下载管理效率

怎样高效配置AriaNg Native:5个实用技巧提升下载管理效率 【免费下载链接】AriaNg-Native A better aria2 desktop frontend than AriaNg, with all features of AriaNg and providing more features for desktop usage. 项目地址: https://gitcode.com/gh_mirror…

2026/7/5 15:34:37 阅读更多 →
深度学习图像分割实战:从原理到代码实现

深度学习图像分割实战:从原理到代码实现

1. 引言1.1 什么是图像分割?图像分割是计算机视觉中的一项核心任务,目标是将图像划分为若干具有语义含义的区域。与图像分类(给整张图打标签)和目标检测(用边界框框出物体)不同,分割要求在像素级…

2026/7/5 15:32:36 阅读更多 →
U-Net详解医学图像分割

U-Net详解医学图像分割

一、背景:在U-Net出现之前,分割有多难?想象一下,你是一名生物学家,正在通过电子显微镜观察果蝇的神经系统。你想知道一个神经细胞的边界究竟在哪里,于是你拿起一支笔,在30张连续的照片上一笔一笔…

2026/7/5 15:32:36 阅读更多 →
手把手带你复现图像分割经典(一)—— 从零构建UNet医学影像分割实战

手把手带你复现图像分割经典(一)—— 从零构建UNet医学影像分割实战

1. 为什么选择UNet做医学影像分割我第一次接触UNet是在处理一组细胞显微镜图像时。当时试过传统的图像处理方法,效果总是不理想——要么把细胞核边缘分割得坑坑洼洼,要么把背景噪点误识别成目标。直到发现UNet这个神器,才真正体会到什么叫&qu…

2026/7/5 15:32:36 阅读更多 →
33.搜索旋转排序数组

33.搜索旋转排序数组

题目描述题解(二分查找) 思路代码 class Solution {public int search(int[] nums, int target) {if (nums null || nums.length 0) {return -1;}int left 0;int right nums.length - 1;while (left < right) {int mid left (right - left) / 2;// 找到目标值&#xf…

2026/7/5 15:30:35 阅读更多 →
54.螺旋矩阵

54.螺旋矩阵

题目描述题解(按层模拟,边界收缩法) 思路代码 import java.util.ArrayList; import java.util.List;class Solution {public List<Integer> spiralOrder(int[][] matrix) {List<Integer> result new ArrayList<>();// 处理边界条件&#xff1a;空矩阵直接返…

2026/7/5 15:30:35 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools&#xff1a;5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱&#xff0c;支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里&#xff0c;参与了关于混合后量子密码学的讨论&#xff0c;应付端点攻击找茬的人&#xff0c;还参与留言板讨论后&#xff0c;发现“威胁模型”对多数人仍是陌生概念&#xff0c;且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”&#xff1a;我理解的渗透测试到底是什么&#xff1f;每次看到新闻里说某个大公司的数据被“黑”了&#xff0c;或者某个网站被攻击导致服务瘫痪&#xff0c;你是不是和我一样&#xff0c;心里会冒出两个念头&#xff1a;一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools&#xff1a;5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱&#xff0c;支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里&#xff0c;参与了关于混合后量子密码学的讨论&#xff0c;应付端点攻击找茬的人&#xff0c;还参与留言板讨论后&#xff0c;发现“威胁模型”对多数人仍是陌生概念&#xff0c;且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”&#xff1a;我理解的渗透测试到底是什么&#xff1f;每次看到新闻里说某个大公司的数据被“黑”了&#xff0c;或者某个网站被攻击导致服务瘫痪&#xff0c;你是不是和我一样&#xff0c;心里会冒出两个念头&#xff1a;一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻