Tecnologia

Computer vision: cos’è, come funziona e applicazioni oggi

Tra i principali utilizzi, il riconoscimento degli oggetti, il telerilevamento (remote sensing), la scansione dei codici in QrCode, il riconoscimento ottico dei caratteri (OCR), il restauro di immagini e di opere d’arte, i robot che ispezionano e manipolano gli oggetti, il visual servoing, la modellazione 3D

Pubblicato il 14 Lug 2020

computer vision

Riprodurre processi, compiti e funzioni dell’apparato visivo umano è la sfida della computer vision. “Due terzi di quello che vediamo è dietro i nostri occhi” recita un antico proverbio cinese. In effetti, gli occhi sono solo una parte dell’apparato visivo umano. Noi vediamo perché gli stimoli luminosi attivano i fotorecettori che abbiamo sul fondo dell’occhio, nella retina, ma anche perché questi stimoli, grazie agli stessi fotorecettori, diventano poi segnali bioelettrici che arrivano, attraverso il nervo ottico, alle zone cerebrali. È qui che l’immagine viene elaborata, ricostruita in 3D, “compresa”. In ogni processo visivo, la luce diventa informazione, l’immagine significato utile per prendere decisioni.

Cos’è la computer vision (visione artificiale)

La computer vision, o visione artificiale, è quel campo di studi interdisciplinare che si occupa di capire come i computer possano riprodurre processi e funzioni dell’apparato visivo umano. Non solo, quindi, acquisire le immagini statiche o in movimento (anche oltre lo spettro della luce naturale), identificarle, riconoscerle ed estrarne le informazioni utili per prendere decisioni: l’elaborazione digitale delle immagini (digital image processing) è infatti solo una parte della computer vision. Una parte che rientra, precisamente, nella early vision, l’elaborazione “a basso livello di astrazione” su cui, dagli anni Sessanta in poi, sono stati fatti numerosi passi avanti. La sfida più ambiziosa della computer vision riguarda la visione high level, “ad alto livello di astrazione e comprensione”, che dall’immagine in 2D riesca a elaborare, ricostruire ed analizzare l’intero contesto in 3D in cui l’immagine è inserita. Riesca cioè a dare un significato storico e contestuale, quindi anche simbolico, dell’immagine rappresentata.

Come funziona la visione artificiale

A fine Ottocento, il pittore George Seurat cominciò a dipingere senza mescolare i colori sulla tavolozza, ma giustapponendo direttamente sulla tela bianca piccoli tocchi di colori puri complementari, “scomponendoli in puntini”: sarebbe stato l’occhio di chi osserva alla giusta distanza a mescolarli e vedere sul quadro sfumature e tinte uniformi.

Allo stesso modo, ogni immagine digitale può essere scomposta in puntini, i pixel, le unità minime della superficie di una immagine, disposti in modo diverso su una griglia, una matrice in 2D (scala di grigi) o 3D (a colori): la dimensione dell’immagine dipende dal numero di righe e di colonne della matrice, il colore dell’immagine dal numero o dalla terna di numeri associata ad ogni pixel. Tra zero-nero e 255-bianco nel caso di immagini in scala di grigi, invece una terna di numeri con l’intensità di rosso, verde e blu (red, green, blue) per le immagini a colori. Questo tipo di rappresentazione viene detto raster.

L’altro tipo di rappresentazione di una immagine digitale è invece quello vettoriale: l’immagine viene definita attraverso equazioni matematiche che possono descrivere non solo punti ma anche linee, segmenti, triangoli, le cosiddette primitive geometriche. Sia nel caso “raster” che in quello “vettoriale”, il computer “vede” una qualsiasi immagine come un insieme di numeri.

