Post-Processor for neural network pipeline.
This is the last step in a deep neural network processing Pipeline.
Definition at line 31 of file PostProcessorDetect.H.
|
virtual | ~PostProcessorDetect () |
| Destructor.
|
|
void | freeze (bool doit) override |
| Freeze/unfreeze parameters that users should not change while running.
|
|
void | process (std::vector< cv::Mat > const &outs, PreProcessor *preproc) override |
| Process outputs and draw/send some results.
|
|
void | report (jevois::StdModule *mod, jevois::RawImage *outimg=nullptr, jevois::OptGUIhelper *helper=nullptr, bool overlay=true, bool idle=false) override |
| Report what happened in last process() to console/output video/GUI.
|
|
std::vector< ObjDetect > const & | latestDetections () const |
| Get the latest detections, use with caution, not thread-safe.
|
|
virtual | ~PostProcessor () |
| Destructor.
|
|
| Component (std::string const &instance) |
| Constructor.
|
|
virtual | ~Component () |
| Virtual destructor for safe inheritance.
|
|
template<class Comp , typename... Args> |
std::shared_ptr< Comp > | addSubComponent (std::string const &instance, Args &&...args) |
| Pseudo-constructor: construct and add another component as a subcomponent of this one.
|
|
template<class Comp > |
void | removeSubComponent (std::shared_ptr< Comp > &component) |
| Remove a sub-Component from this Component, by shared_ptr.
|
|
void | removeSubComponent (std::string const &instance, bool warnIfNotFound=true) |
| Remove a sub-Component from this Component, by instance name.
|
|
template<class Comp = jevois::Component> |
std::shared_ptr< Comp > | getSubComponent (std::string const &instance) const |
| Get a sub-component by instance name.
|
|
bool | isTopLevel () const |
| Returns true if this component is top-level, i.e., its parent is jevois::Manager.
|
|
bool | initialized () const |
| Has this component been initialized yet?
|
|
std::string const & | className () const |
| The class name of this component.
|
|
std::string const & | instanceName () const |
| The instance name of this component.
|
|
template<typename T > |
std::vector< std::string > | setParamVal (std::string const ¶mdescriptor, T const &val) |
| Set a parameter value.
|
|
template<typename T > |
void | setParamValUnique (std::string const ¶mdescriptor, T const &val) |
| Set a parameter value, simple version assuming only one parameter match.
|
|
template<typename T > |
std::vector< std::pair< std::string, T > > | getParamVal (std::string const ¶mdescriptor) const |
| Get parameter(s) value(s) by descriptor.
|
|
template<typename T > |
T | getParamValUnique (std::string const ¶mdescriptor) const |
| Get a parameter value, simple version assuming only one parameter match.
|
|
std::vector< std::string > | setParamString (std::string const ¶mdescriptor, std::string const &val) |
| Set a parameter value, by string.
|
|
void | setParamStringUnique (std::string const ¶mdescriptor, std::string const &val) |
| Set a parameter value by string, simple version assuming only one parameter match.
|
|
std::vector< std::pair< std::string, std::string > > | getParamString (std::string const ¶mdescriptor) const |
| Get a parameter value, by string.
|
|
std::string | getParamStringUnique (std::string const ¶mdescriptor) const |
| Get a parameter value by string, simple version assuming only one parameter match.
|
|
void | freezeParam (std::string const ¶mdescriptor, bool doit) |
| Freeze/unfreeze a parameter, by name, see ParameterBase::freeze()
|
|
void | freezeAllParams (bool doit) |
| Freeze all parameters.
|
|
std::string | descriptor () const |
| Get our full descriptor (including all parents) as [Instancename]:[...]:[...].
|
|
void | setParamsFromFile (std::string const &filename) |
| Set some parameters from a file.
|
|
std::istream & | setParamsFromStream (std::istream &is, std::string const &absfile) |
| Set some parameters from an open stream.
|
|
virtual void | paramInfo (std::shared_ptr< UserInterface > s, std::map< std::string, std::string > &categs, bool skipFrozen, std::string const &cname="", std::string const &pfx="") |
| Get machine-oriented descriptions of all parameters.
|
|
void | foreachParam (std::function< void(std::string const &compname, ParameterBase *p)> func, std::string const &cname="") |
| Run a function on every param we hold.
|
|
template<typename T > |
std::shared_ptr< DynamicParameter< T > > | addDynamicParameter (std::string const &name, std::string const &description, T const &defaultValue, ParameterCategory const &category) |
| Add a new parameter after the Component has already been constructed.
|
|
template<typename T , template< typename > class ValidValuesSpec> |
std::shared_ptr< DynamicParameter< T > > | addDynamicParameter (std::string const &name, std::string const &description, T const &defaultValue, ValidValuesSpec< T > const &validValuesSpec, ParameterCategory const &category) |
| Add a new parameter after the Component has already been constructed.
|
|
template<typename T > |
void | setDynamicParameterCallback (std::string const &name, std::function< void(T const &)> cb, bool callnow=true) |
| Register a callback with a previously created dynamic parameter.
|
|
void | removeDynamicParameter (std::string const &name, bool throw_if_not_found=true) |
| Remove a previously added dynamic parameter.
|
|
void | setPath (std::string const &path) |
| Assign a filesystem path to this component.
|
|
std::filesystem::path | absolutePath (std::filesystem::path const &path="") |
| If given path is relative (not starting with /), prepend the Component path to it.
|
|
virtual | ~ParameterRegistry () |
| Virtual destructor for safe inheritance.
|
|
|
(Note that these are not member symbols.)
|
| JEVOIS_DECLARE_PARAMETER (maxnbox, unsigned int, "Max number of top-scoring boxes to report (for YOLO flavors, " "this is the max for each scale), or 0 for no limit", 500, ParamCateg) |
| Parameter.
|
|
| JEVOIS_DECLARE_PARAMETER (namedonly, bool, "When true, only report (on display and to serial ports) results " "for which we have a class name defined in the class file. This can allow one " "to skip some of the results by simply commenting out their name in the class file " "(make sure your class file then contains class-ID numbers for each named class).", false, ParamCateg) |
| Parameter.
|
|
| JEVOIS_DECLARE_PARAMETER (dthresh, float, "Detection box threshold (in percent confidence) above which " "predictions will be reported. Not all networks use a separate box threshold, " "many only use one threshold confidence threshold (cthresh parameter). The YOLO " "family is an example that uses both box and classification confidences", 15.0F, jevois::Range< float >(0.0F, 100.0F), ParamCateg) |
| Parameter.
|
|
| JEVOIS_DEFINE_ENUM_CLASS (DetectType,(FasterRCNN)(YOLO)(SSD)(TPUSSD)(RAWYOLO)(YOLOv10)(YOLOv10pp)(YOLOX)(YOLOv8)(YOLOv8t)(YOLOv8seg)(YOLOv8segt)) |
| Enum.
|
|
| JEVOIS_DECLARE_PARAMETER_WITH_CALLBACK (detecttype, DetectType, "Type of detection output format", DetectType::YOLO, DetectType_Values, ParamCateg) |
| Parameter.
|
|
| JEVOIS_DECLARE_PARAMETER (nms, float, "Non-maximum suppression intersection-over-union threshold in percent", 45.0F, jevois::Range< float >(0.0F, 100.0F), ParamCateg) |
| Parameter.
|
|
| JEVOIS_DECLARE_PARAMETER (nmsperclass, bool, "When true, apply non-maximum suppression (NMS) separately for each " "object class, rather than globally. This will allow overlapping boxes as long as " "they belong to different classes", false, ParamCateg) |
| Parameter.
|
|
| JEVOIS_DECLARE_PARAMETER_WITH_CALLBACK (anchors, std::string, "For YOLO-type detection models with raw outputs, " "list of anchors. Should be formatted as: w1, h1, w2, h2, ... ww1, hh1, ww2, hh2, " "... ... where individual entries for a given YOLO layer are separated by commas, " "and successive YOLO layers (from large to small, e.g., first the anchors for 52x52, " "then for 26x26, then for 13x13) are separated by semicolons. Leave empty " "for other models.", "", ParamCateg) |
| Parameter.
|
|
| JEVOIS_DECLARE_PARAMETER (masksmooth, bool, "When true, extract smoother instance segmentation masks, " "which may be marginally slower.", true, ParamCateg) |
| Parameter.
|
|
| JEVOIS_DECLARE_PARAMETER (alpha, unsigned char, "Alpha channel value for drawn results", 64, ParamCateg) |
| Parameter.
|
|
| JEVOIS_DECLARE_PARAMETER (sigmoid, bool, "Apply sigmoid to raw YOLO outputs, use when the last conv layers " "just before yolo/detection/region layers have linear activation (most " "YOLOv2/v3/v4 models, but not YOLOv5/v7 which have logistic activation on their " "last conv)", true, ParamCateg) |
| Parameter.
|
|