BIION-D Docs

Telecamera

Cattura un frame da una telecamera fisica collegata al sistema.

Il modulo Telecamera cattura un singolo frame da una telecamera fisica gestita dal sistema di acquisizione BIION-D. È il punto di ingresso più comune per le pipeline basate su immagini.

Modulo Telecamera nell'editor dell'Action Plan

Configurazione

Field Type Description
cam_label string L’etichetta assegnata alla telecamera nella pagina Dispositivi → Telecamere
configs object Sovrascritture delle proprietà specifiche della telecamera (esposizione, guadagno, ecc.) applicate prima di ogni cattura
Polarization select Imposta su On per telecamere con polarizzazione. Quando abilitato, il modulo cattura più frame corrispondenti a diversi stati di polarizzazione
PolarizationOutput list L’elenco delle etichette dei frame di polarizzazione (ad esempio, valori angolari o stati con nome) da produrre. Ogni etichetta diventa un frame di output separato. Usato solo quando Polarization è impostato su On

Comportamento

  1. Il modulo confronta i configs richiesti con le impostazioni correnti della telecamera.
  2. Se qualche impostazione differisce, la configurazione della telecamera viene aggiornata e il modulo attende che la modifica abbia effetto.
  3. Viene catturato un frame (o un set di frame) (snap). Quando Polarization è impostato su On, lo snap restituisce un frame per ogni etichetta definita in PolarizationOutput.
  4. Il/i frame e il tempo di esecuzione vengono memorizzati nel registro dati.

Se la telecamera usa un trigger esterno e nessun frame è pronto entro la finestra di timeout (5 000 ms), il modulo genera un errore.

Anteprima Live

Quando clicchi sull’icona video su un modulo Telecamera nella pagina Esecuzione o nell’editor dell’Action Plan, si apre un pannello di anteprima live flottante che mostra il feed della telecamera in tempo reale. L’anteprima include strumenti visivi avanzati:

  • Mirino — un mirino mobile che mostra le coordinate dei pixel (X, Y) al centro
  • Profili di linea orizzontale e verticale — grafici dei valori di intensità dei pixel lungo le linee del mirino
  • Istogramma RGB — un istogramma in tempo reale che mostra la distribuzione dei valori dei pixel rosso, verde e blu, con avvisi di clipping per le aree sovraesposte/sottoesposte
  • Pan e zoom — clicca e trascina per spostarti, usa la rotellina del mouse per ingrandire/rimpicciolire
  • Reticolo — una sovrapposizione di reticolo circolare per l’allineamento
  • Sovrapposizione anteprima ritaglio — un rettangolo tratteggiato che mostra la regione di ritaglio se configurata
  • Statistiche FPS — contatore in tempo reale dei frame al secondo

Il pannello di anteprima è trascinabile (clicca e trascina la barra del titolo) e ridimensionabile (trascina la maniglia nell’angolo). La sua posizione e dimensione vengono ricordate tra le sessioni.

Input e Output

Direction Key Type Description
Input — — Nessun input richiesto
Output <module_id>.frame image (numpy array) L’immagine catturata. Questo è l’output standard per le telecamere senza polarizzazione
Output <module_id>.<frame_label> image (numpy array) Quando Polarization è impostato su On nella configurazione, il modulo produce un output per ogni etichetta definita in PolarizationOutput. Ogni etichetta diventa la propria chiave di output (ad esempio, Camera_0.0, Camera_0.45, Camera_0.90, Camera_0.135) invece della singola chiave .frame

Vincoli di Esecuzione

Constraint Supported
Sempre ✅
Acquisizione ✅
Inferenza ✅

I moduli Telecamera vengono eseguiti in ogni modalità di esecuzione perché ogni pipeline che necessita di un’immagine richiede l’output della telecamera, sia che la pipeline stia acquisendo immagini sia che stia eseguendo l’inferenza su di esse.

Rule Description
Esclusione multi-telecamera Due moduli Telecamera con la stessa cam_label non possono essere nello stesso blocco (la stessa telecamera fisica non può scattare due volte contemporaneamente)
Esclusione luce-telecamera Un modulo Telecamera e un modulo Luce non possono essere nello stesso blocco (le luci devono essere impostate in un blocco precedente)

Esempio di Configurazione (JSON)

{
  "type": "Camera",
  "id": "Camera_0",
  "pipeline_id": "My_Pipeline_1",
  "block_id": 0,
  "mode": "always",
  "data": {
    "cam_label": "IDS",
    "configs": {
      "ExposureTime": 5000,
      "Gain": 1.5,
      "Polarization": "On",
      "PolarizationOutput": [0, 45, 90, 135]
    }
  }
}