Paligemma 2 Mix ist ein von Google entwickeltes multimodales KI -Modell. Es handelt sich um eine verbesserte Version des Paligemma Vision Language Model (VLM), das erweiterte Funktionen aus dem Siglip Vision -Modell und Gemma 2 -Sprachmodellen integriert.
In diesem Tutorial erkl?re ich, wie man den Paligemma 2-Mix verwendet, um einen AI-angetriebenen Billscanner und Ausgabenanalysator zu erstellen, der:
in der Lage ist,:- extrahieren und kategorisieren Ausgaben aus Rechnungseinnahmen.
- optische Zeichenerkennung (OCR) zum Abrufen von Schlüsselinformationen.
- Zusammenfassung der Ausgaben basierend auf bereitgestellten Bildern.
W?hrend unser Fokus auf dem Erstellen eines finanziellen Insights -Tools liegt, k?nnen Sie das, was Sie in diesem Blog lernen, andere Anwendungsf?lle von Paligemma 2 -Mix wie Bildsegmentierung, Objekterkennung und Beantwortung von Fragen verwenden.
Was ist eine Paligemma 2 -Mischung?
Paligemma 2 Mix ist ein erweitertes Vision-Sprach-Modell (VLM), das sowohl Bilder als auch Text als Eingabe verarbeitet und textbasierte Ausg?nge generiert. Es ist für eine Vielzahl multimodaler KI -Aufgaben ausgelegt, w?hrend mehrere Sprachen unterstützt werden.
Paligemma 2 wurde für eine Vielzahl von auf Visionsprachlustern, einschlie?lich Bild- und Kurzvideosende, visuelle Fragenbeantwortung, optische Charaktererkennung (OCR), Objekterkennung und Segmentierung entwickelt.
.
Quelle der im Diagramm verwendeten Bilder: Google
- Paligemma 2 Mix -Modell ist für:
- ausgelegt
- Bild und kurze Videounterschrift: Generierung genauer und kontextbezogener Bildunterschriften für statische Bilder und kurze Videos.
- visuelle Fragenbeantwortung (VQA): Analyse von Bildern und Beantwortung von textbasierten Fragen basierend auf visuellen Inhalten.
- optische Charaktererkennung (OCR): Extrahieren und Interpretieren von Text aus Bildern, was sie für Dokumente, Einnahmen und gescannte Materialien nützlich macht.
- Objekterkennung und -segmentierung: Identifiziert, Beschriftungen und Segmente Objekte in einem Bild für die strukturierte Analyse.
finden Sie im offiziellen Release -Artikel weitere Informationen zum Paligemma 2 -Mix -Modell.?
Projektübersicht: Billscanner und Ausgabenanalysator mit Paligemma 2 Mix
Lassen Sie uns die Hauptschritte skizzieren, die wir unternehmen werden:- Laden und Bereiten Sie den Datensatz vor: Der Vorgang beginnt mit dem Laden und Vorbereiten von Quittungsbildern als Eingabe.
- Initialisieren Sie das Paligemma 2-Mixmodell: Wir konfigurieren und laden das Modell für die Verarbeitung von Visionsprachenaufgaben.
- Prozesseingangsbilder: Dann wandeln Sie Bilder in ein geeignetes Format (RGB) und bereiten Sie sie für die Analyse vor.
- Schlüsselinformationen extrahieren: Führen Sie die optische Zeichenerkennung (OCR) aus, um den Gesamtbetrag abzurufen.
- kategorisieren Sie Ausgaben: Klassifizieren Sie Eink?ufe in Kategorien wie Lebensmittel, Kleidung, Elektronik und andere.
- Erzeugniserkenntnisse erzeugen: Wir fassen die kategorisierten Ausgaben zusammen und generieren ein Ausgabenverteilungsdiagramm.
- Erstellen Sie eine interaktive Gradio -Schnittstelle: Schlie?lich erstellen wir eine Benutzeroberfl?che, in der Benutzer mehrere Rechnungen hochladen, Daten extrahieren und die Ausgaben visuell analysieren k?nnen.
Schritt 1: Voraussetzungen
Bevor wir beginnen, stellen wir sicher, dass die folgenden Tools und Bibliotheken installiert sind:
- Python 3.8
- Fackel
- Transformators
- pil
- Matplotlib
- Gradio
Führen Sie die folgenden Befehle aus, um die erforderlichen Abh?ngigkeiten zu installieren:
pip install gradio -U bitsandbytes -U transformers -q
Sobald die obigen Abh?ngigkeiten installiert sind, führen Sie die folgenden Importbefehle aus:
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
Schritt 2: Modellinitialisierung
Wir konfigurieren und laden das Paligemma 2 -Mixmodell mit Quantisierung, um die Leistung zu optimieren. Für diese Demo verwenden wir das 10B -Parametermodell mit 448 x 448 Eingangsbildaufl?sung. Sie ben?tigen ein Minimum von T4 GPU mit 40 GB Speicher (Colab -Konfiguration), um dieses Modell auszuführen.?
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!")
BitsandBytes Quantisierung hilft bei der Verringerung des Speicherverbrauchs gleichzeitig die Leistung und erm?glicht es, gro?e Modelle für begrenzte GPU -Ressourcen durchzuführen. In dieser Implementierung verwenden wir die 4-Bit-Quantisierung, um die Speichereffizienz weiter zu optimieren.
Wir laden das Modell mit der Paligemmaforconditionalgenerationsklasse aus der Transformers -Bibliothek, indem Sie die Modell -ID und die Quantisierungskonfiguration übergeben. In ?hnlicher Weise laden wir den Prozessor, der die Eing?nge in Tensoren vorbereitet, bevor wir sie an das Modell übergeben.
Schritt 3: Bildverarbeitung
Sobald die Modellscherben geladen sind, verarbeiten wir die Bilder, bevor wir sie an das Modell weitergeben, um die Kompatibilit?t des Bildformates aufrechtzuerhalten und Gleichm??igkeit zu gewinnen. Wir konvertieren Bilder in das RGB -Format:
def ensure_rgb(image: Image.Image) -> Image.Image: if image.mode != "RGB": image = image.convert("RGB") return image
Jetzt sind unsere Bilder bereit für die Schlussfolgerung.
Schritt 4: Inferenz mit Paligemma
Jetzt richten wir die Hauptfunktion für die Ausführung von Inferenz mit dem Modell ein. Diese Funktion nimmt Inputbilder und Fragen auf, integriert sie in Eingabeaufforderungen und übergibt sie über den Prozessor für Inferenz an das Modell.
def ask_model(image: Image.Image, question: str) -> str: prompt = f"<image> answer en {question}" inputs = processor(text=prompt, images=image, return_tensors="pt").to(device) with torch.inference_mode(): generated_ids = model.generate( **inputs, max_new_tokens=50, do_sample=False ) result = processor.batch_decode(generated_ids, skip_special_tokens=True) return result[0].strip()
Schritt 5: Schlüsselinformationen extrahieren
Jetzt, da wir die Hauptfunktion bereit haben, werden wir als n?chstes daran arbeiten, die Schlüsselparameter aus dem Bild zu extrahieren - in unserem Fall sind dies die Gesamtmenge und die Kategorie der Ware.
pip install gradio -U bitsandbytes -U transformers -q
Die Funktion extract_total_amount () verarbeitet ein Bild, um die Gesamtmenge aus einer Quittung mit OCR zu extrahieren. Es konstruiert eine Abfrage (Frage), die das Modell anweist, nur numerische Werte zu extrahieren, und ruft dann die Funktion Ask_Model () auf, um eine Antwort aus dem Modell zu generieren.?
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
Die Funktion categorize_goods () klassifiziert die Art von Waren in einem Bild, indem das Modell mit einer vordefinierten Frage auflistet, m?gliche Kategorien: Lebensmittelgesch?ft, Kleidung, Elektronik oder andere. Die Funktion Ask_Model () verarbeitet dann das Bild und gibt eine Textantwort zurück. Wenn die verarbeitete Antwort einer der vordefinierten gültigen Kategorien entspricht, wird diese Kategorie zurückgegeben - andernfalls werden sie standardm??ig in die Kategorie "Andere" eingestuft.
Schritt 6: Analyse von Informationen
Wir haben alle wichtigen Funktionen bereit, also analysieren wir die Ausg?nge.
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!")
Die obige Funktion erstellt ein Kreisdiagramm zur Visualisierung der Ausgabenverteilung über verschiedene Kategorien hinweg. Wenn keine gültigen Ausgabendaten vorhanden sind, generiert sie eine leere Figur mit einer Meldung, die "keine Ausgabendaten" angibt. Andernfalls erstellt es ein Kreisdiagramm mit Kategoriebezeichnungen und Prozentwerten, um eine proportionale und gut ausgerichtete Visualisierung zu gew?hrleisten.
Schritt 6: Analysieren mehrerer Rechnungen gleichzeitig
Wir haben normalerweise mehrere Rechnungen zu analysieren. Erstellen wir also eine Funktion, um alle unsere Rechnungen gleichzeitig zu verarbeiten.
def ensure_rgb(image: Image.Image) -> Image.Image: if image.mode != "RGB": image = image.convert("RGB") return image
Für die Analyse mehrerer Rechnungen gleichzeitig führen wir die folgenden Schritte aus:
- Speicher initialisieren: Wir erstellen Listen zum Speichern von Ergebnissen und Bildern, setzen Total_Spending auf 0 und definieren ein W?rterbuch für die Kategorie.
- jede Rechnung verarbeiten:
- ?ffnen und konvertieren Sie das Bild in RGB.
- das Bild an die Liste anh?ngen.
- extrahieren Sie den Gesamtbetrag aus der Quittung.
- kategorisieren Sie die Waren in der Quittung.
- Aktualisieren Sie die Gesamtausgaben und die Kategorie in Bezug auf die Gesamtzahl.
- Speichern Sie die extrahierten Daten in einer Ergebnisliste.
- Erkenntnisse erstellen: Wir erstellen ein Kreisdiagramm für die Ausgabenverteilung zusammen mit einer Zusammenfassung der Gesamtausgaben.
- Rückgabergebnisse: Schlie?lich geben wir die Liste der Bilder, einen Datenrahmen für Rechnungsfassungen, die Gesamtausgabenzusammenfassung und das Ausgabendiagramm zurück.
Schritt 7: Erstellen Sie die Gradio -Schnittstelle
def ask_model(image: Image.Image, question: str) -> str: prompt = f"<image> answer en {question}" inputs = processor(text=prompt, images=image, return_tensors="pt").to(device) with torch.inference_mode(): generated_ids = model.generate( **inputs, max_new_tokens=50, do_sample=False ) result = processor.batch_decode(generated_ids, skip_special_tokens=True) return result[0].strip()Jetzt haben wir alle wichtigen Logikfunktionen. Als n?chstes arbeiten wir daran, eine interaktive Benutzeroberfl?che mit Gradio zu bauen.
Der obige Code erstellt eine strukturierte UI mit einem Datei -Uploader für mehrere Bilder und eine Schaltfl?che Senden, um die Verarbeitung auszul?sen. Bei der Einreichung werden in einer Galerie hochgeladene Billbilder angezeigt, extrahierte Daten in einer Tabelle angezeigt, die Gesamtausgaben werden im Text zusammengefasst und ein Kreisdiagramm für Ausgabenverteilungen erstellt.?
Die Funktion verbindet Benutzereing?nge mit der Funktion process_multiple_bills () und stellt die nahtlose Datenextraktion und Visualisierung sicher. Schlie?lich startet die Demo.launch () -Funktion die Gradio-App für Echtzeitinteraktion.
Ich habe diese Demo auch mit zwei bildbasierten Rechnungen (Amazon Shopping-Rechnung) ausprobiert und die folgenden Ergebnisse erzielt.
HINWEIS: VLMS f?llt es schwierig, Zahlen zu extrahieren, was manchmal zu falschen Ergebnissen führen kann. Zum Beispiel hat es den falschen Gesamtbetrag für die zweite Rechnung unten extrahiert. Dies ist durch die Verwendung gr??erer Modelle oder einfach die vorhandenen Einstimmen korrigierbar.
Schlussfolgerung
In diesem Tutorial haben wir einen KI-angetriebenen Multiple-Bill-Scanner mit einem Paligemma 2-Mix erstellt, mit dem wir unsere Ausgaben aus Quittungen extrahieren und kategorisieren k?nnen. Wir haben Paligemma 2 Mixs Vision-Sprache-Funktionen für OCR und Klassifizierung verwendet, um die Ausgabenerkenntnisse mühelos zu analysieren. Ich ermutige Sie, dieses Tutorial an Ihren eigenen Anwendungsfall anzupassen.?
Das obige ist der detaillierte Inhalt vonPaligemma 2 Mix: Ein Leitfaden mit Demo OCR -Projekt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen

