【Nuke抠像】使用Keylight抠像的方法和技巧 – 高级抠像

VFX大学 Nuke合成影视制作 【Nuke抠像】使用Keylight抠像的方法和技巧 – 高级抠像

正在查看 17 条回复
  • 作者
    帖子
    • #24621

      韩十七
      参与者
      青骑士

      在上一个帖子 【Nuke抠像】使用Keylight抠像的方法和技巧 – 基础抠像 中和大家分享了Keylight抠像的基础抠像方法,今天我们要延续昨天的话题,来讲讲Keylight高级抠像的方法和技巧,详细了解Keylight的每一个参数含义和使用方法。

      Keylight是一个色彩差异抠像器,这意味着如果要计算抠像,Keylight需要将画面中的每一个像素和一个单色(这个单色就是 ScreenColor)做比较。

    • #24622

      韩十七
      参与者
      青骑士

      一、视图(View)。

      在上一个帖子中,我们讲到 View 参数允许 Keylight 渲染前景叠加背景的最终合成,也可以输出前景的RGBA进行后续进一步的合成。而 Screen matteStatus 是用来查看抠像的,它们本身没有输出能力。View 包含如下选项:

      • Source – 显示蓝/绿幕前景。
      • Source alpha – 显示前景输入端的 alpha 通道。
      • Screen Matte – 这是从取色 Screen Color 中创建的遮罩,它不包含任何内部遮罩(Inside Mask)和外部遮罩(Outside Mask)。
      • Inside Mask – 显示内部输入,用于加实前景遮罩,避免被抠穿(眼镜/眼珠/高反光物体等都很容易被抠穿)。
      • Outside Mask – 显示外部输入,外部遮罩又叫垃圾遮罩,用于圈除不必要的物体(灯/话筒/墙面等穿帮物体),使背景显示出来。
      • Combined Matte – 叠加了屏幕遮罩(screen matte)、内部遮罩(Inside Mask)和外部遮罩(Outside Mask)之后的遮罩效果。
      • Status – 夸大抠像效果,使小问题显示出来。
      • Intermediate Result – 只有分别在图像不同部分使用多个不同抠像(即多通道抠像)时才用得上该选项。该选项渲染带 Screen Matte 的原始图像(即画面是未抠像的源图像,但包含 Screen Matte 通道)。使用此选项时,应该将 Insdie Mask 中的 Source Alpha 设置为 Add To Inside Mask
      • Final Result – 创建一个预乘的 RGBA 前景,可用于后续合成。如果不需要预乘,可以切换为 Unpremultiply Result
      • Composite – 使用所有遮罩、溢色和色彩校正将前景合成到背景上。
    • #24623

      韩十七
      参与者
      青骑士

      下面补充讲下 Status 视图。

      Status 显示的是一个夸张的抠像效果,以便我们在微调抠像时作出更明智的选择。右图显示的是从左图取色后的 Status 视图。

      绿幕

      Status

      屏幕上一般会有黑白灰三种颜色。

      我们偶尔也会在 Status 视图下看到其他颜色,左边图像显示黑、白、灰和绿色像素。

      显示处理的 alpha 通道的 Status 视图

      显示 Screen Replace Color 的合成

      • 绿色像素是警告。它们显示了通过处理 alpha 通道(裁切、柔化或收边)导致 alpha 改变了的部分。这些区域消除了溢色,但 alpha 已经被改变,最后的合成结果可能不正确。使用 Screen Replace Color 可以恢复这些区域的颜色。如上所示,右图举了一个极端的例子来说明这一点——Screen Replace Color 被设置为纯红,对应 Status 中的绿色像素。
    • #24624

      韩十七
      参与者
      青骑士

      同样的,我们也可能在 Status 中看见蓝色像素。

      Status 视图显示内部遮罩如何影响前景

      显示 Inside Replace Color 的合成

       

      • 蓝色像素表示 Inside Mask 处理过的像素。可以使用 Inside Replace Color 修改这些像素。如上所示,右图依然是一个极端例子,将 Inside Replace Color 设置为纯黄且 Inside Replace 为 Hard Color 的合成结果。
      • 我们还可能在 Status 中看见暗红色。红色像素表示使用外部遮罩减少图像透明度的区域。
    • #24625

      韩十七
      参与者
      青骑士

      二、屏幕颜色(Screen Color)。

      屏幕颜色表示的是纯蓝幕/纯绿幕的颜色。抠像的第一步是选取 Screen Color

      屏幕颜色是单一颜色,它的主要成分是蓝色或绿色。一旦屏幕颜色被选定后,keylight 会分析图像上的所有像素,并比较这些像素的主要成分的饱和度屏幕颜色对应的饱和度,进行如下计算:

      1. 计算该像素的透明度并放入alpha通道中;

      2. 从该像素中移除屏幕颜色,也叫去除溢色。

    • #24626

      韩十七
      参与者
      青骑士

      下面以蓝色为主要成分为例,分别说说背景像素、边缘像素和前景像素的计算方法。

      背景像素

      如果图像像素的饱和度大于屏幕颜色,则该像素来自蓝背景,该像素会被设置为全透明的黑色。

    • #24627

      韩十七
      参与者
      青骑士

      边缘像素

      如果像素的饱和度小于屏幕颜色,则该像素为前景物体的边缘,Keylight会从该像素中减掉一些屏幕颜色(去除溢色),并将图像设置为半透明。如下图。

      边缘像素会赋予部分 alpha(0< alpha < 1)。

      前景像素

      如果像素的主要成分与屏幕颜色不同,则将其认为是前景像素,alpha 设置为完全不透明,像素颜色不会被改变。如下图。

      前景像素的alpha为1。

    • #24628

      韩十七
      参与者
      青骑士

      接下来解释下偏色(Biasing)。

      什么是偏色?Keylihgt中的偏色起初是为电影《747绝地悍将》中的一个镜头开发的,其前景包含红棕色,但是由于种种因素的影响,导致“绿幕”被照亮,主要成分实际上是红色。

      那么抠像时出现了什么状况呢?因为屏幕是红色的,飞行员在抠像时被抠穿了。

      很显然这不是我们要的结果。那如何解决这个问题呢?

      有一种方法是手动校正图像颜色,使背景恢复为绿色,然后用校正后的图像抠像。校正后的图像如下图,绿幕变成了显眼的绿,而且和前景色不同。但是要注意的是,飞行员面具上的红色反光也被移除变成了中性灰。

      Keylight 开发者在解决这个问题上非常有效率。他们引入了“bias”偏色这个概念——蒙在源图像和屏幕色上需要移除的颜色。然后他们用校正后的图像抠像,最后重新蒙上“bias”反光。当然实际上,在现在的Keylight中这个过程是自动完成的,且丝毫不会减慢Keylight的工作效率。

      《747绝地悍将》中的这个镜头,“bias”偏色是红色。设置“bias”的结果会有明显的优化。如下图。

    • #24629

      韩十七
      参与者
      青骑士

      日常使用中的偏色

      事实证明偏色在反光不强的情况下非常好用,通常在抠出的边缘都有一些溢色。将偏色设置为前景边缘的主要颜色(通常是肤色或头发色调),Keylight 能更好地区分前景和背景。

    • #24630

      韩十七
      参与者
      青骑士

      为什么有两个偏色?

      前面我们说到 Keylight 主要有两个功能——计算透明度和移除前景上的屏幕色。默认情况下,这两种运算都使用同一个偏色,即 Alpha Bias。这能解决大多数情况下的偏色问题,如上文中说到的《747绝地悍将》中的镜头。

      但有时候,我们使用 alpha 偏色得到了更好的alpha通道,却使溢色变得更糟糕;despill 偏色可以更好地移除溢色,但alpha却会变得更糟糕。下图出自CFC Framestore 出品的电视剧《Merlin》,就是一个很好的例子。

      Merlin 蓝幕

      Alpha 通道非常棒

       

      小提示:Nuke中有许多节点可以移除溢色。以绿背景素材为例,在前景图像上添加 Expression 节点并在绿色通道中输入表达式:g>(r+b)/2?(r+b)/2:g

      同样的,对于蓝背景素材,表达式为:b>(r+g)/2?(r+g)/2:b

      我们还可以使用 HueCorrect 节点去除溢色。这里不多说。

      为了不破坏alpha通道而得到好的溢色移除效果,我们可以关闭 Use Alpha Bias for Despill,然后从角色的头发或皮肤上选取 Despill Bias,这样就可以保持好的alpha通道,同时得到好的去溢色效果。如下图中的右图。

      糟糕的溢色

      最终抠像,使用单独的 Despill 和 Alpha Biases。

       

    • #24631

      韩十七
      参与者
      青骑士

      三、Clip Black 和 Clip White。

      任何低于 Clip Black 的 alpha 值都会被设置为0,而高于 Clip White 的 alpha 值都设置为1。如下图所示,左边是图像的原始 alpha,右边是裁切后的结果。

      Clip Black=0

      Clip Black=0.5

      在调节过程中注意灰色区域是如何减少的,灰色边缘已经大大变硬了。合成时,Clip Black 可用于提升背景图像,如果前景应该是穿透的;当然,Clip White 用来加实遮罩的中心,减少背景透明度,使之不要穿透。

      注意:在使用 Clip BlackClip White 时要注意不要破坏前景边缘,这个问题有时可以使用 ClipRollback 弥补。

    • #24632

      韩十七
      参与者
      青骑士

      四、屏幕增益(Screen Gain)。

      屏幕增益控制移除多少屏幕颜色来生成屏幕遮罩。增加这个值将抠除更多像素。下面左图显示的是拾取 Screen Color 之后的 Status 视图。

      取色后的 Status

      增加 Screen Gain 后的 Status

      我们可以清楚地看到本该是黑色的背景部分多半都是灰色的。如果左图这样的抠像直接进行合成,我们得到的结果很有可能是背景蒙上一层淡淡的前景或播放整个序列时画面有跳点。这时候我们就可以增加屏幕增益进行遮罩修复,结果如上方右图。当然,gain增加太多也会破坏我们的抠像,gain和其他抠像参数一样——不能太多也不能太少。增加太多会导致前景被抠穿,而且破坏边缘细节。下面右图就很好地说明了这一点。

      Screen Gain =1.05

      得到很好的屏幕遮罩

      Screen Gain =1.50

      前景被抠穿了,而且侵蚀了边缘

      注意右图的方向盘,本该是白色的,却被抠成了黑色。如果我们查看合成,会发现背景穿透过来了。另外,左图中可以看见很棒的演员头发细节,在右图中已经没有了。

    • #24633

      韩十七
      参与者
      青骑士

      五、屏幕平衡(Screen Balance)。

      Screen Balance 是在拾取 Screen Color 之后自动设置的。

      饱和度是通过比较主要成分其他两个成分的加权平均值的浓度来衡量的。加权平均值由 Screen Balance 决定。平衡为1则表示饱和度由屏幕颜色的主要成分其他两个成分中较小的那个比较来衡量的;平衡为0则与其他两个成分中较大的那个比较;平衡为0.5则表示取其他两个成分的平均值。

      每个图像序列最合适的平衡点都是由所抠图像的颜色决定的。一般来说,蓝幕平衡值在0.95最合适,绿幕平衡值为0.5左右最好。这些值在我们选取屏幕颜色的时候就会自动设定,如果抠的效果不是非常好,可以尝试将平衡值设置为0.05、0.5或0.95试试。

    • #24634

      韩十七
      参与者
      青骑士

      六、预模糊。

      有些镜头遮罩可以通过柔化前景图像进行改善,然后使用原始图像进行合成和色彩校正。使用 Screen PreBlur 参数可以实现这个功能,对 DV 素材或颗粒多的镜头非常有效。

    • #24635

      韩十七
      参与者
      青骑士

      好啦,今天的更贴就到这里啦,我们明晚10:00继续分享Nuke抠像小秘密,告诉你如何对Keylight抠像进行屏幕处理,不见不散哦~

      如果本帖对您有所帮助,请评论或点赞,让我们知道你的存在,给予我们更贴的动力哟!

      如果喜欢我的帖子,点击我的头像,加我为好友,就可以看到我得更新啦,也可给我发私信,点击帖子顶部得收藏放入收藏夹,方便将来再次查看~

      本帖未经允许不得转载,转载请注明出处并保留在本站的完整链接,谢谢^_^

    • #48591

      参与者
      军士

      刚刚学习nuke有一点小问题K出来边缘脏不能清想用遮罩单独提取一块的边缘应该怎么roto遮罩?卡实边吗?

    • #65572

      无敌圈圈王
      参与者
      军士

      好不错的一篇文章,很高兴能看到,谢谢楼主!

    • #66852

      Braver
      参与者
      军士

      小姐姐蓝幕中的跟踪点该怎么更好的去除呢

正在查看 17 条回复
  • 在下方一键注册,登录后就可以回复啦。
error: 提示:内容受到保护!!