Llama 3.2-Vision 图像文本提取
bigegpt 2025-01-12 11:35 7 浏览
本月初,我尝试了书籍封面识别,将 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 只是一个开始。
相关推荐
- 10w qps缓存数据库——Redis(redis缓存调优)
-
一、Redis数据库介绍:Redis:非关系型缓存数据库nosql:非关系型数据库没有表,没有表与表之间的关系,更不存在外键存储数据的形式为key:values的形式c语言写的服务(监听端口),用来存...
- Redis系列专题4--Redis配置参数详解
-
本文基于windowsX64,3.2.100版本讲解,不同版本默认配置参数不同在Redis中,Redis的根目录中有一个配置文件(redis.conf,windows下为redis.windows....
- 开源一夏 | 23 张图,4500 字从入门到精通解释 Redis
-
redis是目前出场率最高的NoSQL数据库,同时也是一个开源的数据结构存储系统,在缓存、数据库、消息处理等场景使用的非常多,本文瑞哥就带着大家用一篇文章入门这个强大的开源数据库——Redis。...
- redis的简单与集群搭建(redis建立集群)
-
Redis是什么?是开源免费用c语言编写的单线程高性能的(key-value形式)内存数据库,基于内存运行并支持持久化的nosql数据库作用主要用来做缓存,单不仅仅是做缓存,比如:redis的计数器生...
- 推荐几个好用Redis图形化客户端工具
-
RedisPlushttps://gitee.com/MaxBill/RedisPlusRedisPlus是为Redis可视化管理开发的一款开源免费的桌面客户端软件,支持Windows、Linux...
- 关于Redis在windows上运行及fork函数问题
-
Redis在将数据库进行持久化操作时,需要fork一个进程,但是windows并不支持fork,导致在持久化操作期间,Redis必须阻塞所有的客户端直至持久化操作完成。微软的一些工程师花费时间在解决在...
- 你必须懂的Redis十大应用场景(redis常见应用场景)
-
Redis作为一款高性能的键值存储数据库,在互联网业务中有着广泛的应用。今天,我们就来详细盘点一下Redis的十大常用业务场景,并附上Golang的示例代码和简图,帮助大家更好地理解和应用Redis。...
- 极简Redis配置(redis的配置)
-
一、概述Redis的配置文件位于Redis安装目录下,文件名为redis.conf(Windows名为redis.windows.conf,linux下的是redis.conf)你可以通过C...
- 什么是redis,怎么启动及如何压测
-
从今天起咱们一起来学习一下关于“redis监控与调优”的内容。一、Redis介绍Redis是一种高级key-value数据库。它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富。...
- 一款全新Redis UI可视化管理工具,支持WebUI和桌面——P3X Redis UI
-
介绍P3XRedisUI这是一个非常实用的RedisGUI,提供响应式WebUI访问或作为桌面应用程序使用,桌面端是跨平台的,而且完美支持中文界面。Githubhttps://github....
- windows系统的服务器快速部署java项目环境地址
-
1、mysql:https://dev.mysql.com/downloads/mysql/(msi安装包)2、redis:https://github.com/tporadowski/redis/r...
- window11 下 redis 下载与安装(windows安装redis客户端)
-
#热爱编程是一种怎样的体验#window11下redis下载与安装1)各个版本redis下载(windows)https://github.com/MicrosoftArchive/r...
- 一款轻量级的Redis客户端工具,贼好用!
-
使用命令行来操作Redis是一件非常麻烦的事情,我们一般会选用客户端工具来操作Redis。今天给大家分享一款好用的Redis客户端工具TinyRDM,它的界面清新又优雅,希望对大家有所帮助!简介Ti...
- 一个.NET开发且功能强大的Windows远程控制系统
-
我们致力于探索、分享和推荐最新的实用技术栈、开源项目、框架和实用工具。每天都有新鲜的开源资讯等待你的发现!项目介绍SiMayRemoteMonitorOS是一个基于Windows的远程控制系统,完...
- Redis客户端工具详解(4款主流工具)
-
大家好,我是mikechen。Redis是大型架构的基石,也是大厂最爱考察内容,今天就给大家重点详解4款Redis工具@mikechen本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集...
- 一周热门
- 最近发表
- 标签列表
-
- mybatiscollection (79)
- mqtt服务器 (88)
- keyerror (78)
- c#map (65)
- resize函数 (64)
- xftp6 (83)
- bt搜索 (75)
- c#var (76)
- mybatis大于等于 (64)
- xcode-select (66)
- mysql授权 (74)
- 下载测试 (70)
- skip-name-resolve (63)
- linuxlink (65)
- pythonwget (67)
- logstashinput (65)
- hadoop端口 (65)
- vue阻止冒泡 (67)
- oracle时间戳转换日期 (64)
- jquery跨域 (68)
- php写入文件 (73)
- kafkatools (66)
- mysql导出数据库 (66)
- jquery鼠标移入移出 (71)
- 取小数点后两位的函数 (73)