ml.postprocessing.edgeimpulse — Edge Impulse#

De ml.postprocessing.edgeimpulse-module bevat nabewerkingsklassen voor Edge Impulse-modellen.

class Fomo – Fast Objects More Objects#

Nabewerker voor de uitvoer van FOMO-modellen (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)#

Maakt een FOMO-nabewerker aan.

threshold minimale score die vereist is om een detectie te behouden.

w_scale horizontale schaalfactor die wordt toegepast op de breedte van de rastercel vóór non-max-suppression. Grotere waarden zorgen ervoor dat naburige cellen worden samengevoegd tot één detectie.

h_scale verticale schaalfactor die wordt toegepast op de hoogte van de rastercel vóór non-max-suppression. Grotere waarden zorgen ervoor dat naburige cellen worden samengevoegd tot één detectie.

nms_threshold IoU-drempelwaarde die wordt doorgegeven aan non-max-suppression.

nms_sigma sigma-waarde die wordt doorgegeven aan non-max-suppression (soft-NMS).

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

Aangeroepen door ml.Model.predict() met het model, de invoer ervan en de ruwe uitvoer ervan. Retourneert een lijst met per-klasse detectielijsten. Elke detectie is een ((x, y, w, h), score)-tuple. Lege klasselijsten worden opgenomen zodat de positie van elke lijst in de uitvoer overeenkomt met de klasse-index in de model-uitvoer. Retourneert een lege tuple wanneer er niets wordt gedetecteerd.

class YoloPro – YOLO Pro#

Post-processor voor de uitvoer van Edge Impulse YOLO Pro-objectdetectiemodellen. YOLO Pro-modellen geven per kandidaatbox één rij met xmin, ymin, xmax, ymax (genormaliseerd naar de invoer), gevolgd door een scorevector per klasse. Zie de YOLO Pro-documentatie voor het trainen van zo’n model.

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

Maakt een YOLO Pro-post-processor aan.

threshold minimale klassescore die een box nodig heeft om vóór non-max-suppression behouden te blijven.

nms_threshold IoU-drempelwaarde die wordt doorgegeven aan non-max-suppression.

nms_sigma sigma-waarde die wordt doorgegeven aan non-max-suppression (soft-NMS).

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

Aangeroepen door ml.Model.predict() met het model, de invoer ervan en de ruwe uitvoer ervan. Retourneert een lijst met per-klasse detectielijsten. Elke detectie is een ((x, y, w, h), score)-tuple in ROI-coördinaten. Lege klasselijsten worden opgenomen zodat de positie van elke lijst in de uitvoer overeenkomt met de klasse-index in de modeluitvoer. Retourneert een lege tuple wanneer er niets wordt gedetecteerd.

Voorbeeld:

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)