Con l'evoluzione delle tecnologie basate su AI, l'analisi delle immagini sta diventando sempre più sofisticata, permettendo insight più profondi dai dati visivi. Grazie ai progressi nei modelli di machine learning, l'AI può elaborare le immagini caricate, estrarre metadati e supportare la moderazione dei contenuti su larga scala. Questi strumenti di analisi contribuiscono anche alla modellazione predittiva per applicazioni come prezzi, ottimizzazione visiva e generazione di immagini, rendendo i workflow più economici ed efficienti. Integrando approcci basati sui dati, l'AI migliora l'automazione e il processo decisionale, offrendo nuove possibilità per un'interpretazione visiva intelligente.
Con i rapidi progressi nella computer vision e nell'AI avanzata, aziende e ricercatori stanno sfruttando tecnologie basate sulle immagini per una vasta gamma di applicazioni. Dalla classificazione delle immagini e dall'OCR (riconoscimento ottico dei caratteri) fino alla segmentazione e all'analisi video, gli strumenti basati su AI stanno trasformando il modo in cui estraiamo e analizziamo le informazioni visive.
In settori come i social media, l'AI migliora la moderazione dei contenuti analizzando le immagini a livello di pixel, garantendo la conformità e migliorando il coinvolgimento. Le aziende possono anche utilizzare Vision API per l'elaborazione automatizzata dei documenti, convertendo i file scansionati, gli excel e i report in dati strutturati. Queste applicazioni semplificano i workflow, migliorano l'efficienza e permettono alle organizzazioni di estrarre insight da grandi set di dati visivi.
Questi casi d'uso evidenziano il ruolo crescente dell'analisi delle immagini basata sull'AI in diversi settori. In questo tutorial, ci concentreremo sull'applicazione di queste funzionalità alle presentazioni PowerPoint, abilitando Q&A interattive su testo e immagini grazie a modelli avanzati di computer vision e modelli AI
I modelli linguistici di grandi dimensioni (LLM) hanno rivoluzionato il machine learning, abilitando insight intelligenti da vasti set di dati di testo non strutturato. Tuttavia, gli LLM tradizionali spesso hanno difficoltà con l'analisi delle immagini, il che rende difficile estrarre insight da grafici, diagrammi ed elementi visivi nelle presentazioni.
Il modello linguistico di grandi dimensioni (LLM) IBM Granite Vision 3.2 colma questa lacuna integrando strumenti di AI con algoritmi avanzati di rilevamento degli oggetti, consentendo agli utenti di automatizzare l'analisi multimodale. Questo tutorial dimostra come semplificare il tuo workflow utilizzando l'AI per estrarre e analizzare testo e immagini da file PowerPoint (.pptx), abilitando domande e risposte interattive per insight di presentazione migliori.
In questo tutorial imparerai a creare un sistema basato sull'AI in grado di rispondere in tempo reale alle domande degli utenti dalle diapositive di PowerPoint, utilizzando sia testo che immagini come contesto. Questo tutorial ti guiderà attraverso:
Elaborazione PowerPoint: estrae testo e immagini da file .pptx per analisi basate su AI.
Domande e risposte basate su testo: usa Granite Vision per generare risposte basate sul testo estratto dalla diapositiva.
Domande e risposte basate su immagini: chiedi all'AI di analizzare immagini, grafici e diagrammi dalle diapositive.
Formulazione ottimizzata delle domande: scopri come formulare domande efficaci per ottenere risposte AI precise e pertinenti.
Questo tutorial utilizza tecnologie AI all'avanguardia, tra cui:
1. IBM Granite Vision: un potente modello linguistico visivo (VLM) che elabora sia testo che immagini.
2. Python-PPTX: una libreria per estrarre testo e immagini dai file PowerPoint.
3. Transformers: un framework per elaborare in modo efficiente gli input dei modelli AI.
Alla fine di questo tutorial, sarai in grado di:
1. Estrarre ed elaborare il contenuto di PowerPoint (testo e immagini).
2. Utilizzare il modello Granite Vision 3.2 per domande e risposte basate sull'AI sui contenuti delle slide.
3. Porre all'AI domande approfondite su testo e immagini.
4. Migliorare l'interazione dell'utente con le presentazioni utilizzando spiegazioni basate sull'AI.
Questo tutorial è pensato per sviluppatori di AI, ricercatori, creatori di contenuti e professionisti del settore che desiderano migliorare le proprie presentazioni con insight basati sull'AI.
Per creare un progetto watsonx.ai è necessario un account IBM Cloud .
Sebbene sia possibile scegliere tra diversi strumenti, questo tutorial illustra come configurare un account IBM per utilizzare un Jupyter Notebook.
Accedi a watsonx.ai utilizzando il tuo account IBM Cloud.
2. Crea un progetto watsonx.ai. Puoi ottenere l'ID del tuo progetto dall'interno del tuo progetto. Clicca sulla scheda Gestisci. Quindi, copia l'ID del progetto dalla sezione Dettagli della pagina Generali. Per questo tutorial ti serve questo ID.
3. Crea un Jupyter Notebook.
4. Carica il file PPTX come asset in watsonx.ai
Questo passaggio apre un ambiente notebook in cui è possibile copiare il codice da questo tutorial. In alternativa, puoi scaricare questo notebook sul tuo sistema locale e caricarlo nel tuo progetto watsonx.ai come asset. Questo tutorial è disponibile anche su GitHub.
Nota: questo tutorial richiede l'infrastruttura GPU per eseguire il codice, quindi consigliamo di usare watsonx.ai come illustrato in questo tutorial.
Prima di iniziare a estrarre ed elaborare il contenuto di PowerPoint, dobbiamo installare le librerie Python necessarie:
transformers: fornisce accesso a IBM Granite Vision e ad altri modelli AI.
torch: un framework di deep learning necessario per eseguire il modello in modo efficiente.
python-pptx: una libreria per estrarre testo e immagini dai file PowerPoint (.pptx).
Esegui i seguenti comandi per installare e aggiornare questi pacchetti:
In questa fase, importeremo le librerie necessarie per elaborare i file PowerPoint, gestire le immagini e interagire con il modello IBM Granite Vision:
In questa fase, stabiliamo una connessione a IBM® Cloud Object Storage per accedere e recuperare i file PowerPoint memorizzati nel cloud.
Puoi sfruttare il supporto python, fornito tramite un fork della libreria boto3 con caratteristiche per utilizzare al meglio IBM Cloud Object Storage. Consulta la documentazione ufficiale per ottenere queste credenziali.
ibm_boto3.client: crea un client per interagire con IBM Cloud Object Storage.
ibm_api_key_id: la tua chiave API IBM Cloud per l'autenticazione.
ibm_auth_endpoint: l'endpoint di autenticazione per IBM Cloud.
endpoint_url: l'endpoint di storage specifico del cloud object storage (COS).
Nota: quando carichi un file come asset in watsonx.ai, viene automaticamente memorizzato in IBM Cloud Object Storage. Quando successivamente importerai il file in un Jupyter Notebook, watsonx.ai genera e inserisce le credenziali necessarie (chiave API, endpoint di autenticazione e endpoint storage) nel tuo notebook. Le credenziali IBM Cloud Object Storage fornite consentono un accesso sicuro per recuperare file dallo storage, consentendo un'integrazione fluida tra asset watsonx.ai e l'ambiente notebook per ulteriori elaborazioni.
Configurando questa connessione, possiamo importare ed elaborare senza problemi le presentazioni PowerPoint memorizzate in IBM Cloud per analisi basate su AI
In questo passaggio, specifichiamo il bucket e i dettagli del file IBM Cloud Object Storage per localizzare e recuperare la presentazione PowerPoint (.pptx) per l'elaborazione.
Consulta questo documento ufficiale per ottenere i dettagli della configurazione del bucket tramite l'interfaccia utente IBM Cloud.
bucket: il nome del bucket IBM Cloud Object Storage dove il file è memorizzato.
object_key: il nome esatto del file della presentazione PowerPoint da consultare
In questo passaggio, scarichiamo il file PowerPoint (.pptx) da IBM Cloud Object Storage per elaborarlo a livello locale.
cos_client.get_object(): recupera il file dal bucket e dalla chiave dell'oggetto specificati.
streaming_body.read(): legge il contenuto del file in un flusso di byte per ulteriori elaborazioni.
In questo passaggio, memorizziamo il file PowerPoint scaricato (.pptx) a livello locale affinché possa essere elaborato.
pptx_path: definisce il nome locale del file dove verrà salvata la presentazione.
open(pptx_path, 'wb'): apre il file in modalità scrittura binaria per memorizzare i byte recuperati.
f.write(pptx_bytes): scrive il contenuto del file scaricato nel file .pptx appena creato.
In questo passaggio, stampiamo un messaggio di conferma per assicurarci che il file PowerPoint sia stato salvato con successo. La funzione `print` visualizza il percorso del file in cui si trova il file .pptx è memorizzato localmente.
In questo passaggio, definiamo una funzione per elaborare il file PowerPoint (.pptx) ed estrarne il contenuto:
slide_texts: memorizza il testo estratto da ogni diapositiva.
slide_images: memorizza le immagini estratte come oggetti immagine della libreria di immagini Python (PIL), insieme ai relativi numeri di diapositiva.
Itera le diapositive per estrarre il testo dalle forme che contengono contenuti testuali e immagini incorporate nelle diapositive.
Questa funzione separa testo e immagini dal PPT, permettendo all'agente di chat di rispondere facilmente alle domande dell'utente basate sul contenuto estratto.
In questo passaggio, chiamiamo la funzione per estrarre il testo e le immagini dal file PowerPoint salvato.
pptx_path: specifica il percorso locale del file PowerPoint scaricato.
extract_text_and_images_from_pptx(pptx_path): estrae testo e immagini dalle diapositive.
slide_texts: memorizza il testo estratto da tutte le diapositive.
slide_images: memorizza le immagini estratte.
In questa fase, stampiamo il testo estratto da ogni diapositiva per verificare che il contenuto di PowerPoint sia stato elaborato correttamente.
enumerate(slide_texts): itera il testo estratto, associando ciascuno al rispettivo numero di diapositiva.
Separator ('-' * 40): aiuta a distinguere visivamente i contenuti dalle diverse slide.
In questo passaggio, confermiamo e visualizziamo le immagini estratte dalle slide PowerPoint.
len: conta il numero totale di immagini estratte.
img.show(): apre ogni immagine estratta per la recensione.
Può sostituire `.show()` con `.save('filename.png')` per memorizzare le immagini a livello locale.
In questo passaggio, inizializziamo il modello IBM Granite-Vision-3.2-2B per l'elaborazione di testo e immagini basata sull'AI
MODEL_NAME specifica il modello Granite Vision pre-addestrato da utilizzare e torch.cuda.is_available() verifica se una GPU (CUDA) è disponibile per un'elaborazione più veloce; altrimenti, si attiva di default alla CPU.
In questo passaggio, carichiamo il modello IBM Granite Vision e il relativo processore per gestire sia l'input di testo che di immagini.
AutoProcessor.from_pretrained(MODEL_NAME, trust_remote_code=True): carica il processore pre-addestrato per formattare gli input (testo e immagini) per il modello.
AutoModelForVision2Seq.from_pretrained(MODEL_NAME, trust_remote_code=True, ignore_mismatched_sizes=True).to(device): carica il modello Granite Vision e lo trasferisce al dispositivo disponibile (GPU o CPU).
dove,
trust_remote_code=True: garantisce la compatibilità con le implementazioni di modelli personalizzati.
ignore_mismatched_sizes=True: previene errori se ci sono piccole incoerenze nella dimensione del modello.
Nota: il caricamento potrebbe richiedere del tempo.
In questo passaggio, creiamo una funzione di chat che permette agli utenti di porre domande basate sul testo estratto dalle slide PowerPoint.
Come funziona:
In questo passaggio, creiamo una funzione di chat che permette agli utenti di porre domande su singole immagini estratte dalle slide PowerPoint.
Come funziona:
In questa fase, chiamiamo la funzione chat_with_text, che consente all'utente di porre domande sul testo estratto dalle diapositive di PowerPoint.
Come funziona:
OUTPUT
Domanda: l'integrazione è un vantaggio competitivo per la tua organizzazione?
<|assistant|>
Sì, l'integrazione è un vantaggio competitivo per la tua organizzazione. Ti aiuta a spostare più velocemente e a superare le sfide, ma può portare a costi più elevati, inefficienze, rischi per la sicurezza e esperienze di bassa qualità, mettendo in definitiva a repentaglio la competitività di un'organizzazione e la sua capacità di prosperare in un panorama in rapida evoluzione.
Poni una domanda basata sul testo della presentazione (o digita 'exit' per uscire): exit
Quando l'utente ha chiesto: "L'ntegrazione è un vantaggio competitivo per la tua organizzazione?", il modello Granite Vision ha elaborato la query utilizzando il testo della diapositiva di PowerPoint estratto e ha generato una risposta.
Il modello ha riconosciuto "integrazione" come un concetto aziendale e ha fornito una risposta strutturata dalla `slide numero 7`, spiegandone sia i benefici che i rischi. Ha evidenziato che l'integrazione migliora la velocità e la risoluzione dei problemi, ma ha anche sottolineato i potenziali svantaggi, come aumenti dei costi, inefficienze, rischi di sicurezza ed esperienza utente di bassa qualità se non gestita efficacemente.
Questa risposta dimostra la capacità del modello di interpretare il testo estratto dalla diapositiva e di generare una risposta contestualmente rilevante e ben bilanciata.
In questo passaggio chiamiamo la funzione chat_with_images, che permette all'utente di fare domande sulle immagini estratte dalle slide PowerPoint.
Come funziona:
OUTPUT
Poni una domanda basata sulle immagini della presentazione (o digita 'exit' per uscire): che cos'è questa immagine?
Inserisci il numero della diapositiva (da 1 a 41) per chiedere informazioni sulla sua immagine: 2
Risposta del modello: <|system|>
Una chat tra un utente curioso e un assistente dotato di intelligenza artificiale. L'assistente fornisce risposte utili, dettagliate e cortesi alle domande dell'utente.
<|utente|>
che immagine è questa?
<|assistant|>
modello 3D
Poni una domanda basata sulle immagini della presentazione (o digita 'exit' per uscire): spiega questa immagine
Inserisci il numero della diapositiva (da 1 a 41) per chiedere informazioni sulla sua immagine: 2
Risposta del modello: <|system|>
Una chat tra un utente curioso e un assistente dotato di intelligenza artificiale. L'assistente fornisce risposte utili, dettagliate e cortesi alle domande dell'utente.
<|utente|>
spiega questa immagine
<|assistant|>
l'immagine è il modello 3d di un cubo
Poni una domanda basata sulle immagini della presentazione (oppure digita 'exit' per uscire): puoi spiegare questo grafico?
Inserisci il numero della diapositiva (da 1 a 41) per chiedere informazioni sulla sua immagine: 1
Risposta del modello: <|system|>
Una chat tra un utente curioso e un assistente dotato di intelligenza artificiale. L'assistente fornisce risposte utili, dettagliate e cortesi alle domande dell'utente.
<|utente|>
puoi spiegare questo grafico?
<|assistant|>
Ecco un grafico a barre intitolato Progressione di maturità del mercato del cloud aziendale dalla prima alla quarta generazione. L'asse delle ascisse misura la progressione delle generazioni, mentre l'asse delle ordinate traccia la progressione della maturità nel corso degli anni. Il grafico mostra che, con il passare delle generazioni, la maturità del mercato cloud aziendale aumenta.
Poni una domanda basata sulle immagini della presentazione (o digita 'exit' per uscire): exit
Quando l'utente ha posto domande relative alle immagini, il modello Granite Vision ha elaborato le immagini selezionate e ha generato risposte in base alla sua comprensione dei contenuti visivi.
Per la domanda "Che cos'è questa immagine?" (diapositiva 2), il modello ha identificato l'immagine come un "modello 3D" ma ha fornito una descrizione minima.
Per "Spiega questa immagine" (diapositiva 2), il modello ha perfezionato la sua risposta, identificandola come "il modello 3D di un cubo."
Per "Puoi spiegare questo grafico?" (slide 1), il modello forniva una descrizione dettagliata del grafico a barre, spiegando il titolo, l'asse x, l'asse y e la tendenza generale, indicando come la maturità del cloud aziendale evolve attraverso le generazioni.
Questo passaggio consente agli utenti di interagire con elementi visivi, come grafici, diagrammi e infografiche, sfruttando il modello IBM Granite Vision per analisi e spiegazioni intelligenti
Questo tutorial dimostra la capacità di IBM Granite Vision di interpretare le immagini.