Computer Vision

1- VLFeat Library.

Library contains really set of very nice algorithms. I tried it with Matlab and C++/OpenCV. Hopefully in future they add more and more of recent algorithms.

"The VLFeat open source library implements popular computer vision algorithms specializing in image understanding and local features extraction and matching. Algorithms incldue Fisher Vector, VLAD, SIFT, MSER, k-means, hierarchical k-means, agglomerative information bottleneck, SLIC superpixes, quick shift superpixels, large scale SVM training, and many others. It is written in C for efficiency and compatibility, with interfaces in MATLAB for ease of use, and detailed documentation throughout. It supports Windows, Mac OS X, and Linux. "

2- CCV - A Modern Computer Vision Library

Library intend to combine several state-of-the art implementations for some vision problems. I guess by time, they will be more robust, more interaction with people comments. It is good to know and try it. I gave simple trial for the CNN Classification, PMD (Pedstrian and Car models)..results looks so good. You may suffer little to install it / try something...but you will do it finally.

"One core concept of ccv development is "application driven". As a result, ccv end up implementing a handful state-of-art algorithms. It includes a very fast detection algorithm for rigid object (face etc.), a strong rigid object detection algorithm (pedestrian etc.), an accurate object detection algorithm for somewhat difficult object (car, cat etc.), a deep-learning based near state-of-the-art image classifier, a state-of-the-art text detection algorithm, a long term object tracking algorithm, and the long-standing feature point detection algorithm."

3 - OpenCV Library

A library with great focus on vision algorithms and data-structures. Very flexible, It has C++, C, Python and Java interfaces and supports Windows, Linux, Mac OS, iOS and Android. Strong focus on real-time applications. Parallelization and Hardware Support.

4 - tracking.js Browser Library

The tracking.js library brings different computer vision algorithms and techniques into the browser environment. By using modern HTML5 specifications, we enable you to do real-time color tracking, face detection and much more — all that with a lightweight core (~7 KB) and intuitive interface.

5 - bgslibrary Library

Compilation of several Background Subtractor algorithms (for videos). You may try first OpenCV algorithms in case they fit purpose,

Machine Learning

1 - LibSvm Library

A Library for Support Vector Machines. SVM is a very popular tool for ML applications and achieves strong performance with compare to other ML tools. It is a good idea to make it your first ML choice. If using OpenCV, no need to directly use the library as SVM wrap it. Just be careful if you tried to use OpenCV LibSvm internals (e.g. For Linear SVM, OpenCV store compressed weighted feature vector NOT the actual support vectors). Google also LibLinear Library.

2- EBLearn / Mloss

Open Source C++ Machine Learning Libraries. I did not try yet, but worth trying.

"Eblearn is an object-oriented C++ library that implements various machine learning models, including energy-based learning, gradient-based learning for machine composed of multiple heterogeneous modules. In particular, the library provides a complete set of tools for building, training, and running convolutional networks."

3- Caffe

Deep learning is reason behind the higher push for performance in several problems. Caffe is a deep learning framework developed with cleanliness, readability, and speed in mind.

4- ConvNetJS

"Deep Learning in your browser. ConvNetJS is a Javascript library for training Deep Learning models (mainly Neural Networks) entirely in your browser. Open a tab and you're training. No software requirements, no compilers, no installations, no GPUs, no sweat. "

Annotation Tools

1 - LabelMe - Images annotation tool

Sometimes we have to annotate images by ourselves.

"The goal of LabelMe is to provide an online annotation tool to build image databases for computer vision research"

Tool results in set of XML files representing annotations.

2 - LabelMe - Videos annotation tool

3- Vatic - Videos annotation tool

Similar to Label me one. vatic is a free, online, interactive video annotation tool for computer vision research that crowdsources work to Amazon's Mechanical Turk. Our tool makes it easy to build massive, affordable video data sets and can be deployed on a cloud. After three years of research, vatic is now used by labs around the world to annotate the next generation of data sets.

4- Other video annotation tools

5 - Image annotation tool with bounding boxes

Nice QT/C++ tool to let you draw bounding boxes in the images for manual annotations.

6- Label box