# Sistema di visione artificiale

Un sistema di visione artificiale è un apparato elettronico che esegue funzioni di visione artificiale.
Un sistema di visione artificiale integra una o più telecamere dotate di sistema di acquisizione ed elaborazione immagini integrato o esterno, un software interno e/o esterno alla telecamera ed un sistema di illuminazione.
I sistemi di visione vengono impiegati in diversi campi, dall'industria ai servizi.
Un sistema di visione è in grado di misurare, riconoscere, identificare, selezionare, leggere codici e caratteri, guidare robot (guida robot). A tal fine trova larga applicazione nel controllo qualità dei prodotti, nella tracciabilità e nella loro movimentazione.
Il sistema di visione si integra facilmente con macchine ed impianti con i quali si interfaccia attraverso standard di comunicazione.

## Implementazione

L'organizzazione di un sistema di visione artificiale dipende fortemente dall'applicazione in cui viene utilizzato. Alcuni sistemi sono semplici applicazioni stand-alone (a sé stanti) che risolvono specifici problemi di misurazione o individuazione, mentre altri costituiscono un sotto-sistema in un disegno più grande, che per esempio contiene anche altri sottosistemi per il controllo di attuatori meccanici ecc. Ci sono tuttavia delle funzioni tipiche presenti nella maggior parte dei sistemi. Si riporta un esempio di approccio tipico ad un problema di visione artificiale.

### Acquisizione immagine (image acquisition)

Un'immagine digitale è prodotta da vari tipi di sensori come sensori sensibili alla luce, sensori tomografici, radar, sensori ad ultrasuoni. In base al tipo di sensore l'immagine può assumere la rappresentazione di un'ordinaria immagine 2D, un volume in 3D o una sequenza di immagini. Il valore tipico di un pixel può corrispondere all'intensità di luce in una o più bande spettrali ma può essere anche dedotto dall'assorbimento sonico o delle onde elettromagnetiche.

### Preelaborazione (pre-processing)

Prima che una immagine venga trattata da un metodo della visione artificiale è solitamente necessario elaborare i dati in modo da verificare che questi soddisfino specifiche regole necessarie al metodo. Per esempio:
* Ricampionare per assicurarsi che le informazioni non siano ridondanti o insufficienti.
* Togliere eventuale rumore che introduce informazioni false.
* Modificare il contrasto per assicurarsi che le informazioni rilevanti vengano individuate.

### Estrazione proprietà (feature extraction)

Le caratteristiche dell'immagine sono estratte dai dati dell'immagine ad esempio:
* Linee e bordi
* Punti di interesse locale (Es: angoli)
Caratteristiche più complesse possono essere il riconoscimento di movimento, forme e texture.

### Individuazione/segmentazione (detection/segmentation)

In qualche punto del processo viene presa la decisione di quali aree saranno rilevanti per l'ulteriore elaborazione. Es:
* Selezione di un set di punti di interesse
* Segmentazione dell'immagine in più regioni che contengono un oggetto di interesse.

### Elaborazione di alto livello (high-level processing)

A questo punto l'input è tipicamente un piccolo insieme di punti o regione di immagine che si presuppone debba contenere un oggetto specifico. Gli obiettivi del restante processo sono:
* Verificare che il modello contenuto nell'input possieda le specifiche del modello base o della classe.
* Stimare i parametri specifici tipo la posizione o la dimensione.
* Classificare oggetti in più categorie

### Decisione finale (Decision Making)

In questo, ultimo, passaggio viene presa una decisione finale sul dato raccolto, per esempio:
* Approvazione o fallimento di controlli automatici
* Match o no-match in applicazioni di riconoscimento
* Segnalazione della necessità di un'ulteriore revisione umana per applicazioni mediche, militari, di sicurezza e di riconoscimento.