ml.postprocessing.edgeimpulse — Edge Impulse#
Modulen ml.postprocessing.edgeimpulse innehåller efterbehandlingsklasser för Edge Impulse-modeller.
class Fomo – Fast Objects More Objects#
Efterbehandlare för utdata från FOMO-modeller (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)#
Skapar en FOMO-efterbehandlare.
thresholdlägsta poäng som krävs för att en detektering ska behållas.w_scalehorisontell skalfaktor som tillämpas på rutnätscellens bredd före icke-maximumsupprimering. Större värden gör att intilliggande celler slås samman till en enda detektering.h_scalevertikal skalfaktor som tillämpas på rutnätscellens höjd före icke-maximumsupprimering. Större värden gör att intilliggande celler slås samman till en enda detektering.nms_thresholdIoU-tröskelvärde som skickas till icke-maximumsupprimering.nms_sigmasigma-värde som skickas till icke-maximumsupprimering (soft-NMS).- __call__(model: ml.Model, inputs: list, outputs: list) list#
Anropas av
ml.Model.predict()med modellen, dess indata och dess råa utdata. Returnerar en lista med detekteringslistor per klass. Varje detektering är en((x, y, w, h), score)-tupel. Tomma klasslistor inkluderas så att varje listas position i utdata matchar klassindexet i modellens utdata. Returnerar en tom tupel när inget detekteras.
class YoloPro – YOLO Pro#
Efterbehandlare för utdata från Edge Impulse YOLO Pro-modeller för objektdetektering. YOLO Pro-modeller ger en rad per kandidatruta som innehåller xmin, ymin, xmax, ymax (normaliserade till indata) följt av en poängvektor per klass. Se YOLO Pro-dokumentationen för hur man tränar en sådan modell.
- class ml.postprocessing.edgeimpulse.YoloPro(threshold: float = 0.6, nms_threshold: float = 0.1, nms_sigma: float = 0.1)#
Skapar en YOLO Pro-efterbehandlare.
thresholdlägsta klasspoäng som krävs för att en ruta ska behållas före non-max-suppression.nms_thresholdIoU-tröskelvärde som skickas till icke-maximumsupprimering.nms_sigmasigma-värde som skickas till icke-maximumsupprimering (soft-NMS).- __call__(model: ml.Model, inputs: list, outputs: list) list#
Anropas av
ml.Model.predict()med modellen, dess indata och dess råa utdata. Returnerar en lista med detekteringslistor per klass. Varje detektering är en((x, y, w, h), score)-tupel i ROI-koordinater. Tomma klasslistor inkluderas så att varje listas position i utdata matchar klassindexet i modellens utdata. Returnerar en tom tupel när inget detekteras.
Exempel:
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)