22 luglio 2011

[Images] Funzionamento di Ricerca per Immagini

Lo scorso giugno Google ha introdotto la ricerca per immagini, una funzione aggiuntiva alla Search che permette di passare un’immagine (residente sul computer o tramite URL) al sistema ed effettuare una ricerca di immagini simili a quella di input.
Questa funzione che può risultare molto comoda, soprattutto a scopo professionale, nasconde un livello tecnologico veramente molto elevato.
Cerchiamo ora di capire come funziona questa innovazione.
Google ha implementato una tecnologia basata su’area molto attiva di ricerca nell’ambito delle scienze informatiche, chiamata Computer Vision o Visione Artificiale.
Questa scienza si occupa di permettere alle macchine di “vedere”, dove vedere per una macchina si intende essere in grado di estrarre informazioni da un’immagine, risolvere dei compiti o comprendere una scena in modo più o meno limitato.
Un esempio molto mondano di un’applicazione che fa uso di visione artificiale lo abbiamo con il sensore per console XBox360 chiamato Kinect.
Nel caso specifico di Google, quando viene caricata un’immagine su Ricerca per Immagini, l’algoritmo analizza il contenuto dell’immagine e lo suddivide in parti più piccole chiamate “caratteristiche”. Queste caratteristiche rappresentano le primitive sulla cui base il computer “capisce” come è fatta l’immagine. Esempi di caratteristiche possono essere forme geometriche, colori, texture e così via.
Una volta eseguita questa operazione, le caratteristiche isolate vengono inviate ai server di Google che si occupano di comparare le stesse con miliardi di altre immagini indicizzate. Nel momento in cui l’algoritmo è ragionevolmente sicuro di aver trovato un’immagine che combacia in modo soddisfacente con l’immagine di input, i risultati appaiono nella serp e il modo in cui l’immagine è stata catalogata viene indicato come “Migliore ipotesi per questa immagine”.

La serp conterrà anche una serie di immagini che saranno visivamente simili all’immagine di input anche se potrebbero non essere in relazione con l’immagine di partenza.
Dato che l’algoritmo “vede” le immagini attraverso le loro caratteristiche, queste ultime definiscono la qualità della comprensione dell’immagine da parte della macchina. Come conseguenza avremo che caratteristiche peculiari come per esempio il profilo del Monte Fuji verranno riconosciute molto bene, mentre immagini con caratteristiche poco distintive, come può essere ad esempio la fotografia di un tessuto monocromatico, genereranno risultati ambigui o del tutto sbagliati.
Nel caso sia necessario cercare un’immagine con caratteristiche poco evidenti, sarà comunque possibile aiutare l’algoritmo immettendo delle parole nella casella di ricerca che descrivono l’immagine input.
Vi lascio ad un video esplicativo di questa innovativa tecnologia.