ml.postprocessing.edgeimpulse — Edge Impulse#
Le module ml.postprocessing.edgeimpulse contient des classes de post-traitement pour les modèles Edge Impulse.
class Fomo – Fast Objects More Objects#
Post-traitement pour la sortie du modèle 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)#
Crée un post-traitement FOMO.
thresholdscore minimum requis pour qu’une détection soit conservée.w_scalefacteur d’échelle horizontal appliqué à la largeur de la cellule de grille avant la suppression des non-maxima. Des valeurs plus grandes provoquent la fusion des cellules voisines en une seule détection.h_scalefacteur d’échelle vertical appliqué à la hauteur de la cellule de grille avant la suppression des non-maxima. Des valeurs plus grandes provoquent la fusion des cellules voisines en une seule détection.nms_thresholdseuil d’IoU transmis à la suppression des non-maxima.nms_sigmavaleur sigma transmise à la suppression des non-maxima (soft-NMS).- __call__(model: ml.Model, inputs: list, outputs: list) list#
Invoqué par
ml.Model.predict()avec le modèle, ses entrées et ses sorties brutes. Renvoie une liste de listes de détections par classe. Chaque détection est un tuple((x, y, w, h), score). Les listes de classes vides sont incluses afin que la position de chaque liste dans la sortie corresponde à l’index de classe dans la sortie du modèle. Renvoie un tuple vide lorsque rien n’est détecté.
class YoloPro – YOLO Pro#
Post-traitement pour la sortie des modèles de détection d’objets YOLO Pro d’Edge Impulse. Les modèles YOLO Pro émettent une ligne par boîte candidate contenant xmin, ymin, xmax, ymax (normalisés par rapport à l’entrée) suivis d’un vecteur de scores par classe. Consultez la documentation YOLO Pro pour entraîner un tel modèle.
- class ml.postprocessing.edgeimpulse.YoloPro(threshold: float = 0.6, nms_threshold: float = 0.1, nms_sigma: float = 0.1)#
Crée un post-traitement YOLO Pro.
thresholdscore de classe minimum requis pour qu’une boîte soit conservée avant la suppression des non-maxima.nms_thresholdseuil d’IoU transmis à la suppression des non-maxima.nms_sigmavaleur sigma transmise à la suppression des non-maxima (soft-NMS).- __call__(model: ml.Model, inputs: list, outputs: list) list#
Invoqué par
ml.Model.predict()avec le modèle, ses entrées et ses sorties brutes. Renvoie une liste de listes de détections par classe. Chaque détection est un tuple((x, y, w, h), score)en coordonnées ROI. Les listes de classes vides sont incluses afin que la position de chaque liste dans la sortie corresponde à l’indice de classe dans la sortie du modèle. Renvoie un tuple vide lorsque rien n’est détecté.
Exemple
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)