Subsystem
Ce bloc de fonction agit comme un conteneur de workflow autonome. Utilisez-le pour regrouper des étapes de traitement liées dans un espace de travail séparé et modifiable afin que les scénarios complexes restent organisés et plus faciles à gérer.
📥 Entrées
No default inputs
Ce bloc ne déclare pas d'entrées par lui‑même. Les entrées peuvent être créées en ajoutant des prises d'entrée à l'intérieur de l'espace de travail du sous‑système et en les exposant sur la bordure du bloc.
📤 Sorties
No default outputs
Ce bloc ne déclare pas de sorties par lui‑même. Les sorties sont définies par les blocs enfants placés à l'intérieur du sous‑système et exposées comme sorties du sous‑système.
🕹️ Contrôles
Open Subsystem Editor
Ouvre l'espace de travail du sous‑système pour ajouter ou modifier le workflow contenu. (Généralement disponible par double‑clic sur le bloc ou via le menu contextuel du bloc.)
Expose Input
Crée une prise d'entrée à l'intérieur du sous‑système et l'expose sur la bordure du bloc pour que le flux parent puisse fournir des données.
Expose Output
Crée une prise de sortie à l'intérieur du sous‑système et l'expose sur la bordure du bloc pour renvoyer les résultats au flux principal.
Run / Debug Inside
Exécute et débogue le workflow contenu indépendamment du scénario principal pour valider son comportement.
🎯 Principales fonctionnalités
Encapsulation : regroupez les étapes de prétraitement, détection, suivi et export en une seule unité réutilisable.
Espace de travail local : le sous‑système dispose de sa propre toile modifiable pour concevoir un comportement complexe sans encombrer le flux principal.
Frontières claires : exposez uniquement les entrées et sorties nécessaires, en gardant le graphe principal simple.
Tests isolés : ouvrez et exécutez l'espace de travail du sous‑système pour déboguer ou valider les sous‑flux indépendamment.
Réutilisabilité : créez un sous‑système testé une fois, puis réutilisez‑le dans plusieurs projets.
⚙️ Fonctionnement
Lorsque le scénario s'exécute, le sous‑système exécute son workflow interne.
Les données entrent dans le sous‑système via les prises d'entrée que vous avez exposées à l'intérieur.
Les blocs enfants à l'intérieur du sous‑système calculent leurs résultats en séquence.
Les sorties exposées à l'intérieur du sous‑système sont récupérées et renvoyées au flux parent comme sorties du bloc.
Si un bloc enfant signale une erreur ou un état invalide, le sous‑système reflétera ce statut afin que vous puissiez localiser et corriger le problème dans l'espace de travail.
📝 Guide d'utilisation
Ajoutez un bloc
Subsystemà votre flux principal pour contenir une séquence complexe (acquisition → traitement → export).Ouvrez l'espace de travail du sous‑système (
Open Subsystem Editor) et ajoutez les blocs nécessaires.À l'intérieur du sous‑système, exposez uniquement les entrées et sorties requises par le flux parent.
Testez le sous‑système indépendamment en utilisant les contrôles internes d'exécution/débogage avant de l'intégrer au scénario principal.
Réutilisez ou dupliquez des sous‑systèmes pour des tâches similaires afin d'accélérer le développement.
💡 Astuces
Regroupez une chaîne complète de caméra dans un sous‑système : utilisez
Camera USBouCamera IP (ONVIF)→ blocs de prétraitement commeImage Resize/Blur→ détecteurs tels queObject DetectionouFind Object→ visualisation avecDraw Detections→ stockage avecImage LoggerouImage Write.Pour les flux de suivi, placez
Object Detection(ouObject Detection - Custom) etObject_Detection_Trackerdans un même sous‑système pour conserver la logique de suivi et le post‑traitement ensemble.Encapsulez les étapes lourdes d'IA comme
Super Resolution,Depth Estimation (DepthAny. V2)ouBackground Removal (RMBG-1.4)dans des sous‑systèmes pour pouvoir activer/désactiver ou remplacer des modèles sans perturber le flux principal.Utilisez des sous‑systèmes pour implémenter une analyse en plusieurs étapes : par ex. sélection ROI avec
Image ROI Select→ analyse de forme avecFind Contour/Measure Position Distance→ formatage des résultats avecData to JSON.Pour l'analyse d'intersections ou de trafic, gardez la détection et le suivi dans un sous‑système et l'agrégation/export (par ex. le bloc
Traffic Intersection AnalysisouCSV Export) dans un autre pour séparer les responsabilités.Pour le passage de données et l'état local, combinez les sous‑systèmes avec
Data Write LocaletData Read Localpour conserver une mémoire locale sans polluer le flux global.Lors du dépannage, ouvrez le sous‑système et exécutez uniquement son contenu pour identifier rapidement quel bloc interne génère des sorties invalides ou inattendues.
🛠️ Dépannage
No outputs appearingVérifiez que vous avez exposé des sorties à l'intérieur du sous‑système. Si rien n'est exposé, le bloc ne renverra pas de données au flux parent.Inputs not receivedAssurez‑vous d'avoir créé et exposé des prises d'entrée à l'intérieur du sous‑système et que le flux parent est connecté à ces entrées exposées.Child block reports invalidOuvrez l'espace de travail du sous‑système et inspectez les blocs enfants. Les erreurs à l'intérieur du sous‑système apparaîtront là‑bas — corrigez la configuration du bloc enfant ou remplacez le bloc problématique.Performance issuesSi le sous‑système contient des traitements lourds (modèles IA, super‑résolution, opérations sur de grands ensembles), envisagez de profiler à l'intérieur du sous‑système et de déplacer les traitements non essentiels vers des sous‑systèmes séparés et à la demande.Need to reuse or versionDupliquez le sous‑système et conservez une copie testable. Cela permet d'essayer différents paramètres ou modèles sans affecter le flux en production.
Mis à jour