使用Llama 3.2-Vision大模型,搭建本地Ollama OCR应用 原创

发布于 2024-12-3 14:55
浏览
0收藏

用Python和Ollama的Llama 3.2-Vision模型搭建自己的OCR应用。

​光学字符识别技术,简称OCR,目前是数字化印刷文本和提取图像信息的核心手段,其重要性正日益凸显。如今,有了AI的加持,尤其是像Llama 3.2-Vision这样的模型,OCR变得更加强大。本文教会大家用Python和Ollama的Llama 3.2-Vision模型,一步步搭建起自己的OCR应用。

先决条件

在开始之前,先确保已准备好以下条件:

  • 一台安装了Windows、macOS或Linux的电脑。
  • 稳定的互联网连接,用于下载必要的包和模型。
  • 对Python编程的基本了解。
  • 系统上安装了Python(最好是3.7或更高版本)。

步骤1:安装Ollama

Ollama是一个能让你在本地运行多模态模型的平台。安装步骤如下:

  • 下载Ollama:访问Ollama官方网站,下载适合你操作系统的安装包。
  • 安装Ollama:根据安装向导完成安装过程。

步骤2:安装Llama 3.2-Vision模型

安装好Ollama后,你就可以通过在终端运行以下命令来安装Llama 3.2-Vision模型了:

ollama run llama3.2-vision

此命令下载并设置模型以供本地使用。

步骤3:设置Python环境

现在已经安装了所有内容,为OCR项目设置一个Python环境:

  • 创建项目目录:建立一个新的文件夹来存放项目文件。在命令行中输入以下命令:

mkdir llama-ocr && cd llama-ocr
  • 创建虚拟环境(这一步是可选的,但推荐):

python -m venv venv
source venv/bin/activate  # 在Windows上使用 `venv\Scripts\activate`
  • 安装所需的库:为了处理图像和进行base64编码,我们需要安装一些库。使用pip安装以下库:

pip install requests Pillow

步骤4:编写OCR脚本

现在编写使用Llama 3.2-Vision执行OCR的Python脚本。创建一个名为​​ollama_ocr.py​​的新文件,添加以下代码:

import base64
import requests
from PIL import Image

SYSTEM_PROMPT = """作为OCR助手。分析提供的图像并:
1. 尽可能准确地识别图像中所有可见的文本。
2. 保持文本的原始结构和格式。
3. 如果任何单词或短语不清晰,请在转录中用[unclear]表示。
仅提供转录,不要有任何额外的评论。"""
def encode_image_to_base64(image_path):
    """将图像文件转换为base64编码的字符串。"""
    with open(image_path, "rb") as image_file:
        return base64.b64encode(image_file.read()).decode('utf-8')
def perform_ocr(image_path):
    """使用Llama 3.2-Vision对给定图像执行OCR。"""
    base64_image = encode_image_to_base64(image_path)
    response = requests.post(
        "http://localhost:8080/chat",  # 确保此URL与你的Ollama服务端点匹配
        json={
            "model": "llama3.2-vision",
            "messages": [
                {
                    "role": "user",
                    "content": SYSTEM_PROMPT,
                    "images": [base64_image],
                },
            ],
        }
    )
    if response.status_code == 200:
        return response.json().get("message", {}).get("content", "")
    else:
        print("错误:", response.status_code, response.text)
        return None
if __name__ == "__main__":
    image_path = "path/to/your/image.jpg"  # 替换为你的图像路径
    result = perform_ocr(image_path)
    if result:
        print("OCR识别结果:")
        print(result)

代码解释

  • Base64编码:​​encode_image_to_base64​​函数读取一个图像文件并将其转换为base64字符串,这是通过HTTP请求发送图像所需的。
  • 执行OCR:​​perform_ocr​​函数向本地Ollama服务发送POST请求,附带系统提示和base64编码的图像。
  • 处理响应:脚本检查请求是否成功,并从JSON响应中检索识别出的文本。

步骤5:运行OCR脚本

确保将脚本中的"path/to/your/image.jpg"替换成你想要识别的图片文件的实际路径。然后,在终端里运行以下命令:

python ollama_ocr.py

应该看到类似于以下的输出:

OCR识别结果:
您的图像中识别出的文本将显示在这里。

步骤6:优化结果

如果对OCR的结果不太满意,可以尝试调整脚本中的SYSTEM_PROMPT变量,使其更贴合你的具体需求,或者改善提供给Llama 3.2-Vision的指令的清晰度。

结论

使用Ollama和Llama 3.2-Vision构建OCR应用程序是直接且强大的,这得益于其多模态处理能力。按照上述步骤,你可以在电脑上创建一个功能性的OCR工具,利用先进的AI技术进行文本识别任务。

不妨多试试不同的图片和提示,充分挖掘这个模型的潜力。随着AI技术的持续进步,像Llama 3.2-Vision这样的工具在理解和处理视觉信息方面将变得更加高效和精准。


本文转载自公众号AI科技论谈

原文链接:​​https://mp.weixin.qq.com/s/R-wEB-a15E8t9bQWjl5plA​

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
收藏
回复
举报
回复
相关推荐