ml.postprocessing.mediapipe — Google Mediapipe

Le module ml.postprocessing.mediapipe contient des post-traitements pour les modèles Google Mediapipe.

class mediapipe_detection_postprocess – Détecteur Mediapipe générique

Classe de base partagée par BlazeFace et BlazePalm. Décode les boîtes englobantes et les points clés basés sur des ancres, puis effectue la NMS.

class ml.postprocessing.mediapipe.mediapipe_detection_postprocess(threshold: float = 0.6, anchors: ndarray | None = None, anchor_grid: list[tuple[int, int]] | None = None, scores: list[int] = [], cords: list[int] = [], nms_threshold: float = 0.1, nms_sigma: float = 0.1)

Crée un post-traitement de détection Mediapipe générique.

threshold Seuil de score appliqué aux logits bruts avant la sigmoïde.

anchors Tableau d’ancres pré-construit optionnel de forme (N, 2) contenant les centres (cx, cy) normalisés à [0, 1]. Si None, les ancres sont générées à partir d”anchor_grid.

anchor_grid Liste de tuples (grid_size, scales) utilisée pour générer les ancres lorsque anchors vaut None.

scores Liste des indices de sortie du modèle contenant les tenseurs de score.

cords Liste des indices de sortie du modèle contenant les tenseurs de boîte/points clés.

nms_threshold Seuil d’IoU pour la suppression des non-maxima.

nms_sigma Sigma pour la décroissance des scores en soft-NMS.

__call__(model: ml.Model, inputs: list, outputs: list) list

Exécute le post-traitement sur les sorties du modèle et renvoie une liste de tuples ((x, y, w, h), score, keypoints). Renvoie un tuple vide () lorsqu’aucune détection ne dépasse le seuil de score.

detection_post_process(ih: int, iw: int, nms: ml.utils.NMS, model: ml.Model, inputs: list, outputs: list, score_idx: int, cords_idx: int, t: float, anchors: ndarray) None

Décode et ajoute les boîtes englobantes d’une seule paire de sorties (score, cords) dans l’accumulateur NMS fourni.

class BlazeFace – Détection de visage

Post-traite la sortie du modèle BlazeFace.

class ml.postprocessing.mediapipe.BlazeFace(threshold: float = 0.6, anchors: ndarray | None = None, nms_threshold: float = 0.1, nms_sigma: float = 0.1)

Crée un post-traitement BlazeFace. Utilise une grille d’ancres [(16, 2), (8, 6)] avec les sorties de score [1, 2] et les sorties de boîte [0, 3].

threshold Seuil de score pour les détections.

anchors Tableau d’ancres pré-construit optionnel ; généré automatiquement si None.

nms_threshold Seuil d’IoU pour la suppression des non-maxima.

nms_sigma Sigma pour la décroissance des scores en soft-NMS.

Renvoie une liste de tuples ((x, y, w, h), score, keypoints) depuis __call__, où keypoints est une liste de points (x, y).

class BlazePalm – Détection de paume

Post-traite la sortie du modèle BlazePalm.

class ml.postprocessing.mediapipe.BlazePalm(threshold: float = 0.6, anchors: ndarray | None = None, nms_threshold: float = 0.1, nms_sigma: float = 0.1)

Crée un post-traitement BlazePalm. Utilise une grille d’ancres [(24, 2), (12, 6)] avec les sorties de score [0] et les sorties de boîte [1].

threshold Seuil de score pour les détections.

anchors Tableau d’ancres pré-construit optionnel ; généré automatiquement si None.

nms_threshold Seuil d’IoU pour la suppression des non-maxima.

nms_sigma Sigma pour la décroissance des scores en soft-NMS.

Renvoie une liste de tuples ((x, y, w, h), score, keypoints) depuis __call__, où keypoints est une liste de points (x, y).

class FaceLandmarks – Points caractéristiques du visage

Post-traite la sortie du modèle FaceLandmarks.

class ml.postprocessing.mediapipe.FaceLandmarks(threshold: float = 0.6, nms_threshold: float = 0.1, nms_sigma: float = 0.1)

Crée un post-traitement FaceLandmarks.

threshold Seuil de score (après sigmoïde) pour accepter une détection.

nms_threshold Seuil d’IoU pour la suppression des non-maxima.

nms_sigma Sigma pour la décroissance des scores en soft-NMS.

Renvoie une liste de tuples ((x, y, w, h), score, keypoints) depuis __call__, où keypoints est une liste de points (x, y, z).

class HandLandmarks – Points caractéristiques de la main

Post-traite la sortie du modèle HandLandmarks.

class ml.postprocessing.mediapipe.HandLandmarks(threshold: float = 0.6, nms_threshold: float = 0.1, nms_sigma: float = 0.1)

Crée un post-traitement HandLandmarks.

threshold Seuil de score pour accepter une détection.

nms_threshold Seuil d’IoU pour la suppression des non-maxima.

nms_sigma Sigma pour la décroissance des scores en soft-NMS.

Renvoie [[((x, y, w, h), score, keypoints)]] depuis __call__, avec une liste interne par classe de latéralité (gauche=0, droite=1). keypoints est une liste de points (x, y, z). Les listes de classes vides sont conservées afin que l’index de chaque liste corresponde à l’index de classe.

class MoveNet – Estimation de posture

Post-traite la sortie du modèle MoveNet à pose unique.

class ml.postprocessing.mediapipe.MoveNet(threshold: float = 0.6, nms_threshold: float = 0.1, nms_sigma: float = 0.1)

Crée un post-traitement MoveNet.

threshold Seuil de confiance par point clé ; les points clés en dessous de cette valeur sont exclus de la boîte englobante et du score moyen.

nms_threshold Seuil d’IoU pour la suppression des non-maxima.

nms_sigma Sigma pour la décroissance des scores en soft-NMS.

Renvoie une liste de tuples ((x, y, w, h), score, keypoints) depuis __call__, où keypoints est une liste de points (x, y, score) en coordonnées de pixels de l’entrée.