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.

threshold pontuação mínima exigida para que uma deteção seja mantida.

w_scale fator 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_scale fator 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_threshold Limiar IoU passado à supressão não-máxima.

nms_sigma valor 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.

threshold pontuação mínima de classe necessária para que uma caixa seja mantida antes da supressão de não-máximos.

nms_threshold Limiar IoU passado à supressão não-máxima.

nms_sigma valor 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)