GrabCut是一个基于电脑视觉中的图割英语Graph cuts in computer vision理论的图像分割方法。

在GrabCut中,像素被划分为ground truth background、ground truth foreground、maybe background、maybe foreground四类标签。开始时,用户需要画出一个完整包含目标物体的边界框英语bounding box。框内的像素被标记为maybe foreground,而框外的则是ground truth background。

然后算法使用高斯混合模型(GMM)估计目标物体和背景的色彩分布。GMM用于在像素标签上构建马尔可夫随机场,其能量函数更喜欢具有相同标签的连接区域。运行基于图割(如最小割)的优化来推断位于不确定区域(标签为maybe background、maybe foreground的像素)的标签值。此估计比用户画出的边界框的原始估计更准确,因此上述过程将多次重复,直到收敛。

用户可以通过反复多次指出错误分类的区域,使算法重新运行优化,获得更佳结果。

OpenCV中已经提供开源实现。

参见

参考资料