ml.postprocessing.edgeimpulse — Edge Impulse#
Modul ml.postprocessing.edgeimpulse obsahuje třídy pro následné zpracování modelů Edge Impulse.
class Fomo – Fast Objects More Objects#
Následný procesor pro výstup modelu 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)#
Vytvoří následný procesor FOMO.
thresholdminimální skóre vyžadované k zachování detekce.w_scalehorizontální měřítkový faktor uplatněný na šířku buňky mřížky před potlačením nemaxim (non-max-suppression). Větší hodnoty způsobí sloučení sousedních buněk do jedné detekce.h_scalevertikální měřítkový faktor uplatněný na výšku buňky mřížky před potlačením nemaxim (non-max-suppression). Větší hodnoty způsobí sloučení sousedních buněk do jedné detekce.nms_thresholdpráh IoU předaný potlačení nemaxim (non-max-suppression).nms_sigmahodnota sigma předaná potlačení nemaxim (soft-NMS).- __call__(model: ml.Model, inputs: list, outputs: list) list#
Vyvoláno funkcí
ml.Model.predict()s modelem, jeho vstupy a jeho surovými výstupy. Vrací seznam seznamů detekcí po jednotlivých třídách. Každá detekce je n-tice((x, y, w, h), score). Prázdné seznamy tříd jsou zahrnuty, takže pozice každého seznamu ve výstupu odpovídá indexu třídy ve výstupu modelu. Vrací prázdnou n-tici, pokud není nic detekováno.
class YoloPro – YOLO Pro#
Následný procesor pro výstup modelu detekce objektů Edge Impulse YOLO Pro. Modely YOLO Pro vydávají jeden řádek na každý kandidátní rámeček obsahující xmin, ymin, xmax, ymax (normalizované vůči vstupu) následované vektorem skóre pro jednotlivé třídy. Postup trénování takového modelu najdete v dokumentaci YOLO Pro.
- class ml.postprocessing.edgeimpulse.YoloPro(threshold: float = 0.6, nms_threshold: float = 0.1, nms_sigma: float = 0.1)#
Vytvoří následný procesor YOLO Pro.
thresholdminimální skóre třídy vyžadované k zachování rámečku před potlačením nemaxim (non-max-suppression).nms_thresholdpráh IoU předaný potlačení nemaxim (non-max-suppression).nms_sigmahodnota sigma předaná potlačení nemaxim (soft-NMS).- __call__(model: ml.Model, inputs: list, outputs: list) list#
Vyvoláno funkcí
ml.Model.predict()s modelem, jeho vstupy a jeho surovými výstupy. Vrací seznam seznamů detekcí po jednotlivých třídách. Každá detekce je n-tice((x, y, w, h), score)v souřadnicích ROI. Prázdné seznamy tříd jsou zahrnuty, takže pozice každého seznamu ve výstupu odpovídá indexu třídy ve výstupu modelu. Vrací prázdnou n-tici, pokud není nic detekováno.
Příklad:
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)