Interactive Segmentation Tool-Box
An implementation of ‘Lazy Snapping’ and ‘GrabCut’: Based on Interactive Graph Cuts

Lazy Snapping [2] and GrabCut [3] are 2D image segmentation tools based on the
interactive graph-cuts technique proposed by Boykov and
Jolly [1]. Lazy Snapping requires the user to specify foreground and background
seeds, and performs 2D segmentation with the seeds as hard constraints. GrabCut makes the process more automatic by using iterated
graph cuts – the only user interaction required is a bounding box of the
foreground object.
We provide an implementation of both these tools, along with a third tool which combines both these methods. Our code uses the maxflow code [4] by Vladimimr Kolmogorov.

![]()
Source Code
Requires MATLAB and mex (C++) compiler. You will need kmeans on MATLAB to run the code. Refer the README file for compilation instructions.
![]()
PASCAL Data-Set

Our Segmentation Tool
can be used to perform segmentation on huge image databases. As an example, we
provide results of using the
Grab Cut Tool on a subset of the PASCAL data set [5] (a few different Object Classes).
We use the Bounding Boxes available along with this set to seed our iterative
graph cuts algorithm. The parameters given in the parameter file can be
fine-tuned to achieve desirable segmentations.
Note:
The coarseness around the boundary of the segmented results is due to the fact
that the code runs segmentation on water-shed super-pixels instead of pixels, for efficiency purposes. Using
super-pixels, we achieve a significant speed-up at the cost of slight loss of
accuracy.
![]()
References
[1] Interactive Graph Cuts for Optimal Boundary & Region Segmentation of Objects in N-D Images. Boykov & Jolly, ICCV 2001 [PDF]
[2] Lazy Snapping. Yin Li, Jian Sun, Chi-Keung Tang, Heung-Yeung Shum, SIGGRAPH 2004 [PDF]
[3] GrabCut — Interactive Foreground
Extraction using Iterated Graph Cuts. Rother, Kolmogorov & Blake, SIGGRAPH 2004 [PDF]
[4] http://www.adastral.ucl.ac.uk/~vladkolm/software.html
[5] http://www.pascal-network.org/challenges/VOC/voc2005/index.html
![]()
![]()
Contacts
For questions/comments about the code, please contact:
Mohit Gupta – mohitg@cs.cmu.edu
Krishnan Ramnath
– kramnath@andrew.cmu.edu
OR
You can post your
comments/questions here
This project was done as part of the Advanced
perception class at the Robotics
Institute, CMU. Class Instructor: Alexei
Efros
![]()