ITK 5.3 Release Candidate 1 available for testing

September 14, 2021
zlib, zlib-ng performance

We are happy to announce the Insight Toolkit (ITK) 5.3 Release Candidate 1 is available for testing! ITK is an open-source, cross-platform toolkit for N-dimensional scientific image processing, segmentation, and registration.

ITK 5.3 is a feature release that accelerates performance, provides new segmentation and shape analysis algorithms, and makes over 200 more improvements.

Release Candidate 1 highlights performance improvements. For deformable image registration, b-spline sampling was improved by ~30%. Multi-threading in Python was improved by adding Threading Building Blocks (oneTBB) to the cross-platform binaries, which improves multi-threaded parallelism by ~5-10%. Compression time with zlib, used by common medical imaging file formats like NIFTI, NRRD, or MetaImage, was dramatically reduced through migration to zlib-ng.

namedescriptionzlib duration [ms]zlib C.Ratiozlib-ng duration [ms]zlib-ng C.Ratiozlib-ng Speed-upzlib-ng C. Ratio improvement
wbPET.mhawhole body PET6729.7%6619.3%2%4%
mra.nrrdMR angiography130049.0%109749.1%19%0%
CBCT.nrrdConeBeam CT1128142.5%948641.3%19%3%
input.niibrain MRI481857.6%335357.4%44%0%
scan7.mhamouse ultrasound593945.4%469446.2%27%-2%
TBR5_clinpet.niilabel map7820.5%910.5%759%-2%
WhiteMatter.niilabel map1855.6%765.8%143%-4%
Average145%0%

Comparison of image compression with traditional zlib library and the new zlib-ng replacement introduced with ITK 5.3 using the default compression level.

Download

Python Packages

Install ITK Python packages with:

pip install --upgrade --pre itk

Library Sources

Testing Data

Unpack optional testing data in the same directory where the Library Source is unpacked.

Checksums

Features

Python

  • Python packages now include oneTBB support for improved performance.
  • Following CPython’s deprecation schedule Python 3.6 is no longer supported.
  • Initial Python wrapping is available for the Video modules.
  • TransformToDisplacementField is now available in Python.

C++

  • C++14 is now required.
  • The minimum CMake version required is now 3.16.3.
  • New functions: MakePoint, MakeVector, MakeIndex, MakeSize.

New filter

  • itk::TransformGeometryImageFilter: applies a rigid transform to an Image‘s metadata.

Remote module updates

New remote modules:

  • HASI: High-Throughput Applications for Skeletal Imaging
  • ITKGrowCut: segments a 3D image from user-provided foreground and background seeds

Updated modules: AdaptiveDenoising, AnisotropicDiffusionLBR, BSplineGradient, BoneEnhancement, BoneMorphometry, Cuberille, GrowCut, HASI, HigherOrderAccurateGradient, IOFDF, IOScanco, IsotropicWavelets, MinimalPathExtraction, Montage, MorphologicalContourInterpolation, RTK, SimpleITKFilters, SkullStrip, SplitComponents, Strain, TextureFeatures, Thickness3D, TotalVariation, TubeTK, and Ultrasound.

Third party library updates

  • gdcm
  • niftilib
  • zlib migrated to zlib-ng
  • hdf5
  • kwsys
  • metaio
  • googletest
  • vxl

Congratulations

Congratulations and thank you to everyone who contributed to this release.

Of the 32 authors who contributed since v5.2.0, we would like to specially recognize the new contributors:

Pranjal Sahu, Darren Thompson, Tomoyuki SADAKANE, Oleksandr Zavalistyi, Jose Tascon, Kian Weimer, Michael Kuczynski, Ebrahim Ebrahim, and Philip Cook.

What’s Next

We anticipate an additional release candidate following community testing before the 5.3.0 release. The following release candidates will improve related documentation and make further improvements. Please try out the current release candidate, and discuss your experiences at discourse.itk.org. Contribute with pull requests, code reviews, and issue discussions in our GitHub Organization.

Full Changelog

Enjoy ITK!

Leave a Reply