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文本提取 - 汇智网

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/904090.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

着色器的认识

知识了解&#xff1a; 着色器&#xff1a; 顶点着色器: 用来描述顶点的特性,如位置、颜色等&#xff0c;其中&#xff0c;顶点&#xff1a;是指二维或三维空间中的一个点比如交点或者端点。 片元着色器&#xff1a;用来进行逐片元处理操作&#xff0c;比如光照、颜色叠加等&…

雷电模拟器ls内部操作adb官方方法

正常情况下&#xff0c;我们通过adb操作模拟器&#xff0c;如安装软件、运行shell命令等&#xff0c;但是用windows系统&#xff0c;adb就经常掉线&#xff0c;端口被占用&#xff0c;或者发现不到设备&#xff0c;对于调试或者自动化非常痛苦。就在雷电安装目录下&#xff0c;…

AI驱动的低代码未来:加速应用开发的智能解决方案

引言 随着数字化转型的浪潮席卷全球&#xff0c;企业对快速构建应用程序的需求愈发强烈。然而&#xff0c;传统的软件开发周期冗长、成本高昂&#xff0c;往往无法满足快速变化的市场需求。在此背景下&#xff0c;低代码平台逐渐成为开发者和企业的优选方案&#xff0c;以其“低…

python实战(四)——RAG预热实践

一、任务目标 为了清晰直观地展示RAG&#xff08;检索增强生成&#xff09;方法的有效性&#xff0c;我们手搓一套RAG的流程进行演示&#xff0c;作为后续LangChain等技术的预热。本文编程实践的目的是展示RAG的工作原理及流程&#xff08;科普为主&#xff09;&#xff0c;不过…

pycharm与anaconda下的pyside6的安装记录

一、打开anaconda虚拟环境的命令行窗口&#xff0c;pip install&#xff0c;加入清华源&#xff1a; pip install PySide6 -i https://pypi.tuna.tsinghua.edu.cn/simple 二、打开pycharm&#xff0c;在文件--设置--工具--外部工具中配置一下三项&#xff1a; 1、 QtDesigner…

MATLAB实现人类学习优化算法HLO

1.算法简介 人类学习优化算法&#xff08;Human Learning-based Optimization&#xff0c;HLO&#xff09;是一种基于人类学习过程开发的启发式算法。HLO算法的设计灵感来源于人类的智慧和经验&#xff0c;特别是人类在学习和调整过程中展现出的适应性、学习能力和创新思维。该…

ubuntu openmpi安装(超简单)

openmpi安装 apt update apt install openmpi-bin openmpi-common libopenmpi-dev安装到此完毕 测试一下&#xff0c;success !

车位识别系统项目设计

车位识别系统需求分析 1.概述 1.1问题描述 随着车辆保有量的不断增长&#xff0c;对车位中是否停有车辆进行检测的车位检测装置的需求不断增加。为了改善停车体验,建设停车引导系统非 常必要。而停车引导系统的核心,是需要检测哪些车位被占用,哪些空闲。 室内停车场因为施工…

2 columns passed, passed data had 4 columns

文章目录 一、问题复现二、原因分析 在使用Pandas等数据处理库时&#xff0c;我们经常需要将数据赋值给DataFrame。然而&#xff0c;有时候我们可能会遇到ValueError: 2 columns passed, passed data had 4 columns这个错误。这个错误表明你在构建一个 Pandas DataFrame 时&…

深度学习中one-hot 编码的正确理解

one-hot编码 是一种表示类别标签的方法。对于一个分类问题&#xff08;例如图像分割中的类别标签&#xff09;&#xff0c;one-hot编码会将一个类别标记转换为一个向量&#xff0c;这个向量中只有一个位置为1&#xff0c;其余位置为0。划重点&#xff1a;一个one hot 编码可以理…

vscode和pycharm在当前工作目录的不同|python获取当前文件目录和当前工作目录

