ml.postprocessing.mediapipe — Google Mediapipe

O módulo ml.postprocessing.mediapipe contém pós-processadores para modelos do Google Mediapipe.

classe mediapipe_detection_postprocess – Detector Mediapipe Genérico

Classe base compartilhada por BlazeFace e BlazePalm. Decodifica caixas delimitadoras e pontos-chave baseados em âncoras e, em seguida, executa 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)

Cria um pós-processador de detecção Mediapipe genérico.

threshold Limiar de pontuação aplicado aos logits brutos antes da sigmoide.

anchors Array de âncoras pré-construído opcional de formato (N, 2) contendo os centros (cx, cy) normalizados para [0, 1]. Se None, as âncoras são geradas a partir de anchor_grid.

anchor_grid Lista de tuplas (grid_size, scales) usadas para gerar âncoras quando anchors é None.

scores Lista de índices de saída do modelo que contêm tensores de pontuação.

cords Lista de índices de saída do modelo que contêm tensores de caixa/ponto-chave.

nms_threshold Limiar de IoU para a supressão não máxima.

nms_sigma Sigma para o decaimento de pontuação do soft-NMS.

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

Executa o pós-processamento nas saídas do modelo e retorna uma lista de tuplas ((x, y, w, h), score, keypoints). Retorna uma tupla vazia () quando nenhuma detecção ultrapassa o limiar de pontuação.

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 e adiciona caixas delimitadoras de um único par de saída (score, cords) ao acumulador NMS fornecido.

classe BlazeFace – Detecção de Faces

Pós-processa a saída do 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)

Cria um pós-processador BlazeFace. Usa uma grade de âncoras de [(16, 2), (8, 6)] com saídas de pontuação [1, 2] e saídas de caixa [0, 3].

threshold Limiar de pontuação para detecções.

anchors Array de âncoras pré-construído opcional; gerado automaticamente se None.

nms_threshold Limiar de IoU para a supressão não máxima.

nms_sigma Sigma para o decaimento de pontuação do soft-NMS.

Retorna uma lista de tuplas ((x, y, w, h), score, keypoints) a partir de __call__, onde keypoints é uma lista de pontos (x, y).

classe BlazePalm – Detecção de Palma

Pós-processa a saída do 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)

Cria um pós-processador BlazePalm. Usa uma grade de âncoras de [(24, 2), (12, 6)] com saídas de pontuação [0] e saídas de caixa [1].

threshold Limiar de pontuação para detecções.

anchors Array de âncoras pré-construído opcional; gerado automaticamente se None.

nms_threshold Limiar de IoU para a supressão não máxima.

nms_sigma Sigma para o decaimento de pontuação do soft-NMS.

Retorna uma lista de tuplas ((x, y, w, h), score, keypoints) a partir de __call__, onde keypoints é uma lista de pontos (x, y).

classe FaceLandmarks – Pontos de Referência Faciais

Pós-processa a saída do modelo FaceLandmarks.

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

Cria um pós-processador FaceLandmarks.

threshold Limiar de pontuação (após a sigmoide) para aceitar uma detecção.

nms_threshold Limiar de IoU para a supressão não máxima.

nms_sigma Sigma para o decaimento de pontuação do soft-NMS.

Retorna uma lista de tuplas ((x, y, w, h), score, keypoints) a partir de __call__, onde keypoints é uma lista de pontos (x, y, z).

classe HandLandmarks – Pontos de Referência das Mãos

Pós-processa a saída do modelo HandLandmarks.

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

Cria um pós-processador HandLandmarks.

threshold Limiar de pontuação para aceitar uma detecção.

nms_threshold Limiar de IoU para a supressão não máxima.

nms_sigma Sigma para o decaimento de pontuação do soft-NMS.

Retorna [[((x, y, w, h), score, keypoints)]] a partir de __call__, com uma lista interna por classe de lateralidade (esquerda=0, direita=1). keypoints é uma lista de pontos (x, y, z). Listas de classe vazias são preservadas para que o índice de cada lista corresponda ao índice de classe.

classe MoveNet – Estimativa de Pose

Pós-processa a saída do modelo de pose única MoveNet.

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

Cria um pós-processador MoveNet.

threshold Limiar de confiança por ponto-chave; pontos-chave abaixo deste valor são excluídos da caixa delimitadora e da pontuação média.

nms_threshold Limiar de IoU para a supressão não máxima.

nms_sigma Sigma para o decaimento de pontuação do soft-NMS.

Retorna uma lista de tuplas ((x, y, w, h), score, keypoints) a partir de __call__, onde keypoints é uma lista de pontos (x, y, score) em coordenadas de pixel da entrada.