Status: Needs Review
This page has not been reviewed for accuracy and completeness. Content may be outdated or contain errors.
Node Catalog¶
Complete reference of all 30+ built-in nodes in CUVIS.AI, organized by category for easy navigation.
Overview¶
Nodes are the building blocks of CUVIS.AI pipelines. Each node performs a specific operation (data loading, preprocessing, detection, visualization) and connects to other nodes via typed ports.
What You'll Find Here: - 📚 Complete catalog of all built-in nodes - 🔍 Quick reference tables for finding the right node - 📖 Usage examples and configuration patterns - 🔗 Links to tutorials demonstrating each node
Node Categories¶
-
Data loading and dataset management nodes
Nodes: LentilsAnomalyDataNode (1)
-
Data transformation and preprocessing nodes
Nodes: MinMaxNormalizer, ZScoreNormalizer, PerPixelUnitNorm, and more (7)
-
Channel and feature selection nodes
Nodes: SoftChannelSelector, BaselineFalseRGBSelector, SupervisedSelectors (8)
-
Statistical analysis and anomaly detection nodes
Nodes: RXGlobal, ScoreToLogit (2)
-
Neural network and gradient-based training nodes
Nodes: DeepSVDD*, TrainablePCA, LearnableChannelMixer, ConcreteBandSelector (8)
-
Loss functions and evaluation metrics
Nodes: AnomalyBCEWithLogits, DeepSVDDSoftBoundaryLoss, AnomalyDetectionMetrics (7)
-
Results visualization and monitoring nodes
Nodes: AnomalyMask, CubeRGBVisualizer, ScoreHeatmapVisualizer, TensorBoardMonitor (4)
-
Helper nodes for decisions and transformations
Nodes: BinaryDecider, QuantileBinaryDecider, BinaryAnomalyLabelMapper (4)
Quick Reference Table¶
All Built-in Nodes at a Glance:
| Node | Category | Statistical Init | Trainable | Primary Use Case |
|---|---|---|---|---|
| LentilsAnomalyDataNode | Data | ❌ | ❌ | Load hyperspectral data with anomaly labels |
| BandpassByWavelength | Preprocessing | ❌ | ❌ | Filter channels by wavelength range |
| MinMaxNormalizer | Preprocessing | ✅ | ❌ | Min-max scaling with running statistics |
| ZScoreNormalizer | Preprocessing | ❌ | ❌ | Z-score normalization |
| ZScoreNormalizerGlobal | Preprocessing/DL | ✅ | ✅ | Learnable z-score encoder for Deep SVDD |
| PerPixelUnitNorm | Preprocessing | ❌ | ❌ | Per-pixel L2 normalization |
| SigmoidNormalizer | Preprocessing | ❌ | ❌ | Median-centered sigmoid squashing |
| IdentityNormalizer | Preprocessing | ❌ | ❌ | Pass-through (no-op) |
| SoftChannelSelector | Selectors | ✅ | ✅ | Learnable soft channel selection (Gumbel-Softmax) |
| TopKIndices | Selectors | ❌ | ❌ | Extract top-k channel indices from weights |
| BaselineFalseRGBSelector | Selectors | ❌ | ❌ | Fixed RGB wavelength selection |
| CIRFalseColorSelector | Selectors | ❌ | ❌ | Color Infrared false color |
| HighContrastBandSelector | Selectors | ❌ | ❌ | Data-driven high-contrast selection |
| SupervisedCIRBandSelector | Selectors | ✅ | ❌ | Supervised NIR/Red/Green selection with mRMR |
| SupervisedWindowedFalseRGBSelector | Selectors | ✅ | ❌ | Supervised RGB selection with windowing |
| SupervisedFullSpectrumBandSelector | Selectors | ✅ | ❌ | Supervised global band selection |
| RXGlobal | Statistical | ✅ | ❌ | Reed-Xiaoli anomaly detector |
| ScoreToLogit | Utility | ❌ | ✅ | Transform RX scores to logits |
| DeepSVDDProjection | Deep Learning | ❌ | ✅ | Deep SVDD projection network |
| DeepSVDDCenterTracker | Deep Learning | ✅ | ✅ | Track hypersphere center with EMA |
| DeepSVDDScores | Deep Learning | ❌ | ❌ | Compute distance-based anomaly scores |
| TrainablePCA | Deep Learning | ✅ | ✅ | PCA with optional gradient training |
| LearnableChannelMixer | Deep Learning | ✅ | ✅ | DRCNN-style 1x1 convolution mixer |
| ConcreteBandSelector | Deep Learning | ❌ | ✅ | Concrete/Gumbel-Softmax discrete selector |
| AnomalyBCEWithLogits | Loss | ❌ | ❌ | Binary cross-entropy loss |
| DeepSVDDSoftBoundaryLoss | Loss | ❌ | ❌ | Soft boundary loss for Deep SVDD |
| OrthogonalityLoss | Loss | ❌ | ❌ | Orthogonality regularization for PCA |
| SelectorEntropyRegularizer | Loss | ❌ | ❌ | Entropy regularization for selectors |
| SelectorDiversityRegularizer | Loss | ❌ | ❌ | Diversity regularization for selectors |
| AnomalyDetectionMetrics | Metrics | ❌ | ❌ | IoU, precision, recall, F1, AP |
| ExplainedVarianceMetric | Metrics | ❌ | ❌ | Track PCA explained variance |
| AnomalyMask | Visualization | ❌ | ❌ | Visualize anomaly masks |
| CubeRGBVisualizer | Visualization | ❌ | ❌ | False-color RGB from selected channels |
| PCAVisualization | Visualization | ❌ | ❌ | Visualize PCA projections |
| ScoreHeatmapVisualizer | Visualization | ❌ | ❌ | Anomaly score heatmaps |
| TensorBoardMonitorNode | Visualization | ❌ | ❌ | TensorBoard logging (sink node) |
| BinaryDecider | Utility | ❌ | ❌ | Fixed threshold binary decisions |
| QuantileBinaryDecider | Utility | ❌ | ❌ | Quantile-based binary decisions |
| BinaryAnomalyLabelMapper | Utility | ❌ | ❌ | Convert multi-class to binary anomaly labels |
Finding the Right Node¶
By Task¶
Anomaly Detection: - Statistical: RXGlobal - Fast, interpretable baseline - Deep Learning: DeepSVDD* - One-class learning with neural networks
Band/Channel Selection: - Fixed Selection: BaselineFalseRGBSelector, CIRFalseColorSelector - Learnable Selection: SoftChannelSelector, ConcreteBandSelector - Supervised Selection: SupervisedCIRBandSelector, SupervisedWindowedFalseRGBSelector
Preprocessing: - Normalization: MinMaxNormalizer, ZScoreNormalizer - Wavelength Filtering: BandpassByWavelength - Per-Pixel Operations: PerPixelUnitNorm
Dimensionality Reduction: - PCA: TrainablePCA - Channel Mixing: LearnableChannelMixer
Visualization & Monitoring: - TensorBoard: TensorBoardMonitorNode - Anomaly Masks: AnomalyMask - Score Heatmaps: ScoreHeatmapVisualizer
By Training Paradigm¶
Statistical-Only (No Gradients):
- RXGlobal
- MinMaxNormalizer (with use_running_stats=True)
- SupervisedCIRBandSelector
- SupervisedWindowedFalseRGBSelector
Two-Phase (Statistical → Gradient): - SoftChannelSelector - TrainablePCA - LearnableChannelMixer - DeepSVDD* nodes
Gradient-Only: - ConcreteBandSelector - DeepSVDDProjection
No Training Required: - ZScoreNormalizer - BandpassByWavelength - BinaryDecider - All visualization nodes
By Data Type¶
Hyperspectral Data: - LentilsAnomalyDataNode - BandpassByWavelength - SoftChannelSelector - RXGlobal
RGB/False-Color: - BaselineFalseRGBSelector - CIRFalseColorSelector - CubeRGBVisualizer
Feature Embeddings: - DeepSVDDProjection - DeepSVDDCenterTracker - DeepSVDDScores
Common Pipeline Patterns¶
Pattern 1: Statistical Detection Pipeline¶
Use Case: Fast baseline anomaly detection with RX
graph LR
A[LentilsAnomalyDataNode] -->|cube| B[MinMaxNormalizer]
B -->|normalized| C[RXGlobal]
C -->|scores| D[ScoreToLogit]
D -->|logits| E[BinaryDecider]
E -->|decisions| F[AnomalyDetectionMetrics]
A -->|mask| F
F -->|metrics| G[TensorBoard]
Training: Statistical-only (Phase 1) Tutorial: RX Statistical Detection
Pattern 2: Two-Phase Training with Channel Selection¶
Use Case: Learnable channel selection with gradient optimization
graph LR
A[Data] -->|cube| B[MinMaxNormalizer]
B -->|normalized| C[SoftChannelSelector]
C -->|selected| D[RXGlobal]
D -->|scores| E[ScoreToLogit]
E -->|logits| F[BCELoss]
E -->|logits| G[BinaryDecider]
G -->|decisions| H[Metrics]
C -->|weights| I[EntropyLoss]
Training: Phase 1 (Statistical) → Phase 2 (Unfreeze selector + RX) → Phase 3 (Gradient) Tutorial: Channel Selector
Pattern 3: Deep Learning Pipeline (Deep SVDD)¶
Use Case: Deep one-class anomaly detection
graph LR
A[Data] -->|cube| B[BandpassByWavelength]
B -->|filtered| C[PerPixelUnitNorm]
C -->|normalized| D[ZScoreNormalizerGlobal]
D -->|encoded| E[DeepSVDDProjection]
E -->|embeddings| F[CenterTracker]
F -->|center| G[DeepSVDDScores]
E -->|embeddings| G
G -->|scores| H[QuantileDecider]
H -->|decisions| I[Metrics]
Training: Phase 1 (Statistical encoder init) → Phase 2 (Unfreeze encoder) → Phase 3 (Gradient) Tutorial: Deep SVDD Gradient
Pattern 4: Plugin-Based Pipeline¶
Use Case: Using external plugin nodes (e.g., AdaCLIP)
graph LR
A[Data] -->|cube| B[MinMaxNormalizer]
B -->|normalized| C[LearnableChannelMixer]
C -->|rgb 3ch| D[AdaCLIPDetector Plugin]
D -->|scores| E[QuantileDecider]
E -->|decisions| F[Metrics]
Training: Phase 1 (Statistical) → Phase 2 (Unfreeze mixer) → Phase 3 (Gradient with IoU loss) Tutorial: AdaCLIP Workflow
Plugin Nodes¶
CUVIS.AI supports plugin nodes loaded from external repositories. Plugin nodes extend the built-in catalog with specialized functionality.
Key Difference:
- Built-in nodes: Included in cuvis-ai package
- Plugin nodes: Loaded dynamically from Git repositories
Example Plugin: cuvis-ai-adaclip
- AdaCLIPDetector: CLIP-based anomaly detection for hyperspectral data
- Repository: https://github.com/cubert-hyperspectral/cuvis-ai-adaclip
Learn More: - Plugin System Overview - Architecture and concepts - Plugin Usage - How to use plugin nodes - Plugin Development - Create your own plugins
Node Development¶
Want to create custom nodes?
- For built-in nodes: Follow the Add Built-in Node guide
- For external plugins: See Plugin Development
Resources: - Node System Deep Dive - Node architecture and lifecycle - Port System - Typed I/O connections - API Reference - Node base classes and utilities
Related Pages¶
Concepts: - Node System Deep Dive - Understanding nodes and their lifecycle - Port System Deep Dive - Typed port connections - Two-Phase Training - Training strategies for learnable nodes
Tutorials: - RX Statistical Detection - Statistical-only pipeline - Channel Selector - Two-phase training example - Deep SVDD Gradient - Deep learning pipeline
API Reference: - Node API - Base node classes - Port API - Port specifications - Pipeline API - Pipeline construction
Next Steps: Browse the category pages above to explore detailed documentation for each node, including port specifications, parameters, usage examples, and configuration patterns.