Luigi D. CAPRA più che un consulente, un amico



Software di visione CL-Eidos

Scheda tecnica

General purposes

Il programma CL-Eidos offre un ricco corredo di funzioni di visione general purposes (utilizzabile per elaborare immagini di tipo arbitrario), cui si aggiungono numerose procedure specifiche per applicazioni particolari come l'analisi di immagini, lo sviluppo di sistemi di OCR e di sistemi basati sull'impiego di reti di neuroni artificiali.

Architettura modulare stratificata

Il software CL-Eidos è caratterizzato da una struttura modulare articolata in sei diversi livelli:

1) interfacce (driver) verso l'hardware di visione e il sistema operativo. Al fine di rendere il programma CL-Eidos il più possibile indipendente dalle peculiarità del sistema operativo si è scelto di gestire quest'ultimo alla stregua del hardware, specificando delle opportune API; per cui basta riscrivere i driver per migrare da un sistema all'altro.

2) Infrastruttura di servizi sovraintende l'inizializzazione e la terminazione dei moduli, la gestione degli errori, la segnalazione delle condizioni di allarme (hardware), l'allocazione / deallocazione della memoria (ottimizzata per soddisfare i vincoli di real-time), la persistenza delle variabili, le comunicazioni fra i processi e sopratutto un nutrito assortimento di strumenti di debug.

3) Processore virtuale di immagini: consiste in una macchina a registri (implementata in software) ciascuno dei quali può ospitare un'immagine. Il processore virtuale può essere programmato ricorrendo ad un linguaggio simile all'assembler detto V-Code. Lo sviluppo di un'applicazione richiede solitamente solo la stesura di un semplice programma in V-Code; quest'ultimo essendo costituito da un normale file di testo può essere modificato con un qualsiasi editor. Il sorgente selezionato verrà caricato automaticamente all'avvio del CL-Eidos e precompilato; in tal modo è possibile modificare in qualsiasi momento il programma utente associato ad una particolare applicazione di visione artificiale senza essere costretti a ricompilare l'eseguibile del CL-Eidos.

Per facilitare lo sviluppo degli script in V-Code da parte degli OEM, progettando la piattaforma CL-Eidos sono stati curati particolarmente gli aspetti inerenti al debug delle applicazioni di visione; in particolare è stato introdotto un sofisticato sistema di breakpoint che consente di arrestare l'esecuzione, trasferendo il controllo al debugger, quando si verificano determinati eventi. Ad esempio è possibile richiedere che il sistema si blocchi passando in debug quando viene acquisita o caricata l'ennesima immagine di una sequenza; quando viene richiesto il rinfresco della schermata visualizzata oppure quando si incontra un'immagine avente determinate caratteristiche, eccetera.

4) Il quarto livello si occupa della gestione delle problematiche sistemistiche propriamente dette, quali: la gestione della configurazione (hardware & software), la caratterizzazione dell'interfaccia utente per quanto concerne, in particolare, l'associazione dei tasti di funzione e/o delle voci dei menu a tendina alle funzioni utente, la nazionalizzazione del sistema, assistenza all'operatore (help), ed altro ancora.

La filosofia del programma CL-Eidos prevede l'esistenza di un unico eseguibile, altamente parametrizzato capace di adattarsi alle varie applicazioni e all'hardware richiesto.

La configurazione del sistema (per una particolare applicazione e/o piattaforma hardware) viene demandata all'operatore incaricato dell'installazione che la effettua editando degli appositi script simile ai batch file di MS-DOS.

La nazionalizzazione dei messaggi di servizio, di errore e di help, può essere effettuata in qualsiasi momento e non richiede la ricompilazione del sorgente. Basta duplicare uno dei file di messaggio già esistenti e tradurre i messaggi nella lingua desiderata rispettando alcune convenzioni.

5) Il quinto livello è dedicato alla caratterizzazione dei prodotti che debbono essere controllati dal sistema di visione. Generalmente si avrà un file di configurazione per ogni prodotto, consistente in una descrizione del prodotto sotto forma di lista di parametri.

6) In cima allo stack si trova infine l'interprete dei comandi impartiti da tastiera o tramite menu. Anche in questo caso l'associazione fra tasti di funzione e/o voci dei menu a tendina e le funzioni di programma può essere cambiata dall'utente editando un apposito file di configurazione.

Auto-configurazione

Il programma CL-Eidos integra al suo interno numerosi strumenti di auto-configurazione aventi lo scopo di facilitare lo sviluppo dei file di configurazione (setup) per i vari prodotti, generandoli quando è possibile, ricorrendo a procedure automatizzate a partire da sequenze di esempi.

Registrazione degli eventi e tracciabilità

Il sistema offre la possibilità di mantenere la memoria degli eventi significativi che si verificano durante il funzionamento del sistema, sia al suo interno che esternamente, selezionando ciò che si desidera registrare ai fini della tracciabilità.

Salvataggio dell'input grezzo

Il programma CL-Eidos prevede la possibilità di salvare in un file la registrazione“chilometrica” dei dati grezzi acquisiti dal sensore o dalla telecamera ed, eventualmente, anche i segnali di sincronizzazioneforniti dalla linea.

