Jadual Kandungan
mari kita menggariskan langkah -langkah utama yang akan kita ambil:
Langkah 1: Prasyarat
Langkah 2: Model Inisialisasi
Langkah 3: Pemprosesan Imej
Langkah 4: Kesimpulan dengan Paligemma
Langkah 5: Mengekstrak Maklumat Utama
Langkah 6: Menganalisis maklumat
Langkah 6: Menganalisis beberapa bil serentak
Langkah 7: Bina antara muka Gradio
Rumah Peranti teknologi AI Paligemma 2 Mix: Panduan dengan Projek Demo OCR

Paligemma 2 Mix: Panduan dengan Projek Demo OCR

Feb 28, 2025 pm 04:32 PM

Paligemma 2 Mix adalah model AI multimodal yang dibangunkan oleh Google. Ia adalah versi yang lebih baik dari Model Bahasa Paligemma Vision (VLM), mengintegrasikan keupayaan maju dari model SIGLIP Vision dan model bahasa Gemma 2.

Dalam tutorial ini, saya akan menerangkan cara menggunakan campuran Paligemma 2 untuk membina pengimbas rang undang-undang AI dan penganalisis perbelanjaan yang mampu:

  • Mengekstrak dan mengkategorikan perbelanjaan dari resit bil.
  • Melaksanakan Pengiktirafan Watak Optik (OCR) untuk mendapatkan maklumat utama.
  • meringkaskan perbelanjaan berdasarkan imej yang disediakan.

Walaupun tumpuan kami adalah untuk membina alat Insights Financial, anda boleh menggunakan apa yang anda pelajari di blog ini untuk meneroka kes penggunaan lain Paligemma 2 campuran, seperti segmentasi imej, pengesanan objek, dan menjawab soalan.

Apakah campuran Paligemma 2?

Paligemma 2 Mix adalah model bahasa-bahasa lanjutan (VLM) yang memproses kedua-dua imej dan teks sebagai input dan menghasilkan output berasaskan teks. Ia direka untuk mengendalikan pelbagai tugas AI multimodal semasa menyokong pelbagai bahasa.

Paligemma 2 direka untuk pelbagai tugas-tugas bahasa penglihatan, termasuk imej dan tajuk video pendek, menjawab soalan visual, pengiktirafan aksara optik (OCR), pengesanan objek, dan segmentasi.

Paligemma 2 Mix: Panduan dengan Projek Demo OCR Sumber imej yang digunakan dalam rajah: Google

model campuran Paligemma 2 direka untuk:

Imej & Kapsyen Video Pendek: Menjana kapsyen yang tepat dan konteks untuk imej statik dan video pendek.
  • Soalan Visual Menjawab (VQA): Menganalisis imej dan menjawab soalan berasaskan teks berdasarkan kandungan visual.
  • Pengiktirafan watak optik (OCR): Mengekstrak dan menafsirkan teks dari imej, menjadikannya berguna untuk dokumen, resit, dan bahan yang diimbas.
  • Pengesanan Objek & Segmentasi: Ia Mengenalpasti, Label, dan Segmen Objek dalam Imej untuk Analisis Berstruktur.
  • Sokongan pelbagai bahasa: Model ini juga membolehkan penjanaan teks dan pemahaman dalam pelbagai bahasa untuk aplikasi global.
  • Anda boleh mendapatkan lebih banyak maklumat mengenai model campuran Paligemma 2 dalam artikel pelepasan rasmi. 

Gambaran Keseluruhan Projek: Pengimbas Bill dan Penganalisis Perbelanjaan dengan Paligemma 2 Mix

mari kita menggariskan langkah -langkah utama yang akan kita ambil:

  1. Muatkan dan sediakan dataset: Proses bermula dengan memuatkan dan menyediakan imej resit sebagai input.
  2. Mulakan model campuran Paligemma 2: Kami mengkonfigurasi dan memuatkan model untuk memproses tugas bahasa penglihatan.
  3. Proses Imej Input: Kemudian, tukar imej ke format yang sesuai (RGB) dan sediakannya untuk analisis.
  4. Ekstrak Maklumat Utama: Melaksanakan Pengiktirafan Watak Optik (OCR) untuk mendapatkan jumlah keseluruhan.
  5. mengkategorikan perbelanjaan: mengklasifikasikan pembelian ke dalam kategori seperti runcit, pakaian, elektronik, dan lain -lain.
  6. Menjana wawasan perbelanjaan: Kami meringkaskan perbelanjaan yang dikategorikan dan menghasilkan carta pengedaran perbelanjaan.
  7. Bina antara muka Vadio Interaktif: Akhirnya, kami membuat UI di mana pengguna boleh memuat naik pelbagai bil, mengekstrak data, dan menganalisis perbelanjaan secara visual.

