133、VSRT模型解析:视频超分中的Transformer架构创新
从一次诡异的显存爆炸说起
去年秋天帮师弟调试一个视频超分项目,他用的还是老一套的EDVR加光流对齐。模型跑着跑着,突然显存从8G飙到24G,然后直接OOM。我盯着nvidia-smi看了半天,发现是时序注意力那块在长序列上炸了——每增加一帧,计算量不是线性增长,而是接近O(N²)的二次爆炸。师弟一脸无辜:“师兄,我用的就是标准的Transformer啊。”
那一刻我意识到,视频超分领域对Transformer的“暴力移植”已经走到了尽头。我们需要一个真正为视频时序特性设计的架构。这就是VSRT(Video Super-Resolution Transformer)诞生的背景——它不是简单地把图像Transformer搬到视频上,而是从底层重新思考了“时序”这个维度该怎么处理。
核心问题:视频超分为什么不能直接套用ViT?
先说说我踩过的坑。2021年刚接触视频超分时,我天真地以为把SwinIR的窗口注意力扩展到3D时空窗口就行。结果呢?模型参数量翻了三倍,推理速度慢得像蜗牛,而且长序列上的时序一致性一塌糊涂——相邻帧的超分结果在边缘处频繁闪烁。
问题出在三个地方:
第一,视频帧间的运动是稀疏的。连续两帧之间,大部分像素是静止的,只有运动区域需要跨帧信息。全局注意力把大量计算浪费在了相似度极低的静止区域上。我试过在Vimeo-90K上统计,相邻帧的像素匹配率平均