NeuralGas clustering algorithm (Patch #559)


Added by makis - over 6 years ago. Updated about 3 years ago.


Status:Open Start date:
Priority:Normal Due date:
Assignee:makis - % Done:

0%

Category:ml
Target version:Next Hackathon
Affected version:2.4.0 - 2.4.6 Operating System:Any
Difficulty: HW Platform:Any
Pull request:https://github.com/Itseez/opencv/pull/1178

Description

Hello, i would like to make a small contribution to opencv by submitting a neural gas implementation (a clustering algorithm).

Neural gas (as most clustering algorithms) works like this in general:
project an input vector to the network and network will adapt it@s nodes in order to converge to the distribution (the inputs).

The api is simple:
You pass a CvMat* (or cv::Mat&) and all the necessary parameters: number of nodes, total number of iterations and starting/ending adaptation and neihbourhood range.
Then you can call:
1) train_auto: which call the train method and peaks an input vector from the distribution randomly
2) train: without an argument peaks an input from the distribution or you can provide your own input (CvScalar or cv::Scalar) as argument.

If interested, i could improve it, like implementing more inherited methods, documentation, etc. Also, i could provide more algorithms like gng, itm and som.


ml.h.patch - patch for include/ml.h (2.9 kB) makis -, 2010-09-11 06:51 pm

mlngas.cpp - the actual neuralgas implementation (6.8 kB) makis -, 2010-09-11 06:51 pm


History

Updated by Alexander Shishkov about 5 years ago

  • Description changed from Hello, i would like to make a small contribution to opencv by submitting a ne... to Hello, i would like to make a small contribution to opencv by submitting a ne... More

Updated by Kirill Kornyakov almost 5 years ago

  • Tracker changed from Feature to Patch

Updated by Alexander Shishkov almost 5 years ago

  • Target version deleted ()

Updated by Alexander Shishkov almost 5 years ago

  • Target version deleted ()

Updated by Steven Puttemans over 3 years ago

Anyone knows if the CvNeuralGas functionality has been replaced? I could update the code if I knew which function holds it now and then submit this sample as a pull request.

Updated by Ivan Korolev over 3 years ago

Hi Steven,
thanks for your participation, please ask your question at http://answers.opencv.org/questions/

  • Assignee set to Maria Dimashova
  • HW Platform set to Any
  • Operating System set to Any
  • Affected version set to 2.4.6 (latest release)

Updated by Steven Puttemans over 3 years ago

Ah I just think I made a mistake. Didn't see the include for the ml header file. cvNeuralGas is just new functionality. Will poor it into a pull request later today.

Updated by Steven Puttemans over 3 years ago

Added pull request, however, once problems arise, help fixing the bugs is highly appreciated.

Updated by Steven Puttemans over 3 years ago

It seems that we cannot provide C API style code to the new master branch. So before submitting some editting of the code will need to be done. Will see how far I get with that later.

Updated by Steven Puttemans over 3 years ago

The code has been completely transfered towards C++ interfacing!
In order to get a merge however we still need documentation, regression tests and an example of how this works!

I could do the documentation, however never done regression tests before and haven't used the algorithm myself yet.

So any help is always apreciated!

The correct pull request can be found here! https://github.com/Itseez/opencv/pull/1178

  • Assignee changed from Maria Dimashova to makis -

Updated by Alexander Smorkalov about 3 years ago

  • Pull request set to https://github.com/Itseez/opencv/pull/1178
  • Affected version changed from 2.4.6 (latest release) to 2.4.0 - 2.4.6
  • Target version set to Next Hackathon

Also available in: Atom PDF