Langkah 1: Prasyarat

Sebelum kita mula, mari kita pastikan bahawa kita mempunyai alat dan perpustakaan berikut yang dipasang:

  • python 3.8
  • obor
  • Transformers
  • pil
  • Matplotlib
  • Gradio

jalankan arahan berikut untuk memasang kebergantungan yang diperlukan:

pip install gradio -U bitsandbytes -U transformers -q
Salin selepas log masuk
Salin selepas log masuk

Setelah kebergantungan di atas dipasang, jalankan arahan import berikut:

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
Salin selepas log masuk
Salin selepas log masuk

Langkah 2: Model Inisialisasi

Kami mengkonfigurasi dan memuatkan model campuran Paligemma 2 dengan kuantisasi untuk mengoptimumkan prestasi. Untuk demo ini, kami akan menggunakan model parameter 10B dengan resolusi imej input 448 x 448. Anda memerlukan minimum T4 GPU dengan memori 40GB (konfigurasi COLAB) untuk menjalankan model ini. 

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!")
Salin selepas log masuk
Salin selepas log masuk

kuantisasi Bitsandbytes membantu mengurangkan penggunaan memori sambil mengekalkan prestasi, menjadikannya mungkin untuk menjalankan model besar pada sumber GPU yang terhad. Dalam pelaksanaan ini, kami menggunakan kuantisasi 4-bit untuk mengoptimumkan kecekapan memori.

Kami memuatkan model menggunakan kelas paligemmaforconditionalgeneration dari Perpustakaan Transformers dengan lulus dalam Model ID dan Konfigurasi Kuantisasi. Begitu juga, kita memuatkan pemproses, yang memproses input ke dalam tensor sebelum menyampaikannya ke model.

Langkah 3: Pemprosesan Imej

Setelah shard model dimuatkan, kami memproses imej sebelum menyampaikannya ke model untuk mengekalkan keserasian format imej dan mendapatkan keseragaman. Kami menukar imej ke format RGB:

def ensure_rgb(image: Image.Image) -> Image.Image:
    if image.mode != "RGB":
        image = image.convert("RGB")
    return image
Salin selepas log masuk
Salin selepas log masuk

Sekarang, imej kami siap untuk kesimpulan.

Langkah 4: Kesimpulan dengan Paligemma

Sekarang, kami menyediakan fungsi utama untuk menjalankan kesimpulan dengan model. Fungsi ini mengambil imej input dan soalan, menggabungkannya ke dalam arahan, dan menyerahkannya kepada model melalui pemproses untuk kesimpulan.

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()
Salin selepas log masuk
Salin selepas log masuk

Langkah 5: Mengekstrak Maklumat Utama

Sekarang kita mempunyai fungsi utama siap, kita akan bekerja di sebelahnya untuk mengekstrak parameter utama dari imej -dalam kes kita, ini adalah jumlah keseluruhan dan kategori barangan.

pip install gradio -U bitsandbytes -U transformers -q
Salin selepas log masuk
Salin selepas log masuk

fungsi Extract_Total_amount () memproses imej untuk mengekstrak jumlah keseluruhan dari resit menggunakan OCR. Ia membina pertanyaan (soalan) yang mengarahkan model untuk mengekstrak hanya nilai berangka, dan kemudian ia memanggil fungsi Ask_model () untuk menghasilkan respons dari 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
Salin selepas log masuk
Salin selepas log masuk

Fungsi Categorize_goods () mengklasifikasikan jenis barangan dalam imej dengan mendorong model dengan penyenaraian soalan yang telah ditetapkan yang mungkin kategori: runcit, pakaian, elektronik, atau lain -lain. Fungsi Ask_model () kemudian memproses imej dan mengembalikan respons teks. Sekiranya tindak balas yang diproses sepadan dengan mana -mana kategori sah yang telah ditetapkan, ia mengembalikan kategori itu -sebaik sahaja, ia mungkir kepada kategori "Lain".

Langkah 6: Menganalisis maklumat

Kami mempunyai semua fungsi utama siap, jadi mari kita menganalisis output.

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!")
Salin selepas log masuk
Salin selepas log masuk

