ml.postprocessing.edgeimpulse — Edge Impulse#

Модуль ml.postprocessing.edgeimpulse містить класи постобробки для моделей Edge Impulse.

class Fomo – Fast Objects More Objects#

Постпроцесор для вихідних даних моделі FOMO (Fast Objects More Objects).

class ml.postprocessing.edgeimpulse.Fomo(threshold: float = 0.4, w_scale: float = 1.414214, h_scale: float = 1.414214, nms_threshold: float = 0.1, nms_sigma: float = 0.001)#

Створює постпроцесор FOMO.

threshold мінімальна оцінка, необхідна для того, щоб виявлення було збережено.

w_scale горизонтальний коефіцієнт масштабування, що застосовується до ширини комірки сітки перед немаксимальним придушенням. Більші значення спричиняють об’єднання сусідніх комірок в одне виявлення.

h_scale вертикальний коефіцієнт масштабування, що застосовується до висоти комірки сітки перед немаксимальним придушенням. Більші значення спричиняють об’єднання сусідніх комірок в одне виявлення.

nms_threshold Поріг IoU, що передається до немаксимального придушення.

nms_sigma значення сигма, що передається до немаксимального придушення (soft-NMS).

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

Викликається ml.Model.predict() з моделлю, її входами та необробленими виходами. Повертає список посписних списків виявлень. Кожне виявлення є кортежем ((x, y, w, h), score). Порожні списки класів включаються, щоб позиція кожного списку у виході відповідала індексу класу у виході моделі. Повертає порожній кортеж, якщо нічого не виявлено.

class YoloPro – YOLO Pro#

Постпроцесор для виходу моделей виявлення об’єктів Edge Impulse YOLO Pro. Моделі YOLO Pro видають один рядок на кожну кандидатну рамку, що містить xmin, ymin, xmax, ymax (нормалізовані відносно входу), за якими йде вектор оцінок для кожного класу. Про навчання такої моделі дивіться в документації YOLO Pro.

class ml.postprocessing.edgeimpulse.YoloPro(threshold: float = 0.6, nms_threshold: float = 0.1, nms_sigma: float = 0.1)#

Створює постпроцесор YOLO Pro.

threshold мінімальна оцінка класу, необхідна для того, щоб рамку було збережено перед придушенням немаксимумів.

nms_threshold Поріг IoU, що передається до немаксимального придушення.

nms_sigma значення сигма, що передається до немаксимального придушення (soft-NMS).

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

Викликається ml.Model.predict() з моделлю, її входами та необробленими виходами. Повертає список посписних списків виявлень. Кожне виявлення є кортежем ((x, y, w, h), score) у координатах ROI. Порожні списки класів включаються, щоб позиція кожного списку у виході відповідала індексу класу у виході моделі. Повертає порожній кортеж, якщо нічого не виявлено.

Приклад:

import csi
import ml
from ml.postprocessing.edgeimpulse import YoloPro

csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(csi.RGB565)
csi0.framesize(csi.VGA)

model = ml.Model("/rom/<model_file_name>", postprocess=YoloPro(threshold=0.4))

while True:
    img = csi0.snapshot()
    for i, detections in enumerate(model.predict([img])):
        for (x, y, w, h), score in detections:
            img.draw_rectangle(x, y, w, h)
            print(model.labels[i], score)