• 01/16/13: Released version 1.2 (Release Notes)
  • 11/13/12: A bug tracker has been added on googlecode. Please report any bugs there.
  • 11/03/12: Android Demo fixed and added conf and detection threads support for android (see demo)
  • 09/21/12: Added a Google Groups page, where we can easily answer your questions
  • 07/20/12: ICPR'12 paper published with new state-of-the-art on SVHN of 95.10% accuracy.
  • 06/07/12: Added GPU Optimizations for a few modules using CUDA.
  • 05/24/12: Added Matlab I/O wrappers to make it easier to use matlab data in eblearn directly.
  • 04/18/12: Code & tutorial available for state-of-the-art classifier on the Street View House Numbers Dataset.
  • 04/18/12: Arxiv paper published with state-of-the-art results on SVHN dataset.

What is EBLearn?

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.

A face detector trained in eblearn (Scroll to bottom for detailed outputs)

Companies using EBLearn

  • SRI International Sarnoff, Vision and Robotics Group:
    • Long range pedestrian detection and tracking from 2 roving ground robots.
    • Semantic change detection from aerial video.
    • Terrain and building classification from aerial images and lidar.
  • Siemens Corporate Research
    • Person detection from unconstrained imagery.
    • Image analysis in digital pathology.
  • MITRE Corporation
  • MuseAmi Inc.


If you use EBLearn for your work, please cite:

Pierre Sermanet, Koray Kavukcuoglu and Yann LeCun: EBLearn: Open-Source Energy-Based Learning in C++, Proc. International Conference on Tools with Artificial Intelligence, IEEE, 2009.

Why use EBLearn?

EBLearn allows you to quickly build complex classifiers and regressors without writing a single line of code. Convenient tools are provided to package datasets, train your system and do a real-time test of your system using cameras and kinects.

EBLearn is self-contained and does not depend on external libraries for its core functionalities.

EBLearn includes several CPU optimizations including Intel IPP, SSE(experimental) and OpenMP(experimental) support as well as OpenMPI cluster support for training and detection.

State-of-the-art results were obtained using EBLearn on pedestrian detection, roadsigns classification [Sermanet IJCNN'11] and house numbers classification ICPR'12/[Sermanet Arxiv'12] tasks.

Getting Started

To quickly get started with eblearn, please look at the Getting started Section. Here, we provide Tutorials and instructions for Download and Installation of EBLearn.

Who are we?

The Eblearn project is currently under development at the Computational and Biological Learning Laboratory, New York University's machine learning lab, led by Dr.Yann Lecun.

EBLearn at a glance

EBLearn is divided into three main sections, namely libidx, libeblearn and tools.

  1. libidx is a rich tensor library that supports upto 8 dimensional tensors and an almost exhaustive set of functions to manipulate these tensors.
  2. libeblearn is a library that implements various machine learning models, including energy-based learning, gradient-based learning for machine composed of multiple heterogeneous modules.
  3. tools are a rich set of helper libraries and binaries that help you use eblearn with ease. They include
    1. a GUI library
    2. a dataset compiler to quickly make a dataset from image directories
    3. a train binary that takes simple configuration files and trains datasets without writing a single line of C++ code
    4. a detect binary that lets you to run your trained classifier on multiple live inputs like cameras and kinects.

A face detector trained in eblearn
home.txt · Last modified: 2013/01/30 14:12 by soumith