ml.postprocessing.edgeimpulse — Edge Impulse#

המודול ml.postprocessing.edgeimpulse מכיל מחלקות לעיבוד מאוחר עבור מודלים של Edge Impulse.

class Fomo – Fast Objects More Objects#

מבצע עיבוד מאוחר עבור פלט מודל 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)#

יוצר מבצע עיבוד מאוחר של FOMO.

threshold הציון המינימלי הנדרש כדי שזיהוי יישמר.

w_scale גורם סקאלה אופקי המוחל על רוחב תא הרשת לפני דיכוי הלא-מקסימום. ערכים גדולים יותר גורמים למיזוג תאים שכנים לכדי זיהוי יחיד.

h_scale גורם סקאלה אנכי המוחל על גובה תא הרשת לפני דיכוי הלא-מקסימום. ערכים גדולים יותר גורמים למיזוג תאים שכנים לכדי זיהוי יחיד.

nms_threshold סף IoU המועבר לדיכוי הלא-מקסימום.

nms_sigma ערך סיגמא המועבר לדיכוי הלא-מקסימום (soft-NMS).

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

נקרא על ידי ml.Model.predict() עם המודל, הקלטים שלו והפלטים הגולמיים שלו. מחזיר רשימה של רשימות זיהוי לכל מחלקה. כל זיהוי הוא tuple מסוג ((x, y, w, h), score). רשימות מחלקה ריקות נכללות כך שמיקום כל רשימה בפלט תואם לאינדקס המחלקה בפלט המודל. מחזיר tuple ריק כאשר דבר אינו מזוהה.

class YoloPro – YOLO Pro#

מבצע עיבוד מאוחר עבור פלט מודל זיהוי עצמים YOLO Pro של Edge Impulse. מודלי YOLO Pro פולטים שורה אחת לכל תיבה מועמדת, המכילה xmin, ymin, xmax, ymax (מנורמלים לקלט) ואחריהם וקטור ציונים לכל מחלקה. ראו את התיעוד של YOLO Pro לאימון מודל כזה.

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

יוצר מבצע עיבוד מאוחר של YOLO Pro.

threshold ציון המחלקה המינימלי הנדרש כדי שתיבה תישמר לפני דיכוי הלא-מקסימום.

nms_threshold סף IoU המועבר לדיכוי הלא-מקסימום.

nms_sigma ערך סיגמא המועבר לדיכוי הלא-מקסימום (soft-NMS).

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

נקרא על ידי ml.Model.predict() עם המודל, הקלטים שלו והפלטים הגולמיים שלו. מחזיר רשימה של רשימות זיהוי לכל מחלקה. כל זיהוי הוא tuple מסוג ((x, y, w, h), score) בקואורדינטות ROI. רשימות מחלקה ריקות נכללות כך שמיקום כל רשימה בפלט תואם לאינדקס המחלקה בפלט המודל. מחזיר tuple ריק כאשר דבר אינו מזוהה.

דוגמה:

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)