ml.postprocessing.edgeimpulse — Edge Impulse#
O módulo ml.postprocessing.edgeimpulse contém classes de pós-processamento para modelos Edge Impulse.
class Fomo – Fast Objects More Objects#
Pós-processador para a saída do 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)#
Cria um pós-processador FOMO.
thresholdpontuação mínima exigida para que uma deteção seja mantida.w_scalefator de escala horizontal aplicado à largura da célula da grelha antes da supressão não-máxima. Valores maiores fazem com que células vizinhas sejam fundidas numa única deteção.h_scalefator de escala vertical aplicado à altura da célula da grelha antes da supressão não-máxima. Valores maiores fazem com que células vizinhas sejam fundidas numa única deteção.nms_thresholdLimiar IoU passado à supressão não-máxima.nms_sigmavalor sigma passado à supressão não-máxima (soft-NMS).- __call__(model: ml.Model, inputs: list, outputs: list) list#
Invocado por
ml.Model.predict()com o modelo, as suas entradas e as suas saídas brutas. Devolve uma lista de listas de deteções por classe. Cada deteção é um tuplo((x, y, w, h), score). As listas de classes vazias são incluídas para que a posição de cada lista na saída corresponda ao índice de classe na saída do modelo. Devolve um tuplo vazio quando nada é detetado.
class YoloPro – YOLO Pro#
Pós-processador para a saída de modelos de deteção de objetos YOLO Pro da Edge Impulse. Os modelos YOLO Pro emitem uma linha por caixa candidata contendo xmin, ymin, xmax, ymax (normalizados em relação à entrada), seguidos de um vetor de pontuações por classe. Consulte a documentação do YOLO Pro para treinar um modelo deste tipo.
- class ml.postprocessing.edgeimpulse.YoloPro(threshold: float = 0.6, nms_threshold: float = 0.1, nms_sigma: float = 0.1)#
Cria um pós-processador YOLO Pro.
thresholdpontuação mínima de classe necessária para que uma caixa seja mantida antes da supressão de não-máximos.nms_thresholdLimiar IoU passado à supressão não-máxima.nms_sigmavalor sigma passado à supressão não-máxima (soft-NMS).- __call__(model: ml.Model, inputs: list, outputs: list) list#
Invocado por
ml.Model.predict()com o modelo, as suas entradas e as suas saídas em bruto. Devolve uma lista de listas de deteções por classe. Cada deteção é um tuplo((x, y, w, h), score)em coordenadas da ROI. As listas de classes vazias são incluídas para que a posição de cada lista na saída corresponda ao índice da classe na saída do modelo. Devolve um tuplo vazio quando nada é detetado.
Exemplo:
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)