To contact us with problems or questions, please post to this repository's GitHub issue reporting system (requires a GitHub user account).

Overview

SimpleITK is a simplified programming interface to the algorithms and data structures of the Insight Segmentation and Registration Toolkit (ITK). It supports bindings for multiple programming languages including C++, Python, R, Java, C#, Lua, Ruby and TCL. Combining SimpleITK's Python binding with the Jupyter notebook web application creates an environment which facilitates collaborative development of biomedical image analysis workflows.

In this course, we will use a hands-on approach utilizing Python based SimpleITK Jupyter notebooks to explore and experiment with various toolkit features. Participants will follow along using their personal laptops, enabling them to explore the effects of changes and settings not covered by the instructor. We will start by introducing the toolkit's two basic data elements, Images and Transformations. We will then explore the various features available in the toolkit's registration framework including: optimizer selection, the use of linear and deformable transformations, the embedded multi-resolution framework, self-calibrating optimizers and the use of callbacks for registration progress monitoring. Finally, we will show how to use SimpleITK as a tool for image preparation and data augmentation for deep learning via spatial and intensity transformations.

Beyond the notebooks used in this course you can find the main SimpleITK notebooks repository on GitHub.

Organizers

  • Hans J. Johnson, University of Iowa.
  • Bradley C. Lowekamp, Medical Science & Computing and National Institutes of Health.
  • Ziv Yaniv, TAJ Technologies Inc. and National Institutes of Health.

Prerequisites

If you encounter problems or have questions, please post using this repository's GitHub issue reporting system (requires a GitHub user account).

In this course we will use the Anaconda Python distribution. Please follow the instructions below to setup the environment we will use during the course. All commands below are issued on the command line (Linux/Mac - terminal, Windows - Anaconda Prompt).

  1. Download and install the Fiji image viewer. This is the default image viewer used by SimpleITK:
    • On Windows: Install into your user directory (e.g. C:\Users\[your name]\Fiji.app).
    • On Linux: Install into ~/bin .
    • On Mac: Install into /Applications .
  2. Download and install the Anaconda Python 3.6 version for your operating system. We assume it is installed in a directory named anaconda3.
    • On Windows: open the Anaconda Prompt (found under the Anaconda3 start menu).
    • On Linux/Mac: on the command line source path_to_anaconda3/bin/activate root
  3. Update the root anaconda environment and install the git version control system into it.
    conda update conda
    conda update anaconda
    conda install git
    
  4. Clone this repository:
    git clone https://github.com/SimpleITK/SPIE2018_COURSE.git
    
  5. Create the virtual environment containing all packages required for the course:
    conda env create -f SPIE2018_COURSE/environment.yml
    
  6. Activate the virtual environment:
    • On Windows: open the Anaconda Prompt (found under the Anaconda3 start menu) activate sitkpySPIE18.
    • On Linux/Mac: on the command line source path_to_anaconda3/bin/activate sitkpySPIE18
  7. On the command line: jupyter nbextension enable --py --sys-prefix widgetsnbextension
  8. Go over the setup notebook (requires internet connectivity). This notebook checks the environment setup and downloads all of the required data.
    cd SPIE2018_COURSE
    jupyter notebook setup.ipynb
    

Program

  • [1:30PM- 2:00PM] history and overview of SimpleITK. [ppt: setup and schedule, history, overview]
  • [2:00PM- 2:30PM] spatial transformations. [notebook pdf]
  • [2:30PM- 3:00PM] images and resampling. [notebook pdf]
  • [3:00PM - 3:15PM] coffee break. [coffee ]
  • [3:15PM - 3:45PM] data augmentation for deep learning. [notebook pdf]
  • [3:45PM - 4:30PM] basic registration. [notebook pdf]
  • [4:30PM - 5:15PM] advanced registration. [notebook pdf]
  • [5:15PM - 5:30PM] notebook development and testing, concluding remarks. [ppt: development]

Supplementary Material

For those interested in reading more about the design of SimpleITK and the Notebooks environmnet: