-
A new transform, ConsolidateRegions, is added. This transform should be used after BuildScales and/or SlidingWindow to take potentially overlapping detections, and consolidate them into a single detection. This is a very numerically correct approach, in that a Laplacian matrix is built from overlapping rectangles, and spectral clustering is then performed to find the clusters/groupings of detected regions. However, it is perhaps not the most computationally efficient solution, especially when the number of detected regions is large (e.g., over 200). This is b/c the eigendecomposition step will be a bit of a bottleneck. Future solutions could move in one of (at least) two directions. The first is the use of numerical analysis methods to efficiently find the smallest eigenvalue/vectors. This is not readily support by Eigen. The second would be more logic-based approaches. Presumably the method used by opencv to consolidate regions would be applicable here. In the meantime this solutions very much works, and should be used until a more effecient method is made available.
-
Loadstore updates
-
Plot enhancements
-
… to keep scale consistent
-
* Store confidence values in the Mat instead of the QMap. * Negative features are resized to the detector window size
-
Currently, no QtWarnings generated on windows, how exciting.
-
Although we do have to use exactly 1 thread for all operations on a given socket (at least on windows...), it doesn't have to be the main thread. Even odds if this will break windows support in some unforseen way.
-
In a shocking turn of events, Qt is annoying, and not particularly consistent across platforms. Lot of not particularly intelligent business with signals to get things to execute on the main thread. I would rather not even use the event driven interfaces to QLocalServer/QLocalSocket but sadly it seems that on windows even if we try and use the blocking calls, we are still required to use using exactly one thread per object. Of course that makes sense since obviously we are writing a simple event-driven GUI application.
-
Add a wrapper transform that runs a child transform in a separate process