dense spectral clustering (Feature #2306)


Added by Hilton Bristow over 12 years ago. Updated over 9 years ago.


Status:Open Start date:2012-08-26
Priority:Normal Due date:
Assignee:Vadim Pisarevsky % Done:

0%

Category:core
Target version:3.0
Difficulty: Pull request:

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


spectralClustering.hpp (9.4 kB) Hilton Bristow, 2012-08-26 07:44 am


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

Also available in: Atom PDF