After changes in ITK’s application programming interface and coding practices, the platform hits new performance numbers.
Clifton Park, NY, June 4, 2019 – Kitware and the Insight Toolkit (ITK) community released ITK 5.0, which improves performance on modern computing architectures, adds a new interface for Python filters, and modernizes the programming interface.
ITK is a software platform with advanced image segmentation, registration, and analysis algorithms for scientific and medical images such as CT, MRI, and ultrasound scans. Thanks to ITK’s open source codebase, users have downloaded the platform through BSD or Apache licenses since the first public release in 2002. Users include the National Library of Medicine, the National Science Foundation, the National Cancer Institute, other agencies of the National Institutes of Health, and Kitware’s own the medical computing team, which supports software such as 3D Slicer with capabilities from ITK.
“ITK’s new Python interface facilitates the application of cutting-edge, artificial intelligence algorithms to imaging data from the medical, biological, material science, and remote sensing domains,” said Matthew McCormick, the lead developer of ITK at Kitware.
To optimize processor performance and decrease computational overhead, ITK 5.0 features new options for multithreading that support load balancing. These options include a thread pool with modern C++ threads and a Threading Building Blocks (TBB) backend that intuitively splits images based on the workload of available processors.
“Improved multi-threading modern C++ performance optimizations are available across the 300+ filters available in the toolkit,” McCormick said.
To further improve ITK’s application in rapid prototyping, ITK 5.0 provides a new interface for Python filters. This interface provides a functional style familiar to Python developers, Pythonic naming, and a succinct syntax. It also extends to filters for meshes, point sets, and spatial objects in addition to images.
Other improvements result from changes in ITK’s main codebase, which now uses modern C++. This means that ITK recognizes keywords such as “delete,” “override,” “noexcept,” “auto” and “using.” ITK also supports range-based for-loops for fundamental data types and lambdas for concise expression of complex operations to execute in parallel on images or point sets.
“Enhancements to the C++ and Python programming interfaces mean that developers can create new algorithms quickly on a highly performant framework,” McCormick said.
During the release cycle, ITK’s development process moved to GitHub, including continuous integration testing, code review and issue tracking. Overall, contributions and activity have increased—49 research software engineers contributed to the release, including 20 new contributors. To read more about ITK’s development, please see the release notes on the Kitware blog.
Forthcoming announcements are anticipated in late summer on the integration of ITK with modern web technologies.
Kitware provides software research and development services to our customers who range from startups to Fortune 500 companies and include government and academic laboratories worldwide. Our core areas of expertise are computer vision, data and analytics, high-performance computing and visualization, medical computing, and software process. We have grown to over 150 employees, with offices in Clifton Park, NY; Arlington, VA; Carrboro, NC; Santa Fe, NM; and Lyon, France. More information can be found on kitware.com.