PWC-Net
Sun 2018 · 论文
一句话总结 — 基于三条经典原则——金字塔(Pyramid)、变形(Warping)、代价体(Cost volume)——构建的紧凑光流网络,体积比FlowNet2小17倍、推理速度快2倍,同时在主要基准测试上精度更高。
问题
FlowNet证明了光流可以端到端地学习,但要达到经典方法的精度水平,需要用到FlowNet2——一个内存占用达640MB的网络堆栈,其子网络必须依次训练以避免过拟合。
数十年的经典光流研究早已发现了让光流估计行之有效的要素:由粗到精的金字塔、图像变形以及匹配代价体。PWC-Net探究的问题是:将这些简单、成熟的原则直接嵌入架构,能否得到一个同时更小、更易训练且比暴力堆叠网络更精确的模型。
方法与架构
- 可学习特征金字塔:一个共享编码器构建级金字塔(使用7级),每级下采样2倍,第1–6级的特征通道数依次为16、32、64、96、128、196;第0级为输入图像。用学习到的特征取代固定的图像金字塔,因为原始像素对阴影和光照变化敏感。
- 变形层:在第级,第二幅图像的特征利用第级经2倍上采样的光流朝第一幅图像变形,
该操作通过双线性插值实现(可微),因此每一级只需估计一个残差运动——大位移在像素值较小的粗层级上得到处理。
- 局部代价体:匹配代价是第一幅图像特征与变形后的第二幅图像特征之间的相关性,
该计算仅在每级搜索范围像素内进行——顶层的1像素运动等价于全分辨率下的像素,因此很小的搜索范围就足够了。变形层和代价体层不含任何可学习参数,从而缩小了模型体积。
- 光流估计器:一个多层CNN(通道数为128、128、96、64、32,可选DenseNet连接)输入代价体、第一幅图像的特征以及上采样后的光流,并预测每一级的光流(各级权重独立);估计在级(即四分之一分辨率)停止,随后进行双线性上采样。
- 上下文网络:7个膨胀3x3卷积(膨胀系数为1、2、4、8、16、1、1)对光流进行后处理,具有较大的感受野,扮演经典中值/双边滤波的角色。
- 训练:先在FlyingChairs、再在FlyingThings3D上使用FlowNet的多尺度损失(FlowNet2的/调度方案),随后在基准数据集上用鲁棒损失进行微调,其中以降低异常值的权重。
实验结果
- MPI Sintel final通道(测试集):EPE为5.04(PWC-Net-ft-final)/5.13(PWC-Net-ft)——在论文发表时低于所有已发布方法(FlowNet2-ft:5.74;DCFlow:5.12),这是端到端方法首次在此基准上超越精心设计的传统方法,并且在表现最好的方法中速度最快。
- KITTI 2015(测试集):Fl-all为9.60%,优于所有已发布的双帧光流方法(FlowNet2-ft:10.41%);在KITTI 2012上,Fl-Noc为4.22%,仅次于假设背景刚性的SDF。
- 体积与速度:比FlowNet2小17倍,推理快2倍,比SpyNet和FlowNet2更易训练;在Sintel分辨率(1024x436)图像上约35fps。去掉DenseNet连接(PWC-Net-small)可换取40%的速度提升,代价是约5%的精度损失。
对SLAM的意义
稀疏光流为直接法/稠密SLAM前端、动态物体推理以及自监督深度训练提供了数据关联。PWC-Net使高质量光流的计算成本足够低,可用于实时机器人流水线,并确立了金字塔-变形-代价体设计作为深度光流的标准架构——这也是后来RAFT提出全对相关性时所对照的基准。其由粗到精带来的局限(小而快速移动的物体在粗层级上消失,且粗层级的误差被锁定)恰恰是RAFT旨在解决的失效模式。
相关条目
- FlowNet — 首个端到端深度光流网络
- FlowNet 2.0 — PWC-Net所缩小的大型堆叠式前身
- RAFT — 取代由粗到精设计的全对相关性后继方法
- SEA-RAFT — 当前效率导向的光流谱系的最新代表