当真是买算法送手机!这不,谷歌又给“亲儿子”Pixel 6 塞福利了,让手机抠图也能细节到头发丝。看这效果,原本模糊的头发轮廓,咻地一下,就变成了纤毫毕现的样子!
连发丝之间的缝隙也能精准抠到。
这样一来,就避免了使用人像模式拍照时人物与虚化背景割裂的情况,让人物照片的纵深感更加逼真。四舍五入一下,这不就是手握单反拍照?
Alpha 遮罩 + 监督学习
在介绍最新的方法之前,先来了解一下过去手机的人像模式拍照到底是怎么实现的。传统方法是使用二进制将图像分割,然后对分离出的背景进行虚化,在视觉上产生一种纵深感,由此也就能更加突出人物主体了。
虽然带来的视觉效果非常明显,但是在细节上的表现还不够强大。由此,谷歌将常用于电影制作和摄影修图的 Alpha 遮罩搬到了手机上,提出了一个全新的神经网络,名叫“Portrait matting”。
其中,主干网络是 MobileNetV3。这是一个轻量级网络,特点是参数少、计算量小、推理时间短,在 OCR、YOLO v3 等任务上非常常见,具体结构长这样:
在推理时,Portrait matting 首先将 RGB 图像和低分辨率的 Alpha 遮罩作为输入,用 MobileNetV3 来预测分辨率更高的 Alpha 遮罩。然后再利用一个浅层网络和一系列残差块,来进一步提升 Alpha 遮罩的精细度。
其中,这个浅层网络更加依赖于低层特征,由此可以得到高分辨率的结构特征,从而预测出每个像素的 Alpha 透明度。
通过这种方式,模型能够细化初始输入时的 Alpha 遮罩,也就实现了如上细节到头发丝的抠图效果。谷歌表示,神经网络 Portrait matting 可以使用 Tensorflow Lite 在 Pixel 6 上运行。
此外,考虑到使用 Alpha 遮罩抠图时,背光太强往往会导致细节处理不好。谷歌使用了体积视频捕捉方案 The Relightables 来生成高质量的数据集。
这是谷歌在 2019 年提出的一个系统,由一个球形笼子组成,装有 331 个可编程 LED 灯和大约 100 个用于捕获体积视频的摄像机。相比于一般的数据集,这种方法可以让人物主体的光照情况与背景相匹配,由此也就能呈现更为逼真的效果。
而且这种方法还能满足人像被放置在不同场景中时,光线变化的需求。
值得一提的,谷歌还在这一方法中使用了监督学习的策略。这是因为神经网络在抠图上的准确度和泛化能力还有待提升,而纯人工标注的工作量又太大了。
所以,研究人员利用标记好的数据集来训练神经网络,从而大量数据中来提高模型泛化能力。
One More Thing
用算法来优化摄影效果,其实是谷歌的传统艺能了。比如 Pixel 4 中,就使用算法来拍摄星空。
HDR + 算法更不必说,曾经引发过大众热议。
这一功能可以在相机启动时、没有按快门的情况下连续捕捉图像,并且会缓存最近保存的 9 张。这些照片将会与按下快门后的图像一并处理,最终得到一张最优的图像。
同时它还能让 Pixel 在夜间模式下拍照时,不用像其他手机那样长时间停留。由于提升摄影效果不靠硬件,谷歌也将这些功能整合到一个 App 上,适用于各种安卓手机。感兴趣的小伙伴,可以去试玩看看 or 分享自己的体验~
参考链接:
https://ai.googleblog.com/2022/01/accurate-alpha-matting-for-portrait.html