This package contains the source code for the registration method presented in: Will Chang and Matthias Zwicker. 2011. Global Registration of Dynamic Range Scans for Articulated Model Reconstruction. In ACM Transactions on Graphics, Vol. 30, No. 3, May 2011. Some notes: Compiling: Need to enable OpenMP support in VS2008, Installed Qt version 4.7.1 (open-source) and visual studio addin 1.1.7. Unzip include, libraries, multiframeAlign into the same directory. redist.zip is for executing without compiling, and test.zip contains some test data and results. I would suggest trying to use the software as-is before trying to recompile. The current version takes only OBJ files as input meshes. The main source code is in a directory called "multiframeAlign." The experiments are run via parameter files, which are specified in xml format. Here is an example use case for the pink panther 1 dataset. 1. The parameter file for initialization is in "multiframeAlign\Experiments\pink-panther_init.xml" 2. Here, you can keep all of the parameters fixed, except for the following important ones. • rootDir --> Specifies the root directory that contains all datasets. This is important because intermediate data generated by the program will be stored in a directory called "preprocessing" under this "rootDir". • meshSequence --> Specifies the first obj file in the sequence of files. The filename (before the extension) should conclude with a 0-padded number in a monotonically increasing sequence. • autoSaveCorrespondenceResult --> contains file name of where you want to save the final result • numCorrespondences --> how many points to sample on each frame to form the sparse graph for matching • initGCMatchRef --> Setting this option to 1 "turns on" the initialization. • depthScan_gridSpacing --> This is an important parameter. It specifies the spacing between the samples in the range scan. It should be expressed within the coordinate system that the scan is given in. Note that after the initialization for the pair of frames finishes, the program will exit. You will need to run a batch script to automatically process all of the frames. An example is the ruby script given in "Experiments\PP1Batch.rb". After the initialization step, you can then run the global refinement step for the entire dataset. 3. The parameter file for global refinement is in "multiframeAlign\Experiments\pink-panther_globalRefinement.xml". Important parameters that may need changing include: • rootDir, meshSequence, depthScan_gridSpacing should be kept the same as in the initialization file. • autoLoadGCMatchResult should point to the initialization results generated by the initialization step. The place where the numbers go should be replaced by "###" with the number of "#" equals the number of digits in the filename. • autoSaveSolverState should give a directory where you want to store the intermediate global alignment result. • Optionally autoSaveShot and saveTaucsErrorLog can be specified to take a screenshot or record an error log of the numerical solver. • refSampleDistance_Multiplier Specifies the sampling density of the DSG. • Graph_Nodes specifies the maximum number of articulated parts to fit. • slidingWindowSize specifies how many frames to simultaneously solve when optimizing the transformations. Please see the copyright notice below for this software. If you use this software for academic or research purposes, please kindly cite the paper listed above. Will Chang william.y.chang@gmail.com 2011-08-18 /////////////////////////////////////////////////////////////////////////// // Copyright and License Notice /////////////////////////////////////////////////////////////////////////// // These files contain code made by Will Chang under supervision of // Matthias Zwicker for his Ph.D. work with the University of // California, San Diego. // // Copyright (c) 2009 - 2011, William Y. Chang // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions // are met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // // * Neither the name of University of California, San Diego nor // the names of its contributors may be used to endorse or promote // products derived from this software without specific prior // written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. /////////////////////////////////////////////////////////////////////////// This software implementation uses several GPL / LGPL softwares listed below, which are not re-distributed in source nor binary form with this package. GPL/LGPL Packages - Nokia Qt LGPL (Version 4.7.1) - GC_optimization - software for energy minimization with graph cuts (Version 2.0). Olga Veksler. http://www.csd.uwo.ca/~olga/ - QGLViewer library, Version 2.2.6-2, released on July 23, 2007, Copyright (C) 2002-2006 Gilles Debunne (Gilles.Debunne@imag.fr) http://artis.imag.fr/Members/Gilles.Debunne/QGLViewer - ANN (Version 1.1.2) Sunil Arya and David Mount, Copyright (c) 1997-2010 University of Maryland and Sunil Arya and David Mount. All Rights Reserved. - tsnnls Version 2.0: Unconstrained and constrained sparse least-squares solvers built on the TAUCS library. Jason Cantarella. http://www.cs.duq.edu/~piatek/tsnnls/ BSD / Public domain software included with this package: - Basic tools (geom.h) Copyright (c) 2004, Sylvain Paris and Francois Sillion. http://people.csail.mit.edu/sparis/ - Wavefront OBJ model file format reader/writer/manipulator. Nate Robins, 1997, ndr@pobox.com, http://www.pobox.com/~ndr/ - SIMD oriented Fast Mersenne Twister(SFMT) pseudorandom number generator. Version 1.3.2. Copyright (C) 2006, 2007 Mutsuo Saito, Makoto Matsumoto and Hiroshima University. All rights reserved. - GLUT library - Copyright (c) Mark J. Kilgard, 1994, 1995, 1996, 1998. - TAUCS Version 2.0, November 29, 2001. Copyright (c) 2001, 2002, 2003 by Sivan Toledo, Tel-Aviv Univesity, stoledo@tau.ac.il. All Rights Reserved. - Automatically Tuned Linear Algebra Software v3.8.0 (C) Copyright 1999 R. Clint Whaley - AABB-triangle overlap test code, by Tomas Akenine-Moller (2001) //////////////////////////////////////////////////////////////////////////////// Copyright (c) 2004, Sylvain Paris and Francois Sillion All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of ARTIS, GRAVIR-IMAG nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. //////////////////////////////////////////////////////////////////////////////// glm.h Nate Robins, 1997 ndr@pobox.com, http://www.pobox.com/~ndr/ Wavefront OBJ model file format reader/writer/manipulator. Includes routines for generating smooth normals with preservation of edges, welding redundant vertices & texture coordinate generation (spheremap and planar projections) + more. //////////////////////////////////////////////////////////////////////////////// /* * @brief SIMD oriented Fast Mersenne Twister(SFMT) pseudorandom * number generator * * @author Mutsuo Saito (Hiroshima University) * @author Makoto Matsumoto (Hiroshima University) * * Copyright (C) 2006, 2007 Mutsuo Saito, Makoto Matsumoto and Hiroshima * University. All rights reserved. * * The new BSD License is applied to this software. * see LICENSE.txt */ //////////////////////////////////////////////////////////////////////////////// /* GLUT library */ /* Copyright (c) Mark J. Kilgard, 1994, 1995, 1996, 1998. */ /* This program is freely distributable without licensing fees and is provided without guarantee or warrantee expressed or implied. This program is -not- in the public domain. */ //////////////////////////////////////////////////////////////////////////////// TAUCS Version 2.0, November 29, 2001. Copyright (c) 2001, 2002, 2003 by Sivan Toledo, Tel-Aviv Univesity, stoledo@tau.ac.il. All Rights Reserved. TAUCS License: Your use or distribution of TAUCS or any derivative code implies that you agree to this License. THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED OR IMPLIED. ANY USE IS AT YOUR OWN RISK. Permission is hereby granted to use or copy this program, provided that the Copyright, this License, and the Availability of the original version is retained on all copies. User documentation of any code that uses this code or any derivative code must cite the Copyright, this License, the Availability note, and "Used by permission." If this code or any derivative code is accessible from within MATLAB, then typing "help taucs" must cite the Copyright, and "type taucs" must also cite this License and the Availability note. Permission to modify the code and to distribute modified code is granted, provided the Copyright, this License, and the Availability note are retained, and a notice that the code was modified is included. This software is provided to you free of charge. //////////////////////////////////////////////////////////////////////////////// /* * Automatically Tuned Linear Algebra Software v3.6.0 * (C) Copyright 1999 R. Clint Whaley * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions, and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. The name of the ATLAS group or the names of its contributers may * not be used to endorse or promote products derived from this * software without specific written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE ATLAS GROUP OR ITS CONTRIBUTORS * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * */