JeVoisBase
1.22
JeVois Smart Embedded Machine Vision Toolkit Base Modules
|
|
Simple YOLO DNN post-processor written in python. More...
Public Member Functions | |
__init__ (self) | |
[Optional] Constructor | |
init (self) | |
[Optional] JeVois parameters initialization | |
freeze (self, doit) | |
[Optional] Freeze some parameters that should not be changed at runtime. | |
loadClasses (self, filename) | |
[Optional] Parameter callback: Load class names when 'classes' parameter value is changed by model zoo | |
setDetectType (self, dt) | |
[Optional] Parameter callback: set type of object detector | |
process (self, outs, preproc) | |
[Required] Main processing function: parse network output blobs and store resulting labels and scores locally. | |
getLabel (self, id, conf) | |
Helper to get class name and confidence as a clean string, and a color that varies with class name. | |
report (self, outimg, helper, overlay, idle) | |
[Optional] Report the latest results obtained by process() by drawing them outimg is None or a RawImage to draw into when in Legacy mode (drawing to an image sent to USB) helper is None or a GUIhelper to do OpenGL drawings when in JeVois-Pro GUI mode overlay is True if user wishes to see overlay text idle is true if keyboard/mouse have been idle for a while, which typically would reduce what is displayed | |
Public Attributes | |
classIds | |
confidences | |
boxes | |
classmap | |
yolopp | |
classoffset | |
classes | |
loadClasses | |
detecttype | |
setDetectType | |
nms | |
maxnbox | |
cthresh | |
dthresh | |
sigmoid | |
imagew | |
imageh | |
Simple YOLO DNN post-processor written in python.
Compare this code to the C++ PostProcessorDetect (which has more functionality than here):
Instead of re-inventing the wheel, this code uses the YOLO post-processor that we have implemented in C++, as that C++ code is quite complex and multi-threaded for speed.
Definition at line 30 of file PyPostYolo.py.
PyPostYolo.PyPostYolo.__init__ | ( | self | ) |
[Optional] Constructor
Definition at line 33 of file PyPostYolo.py.
PyPostYolo.PyPostYolo.freeze | ( | self, | |
doit | |||
) |
[Optional] Freeze some parameters that should not be changed at runtime.
The JeVois core will call this with doit being either True or False
Definition at line 95 of file PyPostYolo.py.
References Darknet.classes, Yolo.classes, PyPostClassify.PyPostClassify.classes, PyPostDAMOyolo.PyPostDAMOyolo.classes, PyPostYolo.PyPostYolo.classes, PyPostYOLOv8seg.PyPostYOLOv8seg.classes, PyClassificationDNN.PyClassificationDNN.classes, PyDetectionDNN.PyDetectionDNN.classes, PyEmotion.PyEmotion.classes, PyPostYolo.PyPostYolo.detecttype, PyPostYolo.PyPostYolo.freeze(), and PyPostYolo.PyPostYolo.yolopp.
Referenced by PyPostYolo.PyPostYolo.freeze().
PyPostYolo.PyPostYolo.getLabel | ( | self, | |
id, | |||
conf | |||
) |
Helper to get class name and confidence as a clean string, and a color that varies with class name.
Definition at line 175 of file PyPostYolo.py.
References PyPostClassify.PyPostClassify.classmap, PyPostDAMOyolo.PyPostDAMOyolo.classmap, PyPostYolo.PyPostYolo.classmap, and PyPostYOLOv8seg.PyPostYOLOv8seg.classmap.
Referenced by PyPostDAMOyolo.PyPostDAMOyolo.report(), PyPostYolo.PyPostYolo.report(), and PyPostYOLOv8seg.PyPostYOLOv8seg.report().
PyPostYolo.PyPostYolo.init | ( | self | ) |
[Optional] JeVois parameters initialization
Definition at line 49 of file PyPostYolo.py.
PyPostYolo.PyPostYolo.loadClasses | ( | self, | |
filename | |||
) |
[Optional] Parameter callback: Load class names when 'classes' parameter value is changed by model zoo
Definition at line 102 of file PyPostYolo.py.
References PyPostClassify.PyPostClassify.classmap, PyPostDAMOyolo.PyPostDAMOyolo.classmap, PyPostYolo.PyPostYolo.classmap, and PyPostYOLOv8seg.PyPostYOLOv8seg.classmap.
PyPostYolo.PyPostYolo.process | ( | self, | |
outs, | |||
preproc | |||
) |
[Required] Main processing function: parse network output blobs and store resulting labels and scores locally.
outs is a list of numpy arrays for the network's outputs. preproc is a handle to the pre-processor that was used, useful to recover transforms from original image to cropped/resized network inputs.
Definition at line 119 of file PyPostYolo.py.
References PyPostDAMOyolo.PyPostDAMOyolo.boxes, PyPostYolo.PyPostYolo.boxes, PyPostYOLOv8seg.PyPostYOLOv8seg.boxes, PyPostDAMOyolo.PyPostDAMOyolo.classIds, PyPostYolo.PyPostYolo.classIds, PyPostDAMOyolo.PyPostDAMOyolo.confidences, and PyPostYolo.PyPostYolo.confidences.
PyPostYolo.PyPostYolo.report | ( | self, | |
outimg, | |||
helper, | |||
overlay, | |||
idle | |||
) |
[Optional] Report the latest results obtained by process() by drawing them outimg is None or a RawImage to draw into when in Legacy mode (drawing to an image sent to USB) helper is None or a GUIhelper to do OpenGL drawings when in JeVois-Pro GUI mode overlay is True if user wishes to see overlay text idle is true if keyboard/mouse have been idle for a while, which typically would reduce what is displayed
Note that report() is called on every frame even though the network may run slower or take some time to load and initialize, thus you should be prepared for report() being called even before process() has ever been called (i.e., create some class member variables to hold the reported results, initialize them to some defaults in your constructor, report their current values here, and update their values in process()).
Definition at line 194 of file PyPostYolo.py.
References PyPostDAMOyolo.PyPostDAMOyolo.boxes, PyPostYolo.PyPostYolo.boxes, PyPostYOLOv8seg.PyPostYOLOv8seg.boxes, PyPostDAMOyolo.PyPostDAMOyolo.classIds, PyPostYolo.PyPostYolo.classIds, PyPostDAMOyolo.PyPostDAMOyolo.confidences, PyPostYolo.PyPostYolo.confidences, PyPostDAMOyolo.PyPostDAMOyolo.getLabel(), PyPostYolo.PyPostYolo.getLabel(), and PyPostYOLOv8seg.PyPostYOLOv8seg.getLabel().
PyPostYolo.PyPostYolo.setDetectType | ( | self, | |
dt | |||
) |
[Optional] Parameter callback: set type of object detector
Definition at line 110 of file PyPostYolo.py.
PyPostYolo.PyPostYolo.boxes |
Definition at line 37 of file PyPostYolo.py.
Referenced by PyPostDAMOyolo.PyPostDAMOyolo.process(), PyPostYolo.PyPostYolo.process(), PyPostYOLOv8seg.PyPostYOLOv8seg.process(), PyPostDAMOyolo.PyPostDAMOyolo.report(), PyPostYolo.PyPostYolo.report(), and PyPostYOLOv8seg.PyPostYOLOv8seg.report().
PyPostYolo.PyPostYolo.classes |
Definition at line 56 of file PyPostYolo.py.
Referenced by PyPostClassify.PyPostClassify.freeze(), PyPostDAMOyolo.PyPostDAMOyolo.freeze(), PyPostYolo.PyPostYolo.freeze(), PyPostYOLOv8seg.PyPostYOLOv8seg.freeze(), PyDetectionDNN.PyDetectionDNN.postprocess(), and PyClassificationDNN.PyClassificationDNN.process().
PyPostYolo.PyPostYolo.classIds |
Definition at line 35 of file PyPostYolo.py.
Referenced by PyPostDAMOyolo.PyPostDAMOyolo.process(), PyPostYolo.PyPostYolo.process(), PyPostDAMOyolo.PyPostDAMOyolo.report(), and PyPostYolo.PyPostYolo.report().
PyPostYolo.PyPostYolo.classmap |
Definition at line 40 of file PyPostYolo.py.
Referenced by PyPostDAMOyolo.PyPostDAMOyolo.getLabel(), PyPostYolo.PyPostYolo.getLabel(), PyPostYOLOv8seg.PyPostYOLOv8seg.getLabel(), PyPostClassify.PyPostClassify.loadClasses(), PyPostDAMOyolo.PyPostDAMOyolo.loadClasses(), PyPostYolo.PyPostYolo.loadClasses(), PyPostYOLOv8seg.PyPostYOLOv8seg.loadClasses(), and PyPostClassify.PyPostClassify.process().
PyPostYolo.PyPostYolo.classoffset |
Definition at line 52 of file PyPostYolo.py.
Referenced by PyPostClassify.PyPostClassify.process().
PyPostYolo.PyPostYolo.confidences |
Definition at line 36 of file PyPostYolo.py.
Referenced by PyPostDAMOyolo.PyPostDAMOyolo.process(), PyPostYolo.PyPostYolo.process(), PyPostDAMOyolo.PyPostDAMOyolo.report(), and PyPostYolo.PyPostYolo.report().
PyPostYolo.PyPostYolo.cthresh |
Definition at line 75 of file PyPostYolo.py.
Referenced by PyPostClassify.PyPostClassify.process(), PyPostDAMOyolo.PyPostDAMOyolo.process(), and PyPostClassify.PyPostClassify.report().
PyPostYolo.PyPostYolo.detecttype |
Definition at line 61 of file PyPostYolo.py.
Referenced by PyPostYolo.PyPostYolo.freeze().
PyPostYolo.PyPostYolo.dthresh |
Definition at line 79 of file PyPostYolo.py.
PyPostYolo.PyPostYolo.imageh |
Definition at line 128 of file PyPostYolo.py.
PyPostYolo.PyPostYolo.imagew |
Definition at line 128 of file PyPostYolo.py.
PyPostYolo.PyPostYolo.loadClasses |
Definition at line 59 of file PyPostYolo.py.
PyPostYolo.PyPostYolo.maxnbox |
Definition at line 70 of file PyPostYolo.py.
Referenced by PyPostDAMOyolo.PyPostDAMOyolo.postprocess().
PyPostYolo.PyPostYolo.nms |
Definition at line 66 of file PyPostYolo.py.
Referenced by PyPostDAMOyolo.PyPostDAMOyolo.process().
PyPostYolo.PyPostYolo.setDetectType |
Definition at line 64 of file PyPostYolo.py.
PyPostYolo.PyPostYolo.sigmoid |
Definition at line 86 of file PyPostYolo.py.
PyPostYolo.PyPostYolo.yolopp |
Definition at line 45 of file PyPostYolo.py.
Referenced by PyPostYolo.PyPostYolo.freeze().