-
With this, we will not have to accumulate the file metadata during enroll which will help with memory use on large jobs. Functions actually using the return type (gui/classifier.cpp, and gallerytoolbar.cpp) updated to avoid using it directly. In gallerytoolbar.cpp, drop support for implicit enrollment to a .gal file.
-
Basically, description() now relies on firstAvailablePropertyIndex being set correctly, and this is done in Object::init(file). If an object is not created via the plugin system, Object::init(file) is never called. Also, description is now called as part of smartCopy, which is of course called when project() const is called on a timeVarying transform.
-
Merged!
-
Update these algorithms to draw all detected faces on the same image, and only display that image once. Also, modify ShowFaceDetection to discard matrices that have already been displayed.
-
This is unsafe since in some scenarios, the window is already part of an event loop.
-
A stopwatch and profiler to get time data for specified openbr transforms
-
Better support for serializing algorithms in memory
-
Refactor handling of simplified pointer in AlgorithmCore Remove parameter from serialize, it's literally impossible for it to do anything useful Remove spaces after * and & (saving valuable bytes of source code).
-
Also, more careful memory management of the simplified transform in AlgorithmCore
-
Instead of having a parameter to force serialization of loadStores, introduce a recursive method for simplifiying transform trees. Transforms which are only useful during load/training can now remove themselves from the tree via Transform * simplify, returning e.g. their child transform instead of themselves when possible. This avoids the issue of LoadStore transforms refusing to serialize themselves onto an input stream during multi-process enrollment, since they are just removed from the tree.
-
For consistency with other supported compilers, enable a warning about unused parameters at warning level 3 in visual studio. By default this warning is at level 4, but using level 4 isn't really feasible since a ton of warnings are generated for Qt header files.
-
Rather than saving the Transform and distance strings of an algorithm together, in stored files, save the transform and distance descriptions separately. Also introduce an enum allowing for the serialization of algorithms which use gallery comparison transforms, rather than distances as their comparison function. Update pre-trained algorithms, this only requires updating the algorithm files themselves, transforms saved via LoadStore are unaffected.
-
This gives us robustness to one type of model file compatibility break, if e.g. the FaceRecognitionRegistration abbreviation is changed, any results of <FaceRecognitionRegistration> that were previously saved to disk are not invalidated (although any changes to FaceRecognitionRegistration will not be reflected until the model is re-trained).