GenICam (Generic Interface for Cameras) è una interfaccia di programmazione generica per applicazioni di machine vision[1]. L'obiettivo dello standard è quello di separare la tecnologia utilizzata per l'interfaccia fisica della camera (come per esempio GigE Vision o Camera Link) dall'interfaccia applicativa presentata all'utente (API). GenICam è amministrato dalla European Machine Vision Association EMVA)[2]. Il lavoro sullo standard è iniziato nel 2003[3] e il primo modulo di GenICam, GenApi, è stato ratificato nel 2006 mentre il modulo finale, GenTL, è stato ratificato nel 2008.[4]
Molte imprese dell'ambito industriale della machine vision hanno contribuito allo standard. Le compagnie maggiormente coinvolte nel progetto sono: [5]:
- Allied Vision Technologies
- Balluff (precedentemente noto come MATRIX VISION)
- Basler
- Baumer
- DALSA
- e2v semiconductors
- JAI Pulnix
- Leutron Vision
- Matrox Imaging
- MVTec Software
- National Instruments
- Pleora
- Stemmer Imaging
Grazie al numero di imprese coinvolte nel progetto GenICam e grazie ai benefici di interoperabilità che si spera di ottenere con il progetto, i costruttori di componenti per machine vision hanno già iniziato ad utilizzare lo standard nei loro prodotti. Tuttavia, le imprese che hanno contribuito a realizzare lo standard stanno seguendo un "approccio a due vie", sviluppando ancora SDK proprietari. È ancora da vedere se GenICam può sostituire tutti gli SDK development e raggiungere gli obbiettivi di interoperabilità e, possibilmente, prodotti di machine vision meno costosi[6].
GenICam è composto da tre moduli che aiutano a svolgere i compiti principali nel campo della machine vision in maniera generica. Questi moduli sono:
- GenApi: Utilizzando un file XML come descrittore, si configura la telecamera e si descrivono i dettagli per poterla controllare
- Standard Feature Naming Convention (SFNC): I nomi e tipi da utilizzarsi per caratteristiche comuni a tutte le telecamere, per raggiungere l'interoperabilità.
- GenTL: Questa è l'interfaccia a livello di trasporto per molte telecamere, acquisisce le immagini dalla telecamera e le passa all'applicazione.
GenICam fornisce supporto per cinque funzioni fondamentali [7]:
- Configurare la telecamera: questa funzione può supportare una serie di parametri della telecamera come ad esempio la misura dei frame, la velocità di acquisizione, il formato dei pixel, il guadagno, l'offset, ecc...
- Acquisizione di immagini: questa funzione crea un canale d'accesso tra la telecamera e l'interfaccia utente, oltre ad inizializzare la ricezione delle immagini
- Interfaccia Grafica: questa funzione permette alle interfacce utente (GUI) di interagire fluidamente con le telecamere
- Trasmissione di dati extra: questa funzione permette l'invio di dati ulteriori oltre all'immagine stessa. Tipici esempi possono essere informazioni riguardo l'istogramma, il timestap, l'area di interesse nel frame, ecc...
- Gestione di eventi: questa funzione permette alle telecamere di parlare all'applicazione tramite un canale eventi.
Note
[modifica | modifica wikitesto]- ^ GenICam Standard
- ^ EMVA
- ^ AES
- ^ Control Engineering
- ^ Contributori standard Genicam Archiviato il 4 aprile 2013 in Internet Archive.
- ^ Will Changing Machine Vision Standards Cut Costs and Boost Performance?, su photonics.com. URL consultato il 18 agosto 2010 (archiviato dall'url originale il 4 luglio 2008).
- ^ feret Archiviato il 2 aprile 2016 in Internet Archive.