Class RFDetrDetectionPostprocessor
Post-processeur CPU pour les modèles de détection RF-DETR.
Décode les deux sorties brutes du modèle :
boxes [B, N, 4]— boîtes en (cx, cy, w, h) normalisé dans [0, 1].logits [B, N, C]— scores bruts de classe.
- Sigmoid indépendant sur chaque logit.
- Sélection de la classe de score maximal.
- Filtrage par seuil de confiance.
- Conversion (cx, cy, w, h) normalisé → (x, y, w, h) en pixels de l'image originale.
public class RFDetrDetectionPostprocessor : IRFDetrDetectionPostprocessor, IPostprocessor, IDisposable
- Inheritance
-
RFDetrDetectionPostprocessor
- Implements
- Inherited Members
Constructors
RFDetrDetectionPostprocessor()
public RFDetrDetectionPostprocessor()
Methods
Dispose()
public void Dispose()
ExtractBoundingBoxes(float[], float[], int[], int[], int, int, int, float[], bool, int[]?)
Extrait et filtre les boîtes englobantes à partir des deux sorties brutes du modèle RF-DETR.
public IEnumerable<IEnumerable<IBoundingBox>> ExtractBoundingBoxes(float[] boxesData, float[] logitsData, int[] inputWidths, int[] inputHeights, int batchSize, int numDetections, int numClasses, float[] classConfidenceThresholds, bool normalizeCoordinates = false, int[]? blacklistedClassIds = null)
Parameters
boxesDatafloat[]Tableau plat de float représentant le tenseur
boxes [B, N, 4]— chaque boîte encodée comme (cx, cy, w, h) dans [0, 1].logitsDatafloat[]Tableau plat de float représentant le tenseur
logits [B, N, C]— scores bruts de classe pour chaque query de détection.inputWidthsint[]Largeurs originales des images d'entrée (pour dénormalisation).
inputHeightsint[]Hauteurs originales des images d'entrée (pour dénormalisation).
batchSizeintNombre d'images dans le batch (
B).numDetectionsintNombre de queries de détection (
N).numClassesintNombre de classes (
C).classConfidenceThresholdsfloat[]Seuils de confiance. Si un seul seuil est fourni, il est appliqué à toutes les classes.
normalizeCoordinatesboolSi
true, les coordonnées retournées restent normalisées dans [0, 1]. Sifalse(défaut), les coordonnées sont exprimées en pixels de l'image originale.blacklistedClassIdsint[]IDs de classe à exclure des résultats.
Returns
- IEnumerable<IEnumerable<IBoundingBox>>
Collection de listes de boîtes englobantes, une liste par image du batch.
ProcessOutputForSpans(float[], float[], int, int, int, float[], int[]?)
Traite les sorties brutes du modèle RF-DETR pour fournir un accès performant aux détections via des IBatchDetections<T> / Spans.
public IBatchDetections<float> ProcessOutputForSpans(float[] boxesData, float[] logitsData, int batchSize, int numDetections, int numClasses, float[] classConfidenceThresholds, int[]? blacklistedClassIds)
Parameters
boxesDatafloat[]Tableau plat
boxes [B, N, 4].logitsDatafloat[]Tableau plat
logits [B, N, C].batchSizeintNombre d'images dans le batch.
numDetectionsintNombre de queries de détection (
N).numClassesintNombre de classes (
C).classConfidenceThresholdsfloat[]Seuils de confiance.
blacklistedClassIdsint[]IDs de classe à exclure.
Returns
- IBatchDetections<float>
Structure IBatchDetections<T> d'accès efficace aux détections.