问题背景 相信大家都遇到过一个问题&#xff1a;一个项目在vscode&#xff08;或pycharm&#xff09;明明可以正常运行&#xff0c;但当在pycharm&#xff08;或vscode&#xff09;中时&#xff0c;却经常会出现路径错误。起初&#xff0c;对于这个问题&#xff0c;我也是一知…

《操作系统真象还原》第3章 完善MBR【3.1 — 3.2】

目录 引用与说明 3.1、地址、section、vstart 浅尝辄止 1、什么是地址 2、什么是 section【汇编】 3、什么是 vstart【汇编】 3.2、CPU 的实模式 1、CPU 工作原理【重要】 2、实模式下的寄存器 4、实模式下 CPU 内存寻址方式 5、栈到底是什么玩意儿 6 ~ 8 无条件转移…

tiktok双旋转验证码识别,利用图像处理技术准确率达97

注意&#xff0c;本文只提供学习的思路&#xff0c;严禁违反法律以及破坏信息系统等行为 如有侵犯&#xff0c;请联系作者下架 该文章模型已经上线ocr识别网站&#xff0c;欢迎测试&#xff01;&#xff01;&#xff0c;地址&#xff1a;https://yxlocr.windy-rain.cn/ocr/othe…

TVM前端研究--Relay

文章目录 深度学习IR梳理1. IR属性2. DL前端发展3. DL编译器4. DL编程语言Relay的主要内容一、Expression in Relay1. Dataflow and Control Fragments2. 变量3. 函数3.1 闭包3.2 多态和类型关系3.3. Call4. 算子5. ADT Constructors6. Moudle和Global Function7. 常量和元组8.…

angular使用http实现get和post请求

说明&#xff1a; angular使用http实现get和post请求 提示&#xff1a;在运行本项目前&#xff0c;请先导入路由router&#xff0c;可以参考我上一篇文章。 效果图&#xff1a; step1:E:\projectgood\ajsix\untitled4\package.json “angular/cdk”: “^18.2.10”, “angula…

虚拟现实辅助工程技术助力航空航天高端制造业破局

在当今竞争激烈的航天产业环境中&#xff0c;高昂的研发成本、复杂的制造流程、繁重的维护任务以及对关键太空资产需求的不断升级&#xff0c;是航空航天高端制造业亟待破解的困境。在此背景下&#xff0c;虚拟现实辅助工程技术正以前所未有的速度渗透至各行各业&#xff0c;成…

LySocket 远程ShellCode注入工具

一款基于C/C开发的远程ShellCode注入工具&#xff0c;通常配合Metasploit一起使用&#xff0c;可实现远程注入反弹代码到指定进程&#xff0c;它由服务端和客户端两部分组成&#xff0c;并使用最少的代码实现了多Socket套接字管理机制&#xff0c;目前主要功能包括&#xff0c;…

【JVM第2课】类加载子系统(类加载器、双亲委派)

类加载系统加载类时分为三个步骤&#xff0c;加载、链接、初始化&#xff0c;下面展开介绍。 文章目录 1 类加载器1.1 引导类加载器&#xff08;BootStrapClassLoader&#xff09;1.2 拓展类加载器&#xff08;ExtClassLoader&#xff09;1.3 应用类加载器&#xff08;AppClas…

进一步认识ICMP协议

在日常工作中&#xff0c;我们经常需要判断网络是否连通&#xff0c;相信大家使用较多的命令就是 ping啦。ping命令是基于 ICMP 协议来实现的&#xff0c;那么什么是 ICMP 协议呢&#xff1f;ping命令又是如何基于 ICMP 实现的呢&#xff1f; 今天这篇文章&#xff0c;我们就来…

计算机网络-MSTP的基础概念

前面我们大致了解了MSTP的由来&#xff0c;是为了解决STP/RSTP只有一根生成树导致的VLAN流量负载分担与次优路径问题&#xff0c;了解MSTP采用实例映射VLAN的方式实现多实例生成树&#xff0c;MSTP有很多的理论概念需要知道&#xff0c;其实与其它的知识一样理论复杂配置还好的…