Welcome to the iLab Neuromorphic Vision C++ Toolkit (iNVT)!

The iLab Neuromorphic Vision C++ Toolkit (iNVT, pronounced ``invent'') is a comprehensive set of C++ classes for the development of neuromorphic models of vision. Neuromorphic models are computational neuroscience algorithms whose architecture and function is closely inspired from biological brains. The iLab Neuromorphic Vision C++ Toolkit comprises not only base classes for images, neurons, and brain areas, but also fully-developed models such as our model of bottom-up visual attention and of Bayesian surprise.

Features at a glance:

  • The source tree is maintained using the Subversion (SVN) revision control system.
  • The main development platform is Linux. However, the core programs also compile under Windows (using cygwin) and MacOS X.
  • All source code is distributed freely under the GNU General Public License. Registered users get access to our central SVN source code repository and hence receive updates in real-time, not only when we make major releases.
  • Low-level helper classes, including Point2D, Rectangle, PixRGB<T>, Range, Timer, XWindow, etc.
  • Template Image<T> and ImageSet<T> classes with hundreds of image processing functions and copy-on-write / ref-counting semantics.
  • Image I/O functions for read/write to image files (PNM or PNG) or video streams (various formats).
  • Low-level neural network simulation classes, such as LeakyInterator and LeakyIntFire neurons and backprop perceptron classes.
  • High-level neuromorphic classes, including a hierarchy of low-level visual feature Channels for the computation of neural maps responding to color, intensity, orientation, motion, corners, T-junctions, etc; a Winner-Take-All maximum selector network; a Saliency Map network to represent conspicuous locations in a visual scene; a Visual Buffer short-term visual memory endowed with internal competitive dynamics; a Visual Cortex class that orchestrates the computations of a variable collection of feature channels; a Brain class that holds a Visual Cortex, Saccade Controller for the simulation of eye/head movements, Task-Relevance Map to memorize locations of interest in a scene, Shape Estimator to roughly segment objects in a scene, a set of SIFT classes that implement David Lowe's Scale-Invariant Feature Transform model for object/scene recognition, etc.
  • Neuromorphic models of visual attention (to find locations in an image or video stream that are likely to attract the eyes of a human observer or to surprise the observer), contour integration (to simulate how elongated contours are strong attractors of attention in human observers), object recognition (using various strategies including matching feature vectors, backprop perceptrons, hierarchical feedforward feature extraction models, etc), intelligent knowledge-based vidual agents that perform high-level scene understanding, rapid computation of the ``gist'' or coarse semantic category of an entire scene (e.g., indoors vs. outdoors), and many more!
  • Hardware interfacing, to Video4Linux and IEEE-1394 (FireWire) cameras, audio/dsp, serial ports, serial servo controllers, GPS units, etc. This only works under Linux.
  • Parallel processing classes for the simulation of complex models over Beowulf clusters of computers.
  • Neuromorphic modeling environment which facilitates the run-time selection of plug-in model components, the management of persistent model tuning parameters, and the generation/parsing of command-line options for various models based on the collection of model components which they implement.
  • And much, much more...

The iLab Neuromorphic Vision C++ Toolkit is one of the many exciting neuromorphic vision research projects from the iLab at the University of Southern California.

Current Status

Recent SVN and Forum activity, ordered by last SVN commit date/time.

Copyright © 2002-2004 by the University of Southern California, iLab and Prof. Laurent Itti. Last updated