Namespace NT2I.ONNX.Abstractions.Interfaces.RFDetr

Interfaces

IRFDetrDetectionPostprocessor

Définit le contrat pour un post-processeur spécifique aux modèles de détection RF-DETR.

RF-DETR produit deux tenseurs de sortie distincts :

  • boxes [B, N, 4] — boîtes englobantes au format (cx, cy, w, h) normalisé dans [0, 1].
  • logits [B, N, C] — scores bruts de classe (avant sigmoid / softmax).
RF-DETR, contrairement à YOLO, ne requiert pas de NMS : le transformeur garantit l'unicité des assignations par construction.

L'implémentation par défaut (RFDetrDetectionPostprocessor) applique un sigmoid indépendant sur chaque score de classe, puis filtre par seuil de confiance.

IRFDetrDetectionPreprocessor

Définit le contrat pour un pré-processeur spécifique aux modèles de détection RF-DETR.

Le pipeline de pré-traitement RF-DETR utilise :

  • Normalisation ImageNet — mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225] (ordre RGB).
  • Resize direct (StretchResize) — pas de letterbox, ratio d'aspect non conservé.
  • Layout NCHW — [batch, 3, H, W] en float32.
Ce pipeline est identique au pré-traitement SAM2, ce qui permet une mutualisation de la pré-traitement via le Hub (CudaSharedImageContext : cache hit sur Requirements identiques).
IRFDetrSegmentationPostprocessor

Contrat pour le post-traitement de la variante segmentation d'instance de RF-DETR.

RF-DETR-Seg produit trois tenseurs de sortie :

  • boxes [B, N, 4] — boîtes normalisées (cx, cy, w, h).
  • logits [B, N, C] — scores bruts de classe.
  • masks [B, N, H', W'] — masques basse résolution, à upsampler.

Le post-processeur :

  1. Filtre les détections valides (sigmoid > seuil, classe non blacklistée).
  2. Pour chaque détection retenue, applique sigmoid aux valeurs du masque correspondant.
  3. Upsample bilinéaire le masque de [H', W'] vers [origH, origW].
  4. Retourne un IInstanceSegmentation (boîte + masque float en [0, 1]).
Le masque est exposé comme float[] conforme à Mask. Pour obtenir un masque binaire, seuiller à 0.5.