dense spectral clustering (Feature #2306)
Description
I would like to submit a function for spectral clustering. The function uses dense matrices and dense eigen-decomposition, so it is not suitable for very large clustering problems.
The method is based upon well known works of spectral clustering, and implements two graph laplacian normalization methods:
- Shi and Malik, "Normalized Cuts and Image Segmentation", PAMI 2000
- Ng, Jordan and Weiss, "On Spectral Clustering: Analysis and an Algorithm", NIPS 2002
All functionality is templated, so wrapping it in Input/Output Arrays should be trivial. Please let me know if you need anything further, such as unit tests, etc
History
Updated by Alexandre Benoit about 11 years ago
Hi,
i currently take a look at the proposed code.
At this point, it works and this is really interesting to make it available to the community since spectral clustering is a very efficient unsupervised clustering method.
However, the code needs some refactoring that would aim to :
avoid to force end user to use cv::Mat<T> objects. It would be easier to use the classical cv::Mat objects.
_enhance the proposed adjacency matrix computation. It currently relies on a the epsilon neighborhood graph. Other methods can be added : fully connected graph (with continuous similarity values) and knn neighbors graph.
I can work on it. However, i wonder where this code should be added ?
opencv_ml ? But the knn neighborhood graph method is very convenient to be used with the cv::DescriptorMatcher object that is in the feature2d module (we can choose the knn matching method, etc.).
Then, what should be done ?
Any recommendation ?
Updated by Maksim Shabunin over 9 years ago
Issue has been transferred to GitHub: https://github.com/Itseez/opencv/issues/4416