首页 论坛 置顶 如何在本地运行图像文本识别模型

正在查看 1 个帖子:1-1 (共 1 个帖子)
  • 作者
    帖子
  • #13047

    想要从图像中提取文本而不依赖于云服务吗?

    您可以在自己的计算机上运行一个强大的光学字符识别(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

    测试图像

    为了测试,我们选择了这张有趣的图像。

    该图像是用于测试本地运行的Llama 3.2 Vision 11B模型的表情包图像

    测试输出

    使用我们的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

    此链接中的视频演示了模型的运行。

正在查看 1 个帖子:1-1 (共 1 个帖子)
  • 哎呀,回复话题必需登录。