目錄
現在,我們的圖像已準備好推理。
結論
首頁 科技週邊 人工智慧 Paligemma 2 Mix:Demo OCR項目的指南

Paligemma 2 Mix:Demo OCR項目的指南

Feb 28, 2025 pm 04:32 PM

>從賬單收據中提取和分類費用。

    >執行光學特徵識別(OCR)以檢索關鍵信息。
  • >根據提供的圖像總結支出。
  • >我們的重點是構建財務見解工具,但您可以使用此博客中所學的知識來探索其他Paligemma 2 Mix的用例,例如圖像細分,對象檢測和問題答案。
  • >
  • 什麼是paligemma 2混合?
> Paligemma 2 Mix是一種高級視覺語言模型(VLM),將圖像和文本作為輸入處理並生成基於文本的輸出。它旨在在支持多種語言的同時處理各種多模式AI任務。

>

paligemma 2專為各種視覺語言任務而設計,包括圖像和簡短的視頻字幕,視覺問題答案,光學特徵識別(OCR),對象檢測和分割。

>

>圖中使用的圖像的來源:google

paligemma 2混合模型設計用於:> Paligemma 2 Mix:Demo OCR項目的指南

>圖像和簡短視頻字幕:生成靜態圖像和簡短視頻的準確和上下文感知字幕。

>視覺詢問答案(VQA):根據視覺內容分析圖像並回答基於文本的問題。

>光學特徵識別(OCR):從圖像中提取和解釋文本,使其可用於文檔,收據和掃描材料。
    >對象檢測和分割:它在圖像中標識,標籤和片段對象進行結構化分析。
  • >多語言支持:該模型還可以以多種語言以全局應用程序為文本生成和理解。
  • >您可以在官方發行文章中找到有關Paligemma 2混合模型的更多信息。 
  • 項目概述:Bill Scanner和Paligemma 2 Mix
  • 的支出分析儀
  • >讓我們概述我們要採取的主要步驟:
    1. 加載並準備數據集:該過程是從加載和準備收據圖像作為輸入開始的。
    2. >初始化paligemma 2混合模型:我們配置並加載用於處理視覺語言任務的模型。
    3. >進程輸入圖像:然後,將圖像轉換為適當的格式(RGB),並準備它們進行分析。
    4. 提取關鍵信息:執行光學特徵識別(OCR)以檢索總量。
    5. >對費用進行分類:將購買分為雜貨,服裝,電子產品等類別。
    6. >
    7. 生成支出見解:我們總結了分類的費用並生成支出分配圖。
    8. >構建一個交互式gradio接口:最後,我們創建一個UI,用戶可以在其中上傳多個賬單,提取數據並以視覺上的方式分析支出。
    >步驟1:先決條件

    >在開始之前,讓我們確保我們安裝了以下工具和庫:

    python 3.8
    • >火炬
    • 變形金剛
    • pil
    • matplotlib
    • gradio
    • 運行以下命令以安裝必要的依賴項:
    >

    一旦安裝了上述依賴項,請運行以下導入命令:>
    pip install gradio -U bitsandbytes -U transformers -q
    登入後複製
    登入後複製

    >步驟2:模型初始化

    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
    登入後複製
    登入後複製
    >我們使用量化配置並加載Paligemma 2混合模型以優化性能。對於此演示,我們將使用448 x 448輸入圖像分辨率的10B參數模型。您需要至少具有40GB內存(COLAB配置)的T4 GPU來運行此模型。 

    > bitsandbytes量化有助於減少記憶使用量的同時保持性能,從而可以在有限的GPU資源上運行大型模型。在此實現中,我們使用4位量化來進一步優化內存效率。

    >我們通過傳遞模型ID和量化配置,使用來自變形金剛庫的PaligemmaforCongengergeneration類加載模型。同樣,我們加載處理器,該處理器將輸入預處理到張量中之前,然後將其傳遞給模型。
    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!")
    登入後複製
    登入後複製
    步驟3:圖像處理

    >裝載模型後,我們將圖像傳遞到模型之前對圖像進行處理以維護圖像格式的兼容性和增益均勻性。我們將圖像轉換為RGB格式:

    現在,我們的圖像已準備好推理。

    >

    >步驟4:推理使用paligemma

    def ensure_rgb(image: Image.Image) -> Image.Image:
        if image.mode != "RGB":
            image = image.convert("RGB")
        return image
    登入後複製
    登入後複製
    >現在,我們設置了用於使用模型運行推斷的主要功能。此功能將帶有輸入圖像和問題,將它們整合到提示中,然後通過處理器將它們傳遞給模型。

    >步驟5:提取密鑰信息

    >現在我們已經準備好主函數,我們將下一個從圖像中提取關鍵參數 - 在我們的情況下,這些是總金額和商品類別。
    pip install gradio -U bitsandbytes -U transformers -q
    登入後複製
    登入後複製

    > extract_total_amount()函數處理圖像以使用OCR從收據中提取總量。它構建了一個查詢(問題),指示模型僅提取數值值,然後調用ask_model()函數以生成模型的響應。 

    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:分析信息

