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#

معالجة لاحقة لمخرجات نموذج كشف الكائنات YOLO Pro من Edge Impulse. تُصدر نماذج 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 الحد الأدنى لدرجة الفئة المطلوب للاحتفاظ بصندوق ما قبل كبت غير الحد الأقصى (non-max-suppression).

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)