
收录于 ECCV 2020,代码地址:https://github.com/zzh-tech/Animation-from-Blur
研究背景
传统的图像模糊问题主要解决的是1对1的映射,即输入一张模糊图像,输出对应的一张清晰图像。但这种方式忽略了模糊中蕴含的有效时序信息,比如运动模糊可以理解为在相机曝光的短时刻内所录制的场景发生的平均变化情况。因此最近的工作开始注意到一个更具挑战性的问题,即通过单张运动模糊图片得到一组清晰的图像序列(短视频),这相当于运动模糊形成的逆过程,这个问题也称为模糊分解问题(blur decomposition)或者模糊插帧(blur interpolation)。
作者针对“模糊分解”问题进行分析,发现对于每个模糊区域(例如下图中的左手右手、左脚右脚等)都可以存在"前向运动"和"后向运动"两种可能的解(forward 或 backward motion),随着图像中运动模糊区域的增加,潜在的解的数量将会呈指数型增长,这就是运动歧义性问题(motion ambiguity)。
而目前的方法都没有考虑到运动歧义性(motion ambiguity),这会导致模型只是在预测众多方案中的一个解,给训练过程带来了不稳定性。如果不解决这种问题,会导致模型多样化程度低以及生成质量较差。
解决思路
为了解决歧义性的问题,作者引入运动指导表征(motion guidance),它是2D光流在四个方向上的粗略量化表示(只有方向没有幅值),如下图所示(不同颜色代表不同运动方向)。有了motion guidance后就变成了一对一的映射问题,模型就能生成一个特定方向、无歧义性的图像序列解。
作者进一步提出了一个两阶段的模糊分解网络,如下图所示。第一阶段通过输入模糊图像与运动引导,生成初步的图像序列,第二阶段通过残差的方式进一步细化视觉细节。
模型的训练与推理阶段都需要用到motion guidance,作者提出了三种不同的方式用于生成模糊图像对应的motion guidance。第一种方式通过cVAE-GAN网络去学习模糊图像对应的motion guidance分布,这可以在推理时通过采样得到不同的motion guidance来生成不同的解;第二种方式就是如果输入的是一个模糊视频序列,那么可以直接进行光流估计,进行量化就可以得到motion guidance;第三种方式就是通过用户自己绘制一个大概的motion guidance用于分解。
实验效果
下图展示了本文方法与其他方法的对比,以及在不同motion guidance下的生成效果。
思考
这篇文章解决的是多解问题中存在的歧义性问题,解决思路也非常简单:既然生成过程存在歧义性,那么就给一个额外的guidance去进行限制,让它变成一个一对一的问题。这种思想在其他领域也值得借鉴,主要是找到产生歧义性的关键因素,并提出对应的方式去解决。