In un sistema di visione artificiale, l’immagine viene acquisita (image acquisition) a partire da un sensore (fotosensibile, tomografico, radar) che produce un segnale in uscita e lo invia al calcolatore, che lo digitalizza e memorizza. L’immagine viene quindi “letta” e, a seconda degli scopi di analisi per cui è stato programmato il sistema, viene prima “pre-processata” (pre-processing) dal software, ovvero resa “idonea” all’analisi, poi elaborata in senso stretto, attraverso l’estrazione delle caratteristiche di interesse (feature extraction) e/o la selezione di particolari aree per un’ulteriore elaborazione (detection/segmentation). Il risultato dell’analisi verrà quindi confrontato con il modello di riferimento, classificato (high level processing) e utilizzato per prendere decisioni (decision making). Ma, come già sottolineato, l’elaborazione digitale delle immagini è solo una parte della computer vision e “vedere” è anche identificare e riconoscere. Come si arriva alla “high level vision”?

Come fa una macchina a riconoscere gli oggetti

Non tutti i disegni corrispondono a rappresentazioni 2D, o proiezioni, di oggetti reali: l’artista Maurice Escher studiò e rappresentò le “figure impossibili”, figure cioè che non potevano corrispondere a nessun oggetto fisico. In linea teorica, esistono degli algoritmi che consentono di stabilire se un line drawing, ovvero un disegno di linee, rappresenti una figura impossibile o realizzabile, da cui poter ricostruire l’intera scena: ma, in realtà, il problema della ricostruzione in 3D di una scena a partire da un line drawing non è ancora del tutto risolto, nonostante l’apparato visivo umano riesca a capire il contesto di qualsiasi immagine rappresentata con facilità. I problemi di “ricostruzione del contesto” sono una delle frontiere della computer vision.

Molti passi avanti sono stati fatti invece sui problemi di “early vision”, ovvero di elaborazione delle immagini digitali per il riconoscimento di oggetti. Una macchina riesce a vedere, identificare e riconoscere un oggetto grazie ad algoritmi specializzati che vengono programmati nel software dell’elaboratore e lo fanno “imparare”. Il machine learning, o apprendimento automatico, si basa infatti su algoritmi artificiali, supervisionati o non, che indicano alla macchina “cosa cercare” e “cosa fare”: si dice che un apprendimento è supervisionato quando la macchina impara dal set di dati di “addestramento” forniti come modello. Se l’obiettivo è “identificare lampada”, verranno fornite alla macchina in fase di apprendimento migliaia di immagini classificate come “lampade” finché non avrà associato una serie di caratteristiche che ricercherà nell’oggetto nella fase di “feature extraction” e che le permetteranno di riconoscerlo o meno come “lampada”. Si dice invece che un apprendimento non è supervisionato quando la macchina impara da set di dati di addestramento non “classificati”. Tornando all’esempio della lampada, sarà la macchina stessa a trovare le caratteristiche simili tra le immagini “dell’oggetto x” e confrontarle con quello da analizzare per capire se si tratta della stessa “classe” oppure no.

Gli approcci di riconoscimento degli oggetti in 3D (3D object recognition) mutano in base alle proprietà dell’oggetto, ma tra i più comuni ricordiamo appunto l’approccio geometrico sulle caratteristiche (features-based approach, supervisionato) e il riconoscimento di pattern, ovvero di strutture simili e ricorrenti (pattern recognition, supervisionato o non supervisionato). Questi approcci, e i relativi algoritmi di apprendimento, si basano sulle reti neurali artificiali, in particolare le reti neurali convoluzionali. Di che si tratta?

Computer vision e deep learning

