Llama 3.2-Vision
Llama 3.2-Vision为OCR(光学字符识别)+信息提取流程注入了强大动力。新增的“视觉”支持使其比之前的版本更智能、更快、更高效。Llama 3.1能够处理原始OCR输出的清理工作,但Llama 3.2-Vision不仅能完成这一任务,还能直接处理图像,减少了使用第三方OCR工具(如EasyOCR)的麻烦。它将所有功能整合为一个简单、流畅的过程。
这简化了工作流程并提高了准确性,因为Llama 3.2-Vision能够一步到位地完成整个任务:分析图像、检测文本,并根据你的需求对文本进行结构化处理。
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:生成作者的全名
在这个例子中,作者的名字是不完整的。
Norwegian Wood: Haruki Murakami.
模型能够轻松且精确地提取出书名和作者名字的可用部分。但令人印象深刻的是:它能够智能地补全缺失的名字,给我们一个完整的作者姓名,就好像它一直存在一样。
示例3:多本书
如果我们一次提供多张书籍封面的图片会怎样呢?
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:一摞书
在这个场景中,我们提供了一张多本书堆叠在一起的图像,就像它们在现实世界中的场景一样。
* 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也能尽可能准确地识别出书名和作者。
有什么变化?
在我之前的方法中,我首先使用YOLOv10来检测书籍封面上的文本区域,然后将这些区域通过EasyOCR进行文本提取,最后依赖Llama 3来清理结果。现在,有了Llama 3.2-Vision,这是一个一揽子的流畅过程:我给它一张图像,它立即给我一个结构化的、可使用的响应——无需在多个模型之间来回传递。
以下是一个快速比较:
旧方法:
新方法:
Llama 3.2-Vision:集图像分析、文本检测和结构化于一体的处理。
AI驱动的文本提取的未来前景光明,而Llama 3.2-Vision只是个开始。