ml.postprocessing.mediapipe — Google Mediapipe

El módulo ml.postprocessing.mediapipe contiene posprocesadores para modelos de Google Mediapipe.

class mediapipe_detection_postprocess – Detector genérico de Mediapipe

Clase base compartida por BlazeFace y BlazePalm. Decodifica cuadros delimitadores y puntos clave basados en anclas, y luego realiza 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)

Crea un posprocesador de detección genérico de Mediapipe.

threshold Umbral de puntuación aplicado a los logits sin procesar antes de la función sigmoide.

anchors Matriz de anclas preconstruida opcional de forma (N, 2) que contiene centros (cx, cy) normalizados a [0, 1]. Si es None, las anclas se generan a partir de anchor_grid.

anchor_grid Lista de tuplas (grid_size, scales) usadas para generar anclas cuando anchors es None.

scores Lista de índices de salida del modelo que contienen tensores de puntuación.

cords Lista de índices de salida del modelo que contienen tensores de cuadros/puntos clave.

nms_threshold Umbral de IoU para la supresión de no máximos.

nms_sigma Sigma para la atenuación de puntuación de soft-NMS.

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

Ejecuta el posprocesamiento de las salidas del modelo y devuelve una lista de tuplas ((x, y, w, h), score, keypoints). Devuelve una tupla vacía () cuando ninguna detección supera el umbral de puntuación.

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

Decodifica y agrega cuadros delimitadores de un solo par de salida (score, cords) al acumulador NMS proporcionado.

class BlazeFace – Detección de rostros

Posprocesa la salida del modelo BlazeFace.

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

Crea un posprocesador BlazeFace. Usa una cuadrícula de anclas de [(16, 2), (8, 6)] con salidas de puntuación [1, 2] y salidas de cuadros [0, 3].

threshold Umbral de puntuación para las detecciones.

anchors Matriz de anclas preconstruida opcional; se genera automáticamente si es None.

nms_threshold Umbral de IoU para la supresión de no máximos.

nms_sigma Sigma para la atenuación de puntuación de soft-NMS.

Devuelve una lista de tuplas ((x, y, w, h), score, keypoints) de __call__, donde keypoints es una lista de puntos (x, y).

class BlazePalm – Detección de palmas

Posprocesa la salida del modelo BlazePalm.

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

Crea un posprocesador BlazePalm. Usa una cuadrícula de anclas de [(24, 2), (12, 6)] con salidas de puntuación [0] y salidas de cuadros [1].

threshold Umbral de puntuación para las detecciones.

anchors Matriz de anclas preconstruida opcional; se genera automáticamente si es None.

nms_threshold Umbral de IoU para la supresión de no máximos.

nms_sigma Sigma para la atenuación de puntuación de soft-NMS.

Devuelve una lista de tuplas ((x, y, w, h), score, keypoints) de __call__, donde keypoints es una lista de puntos (x, y).

class FaceLandmarks – Puntos faciales

Posprocesa la salida del modelo FaceLandmarks.

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

Crea un posprocesador FaceLandmarks.

threshold Umbral de puntuación (después de la función sigmoide) para aceptar una detección.

nms_threshold Umbral de IoU para la supresión de no máximos.

nms_sigma Sigma para la atenuación de puntuación de soft-NMS.

Devuelve una lista de tuplas ((x, y, w, h), score, keypoints) de __call__, donde keypoints es una lista de puntos (x, y, z).

class HandLandmarks – Puntos de la mano

Posprocesa la salida del modelo HandLandmarks.

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

Crea un posprocesador HandLandmarks.

threshold Umbral de puntuación para aceptar una detección.

nms_threshold Umbral de IoU para la supresión de no máximos.

nms_sigma Sigma para la atenuación de puntuación de soft-NMS.

Devuelve [[((x, y, w, h), score, keypoints)]] de __call__, con una lista interna por cada clase de lateralidad (izquierda=0, derecha=1). keypoints es una lista de puntos (x, y, z). Las listas de clase vacías se conservan para que el índice de cada lista coincida con el índice de clase.

class MoveNet – Estimación de pose

Posprocesa la salida del modelo de pose única MoveNet.

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

Crea un posprocesador MoveNet.

threshold Umbral de confianza por punto clave; los puntos clave por debajo de este valor se excluyen del cuadro delimitador y de la puntuación media.

nms_threshold Umbral de IoU para la supresión de no máximos.

nms_sigma Sigma para la atenuación de puntuación de soft-NMS.

Devuelve una lista de tuplas ((x, y, w, h), score, keypoints) de __call__, donde keypoints es una lista de puntos (x, y, score) en coordenadas de píxel de entrada.