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.