I am in search of open source classification algorithms. I am working on a computer vision project that uses classification for scene recognition. I wish to bench test a range of machine learning algorithms for the classification stage. The implementations must be on open source licenses and preferably written in C++. All and any help would be highly appreciated. Thanks in advance.
dlib
http://dlib.net/
Machine Learning (including classification) http://dlib.net/ml.html
Examples: http://dlib.net/multiclass_classification_ex.cpp.htmlShark
http://image.diku.dk/shark/sphinx_pages/build/html/
http://image.diku.dk/shark/sphinx_pages/build/html/rest_sources/tutorials/tutorials.htmlShogun - A Large Scale Machine Learning Toolbox
http://shogun-toolbox.org/
http://shogun-toolbox.org/doc/en/current/methods.html
http://shogun-toolbox.org/doc/en/current/libshogun_examples.html
// Note: the aforementioned example has me rather worried in that it seems this library is not following best practices of modern C++: in particular, raw pointers and manualnew
/delete
are usually a bad practice without a specific, well-motivated need (that I find lacking in the context of the presented examples). See: http://herbsutter.com/elements-of-modern-c-style/Vowpal Wabbit
https://en.wikipedia.org/wiki/Vowpal_Wabbit
https://github.com/JohnLangford/vowpal_wabbit/wiki
Written in C++, can be used as a library; examples:
https://github.com/JohnLangford/vowpal_wabbit/tree/master/library
// Note: manual invocations ofVW::initialize
andVW::finish
operating on a raw pointervw*
raise concerns similar to the ones above; example: https://github.com/JohnLangford/vowpal_wabbit/blob/master/library/library_example.cc
For more, see also Machine Learning Open Source Software:
http://mloss.org/software/language/c__/
You may also find the following of use:
- https://stackoverflow.com/questions/3167024/fastest-general-machine-learning-library
- https://stackoverflow.com/questions/2915341/which-machine-learning-library-to-use
What you really need is OpenCV . OpenCV (Open Source Computer Vision Library) is an open source computer vision and machine learning software library. It has C++, C, Python and Java interfaces and supports Windows, Linux, Android and Mac OS.
You may find there lots of solutions for computer vision recognition problems.
LIBSVM, de facto standard for SVM learning (BSD license):
- home page
- implemented in
C
, so trivial to use inC++
- interfaces in various languages available, including R (kernlab), Python (scikit-learn), ...
Shameless self advertisement: EnsembleSVM
EnsembleSVM is a toolbox for fast nonlinear learning with SVMs. Licensed under LGPL v3. Some basic info is available in our paper.
VlFeat http://www.vlfeat.org/ is great computer vision library written in pure C.