ml.postprocessing.edgeimpulse --- Edge Impulse#

Module ml.postprocessing.edgeimpulse chứa các lớp xử lý hậu kỳ cho các mô hình Edge Impulse.

class Fomo -- Fast Objects More Objects#

Bộ xử lý hậu kỳ cho đầu ra của mô hình 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)#

Tạo một bộ xử lý hậu kỳ FOMO.

threshold điểm số tối thiểu yêu cầu để một phát hiện được giữ lại.

w_scale hệ số tỷ lệ ngang được áp dụng cho chiều rộng ô lưới trước khi thực hiện non-max-suppression. Giá trị lớn hơn khiến các ô lân cận được hợp nhất thành một phát hiện duy nhất.

h_scale hệ số tỷ lệ dọc được áp dụng cho chiều cao ô lưới trước khi thực hiện non-max-suppression. Giá trị lớn hơn khiến các ô lân cận được hợp nhất thành một phát hiện duy nhất.

nms_threshold Ngưỡng IoU được truyền vào non-max-suppression.

nms_sigma giá trị sigma được truyền vào non-max-suppression (soft-NMS).

__call__(model: ml.Model, inputs: list, outputs: list) → list#

Được gọi bởi ml.Model.predict() với mô hình, các đầu vào và các đầu ra thô của nó. Trả về danh sách các danh sách phát hiện theo từng lớp. Mỗi phát hiện là một tuple ((x, y, w, h), score). Các danh sách lớp rỗng được bao gồm để vị trí của mỗi danh sách trong đầu ra khớp với chỉ số lớp trong đầu ra của mô hình. Trả về tuple rỗng khi không phát hiện được gì.

class YoloPro -- YOLO Pro#

Bộ xử lý hậu kỳ cho đầu ra của mô hình phát hiện đối tượng YOLO Pro của Edge Impulse. Các mô hình YOLO Pro xuất ra một hàng cho mỗi hộp ứng viên chứa xmin, ymin, xmax, ymax (đã chuẩn hóa theo đầu vào) theo sau là một vector điểm số theo từng lớp. Xem tài liệu YOLO Pro để huấn luyện một mô hình như vậy.

class ml.postprocessing.edgeimpulse.YoloPro(threshold: float = 0.6, nms_threshold: float = 0.1, nms_sigma: float = 0.1)#

Tạo một bộ xử lý hậu kỳ YOLO Pro.

threshold điểm số lớp tối thiểu yêu cầu để một hộp được giữ lại trước bước non-max-suppression.

nms_threshold Ngưỡng IoU được truyền vào non-max-suppression.

nms_sigma giá trị sigma được truyền vào non-max-suppression (soft-NMS).

__call__(model: ml.Model, inputs: list, outputs: list) → list#

Được ml.Model.predict() gọi với mô hình, các đầu vào và đầu ra thô của nó. Trả về một danh sách các danh sách phát hiện theo từng lớp. Mỗi phát hiện là một tuple ((x, y, w, h), score) theo tọa độ ROI. Các danh sách lớp rỗng vẫn được đưa vào để vị trí của mỗi danh sách trong đầu ra khớp với chỉ số lớp trong đầu ra của mô hình. Trả về một tuple rỗng khi không phát hiện được gì.

Ví dụ:

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)