AI驱动的图像文本提取【Llama 3.2-Vision】

本月初,我尝试了书籍封面识别,将 YOLOv10、EasyOCR 和 Llama 3 结合成一个无缝工作流程。结果如何?我自信地从书籍封面中提取标题和作者,就像这是我的新超能力一样。你可以在这篇文章中查看这一旅程:使用自定义 Yolov10 和 Ollama (Llama 3) 增强 OCR

但猜怎么着?仅仅几周后,这种方法已经开始感觉像流媒体时代的旧 VHS 录像带。为什么?随之而来的是 Llama 3.2-Vision------闪亮、新颖、超群的兄弟------完全提高了标准,让我之前的方法感觉像是来自恐龙。

让我们深入探讨为什么这种新方法会改变游戏规则

1、从优秀到卓越:进入 Llama 3.2-Vision

Llama 3.2-Vision 增强了 OCR + 信息提取管道。新的"视觉"支持使其比以前的版本更智能、更快速、更高效。

Llama 3.1 负责清理原始 OCR 输出,但 Llama 3.2-Vision 不仅能完成这些工作,还能做更多 --- 直接处理图像,减少麻烦,减少对 EasyOCR 等第三方 OCR 工具的需求。它将所有内容集成到一个简单、精简的流程中。

这简化了工作流程并提高了准确性,因为 Llama 3.2-Vision 可以一次性完成整个任务:分析图像、检测文本并根据您的要求对其进行结构化。

2、Llama 3.2-Vision:如何安装和使用

在深入研究代码之前,你需要安装最新版本的 Ollama 来运行 Llama 3.2-Vision。请按照这篇文章获取分步指南。

安装后,直接从图像中提取书名和作者的代码非常简单:

复制代码
from PIL import Image
import base64
import io

def image_to_base64(image_path):
    # Open the image file
    with Image.open(image_path) as img:
        # Create a BytesIO object to hold the image data
        buffered = io.BytesIO()
        # Save the image to the BytesIO object in a specific format (e.g., JPEG)
        img.save(buffered, format="PNG")
        # Get the byte data from the BytesIO object
        img_bytes = buffered.getvalue()
        # Encode the byte data to base64
        img_base64 = base64.b64encode(img_bytes).decode('utf-8')
        return img_base64

# Example usage
image_path = 'image.png'  # Replace with your image path
base64_image = image_to_base64(image_path)

import ollama

# Use Ollama to clean and structure the OCR output
response = ollama.chat(
    model="x/llama3.2-vision:latest",
    messages=[{
      "role": "user",
      "content": "The image is a book cover. Output should be in this format - <Name of the Book>: <Name of the Author>. Do not output anything else",
      "images": [base64_image]
    }],
)
# Extract cleaned text
cleaned_text = response['message']['content'].strip()
print(cleaned_text)

让我们看几个例子------

示例 1:单张图片输入

我们从上一篇文章中使用的单本书封面图片开始。

输出:

复制代码
The Secret History: Donna Tartt.

该模型成功识别了书名和作者的全名,并根据指定的模板完美格式化。

示例 2:生成作者的全名

在这种情况下,作者的名字不完整。

Soure: Gyaanstore

输出:

复制代码
Norwegian Wood: Haruki Murakami.

该模型毫不费力地精确提取了书名和作者姓名的可用部分。但令人印象深刻的是:它智能地填写了缺失的名字,给我们完整的作者姓名,就像它一直在那里一样。

示例 3:多本书

如果我们一次提供多本书封面的图片会怎么样?

Source: Elocalshop

输出:

复制代码
Norwegian Wood: Haruki Murakami
Kafka on the Shore: Haruki Murakami
Men Without Women: Haruki Murakami
Sputnik Sweetheart: Haruki Murakami
South of the Border, West of the Sun: Haruki Murakami
A Wild Sheep Chase: Haruki Murakami
Birthday Stories: Haruki Murakami
Underground: Haruki Murakami
After Dark: Haruki Murakami
After the Quake: Haruki Murakami
The Elephant Vanishes: Haruki Murakami

该模型处理每幅图像并输出相应的标题和作者,使其能够灵活地批量处理多本书。

示例 4:书堆

在此场景中,我们呈现了一张多本书堆叠在一起的图像,就像它们在真实场景中一样

Souce:Typing Madly

输出:

复制代码
* Norwegian Wood: Haruki Murakami
* Sputnik Sweetheart: Haruki Murakami
* After Dark: Haruki Murakami
* Dance, Dance, Dance: Haruki Murakami
* Kafka on the Shore: Haruki Murakami
* Hear the Wind Sing: Haruki Murakami
* A Wild Sheep Chase: Haruki Murakami
* Blind Willow, Sleeping Woman: Haruki Murakami
* After the Quake: Haruki Murakami
* The Wind-Up Bird Chronicle: Haruki Murakami

即使在书籍堆叠或部分被遮挡的情况下,Llama 3.2-Vision 也能尽可能准确地识别书名和作者。

3、有什么变化?

在我之前的方法中,我首先使用 YOLOv10 检测书籍封面上的文本区域,然后将这些区域通过 EasyOCR 进行文本提取,最后依靠 Llama 3 清理结果。现在,有了 Llama 3.2-Vision,这是一个一体化的流畅过程:我给它输入一张图片,它会立即给我一个随时可用的结构化响应------不再需要在多个模型之间来回切换。

以下是快速比较:

旧方法:

  • YOLOv10:用于检测文本区域。
  • EasyOCR:用于 OCR 处理。
  • Llama 3.1:用于清理和构造文本。

新方法:

  • Llama 3.2-Vision:一体化处理------图像分析、文本检测和构造。

4、为什么重要?

升级后的工作流程具有实际好处:

  • 简单:更少的工具意味着更少的配置、更少的依赖关系和更容易的维护。
  • 效率:Llama 3.2-Vision 可一次性处理所有任务,减少所需的时间和资源。
  • 准确性:控制整个过程的单一模型可减少不同阶段之间出错的可能性。
  • 多功能性:你可以使用 Ollama 在本地轻松运行此模型,并且该模型可以适应除简单文本提取之外的更复杂用例。

AI 驱动的文本提取前景光明,而 Llama 3.2-Vision 只是一个开始。


原文链接:Llama 3.2-Vision文本提取 - 汇智网

相关推荐
边缘计算社区35 分钟前
FPGA与边缘AI:计算革命的前沿力量
人工智能·fpga开发
飞哥数智坊43 分钟前
打工人周末充电:15条AI资讯助你领先一小步
人工智能
Tech Synapse1 小时前
基于CARLA与PyTorch的自动驾驶仿真系统全栈开发指南
人工智能·opencv·sqlite
layneyao1 小时前
深度强化学习(DRL)实战:从AlphaGo到自动驾驶
人工智能·机器学习·自动驾驶
海特伟业2 小时前
隧道调频广播覆盖的实现路径:隧道无线广播技术赋能行车安全升级,隧道汽车广播收音系统助力隧道安全管理升级
人工智能
CareyWYR2 小时前
每周AI论文速递(250421-250425)
人工智能
追逐☞2 小时前
机器学习(10)——神经网络
人工智能·神经网络·机器学习
winner88812 小时前
对抗学习:机器学习里的 “零和博弈”,如何实现 “双赢”?
人工智能·机器学习·gan·对抗学习
Elastic 中国社区官方博客2 小时前
使用 LangGraph 和 Elasticsearch 构建强大的 RAG 工作流
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
娃娃略2 小时前
【AI模型学习】双流网络——更强大的网络设计
网络·人工智能·pytorch·python·神经网络·学习