Fungsi di atas mencipta carta pai untuk memvisualisasikan pengagihan perbelanjaan merentasi kategori yang berbeza. Sekiranya tiada data perbelanjaan yang sah, ia menghasilkan angka kosong dengan mesej yang menunjukkan "tiada data perbelanjaan." Jika tidak, ia mewujudkan carta pai dengan label kategori dan nilai peratusan, memastikan visualisasi yang berkadar dan sejajar.

Langkah 6: Menganalisis beberapa bil serentak

Kami biasanya mempunyai banyak bil untuk dianalisis, jadi mari kita buat fungsi untuk memproses semua bil kami secara serentak.

def ensure_rgb(image: Image.Image) -> Image.Image:
    if image.mode != "RGB":
        image = image.convert("RGB")
    return image
Salin selepas log masuk
Salin selepas log masuk

Untuk menganalisis pelbagai bil sekaligus, kami melakukan langkah -langkah berikut:

  1. Inisialisasi Penyimpanan: Kami membuat senarai untuk menyimpan hasil dan imej, tetapkan total_spending ke 0, dan tentukan kamus untuk jumlah kategori yang bijak.
  2. Proses setiap rang undang -undang:
  • Buka dan tukar imej ke RGB.
  • Masukkan imej ke senarai.
  • Ekstrak jumlah keseluruhan dari resit.
  • mengkategorikan barang dalam resit.
  • Kemas kini jumlah perbelanjaan dan jumlah kategori yang bijak.
  • Simpan data yang diekstrak dalam senarai hasil.
  1. Menjana pandangan: Kami membuat carta pai pengedaran perbelanjaan bersama -sama dengan ringkasan jumlah perbelanjaan.
  2. Hasil pulangan: Akhirnya, kami mengembalikan senarai imej, satu data ringkasan Rang Undang -Undang, ringkasan perbelanjaan jumlah, dan carta perbelanjaan.

Langkah 7: Bina antara muka Gradio

Sekarang, kita mempunyai semua fungsi logik utama di tempatnya. Seterusnya, kami bekerja untuk membina UI interaktif dengan Gradio.

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()
Salin selepas log masuk
Salin selepas log masuk

Kod di atas mencipta UI Gradio berstruktur dengan pemuat naik fail untuk pelbagai imej dan butang hantar untuk mencetuskan pemprosesan. Setelah penyerahan, imej bil yang dimuat naik dipaparkan dalam galeri, data yang diekstrak ditunjukkan dalam jadual, jumlah perbelanjaan diringkaskan dalam teks, dan carta pai pengedaran perbelanjaan dijana. 

Fungsi ini menghubungkan input pengguna ke fungsi process_multiple_bills (), memastikan pengekstrakan dan visualisasi data lancar. Akhirnya, fungsi demo.launch () memulakan aplikasi Gradio untuk interaksi masa nyata.

Paligemma 2 Mix: Panduan dengan Projek Demo OCR

Saya juga mencuba demo ini dengan dua bil berasaskan imej (invois membeli-belah Amazon) dan mendapat hasil berikut.

NOTA: VLMS merasa sukar untuk mengekstrak nombor, yang mungkin membawa kepada keputusan yang salah pada masa -masa. Sebagai contoh, ia mengekstrak jumlah yang salah untuk bil kedua di bawah. Ini boleh dibetulkan dengan menggunakan model yang lebih besar atau hanya menyempurnakan yang sedia ada.

Paligemma 2 Mix: Panduan dengan Projek Demo OCR

Kesimpulan Paligemma 2 Mix: Panduan dengan Projek Demo OCR

Dalam tutorial ini, kami membina pengimbas rang undang-undang yang berkuasa AI menggunakan campuran Paligemma 2, yang dapat membantu kami mengekstrak dan mengkategorikan perbelanjaan kami dari resit. Kami menggunakan keupayaan bahasa Paligemma 2 Mix untuk OCR dan klasifikasi untuk menganalisis perbelanjaan dengan mudah. Saya menggalakkan anda menyesuaikan tutorial ini untuk kes penggunaan anda sendiri. 

Atas ialah kandungan terperinci Paligemma 2 Mix: Panduan dengan Projek Demo OCR. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

