FabImage® Library Suite
Libreria software per visione artificiale per C++ e .NET
Vantaggi chiave
- Prestazioni superiori
- Design moderno
- Struttura semplice
FabImage® Library Suite è una libreria software per visione artificiale per programmatori in linguaggio C++ e .NET. Fornisce un set completo di funzionalità per la creazione di applicazioni industriali di analisi delle immagini; dalle interfacce di acquisizione delle immagini basate su standard, attraverso routine di elaborazione delle immagini di basso livello, a strumenti pronti all’uso come la corrispondenza dei modelli, le misurazioni o i lettori di codici a barre.
I principali punti di forza del prodotto sono le prestazioni più elevate, il design moderno e la struttura semplice che lo rende facile da integrare con il resto del vostro codice. Le funzionalità disponibili in FabImage® Library corrispondono strettamente ai filtri di FabImage® Studio. Pertanto, è possibile prototipare rapidamente i vostri algoritmi in un ambiente grafico e poi tradurli in C++ o .NET, o persino generare il codice C++ automaticamente.
Fabimage Library Suite vi dà accesso immediato al codice di altissima qualità, ben ottimizzato e testato sul campo, di cui avete bisogno per i vostri progetti di visione artificiale!
Sono disponibili tre tipologie di Licenze:
Licenze Developer: sono Licenze necessarie per sviluppare un programma di visione
Licenze Runtime: sono Licenze necessarie per eseguire un programma di visione. Per acquistare un Licenza runtime è necessario aver acquistato una Licenza Developer.
Licenze Add-on: sono Licenze aggiuntive che permettono di espandere le funzionalità delle altre due tipologie di Licenze.
Licenze Developer
Licenza Base
La Licenza Developer è assegnata ad un singolo utente sviluppatore ed è attivabile solo tramite chiavetta USB. Per i primi 12 mesi dall’attivazione sono gratuitamente inclusi i servizi di Supporto Tecnico, che includono:
- Versione più aggiornata del software con le relative nuove funzionalità e documentazione*
- Risposte, via email, ai quesiti tecnici relativi all’uso del software
Dopo 12 mesi dall'attivazione della Licenza Developer, è necessario acquistare una licenza di servizio (FIS-EXT) per continuare a beneficiare di questi vantaggi.
*Per ottenere la versione più aggiornata del software occorre inviare ad Opto Engineering il file WIBU associato alla chiavetta USB della Licenza su cui si desidera avere l’upgrade. Maggiori informazioni su come e dove scaricare il file WIBU su https://docs.fab-image.com/stu... | |||
P/N | Descrizione | Tipologia | Funzionalità |
FIL-SUI | FabImage® Library Suite (C++ and .NET) | Licenza Developer Base | Ambiente di sviluppo (IDE) per programmazione diretta in C++ o .NET. Questa tipologia di Licenza è indicata per chi predilige programmare in C++ o C# e non vuole ricorrere alla programmazione in forma grafica. Permette l’acquisizione multicamera e lo sviluppo di processi (macrofiltri) in modo sequenziale (singolo thread) |
USB-DONGLE-FI |
Chiavetta USB | Hardware | Necessaria per attivare la Licenza attivata tramite chiavetta |
Licenze ADD-ON
Le Licenze ADD-ON** sono Licenze aggiuntive che permettono di espandere le funzionalità della Licenza base. Per acquistare Licenze ADD-ON è necessario aver acquistato una Licenza Developer FabImage® Library Suite (FIL-SUI).
Per ordinare una Licenza ADD-ON, è necessario, insieme all’ordine, inviare anche il file WIBU associato alla chiavetta USB della Licenza developer su cui si desidera attivare l’ add-on. Maggiori informazioni su come e dove scaricare il file WIBU a questo link. | |||
*** Non è possibile costruire più macrofiltri con il Deep Learning che lavorano in parallelo. | |||
P/N | Descrizione | Tipologia | Funzionalità |
FIL-PAR-ADD | Parallel Processing ADD-ON per chi ha acquistato FabImage® Library Suite (FIL-SUI) | Licenza Developer ADD-ON | Permette all’utente di:
|
FI-DL-ADD | FabImage® Deep Learning ADD-ON per chi ha già acquistato FabImage® Library Suite (FIL-SUI) | Licenza Developer ADD-ON | Permette all’utente l’utilizzo dei Tools di Deep Learning ***. |
Licenze Runtime
Licenza Runtime ad un SINGOLO THREAD
La Licenza Runtime è assegnata ad un singolo sistema di visione e permette l’acquisizione multicamera e l’esecuzione di processi (macrofiltri) in modo sequenziale (singolo thread).
E’ possibile attivarla tramite 2 opzioni:
Chiavetta USB (USB-DONGLE-RUN)
Computer ID*
Per acquistare una Licenza Runtime ad un Singolo Thread è necessario aver acquistato la Licenza Developer FabImage® Library Suite (FIL-SUI).
*Qualora il Computer subisse dei danni e la Licenza, assegnata attraverso Computer ID, andasse persa, non potrà essere recuperata e sarà necessario acquistarne una nuova. Opto Engineering consiglia l’opzione di acquisto tramite chiavetta USB. | |||
P/N | Descrizione | Tipologia | Funzionalità |
FIL-RUN | FabImage® Library Runtime | Licenza Runtime | Permette di eseguire un numero illimitato di processi (macrofiltri) in modo sequenziale |
USB-DONGLE-RUN | Chiavetta USB (Opzionale) | Hardware | La Licenza viene attivata tramite chiavetta |
Licenza Runtime MULTITHREADING
Per poter eseguire le funzionalità del Parallel Processing (FIL-PAR-ADD) è necessario acquistare una delle seguenti Licenze runtime (queste runtime sostituiscono la FabImage® Library Runtime (FIL-RUN) ad un Singolo Thread).
Per acquistare una Licenza Runtime Multithreading è obbligatorio aver acquistato una Licenza di tipo Developer FabImage® Library Suite (FIL-SUI) e una Licenza Developer ADD-ON Parallel Processing (FIL-PAR-ADD).
* Per eseguire un numero illimitato di processi in parallelo, è consigliato acquistare la Licenza Runtime che limita il numero di core del computer di visione. | |||
P/N | Description | Category | Features |
FIL-RUN-CL-XX* | |||
FIL-RUN-CL-4 | FabImage® Library Runtime per un computer di visione a 4 Core | Licenza Runtime per Parallel Processing ADD-ON | Permette di eseguire un numero illimitato di processi in parallelo. È obbligatorio l’utilizzo di un PC con 4 Core. |
FIL-RUN-CL-6 | FabImage® Library Runtime per un computer di visione a 6 Core | Licenza Runtime per Parallel Processing ADD-ON | Permette di eseguire un numero illimitato di processi in parallelo. È obbligatorio l’utilizzo di un PC con 6 Core. |
FIL-RUN-CL-8 | FabImage® Library Runtime per un computer di visione a 8 Core | Licenza Runtime per Parallel Processing ADD-ON | Permette di eseguire un numero illimitato di processi in parallelo. È obbligatorio l’utilizzo di un PC con 8 Core. |
FIL-RUN-CL-16 | FabImage® Library Runtime per un computer di visione a 16 Core | Licenza Runtime per Parallel Processing ADD-ON | Permette di eseguire un numero illimitato di processi in parallelo. È obbligatorio l’utilizzo di un PC con 16 Core. |
FIL-RUN-TL-XX | |||
FIL-RUN-TL-2 | FabImage® Runtime limitata a 2 Threads | Licenza Runtime per Parallel Processing ADD-ON | Permette l’utilizzo di un PC ad un numero a piacimento di Core. Il numero di processi in parallelo è limitato a 2 threads. |
FIL-RUN-TL-4 | FabImage® Runtime limitata a 4 Threads | Licenza Runtime per Parallel Processing ADD-ON | Permette l’utilizzo di un PC ad un numero a piacimento di Core. Il numero di processi in parallelo è limitato a 4 threads. |
FIL-RUN-TL-6 | FabImage® Runtime limitata a 6 Threads | Licenza Runtime per Parallel Processing ADD-ON | Permette l’utilizzo di un PC ad un numero a piacimento di Core. Il numero di processi in parallelo è limitato a 6 threads. |
FIL-RUN-TL-8 | FabImage® Runtime limitata a 8 Threads | Licenza Runtime per Parallel Processing ADD-ON | Permette l’utilizzo di un PC ad un numero a piacimento di Core. Il numero di processi in parallelo è limitato a 8 threads. |
FIL-RUN-TL-16 | FabImage® Runtime limitata a 16 Threads | Licenza Runtime per Parallel Processing ADD-ON | Permette l’utilizzo di un PC ad un numero a piacimento di Core. Il numero di processi in parallelo è limitato a 16 threads. |
Licenza Runtime ADD-ON DEEP LEARNING
Per poter eseguire le funzionalità del Deep Learning ADD-ON è necessario acquistare la seguente Licenza Runtime in aggiunta alla FabImage® Library Runtime (FIL-RUN).
Per acquistare la Deep Learning Runtime ADD-ON è necessario aver acquistato una Licenza di tipo Developer FabImage Library Suite (FIL-SUI) e una Licenza di tipo Developer Deep Learning ADD-ON (FI-DL-ADD).
* Non è possibile utilizzare più GPU card per l’inferenza | |||
P/N | Descrizione | Tipologia | Funzionalità |
FIL-RUN-DL | FabImage®Library Deep Learning Runtime ADD-ON | Permette all’utente l’esecuzione del Deep learning ad un singolo Thread * | Enables the user to execute single-threaded Deep learning* |
Licenze Service
Allo scadere dei 12 mesi dall’attivazione delle Licenza Developer FabImage® Library Suite (FIL-SUI) o delle Licenze Developer di tipo ADD-ON (FIL-PAR-ADD e FI-DL-ADD) sono disponibili le seguenti Licenze Service per estendere per altri 12 mesi i servizi di assistenza tecnica, che comprendono:
- La versione più aggiornata del software con le nuove funzionalità e la documentazione associate
- Risposte, via e-mail, a domande tecniche relative all'uso del software
* Le licenze Parallel Add-on vengono aggiornate gratuitamente dopo l'acquisto di un FIS-EXT. ** Per acquistare il DL-EXT è necessario acquistare anche il FIS-EXT. |
|||
P/N | Descrizione | Tipologia | Funzionalità |
FIL-EXT | FabImage® Library Suite EXTENSION
| Licenza Service | Licenza necessaria per:
|
DL-EXT* | FabImage® Deep Learning ADD-ON Extension | Licenza Service | Licenza necessaria per:
|
Se non si estende il servizio di assistenza tecnica, è comunque possibile:
-utilizzare la licenza per sviluppatori (FIS-SUI) e le licenze add-on (FIL-PAR-ADD e FI-DL-ADD), ma solo nell'ultima versione disponibile alla scadenza del supporto tecnico.
-Acquistare e utilizzare le licenze Runtime (incluse quelle Multithreading e Deep Learning), ma solo nell'ultima versione disponibile alla scadenza del supporto tecnico.
IMPORTANTE
Opto Engineering rilascia da 2 a 4 nuove versioni delle licenze per sviluppatori ogni anno, quindi è molto probabile che alla scadenza del supporto sia già disponibile una nuova versione. Per questo motivo, oltre a poter usufruire del nostro supporto tecnico, Opto Engineering consiglia sempre l'acquisto di Licenze Service.
Prestazioni
In FabImage® Library Suite l’attenta progettazione degli algoritmi va di pari passo con approfondite ottimizzazioni hardware, ottenendo prestazioni che rendono la libreria tra le più veloci al mondo. Le nostre applicazioni fanno uso di istruzioni SSE e di calcoli paralleli su processori multi-core.
Design moderno
Tutti i tipi di dati permettono la gestione automatica della memoria, gli errori vengono gestiti in maniera esplicita con le eccezioni, mentre i tipi opzionali vengono usati per valori speciali type-safe. Tutte le funzioni sono thread-safe e usano il parallelismo dei dati internamente, quando possibile.
Semplicità e uniformità
La libreria è una semplice collezione di tipi e funzioni, racchiusa in un singolo file DLL con apposite intestazioni. Per la massima leggibilità le funzioni seguono una convenzione di denominazione uniforme (ad esempio la forma VERBO + NOME come in: SmoothImage,RotateVector). Tutti i risultati vengono restituiti tramite parametri di uscita di riferimento, in modo da rendere sempre possibili molte uscite.
Introduzione
Il Deep Learning di FabImage® è un set aggiuntivo di 5 strumenti, altamente innovativi, progettati per ispezioni complesse. Bastano solo 20-50 immagini campione, per costruire un modello di reti neurali e rendere il software autonomo nel rilevare oggetti, difetti o caratteristiche che gli algoritmi tradizionali non sarebbero in grado di identificare.
Insieme a FabImage Studio Professional, Deep Learning Add-on fornisce una soluzione completa per le moderne applicazioni di visione artificiale!
Vantaggi chiave
Set di training
Impara da pochi campioni
Le applicazioni tipiche con FabImage Deep Learning Add-on richiedono da 20 a 50 immagini per la fase di training. Il nostro software apprende internamente le caratteristiche chiave da un set di training limitato e genera quindi migliaia di nuovi sample artificiali per un training efficace.
Requisiti hardware
Funziona su GPU e CPU
Per un training efficace nella fase di sviluppo è necessaria una GPU moderna. In macchina (runtime), si può utilizzare GPU o CPU. La GPU sarà tipicamente 3-10 volte più veloce (ad eccezione della classificazione degli oggetti che è altrettanto veloce sulla CPU).
Velocità
Le migliori performance
La durata tipica del training su una GPU è di 5-15 minuti. Il tempo di inferenza varia a seconda dello strumento e dell'hardware tra 5 e 100 ms per immagine. Le massime prestazioni sono garantite da un motore di inferenza sviluppato appositamente per l’uso su applicazioni industriali.
Procedura di Training
1. Raccolta e normalizzazione delle immagini
- Acquisire tra le 20 e le 50 immagini (più sono meglio è), di campioni buoni e di scarti, che rappresentano tutte le possibili variazioni dell'oggetto; salvarle su disco.
- Assicurarsi che la scala dell'oggetto, l'orientamento e l'illuminazione siano il più possibile coerenti.
Training
- Aprire FabImage Studio Professional e aggiungere uno dei moduli del Deep Learning Add-on.
- Aprire l’editor associato allo strumento e caricare le immagini di training.
- Etichettare le immagini o evidenziare i difetti utilizzando gli strumenti di disegno.
- Fare clic su "Train"
Set di addestramento e set di validazione
Nel deep learning, come in tutti i campi del machine learning, è molto importante seguire la metodologia corretta. La regola più importante è separare il set di addestramento dal set di convalida. Il set di addestramento è un insieme di campioni utilizzati per la creazione di un modello. Non possiamo usarlo per misurare le prestazioni del modello, poiché spesso genera risultati troppo ottimistici. Pertanto, utilizziamo dati separati - il set di convalida - per valutare il modello. Il nostro Deep Learning Add-on crea automaticamente entrambi i set dagli esempi forniti dall'utente.
Rilevazione di caratteristiche
Nella modalità supervisionata, l'utente deve evidenziare i pixel corrispondenti ai difetti sulle immagini di training. Lo strumento impara quindi a distinguere gli scarti cercandone le caratteristiche identificative.
Ispezione di pannelli fotovoltaici
In questa applicazione, crepe e graffi devono essere rilevati su una superficie che include caratteristiche complesse. Con i metodi tradizionali, questo richiede algoritmi complicati con decine di parametri che devono essere modificati per ogni tipo di pannello. Con il Deep Learning Add-on è sufficiente addestrare il sistema in modalità supervisionata, utilizzando un unico strumento.
Segmentazione dell'immagine satellitare
Le immagini satellitari sono difficili da analizzare poiché includono un'enorme varietà di caratteristiche. Tuttavia, il Deep Learning Add-on può essere addestrato per rilevare strade ed edifici con un'affidabilità molto elevata. Il training può essere eseguito utilizzando una sola immagine correttamente etichettata e i risultati possono essere verificati immediatamente. L’aggiunta di più campioni è utile ad aumentare la robustezza del modello.
Rilevazione di anomalie
Nella modalità senza supervisione il training è più semplice. Non esiste una definizione diretta di difetto: lo strumento viene addestrato a cercare deviazioni, di qualsiasi tipo, rispetto a campioni che vorremmo.
Verifica del packaging
In una confezione alimentare, ciascuno degli elementi deve essere posizionato correttamente. I difetti sono difficili da identificare quando gli oggetti sono corretti ma si trovano in una posizione sbagliata. In questo caso devono comunque essere classificati come errati. La soluzione è utilizzare un deep learning senza supervisione che rileva eventuali variazioni significative rispetto a ciò che lo strumento ha visto e appreso nella fase di formazione.
Materie plastiche, stampaggio a iniezione
Lo stampaggio a iniezione è un processo complesso con diversi, possibili, problemi di produzione. Gli oggetti in plastica possono anche includere piegature o altre deviazioni di forma accettabili per il cliente. Il nostro componente aggiuntivo Deep Learning può apprendere tutte le deviazioni accettabili dai campioni forniti e quindi rilevare anomalie di qualsiasi tipo durante l'esecuzione sulla linea di produzione.
Classificazione di oggetti
Lo strumento di classificazione degli oggetti divide le immagini di input in gruppi creati dall'utente in base alle loro caratteristiche specifiche. Di conseguenza vengono forniti il nome di una classe il livello di confidenza di ogni classificazione.
Posizionamento tappi (anteriore/posteriore)
Talvolta i tappi di plastica possono capovolgersi accidentalmente nella macchina di produzione. Il cliente desidera evitare questa situazione. L'attività può essere completata con metodi tradizionali, ma richiede un esperto per progettare un algoritmo specifico per questa applicazione. E’ invece possibile usare la classificazione basata sul Deep Learning che impara automaticamente a riconoscere il fronte e il retro da una serie di immagini di training.
Identificazione 3D di cerchi in lega
Potrebbero esserci centinaia di diversi tipi di cerchi in lega prodotti in un singolo stabilimento: l'identificazione di un particolare modello, rispetto a tali quantità, è impossibile con i metodi tradizionali. Un approccio Template Matching richiederebbe un'enorme quantità di tempo per cercare di abbinare centinaia di modelli, mentre la realizzazione manuale di modelli su misura richiederebbe uno sviluppo e una manutenzione eccessivi. Il deep learning si presenta come una soluzione ideale che apprende direttamente dalle immagini di esempio senza alcun sviluppo ad hoc.
Segmentazione in classi
La tecnica di segmentazione dell’istanza viene utilizzata per individuare, segmentare e classificare oggetti singoli o multipli all'interno di un'immagine. A differenza dello strumento di rilevazione di caratteristiche, questa tecnica rileva oggetti singoli e può essere in grado di separarli anche se si toccano o si sovrappongono.
Segmentazione di frutta secca
Poiché la composizione percentuale di frutta secca in una confezione deve essere conforme all'elenco degli ingredienti riportati in etichetta, il produttore deve verificare che venga imballata la giusta quantità di frutta secca per ciascun tipo. Lo strumento di segmentazione delle istanze è una soluzione ideale in tale applicazione, poiché restituisce maschere corrispondenti agli oggetti segmentati.
Verifica del packaging
Nell’esempio di verdure preconfezionate, la posizione degli ortaggi è casuale. I lavoratori della linea di produzione possono a volte dimenticarsi, accidentalmente, di mettere una delle verdure all’interno della confezione. Sebbene esista un sistema che pesa il pacchetto, è preferibile verificare la completezza del prodotto prima del processo di confezionamento. Poiché non esistono due ortaggi uguali, la soluzione è utilizzare la segmentazione basata sul deep learning. Nella fase di training, l’utente deve semplicemente contrassegnare le regioni corrispondenti alle verdure.
Tracciamento di punti
Lo strumento di tracciamento di punti cerca forme, caratteristiche o segni specifici che possono essere identificati come punti in un'immagine di input. Può essere paragonato al tradizionale template matching, ma qui lo strumento viene addestrato con più campioni e diventa robusto contro l'enorme variabilità degli oggetti di interesse.
Tracciamento api
Questo compito, impossibile da realizzare con i metodi tradizionali di elaborazione delle immagini, può essere svolto con il nostro ultimo strumento. Al termine dell’identificazione, possiamo verificare se sono stati infettati dalla varrosi, malattia causata dagli acari parassiti che attaccano le api mellifere. Il parassita si attacca al corpo degli insetti e sulla base di una caratteristica infiammazione rossa possiamo classificarle in base alle loro condizioni di salute. Questo esempio mostra che lo strumento si estende facilmente a molti diversi rami dell'industria, ad es. agricoltura.
Pick and Place
In queste applicazioni abbiamo bisogno di guidare un braccio robotico per prelevare gli articoli, tipicamente da un nastro trasportatore o da un contenitore. Un buon esempio di tale applicazione è raccogliere piccole talee di stelo per poi metterle verticalmente in vasi. Eventuali imprecisioni nel rilevamento potranno comportare un invaso troppo profondo o capovolto: le talee non formeranno radici. I nostri strumenti di deep learning consentono di individuare rapidamente le parti desiderate della pianta e fornire i risultati accurati, richiesti, per questa operazione.