This package contains the source code which was developed during the PHD of Tobias Gass at the Computer Vision Lab at ETH Zurich, Switzerland, from 2010-2015.
Contained are four sub-projects that cover the work related to individual publications and an additional project containing general tools. If you use a part of the code for research purposes, please make sure to cite the relevant paper:
SimultaneousRegistrationSegmentation (SRS):
MarkovRandomFieldRegistrationFusion (MRegFuse):
SemiSupervisedSegmentationPropagation (SSSP):
ConsistencyBasedRegistrationRectification (CBBR):
The build uses cmake. It is advisable to create a build directory and run CMake from there.
> mkdir build
> cd build
> ccmake ../
> make
> make doc #optional
In the GUI of ccmake you can then chose which sub-projects to build, eg BUILD_SRS = ON.
Dependencies of the framework vary with enabling/disabling individual subprojects. For instance, in order to build SRS, only the dependencies for SRS are necessary. Some general dependencies are shared for all sub-projects and are listed first:
Build was tested on Debian wheezy and OSX 10.10. In OSX, the RandomForest library will not build easily since OpenMP is not included in clang, but this is an optional feature.
-std=c++11
or -std=gnu++11
in the C/C++ compiler flags)SRS allows for a choice of discrete optimizers. Interfaces for TRW-S, GCO and OpenGM are provided, but those need to be downloaded and installed by the user under their respective license. Note that the optimizers are optional and can be enabled/disabled during cmake configuration. The respective dependencies and checks will be automatically added to the build.
OpenGM can be obtained here: http://hci.iwr.uni-heidelberg.de/opengm2/ (https://github.com/opengm/opengm) current wrapper utilizes BOOST, so make sure to install opengm with their boost feature enabled Note that openGM comes with a wide variety of discrete optimizers and wrappers, but may be less efficient than using the direct wrappers provided by SRS directly (TRW-S, GCO)
TRW-S can be downloaded here: http://research.microsoft.com/en-us/downloads/dad6c31e-2c04-471f-b724-ded18bf70fe3/
Copy the source into the folder source/External/TRWS
. A patch will be applied automatically during the build process. This will disable all energyTypes except typeGeneral from the downloaded library because the extended functionality was not implemented for those.
GCO can be downloaded here: http://vision.csd.uwo.ca/code/
Copy this code into the folder source/External/GCO
. The same directory can also be used as root for the binary graph-cut (GC) optimizer, which is expected inside the folder source/External/maxFlow
.
A choice of classifiers is available which can be optionally enabled/disabled. C-UGMIX is a Gaussian mixture model estimator, and RF a random forest library. Both are included under their own licenses in this package. Note that the RF library depends on both Boost and OpenMP.
CBRR requires a working copy of Matlab. Tested with 2013 and 2014 versions. It also requires minFunc, which can be downloaded from here:
Make sure to add the path to your MATLABPATH, as well as the directory
> source/ConsistencyBasedRegistrationRectification/Matlab/
which contains some convenience wrappers for minFunc. There is also experimental support for l1 minimization using matlab, which additionally requires http://www.cs.ubc.ca/~schmidtm/Software/L1General.html
The main part of this project is licensed under the terms of the BSD (below). Some included parts of external projects are subject to their own license, which is included either within the source code itself or supplied in a separate License file.
Copyright (c) 2010-2015, Copyright (C) 2010-2015, ETH Zurich - Computer Vision Laboratory, author Tobias Gass (tobiasgass@gmail.com), unless explicitly stated otherwise All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
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.
The views and conclusions contained in the software and documentation are those of the authors and should not be interpreted as representing official policies, either expressed or implied, of the FreeBSD Project.