SciKit-Surgery is a collection of compact libraries developed for surgical navigation. Individual libraries can be combined using Python to create clinical applications for translational research. However because each application’s requirements are unique the individual SciKit-Surgery libraries are kept independent, enabling them to be maintained, modified and combined in new ways to create new clinical applications. Keeping the libraries independent enables researchers to implement novel algorithms within a small library that can be readily reused and built on by the research community.
A typical clinical application might consist of an imaging source (e.g. SciKit-SurgeryBK to stream ultrasound images), a tracking source (e.g. SciKitSurgery-NDITracker) to locate the images in space, an image processor (e.g. SciKit-SurgeryTorch) to segment anatomy from the image, and a visualisation layer (e.g. SciKit-SurgeryVTK)
SciKit-Surgery is developed at the Wellcome EPSRC Centre for Interventional and Surgical Sciences, part of University College London (UCL).
One way to get an introduction to SciKit-Surgery is to take a look at some the applications currently using SciKit-Surgery libraries;
The SmartLiver augmented reality guidance system for key hole liver surgery is built on the SciKit-Surgery libraries and within our ISO-13485 quality management system. SmartLiver is currently undergoing clinical trials at the Royal Free Hospital London. SmartLiver uses SciKit-SurgeryCore, SciKit-SurgeryBK, SciKit-SurgeryImage, SciKit-SurgeryVTK, SciKitSurgery-NDITracker, SciKit-SurgerySpeech, SciKit-SurgeryTF, SciKit-SurgerySurfaceMatch, SciKit-SurgeryTorch, and SciKit-SurgeryCalibration. The image above shows the user interface using SciKit-SurgerySpeech being tested in theatre.
SnappySonic is an ultrasound simulator developed primarily for educational purposes. SnappySonic uses SciKit-SurgeryUtils, SciKit-SurgeryNDITracker, SciKit-SurgeryArucoTracker, and SciKit-SurgeryImage.
SciKit-SurgeryBARD uses SciKit-SurgeryCalibration, SciKit-SurgeryCore, SciKit-SurgeryUtils, SciKit-SurgeryVTK, SciKit-SurgerySpeech, and SciKit-SurgeryArucoTracker to build a Basic Augmented Reality Demonstrator. SciKit-SurgeryBARD was developed for educational purposes, but by swapping SciKit-SurgeryArucoTracker for SciKitSurgery-NDITracker it can be used as a minimal system for surgical augmented reality.
SciKit-SurgeryFRED was developed for teaching and research for registration applied to image guided interventions. SciKit-Surgery provides a graphical front end to the image processing classes within SciKit-SurgeryImage and the image registration classes within SciKit-SurgeryCore.
Tutorials are split into three groups, those that show how to assemble SciKit-Surgery libraries into an application, those that concentrate on the workings a single application, and those that are aimed at general education in image guided interventions using SciKit-Surgery.
- Use SciKit-SurgeryUtils and SciKit-SurgeryArUcoTracker to build an AR application using your webcam.
- ROS Integration
- How To Use VTKOverlayWindow
- How To Add Text To VTKOverlayWindow
- Using The Rendering Generator
- Distance Fields & Voxelisation
- Use a ready made application to investigate different ways of presenting augmented reality.
- Improve your impact by creating high quality software implementations of your research.
- Camera calibration using your phone or webcam.
- Make and Calibrate a Pointer.
- Online Fiducial Registration Tutorial.
- Point Based Registration using Lego or anatomical phantoms.
- Camera Calibration of Laparoscopes
- scikit-surgerycore - Algorithms/tools common to all scikit-surgery packages
- scikit-surgeryimage - Image processing algorithms using OpenCV
- scikit-surgeryvtk - Implements VTK functionality for IGS applications
- scikit-surgeryutils - Example applications/utilities
- scikit-surgerycalibration - Calibration algorithms (camera/pointer/ultrasound etc)
- scikit-surgerysurfacematch - Stereo reconstruction and point cloud matching
- scikit-surgerytf - IGS models implemented in TensorFlow
- scikit-surgerytorch - IGS models implemented in PyTorch
- scikit-surgerynditracker - Interface for Northern Digital (NDI) trackers. Vicra, Spectra, Vega, Aurora.
- scikit-surgeryarucotracker - Interface for OpenCV ARuCo.
- scikit-surgeryspeech - Speech/Wakeword detection