elastix 5.0.0
Release notes
By downloading elastix
you accept the conditions written here.
elastix 5.0.0
was released 21-10-2019. All binaries were created using ITK 5.0.1
.
download | description | compiler | CMake version |
---|---|---|---|
elastix-5.0.0-manual.pdf | The manual | ||
elastix-5.0.0-win64.zip | Windows 64 bit binaries | MSVS 2017 | CMake 3.15.4 |
elastix-5.0.0-linux.tar.bz2 | Linux 64 bit binaries | gcc 7.4.0 | CMake 3.10.2 |
elastix-5.0.0-mac.tar.gz | Apple Mac 64 bit binaries | Clang 4.2.1 LLVM 10.0.1 | CMake 3.15.4 |
Some download statistics can be found here.
Enhancements
-
elastix
has migrated to the recent ITK version 5.0.1! ITK5 is a major new release featuring among others a move to GitHub, switching to C++11, thread pools, and a new spatial object implementation. These modifications have quite some impact onelastix
, and we decided to adopt them. In order to do so, quite a number of modifications were directly integrated and contributed to the ITK. Long story short,elastix 5.0.0
can now be build with the latest release of ITK (v5.0.1), using the CMake flagITK_LEGACY_REMOVE ON
.elastix
does not build anymore with earlier versions of ITK. -
We have migrated to the new
SpatialObject
implementation of ITK. This was quite involved, as the masks used inelastix
are actually spatial objects, and are used throughout. -
We have started to use new C++11 language features, such as the use of
nullptr
, switched to using new Standard C++ Library functions, using theoverride
keyword, and removal of theregister
keyword and dynamic exception specifications. This also means that we have dropped support for compilers that do not support these new features. -
We have added the command line option
--extended-version
that additionally gives version information about the toolchain that we use. -
We started using GoogleTest for unit testing, complementary to the existing elastix registration tests.
New classes and methods
- A number of new optimization methods were introduced:
AdaGrad
,AdaptiveStochasticLBFGS
,AdaptiveStochasticVarianceReducedGradient
(experimental),PreconditionedGradientDescent
andPreconditionedStochasticGradientDescent
. They can be selected via:These optimizers were (mostly) developed in the context of the PhD thesis of Yuchuan Qiao, and published via Klein et al., Preconditioned Stochastic Gradient Descent Optimisation for Monomodal Image Registration, 2011, Qiao et al, A Stochastic Quasi-Newton Method for Non-rigid Image Registration, 2015, Qiao et al., Fast Automatic Step Size Estimation for Gradient Descent Optimization of Image Registration, 2016 and Qiao et al., An efficient preconditioner for stochastic gradient descent optimization of image registration, 2019.(Optimizer "PreconditionedStochasticGradientDescent")
Bug fixes
-
We fixed an overflow issue in the samplers, that occurred in case of really large images.
-
'elastix 4.9.0' suffered from a performance regression, which was targeted down to the ITK library. The timer that we used (an
itk::ResourceProbe
) had some serious overhead introduced in ITK 4.9. We fixed it in the ITK directly. -
We fixed a bug in the library interface (
TransformixFilter
): it was not propagating direction information.
Contributors
This release has commits by (in alphabetic order): Floris Berendsen, Niels Dekker, Stefan Klein, Kasper Marstal, Matt McCormick, Csaba Pinter, Denis P. Shamonin, Marius Staring, Harmen Stoppels