Open-source software

The GIFT-Surg project requires the development of software components needed to perform some specific tasks. However, they can be reused for other purposes, making the sharing of the source code valuable. These components are used to solve problems in areas such as concurrent programming, data acquisition and image processing.


Slic-Seg is an open-source software for the interactive segmentation of medical images. Slic-Seg provides a prototype tool that could be used to help identify and analyse organs such as the placenta as part of assessment and treatment planning for fetal surgery and other surgical applications. 

Slic-Seg is a minimally interactive online learning-based segmentation method. An online random forest is first trained on data coming from scribbles provided by the user in one single selected start slice. This forms the basis for a slice-by-slice framework that segments subsequent slices before incorporating them into the training set on the fly. 

Slic-Seg was developed by Guotai Wang at the  Translational Imaging Group  at UCL. 

Download Slic-Seg  (GitHub) 

Segmentation of a stack of slices using Slic-Seg, where interactions are only required in a single slice for obtaining a good initial segmentation of the entire stack.


DyBa ORF is a Dymanically Balanced Online Random Forest, which addresses three problems in learning with Random Forests:

  • Online learning. It can accept gradually arrived training data and update the model on-the-fly.
  • Data imbalance. It deals with imbalanced data of different classes, avoiding low correct rate of classification for minor class.
  • Changing imbalance ratio. The ratio (degree) of imbalance may dynamically change when new training data arrive sequentially. Compared with traditional Online Random Forest (Saffari, A. 2009, Barinova, O. 2012) which assumes the imblance ratio do not change, DyBa ORF updates the model dynamically with the ability to be adapted to new imbalance ratio.

DyBa ORF was  developed as part of the GIFT-Surg project. The algorithm and software were developed by Guotai Wang at the  Translational Imaging Group in the  Centre for Medical Image Computing  at University College London (UCL). 

Download DyBa ORF  (GitHub) 

Examples of interactive segmentation using DyBaORF

Examples of interactive segmentation using DyBaORF. The red and blue curves in the first row are user interactions for the foreground and background respectively and they are imbalanced. The second row shows segmentation results (green curves) compared with the ground truth (yellow curves).


Python Unified Multi-tasking API (PUMA) provides a simultaneous multi-tasking framework that takes care of managing the complexities of executing and controlling multiple threads and/or processes. 

PUMA abstracts each independent task of an application as a separate execution stream, called a “runnable”, which can be run in a separate process or thread. PUMA provides buffers for runnables to exchange data, plus mechanisms for sending commands to runnables and receiving error status and logging information from them. 

Source code can be found here.

This picture shows the XonoNav graphical user interface, displaying an ultrasound images flow overlayed with a needle estimated position (top left), and a sensor images flow (top and bottom rights) processed to compute the needle position.

XonoNav is a navigation software designed for safe operation of surgical tools such as needles in ultrasound-guided procedures. This software involves ultrasound frames acquisition, performed with GIFT-GRAB, and concurrent data processing, performed with PUMA, to ensure real-time performance. The above picture shows its graphical user interface, displaying an ultrasound images flow overlayed with a needle estimated position (top left), and a sensor images flow (top and bottom rights) processed to compute the needle position.


GIFT-Grab supports the acquisition, processing and encoding of video streams from medical devices in real time.

GIFT-Grab leverages frame-grabber hardware in conjunction with state-of-the-art video acquisition and encoding software. GIFT-Grab is implemented in C++11, but also provides a  Python  API that is compatible with the popular scientific computing packages  NumPy  and  SciPy.

The GIFT-Grab Python API abstracts video data as  NumPy arrays, a datatype used by many state-of-the-art scientific image processing libraries including but not limited to  OpenCV,  SciPy  and its various domain-specific toolkits (SciKits), and  Pandas. This abstraction allows for building powerful real-time image processing applications by leveraging the scientific computing capabilities offered by these libraries.

GIFT-Grab was designed and developed by Dzhoshkun I. Shakir, Luis Garcia-Peraza-Herrera, Pankaj Daga, Tom Vercauteren, Tom Doel, and Matt Clarkson at the  Translational Imaging Group in the  Centre for Medical Image Computing at University College London (UCL).

Download GIFT-Grab (GitHub)

Install GIFT-Grab with pip (Python) 



endocal is a cross-platform, lightweight, compact GUI application for the optical distortion calibration of fluid-immersed endoscopes with a custom-made (sterility preserving) calibration target.

Following a successful calibration, endocal can also display the live distortion-corrected endoscopic video stream in real time. In addition, endocal features a command-line application for generating calibration pattern models to use in computer-aided calibration target fabrication.

endocal was developed by Dzhoshkun I. Shakir and Daniil I. Nikitichev at the  Translational Imaging Group  in the  Centre for Medical Image Computing  at University College London (UCL), and is also available on the Python Package Index (PyPI) as a user-friendly installation option.

Watch video of endocal in action  [links to UCL Media Central]

Download endocal (Python)

Download endocal (GitHub)


GIFT-Cloud is a system which tackles many of the data access problems faced by imaging researchers.

Key benefits of the system include the ability to easily integrate with the IT systems of hospitals and universities, to support varied collaboration agreements and for the data sharing process to fit easily within routine clinical workflow. This reduces the time burden on clinicians and makes it easier for researchers to access a wider range of imaging data, vital for developing innovative and robust code. 

More advanced functions include a new way of anonymising information automatically which clears patient data from both the file metadata and pixel data whilst still allowing for longitudinal studies and the ability to store and share software test results for quick feedback. 

GIFT-Cloud was developed by Tom Doel and Dzhoshkun I. Shakir at the  Translational Imaging Group  in the  Centre for Medical Image Computing  at University College London (UCL). 

Download GIFT-Cloud  (GitHub)