Googles NotebookLM ist ein intelligentes KI-Notiz-Tool, das von Gemini 2.5 betrieben wird, das sich beim Zusammenfassen von Dokumenten auszeichnet. Es hat jedoch weiterhin Einschr?nkungen bei der Verwendung von Tools, wie Quellkappen, Cloud -Abh?ngigkeit und der jüngsten ?Discover“ -Funktion

Hier sind zehn überzeugende Trends, die die AI -Landschaft der Unternehmen neu ver?ndern. Das riskante finanzielle Engagement für LLMSorganisierungen erh?ht ihre Investitionen in LLM erheblich, wobei 72% erwarten, dass ihre Ausgaben in diesem Jahr steigen. Derzeit fast 40% a

Das Investieren boomt, aber Kapital allein reicht nicht aus. Mit zunehmender Bewertungen und Verblassen der Unterscheidungskraft müssen Investoren in AI-fokussierten Risikokonstrumentfonds eine wichtige Entscheidung treffen: Kaufen, Bau oder Partner, um einen Vorteil zu erlangen? Hier erfahren Sie, wie Sie jede Option bewerten - und PR

Offenlegung: Mein Unternehmen, Tirias Research, hat sich für IBM, NVIDIA und andere in diesem Artikel genannte Unternehmen beraten. Wachstumstreiber Die Anstieg der generativen KI -Adoption war dramatischer als selbst die optimistischsten Projektionen, die vorhersagen konnten. Dann a

Die Kluft zwischen weit verbreiteter Akzeptanz und emotionaler Bereitschaft zeigt etwas Wesentliches darüber, wie sich die Menschen mit ihrer wachsenden Auswahl an digitalen Gef?hrten besch?ftigen. Wir betreten eine Phase des Koexistenz

Diese Tage sind dank AI nummeriert. Suchen Sie den Verkehr für Unternehmen wie die Reisebereich Kayak und das Edtech -Unternehmen Chegg, teilweise, weil 60% der Suchanfragen auf Websites wie Google nicht dazu führen, dass Benutzer laut One Stud auf Links klicken

Reden wir darüber. Diese Analyse eines innovativen KI -Durchbruchs ist Teil meiner laufenden Forbes -S?ulenberichterstattung über die neueste in der KI, einschlie?lich der Identifizierung und Erkl?rung verschiedener wirksamer KI -Komplexit?ten (siehe Link hier). Auf dem Weg zu Agi und

Schauen wir uns genauer an, was ich am bedeutendsten fand - und wie Cisco auf seinen aktuellen Bemühungen aufbauen k?nnte, seine Ambitionen weiter zu verwirklichen.
