ml.postprocessing.mediapipe — Google Mediapipe

Модуль ml.postprocessing.mediapipe содержит постпроцессоры для моделей Google Mediapipe.

class mediapipe_detection_postprocess – Универсальный детектор Mediapipe

Базовый класс, общий для BlazeFace и BlazePalm. Декодирует ограничивающие рамки и ключевые точки на основе опорных рамок, затем выполняет 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)

Создаёт универсальный постпроцессор обнаружения Mediapipe.

threshold Порог оценки, применяемый к необработанным логитам перед сигмоидой.

anchors Необязательный заранее построенный массив опорных рамок формы (N, 2), содержащий центры (cx, cy), нормализованные к [0, 1]. Если None, опорные рамки генерируются из anchor_grid.

anchor_grid Список кортежей (grid_size, scales), используемых для генерации опорных рамок, когда anchors равно None.

scores Список индексов выходов модели, содержащих тензоры оценок.

cords Список индексов выходов модели, содержащих тензоры рамок/ключевых точек.

nms_threshold Порог IoU для подавления немаксимумов.

nms_sigma Сигма для затухания оценок soft-NMS.

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

Выполняет постобработку выходов модели и возвращает список кортежей ((x, y, w, h), score, keypoints). Возвращает пустой кортеж (), когда ни одно обнаружение не превышает порог оценки.

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

Декодирует и добавляет ограничивающие рамки из одной выходной пары (score, cords) в предоставленный накопитель NMS.

class BlazeFace – Обнаружение лиц

Выполняет постобработку выхода модели BlazeFace.

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

Создаёт постпроцессор BlazeFace. Использует сетку опорных рамок [(16, 2), (8, 6)] с выходами оценок [1, 2] и выходами рамок [0, 3].

threshold Порог оценки для обнаружений.

anchors Необязательный заранее построенный массив опорных рамок; генерируется автоматически, если None.

nms_threshold Порог IoU для подавления немаксимумов.

nms_sigma Сигма для затухания оценок soft-NMS.

Возвращает список кортежей ((x, y, w, h), score, keypoints) из __call__, где keypoints — это список точек (x, y).

class BlazePalm – Обнаружение ладоней

Выполняет постобработку выхода модели BlazePalm.

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

Создаёт постпроцессор BlazePalm. Использует сетку опорных рамок [(24, 2), (12, 6)] с выходами оценок [0] и выходами рамок [1].

threshold Порог оценки для обнаружений.

anchors Необязательный заранее построенный массив опорных рамок; генерируется автоматически, если None.

nms_threshold Порог IoU для подавления немаксимумов.

nms_sigma Сигма для затухания оценок soft-NMS.

Возвращает список кортежей ((x, y, w, h), score, keypoints) из __call__, где keypoints — это список точек (x, y).

class FaceLandmarks – Точки лица

Выполняет постобработку выхода модели FaceLandmarks.

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

Создаёт постпроцессор FaceLandmarks.

threshold Порог оценки (после сигмоиды) для принятия обнаружения.

nms_threshold Порог IoU для подавления немаксимумов.

nms_sigma Сигма для затухания оценок soft-NMS.

Возвращает список кортежей ((x, y, w, h), score, keypoints) из __call__, где keypoints — это список точек (x, y, z).

class HandLandmarks – Точки руки

Выполняет постобработку выхода модели HandLandmarks.

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

Создаёт постпроцессор HandLandmarks.

threshold Порог оценки для принятия обнаружения.

nms_threshold Порог IoU для подавления немаксимумов.

nms_sigma Сигма для затухания оценок soft-NMS.

Возвращает [[((x, y, w, h), score, keypoints)]] из __call__, с одним внутренним списком на каждый класс принадлежности руки (левая=0, правая=1). keypoints — это список точек (x, y, z). Пустые списки классов сохраняются, чтобы индекс каждого списка соответствовал индексу класса.

class MoveNet – Оценка позы

Выполняет постобработку выхода модели MoveNet single-pose.

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

Создаёт постпроцессор MoveNet.

threshold Порог уверенности для каждой ключевой точки; ключевые точки ниже этого значения исключаются из ограничивающей рамки и средней оценки.

nms_threshold Порог IoU для подавления немаксимумов.

nms_sigma Сигма для затухания оценок soft-NMS.

Возвращает список кортежей ((x, y, w, h), score, keypoints) из __call__, где keypoints — это список точек (x, y, score) в координатах пикселей входа.