Paligemma 2 Mix:Demo OCR項目的指南
>從賬單收據中提取和分類費用。
- >執行光學特徵識別(OCR)以檢索關鍵信息。
- >根據提供的圖像總結支出。
- >我們的重點是構建財務見解工具,但您可以使用此博客中所學的知識來探索其他Paligemma 2 Mix的用例,例如圖像細分,對象檢測和問題答案。
- > 什麼是paligemma 2混合?
>
paligemma 2專為各種視覺語言任務而設計,包括圖像和簡短的視頻字幕,視覺問題答案,光學特徵識別(OCR),對象檢測和分割。>
>圖中使用的圖像的來源:google paligemma 2混合模型設計用於:
>步驟2:模型初始化 > bitsandbytes量化有助於減少記憶使用量的同時保持性能,從而可以在有限的GPU資源上運行大型模型。在此實現中,我們使用4位量化來進一步優化內存效率。
>步驟4:推理使用paligemma
> extract_total_amount()函數處理圖像以使用OCR從收據中提取總量。它構建了一個查詢(問題),指示模型僅提取數值值,然後調用ask_model()函數以生成模型的響應。
>對象檢測和分割:它在圖像中標識,標籤和片段對象進行結構化分析。
>步驟1:先決條件
>在開始之前,讓我們確保我們安裝了以下工具和庫:
>
pip install gradio -U bitsandbytes -U transformers -q
import gradio as gr
import torch
import pandas as pd
import matplotlib.pyplot as plt
from transformers import PaliGemmaForConditionalGeneration, PaliGemmaProcessor, BitsAndBytesConfig
from transformers import BitsAndBytesConfig
from PIL import Image
import re
device = "cuda" if torch.cuda.is_available() else "cpu"
# Model setup
model_id = "google/paligemma2-10b-mix-448"
bnb_config = BitsAndBytesConfig(
load_in_8bit=True, # Change to load_in_4bit=True for even lower memory usage
llm_int8_threshold=6.0,
)
# Load model with quantization
model = PaliGemmaForConditionalGeneration.from_pretrained(
model_id, quantization_config=bnb_config
).eval()
# Load processor
processor = PaliGemmaProcessor.from_pretrained(model_id)
# Print success message
print("Model and processor loaded successfully!")
現在,我們的圖像已準備好推理。
>
def ensure_rgb(image: Image.Image) -> Image.Image:
if image.mode != "RGB":
image = image.convert("RGB")
return image
>現在我們已經準備好主函數,我們將下一個從圖像中提取關鍵參數 - 在我們的情況下,這些是總金額和商品類別。pip install gradio -U bitsandbytes -U transformers -q
import gradio as gr
import torch
import pandas as pd
import matplotlib.pyplot as plt
from transformers import PaliGemmaForConditionalGeneration, PaliGemmaProcessor, BitsAndBytesConfig
from transformers import BitsAndBytesConfig
from PIL import Image
import re
我們已經準備好所有關鍵功能,所以讓我們分析輸出。 >
>上面的功能創建了一個餅圖,以可視化不同類別的支出分佈。如果不存在有效的支出數據,它將生成一個空白的圖形,並帶有表示“無支出數據”的消息。否則,它將創建帶有類別標籤和百分比值的餅圖,確保比例且良好的可視化。
步驟6:同時分析多個賬單device = "cuda" if torch.cuda.is_available() else "cpu" # Model setup model_id = "google/paligemma2-10b-mix-448" bnb_config = BitsAndBytesConfig( load_in_8bit=True, # Change to load_in_4bit=True for even lower memory usage llm_int8_threshold=6.0, ) # Load model with quantization model = PaliGemmaForConditionalGeneration.from_pretrained( model_id, quantization_config=bnb_config ).eval() # Load processor processor = PaliGemmaProcessor.from_pretrained(model_id) # Print success message print("Model and processor loaded successfully!")
我們通常有多個賬單要分析,因此讓我們創建一個函數來同時處理所有賬單。
用於一次分析多個賬單,我們執行以下步驟:>
初始化存儲:我們創建用於存儲結果和圖像的列表,將total_spending設置為0,並為類別總計定義字典。
def ensure_rgb(image: Image.Image) -> Image.Image: if image.mode != "RGB": image = image.convert("RGB") return image
- 打開並將圖像轉換為rgb。
- >將圖像附加到列表中。
- 在收據中對商品進行分類。
- 更新總支出和類別的總計。
- >將提取的數據存儲在結果列表中。
- 生成洞察力:我們創建一個支出分配餅圖以及總支出的摘要。
- 返回結果:最後,我們返回圖像列表,帳單摘要的數據框架,總支出摘要和支出圖表。
- >現在,我們已經制定了所有關鍵邏輯函數。接下來,我們致力於使用Gradio構建Interactive UI。
- >上面的代碼創建一個結構化的gradio ui,其中具有用於多個圖像的文件上載程序,並為觸發處理。提交後,上傳帳單圖像顯示在畫廊中,提取的數據顯示在表中,總支出總結在文本中,並生成了支出分配餅圖。
該功能將用戶輸入連接到process_multiple_bills()函數,以確保無縫數據提取和可視化。最後,demo.launch()函數啟動了用於實時互動的Gradio應用程序。
>
>我還嘗試了兩個基於圖像的賬單(亞馬遜購物發票)的演示,並得到以下結果。
注意:VLMS發現很難提取數字,這有時可能導致結果不正確。例如,它提取了以下第二賬單的錯誤總金額。這是可以使用較大型號或簡單地對現有模型進行微調來糾正。
>結論
在本教程中,我們使用Paligemma 2 Mix構建了一個AI驅動的多個Bill Scanner,這可以幫助我們從收據中提取和分類支出。我們使用Paligemma 2 Mix的視覺語言功能來進行OCR和分類,以毫不費力地分析支出見解。我鼓勵您將本教程適應您自己的用例。以上是Paligemma 2 Mix:Demo OCR項目的指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