La disponibilità delle registrazioni del novero completo delle informazioni in ingressorende possibili diverse interessanti possibilità; fra cui:

- la simulazione in laboratorio di apparecchiature costose, o di intere lineeproduttive, evitando di immobilizzare il capitale costituito dal valore delle stesse al solo scopo di consentire agli sviluppatori difare il loro lavoro.

- Il debug della procedura di segmentazione della prima zona di interesse.

- Si può rallentare a piacere la velocità della “linea virtuale” facilitandol'individuazione dei problemi.

- Viceversa disponendo di un sistema di elaborazione sufficientemente performante, si puòaccelerare la velocità della “linea” simulando in pochi minuti molte ore di lavoro.

- Si possono confrontare le prestazioni di due sistemi geograficamente lontani oppureverificare come variano nel tempo le prestazioni della stessa stazione di controllo.

- E' possibile sviluppare delle funzioni di tele-assistenza semplicemente facendosi spedire leregistrazioni effettuate da clienti lontani.

- Le registrazioni possono essere utilizzate per dimostrazioni off-line oppure come materiale didattico per l'addestramento di nuovioperatori.

- Infine, gli operatori e i programmatori possono effettuare la maggior parte del lavoro diconfigurazione del sistema in un ambiente comodo e confortevole anziché essere esposti ai disagi della linea.

Salvataggio delle immagini dei prodotti esaminati

Si può abilitare la registrazione sistematica di tutte le immagini acquisite e deiprincipali dati significativi risultanti dall'analisi delle stesse, sia ai fini della tracciabilità che a supporto degli algoritmi diauto-configurazione.

Immagini supportate

Il processore di immagini è progettato in modo da supportare immagini aventi lecaratteristiche più disparate sia per numero di dimensioni (da 1-D: segnale audio, a 4-D: sequenza temporale di scansioni 3-D), che permodalità di codifica dei pixel: bianco e nero (1 bit per pixel), 256 livelli di grigio, 256 palette, interi a 16, 32 e 64 bit, RGB24,RGB32, multispettrale (4 o più bande di frequenza), cui si aggiungono float e double (ed in un futuro i numeri complessi).

Il programma supporta le tre principali sequenze di rappresentazione dei pixel: tiles (sequenze contigue di componenti RGBRGBRGB...), rows (righe alternate RRR..., GGG..., BBB...), pages (pagina-R, pagina-G, pagina-B).

La maggior parte delle istruzioni aritmetico-logiche operanti sulle immagini sonoindipendenti dalla codifica e dalla rappresentazione dei pixel prescelta per cui è ad esempio possibile fare la somma di dueimmagini aventi la medesima rappresentazione e codifica, senza doverle riconvertire.

Le routine di input (da sensore o da file) volendo possono effettuare automaticamente laricodifica dei dati per adattarli al formato prescelto per l'elaborazione. Analogamente le procedure di visualizzazioneeffettuano automaticamente la ricodifica delle immagini di cui è richiesta la presentazione sullo schermo adattandole allecaratteristiche del bitmap video.

Il programma supporta i principali formati di file di immagine: RAW, BMP, TIF, TGA, JPG, ecc.

Database di immagini

Il software CL-Eidos integra le funzionalità di un sistema di visione tradizionale con quelle di un database di immagini, il tutto al fine di semplificare il lavoro dell'operatore interessato a studiare le caratteristiche comuni e/o gli elementi di differenza riscontrabili in collezioni di immagini più o meno omogenee.

A scelta dell'operatore le immagini di una collezione possono essere memorizzate in un unico file (come sequenze di fotogrammi) o separatamente come sequenze di file numerati in progressione. E' possibile passare da una rappresentazione all'altra ricorrendo ad un semplice comando.

Volendo è possibile associare ad ogni singola immagine della collezione un corredo di metadati (interpretabile come insieme dei valori dei campi del record associato all'immagine); in alternativa si può risparmiare memoria associando gli stessi valori a tutte le immagini della collezione, nel qual caso i metadati saranno scritti una volta sola in corrispondenza del primo fotogramma.

Dal punto di vista operativo l'utente può manipolare direttamente le immagini ricorrendo all'interfaccia di browsing oppure può scrivere un programma in V-Code e demandare al processore virtuale il compito di effettuare in automatico le operazioni richieste.

Qualora si desiderasse non modificare tutta la collezione ma soltanto un suo sottoinsieme, ricorrendo all'interfaccia di browsing è possibile selezionare le immagini che si desidera modificare e poi ordinare al processore di immagini di effettuare le trasformazioni richieste.

La selezione delle immagini può essere effettuata individualmente (selezionando le immagini una per una), indicando la prima e l'ultima immagine della sequenza oppure impostando una condizione di filtro (facente riferimento ai valori dei metadati) ricorrendo ad una interfaccia di tipo query by example.

Recentemente è stata introdotta la possibilità di effettuare delle query specificando delle condizioni in riferimento al testo delle eventuali didascalie delle immagini

.