Last updated
Last updated
Aleksey Golovinskiy, Thomas Funkhouser, , ICCV 2009
In this tutorial we will learn how to use the min-cut based segmentation algorithm implemented in the pcl::MinCutSegmentation
class.
This algorithm makes a binary segmentation of the given input cloud.
Having objects center and its radius the algorithm divides the cloud on two sets:
foreground
background points
(points that belong to the object and those that do not belong).
The idea of this algorithm is as follows:
Every vertex of the graph that corresponds to the point is connected with source and sink with the edges.
In addition to these, every vertex (except source and sink) has edges that connect the corresponding point with its nearest neighbours.
Here dist
is the distance between points. The farther away the points are, the more is probability that the edge will be cut.
It consists of foreground and background penalties.
The first one is the weight for those edges that connect clouds points with the source vertex and has the constant user-defined value.
The second one is assigned to the edges that connect points with the sink vertex and is calculated by the formula:
Here distanceToCenter
is the distance to the expected center of the object in the horizontal plane:
Radius that occurs in the formula is the input parameter for this algorithm and can be roughly considered as the range from objects center outside of which there are no points that belong to foreground (objects horizontal radius).