WWDC20 10642 使用 Create ML 打造图片和视频的风格转化模型

本文源自 WWDC 2020 - 10642:Build Image and Video Style Transfer models in Create ML

简介

本文主要介绍了苹果 Create ML 团队新推出一项新的机器学习能力:Style Transfer,也就是风格转化的机器学习能力。文中将会为大家介绍如何构建图片和视频的风格转化模型。

Style Transfer 是一项新的机器学习任务,今年可在 Create ML 应用程序中使用。它可以将风格和内容两张图像融合在一起。

我们先来看下它可以实现的效果。左右分别是风格图像和准备风格化的内容图像,下方是输出的风格化后的图片。

我们可以看到,该模型能够将颜色、形状和纹理从风格图像转移到内容图像。

风格图像的颜色非常重要,会直接影响输出图像的样式。例如下方的例子,训练模型会学习我们给出的风格图像的白色背景和黑色线条,以此来创建黑白线条风格的结果图像。

当然,绘画不是风格图像的唯一来源,你可以使用各式各样与众不同的风格图像来表达您的创造力。例如下面的几个示例。这些只是你可以使用风格转化的几个示例。

但是,我们的能力不止于此,我们甚至可以直接将风格转化的模型直接应用到视频上。每帧的风格转化速度都足够快,以保持流畅的视频风格转化。因此可以为视频 App 实时应用风格转化模型。使用 A13 仿生芯片时,我们可以达到每秒120帧的处理速度。

如何训练模型

要训​​练样式转移模型,我们需要提供一些训练数据,包括一张风格图像和一个包含许多内容图像的文件夹。该模型从图像中学习内容和样式之间的平衡。为了获得最佳结果,用于训练的内容图像应与您期望在推理时风格化的图像相似。
我们可以调整模型参数来优化样式转移模型的行为。您可以使用风格强度和风格密度这两个模型参数来配置模型的行为。

1、风格强度

风格强度参数可以调整样式和内容之间的平衡。在风格强度较低的时候,只有部分图像背景会被风格化,而在风格强度很高的时候,整个图像都会被明显风格化。
我们可以看看下图,就能对比出他们的区别。

2、风格密度

使用风格密度参数,可以让该模型学习风格图像的细节。

我们拿下面的例子来看,左图使用了比较小的风格密度,右图则使用了毕竟大的风格密度。可以看到,风格密度越大,训练出来的模型会更加着眼于风格图像的细节,更突出颜色和笔触。反之则相反。

这会产生不同的风格化结果。我们可以使用风格密度参数来探索各种此类样式。

训练模型

我们可以方便地使用“Create ML”来训练模型。首先直接创建一个新工程,拖入风格图像,并导入包含数百个内容图像的文件夹。接着我们可以选择针对图像或者视频进行优化。然后调整上述的两个参数,来控制内容和风格之间的平衡。默认参数在大多数情况下都能很好地工作。

最后,单击工具栏中的训练按钮。该应用程序会处理风格和内容图像,并立即开始训练模型。

每五次迭代会遇到一个模型检查点,它会将我们的测试图像风格化,以预览效果。这样我们可以使用它来交互式地、可视化地观察模型训练的过程。

在任何时候,我都可以通过单击工具栏中的快照按钮来捕获模型的快照。快照其实就是一个当前模型的拷贝,以后可以在 App 中直接使用。

训练模型仅需几分钟,完成训练后,可以拖入新的测试图像或视频,对模型进行预览和测试。完成训练的模型的大小很小,不到1MB。这样我们可以很方便地将它嵌入 App 中。

总结

风格转化模型性能极高,可以轻松地与其他Apple技术(例如 ARKit)结合使用,实现实时的风格转化效果。模型的尺寸很小,可以很方便地嵌入应用。模型训练时间大大减少,使培训体验变得生动有趣。我们可以在几分钟内训练完模型,然后快速迭代使用不同的风格和模型参数进行尝试。