Llama3.2-Vision本地OCR应用

APPLICATION Nov 19, 2024

光学字符识别 (OCR) 已成为数字化印刷文本和从图像中提取信息的重要工具。随着人工智能的进步,Llama 3.2-Vision 等模型为 OCR 任务提供了强大的功能。

在本文中,我们将指导你使用 Ollama 的 Llama 3.2-Vision 模型构建自己的 OCR 应用程序,并使用 Python 作为我们的编程语言。

1、先决条件

在开始之前,请确保你具有以下先决条件:

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

2、安装 Ollama

Ollama 是一个允许你在本地运行多模式模型的平台。要安装 Ollama,请按照以下步骤操作:

  • 下载 Ollama:访问 Ollama 官方网站并下载适合您操作系统的安装包。
  • 安装 Ollama:按照安装提示完成设置。

3、安装 Llama 3.2-Vision 模型

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

ollama run llama3.2-vision

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

4、设置 Python 环境

现在你已安装好所有内容,让我们为我们的 OCR 项目设置一个 Python 环境。

为你的项目创建一个新目录:

mkdir llama-ocr && cd llama-ocr

创建虚拟环境(可选但推荐):

python -m venv venv
source venv/bin/activate  # On Windows use `venv\\\\Scripts\\\\activate`

安装所需的库:你将需要一些用于图像处理和 base64 编码的库。使用 pip 安装它们:

pip install requests Pillow

5、编写 OCR 脚本

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

import base64
import requests
from PIL import Image

SYSTEM_PROMPT = """Act as an OCR assistant. Analyze the provided image and:
1. Recognize all visible text in the image as accurately as possible.
2. Maintain the original structure and formatting of the text.
3. If any words or phrases are unclear, indicate this with [unclear] in your transcription.
Provide only the transcription without any additional comments."""
def encode_image_to_base64(image_path):
    """Convert an image file to a base64 encoded string."""
    with open(image_path, "rb") as image_file:
        return base64.b64encode(image_file.read()).decode('utf-8')
def perform_ocr(image_path):
    """Perform OCR on the given image using Llama 3.2-Vision."""
    base64_image = encode_image_to_base64(image_path)
    response = requests.post(
        "<http://localhost:8080/chat>",  # Ensure this URL matches your Ollama service endpoint
        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("Error:", response.status_code, response.text)
        return None
if __name__ == "__main__":
    image_path = "path/to/your/image.jpg"  # Replace with your image path
    result = perform_ocr(image_path)
    if result:
        print("OCR Recognition Result:")
        print(result)

6、代码说明

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

6、运行 OCR 脚本

要运行脚本,请将 path/to/your/image.jpg替换为你要分析的图像文件的实际路径。然后在终端中执行脚本:

python ollama_ocr.py

你应该看到类似这样的输出:

OCR Recognition Result:
The text recognized from your image will be displayed here.

7、优化结果

如果你发现 OCR 解析不令人满意,请考虑调整脚本中的 SYSTEM_PROMPT 变量以更好地适应你的特定用例或提高提供给 Llama 3.2-Vision 的说明的清晰度。

8、结束语

使用 Llama 3.2-Vision 和 Ollama 构建 OCR 应用程序非常简单且功能强大,因为它具有多模式功能。通过遵循这些步骤,你可以在笔记本电脑上创建一个功能齐全的 OCR 工具,该工具利用先进的 AI 技术进行文本识别任务。

随意尝试不同的图像和提示,以探索此模型的全部潜力!随着人工智能的不断发展,像 Llama 3.2-Vision 这样的工具只会在理解和有效处理视觉信息方面做得更好。


原文链接:Build a Local Ollama OCR Application Powered By Llama 3.2-Vision

汇智网翻译整理,转载请标明出处

Tags