BIION-D Docs

Struttura della pipeline

Comprendi come pipeline, blocchi e registro dati lavorano insieme.

Una pipeline è l’unità di esecuzione principale di BIION-D. Definisce una sequenza di operazioni, dall’acquisizione dell’immagine all’inferenza AI fino all’output dei risultati. Questa pagina spiega l’architettura delle pipeline e il modo in cui vengono validate.

Editor della pipeline

Concetti chiave

Concetto Descrizione
Pipeline Una sequenza di blocchi che elabora dati dall’input, ad esempio le telecamere, fino all’output dei risultati.
Blocco Una riga di moduli eseguiti in parallelo. I blocchi vengono eseguiti in sequenza, dall’alto verso il basso.
Modulo Una singola operazione: acquisire un’immagine, eseguire inferenza, controllare una luce, eseguire uno script o comunicare con un PLC.
Data Registry I valori prodotti durante un’esecuzione e resi disponibili ai moduli dei blocchi successivi.

Blocchi

I blocchi sono le righe della pipeline e impongono l’ordine di esecuzione:

  1. Il Blocco 0 viene eseguito per primo: tutti i suoi moduli vengono eseguiti in parallelo.
  2. Il Blocco 1 viene eseguito dopo il completamento del Blocco 0: tutti i suoi moduli vengono eseguiti in parallelo.
  3. Il ciclo continua allo stesso modo per i blocchi successivi.

Questo design permette di:

  • Eseguire più telecamere in parallelo nello stesso blocco.
  • Assicurarsi che le luci siano configurate prima dell’acquisizione delle telecamere, usando blocchi diversi.
  • Eseguire più inferencer su immagini diverse contemporaneamente nello stesso blocco.

Data Registry

Il Data Registry contiene gli output prodotti durante una singola esecuzione della pipeline. I valori usano la notazione con il punto, per esempio Camera_0.frame o AnomalyDetection_0.pred_score. Le finestre di configurazione mostrano solo gli input disponibili nei blocchi precedenti.

Campi predefiniti

Ogni esecuzione della pipeline inizia con questi campi obbligatori:

Campo Default Descrizione
compliance 0 (Good) Conformità complessiva del risultato della pipeline. Viene aggiornata automaticamente dai moduli inferencer.

Accesso ai dati dagli script Python

Write:  Data.export("custom_value", 123.3)
Read:   Data.get("camera_0.frame")  → image
Read:   Data.get("camera_0.execution_time")  → 12.5
Force compliance: Data.set_compliance(COMPLIANT) # COMPLIANT, UNCERTAIN, DEFECTED

Nomi riservati

I seguenti ID di pipeline sono riservati e non possono essere utilizzati:

  • overall_compliance
  • compliance
  • overall_compliance_override
  • compliance_override

Caratteri non validi

Gli ID delle pipeline non possono contenere: ., /, ...

Regole di validazione

BIION-D valida automaticamente le pipeline durante la creazione e prima dell’esecuzione. Esistono due livelli di validazione:

Regole a livello di blocco

Queste regole si applicano ai moduli all’interno dello stesso blocco:

Regola Descrizione
Esclusione multicamera Due moduli Camera con la stessa cam_label non possono trovarsi nello stesso blocco, perché la stessa telecamera fisica non può acquisire due volte contemporaneamente.
Esclusione luce-camera Un modulo Light e un modulo Camera non possono coesistere nello stesso blocco: le luci devono essere impostate prima dell’acquisizione.
Massimo una luce per blocco In ogni blocco è consentito un solo modulo Light.
Validazione del vincolo di esecuzione Il vincolo di esecuzione di ogni modulo deve appartenere all’elenco dei vincoli consentiti per il relativo tipo.

Regole a livello di pipeline

Queste regole si applicano a tutti i blocchi della pipeline:

Regola Descrizione
Soddisfacimento delle dipendenze di input Gli input dichiarati da ogni modulo devono essere forniti dagli output dei moduli nei blocchi precedenti.
ID modulo univoci Ogni modulo della pipeline deve avere un ID univoco.

Se la validazione fallisce, la pipeline non può essere testata o eseguita. L’editor identifica la configurazione interessata. Una bozza può comunque essere salvata: risolvi gli errori di validazione prima dell’uso in produzione.

Modalità di esecuzione

Le pipeline supportano due modalità di esecuzione:

Modalità Frame

È la modalità predefinita. Ogni pipeline viene eseguita una volta, elabora un singolo insieme di frame e restituisce i risultati.

Modalità Stream

È la modalità di esecuzione continua. La pipeline elabora i frame finché non viene arrestata. Un Action Plan in streaming contiene esattamente una pipeline.

  • L’Action Plan può contenere una sola pipeline.
  • I risultati vengono messi in coda e consumati dal client.

Aggregazione dell’Action Plan

Quando tutte le pipeline di un Action Plan sono state completate, i loro risultati vengono aggregati.

Logica di aggregazione: BAD_UNC_GOOD

La conformità complessiva viene determinata dal risultato peggiore tra tutte le pipeline:

Pipeline 1 Pipeline 2 Complessivo
Good (0) Good (0) Good (0)
Good (0) Uncertain (1) Uncertain (1)
Good (0) Defected (2) Defected (2)
Uncertain (1) Defected (2) Defected (2)

In questo modo, se una pipeline rileva un difetto, l’intero Action Plan viene contrassegnato come difettoso.