Software

Here is a list of the software that I have made available either from Research or elsewhere.

Permission is granted for anyone to copy, use, modify, or distribute this program and accompanying programs and documents for any purpose, provided this copyright notice is retained and prominently displayed, along with a note saying that the original programs are available from our web page.

The programs and documents are distributed without any warranty, express or implied. As the programs were written for research purposes only, they have not been tested to the degree that would be advisable in any important application. All use of these programs is entirely at the user's own risk.

Adaptive Deconvolutional Network Toolbox

Author:
Matthew Zeiler ([email protected])
Date:
Jul 22, 2011
Version:
2.1.1 - Fixed minor classification bugs.
Instructions for Using this Toolbox:
Follow these instructions to setup the toolbox:

  • Download and unzip this toolbox in the location of choice.
  • To setup this toolbox, simply open matlab, cd to this directory, and type "setupDeconvNetToolbox" (without the quotes) in the command window. This sets up your path to include the required directories (you may want to add these paths into your startup.m file as well however) and opens complete documentation for this toolbox.
  • Next you need to compile the pooling functinos in the PoolingToolbox folder using the included compilemex.m function there. You may need to change the paths for you system however. These compiled version are MUCH faster then any MATLAB version and only require openMP libraries for compilation. Some functions won't actually work unless these are compiled.
  • You may also want to compile the IPPConvToolbox files if you have IPP libraries installed on your system as they are much faster than the MATLAB versions. There is a compilemex script in the IPPConvsToolbox folder to compile all the necessary functions but you will likely need to set the paths within it correctly.
  • Also, there are GPUmat capable files included in the zip. You must copy the "mdz" directory in the included zip's /modules/ directory to your GPUmat/modules directory. You must type "make install" in each of those module directories from within MATLAB to ensure the necessary files are installed in GPUmat's top directory correctly.
  • After everything is installed properly (or you just want to use the default CPU implementation) then you can just type "gui" at the command line to configure the settings of the deconvolutional network as you wish. However, you MUST set the paths at the top of the gui.m file to reflect your desired setup. Alternatively, you can modify parameters within /Defaults/set_defaults_here.m which allows you to manually set the model struct that the gui would create.
  • Run any of the main scripts listed below (it is recommended to RUN THEM FROM THIS DIRECTORY as the results will be added to ./Results/ by default).
This toolbox includes code that implements an Adaptive Deconvolutional Network as described in the paper Adaptive Deconvolutional Networks for Mid and High Level Feature Learning. It may also be used to implement a Deconvolutional Network as described in the paper Deconvolutional Networks though this is not longer the recommended method. This has a function to train a Deconvolutional Network, to visualize the learned filters, and to recsontruct a new image from a trained model. Also, there are files that can be used to make descriptors that can be used with Svetlana Lazebnik's Spatial Pyramid Matching code with a few minor modifications. The Deconvolutional Network Toolbox also works with (and now includes) the IPP Convolutions Toolbox which drastically improves performance (just ensure the IPP Convolutions Toolbox files are in your MATLAB path in order to use it with this toolbox and that they are compiled with your IPP libraries.).
Download (.zip)  Documentation (html)
Suggested Software
Related Publications


Facial Expression Transfer with Input-Output Temporal Restricted Boltzmann Machines

Author:
Matthew Zeiler ([email protected])
Date:
Sep 30, 2011
Version:
1.0.0 - This is the initial release of this toolbox and may contain unkown bugs.
Instructions for Using this Toolbox:
Download and unzip this toolbox in the location of choice. To setup this toolbox, simply open matlab, cd to this directory, and type "setupRetargetToolbox" (without quotes) in the command window. This sets up your path to include the required directories (you may want to add these paths into your startup.m file as well however). You can also read the setupRetargetToolbox.m file for some basic documentation about the Toolbox. You will likely have to add Piotr Dollar's toolbox to your path for pca function. It can be found at: http://vision.ucsd.edu/~pdollar/toolbox/doc/
This toolbox provides MATLAB implementations of ioTRBMs and FIOTRBM models for use in facial retargeting expeirments.
Download (.zip)  Documentation (html)
Related Publications


Sfigure Toolbox

