【问题标题】:After Effect's Rotoscoping brush algorithmsAfter Effects Rotoscoping 画笔算法
【发布时间】:2014-03-22 10:18:14
【问题描述】:

我不认为我会得到任何回复,但这里是:我正在开发一个执行图像分割功能的 iOS 应用程序。我正在尝试实现从图像中裁剪出主题的最简单方法,而无需绿屏/抠像。大多数自动化解决方案(例如使用 OpenCV)并没有削减它。

我发现 After Effects 中的 rotoscope 笔刷工具可以有效地提示应用程序应该在哪里剪切。谁知道rotoscope笔刷工具用的是什么算法?

【问题讨论】:

  • 该算法可能是专有的,而且很可能非常复杂。我的猜测是,Adobe 的某个人可能基于它的博士论文。假设您的 iOS 应用可能无法做到这一点。
  • 有类似的算法吗?

标签: ios algorithm opencv image-processing image-segmentation


【解决方案1】:

该算法是一种基于图形切割的分割算法,其中使用“局部”区域和“全局”区域中的颜色像素以及某种形状先验来训练高斯混合模型 (GMM)。

OpenCV 有“GrabCut”论文的“廉价黑客”implementation,其中用户在他希望分割的对象周围指定一个边界框。通常,仅使用边界框不会产生好的结果。您将需要用户指定“前景”和“背景”像素(就像在 Adob​​e 的 Rotoscoping 工具中所做的那样)以帮助算法构建前景和背景颜色模型(在本例中为 GMM),以便它知道什么是典型的您希望分割的前景对象中的颜色,以及您想要忽略的背景对象中的颜色。

可以在blog 上找到基本的图形切割实现。您可能可以从那里开始尝试不同的方法来计算成本项以获得更好的结果。

最后,“软化”边缘,一种廉价的技巧是模糊二进制蒙版以获得值介于 0 和 1 之间的蒙版。然后使用蒙版重新合成您的图像,即 c[i][j] = mask[i][j] * fgd[i][j] + (1 - mask[i][j]) * bgd[i][j],您将在其中混合前景您使用掩码值作为混合权重使用新的背景图像 (bgd) 进行分段 (fgd)。

【讨论】:

    【解决方案2】:

    查看this page,其中包含来自 SIGGRAPH(计算机图形会议)关于 Roto Brush 工具的几个视频演示。也看看Jue Wang's paper on Video SnapCut。正如 Damien 猜测的那样,对象提取依赖于一些非常密集的图像处理算法。根据你的聪明/受虐程度,你也许可以在 OpenCV 中实现类似的东西。

    【讨论】:

    • 有关信息,this is the SIGGRAPH paper 描述了该技术。
    • 糟糕。当@RogerRowland 击败我时,我正忙于我的编辑。不过,我认为同一篇论文有两个独立的链接并没有什么坏处。
    猜你喜欢
    • 2013-09-30
    • 1970-01-01
    • 1970-01-01
    • 2021-03-23
    • 2020-04-24
    • 1970-01-01
    • 2019-02-21
    • 2021-05-11
    • 1970-01-01
    相关资源
    最近更新 更多