ml.postprocessing.edgeimpulse — Edge Impulse#

A ml.postprocessing.edgeimpulse modul az Edge Impulse modellekhez tartalmaz utófeldolgozó osztályokat.

class Fomo – Fast Objects More Objects#

Utófeldolgozó a FOMO (Fast Objects More Objects) modell kimenetéhez.

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

Létrehoz egy FOMO utófeldolgozót.

threshold az észlelés megtartásához szükséges minimális pontszám.

w_scale a rácscella szélességére a nem maximális elnyomás előtt alkalmazott vízszintes skálázási tényező. A nagyobb értékek hatására a szomszédos cellák egyetlen észleléssé olvadnak össze.

h_scale a rácscella magasságára a nem maximális elnyomás előtt alkalmazott függőleges skálázási tényező. A nagyobb értékek hatására a szomszédos cellák egyetlen észleléssé olvadnak össze.

nms_threshold a nem maximális elnyomásnak átadott IoU küszöbérték.

nms_sigma a nem maximális elnyomásnak (soft-NMS) átadott szigma érték.

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

A ml.Model.predict() hívja meg a modellel, annak bemeneteivel és nyers kimeneteivel. Visszaad egy osztályonkénti észlelési listákból álló listát. Minden észlelés egy ((x, y, w, h), score) tuple. Az üres osztálylisták is szerepelnek benne, így a kimenetben minden lista pozíciója megfelel a modell kimenetében szereplő osztályindexnek. Üres tuple-t ad vissza, ha semmi sem kerül észlelésre.

class YoloPro – YOLO Pro#

Utófeldolgozó az Edge Impulse YOLO Pro objektumészlelő modellek kimenetéhez. A YOLO Pro modellek jelölt dobozonként egy sort adnak ki, amely az xmin, ymin, xmax, ymax értékeket (a bemenetre normalizálva), majd egy osztályonkénti pontszámvektort tartalmaz. Ilyen modell tanításához lásd a YOLO Pro dokumentációt.

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

Létrehoz egy YOLO Pro utófeldolgozót.

threshold a doboz megtartásához szükséges minimális osztálypontszám a non-max-suppression előtt.

nms_threshold a nem maximális elnyomásnak átadott IoU küszöbérték.

nms_sigma a nem maximális elnyomásnak (soft-NMS) átadott szigma érték.

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

A ml.Model.predict() hívja meg a modellel, annak bemeneteivel és nyers kimeneteivel. Visszaad egy osztályonkénti észlelési listákból álló listát. Minden észlelés egy ((x, y, w, h), score) tuple ROI-koordinátákban. Az üres osztálylisták is szerepelnek benne, így a kimenetben minden lista pozíciója megfelel a modell kimenetében szereplő osztályindexnek. Üres tuple-t ad vissza, ha semmi sem kerül észlelésre.

Példa:

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)