Classificazione di immagini di database basata sull'intelligenza artificiale con Altova MapForce
Uno degli esempi più comuni di intelligenza artificiale nella nostra vita quotidiana è il riconoscimento facciale. Il riconoscimento facciale è il processo di identificazione o verifica dell'identità di una persona in base alle caratteristiche del suo volto. Questa tecnologia è utilizzata in molte applicazioni, come lo sblocco dei nostri telefoni con FaceID, l'identificazione dei nostri amici sulle piattaforme di social media come Facebook, e il controllo degli accessi negli aeroporti o negli hotel tramite scanner biometrici. Il riconoscimento facciale può rendere la nostra vita più comoda e sicura, ma solleva anche alcune preoccupazioni in termini di privacy ed etica. Ad esempio, come possiamo garantire che i nostri dati facciali non vengano utilizzati in modo improprio o rubati da hacker o da soggetti malintenzionati? Come possiamo impedire che il riconoscimento facciale venga utilizzato per la sorveglianza o la discriminazione? Come possiamo assicurarci che il riconoscimento facciale sia preciso e imparziale, e che non presenti pregiudizi o errori?
Il paragrafo precedente è stato generato da ChatGPT in risposta alla mia richiesta di descrivere i vantaggi e i rischi dell'intelligenza artificiale, includendo un esempio concreto. È interessante notare che ChatGPT abbia scelto FaceID come esempio, dato che FaceID è semplicemente una delle possibili applicazioni dell'analisi delle immagini, e che la classificazione delle immagini basata sull'intelligenza artificiale offre il potenziale per automatizzare molte attività reali.
Un caso d'uso comune è un catalogo prodotti, in cui un'azienda gestisce informazioni sui prodotti fornite da numerosi produttori diversi. Un prodotto caricato in quel database potrebbe avere un nome che non include necessariamente una descrizione precisa dell'articolo. Ad esempio, "wellington" è uno stivale, "fedora" è un cappello, un "mongoose" è una bicicletta e un "pesce ago giallo lucido" è un'esca da pesca. Possiamo utilizzare la classificazione di immagini basata sull'intelligenza artificiale, utilizzando l'API Microsoft Azure Cognitive Services Computer Vision, per risolvere questo problema. Il servizio Computer Vision riceve i dati dell'immagine o l'URL come input e restituisce informazioni sul contenuto. Un servizio genera etichette di classificazione delle immagini basate su un set di dati di oggetti, esseri viventi, paesaggi e azioni riconoscibili su cui l'intelligenza artificiale di Azure è stata addestrata. Queste etichette ci consentono di categorizzare i prodotti nel database di conseguenza e potrebbero persino corrispondere ai termini di ricerca che un utente potrebbe utilizzare per trovare prodotti nel catalogo.

Possiamo creare una mappatura dei dati basata sull'intelligenza artificiale utilizzando Altova MapForce per inviare immagini dei prodotti all'intelligenza artificiale per la visione artificiale, sfruttando la sua API di servizio web. Altova MapForce è uno strumento di mappatura dei dati grafico, pluripremiato, per la conversione e l'integrazione di dati da qualsiasi formato a qualsiasi altro. L'API per la visione artificiale utilizza l'intelligenza artificiale per analizzare ogni immagine e restituire un elenco di tag. MapForce supporta direttamente i servizi web all'interno della mappatura, e le funzionalità di elaborazione dei risultati intermedi o di mappatura dei dati a catena possono quindi reinserire i tag in un campo dedicato nel database per ciascun prodotto.
Questa mappatura dei dati basata sull'intelligenza artificiale può automatizzare la generazione e l'inserimento di tag generati dall'IA per i cataloghi prodotti, in modo completamente scalabile. I tag restituiti dall'IA sono accompagnati da un punteggio di affidabilità, il che rende facile impostare una soglia nella mappatura per utilizzare solo i tag con un livello di affidabilità sufficientemente elevato.
Abbiamo iniziato con un piccolo database di esempio contenente prodotti comuni per attività ricreative all'aperto e abbiamo utilizzato Altova DatabaseSpy per aggiungere un campo alla tabella dei prodotti, dedicato ai tag di intelligenza artificiale. DatabaseSpy si connette a tutti i principali database, semplificando la modifica di query SQL, la progettazione della struttura del database, la modifica dei contenuti e la conversione dei database, a una frazione del costo delle soluzioni specifiche per un singolo database. Di seguito, una finestra di risultato di una query di DatabaseSpy che mostra il contenuto del database e il nuovo campo vuoto.

E qui, in ordine casuale, sono presenti delle anteprime delle immagini dei prodotti di esempio

Abbiamo inoltre utilizzato DatabaseSpy per verificare una semplice query SQL che serviva a recuperare solo l'ID, che è la chiave primaria della tabella, e il nome del file dell'immagine corrispondente.

La query SQL rappresenta il primo input per la mappatura dei dati basata sull'intelligenza artificiale di MapForce, e comprende tre componenti principali: il risultato della query, la richiesta all'API di analisi delle immagini di Azure e uno script SQL per reinserire le risposte dell'API nel database.

