Git Product home page Git Product logo

sepidehhosseinzadeh / segmentation Goto Github PK

View Code? Open in Web Editor NEW
14.0 2.0 4.0 1.24 MB

Buildings segmentation and multiple sclerosis lesions segmentation (Dictionary learning, Encoding, Classification)

License: GNU General Public License v2.0

MATLAB 37.53% C 24.32% HTML 7.83% Makefile 0.36% Java 9.99% M4 6.25% Python 4.16% C++ 9.54% M 0.01%
machine-learning matlab segmentation dictionary-learning encodeing classification

segmentation's Introduction

Analysis of Unsupervised Feature Learning in Image Segmentation (buildings segmentation and multiple sclerosis lesions segmentation)

Paper: http://webdocs.cs.ualberta.ca/~zichen2/papers/lesion_report.pdf

Unsupervised feature learning was proved to be a potentially powerful tool for image segmentation as pixel-wise classification. However, there is no comprehensive study on the importance of each module of image segmentation pipeline. In this project we aim to understand the formulated variability of performance of feature learning methods in the context of image segmentation. A generic test framework was developed, then two segmentation tasks from two different domain were studied and analyzed. Through extensive experiments on buildings segmentation and multiple sclerosis lesions segmentation, different parameters are compared. Discussions about the preprocessing settings, the impact of dictionary learning, encoding and classification is presented. Our results conform in some parts with the analysis previously reported on image classification, but also new conclusions are drawn specific to the segmentation task.

Note

Originally written by Ryan Kiros ([email protected]) and achieved the 1st place VESSEL12 grand challenge result. The original programs are available from here

How to use

To train a classifier on the MSlesions competition data:

- Download the MSlesions data from http://www.ia.unc.edu/MSseg/

- Open the script 'ms_demo.m' and set the data directories. Optionally,
  open the script 'set_params.m' to modify the hyperparameters.

- Run the script 'ms_demo.m'. This will learn features using 1 labelled
  volumes and train a logistic regression classifier using features from
  the labelled voxels with 10-fold cross validation. A sample
  segmentation is displayed.

To use the method with your own data:

- Put your annotations in the same format as the MSlesions data. More
  specifically, each volume should have its own annotation file that 
  is in the same format as the input volume. Every pixel should have
  a label of {0,1}, with 1 indicating lesion.

- Each volume should be a 3D array with slice indexing on the third
  dimension. For example loading/preprocessing code, check out the
  script 'load_mslesion.m' in the MSlesion08 folder.

- From here, it should be easy to modify the 'run_mslesion.m' script
  to handle your data.

Setup

- It's recommended to have at least 16 GB of memory available.
  (Although 8 GB should be sufficent)

- This code makes use of the parallel computing toolbox. If you have it 
  available, make sure to load some workers e.g. 'matlabpool open 8'. 
  This will speed up the feature extraction.

- While we use 2 layers of feature learning for the competition, the
  number of scales is significantly more important for good vessel
  segmentation results. For simplicity and ease of use, we just include
  1 layer of learning with this code.

- When setting the hyperparameters on your own data, try experimenting
  with the number of scales, receptive field size and number of features,
  probably in that order.

Reference

This package reuses the following 3rd party code:

- Mark Schmidt's minFunc optimization package (minFunc_2012):
  http://www.di.ens.fr/~mschmidt/Software/minFunc.html

- Adam Coates' VQ code (run_omp1.m): http://www.stanford.edu/~acoates/

- Pranam Janney's Gaussian pyramid code (Gscale.m):
  http://www.mathworks.com/matlabcentral/fileexchange/25254-gaussian-pyramid

- Steven L. Eddins' image overlay code (imoverlay.m):
  http://www.mathworks.com/matlabcentral/fileexchange/10502-image-overlay/

- Dirk-Jan Kroon's medical data reader code:
  http://www.mathworks.com/matlabcentral/fileexchange/29344-read-medical-data-3d/

- Jeff Mather's NRRD format data reader
  http://www.mathworks.com/matlabcentral/fileexchange/34653-nrrd-format-file-reader

- Bruno Luong's C implementation of min/max selection algorithm (partial quicksort)
  http://www.mathworks.com/matlabcentral/fileexchange/23576-min-max-selection

- Chih-Chung Chang and Chih-Jen Lin, LIBSVM
  http://www.csie.ntu.edu.tw/~cjlin/libsvm

segmentation's People

Contributors

sepidehhosseinzadeh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  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.