Una rete neurale artificiale è un sistema di calcolo matematico che funziona per connessioni, come nella rete naturale ogni neurone è collegato a decine di altre migliaia. La rete è plastica, cioè cambia i pesi delle sue connessioni sinaptiche in relazione alle informazioni mostrate durante la fase di apprendimento. Le reti neurali convoluzionali, dimostratesi le più efficaci per il riconoscimento di oggetti nella computer vision e ispirate alla corteccia visiva animale, sono reti “feed-forward”, cioè con un flusso di informazioni che si muove solo in avanti, senza cicli, dall’ingresso all’uscita. Una rete neurale convoluzionale è formata da 5 livelli: il livello di input, per esempio i pixel dell’immagine da analizzare; il livello convoluzionale, che individua i diversi pattern nell’immagine; il livello “ReLU – Rectified Linear Units”, che “rettifica” i livelli precedenti annullando i valori negativi ottenuti; il livello “Pool”, che identifica se la caratteristica analizzata è presente nei livelli precedenti; il livello “Fully connected”, completamente connesso, che connette tutti i neuroni precedenti per identificare secondo probabilità le classi identificative “trovate”. Le reti neurali convoluzionali sono architetture di deep learning, di apprendimento profondo, in cui ogni strato della rete calcola i valori per quello successivo per una elaborazione dell’informazione sempre più raffinata. Sono anche, come tutte le reti neurali, delle “scatole nere” per eccellenza: si possono alimentare all’ingresso, seguire nel loro apprendimento e attendere gli output senza che si possa “intervenire” nel processo di elaborazione. Quanti di questi processi impattano nella vita di tutti i giorni?

Applicazioni di computer vision nella vita reale

La visione artificiale presenta molteplici applicazioni pratiche. Tra le principali: il riconoscimento degli oggetti; il telerilevamento (remote sensing) ovvero il monitoraggio ambientale a distanza che serve a rilevare e classificare le condizioni del pianeta; la scansione dei codici in QrCode; il riconoscimento ottico dei caratteri (OCR), che converte qualunque tipo di testo, sia esso scansionato, scritto a mano, all’interno di una immagine; il restauro di immagini e di opere d’arte grazie a un’evoluta analisi delle superfici sia dal punto di vista geometrico che dei materiali; i robot che ispezionano e manipolano gli oggetti; il visual servoing, o asservimento visivo basato sull’immagine, che controlla il movimento dei robot grazie alle informazioni rilasciate dai sensori visivi; la modellazione 3D; il tracciamento dei movimenti e l’analisi diagnostica in telemedicina; l’indicizzazione dei database di immagini; i veicoli a guida autonoma, capaci di muoversi nell’ambiente circostante e di “riconoscere” la strada, i segnali, i pedoni; la manutenzione predittiva, il controllo dei processi produttivi e il supporto alla sicurezza negli impianti industriali.

Vantaggi della computer vision e image processing

La visione artificiale, specie quando riguarda l’elaborazione digitale delle immagini (image processing), consente di svolgere operazioni di verifica in meno di un secondo anche su oggetti in movimento: questo è un vantaggio che accomuna trasversalmente tutte le sue applicazioni. Nelle industrie, questo potrebbe portare all’analisi puntuale di oggetti di piccole dimensioni per migliorare il controllo qualità e/o a ridisegnare le linee di produzione. Un sistema visivo artificiale può operare anche in condizioni ambientali ostili per temperatura, rumore, agenti chimici o spazi ristretti e potrebbe sostituire in situazioni particolarmente stressanti l’operatore umano. Altri vantaggi sono la precisione dei controlli e la generazione di output che consentono di ottimizzare i processi.

TopNetwork - Riconoscimento immagini e oggetti

La computer vision nel manufacturing

Negli ultimi anni la computer vision ha trovato sempre più ampia adozione nel mondo industriale e manifatturiero grazie alla disponibilità di soluzioni integrabili direttamente sulle linee di produzione e negli ambienti di fabbrica, che integrano non solo i sistemi per la cattura delle immagini, ma anche tutti i software per la loro analisi, la contestualizzazione e la trasformazione dei dati raccolti in “actionable insight”.
I casi d’uso ai quali possono essere ricondotte le soluzioni di computer o machine vision si possono riassumere in quattro grandi famiglie:

  • Manutenzione predittiva
  • Analisi e controllo della difettosità
  • Scansione e lettura di codici a barre
  • Sicurezza nei luoghi di lavoro

