Home > Software >


For now this is just a random selection of a few things that people have asked for at various times. It is unmaintained "as is" software, mostly just small "simplest possible proof of concept" routines done to test research ideas. These aren't proper software distributions and I seldom have time to give advice or fix bugs. Most of them are available under a fairly liberal copyright.

Vision related routines

  1. Face normalization and descriptor code. As described in our AMFG 2007 paper.
  2. Binaries, sources and data for our Histogram of Oriented Gradient (HOG) human detector.
  3. Assorted camera pose routines: a collection of small Octave or MATLAB routines for initializing camera pose and perhaps some internal parameters from various sorts of 2D or 3D data. The routines for calibrated pose from known 3D points are also available separately here.
  4. Relative orientation from 5 points: a somewhat more polished C routine implementing the minimal solution for relative orientation of two calibrated cameras from unknown 3D points. 5 points are required and there can be as many as 10 feasible solutions (but 2-5 is more common). Also requires a few CLAPACK routines for linear algebra. There's also a short technical report on this (included with the source).
  5. Assorted projective reconstruction routines: a few "simple as possible" variants on our projective factorization method in Octave/MATLAB.
  6. Srinivasan's `fast error search' method: a small Octave/Matlab implementation of Srinivasan & Chellappa's FFT-based method for estimating the focus of expansion from optical flow. Does not include optical flow code.
  7. Octave/MATLAB utilities: random odds and ends like PPM image reading and a few small data massaging utilities.
  8. A MATLAB profile (skyline) Cholesky decomposition for solving well-ordered sparse symmetric positive definite linear systems. Several memory organizations are supported.
  9. A simple profile (skyline) Cholesky decomposition in C, for solving well-ordered sparse symmetric positive definite linear systems. Vector of row pointers representation.

Other software

  1. Macaulay resultant: a few Maple routines for calculating square and rectangular Macaulay-style multiresultant matrices. I need to release more of this stuff some day.
  2. FFCall: long ago in a galaxy far far away I hacked a few ancestral routines for building up a C argument list and calling a function on it (the reverse of varargs) for use in an interpreter. Bruno Haible used them as a starting point for the Foreign Function Interface of his excellent CLISP Common LISP, and FFCall was born...
  3. Archive2l archiver: this is a front end to (a slightly modified version of) the backup2l hard disk based backup script. We use it to regularly archive home directories and other sensitive files. (Archiving as opposed to backup means that the files are kept for a relatively long time, they are organized by logical units such as home directories rather than physical ones such as disk partitions, and temporary and easily regenerable files are not kept).