ml.postprocessing.edgeimpulse — Edge Impulse#
Модуль ml.postprocessing.edgeimpulse содержит классы постобработки для моделей Edge Impulse.
class Fomo – Fast Objects More Objects#
Постпроцессор для выхода модели 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)#
Создаёт постпроцессор FOMO.
thresholdминимальная оценка, необходимая для сохранения обнаружения.w_scaleгоризонтальный масштабный коэффициент, применяемый к ширине ячейки сетки перед подавлением немаксимумов. Большие значения приводят к объединению соседних ячеек в одно обнаружение.h_scaleвертикальный масштабный коэффициент, применяемый к высоте ячейки сетки перед подавлением немаксимумов. Большие значения приводят к объединению соседних ячеек в одно обнаружение.nms_thresholdПорог IoU, передаваемый в подавление немаксимумов.nms_sigmaзначение сигмы, передаваемое в подавление немаксимумов (soft-NMS).- __call__(model: ml.Model, inputs: list, outputs: list) list#
Вызывается
ml.Model.predict()с моделью, её входами и её необработанными выходами. Возвращает список списков обнаружений по классам. Каждое обнаружение представляет собой кортеж((x, y, w, h), score). Пустые списки классов включаются, чтобы позиция каждого списка в выходе соответствовала индексу класса в выходе модели. Возвращает пустой кортеж, когда ничего не обнаружено.
class YoloPro – YOLO Pro#
Постпроцессор для выхода модели обнаружения объектов Edge Impulse YOLO Pro. Модели YOLO Pro выдают по одной строке на каждую кандидатную рамку, содержащей xmin, ymin, xmax, ymax (нормализованные к входу), за которыми следует вектор оценок по классам. О том, как обучить такую модель, см. документацию YOLO Pro.
- class ml.postprocessing.edgeimpulse.YoloPro(threshold: float = 0.6, nms_threshold: float = 0.1, nms_sigma: float = 0.1)#
Создаёт постпроцессор YOLO Pro.
thresholdминимальная оценка класса, необходимая для сохранения рамки до подавления немаксимумов.nms_thresholdПорог IoU, передаваемый в подавление немаксимумов.nms_sigmaзначение сигмы, передаваемое в подавление немаксимумов (soft-NMS).- __call__(model: ml.Model, inputs: list, outputs: list) list#
Вызывается
ml.Model.predict()с моделью, её входами и её необработанными выходами. Возвращает список списков обнаружений по классам. Каждое обнаружение – это кортеж((x, y, w, h), score)в координатах ROI. Пустые списки классов включаются, чтобы позиция каждого списка в выходе соответствовала индексу класса в выходе модели. Возвращает пустой кортеж, если ничего не обнаружено.
Пример:
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)