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上是“命令提示符”或PowerShell,Mac或Linux上是“终端”),输入下面这行命令,然后按回车:

python --version

或者

python3 --version

你会看到类似 Python 3.9.13 这样的输出。只要前面的数字是3.7、3.8、3.9、3.10等,就说明版本没问题。如果版本太低或者提示找不到命令,那你需要先去Python官网下载并安装一个新版本。

1.2 管理项目依赖的好帮手:虚拟环境

我强烈建议你使用“虚拟环境”。你可以把它想象成一个独立的、干净的房间。在这个房间里安装GLM-OCR和它需要的所有“家具”(也就是各种Python库),不会影响到房间外面你电脑上其他的Python项目。这样能避免各种库版本冲突的麻烦。

创建虚拟环境的方法如下:

  1. 在你打算存放项目代码的文件夹里,打开命令行。

  2. 执行创建环境的命令:

    # 对于Windows系统
    python -m venv glm_ocr_env
    
    # 对于Mac或Linux系统
    python3 -m venv glm_ocr_env
    

    这行命令会在当前目录下创建一个名叫 glm_ocr_env 的文件夹,里面就是你的虚拟环境。

  3. 激活这个环境,进入我们的“独立房间”:

    # 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 json
  • from 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_path=model_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, indent=2, ensure_ascii=False))

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星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