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 для однієї пози.

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) у координатах пікселів вхідного зображення.