Choose Colour style

Computer Vision

Computer Vision: ecco come una macchina ti può aiutare nel riconoscere gli oggetti.

La “Computer vision” o visione artificiale è un campo interdisciplinare che riguarda algoritmi e applicazioni che permettono ad un normale computer di ottenere una comprensione di alto livello da immagini o video digitali.

I primi studi risalgono agli anni 1970, ma solo di recente grazie al miglioramento esponenziale delle performance dell’hardware, all’elaborazione di algoritmi sempre più evoluti e dall’impiego di tecniche basate sull’intelligenza artificiale (in particolare Deep Learning) sono stati fatti passi da gigante in questo settore.

Oggi la computer vision è applicata in moltissimi ambiti da quello industriale al medico alla vita di tutti i giorni. Basti pensare a tutti gli algoritmi che sono nativamente presente nei nostri smartphone per il riconoscimento facciale, panoramiche, ai sistemi di riconoscimento targhe, etc.

Tipicamente nella maggior parte delle applicazioni al momento le immagini sono supervisionate da persone, tuttavia l’elaborazione delle immagini potrà essere automatizzata con applicazioni mai viste prima, in grado di dare risultati migliori di immagini analizzate dai migliori esperti.

Principio di funzionamento

La computer vision in qualche modo tenta di imitare il funzionamento del processo visivo.

Attraverso l’occhio le immagini vengono trasferite al cervello dove la cortecca visiva analizza più a fondo l’immagine che la confronta con tutto ciò che già conosce, classifica gli oggetti e le dimensioni e infine decide “qualcosa da fare”. Il tutto in una piccola frazione di secondo!

Per il computer, un’immagine è una matrice di numeri, detti pixel ciascuno dei quali rappresenta la componente elementare di un’immagine che può essere visualizzata mediante le coordinate fissate da un programma di elaborazione grafica.

L’insieme dei pixel rappresentano l’insieme di numeri necessari a un computer per vedere l’immagine e vengono organizzati secondo una matrice 2D o 3D di numeri compresi tra 0 e 255, a seconda che essa sia in scala di grigi o a colori. I numeri all’interno di essa individuano la scala di un determinato colore, quindi la sua intensità, e se un pixel è più opaco, più nitido o chiaro del vicino avrà un numero differente.

Ad esempio, in un immagine in bianco e nero si ha solamente una matrice 2D dove: il numero 0 rappresenta il nero e il numero 255 rappresenta il colore bianco per un determinato pixel della matrice. Nelle immagini in scala di grigi, ciascun pixel rappresenta l’intensità di un solo colore. In altre parole, si dice che la matrice ha un canale.

La matrice 3D dell’immagine a colori, invece, include 3 canali: quello rosso, verde e blu (dall’inglese RGB, ovvero Red, Green e Blue). Ogni canale è composto da una matrice 2D, simile a quella della scala di grigi, e perciò avremo una matrice per il canale rosso, una per il canale verde e una per quello blu, che poi sono impilate una sopra l’altra per ottenere la matrice 3D che mostra l’immagine a colori.

Quindi il computer vede le stesse cose che vediamo noi?

In realtà dipende dal tipo di sensore utilizzato. In alcuni ambiti ad esempio è importante focalizzare l’attenzione al di fuori dello spettro del visibile per cui con appositi sensori “multispettrali” o addirittura “iperspettrali” il computer è in grado di “vedere” dettagli che l’occhio umano non è in grado di percepire, perchè “fuori” dal range delle frequenze visibili a noi.

 

E il riconoscimento?

Un computer può identificare i contenuti e riconoscere cosa vede utilizzando tutta una serie di metodologie quali il riconoscimento delle caratteristiche (feature detection) e riconoscimento degli angoli (corner detection). Senza entrare in complessi dettagli queste metodologie vengono utilizzate dagli algoritmi di computer vision in fase iniziale di studio dell’immagine al fine di cercare le linee che si incontrano ad angolo e comprendendone una parte specifica dell’immagine con una sfumatura di colore. Questi angoli e caratteristiche sono gli elementi costitutivi che aiutano a trovare informazioni più dettagliate contenute nell’immagine.

Inoltre, per facilitare il riconoscimento, l’algoritmo utilizzato effettua un’analisi strutturale e la segmentazione dell’immagine per capire dove sono dislocate le regioni di interesse fornendo informazioni sulla disposizione spaziale dei colori o delle intensità in un’immagine.

Aspetto fondamentale: Il training!

Per fare in modo che il computer sia in grado di confrontare due oggetti simili è importante che l’algoritmo di computer vision venga “addestrato” ovvero gli venga insegnato come dovrà operare, quali saranno gli oggetti che deve riconoscere. Questa procedura avviene facendo iterare cicli di riconoscimento al computer supervisionando il risultato da parte di un operatore (o nel caso di apprendimento non supervisionato, addestrando gli algoritmi con un enorme ser di dati etichettati). Per questo motivo la computer vision è strettamente legata al machine learning.

Alcune applicazioni:

Riconoscimento oggetti (Object Recognition)

Il riconoscimento oggetti probabilmente è l’area più importante della Computer Vision con molte applicazioni pratiche in diversi ambiti. Data un’immagine, attraverso l’applicazione di appositi algoritmi è possibile riconoscere in automatico tutti gli oggetto rilevanti, oppure concentrarsi su un singolo oggetto andando ad estrarre le caratteristiche principali.

Analisi dei difetti (Defect Detection)  in ambito industriale

Sistemi di riconoscimento automatico dei difetti da applicare a fini statistici o nei sistemi di controllo qualità.

Tracciamento oggetti (Object Tracking)

Possibilità di contare gli oggetti in movimento. Che si tratti di traffico automobilistico, traffico di persone o prodotti su un nastro trasportatore, attraverso un sistema di visione artificiale è possibile ricavare informazioni utili per numerose applicazioni.

L’applicazione di queste tecnologie è molto più pratica rispetto ai metodi meno recenti (ad esempio, utilizzando hardware speciale o una persona che conta il traffico di veicoli) e può permettere di:

  • riconoscere oggetti di interesse;
  • tenere traccia degli stessi mentre si muovono;
  • determinare se entrano o escono da una specifica regione di interesse;
  • memorizzare il video (se necessario)

Richiedi maggiori informazioni

Inserisci i tuoi dati sotto per essere ricontattato e ricevere maggiori informazioni su come applicare queste tecnologie al tuo business.