-
Notifications
You must be signed in to change notification settings - Fork 3
GSoC 2014 : Graph based segmentation algorithms ( not updated )
###Title Region adjacency graphs and graph based segmentation algorithms
###Abstract
To implement Region adjacency graphs and graph based image segmentation algorithms. Initially I will be implementing graph primitives which will be useful for region adjacency graph based and other segmentation algorithms. Graphs will be implemented using numpy arrays to take advantage of scipy.sparse.cs_graph
. Later I will implement segmentation algorithms using the primitives defined.
###Details
I would like implement the algorithms 1
,2
,and 3
, along with the primitives required.1
and 3
model each pixel as a vertex in a graph, and will use similar approaches to convert an image into a graph and use the modified graph to segment the image. 2
models each region as a vertex and will depend on watershed for its pre-segmentation.
Algorithm 1
- This models each pixel as a vertex in a graph with edges between neighboring pixels
- This requires disjoint set data structures as described in
4
to compute if pixels are part of the same region during the intermediate stages
Algorithm 2
- Pre-segmented image will be taken for watershed method
- The region adjacency graph of the pre-segmented image needs to be computed
- It will then prune the regions based on the region adjacency graph
Algorithm 3
- This models each pixel as a vertex with an edge between every two vertices
- To compute the eigenvalues and eigenvectors in an intermediate step it suggests Lanczos method from
5
- Get to know scikit-image better
- Fix bugs
- Implement new features
- Discuss the algorithms to be implemented with mentors
- Understand the Segmentation and Graph algorithms required
- Figure out the graph API
- Implement functions required to transform image to a graph
- Implement functions required to label an image, given its graph ( modified by a suitable algorithm )
- Work towards creating an example which segments an image by thresholding edge weights
- Implement disjoint set data structures
- Implement Algorithm
1
- Write test cases
- Examples
- Use code from
6
wherever possible - Implement Algorithm
3
- Write test-cases
- Use
scipy.sparse.linalg.eigsh
to compute required eigenvalues and eigenvectors
- Implement region adjacency graphs
- Implement Algorithm
2
- Write test-cases
- Examples for
2
and3
- IPython notebook demonstrating all graph based segmentation algorithms.
- Buffer Period
- [Efficient Graph Based Image Segmentation] (http://www.cs.cornell.edu/~dph/papers/seg-ijcv.pdf)
- [Regions adjacency graph applied to color image segmentation] (http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=841950&url=http%3A%2F%2Fieeexplore.ieee.org%2Fxpls%2Fabs_all.jsp%3Farnumber%3D841950)
- [Normalized Cuts and Image Segmentation] (http://www.cs.berkeley.edu/~malik/papers/SM-ncut.pdf)
- [Disjoint-set data structure] (http://en.wikipedia.org/wiki/Disjoint-set_data_structure)
- [Matrix Computations.John Hopkins Press, 1989] (http://www.cs.cornell.edu/cv/GVL4/golubandvanloan.htm)
- [N-Cut Pull Request] (https://github.com/scikit-image/scikit-image/pull/397/files)
- Blob Detection - Determinant Of Hessian https://github.com/scikit-image/scikit-image/pull/930
- Blob Detection - Difference of Gaussians https://github.com/scikit-image/scikit-image/pull/903
- Blob Detection - Laplacian of Gaussians https://github.com/scikit-image/scikit-image/pull/915
- [GSoC 2013 for SimpleCV] (https://www.google-melange.com/gsoc/project/google/gsoc2013/vighneshbirodkar/6134037932408832)
- Resume
- [Other Computer Vision Projects] (http://vcansimplify.wordpress.com/category/robotics/)