-
Common::seedRNG uses a static variable to ensure that the RNG is seeded exactly once per run of OpenBR. In spite of this, seedRNG was called from several places, although the function would have an effect exactly once. This commit adds thread safety to seedRNG (previously the use of a static variable was unsafe, although it could only cause a rather minor problem). More importantly call seedRNG only from Context::initialize. If it is desirable to call seedRNG more than once, changes will need to be made to support doing that in a meaningful way.
-
Remove variables related to subsampling training data from Transform, move them to a new transform called DownsampleTraining, and perform subsampling in that transform, rather than as part of IndependentTransform (which depended on the subsampling variables in Transform). The prior approach was incompatible with using explicit class variable names, rather than assuming a fixed label variable. This is because the actual downsampling was carried out as part of IndependentTransform, which is not a visible part of the algorithm grammar. Removing this logic from Independent/Transform is generally desirable if only to avoid cluttering Transform with member variables that are only used some of the time, and used in a (fairly) restrictive way. The current approach of makring DownsampleTraining as an indepent transform is still limited since the downsample logic (still) cannot be applied without the split used in Independent, and also DownsampleTraining can only be implemented as a wrapper for another transform (because the argument to train is const, and performing the donwsample logic in project would also impact the testing case (since we have no way to exclude a transform used in training from use in testing, for a fixed algorithm)).
-
This, rather than always storing it as label. The name of the column can be set in the SQL query, so there is no particular need to change it in dbGallery
-
Something like this
-
Move implmeentation of getEvents to the .cpp file, make getChildren const and public.
-
Look for properties with type Transform * or QList<Transform *> and for getEvent, follow the tree using those, rather than having separate methods for different transforms with children.
-
allow single template comparisons in PP5
-
Online distance metric added
-
Updated openTransform to not overwrite Templates with matrix data
-
If stream receives a templatelist with multiple templates, display them in sequence (currently kind of a hack). If this behavior is undesirable, it can be avoided by using distribute.
-
Fix a bug in FPSSynch, also rename it FPSLimit because it only reduces the max frame rate of an algorithm, it doesn't do frame dropping or anything.
-
Otherwise we need to set up exports for whatever is being used by the br plugin.
-
Look for OpenCV bin dir relative to the lib directory