Vediamole nel dettaglio

1 – Manutenzione predittiva

Nel mondo del manifatturiero i fermi macchina non pianificati rappresentano un’eventualità che rischia di compromettere produttività e tempi di consegna, con impatti negativi sia lungo la filiera, sia sull’immagine e la reputazione aziendale. Per questo motivo, è importante assicurarsi che i macchinari siano sempre in perfetta efficienza.
L’ispezione e il monitoraggio manuali di ogni singolo apparato sono attività dispendiose – sia in termini economici, sia in termini di tempo – e soggette a errori. Non è dunque strano che in un settore a sempre più elevata automazione qual è quello del manifatturiero la tecnologia sia la risposta che consente di passare dalla manutenzione reattiva a una più marcatamente predittiva.
Nello specifico, proprio i sistemi di visione possono svolgere efficacemente i compiti ispettivi necessari. Dotando i robot sulle linee di produzione di intelligenza artificiale e visione artificiale è possibile abilitarli a catturare immagini di ogni apparecchiatura, per poi inviarle in cloud, insieme a dati aggiuntivi relativi ai parametri di funzionamento.
Da questo insieme di dati e informazioni, i responsabili di produzione possono trarre utili informazioni su possibili guasti o malfunzionamenti, così da poter prendere decisioni informate sugli interventi correttivi da eseguire.

2 – Analisi e controllo della difettosità

Per poter garantire il massimo livello di soddisfazione dei clienti e ridurre il più possibile problemi legati al post-vendita, le ispezioni sui prodotti in fase di produzione e i controlli di qualità sono attività produttive cruciali che non possono essere ignorate.
Anche in questo caso, l’esecuzione manuale di queste attività è onerosa, dispendiosa e rischia di non essere sufficientemente accurata soprattutto laddove i difetti possono non risultare visibili o evidenti all’occhio umano. Con i sistemi di visione artificiale, le aziende manifatturiere possono ottimizzare e semplificare i processi di ispezione automatica dei prodotti e controllo di qualità, demandando al sistema la rilevazione delle difettosità e la verifica, tramite misurazioni accurate e precise delle componenti o parti utilizzate durante il montaggio del prodotto, della correttezza dell’esecuzione.
I sistemi di visione artificiale catturano le immagini dei prodotti o delle merci lungo la linea, inviandole in cloud per l’elaborazione: le informazioni o gli alert su eventuali difetti vengono a questo punto inviate al personale interessato.

3 – Scansione e lettura dei codici a barre

Nella gestione dei processi di produzione, i codici a barre hanno sostituito i tradizionali fogli di lavorazione compilati manualmente, introducendo nuovi livelli di efficienza e di affidabilità. Tuttavia, anche in questo ambito i sistemi di computer vision possono migliorare ulteriormente la situazione: in questo caso, si tratta di sostituire gli scanner manuali, con sistemi di visione artificiale integrati con funzionalità quali riconoscimento ottico dei caratteri (OCR), il riconoscimento ottico dei codici a barre (OBR) e altre tecnologie di elaborazione delle immagini, così da arrivare a un processo completamente automatizzato a garanzia che tutti i componenti si trovino al momento giusto e nella posizione giusta lungo la linea di produzione.

4 – Sicurezza nei luoghi di lavoro

I dati che annualmente si registrano in merito agli incidenti sui luoghi di lavoro dimostrano che i programmi e le misure di sicurezza non sono ancora adeguati e sufficienti. La visione artificiale può aiutare le aziende manifatturiere a migliorare la sicurezza dei lavoratori. I sistemi di visione artificiale sono infatti in grado di acquisire immagini dell’impianto, dei lavoratori e delle loro azioni, segnalando le situazioni rischiose per i lavoratori o altre situazioni di pericolo ambientale, evitando possibili incidenti.

Valuta la qualità di questo articolo

La tua opinione è importante per noi!

Articoli correlati

Articolo 1 di 2