156、BasicVSR视频超分:双向传播与光流对齐的协同机制及源码详解
156、BasicVSR视频超分:双向传播与光流对齐的协同机制及源码详解从一次诡异的“闪烁”问题说起去年做视频超分落地时,遇到一个让人抓狂的bug:单帧超分效果明明很好,但一旦串成视频,画面就开始“呼吸”——亮暗交替闪烁,像有人在调亮度旋钮。排查了三天,从数据预处理到后处理,最后发现是时序信息利用方式的问题——简单的前向传播导致长距离依赖丢失,帧与帧之间的亮度一致性被破坏。当时团队里有人提议“要不试试双向传播”,于是翻出BasicVSR的论文,啃完源码后,这个闪烁问题居然被双向光流对齐给治好了。今天这篇笔记,就围绕BasicVSR最核心的两个设计:双向传播和光流对齐,结合源码讲讲它们是怎么协同工作的。不扯虚的,直接上干货。为什么单向传播不够用?传统视频超分(比如EDVR、TOFlow)大多采用单向传播——从第一帧往后,逐帧传递特征。这种设计有个致命缺陷:误差会沿着时间轴单向累积。比如第1帧的模糊区域,经过第2、3帧的传播后,到第10帧可能已经被“放大”成明显的伪影。更糟糕的是,如果视频中间出现遮挡或运动剧烈,单向传播完全无法“回头看”后面的信息来修正当前帧。BasicVSR的解决思路很直接:既然向前看不够,那就向后也看。双向传播让每一帧既能从过去帧获取信息,也能从未来帧获取信息,相当于给每个时间点开了“前后双视角”。