ml.postprocessing.edgeimpulse — Edge Impulse#

Modul ml.postprocessing.edgeimpulse obsahuje třídy pro následné zpracování modelů Edge Impulse.

class Fomo – Fast Objects More Objects#

Následný procesor pro výstup modelu 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)#

Vytvoří následný procesor FOMO.

threshold minimální skóre vyžadované k zachování detekce.

w_scale horizontální měřítkový faktor uplatněný na šířku buňky mřížky před potlačením nemaxim (non-max-suppression). Větší hodnoty způsobí sloučení sousedních buněk do jedné detekce.

h_scale vertikální měřítkový faktor uplatněný na výšku buňky mřížky před potlačením nemaxim (non-max-suppression). Větší hodnoty způsobí sloučení sousedních buněk do jedné detekce.

nms_threshold práh IoU předaný potlačení nemaxim (non-max-suppression).

nms_sigma hodnota sigma předaná potlačení nemaxim (soft-NMS).

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

Vyvoláno funkcí ml.Model.predict() s modelem, jeho vstupy a jeho surovými výstupy. Vrací seznam seznamů detekcí po jednotlivých třídách. Každá detekce je n-tice ((x, y, w, h), score). Prázdné seznamy tříd jsou zahrnuty, takže pozice každého seznamu ve výstupu odpovídá indexu třídy ve výstupu modelu. Vrací prázdnou n-tici, pokud není nic detekováno.

class YoloPro – YOLO Pro#

Následný procesor pro výstup modelu detekce objektů Edge Impulse YOLO Pro. Modely YOLO Pro vydávají jeden řádek na každý kandidátní rámeček obsahující xmin, ymin, xmax, ymax (normalizované vůči vstupu) následované vektorem skóre pro jednotlivé třídy. Postup trénování takového modelu najdete v dokumentaci YOLO Pro.

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

Vytvoří následný procesor YOLO Pro.

threshold minimální skóre třídy vyžadované k zachování rámečku před potlačením nemaxim (non-max-suppression).

nms_threshold práh IoU předaný potlačení nemaxim (non-max-suppression).

nms_sigma hodnota sigma předaná potlačení nemaxim (soft-NMS).

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

Vyvoláno funkcí ml.Model.predict() s modelem, jeho vstupy a jeho surovými výstupy. Vrací seznam seznamů detekcí po jednotlivých třídách. Každá detekce je n-tice ((x, y, w, h), score) v souřadnicích ROI. Prázdné seznamy tříd jsou zahrnuty, takže pozice každého seznamu ve výstupu odpovídá indexu třídy ve výstupu modelu. Vrací prázdnou n-tici, pokud není nic detekováno.

Příklad:

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)