Giter Club home page Giter Club logo

segmentation's Introduction

Algorithmic Methods of Model-Based Medical Image Segmentation Using Python

Python

Introduction

This repository includes diverse algorithmic method of model-based medical image segmentation.
The terminology of model-based means one which is hypothesized and parameterized model,
so it is a bit free from the requirement of plenty of labeling data (the counter example is usually called data-driven method).

The below list describes the classification of model-based method and the representative models belonging to it.

  • Region-Based
    • Region Growing
    • Grow-Cut
  • Active Contour
    • Snake Model
    • Gradient Vector Flow
  • Level-Set
    • Level-set Method
    • Chan-Vese Model
    • Morphological Chan-Vese Model
    • Region Scalable Fitting Method (RSF)
    • Distance Regularized Level Set Evolution (DRLSE)
    • Kullback-Leibler-Based Level-set Method (to be updated)
  • Graph-Based
    • Graph-Cut
    • Simulated Annealing Method
    • Random Walker with Prior Model
    • Power Watershed Random Field (to be updated)
  • Clustering
    • Gaussian Mixture Model
    • Taboggan/Superpixel Clustering

Installation

You can simply use functions in this repository by cloning repository,

{user}@{work-node}: {workplace}$ git clone https://github.com/swyang50066/segmentation.git

or using below command.

{user}@{work-node}: {workplace}$ sudo pip install git+https://github.com/swyang50066/segmentation.git 

Usage

Usage of segmentation models is guided in './examples/xxxx.ipynb' with example runs, so please refer to the scripts to figure out how the models work!

Requirements

All codes have developed in python and tested with python>=3.6.0 environment (but, it stably supports functions with python==3.8.0). Numerical schemes (e.g., matrix operation, linear algebra, graph algorithm, ... etc.) used in the models is designed with numpy and scipy modules for efficient computing.

 requirements={
 	"python>=3.6.0",
 	"opencv-python>3.4.0",
 	"numpy>=1.18.0",
 	"scipy>=1.1.0",
 	"scikit-learn>=0.20.0",
 	"scikit-build>=0.12.0",
 	"opencv-python>3.4.0",
 	"PyMaxFlow>=1.2.0",
 }

To-Do

  1. Build a GUI application for user-interactive medical image segmentation
  2. Upload Power Watershed Random Field model

Updates are being delayed due to busy life.

Contribution

To be updated

References

[1] C. Xu and J.L. Prince, "Gradient Vector Flow: A New External Force for Snakes," Proc. IEEE Conf. on Comp. Vis. Patt. Recog. (CVPR), Los Alamitos: Comp. Soc. Press, pp. 66–71, June 1997

[2] Vezhnevets, Vladimir and Vadim Konouchine. ““GrowCut”-Interactive Multi-Label N-D Image Segmentation By Cellular Automata.” (2005).

[3] T. F. Chan and L. A. Vese, "Active contours without edges," in IEEE Transactions on Image Processing, vol. 10, no. 2, pp. 266-277, Feb. 2001, doi: 10.1109/83.902291.

[4] A Morphological Approach to Curvature-based Evolution of Curves and Surfaces, Pablo Márquez-Neila, Luis Baumela, Luis Álvarez. In IEEE Transactions on Pattern Analysis and Machine Intelligence (PAMI),2014, :DOI:`10.1109/TPAMI.2013.106.

[5] C. Li, C. Kao, J. C. Gore and Z. Ding, "Minimization of Region-Scalable Fitting Energy for Image Segmentation," in IEEE Transactions on Image Processing, vol. 17, no. 10, pp. 1940-1949, Oct. 2008, doi: 10.1109/TIP.2008.2002304.

[6] C. Li, C. Xu, C. Gui and M. D. Fox, "Distance Regularized Level Set Evolution and Its Application to Image Segmentation," in IEEE Transactions on Image Processing, vol. 19, no. 12, pp. 3243-3254, Dec. 2010, doi: 10.1109/TIP.2010.2069690.

[7] F. Riaz, S. Naeem, R. Nawaz, and M. Coimbra, “Active contours based segmentation and lesion periphery analysis for characterization of skin lesions in dermoscopy images,” IEEE journal of biomedical and health informatics, vol. 23, no. 2, pp. 489–500, 2018.

[8] Y. Boykov and V. Kolmogorov, "An experimental comparison of min-cut/max- flow algorithms for energy minimization in vision," in IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 26, no. 9, pp. 1124-1137, Sept. 2004, doi: 10.1109/TPAMI.2004.60.

[9] L. Grady, "Multilabel random walker image segmentation using prior models," 2005 IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR'05), 2005, pp. 763-770 vol. 1, doi: 10.1109/CVPR.2005.239.

[10] L. -C. Chen, G. Papandreou, I. Kokkinos, K. Murphy and A. L. Yuille, "DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs," in IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 40, no. 4, pp. 834-848, 1 April 2018, doi: 10.1109/TPAMI.2017.2699184.

[11] C. Couprie, L. Grady, L. Najman and H. Talbot, "Power Watershed: A Unifying Graph-Based Optimization Framework," in IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 33, no. 7, pp. 1384-1399, July 2011, doi: 10.1109/TPAMI.2010.200.

[12] Cheng, D., Tian, F., Liu, L. et al. Image segmentation based on multi-region multi-scale local binary fitting and Kullback–Leibler divergence. SIViP 12, 895–903 (2018).

License

MIT License

segmentation's People

Contributors

swyang50066 avatar watermelon50066 avatar seung-won avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.