使用Ollama增强Llama 3.2-Vision的OCR功能

2024年10月29日 由 alex 发表 463 0

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:单张图片输入

我们从一张单个书籍封面图片开始。


6


The Secret History: Donna Tartt.


模型成功地识别了书名和作者的全名,并且完全按照指定的模板进行了格式化。


示例2:生成作者的全名

在这个例子中,作者的名字是不完整的。


7


Norwegian Wood: Haruki Murakami.


模型能够轻松且精确地提取出书名和作者名字的可用部分。但令人印象深刻的是:它能够智能地补全缺失的名字,给我们一个完整的作者姓名,就好像它一直存在一样。


示例3:多本书

如果我们一次提供多张书籍封面的图片会怎样呢?


8


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:一摞书

在这个场景中,我们提供了一张多本书堆叠在一起的图像,就像它们在现实世界中的场景一样。


9


* 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,这是一个一揽子的流畅过程:我给它一张图像,它立即给我一个结构化的、可使用的响应——无需在多个模型之间来回传递。


以下是一个快速比较:


旧方法:

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


新方法:

Llama 3.2-Vision:集图像分析、文本检测和结构化于一体的处理。


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

文章来源:https://medium.com/towards-artificial-intelligence/enhance-ocr-with-llama-3-2-vision-using-ollama-0b15c7b8905c
欢迎关注ATYUN官方公众号
商务合作及内容投稿请联系邮箱:bd@atyun.com
评论 登录
热门职位
Maluuba
20000~40000/月
Cisco
25000~30000/月 深圳市
PilotAILabs
30000~60000/年 深圳市
写评论取消
回复取消