Analisi delle immagini nel cloud: confronto ai vertici

Servizi cloud analisi immagini

I servizi cloud pensati per analizzare e classificare immagini sono approdati relativamente da poco tempo sul mercato. Dodici mesi fa è stata Google a fare la prima mossa con Cloud Vision mentre due mesi fa è stato Amazon Web Services ha lanciato Rekognition, del quale abbiamo avuto modo di parlare in un precedente post.

L’approfondimento di oggi è dedicato, come suggerisce il titolo, ad una comparativa tra i due servizi, dalle funzionalità messe sul campo fino al livello di attendibilità delle analisi. Buona lettura.

Elenco funzionalità ed altre caratteristiche

Per quanto riguarda le funzionalità di alto profilo messe a disposizione dai due servizi abbiamo:

  • Cloud vision (CV): individuazione oggetti, individuazione volti, individuazione dei sentimenti (volti), OCR, individuazione di loghi o punti di riferimento famosi (landmark, es: Colosseo), individuazione nudità e violenza. E’ possibile analizzare più immagini contemporaneamente (batch processing, ogni richiesta API ha tuttavia un limite di 8MB);
  • Rekognition (RK): individuazione oggetti, individuazione volti, individuazione dei sentimenti (volti), comparazione dei volti, ricerca all’interno delle immagini (solo volti).

E’ possibile notare che ad eccezione delle prime tre feature, ciascuno dei due servizi può vantare diverse funzionalità uniche. Passiamo ora ai formati immagine utilizzabili dai due servizi:

  • CV: sono supportate gif (viene preso in considerazione solo il primo fotogramma), bitmap, raw, icone, jpg, png e qualsiasi altra immagine in grafica raster;
  • RK: sono supportati jpg e png.

Nessuno dei due servizi supporta nativamente file video che, mediante soluzioni di terze parti indicate da Google ed Amazon, dovranno essere “scomposti” in successioni di fotogrammi (quindi immagini) da inviare ai servizi di analisi.

Cloud Vision e Rekognition necessitano di fonti dalle quali attingere informazioni (immagini) da analizzare. CV ed RK supportano le due seguenti modalità:

  • immagini inline: le immagini originali sono allegate alle richieste API sottoforma di rappresentazioni ottenute con base64.
  • Cloud storage: i servizi di archiviazione offerti dai provider possono essere utilizzati con i servizi di analisi immagini degli stessi. Bisogna tuttavia ricordare le seguenti limitazioni: non è possibile utilizzare servizi d’archiviazione di altri provider (es: Google non supporta AWS S3), non è possibile utilizzare file archiviati in un’altra region (RK), non è possibile utilizzare URL arbitrari (CV e RK).

Funzionalità a confronto: individuazione oggetti

I due servizi operano allo stesso modo: dopo aver analizzato l’immagine mostrano un elenco di etichette (label) con relativo grado di corrispondenza (es: “dog – 75%”). Cloud Vision si avvale anche di Google Knowledge Graph. I risultati del primo test condotto dalla nostra fonte sono stati ottenuti adottando la seguente metodologia: ciascun servizio ha dovuto analizzare 20 immagini distribuite a loro volte in 4 gruppi distinti (dimensioni file piccole, medie, grandi, enormi). Sono state infine riportate il numero di etichette suggerite e la percentuale di pertinenza.

Cloud Vision vs Rekognition - set immagini

Le immagini utilizzate nel primo test

  • CV ha utilizzato un totale di 125 etichette raggiungendo un grado di pertinenza pari al 93.7%.
  • RK ha utilizzato un totale di 111 etichette raggiungendo un grado di pertinenza dell’87.3%.

Cloud Vision ha totalizzato delle percentuali  di pertinenza inferiori nell’analisi di immagini di medie e grandi dimensioni. Con quelle di grandi dimensioni ha raggiunto invece il 100%. Rekognition si è classificato al secondo posto in 3 delle 4 sessioni ma si è mostrato migliore del competitor nell’individuazione di singoli oggetti e nel riconoscimento delle medesime immagini ruotate anche di 90° – CV è invece andato in confusione.

Funzionalità a confronto: individuazione dei volti

Entrambe le API hanno mostrato un’elevato grado di affidabilità ma hanno riscontrato problemi quando si sono trovate davanti a volti parzialmente nascosti da ostacoli o non completamente a fuoco.

 

Cloud Vision vs Rekognition - set immagini 2

Le immagini del secondo test. Le immagini ruotate hanno causato nuovamente problemi al servizio Google

  • CV ha avuto più problemi del competitor nell’analisi di immagini con ostacoli ed alcune incertezze nel separare elementi in primo piano da elementi in secondo piano. Le immagini ruotate di 90° e 180° si sono rivelate nuovamente un problema per Cloud Vision.
  • RK è stato messo in difficoltà dalle foto in bianco e nero con soggetti anziani. E’ riuscito invece ad individuare i volti delle immagini ruotate di 90° e 180°. Interessante anche il riconoscimento di volti in categorie non supportate ufficialmente, ovvero animali ed illustrazioni.

Funzionalità a confronto: individuazione dei sentimenti (volti)

Nel terzo ed ultimo test le API hanno dovuto confrontarsi con 25 immagini, 6 delle quali con un numero di volti compreso tra 2 e 7.

Cloud Vision vs Rekognition - set immagini 3

Le immagini dell’ultimo test

  • Cloud Vision ha ottenuto risultati sotto le aspettative. In diverse immagini il servizio non è riuscito a determinare alcuna emozione. Ciò è dovuto probabilmente al livello di addestramento inadeguato ma anche al limitato numero di emozioni contemplate dal servizio: gioia, tristezza, rabbia e sorpresa.
  • Rekognition si dimostra un passo avanti alla concorrenza mostrando una buona capacità di riconoscimento anche in situazioni complesse. Le emozioni note al servizio sono: felicità, tristezza, rabbia, sorpresa, disgusto, calma, confusione.

In conclusione

Per quanto riguarda Cloud Vision, ci troviamo davanti ad un prodotto più rifinito e maturo di quello Amazon – che paga il fatto di essere arrivato sul mercato in un secondo momento. Tra i punti di forza dell’API Google il supporto a vari formati immagine ed al batch processing, un elevato livello di pertinenza nell’individuazione degli oggetti ed una buona, ma non perfetta, individuazione dei volti.

AWS Rekognition riesce a suo modo a sorprendere in varie situazioni (individuazione delle emozioni, nell’analisi di immagini ruotate, il punto debole di Vision) dimostrando l’abilità del team AWS.

Entrambi i servizi hanno ampi margini di miglioramento e potrebbero incentivare sensibilmente l’adozione delle API aggiungendo funzionalità come funzioni di ricerca nelle immagini, localizzazione di oggetti e migliorando la precisione dell’individuazione dei volti.

Fonte