ml.postprocessing.edgeimpulse — Edge Impulse#
Modulul ml.postprocessing.edgeimpulse conține clase de post-procesare pentru modelele Edge Impulse.
class Fomo – Fast Objects More Objects#
Post-procesor pentru ieșirea modelului 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)#
Creează un post-procesor FOMO.
thresholdscorul minim necesar pentru ca o detectare să fie păstrată.w_scalefactorul de scalare orizontal aplicat lățimii celulei de grilă înainte de suprimarea non-maximelor. Valorile mai mari determină fuzionarea celulelor vecine într-o singură detectare.h_scalefactorul de scalare vertical aplicat înălțimii celulei de grilă înainte de suprimarea non-maximelor. Valorile mai mari determină fuzionarea celulelor vecine într-o singură detectare.nms_thresholdpragul IoU transmis suprimării non-maximelor.nms_sigmavaloarea sigma transmisă suprimării non-maximelor (soft-NMS).- __call__(model: ml.Model, inputs: list, outputs: list) list#
Apelat de
ml.Model.predict()cu modelul, intrările sale și ieșirile sale brute. Returnează o listă de liste de detectare per clasă. Fiecare detectare este un tuplu((x, y, w, h), score). Listele de clasă goale sunt incluse astfel încât poziția fiecărei liste în ieșire să corespundă indicelui de clasă din ieșirea modelului. Returnează un tuplu gol când nu este detectat nimic.
class YoloPro – YOLO Pro#
Post-procesor pentru ieșirea modelelor Edge Impulse YOLO Pro de detectare a obiectelor. Modelele YOLO Pro emit câte un rând pentru fiecare casetă candidată, conținând xmin, ymin, xmax, ymax (normalizate la intrare) urmate de un vector de scoruri per clasă. Consultați documentația YOLO Pro pentru antrenarea unui astfel de model.
- class ml.postprocessing.edgeimpulse.YoloPro(threshold: float = 0.6, nms_threshold: float = 0.1, nms_sigma: float = 0.1)#
Creează un post-procesor YOLO Pro.
thresholdscorul minim de clasă necesar pentru ca o casetă să fie păstrată înainte de suprimarea non-maximelor.nms_thresholdpragul IoU transmis suprimării non-maximelor.nms_sigmavaloarea sigma transmisă suprimării non-maximelor (soft-NMS).- __call__(model: ml.Model, inputs: list, outputs: list) list#
Apelat de
ml.Model.predict()cu modelul, intrările sale și ieșirile sale brute. Returnează o listă de liste de detectare per clasă. Fiecare detectare este un tuplu((x, y, w, h), score)în coordonate ROI. Listele de clasă goale sunt incluse astfel încât poziția fiecărei liste în ieșire să corespundă indicelui de clasă din ieșirea modelului. Returnează un tuplu gol când nu este detectat nimic.
Exemplu:
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)