Medical imaging has developed into a necessary part of western medicine and has allowed for the detection and treatment of everything from cancer to embolisms. As computers began to integrate their way into the doctor’s office, so too did the possibility to do amazing things like map the human body digitally. One specific project which took up this challenge was the Visible Human Project. Using both X-ray and MRI scanners, a cross-section of the human body was created using high-resolution 3D digital images. Beginning in 1986, the project took about 19 years but resulted in a complete male and female dataset. A literally comprehensive picture of human anatomy held promise, but early user groups realized that there were limitations with the available tools to use such data. Out of this observation came a 1999 National Library of Medicine project called Insight Toolkit (ITK).
Today, the ITK project a large open source community, largely maintained by Kitware and members of the user community. The reason that Kitware has taken up the maintenance of this project is their desire to provide the best software possible for the medical community and other scientific imaging customers. The community itself has supported this project because it offers such a flexible platform and provides state-of-the-art algorithms. In addition to these groups, the Insight Software Consortium (ISC) holds the copyright to ITK and provides general community governance. ISC is a non-profit, educational consortium dedicated to promoting and maintaining open source, and promotes freely available software for medical image analysis. With contributions from each of these groups, ITK is set up for success; the toolkit remains cutting edge and free to use for the long term.
Looking to the future, one of the planned developments is to expand on the recently developed interactive Jupyter widgets. Widgets for 2D and 3D images will be extended so that they can support other data types like point sets and segmentation surfaces. There is also a plan to produce more examples of ITK that are accessible through MyBinder-hosted Jupyter notebooks. In addition to these changes, the ITK team hopes to open new frontiers in knowledge sharing for computational image analysis methods with interactive examples. Through this development, they will help students learn how algorithms work by interactively running them through the WebAssembly capabilities of modern web browsers. An important part of making this work is itk.js, which enables the generation of WebAssembly, and vtk.js (the browser-native version of the Visualization Toolkit), which can render the results.
Perhaps the most exciting and important work to mention is the next major release of ITK, ITK 5. It is currently in release candidate phase. ITK 5 is a major upgrade to the toolkit. The entire codebase (over 1.7 million lines of code) was modernized in style and updated to C++, multi-threading underwent a major refactoring, and there are now three different threading backends available. Thanks to this refactoring it is now much easier to write multi-threaded code in ITK 5. Some of the new backends include a native thread pool and threading based on Intel Threading-Building-Blocks (TBB). In addition, ITK 5 will feature drastic improvements to the Python API and Python coverage in the toolkit. For example, a more procedural, snake case API is available for filters, and it will be able to use point sets, meshes, and spatial objects, in addition to images, in Python. Even with all these exciting updates, it is still anticipated that the most interesting developments will come in time from the community. If you would like to be part of the community, members communicate through the Discourse discussion forum and mailing list at discourse.itk.org.