腾讯云极速高清视频色彩增强技术方案基于深度学习技术,结合卷积网络、全连接网络和回归等算法,实现了通过自动化调整视频的亮度、对比度、饱和度来达到色彩增强的效果。
目前视频色彩自动增强的算法在深度学习领域遇到的问题在于没有有效的监督信息,由于需要提升的是人类视觉系统对视频色彩的主观感受, 而不是客观的信噪比明暗度等指标,因此在学术和工业界都没有形成成熟的方法来提升整体的色彩效果,也难以通过模拟真实场景来获取良好的色彩数据对用以模型的训练。而在落地性上,目前深度学习对色彩增强的方式没有考虑在视频应用场景的稳定可控性。我们提出的方法采用深度回归网络的方式,通过亮度、对比度、饱和度的不同变化取值来生成不同的色彩数据对进行色彩调整参数学习。在视频应用上,为了保证每一帧能稳定增强不发生色彩跳变,我们通过场景切分,同场景采用同一组色彩调整参数的方式来进行增强。由于整体方案轻巧,对于4K高清视频,我们也能达到实时的视频应用。
色彩增强技术主要有两种思路:白盒方法和黑盒方法。黑盒方法对图像的色彩进行逐像素的变换,虽然能调整局部的色彩,但会改变图像的风格,效果不稳定,应用在视频处理上会产生跳色现象,而且在大分辨率帧上运行速度很慢。
与黑盒方法相比,白盒方法生成的是作用于图像全局调整的参数,效果更稳定可控,适合处理视频以及进行应用落地。目前,与本中心方案比较接近的是 Distort-and-Recover 算法和 Exposure 算法,它们是基于深度强化学习的白盒方法。
Distort-and-Recover算法将专家对图片进行ps调整色彩的过程分解为包括亮度、对比度、饱和度调整的动作序列,最终目的是生成一组对色彩增强的操作序列使得调整后的图像色彩与专家调色后的色彩接近。而Exposure算法不仅预测操作序列,还预测操作时系数的大小。两种算法将色彩增强的动作序列看做一个马尔科夫决策过程,通过强化学习来预测每一步要选取哪一种操作和操作调整的幅度来进行色彩操作,但是训练非常难收敛,而且实际使用时模型stop的位置不稳定,视频色彩会跳变。
针对目前算法存在的问题,我们提出了新的技术方案。具体来说,如下图所示,对于输入的图像或视频帧,该图像会先被resize到小尺寸来提升运算速度,因此该方法相比直接图像到图像的深度网络,推理效率不受图像大小影响。然后,分别计算Lab色彩直方图提取全局色彩特征,以及采用mobileNetV2 提取语义特征,将两个特征concat在一起后输入三个全连接回归网络来分别预测图像的亮度、对比度、饱和度增强参数。这样做帮助解决了强化学习方案不稳定且难以收敛的问题。
在数据层面,本技术方案采集了各种类型的高质量色彩的图像,然后对图像进行色彩的随机退化操作并保存退化的系数。这样对于每个操作都有了成对的数据,并且每张退化图像都有对应的操作和退化参数。由于图像的亮度、对比度、饱和度具有相关性,我们分别采用了三个全连接回归网络来计算增强参数。每个全连接网络采用三层的全连接层的结构,每个全连接后接了ReLU激活层,最后的输出层采用了线性函数来输出对应的增强参数。
在模型训练方面,由于我们没有直接做语义上的监督,因此可以固定mobilenet的网络参数,只分别训练三个全连接回归网络的参数。回归出来的参数与已知的退化参数计算MSE Loss。在推理阶段,在网络回归得到色彩增强的参数之后,我们需要把参数作用到图像上得到色彩增强后的图像。设归一化后的输入图像为I_in,中间图像为I_temp1、I_temp2,输出图像为I_out,亮度增强参数为b,对比度增强参数为c,饱和度参数为s,则增强参数作用到图像的计算过程可以表示为以下公式,其中mean(·)表示图像全局的均值函数,channel_mean(·)表示图像逐像素对通道求均值的函数。
在算法部署层面,为了使算法更稳定,避免视频跳色的现象发生,我们做了两个处理:一方面是对模型计算出来的增强参数进行阈值处理,使得增强参数不超过一个固定的范围,这样做可以针对不同的应用场景调整使用不同的变化范围,相对灵活。另一方面是对视频进行场景切分,对同一场景下的视频帧采用同一组增强参数,避免帧间颜色波动出现肉眼可见的跳变,而且同一场景只需要用网络做一次回归推断,大大降低了视频应用上的计算量。为了使得切分后的场景和我们的增强效果结合的更好,也采用了Lab色彩直方图作为切分的依据。
虽然整个方案在使用全GPU进行推理的情况下能对高清视频达到实时的应用,为了扩大整个算法的收益,还需要针对CPU对算法进行优化,尤其是得到增强参数后的图像增强处理部分,每一帧都要进行计算,整个计算量会受图像大小影响。因此,我们的优化专家专门针对该部分计算进行了高效的性能优化。整个优化思路包括:
- 算法精简, 直接在YUV域进行等价计算;
- 合并算子,加速运算;
- 使用PIPELINE管线,最大限度降低缓冲内存大小;
- SIMD加速 + INT16量化,牺牲部分浮点精度。
最终,色彩增强的操作从优化前每帧速度3050ms提升到了23ms,优化整整提升了15倍的运算速度,使得我们的色彩增强方案在CPU上也能达到实时的应用。
在回归模型的有效性验证上,我们采集了另一批高质量色彩图像,然后对图像进行色彩的随机退化操作并保存退化的系数,然后用我们的网络进行回归预测,最后预测出来的参数和随机退化操作的真值进行比对。如下图,我们预测出来的参数在不同真值上的分布都是围绕在真值附近的,均值离真值很近,且方差在可接受的范围内。
当前模型预测虽然有一定的方差,但是相比原图,我们也会得到良好的色彩增强效果,这是由于我们的色彩增强参数的预测值是在参考了大量不同类型的高质量色彩图后拟合出来的一个相对较好的建议值,误差也会在可控的范围内。如下面的效果示例图,得到预测参数值和参考真值有时候有0.2左右的误差,但是色彩增强后的效果提升还是比较明显的,甚至比参考图像更好。说明我们的模型在训练时参考了大量专家色彩,稳定性比较高。
这里展示一些我们落地的色彩增强前后的对比视频
可以看出,我们提出的基于深度学习的色彩增强方案效果稳定,提升明显。目前该服务已集成至腾讯云智能编辑(Intelligent Editing)产品中,配合其他服务为直播、点播平台以及媒体行业提供稳定高效的“媒体质检”、“画质重生”和“编辑理解”基础能力,实现视频内容生产降本增效。详情可扫描下方二维码或点击文末 [阅读原文] 了解。