Esaminiamo più nel dettaglio la richiesta inviata all'API di intelligenza artificiale:
Risultato di una query SQL come fonte di input per la mappatura dei dati

La query "Select" genera una tabella di dati, essenzialmente un elenco di numeri identificativi e dei corrispondenti nomi dei file immagine. Tuttavia, l'API accetta solo richieste per una singola immagine alla volta. Mappando l'ID proveniente dalla query all'elemento "envelope" nella parte superiore del componente API, generiamo una nuova chiamata API per ogni ID restituito, iterando attraverso ogni immagine presente nell'elenco. La seconda connessione, che parte dall'ID e termina nell'immagine nell'angolo in alto a destra, verrà utilizzata in seguito per creare uno script di aggiornamento SQL.
Il progettista della tabella del database ha scelto di fare riferimento alle immagini dei prodotti tramite i nomi dei file, invece di includere le immagini binarie come oggetti BLOB all'interno del database. L'API di analisi delle immagini basata sull'intelligenza artificiale può accettare sia i dati grezzi delle immagini che un URL che punta a un'immagine accessibile pubblicamente, quindi possiamo semplicemente fornire l'URL dell'immagine all'API nella nostra richiesta. La funzione "concat" mostrata sopra serve ad aggiungere il percorso necessario per costruire ogni URL completo.
Esecuzione della richiesta al servizio web basato sull'intelligenza artificiale
La sezione centrale della mappatura dei dati basata sull'intelligenza artificiale mostra la funzione del servizio web che richiama l'API di analisi delle immagini basata sull'intelligenza artificiale e che elabora ulteriormente i risultati ottenuti:

Notare l'icona a forma di busta etichettata "Corpo" presente sia nella sezione "Richiesta" che in quella "Risposta" della funzione del servizio web. L'API richiede un oggetto JSON come corpo della richiesta e specifica che la risposta sarà un documento JSON. I pulsanti blu e rossi accanto alle icone "Corpo" aprono una finestra di dialogo per fornire le definizioni della struttura per la richiesta e la risposta.

La risposta fornita dall'API di intelligenza artificiale necessita di ulteriori elaborazioni. I tag vengono restituiti come elenchi di oggetti JSON, e ogni tag è accompagnato da un numero che rappresenta il livello di accuratezza, espresso in percentuale. Di seguito è riportato un esempio. Questa è la risposta dell'IA nel formato JSON originale per l'immagine dell'ombrello:

La funzione di filtraggio principale seleziona le risposte che contengono tag con un livello di confidenza dell'88 percento o superiore. Successivamente, la funzione di concatenazione combina i tag in una stringa separata da virgole. Si noti che il tag "rain" (pioggia) mostrato sopra indica un livello di confidenza del 42%.
Ecco la stringa che vogliamo applicare al prodotto principale nel database, dopo aver estratto solo i tag desiderati:

Generare un'istruzione SQL di aggiornamento a partire dalle risposte fornite dall'intelligenza artificiale
La parte destra del sistema di mappatura dati basato sull'intelligenza artificiale riceve ogni risultato elaborato, lo mette in correlazione con l'indice di identificazione corretto del database e associa la sequenza di tag al campo "ai-tags" della tabella del database "cat-products".

Analisi dei risultati della mappatura dei dati basata sull'intelligenza artificiale
Il pulsante "Anteprima dell'output", situato sotto la finestra principale di mappatura di MapForce, ci permette di visualizzare un esempio di risultato: esegue l'intera mappatura dei dati, a partire dalla query di selezione originale, effettua le richieste API, elabora i risultati dell'intelligenza artificiale e, infine, crea le istruzioni SQL per l'aggiornamento, generando uno script SQL completo per l'aggiornamento

Possiamo utilizzare la funzione "Esegui script SQL" dal menu principale di MapForce per eseguire lo script e applicare gli aggiornamenti del database in modo interattivo, oppure possiamo ora distribuire questa mappatura a un'istanza di MapForce Server sulla nostra rete, dove può essere eseguita in modo automatizzato come parte di un processo di integrazione di nuovi prodotti nel catalogo. Utilizzando FlowForce Server, potremmo definire alcuni trigger che elaborano automaticamente i dati in arrivo, li validano, quindi eseguono l'etichettatura delle immagini basata sull'intelligenza artificiale e, infine, li caricano nel database di produzione.
Le nostre richieste all'API Computer Vision dei servizi cognitivi Microsoft Azure hanno utilizzato, per questo esempio, il modello di visione predefinito di Microsoft. Un modello di visione personalizzato sarebbe in grado di affinare i risultati delle etichette per applicazioni specializzate, ma questo esula dall'ambito di questo articolo.
Clicca qui per maggiori informazioni sulle funzionalità di mappatura e conversione dati disponibili in MapForce, oppure clicca qui per scaricare una versione di prova gratuita e completamente funzionante per 30 giorni, che include file di aiuto, tutorial e numerosi esempi di mappatura dati.