L’Intelligenza Artificiale, per potersi definire tale, deve riuscire a riprodurre ciò che un essere umano è in grado di fare sfruttando i propri sensi.
Pur essendo ancora lontani da questo traguardo, sicuramente uno dei sistemi che più si avvicina a simulare il senso della vista è la Computer Vision.
Avendo a disposizione video e immagini è già possibile infatti analizzarli e ricavare interessanti risultati grazie alla tecnologia.
Uno degli esempi più conosciuti di Computer Vision sono le macchine che si guidano senza pilota.
Grazie all’analisi di grandi quantità di dati raccolti da fotocamere e videocamere, è possibile far viaggiare le autovetture nelle strade delle città come se fossero guidate da un pilota.
La Computer Vision viene poi ad esempio utilizzata anche per capire lo stato d’animo di una persona in base alle sue espressioni, riconoscere gli oggetti, o conteggiare il transito dei veicoli su un determinato tratto stradale.
Possiamo quindi definire la Computer Vision come il campo che consente ai dispositivi di acquisire, elaborare, comprendere e analizzare immagini e video digitali estraendo informazioni utili.
Computer Vision: storia
Scienziati e ingegneri hanno cercato di sviluppare dei metodi che consentissero alle macchine di vedere e comprendere i dati visivi dalla fine degli anni ‘50.
Già nel 1959, infatti, dei neurofisiologi mostrarono a un gatto una serie di immagini, cercando di collegarle con una reazione nel suo cervello.
Scoprirono che reagiva prima ai bordi netti o alle linee, e questo indicava che l’elaborazione delle immagini iniziava dalle forme semplici.
In quello stesso periodo fu sviluppata anche la prima tecnologia di scansione delle immagini al computer, che permetteva di digitalizzare e acquisire immagini.
Altro passo in avanti fu fatto nel 1963 quando i computer furono in grado di trasformare immagini bidimensionali in forme tridimensionali.
Negli anni ‘60 l’Intelligenza Artificiale divenne oggetto di ricerca accademica, e vi furono i primi tentativi di utilizzo per risolvere il problema della visione umana.
È invece nel 1974 che viene sviluppata la tecnologia di riconoscimento ottico dei caratteri (Optical Character Recognition, o OCR), che consente di riconoscere il testo stampato in qualsiasi font o formato.
Allo stesso modo, il riconoscimento intelligente dei caratteri (Intelligent Character Recognition, o ICR) potrebbe decifrare il testo scritto a mano utilizzando delle reti neurali.
Da allora, OCR e ICR hanno contribuito allo sviluppo di applicazioni per l’elaborazione di documenti e fatture, il riconoscimento delle targhe dei veicoli, i pagamenti mobili e la traduzione automatica.
Il neuroscienziato David Marr nel 1982 dimostrò che la vista funziona in modo gerarchico, e creò degli algoritmi per le macchine in grado di rilevare bordi, angoli, curve e forme elementari.
Contemporaneamente l’informatico Kunihiko Fukushima sviluppò una rete di celle in grado di riconoscere i modelli.
La rete, chiamata Neocognitron, integrava degli strati convoluzionali in una rete neurale.
Nel 2000 l’attenzione degli studi si è concentrata sul riconoscimento degli oggetti, e nel 2001 sono apparse le prime applicazioni di riconoscimento facciale in tempo reale.
La standardizzazione di come i set di dati visivi sono etichettati e annotati è emersa nel corso degli anni 2000.
Nel 2010 è diventato disponibile il set di dati ImageNet.
Questo dataset contiene milioni di immagini etichettate attraverso un migliaio di classi di oggetti, fornendo una base per le CNN e i modelli di apprendimento profondo utilizzati oggi.
Nel 2012 un team dell’Università di Toronto inserì una CNN in un programma di riconoscimento delle immagini.
Il modello, chiamato AlexNet, riduceva significativamente il tasso di errore nel riconoscimento delle immagini.
Dopo questa svolta, i tassi di errore sono scesi a pochi punti percentuali.
Computer Vision: che cosa fa
La Computer Vision o Visione Artificiale ha come obiettivo primario quello di comprendere il contenuto di video e immagini.
Tramite questa tecnica è possibile eseguire tre tipologie di analisi, quali:
- Segmentazione
La segmentazione delle immagini riguarda la categorizzazione delle informazioni, suddividendole in determinati gruppi come un’auto, una strada o un pedone.
È ampiamente utilizzata nelle applicazioni per i veicoli a guida autonoma, e identifica vie, mezzi e persone. - Classificazione
La classificazione delle immagini viene usata per determinare cosa c’è in un’immagine o in un video.
Questa tecnica permette di identificare se nell’immagine è presente ad esempio un gatto o un cane, una mela o una pera, e così via.
- Rilevamento
Il rilevamento consente di localizzare gli oggetti all’interno delle immagini, e fa capire ad esempio alle automobili a guida autonoma a che distanza si trova il veicolo che le precede.
Computer Vision: come funziona
Come possiamo immaginare, la Computer Vision necessita di tante informazioni.
La Visione Artificiale deve eseguire l’analisi dei dati più e più volte, fino a quando non distingue e riconosce gli oggetti a livelli accettabili.
Per esempio, per addestrare un computer a riconoscere i cani, è necessario alimentarlo con una grande quantità di immagini di cani e di elementi relativi ad essi, per imparare le differenze e riconoscere le razze.
Per realizzare tutto questo vengono utilizzate essenzialmente due tecnologie: un tipo di Machine Learning chiamato Deep Learning, e una Rete Neurale Convoluzionale (Convolutional Neural Network o CNN).
Il Deep Learning utilizza degli algoritmi che permettono al computer di imparare da sé il contesto dei dati visivi.
Se vengono immesse abbastanza informazioni, l’algoritmo sarà in grado di distinguere in autonomia un’immagine da un’altra.
Il Convolutional Neural Network aiuta il Machine Learning ad analizzare le immagini, scomponendole in pixel a cui vengono assegnati dei tag o delle etichette.
Usa le etichette per eseguire delle convoluzioni (operazione matematica su due funzioni per produrre una terza funzione) e fare delle previsioni.
La Rete Neurale esegue queste convoluzioni e controlla le sue previsioni.
A differenza di un essere umano che distingue un’immagine a distanza, un CNN distingue prima i contorni nitidi e le forme semplici, poi aggiunge delle informazioni mentre esegue le iterazioni delle sue previsioni.
Un CNN è utilizzato per analizzare immagini singole, invece una rete neurale ricorrente (Recurrent Neural Network o RNN) viene usata in modo simile per le applicazioni video, per aiutare i computer a capire come le immagini in una serie di fotogrammi sono collegate tra loro.
Computer Vision: tecnologie
La visione artificiale è già sfruttata in numerosi settori tra cui sport, automotive, agricoltura, vendita al dettaglio, banche, costruzioni, assicurazioni e altro ancora.
Per consentire alle auto di viaggiare in autonomia, esplorare siti per l’estrazione petrolifera e individuare rapidamente malattie dalle immagini analizzate, la tecnica oggi maggiormente utilizzata riguarda le reti neurali.
Le tradizionali tecniche di analisi delle immagini sono state via via sostituite dalle reti neurali in quanto queste ultime consentono una migliore precisione e una maggiore elaborazione di informazioni sfruttando le alte prestazioni delle GPU.
Questi sistemi di Computer Vision, sia che si basino su analisi dei dati tradizionali o sulle reti neurali, possono essere – in diversi contesti – migliori degli esseri umani nel classificare immagini e video.
Con l’ampia gamma di applicazioni attuali e potenziali, non sorprende che le proiezioni di crescita per le tecnologie e le soluzioni di Visione Artificiale siano positive.
Un’indagine sostiene che questo mercato crescerà di uno sbalorditivo 47% nel 2023 rispetto al 2022, quando raggiungerà i 25 miliardi di dollari a livello globale.
In ambito AI, la Visione Artificiale è tra le aree di ricerca e sviluppo più calde e attive al momento.
Computer Vision: applicazioni
Molte organizzazioni non hanno ancora le risorse per finanziare laboratori di Computer Vision e creare modelli di Deep Learning e reti neurali.
Questi ultimi, inoltre, possono anche non disporre della potenza di calcolo necessaria per elaborare enormi insiemi di dati visivi.
Noi di DataDeep aiutiamo le aziende offrendo servizi di sviluppo di software di Visione Artificiale dedicati, che forniscono modelli di apprendimento disponibili in cloud per diminuire la quantità di risorse di calcolo.
Gli utenti si connettono ai servizi attraverso API (Application Programming Interface) e dashboard personalizzate.
Ma cosa fanno esattamente queste applicazioni?
Ecco alcuni esempi di attività di Computer Vision:
- Classificazione delle immagini
Le immagini vengono classificate (un cane, una mela, la faccia di una persona).
Più specificamente viene stabilito con precisione che una data immagine appartiene a una certa classe.
Questa capacità potrebbe essere utilizzata per identificare diversi prodotti o materiali all’interno di una determinata area.
- Rilevamento di oggetti
Le immagini analizzate vengono associate a una certa classe ed etichettate.
Gli esempi di utilizzo concreto includono il rilevamento di danni in una catena di montaggio o l’identificazione di macchinari che richiedono manutenzione.
- Object Tracking
Segue o monitora un oggetto una volta che è stato rilevato.
Questa attività viene spesso eseguita con delle immagini catturate in sequenza o con dei feed video in tempo reale.
I veicoli autonomi, ad esempio, hanno bisogno non solo di classificare e rilevare oggetti come pedoni, altre auto e infrastrutture stradali, ma anche di seguirne il percorso in movimento per evitare collisioni e rispettare il codice della strada.
- Content-based image retrieval
Il recupero delle immagini basato sul contenuto usa la Computer Vision per ricercare e recuperare immagini da grandi archivi di dati, basandosi direttamente sulle immagini piuttosto che sui tag dei metadati ad esse associati.
Questa attività può includere un’annotazione automatica dell’immagine che sostituisce quella manuale.
Questi compiti possono essere utilizzati per i sistemi di gestione delle risorse, e possono aumentare la precisione della ricerca e del ritrovamento.
Computer Vision: casi d’uso
I casi d’uso della Visione Artificiale includono il riconoscimento delle immagini, la classificazione delle stesse, l’etichettatura dei video e gli assistenti virtuali.
Medicina
L’elaborazione delle immagini mediche comporta la rapida estrazione di dati di immagini vitali per aiutare a diagnosticare correttamente un paziente, compreso il rilevamento rapido dei tumori e l’indurimento delle arterie.
Sebbene non ci si possa fidare della Visione Artificiale di per sé per fornire una diagnosi, è una parte inestimabile delle moderne tecniche diagnostiche mediche, poiché rafforza in minima parte ciò che pensano i medici e, sempre più, fornisce informazioni che i medici altrimenti non avrebbero visto.
Veicoli autonomi
Un’altra area molto attiva nella ricerca sulla Visione Artificiale è quella dei veicoli autonomi.
Infatti, grazie alla Computer Vision, le auto a guida autonoma hanno raggiunto importanti risultati, migliorando notevolmente le proprie prestazioni.
Le applicazioni comuni già in uso includono i sistemi di allerta precoce nelle automobili.
Usi industriali
La produzione industriale abbonda di usi attuali e potenziali di soluzioni di Visione Artificiale a supporto dei processi.
Gli usi attuali includono il controllo della qualità, in cui i sistemi di Computer Vision ispezionano parti e prodotti finiti per individuare eventuali difetti.
In agricoltura, i sistemi di Visione Artificiale utilizzano lo smistamento ottico per rimuovere i materiali indesiderati dai prodotti alimentari.
Conclusioni
La Visione Artificiale o Computer Vision è sicuramente uno sviluppo già oggi molto utilizzato in ambito Intelligenza Artificiale, perché dispone di tutti i fattori utili per ottenere risultati soddisfacenti.
Offre non solo gli strumenti per poter riprodurre la vista, ma fornisce anche risultati facilmente verificabili da noi esseri umani.
Un controllo se l’algoritmo sta risolvendo correttamente i suoi compiti è facilmente eseguibile da parte di ognuno di noi.
Lavorare su progetti di scienza dei dati e Computer Vision consente di migliorare tutti gli aspetti che abbiamo visto in precedenza, sia a livello quantitativo che qualitativo.
Se vuoi sapere cosa possiamo fare per te e la tua azienda e come avviare un progetto di Data Science in ambito Computer Vision prenota una videochiamata di 45 minuti!
Ecco come si svolgerà:
- Analizzeremo la tua organizzazione
Per comprendere meglio il mercato in cui ti trovi dobbiamo sapere di che cosa si occupa la tua azienda e com’è strutturata.
- Analizzeremo la digitalizzazione della tua azienda
Per poter sfruttare al meglio le tecnologie che hai a disposizione dobbiamo conoscere quanto la tua azienda oggi è digitalizzata.
- Studieremo le basi del progetto
Stabiliremo insieme le basi del primo progetto su cui è possibile applicare le tecniche di Intelligenza Artificiale.
Tu non devi preoccuparti di avere già tutto chiaro, saremo noi a porti le domande giuste per mettere a fuoco l’obiettivo!
Prima si avvia un progetto di Intelligenza Artificiale prima si ottengono risultati mai ottenuti prima!
Non aspettare ancora