Machine Learning

  • smm: sklearn-friendly Python package to estimate the parameters of a t-Student mixture distribution from data using Expectation-Maximization.
  • latentplot: Python package to plot the latent space of a set of images with different dimensionality reduction methods.

Computer Vision

  • vitcifar10: Python package that provides a Vision Transformer (ViT) baseline code for training and testing on CIFAR-10.
  • otda: Python package for domain adaptation based on optimal transport.
  • fda: Python package for Fourier-based domain adaptation.
  • videosum: given a video file, this Python package produces a single-image storyboard that summarises the video.
  • libgrabcut: C++ library with Python bindings that implements GrabCut with CUDA-based Gaussian Mixture Models for real-time segmentation with scribbles.
  • ndarray-opencv-converter: if you have a C++ computer vision pipeline that uses OpenCV and you want to expose it to Python, this header-only library will make your code work seamlessly in C++ and Python.

Computer Vision applications in surgery

  • endoseg: Python package for contant area segmentation in endoscopic images.
  • keypoint-annotation-tool: Python Dash application for annotating keypoints in images.
  • endotip: Given an endoscopic image and a tool-background semantic segmentation, this Python module detects the tooltips of the instruments.


  • easyipc: fast and easy-to-use Python library for inter-process communications.
  • dockerx: package to launch Docker containers with X11 support in remote systems accessible via SSH.
  • docker-templates: collection of Docker templates (e.g. PyCharm and Visual Studio Code with PyTorch) ready for the development of Computer Vision and Machine Learning methods.
  • rtspwebviewer: web server that displays an RTSP video stream.


  • List of updated surgical datasets
  • synapi: Python package that allows you to interact with projects and datasets stored in Synapse as you would do with a local directory.
  • semi-synthetic: This repository contains the original data described in the paper Image Compositing for Segmentation of Surgical Tools without Manual Annotations. The data repository contains training foregrounds and backgrounds that are the source datasets employed to generate the semi-synthetic training data, which can be done using the code in the corresponding GitHub repository. The foregrounds and backgrounds in the semi-synthetic validation folder are used to generate a small semi-synthetic dataset that is used to detect when to stop the semi-synthetic training (mIoU convergence). As opposed to training foregrounds, validation foregrounds have been recorded on a red chroma key.
  • ipcl: this repository contains the original data described in the paper Intrapapillary Capillary Loop Classification in Magnification Endoscopy: Open Dataset and Baseline Methodology. The dataset comprises anonymised data of a total of 114 patients (45 normal, 69 abnormal). Every patient has a ME-NBI video (30fps) recorded following protocol in the paper. In this dataset, only magnification endoscopy subsequences are considered. All frames are extracted and assigned to the class normal or abnormal depending on the histopathology of the patient. Frames that are highly degraded due to lighting artifacts (e.g. blur, flares and reflections) up to the point where it is not possible to make a visual judgement of whether they are normal or abnormal are not included.