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.
thresholdaz észlelés megtartásához szükséges minimális pontszám.w_scalea 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_scalea 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_thresholda nem maximális elnyomásnak átadott IoU küszöbérték.nms_sigmaa 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.
thresholda doboz megtartásához szükséges minimális osztálypontszám a non-max-suppression előtt.nms_thresholda nem maximális elnyomásnak átadott IoU küszöbérték.nms_sigmaa 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)