小米介绍称,传统的AI相机的做法,通常分成两个部分,一是识别,二是后处理。
前者通过神经网络来“认知”当前拍摄的场景,后者根据不同的场景,使用一些传统的方式来针对特定场景做一些优化,比如加一些特殊的滤镜。所谓“AI“,其实只有前面的识别部分跟AI挂钩。
这种方式最大的问题是只能针对特定的几个预设好的场景来做优化,并且针对同一个场景,只能采用一样的模板来处理,而没有针对当前的色彩,光影等做一些更有针对性的局部优化,效果会大打折扣。
AI相机2.0详细技术详解
为了解决传统AI相机只能使用固定模板、针对预设场景优化的问题,相机算法团队开创性的将传统的场景感知拓展成为全方位的色彩、对比度、光影等内容感知。
同时,小米还使用了深度神经网络对整个画面进行全局和局部的分析,获取到最优的画面效果,并且实时地对画质进行增强。所以,新一代的AI相机能够对所有的场景进行有针对性的画质提升。
可以说,对于同样的一片草地,在不同的光照,角度,甚至背景下,新的AI相机都会有不一样的优化效果。
原片和AI相机的对比
小米的技术把识别+处理合二为一,一站式的实现了AI修图师的效果。为了实现上述功能,小米在以下几方面进行了技术创新。
(1)数据生成
AI相机2.0的目标是能够产生美的图片,这就包括要对原图做噪声,亮度,颜色,对比度,动态范围等多个维度进行调整。
对于深度学习而言,这样的训练集很难获取。除了和团队中的设计师合作PS了数万张手机拍张数据之外,小米也收集了很多网络上的高分图片作为目标,使用GAN网络进行训练。
小米使用的GAN网络是two path GAN,跟cycle GAN 比较类似,能够保证生成网络生成的图片跟原图片的内容保持一致,仅仅去优化一些我们希望对原图进行优化的维度。
Two Path GAN示意图
(2)训练过程
在训练的过程中,小米使用的loss主要有consistency loss,similarity loss, total variance loss , adversarial loss,通过不同的weight 来控制生成网络的优化方向和能力。
下面将从训练机制、帧间一致性处理、开关模块这三个方面来详细描述训练过程:
> Teacher – student 机制:
生成器网络训练结束后,以生成器网络作为teacher 网络,一个更轻量级的网络作为student 网络进行学习。在轻量级的网络中我们加入了自相似图(self-similarity map)作为guidance map来实现相似结构和区域的效果尽量一致。
Teacher-Student网络
> 帧间效果一致性:
由于每帧都会做处理,帧间效果需要稳定,否则在视频和预览的时候就会容易出现跳变。但是上述的训练是在图片上做的,因此,在训练student网络的时候小米添加了帧间相似度loss,以保证帧间的效果一致。
帧间相似度Loss
> 开关module:
轻量级网络由于参数比较少,对于不同特点的景物不容易做到对应效果,因此小米在训练的过程中加入了switch module,这个模块的作用就是能够通过判断不同的景物来选择不同的效果,有效的实现了针对不同的场景做不同的处理的效果。
Switch module
(3)处理速度
在实现AI算法2.0中,还有一个最大的技术挑战是计算量。
众所周知,针对图像像素处理的深度神经网络的计算量极高,对手机的计算能力是一个很大的考验,而小米除了要实现预览实时处理,所见即所得的效果之外,更“变态”的要求能针对一亿像素的原片进行处理。
为了实现这两个看似不可能的任务,团队的攻城狮们对于神经网络的优化达到了每个四则运算都去细抠的程度。除了使用常见的网络减枝,网络压缩的技术,小米还创造性地提出了一种新的基于导向图的开关网络结。
这个网络不仅仅可以使得网络参数和计算量大幅下降,也可以满足优化的多样性要求(噪声,亮度,颜色,对比度,高动态等等),最终得以将全新的AI相机展现给用户。
基于导向图的开关网络结构
小米方面透露,团队已经紧锣密鼓的开始了下一代AI相机技术的研发工作,在新的一代中,争取在如下几个维度上取得突破:
更多风格:
我们在寻找一种可以通过比较有限的数据集来快速训练一种新的风格的技术,这样可以在很短的时间内增加很多用户喜欢的风格,最后可以完全替代滤镜功能,甚至可以允许用户自定义拍照风格。
更多维度:
除了色彩维度之外,我们计划用类似的技术来处理亮度、对比度等不同的维度,完美的复制一个专业修图师的大部分工作,全方位的提升拍照和视频的整体画质和观感。
进一步优化性能:
8K视频已经逐渐成为主流,因此对我们算法的处理时间和内存占用提出了更高的要求,我们也在做进一步的优化。
本文素材来自互联网