<🎜>: Bubble Gum Simulator Infinity - Cara Mendapatkan dan Menggunakan Kekunci Diraja
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Sistem Fusion, dijelaskan
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Cara Membuka Kunci Cangkuk Bergelut
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial Java
1664
14
Tutorial PHP
1269
29
Tutorial C#
1249
24
10 Pelanjutan pengekodan AI generatif dalam kod vs yang mesti anda pelajari 10 Pelanjutan pengekodan AI generatif dalam kod vs yang mesti anda pelajari Apr 13, 2025 am 01:14 AM

Hei ada, pengekodan ninja! Apa tugas yang berkaitan dengan pengekodan yang anda telah merancang untuk hari itu? Sebelum anda menyelam lebih jauh ke dalam blog ini, saya ingin anda memikirkan semua kesengsaraan yang berkaitan dengan pengekodan anda-lebih jauh menyenaraikan mereka. Selesai? - Let &#8217

GPT-4O vs OpenAI O1: Adakah model Openai baru bernilai gembar-gembur? GPT-4O vs OpenAI O1: Adakah model Openai baru bernilai gembar-gembur? Apr 13, 2025 am 10:18 AM

Pengenalan OpenAI telah mengeluarkan model barunya berdasarkan seni bina "strawberi" yang sangat dijangka. Model inovatif ini, yang dikenali sebagai O1, meningkatkan keupayaan penalaran, yang membolehkannya berfikir melalui masalah MOR

Panduan Komprehensif untuk Model Bahasa Visi (VLMS) Panduan Komprehensif untuk Model Bahasa Visi (VLMS) Apr 12, 2025 am 11:58 AM

Pengenalan Bayangkan berjalan melalui galeri seni, dikelilingi oleh lukisan dan patung yang terang. Sekarang, bagaimana jika anda boleh bertanya setiap soalan dan mendapatkan jawapan yang bermakna? Anda mungkin bertanya, "Kisah apa yang anda ceritakan?

Pixtral -12b: Model Multimodal Pertama Mistral Ai ' Pixtral -12b: Model Multimodal Pertama Mistral Ai ' Apr 13, 2025 am 11:20 AM

Pengenalan Mistral telah mengeluarkan model multimodal yang pertama, iaitu Pixtral-12B-2409. Model ini dibina atas parameter 12 bilion Mistral, NEMO 12B. Apa yang membezakan model ini? Ia kini boleh mengambil kedua -dua gambar dan Tex

Bagaimana untuk menambah lajur dalam SQL? - Analytics Vidhya Bagaimana untuk menambah lajur dalam SQL? - Analytics Vidhya Apr 17, 2025 am 11:43 AM

Pernyataan Jadual Alter SQL: Menambah lajur secara dinamik ke pangkalan data anda Dalam pengurusan data, kebolehsuaian SQL adalah penting. Perlu menyesuaikan struktur pangkalan data anda dengan cepat? Pernyataan Jadual ALTER adalah penyelesaian anda. Butiran panduan ini menambah colu

Beyond the Llama Drama: 4 Benchmarks Baru Untuk Model Bahasa Besar Beyond the Llama Drama: 4 Benchmarks Baru Untuk Model Bahasa Besar Apr 14, 2025 am 11:09 AM

Penanda Aras Bermasalah: Kajian Kes Llama Pada awal April 2025, Meta melancarkan model Llama 4 suite, dengan metrik prestasi yang mengagumkan yang meletakkan mereka dengan baik terhadap pesaing seperti GPT-4O dan Claude 3.5 sonnet. Pusat ke LAUNC

Bagaimana permainan ADHD, alat kesihatan & chatbots AI mengubah kesihatan global Bagaimana permainan ADHD, alat kesihatan & chatbots AI mengubah kesihatan global Apr 14, 2025 am 11:27 AM

Bolehkah permainan video meringankan kebimbangan, membina fokus, atau menyokong kanak -kanak dengan ADHD? Memandangkan cabaran penjagaan kesihatan melonjak di seluruh dunia - terutamanya di kalangan belia - inovator beralih kepada alat yang tidak mungkin: permainan video. Sekarang salah satu hiburan terbesar di dunia Indus

Bagaimana Membina Ejen AI Multimodal Menggunakan Rangka Kerja AGNO? Bagaimana Membina Ejen AI Multimodal Menggunakan Rangka Kerja AGNO? Apr 23, 2025 am 11:30 AM

Semasa bekerja pada AIS AI, pemaju sering mendapati diri mereka menavigasi perdagangan antara kelajuan, fleksibiliti, dan kecekapan sumber. Saya telah meneroka rangka kerja AI yang agentik dan menjumpai Agno (sebelum ini adalah Phi-

See all articles