Import 2017-06-07 23:51:09: master 6b5fa1a4

Author Committer Branch Timestamp Parent
jcfr jcfr master 2014-08-27 15:51:35 master 708cc498
Changeset

BUG: Update ITKv4 and BRAINSTools - BRAINSFit performance improvement.

(1) This commit updates the tag to use ITK release branch as of
2014-08-16 and integrate the two patches improving MattesMutualInformation
metric provided by Hans and Ali.

(2) It also update the version of BRAINS to use the master branch as of
2014-08-27. More specifically, it updates the BRAINSFit xml code to
have a new set of default parameters for the LBFGSB optimizerv4.

Let's note that it excludes the commit re-organizing find_package(VTK)
calls. These changes would have to be integrated when Slicer itself will
be re-organizing its call to find_package(VTK...)

For sake of completeness, here are the comments reported by Ali:

[BEGIN-ALI-COMMENT]
Although an enormous speed improvement to the previous versions of
Mattes metric and BRAINSFitv4, the current version of BRAINSFit is
still slower than the old BRAINSFitv3 by a factor of 1.7 if both are
run by their default parameters. The factor 1.7 is computed by averaging
over running times of several experiments that are different in the
number of used samples.

In the case of the experiments reported in this google doc (choosing
100,000 for the number of samples):

Registration process is converged in 1 min 35 sec in BRAINSFitv3 using default parameters for BSpline registration.
Registration process is converged in 2 min 46 sec in BRAINSFitv4 using default parameters for BSpline registration.

Also, an independent Mattes metric was used after the registration
process to compare the outputs of ITKv3 and ITKv4 registrations with
the input fixed atlas image. It generated -0.773 and -0.757 for the
outputs of BFitv3 and BFitv4 respectively that are different by %2.1.

[1] https://docs.google.com/document/d/1j8Hy3di54YG42Nr7MGPDWn2XJIAF1oFzC17iV-LJGWI/edit
[END-ALI-COMMENT]

This work has been possible by having the following people
working together (in alphabetical order):

Ali Ghayoor <ali-ghayoor@uiowa.edu>
Andras Lasso <lasso@queensu.ca>
Bradley Lowekamp <blowekamp@mail.nih.gov>
Csaba Pinter <csaba.pinter@queensu.ca>
Hans Johnson <hans-johnson@uiowa.edu>
Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com>
Kent Williams <norman-k-williams@uiowa.edu>
Kevin Wang <kevin.wang@rmp.uhn.on.ca>
Kilian Pohl <pohl.kilian@gmail.com>
Matt McCormick <matt.mccormick@kitware.com>
Steve Pieper <pieper@bwh.harvard.edu>

//-----------
ITKv4 changes
//-----------
$ git shortlog 3147239..372991d --no-merges
Brad King (1):
COMP: Fix vxl_config_macros usage of CMake check macros

Hans Johnson (2):
PERF: Revert Remove large foot print of PDF derivatives.
PERF: Distribute initialization per thread buffers

Matthew McCormick (1):
BUG: Fix Nifti IO read with large images.

//-----------------
BRAINSTools changes
//-----------------
$ git shortlog dd996be..68303b3 --no-merges
Ali Ghayoor (10):
ENH: Use BSplineTransformInitializer for BSpline Registration
BUG: fix BRAINSFitTest_ROIBSpline test failure
BUG: fix BRAINSFitTest_ROIBSpline test failure
ENH: Add observer for BSpline regsitration in BRAINSFitv4
ENH: Print selective parameters in BSpline observer
ENH: Generalize the legacy PerformTestMMI
ENH: Add lbfgsb optimizer parameters to commandline
BUG: fix ROIBSpline test failure in linux system
ENH: Use a new default parameters set for LBFGSBoptv4
COMP: Updated ITK tag to BRAINSiaITK

David Welch (6):
BUG: Fixed typo in singleSession for T2 passing to inputSpec of segmentation workflow
ENH: Added commandline option to use T1 as sentinal file (off by default)
BUG: VIRTUALENV option is optional
BUG: Fixed typo in configFileParser.py STYLE: Ran autopep8 on AutoWorkup.py ENH: Added commandline testing for configFileParser.py
ENH: CLUSTER config section included in ENV section
BUG: Deprecated local processing until code can be updated

Hans Johnson (5):
ENH: Remove outdated and non-functioning md5 files.
ENH: Added Sentinal output file checking for Workflows
STYLE: Only give debugging information when requested
ENH: Add logic for better skipping
ENH: Add new Mattes Mutual Information implementation.

Jean-Christophe Fillion-Robin (2):
Revert "COMP: fine-tune VTK dependencies"
Revert "COMP: move find_package(VTK) down to individual project directories"

Kent Williams (4):
COMP: move find_package(VTK) down to individual project directories
COMP: Switch back to official ITK repo
COMP: Silence warnings
COMP: fine-tune VTK dependencies

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23627 3bd1e089-480b-0410-8dfb-8563597acbee

mod - SuperBuild.cmake Diff File
mod - SuperBuild/External_ITKv4.cmake Diff File