scikit-surgery icon indicating copy to clipboard operation
scikit-surgery copied to clipboard

SciKit-Surgery - Compact Libraries for Surgical Navigation

scikit-surgery

.. image:: https://github.com/UCL/scikit-surgery/raw/master/weiss_logo.png :height: 128px :width: 128px :target: https://github.com/UCL/scikit-surgery

| .. image:: https://readthedocs.org/projects/scikit-surgery/badge/?version=latest :target: http://scikit-surgery.readthedocs.io/en/latest/?badge=latest :alt: Documentation Status

.. image:: https://img.shields.io/badge/Cite-SciKit--Surgery-informational :target: https://doi.org/10.1007/s11548-020-02180-5 :alt: The SciKit-Surgery paper

.. image:: https://img.shields.io/twitter/url?style=social&url=http%3A%2F%2Fscikit-surgery.org :target: https://twitter.com/intent/tweet?screen_name=scikit_surgery&ref_src=twsrc%5Etfw :alt: Get in touch via twitter

.. image:: https://img.shields.io/twitter/follow/scikit_surgery?style=social :target: https://twitter.com/scikit_surgery?ref_src=twsrc%5Etfw :alt: Follow scikit_surgery on twitter

.. introduction-start

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 <http://www.ucl.ac.uk/weiss>, part of University College London (UCL) <http://www.ucl.ac.uk/>.

.. introduction-end

.. features-start

Packages

  • scikit-surgerycore <https://github.com/UCL/scikit-surgerycore>_ - Algorithms/tools common to all scikit-surgery packages
  • scikit-surgeryimage <https://github.com/UCL/scikit-surgeryimage>_ - Image processing algorithms using OpenCV
  • scikit-surgeryvtk <https://github.com/UCL/scikit-surgeryvtk>_ - Implements VTK functionality for IGS applications
  • scikit-surgeryutils <https://github.com/UCL/scikit-surgeryutils>_ - Example applications/utilities
  • scikit-surgerycalibration <https://github.com/UCL/scikit-surgerycalibration>_ - Calibration algorithms (camera/pointer/ultrasound etc)
  • scikit-surgerysurfacematch <https://github.com/UCL/scikit-surgerysurfacematch>_ - Stereo reconstruction and point cloud matching
  • scikit-surgerytf <https://github.com/UCL/scikit-surgerytf>_ - IGS models implemented in TensorFlow
  • scikit-surgerytorch <https://github.com/UCL/scikit-surgerytorch>_ - IGS models implemented in PyTorch
  • scikit-surgerynditracker <https://github.com/UCL/scikit-surgerynditracker>_ - Interface for Northern Digital (NDI) trackers. Vicra, Spectra, Vega, Aurora.
  • scikit-surgeryarucotracker <https://github.com/UCL/scikit-surgeryarucotracker>_ - Interface for OpenCV ARuCo.
  • scikit-surgeryspeech <https://github.com/UCL/scikit-surgeryspeech>_ - Speech/Wakeword detection

.. features-end

Please see Documentation_ for further module details.

.. tutorial-start

Tutorials

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.

General Tutorials

  • Use SciKit-SurgeryUtils and SciKit-SurgeryArUcoTracker to build an AR application using your webcam. <https://scikit-surgerytutorial01.readthedocs.io/en/latest/>_

  • ROS Integration <https://scikit-surgery.readthedocs.io/en/latest/ros.html>_ scikit-surgeryvtk

  • How To Use VTKOverlayWindow <https://scikit-surgeryvtk.readthedocs.io/en/latest/tutorials/overlay_window.html>_

  • How To Add Text To VTKOverlayWindow <https://scikit-surgeryvtk.readthedocs.io/en/latest/tutorials/text_overlay.html>_

  • Using The Rendering Generator <https://scikit-surgeryvtk.readthedocs.io/en/latest/tutorials/rendering_generator.html>_

  • Distance Fields & Voxelisation <https://scikit-surgeryvtk.readthedocs.io/en/latest/tutorials/voxelisation.html>_

scikit-surgeryimage

  • Point/Chessboard detectors <https://scikit-surgeryimage.readthedocs.io/en/latest/tutorials/point_detectors.html#point-detectors>_

scikit-surgerycalibration

* Camera Calibration <https://scikit-surgerycalibration.readthedocs.io/en/latest/tutorials/calibration.html>_

Educational Tutorials

  • Use a ready made application to investigate different ways of presenting augmented reality. <https://mphy0026.readthedocs.io/en/latest/summerschool/overlay_demo.html#summerschooloverlay>_
  • Improve your impact by creating high quality software implementations of your research. <https://scikit-surgerytutorial02.readthedocs.io/en/latest>_
  • Camera calibration using your phone or webcam. <https://mphy0026.readthedocs.io/en/latest/summerschool/camera_calibration_demo.html#summerschoolcameracalibration>_
  • Make and Calibrate a Pointer. <https://mphy0026.readthedocs.io/en/latest/summerschool/pivot_calibration_demo.html#summerschoolpivotcalibration>_
  • Online Fiducial Registration Tutorial. <https://mphy0026.readthedocs.io/en/latest/summerschool/registration_demo.html#fidregistrationtutorial>_
  • Point Based Registration using Lego or anatomical phantoms. <https://mphy0026.readthedocs.io/en/latest/schedule-2020/workshop-1.html#workshop1pbr>_
  • Camera Calibration of Laparoscopes <https://mphy0026.readthedocs.io/en/latest/schedule-2020/workshop-2.html#workshop2cameracalib>_

.. tutorial-end

Encountering Problems?

Please check list of common issues_.

Contributing

Please see the contributing guidelines_.

Useful links

  • Source code repository_
  • Documentation_

Licensing and copyright

Copyright 2018 University College London. scikit-surgery is released under the BSD-3 license. Please see the license file_ for details.

Acknowledgements

Supported by Wellcome_ and EPSRC_.

.. _Wellcome EPSRC Centre for Interventional and Surgical Sciences: http://www.ucl.ac.uk/weiss .. _source code repository: https://github.com/UCL/scikit-surgery .. _Documentation: https://scikit-surgery.readthedocs.io .. _SciKit-Surgery: https://github.com/UCL/scikit-surgery/wiki .. _University College London (UCL): http://www.ucl.ac.uk/ .. _Wellcome: https://wellcome.ac.uk/ .. _EPSRC: https://www.epsrc.ac.uk/ .. _contributing guidelines: https://github.com/UCL/scikit-surgery/blob/master/CONTRIBUTING.rst .. _license file: https://github.com/UCL/scikit-surgery/blob/master/LICENSE .. _common issues: https://github.com/UCL/scikit-surgery/issues .. _SciKit-SurgeryBK: https://github.com/UCL/scikit-surgerybk .. _SciKit-SurgeryVTK: https://github.com/UCL/scikit-surgeryvtk .. _SciKitSurgery-NDITracker: https://github.com/UCL/scikit-surgerynditracker .. _SciKit-SurgeryTorch: https://github.com/UCL/scikit-surgerytorch