Author:
Matthew Zeiler ([email protected])
Date:
Aug 30, 2011
Version:
1.0.0 - This is the initial release of this toolbox and may contain unkown bugs.
Instructions for Using this Toolbox:
Download and unzip this toolbox in the location of choice. To setup this toolbox, simply open matlab, cd to this directory, and type "setupSfigureToolbox" (without quotes) in the command window. This sets up your path to include the required directories (you may want to add these paths into your startup.m file as well however) and opens complete documentation for this toolbox. You can also read the setupSfigureToolbox.m file for some basic documentation about the Toolbox.
How to use:

  • Type "sfigure(0);" when you start a new matlab session. This sets the X window ID for the MATLAB command window (figure 0) in it's 'Tag' property so that subsequent calls can figure out where it is at that time. (unfotunately this doesn't work well in the startup.m script as you need to be on the same desktop as the command window in order to set it's ID and this is why "sfigure(0);" should be typed into the command window so it is still in focus and you are on the same desktop as it). If for some reason the ID was not set correctly you can always call sfigure(0) from the command window to set it again correctly.
  • Create all new figures with sfigure(fig_num) where fig_num is any new figure number. The figure will be moved to whatever desktop (workspace) the command window is on currently.
This toolbox provides a method of synchronizing the display of MATLAB figure windows to the current Linux desktop (workspace) that the MATLAB session's command window is placed on. This began as code adapted from Daniel Eeaton's sfigure.m from MATLABCentral.
Download (.zip)  Documentation (html)


Deconvolutional Network Toolbox

Author:
Matthew Zeiler ([email protected])
Date:
Apr 4, 2010
Version:
1.0.1 - A few bugs were fixed with plotting and saving figures. Also, the MATLABCentral convnfft.m file is now supported for enhanced performance during training (though not included with this package).
Note: The Adaptive Deconvolutional Network Toolbox can do everything that this older code could do and I recommend using that toolbox as it is much simpler.
Instructions for Using this Toolbox:
Download and unzip this toolbox in the location of choice. To setup this toolbox, simply open matlab, cd to this directory, and type "setup" (without the quotes) in the command window. This sets up your path to include the required directories (you may want to add these paths into your startup.m file as well however) and opens complete documentation for this toolbox. Then you can modify parameters within /Defaults/set_defaults_here.m and run any of the scripts listed below (RUN THEM FROM THIS DIRECTORY as the results will be added to ./Results/ whereever you are running from).
This toolbox includes code that implements a Deconvolutional Network as described in the paper Deconvolutional Networks. This has a function to train a Deconvolutional Network, to visualize the learned filters, and to recsontruct a new image from a trained model. Also, there are files that can be used to make descriptors that can be used with Svetlana Lazebnik's Spatial Pyramid Matching code with a few minor modifications. The Deconvolutional Network Toolbox also works with the IPP Convolutions Toolbox which drastically improves performance (just ensure the IPP Convolutions Toolbox files are in your MATLAB path in order to use it with this toolbox). If you do not have IPP libraries, you can still get a significant performance enhancement by using convnfft.m from MATLABCentral.

Note: I highly recommend the Adaptive Deconvolutional Network Toolbox rather than this one as it is easier to use and has more features.
Download (.zip)  Documentation (html)
Suggested Software
Related Publications


IPP Convolution Toolbox

Author:
Matthew Zeiler ([email protected])
Date:
Apr 4, 2010
Version:
1.0.0 - This is the initial release of this toolbox and may contain unkown bugs.
Instructions for Using this Toolbox:
Download and unzip this toolbox in the location of choice. To setup this toolbox, simply open matlab, cd to this directory, and type "setup" (without quotes) in the command window. This sets up your path to include the required directories (you may want to add these paths into your startup.m file as well however), tries to compile the IPP mex files included in this toolbox, and opens complete documentation for this toolbox. You will likely have to modify the paths in the /MEX/compilemex.m file to suite your machine's setup.
This toolbox includes Intel Performance Primitives (IPP) based convolutions of various types. The standard implementation ipp_conv2 can replace the MATLAB conv2 directly with significant speed-ups. These convolutions automatically switch to FFTs when the kernel size becomes large enough. Additionally, ipp_conv2 and the other included files have been extended beyond the functionality of MATLAB's conv2 as they can take in multiple images and multiple kernels. See their documentation for further details.
Download (.zip)  Documentation (html)