Riconoscimento immagini con Gemini di Google
28 Marzo 2025

Un test scritto in bash per sperimentare un chatbot che sia in grado di comprendere il contenuto di una foto e quindi di rispondere a domande che riguardano la foto stessa.

Analisi di immagini con Gemini: un'esplorazione tecnica

Introduzione

In un'era digitale sempre più orientata all'intelligenza artificiale, l'analisi automatica delle immagini sta diventando un strumento prezioso. Questo script Bash dimostra come sia possibile utilizzare le API di Gemini di Google per analizzare e ottenere informazioni dettagliate su un'immagine in modo semplice e diretto. Il video presente spiega passo passo i vari dettagli per poter anche testare lo script in autonomia.

Descrizione tecnica

Siamo in ambiente linux e stiamo provando a realizzare lo script in bash. La prima riga di codice indica cosa usare (bash appunto) per eseguire lo script in modo che sia lanciabile semplicemente usando il nome dello script preceduto da ./ (punto e slash). Il comando read permette poi di inserire in modo interattivo la chiave API di google per poter utilizzare Gemini.



#!/bin/bash

# ====================================================================
# SCRIPT PER ANALIZZARE UN'IMMAGINE USANDO LE API GEMINI DI GOOGLE
# ====================================================================

# Inserisco la chiave API di Google
read -s -p "Inserisci la API Key: " GOOGLE_API_KEY
echo
export GOOGLE_API_KEY
		

Supponendo di aver caricato una immagine nella cartella img, definisco il percorso e il nome del file dell'immagine da fornire a Gemini. Creo poi una cartella temporanea per poter salvare alcuni file. In particolare vorrei salvare la versione base64 dell'immagine e il payload in formato json contenente i dati da passare a Gemini.



# Definisco il path e il filename dell'immagine da analizzare
IMG_PATH="img/cavalli.jpg"

# -----------------------------
# CREAZIONE DIRECTORY TEMPORANEA
# -----------------------------
# Creiamo una directory temporanea dove salvare i nostri file
TEMP_DIR="/tmp/gemini_analysis_$$"
mkdir -p "$TEMP_DIR"

# Definiamo i percorsi dei nostri file temporanei
TEMP_B64="$TEMP_DIR/image.b64"
TEMP_JSON="$TEMP_DIR/payload.json"
		

Nei passi successivi avviene la conversione vera e propria dell'immagine e la creazione del file json relativo al payload. Il payload contiene la domanda da fare a Gemini e i dati per permettere a Gemini di accedere all'immagine.



# -----------------------------
# CONVERSIONE IMMAGINE IN BASE64
# -----------------------------
# Convertiamo l'immagine in base64
base64 "$IMG_PATH" > "$TEMP_B64"

# -----------------------------
# CREAZIONE DEL PAYLOAD JSON
# -----------------------------
cat > "$TEMP_JSON" << EOF
{
  "contents": [{
    "parts":[
      {"text": "Quanti cavalli ci sono in questa immagine e di che colore sono?"},
      {
        "inline_data": {
          "mime_type":"image/jpeg",
          "data": "$(cat "$TEMP_B64")"
        }
      }
    ]
  }]
}
EOF
		

Nelle righe che seguono usiamo curl per effettuare la chiamata alle API di Gemini passando tutti i dati preparati in precedenza. Come output curl fornirà un json contenente divere informazioni tra cui anche la risposta del modello alla domanda posta. Segue poi una sezione dedicata alla pulizia dei file utilizzati con un paio di comandi rm.



# -----------------------------
# CHIAMATA ALL'API GEMINI
# -----------------------------
# Eseguiamo la chiamata API
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=$GOOGLE_API_KEY" \
    -H 'Content-Type: application/json' \
    -X POST \
    -d "@$TEMP_JSON" \
    2> /dev/null

# -----------------------------
# PULIZIA
# -----------------------------
# Rimuoviamo i file temporanei e la directory
rm -f "$TEMP_B64" "$TEMP_JSON"
rm -r "$TEMP_DIR"

		

Conclusione

L'evoluzione tecnologica ci porta continuamente verso orizzonti inaspettati, e questo script di analisi di immagini con Gemini ne è una testimonianza concreta. Siamo di fronte a un momento cruciale in cui l'intelligenza artificiale sta progressivamente abbattendo le barriere che un tempo sembravano invalicabili, trasformando concetti complessi in strumenti accessibili a chiunque abbia una minima dimestichezza con la tecnologia.
La vera rivoluzione risiede proprio nella semplicità: poche righe di codice Bash possono ora aprire mondi di analisi e comprensione prima riservati solo a team di ricerca specializzati. Questo script rappresenta più di un mero esempio tecnico; è una finestra spalancata su un futuro dove l'elaborazione delle immagini diventa un processo naturale, immediato, alla portata di sviluppatori, ricercatori, professionisti e appassionati.

L'accessibilità dell'intelligenza artificiale sta ridefinendo i confini tra tecnologia e utilizzabilità. Non serve più essere esperti di machine learning o possedere infrastrutture complesse per ottenere analisi sofisticate. Un'immagine, una chiave API e pochi comandi diventano sufficienti per estrarre informazioni, generare descrizioni, comprendere contesti visuali con una profondità che fino a poco tempo fa sarebbe sembrata quasi magica.
Le implicazioni di questa democratizzazione tecnologica sono profonde e toccano molteplici settori. Dall'assistenza alle persone con disabilità visive alla catalogazione automatica di archivi multimediali, dalla ricerca scientifica al miglioramento dell'accessibilità dei contenuti digitali, stiamo assistendo a una trasformazione che va ben oltre il semplice progresso tecnologico. È un cambiamento di prospettiva, un nuovo modo di interpretare e interagire con le informazioni visive che ci circondano.

Naturalmente, questo scenario non è privo di complessità. L'intelligenza artificiale porta con sé interrogativi etici importanti: la gestione dei dati, la possibile presenza di bias negli algoritmi, la necessità di un approccio critico e consapevole. Non si tratta di accettare passivamente la tecnologia, ma di comprenderla, modellarla, utilizzarla con responsabilità e intelligenza.
Lo script che abbiamo analizzato non è un punto di arrivo, ma un punto di partenza. Rappresenta un invito alla curiosità, alla sperimentazione, all'esplorazione. Ogni riga di codice è un piccolo universo di possibilità, un invito a immaginare nuove applicazioni, a superare i limiti attuali, a vedere la tecnologia non come un oggetto esterno, ma come un linguaggio universale in continua evoluzione. In questo momento storico, l'innovazione tecnologica non è più un privilegio di pochi, ma un territorio aperto all'esplorazione collettiva. L'intelligenza artificiale sta diventando un dialogo, una conversazione globale in cui chiunque può inserirsi, contribuire, immaginare nuovi scenari. E gli strumenti come questo script ne sono la più eloquente dimostrazione.

Torna al blog