ofxLearn [2012]

ofxLearn is an addon for OpenFrameworks enabling general-purpose machine learning. It is designed for ease of use, automating most of the gritty details of machine learning procedures like model selection, optimization, and training, while still providing methods to customize those details if desired. It is a high-level wrapper to the free C++ dlib machine learning library.

The library supports supervised and unsupervised learning for applications like gesture recognition, pattern classification, computer vision and listening, and many others.

Alongside ofxLearn is ofxSelfOrganizingMap, a separate OpenFrameworks addon implementing a type of unsupervised learning algorithm called a self-organizing map. An SOM takes a set of data points characterized by feature vectors, and reorganizes them in such a way that similar data points are placed in close proximity. Like the unsupervised learning routines in ofxLearn, it is most useful for pattern identification and clustering.

The included example demonstrates the use of an SOM to analyze and reorganize a set of colored pixels from an image of flowers. I also made an implementation of a self-organizing map in Processing, which was used in Tidy Photography and Color of Words. Code here.