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)