嘿,編碼忍者!您當天計劃哪些與編碼有關的任務?在您進一步研究此博客之前,我希望您考慮所有與編碼相關的困境,這是將其列出的。 完畢? - 讓&#8217

介紹 Openai已根據備受期待的“草莓”建築發布了其新模型。這種稱為O1的創新模型增強了推理能力,使其可以通過問題進行思考

介紹 想像一下,穿過美術館,周圍是生動的繪畫和雕塑。現在,如果您可以向每一部分提出一個問題並獲得有意義的答案,該怎麼辦?您可能會問:“您在講什麼故事?

SQL的Alter表語句:動態地將列添加到數據庫 在數據管理中,SQL的適應性至關重要。 需要即時調整數據庫結構嗎? Alter表語句是您的解決方案。本指南的詳細信息添加了Colu

介紹 Mistral發布了其第一個多模式模型,即Pixtral-12b-2409。該模型建立在Mistral的120億參數Nemo 12B之上。是什麼設置了該模型?現在可以拍攝圖像和Tex

在從事代理AI時,開發人員經常發現自己在速度,靈活性和資源效率之間進行權衡。我一直在探索代理AI框架,並遇到了Agno(以前是Phi-

陷入困境的基準:駱駝案例研究 2025年4月上旬,梅塔(Meta)揭開了其Llama 4套件的模特,擁有令人印象深刻的性能指標,使他們對GPT-4O和Claude 3.5 Sonnet等競爭對手的良好定位。倫斯的中心

視頻遊戲可以緩解焦慮,建立焦點或支持多動症的孩子嗎? 隨著醫療保健在全球範圍內挑戰,尤其是在青年中的挑戰,創新者正在轉向一種不太可能的工具:視頻遊戲。現在是世界上最大的娛樂印度河之一
