Class RFDetrDetectionPostprocessor

Namespace
NT2I.ONNX.DataHandling.Cpu.RFDetr.Detection
Assembly
NT2I.ONNX.DataHandling.Cpu.dll

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.
Traitement appliqué :
  1. Sigmoid indépendant sur chaque logit.
  2. Sélection de la classe de score maximal.
  3. Filtrage par seuil de confiance.
  4. Conversion (cx, cy, w, h) normalisé → (x, y, w, h) en pixels de l'image originale.
RF-DETR ne requiert pas de NMS : le transformeur assigne un objet unique par query.
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

boxesData float[]

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].

logitsData float[]

Tableau plat de float représentant le tenseur logits [B, N, C] — scores bruts de classe pour chaque query de détection.

inputWidths int[]

Largeurs originales des images d'entrée (pour dénormalisation).

inputHeights int[]

Hauteurs originales des images d'entrée (pour dénormalisation).

batchSize int

Nombre d'images dans le batch (B).

numDetections int

Nombre de queries de détection (N).

numClasses int

Nombre de classes (C).

classConfidenceThresholds float[]

Seuils de confiance. Si un seul seuil est fourni, il est appliqué à toutes les classes.

normalizeCoordinates bool

Si true, les coordonnées retournées restent normalisées dans [0, 1]. Si false (défaut), les coordonnées sont exprimées en pixels de l'image originale.

blacklistedClassIds int[]

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

boxesData float[]

Tableau plat boxes [B, N, 4].

logitsData float[]

Tableau plat logits [B, N, C].

batchSize int

Nombre d'images dans le batch.

numDetections int

Nombre de queries de détection (N).

numClasses int

Nombre de classes (C).

classConfidenceThresholds float[]

Seuils de confiance.

blacklistedClassIds int[]

IDs de classe à exclure.

Returns

IBatchDetections<float>

Structure IBatchDetections<T> d'accès efficace aux détections.