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ค่า score ขั้นต่ำที่จำเป็นเพื่อให้การตรวจจับผ่านการกรองw_scaleตัวคูณ scale แนวนอนที่ใช้กับความกว้างของเซลล์กริดก่อน non-max-suppression ค่าที่มากขึ้นทำให้เซลล์ใกล้เคียงถูกรวมเป็นการตรวจจับเดียวh_scaleตัวคูณ scale แนวตั้งที่ใช้กับความสูงของเซลล์กริดก่อน non-max-suppression ค่าที่มากขึ้นทำให้เซลล์ใกล้เคียงถูกรวมเป็นการตรวจจับเดียวnms_thresholdค่าขีดแบ่ง IoU ที่ส่งให้ non-max-suppressionnms_sigmaค่า sigma ที่ส่งให้ non-max-suppression (soft-NMS)- __call__(model: ml.Model, inputs: list, outputs: list) list#
ถูกเรียกโดย
ml.Model.predict()พร้อมโมเดล อินพุต และเอาต์พุตดิบ คืนรายการของรายการการตรวจจับแยกตามคลาส แต่ละการตรวจจับเป็น tuple((x, y, w, h), score)รายการคลาสว่างจะถูกรวมไว้เพื่อให้ตำแหน่งของแต่ละรายการในเอาต์พุตตรงกับดัชนีคลาสในเอาต์พุตโมเดล คืนค่า tuple ว่างเมื่อไม่มีการตรวจจับ
class YoloPro -- YOLO Pro#
ตัวประมวลผลหลังการทำงานสำหรับเอาต์พุตของโมเดลตรวจจับวัตถุ YOLO Pro ของ Edge Impulse โมเดล YOLO Pro จะให้เอาต์พุตหนึ่งแถวต่อกล่องผู้สมัครแต่ละกล่อง ซึ่งประกอบด้วย xmin, ymin, xmax, ymax (ปรับให้เป็นมาตรฐานตามอินพุต) ตามด้วยเวกเตอร์ score แยกตามคลาส ดูวิธีการฝึกโมเดลดังกล่าวได้ที่ เอกสาร YOLO Pro
- class ml.postprocessing.edgeimpulse.YoloPro(threshold: float = 0.6, nms_threshold: float = 0.1, nms_sigma: float = 0.1)#
สร้างตัวประมวลผลหลังการทำงาน YOLO Pro
thresholdค่า score ของคลาสขั้นต่ำที่จำเป็นเพื่อให้กล่องถูกเก็บไว้ก่อนการทำ non-max-suppressionnms_thresholdค่าขีดแบ่ง IoU ที่ส่งให้ non-max-suppressionnms_sigmaค่า sigma ที่ส่งให้ non-max-suppression (soft-NMS)- __call__(model: ml.Model, inputs: list, outputs: list) list#
ถูกเรียกโดย
ml.Model.predict()พร้อมโมเดล อินพุต และเอาต์พุตดิบ คืนรายการของรายการการตรวจจับแยกตามคลาส แต่ละการตรวจจับเป็น tuple((x, y, w, h), score)ในพิกัดของ ROI รายการคลาสว่างจะถูกรวมไว้เพื่อให้ตำแหน่งของแต่ละรายการในเอาต์พุตตรงกับดัชนีคลาสในเอาต์พุตโมเดล คืนค่า tuple ว่างเมื่อไม่มีการตรวจจับ
ตัวอย่าง:
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)