我們已經準備好所有關鍵功能,所以讓我們分析輸出。 >

>上面的功能創建了一個餅圖,以可視化不同類別的支出分佈。如果不存在有效的支出數據,它將生成一個空白的圖形,並帶有表示“無支出數據”的消息。否則,它將創建帶有類別標籤和百分比值的餅圖,確保比例且良好的可視化。

步驟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
登入後複製
登入後複製
處理每個賬單:

  1. 打開並將圖像轉換為rgb。
  2. >將圖像附加到列表中。
從收據中提取總金額。
  • 在收據中對商品進行分類。
  • 更新總支出和類別的總計。
  • >將提取的數據存儲在結果列表中。
  • 生成洞察力:我們創建一個支出分配餅圖以及總支出的摘要。
  • 返回結果:最後,我們返回圖像列表,帳單摘要的數據框架,總支出摘要和支出圖表。
>步驟7:構建Gradio接口
  1. >現在,我們已經制定了所有關鍵邏輯函數。接下來,我們致力於使用Gradio構建Interactive UI。
  2. >上面的代碼創建一個結構化的gradio ui,其中具有用於多個圖像的文件上載程序,並為觸發處理。提交後,上傳帳單圖像顯示在畫廊中,提取的數據顯示在表中,總支出總結在文本中,並生成了支出分配餅圖。 
  3. 該功能將用戶輸入連接到process_multiple_bills()函數,以確保無縫數據提取和可視化。最後,demo.launch()函數啟動了用於實時互動的Gradio應用程序。

    >

    Paligemma 2 Mix:Demo OCR項目的指南

    >我還嘗試了兩個基於圖像的賬單(亞馬遜購物發票)的演示,並得到以下結果。

    注意:VLMS發現很難提取數字,這有時可能導致結果不正確。例如,它提取了以下第二賬單的錯誤總金額。這是可以使用較大型號或簡單地對現有模型進行微調來糾正。

    >

    Paligemma 2 Mix:Demo OCR項目的指南

    Paligemma 2 Mix:Demo OCR項目的指南

    結論

    在本教程中,我們使用Paligemma 2 Mix構建了一個AI驅動的多個Bill Scanner,這可以幫助我們從收據中提取和分類支出。我們使用Paligemma 2 Mix的視覺語言功能來進行OCR和分類,以毫不費力地分析支出見解。我鼓勵您將本教程適應您自己的用例。 

以上是Paligemma 2 Mix:Demo OCR項目的指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

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

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

熱門話題

Java教學
1666
14
CakePHP 教程
1425
52
Laravel 教程
1327
25
PHP教程
1273
29
C# 教程
1253
24
10個生成AI編碼擴展,在VS代碼中,您必須探索 10個生成AI編碼擴展,在VS代碼中,您必須探索 Apr 13, 2025 am 01:14 AM

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

GPT-4O vs OpenAI O1:新的Openai模型值得炒作嗎? GPT-4O vs OpenAI O1:新的Openai模型值得炒作嗎? Apr 13, 2025 am 10:18 AM

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

視覺語言模型(VLMS)的綜合指南 視覺語言模型(VLMS)的綜合指南 Apr 12, 2025 am 11:58 AM

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

如何在SQL中添加列? - 分析Vidhya 如何在SQL中添加列? - 分析Vidhya Apr 17, 2025 am 11:43 AM

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

pixtral -12b:Mistral AI&#039;第一個多模型模型 - 分析Vidhya pixtral -12b:Mistral AI&#039;第一個多模型模型 - 分析Vidhya Apr 13, 2025 am 11:20 AM

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

如何使用AGNO框架構建多模式AI代理? 如何使用AGNO框架構建多模式AI代理? Apr 23, 2025 am 11:30 AM

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

超越駱駝戲:大型語言模型的4個新基準 超越駱駝戲:大型語言模型的4個新基準 Apr 14, 2025 am 11:09 AM

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

多動症遊戲,健康工具和AI聊天機器人如何改變全球健康 多動症遊戲,健康工具和AI聊天機器人如何改變全球健康 Apr 14, 2025 am 11:27 AM

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

See all articles