光学字符识别(OCR)已成为将印刷文本数字化并从图像中提取信息的重要工具。随着人工智能的进步,像 Ollama 的 Llama 3.2-Vision 这样的模型提供强大的 OCR 功能。在本文中,我们将指导您使用 Python 构建自己的 OCR 应用程序,并利用 Ollama 提供的 Llama 3.2-Vision 模型。
在开始之前,如果你正在寻找的话,一个一站式的人工智能平台来管理你的所有AI订阅,包括所有大规模语言模型(比如GPT-o1、Llama 3.1、Claude 3.5 Sonnet、Google Gemini等)和图像生成模型(比如FLUX、Stable Diffusion等),
你可以用Anakin AI来管理它们。
[Anakin AI:]您的全方位AI平台(https://anakin.ai/)
Anakin.ai — 一站式人工智能应用平台生成内容、图像、视频和语音;还能打造自动化工作流、定制AI应用和智能代理。尽在anakin.ai 前提条件在开始前,请确保你有以下准备工作
- 运行 Windows、macOS 或 Linux 操作系统的笔记本电脑或台式机。
- 稳定的互联网连接以下载必要的包和模型。
- 具备基本的 Python 编程知识。
- 已在系统中安装 Python(建议版本 3.7 或更高)。
Ollama 是一个允许你在本地运行多模态模型的平台。要安装 Ollama,你可以按照以下步骤进行。
- 下载 Ollama:访问 Ollama 官方网站并下载适合您操作系统的安装包。
- 安装 Ollama:根据安装提示完成安装。
第二步:安装 Llama 3.2-Vision 模型
一旦你安装了 Ollama,你可以通过在终端中运行下面的命令来安装 Llama 3.2-Vision 模型:
ollama 运行 llama3.2-vision
此命令会下载并安装模型,以便在本地使用。
第三步:配置你的 Python 环境既然你已经安装好了所有需要的软件,让我们配置一个Python环境,开始我们的OCR项目吧。
为你的项目新建一个目录:
mkdir llama-ocr && cd llama-ocr # 创建llama-ocr目录并进入该目录
- 创建虚拟环境(可选,但建议使用):
python -m venv venv
运行 `venv/bin/activate` # 在 Windows 系统中运行 `venv\\Scripts\\activate`
- 安装所需的库:你需要一些处理图像和进行 Base64 编码的库,如下所示。使用 pip 安装它们,
在终端中输入以下命令来安装requests和Pillow库:
pip install requests Pillow
注意:这里的命令不需要翻译,直接复制粘贴即可使用。
第四步:编写您的 OCR 脚本现在我们可以编写一个用于OCR的Python脚本,使用Llama 3.2-Vision。创建一个新的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 响应中提取识别出的文本。
要运行您的脚本,请将 "path/to/your/image.jpg"
替换为您实际想要分析的图片文件路径,然后在你的终端里运行脚本。
运行 python ollama_ocr.py
你应该看到类似下面的输出:
OCR识别结果
从图像中识别出的文字会在这里显示。
第六步:优化结果
如果你觉得OCR结果不尽如人意,可以考虑调整你的脚本中的SYSTEM_PROMPT
变量,以更好地适应你的具体需求,以便更清晰地指导Llama 3.2-Vision。
使用 Llama 3.2-Vision 与 Ollama 构建一个 OCR 应用程序是简单且功能强大的,由于它具有多模态能力。通过这些步骤,您可以在笔记本电脑上创建一个来利用先进 AI 技术进行文本识别的 OCR 工具。
你可以尝试不同的图片和提示,探索这个模型的所有可能性!随着人工智能的进步,Llama 3.2-Vision 这样的工具只会变得越来越擅长高效地理解和处理图像信息。
共同学习,写下你的评论
评论加载中...
作者其他优质文章