Several of the papers published as part of the HUMIM project uses in-house developed software for estimating the pose of a person in every frame of a movie. In order to fully publish the details of this software, we make the source available to everybody.
The software is available under the GNU General Public License (version 3 or later), which allows you to study and modify the software as much as you please.
You can download the software from here:
Some basic documentation is available as a technical report. We also provide Doxygen generated documentation, which provide more details of the individual classes.
The software has been developed on Linux, but also works on Mac OS X 10.6 with Xcode 3.2.6. Compiling the library requires at least gcc version 4.2.1. It should run on Windows with small modifications, but as none of the developers use Windows, this might require a bit of work. The tracker depends on several standard libraries, that you need to install in order to compile the tracker. These are
On Linux these should be easy to install using the system package manager and on OS X all relevant libraries can be installed using MacPorts.
Notes for Mac users: On MacOSX 10.6 and above you do not need to install Atlas as the Accelerate framework can be used instead. Also, the glut framework that comes with Xcode can be used. If you install ANN using MacPorts, you might find this CMake configuration file handy.
To compile the software simply use CMake to generate the build files and then go for it! On Unix-like operating systems this boils down to running
ccmake . make
from the command line.
When compiled, you will have the following executables
To run a program you need a configuration file that sets parameters, data paths, output paths, etc. The name of this file should be given as first input to all programs. The tracking programs also support an optional second argument --playback that replays previous tracking data rather than perform the tracking again. An example configuration file can be seen here
observation_type point_cloud state_type angle_state data_template hands2_060410/image_%.3d.points left_image_template hands2_060410/image_2_%.3d.png background_image hands2_060410/Background_2.png intrinsic_matrix 838.08544922 838.90100098 496.17398071 392.37945557 data_start_idx 1 output_directory output num_particles 150 initial_pose config/hands2_060410_1.pose pred_noise 0.15 convex_lambda 0.05 external_view config/hands2_060410.view bone_appearance config/soren_thin_appearance_milimeters_cylinder.txt skeleton_xsf config/soren_milimeters_cylinders.xsf measure_threshold 2 measure_variance 0.1 mocap_filename hands2_060410/hands2_060410.mocap
In general you should not expect this code to be something you just run and get a result. It is designed for development of new tracking techniques and not for developing applications of tracking. So some hacking is to be expected to get you what you want.
You can download example data from here. To use it, modify the configuration file distributed with the source code to point at the right paths and use whatever parameters you prefer.
If you use this software in academic work, we would appreciate if you say so in your papers. If you just use the basic particle filter classes you can cite the technical report. If you use specific priors, we would appreciate if you cite the paper that introduces the prior in question. The details of the specific papers are given in the Doxygen documentation for the individual classes.
Briefly put, you can use the following papers for the following classes: