ml.postprocessing.mediapipe — Google Mediapipe

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

class mediapipe_detection_postprocess – Detetor Mediapipe Genérico

Classe base partilhada por BlazeFace e BlazePalm. Descodifica caixas delimitadoras e pontos-chave baseados em âncoras e 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)

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

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

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

anchor_grid Lista de tuplos (grid_size, scales) usados 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 IoU para supressão não-máxima.

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

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

Executa o pós-processamento nas saídas do modelo e devolve uma lista de tuplos ((x, y, w, h), score, keypoints). Devolve um tuplo vazio () quando nenhuma deteçã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

Descodifica e adiciona caixas delimitadoras de um único par de saídas (score, cords) no acumulador NMS fornecido.

class BlazeFace – Deteçã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. Utiliza uma grelha 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 deteções.

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

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

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

Devolve uma lista de tuplos ((x, y, w, h), score, keypoints) de __call__, onde keypoints é uma lista de pontos (x, y).

class BlazePalm – Deteçã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. Utiliza uma grelha 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 deteções.

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

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

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

Devolve uma lista de tuplos ((x, y, w, h), score, keypoints) de __call__, onde keypoints é uma lista de pontos (x, y).

class FaceLandmarks – Marcos 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 sigmoid) para aceitar uma deteção.

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

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

Devolve uma lista de tuplos ((x, y, w, h), score, keypoints) de __call__, onde keypoints é uma lista de pontos (x, y, z).

class HandLandmarks – Marcos da Mão

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 deteção.

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

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

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

class MoveNet – Estimativa de Pose

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

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 IoU para supressão não-máxima.

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

Devolve uma lista de tuplos ((x, y, w, h), score, keypoints) de __call__, onde keypoints é uma lista de pontos (x, y, score) em coordenadas de pixel de entrada.