首页 › 论坛 › 置顶 › 如何在本地运行图像文本识别模型
-
作者帖子
-
2025-02-19 20:34 #13047Q QPY课程团队管理员
想要从图像中提取文本而不依赖于云服务吗?
您可以在自己的计算机上运行一个强大的光学字符识别(OCR)模型。这种本地方法让您完全控制整个过程,并保持数据的私密性。在本文中,我们将指导您设置和使用一个流行的开源OCR引擎。您将学习如何安装必要的库,加载预训练模型,以及处理图像以识别多种语言的文本。无论您是在进行个人项目还是开发应用程序,本指南将帮助您快速轻松地开始本地文本识别。
本指南使用Windows 11、Ollama模型运行器、Llama 3.2 Vision模型和Python。让我们开始吧!
1. 安装Ollama
首先,前往 https://ollama.com/download。下载安装程序(大约768 MB),并运行它以安装Ollama。
2. 拉取Llama 3.2 Vision模型
打开命令提示符或终端。我们将使用Ollama下载Llama 3.2 Vision模型。您有两个大小选项。
11B和90B参数指的是Llama 3.2 Vision模型的大小,表示每个模型中可训练参数的数量:
- 11B模型:这是较小的版本,具有110亿个参数。
- 90B模型:这是较大的版本,具有900亿个参数。
这两种模型均设计用于多模态任务,能够处理文本和图像。它们在各种应用中表现出色,例如:
- 文档级理解
- 图表和图形分析
- 图像描述
- 视觉定位
- 视觉问答
选择11B还是90B模型取决于具体的使用案例、可用的计算资源以及对复杂视觉推理任务所需的性能水平。
对于较小的模型(11B,至少需要8GB的显存(视频内存)):
ollama pull llama3.2-vision:11b
对于更大的模型(90B,需要高达64GB的显存):
ollama pull llama3.2-vision:90b
由于其巨大的硬件要求,家庭使用时本地运行90B模型是极具挑战性的。
3. 运行模型
一旦模型下载完成,可以使用以下命令在本地运行它:
ollama run llama3.2-vision
4. 安装 ollama-ocr
为了方便处理图像,我们将使用 ollama-ocr Python 库。使用 pip 安装它:
pip install ollama-ocr
5. 用于OCR的Python代码
以下是识别图像中文本的Python代码:
from ollama_ocr import OCRProcessor ocr = OCRProcessor(model_name='llama3.2-vision:11b') result = ocr.process_image( image_path="./your_image.jpg",
format_type="text") print(result)
6. 运行代码
将 “./your_image.jpg” 替换为您图像文件的实际路径。将代码保存为 .py 文件(例如,ocr_script.py)。从命令提示符运行脚本:
python ocr_script.py
该脚本将图像发送到您本地运行的 Llama 3.2 Vision 模型,识别出的文本将打印在您的终端中。
为了补充我们关于本地使用 Llama 3.2 Vision 的指南,我们在一台家用台式计算机上进行了性能测试。以下是结果:
性能测试结果
我们在一台家用台式机上运行了 Llama 3.2 Vision 11B 模型,其规格如下:
- 处理器:第13代 Intel(R) Core(TM) i7-13700K
- 显卡:Gigabyte RTX 3060 Gaming OC 12G
- 内存:64.0 GB DDR4
- 操作系统:Windows 11 Pro 24H2
测试图像
为了测试,我们选择了这张有趣的图像。
测试输出
使用我们的Python脚本,我们让模型识别图像中的文本,使用的是标准系统提示。在对单个测试图像多次运行脚本后,我们观察到处理时间范围从16.78到47.23秒。值得注意的是,这些结果是在显卡以默认设置运行的情况下获得的,没有进行任何额外的调优或优化。
该图像是一个黑白表情包,包含两个面板,面板中有火柴人和对话框。
面板 1:
在第一面板中,图像左侧的一个火柴人向中央的另一个火柴人伸出双臂。中央的人物手中拿着一个标有“WEEKEND”(周末)的大圆圈,字母为粗体白色。图像右侧的火柴人部分被画框的边缘遮挡。
面板 2:
在第二面板中,两个火柴人再次被描绘。然而,这次中央的人物手中拿着一个标有“MONDAY”(星期一)的小圆圈,而不是“WEEKEND”。图像左侧的火柴人再次向中央人物伸出双臂。文本和标签:
两个面板中的文本均以白色字母和粗体轮廓呈现。在第一面板中,标签为:- “ME”(在火柴人的胸前)
- “WEEKEND”(在大圆圈内)
在第二面板中,标签为:
- “MONDAY”(在小圆圈内)
- “ME”(在火柴人的胸前)
总体:
该表情包幽默地描绘了对即将到来的周末的期待和兴奋,以及当周末到来时随之而来的失望。简单而富有表现力的火柴人和对话框有效地传达了这一情感,以一种易于理解和娱乐的方式。结论
就是这样!您现在正在使用Ollama和Python运行本地图像文本识别系统。请记得尝试不同的图像,并根据需要调整您的方法以获得最佳效果。
您可以在以下仓库中找到本文提到的脚本:https://github.com/karavanjo/dev-content/tree/main/llama-local-run。
在此链接中的视频演示了模型的运行。
-
作者帖子
- 哎呀,回复话题必需登录。