ml.postprocessing.edgeimpulse — Edge Impulse#
El módulo ml.postprocessing.edgeimpulse contiene clases de posprocesamiento para modelos de Edge Impulse.
class Fomo – Fast Objects More Objects#
Posprocesador para la salida del modelo 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)#
Crea un posprocesador FOMO.
thresholdpuntuación mínima requerida para que se conserve una detección.w_scalefactor de escala horizontal aplicado al ancho de la celda de la cuadrícula antes de la supresión de no máximos. Valores más grandes hacen que las celdas vecinas se fusionen en una sola detección.h_scalefactor de escala vertical aplicado a la altura de la celda de la cuadrícula antes de la supresión de no máximos. Valores más grandes hacen que las celdas vecinas se fusionen en una sola detección.nms_thresholdumbral de IoU pasado a la supresión de no máximos.nms_sigmavalor sigma pasado a la supresión de no máximos (soft-NMS).- __call__(model: ml.Model, inputs: list, outputs: list) list#
Llamado por
ml.Model.predict()con el modelo, sus entradas y sus salidas sin procesar. Devuelve una lista de listas de detección por clase. Cada detección es una tupla((x, y, w, h), score). Las listas de clase vacías se incluyen para que la posición de cada lista en la salida coincida con el índice de clase en la salida del modelo. Devuelve una tupla vacía cuando no se detecta nada.
class YoloPro – YOLO Pro#
Posprocesador para la salida de los modelos de detección de objetos YOLO Pro de Edge Impulse. Los modelos YOLO Pro emiten una fila por cada caja candidata que contiene xmin, ymin, xmax, ymax (normalizados respecto a la entrada) seguidos de un vector de puntuaciones por clase. Consulte la documentación de YOLO Pro para entrenar un modelo de este tipo.
- class ml.postprocessing.edgeimpulse.YoloPro(threshold: float = 0.6, nms_threshold: float = 0.1, nms_sigma: float = 0.1)#
Crea un posprocesador YOLO Pro.
thresholdpuntuación de clase mínima requerida para que se conserve una caja antes de la supresión de no máximos.nms_thresholdumbral de IoU pasado a la supresión de no máximos.nms_sigmavalor sigma pasado a la supresión de no máximos (soft-NMS).- __call__(model: ml.Model, inputs: list, outputs: list) list#
Llamado por
ml.Model.predict()con el modelo, sus entradas y sus salidas sin procesar. Devuelve una lista de listas de detecciones por clase. Cada detección es una tupla((x, y, w, h), score)en coordenadas del ROI. Se incluyen las listas de clases vacías para que la posición de cada lista en la salida coincida con el índice de la clase en la salida del modelo. Devuelve una tupla vacía cuando no se detecta nada.
Ejemplo:
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)