ml.postprocessing.edgeimpulse — Edge Impulse#

Modul ml.postprocessing.edgeimpulse sadrži klase za naknadnu obradu Edge Impulse modela.

klasa Fomo – Fast Objects More Objects#

Naknadni obrađivač za izlaz FOMO (Fast Objects More Objects) modela.

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)#

Stvara FOMO naknadni obrađivač.

threshold minimalni rezultat potreban da bi se detekcija zadržala.

w_scale horizontalni faktor skaliranja primijenjen na širinu ćelije mreže prije potiskivanja nemaksimuma. Veće vrijednosti uzrokuju spajanje susjednih ćelija u jednu detekciju.

h_scale vertikalni faktor skaliranja primijenjen na visinu ćelije mreže prije potiskivanja nemaksimuma. Veće vrijednosti uzrokuju spajanje susjednih ćelija u jednu detekciju.

nms_threshold IoU prag predan potiskivanju nemaksimuma.

nms_sigma sigma vrijednost predana potiskivanju nemaksimuma (soft-NMS).

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

Poziva ga ml.Model.predict() s modelom, njegovim ulazima i njegovim sirovim izlazima. Vraća popis popisa detekcija po klasi. Svaka je detekcija n-torka ((x, y, w, h), score). Prazni popisi klasa uključeni su kako bi položaj svakog popisa u izlazu odgovarao indeksu klase u izlazu modela. Vraća praznu n-torku kada se ništa ne detektira.

klasa YoloPro – YOLO Pro#

Naknadni obrađivač za izlaz Edge Impulse YOLO Pro modela za detekciju objekata. YOLO Pro modeli daju jedan redak po kandidatskom okviru koji sadrži xmin, ymin, xmax, ymax (normalizirano na ulaz), nakon čega slijedi vektor rezultata po klasi. Za treniranje takvog modela pogledajte dokumentaciju YOLO Pro.

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

Stvara YOLO Pro naknadni obrađivač.

threshold minimalni rezultat klase potreban da bi se okvir zadržao prije potiskivanja nemaksimuma (non-max-suppression).

nms_threshold IoU prag predan potiskivanju nemaksimuma.

nms_sigma sigma vrijednost predana potiskivanju nemaksimuma (soft-NMS).

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

Poziva ga ml.Model.predict() s modelom, njegovim ulazima i njegovim sirovim izlazima. Vraća popis popisa detekcija po klasi. Svaka je detekcija n-torka ((x, y, w, h), score) u ROI koordinatama. Prazni popisi klasa uključeni su kako bi položaj svakog popisa u izlazu odgovarao indeksu klase u izlazu modela. Vraća praznu n-torku kada se ništa ne detektira.

Primjer:

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)