【光流】——liteflownet论文与代码浅读

光流,liteflownet
code:mmflow
CVPR2018

1. 前言

FlowNet2是最先进的光流估计卷积神经网络(CNN),需要超过160M的参数来实现精确的流量估计。在本文中,我们提出了一种替代网络,它在Sintel和KITTI基准测试上优于FlowNet2,同时在模型尺寸上要小30倍,在运行速度上要快1.36倍。这是通过深入研究当前框架中可能被遗漏的架构细节而实现的:(1)我们通过轻量级级联网络在每个金字塔级提出了一种更有效的流推理方法。它不仅通过早期校正提高了流量估计的精度,而且还允许在我们的网络中无缝地合并描述符匹配。(2)我们提出了一种新的流正则化层,利用特征驱动的局部卷积来改善异常值和模糊流边界的问题。(3)我们的网络拥有一个有效的金字塔特征提取结构,并包含特征扭曲,而不是像FlowNet2中所实践的图像扭曲。

2. 模型

在这里插入图片描述

2.1 encoder

encode是多层的不同尺度的卷积,输出6个尺度。直接看配置

encoder=dict(
        type='NetC',
        in_channels=3,
        pyramid_levels=[
            'level1', 'level2', 'level3', 'level4', 'level5', 'level6'
        ],
        out_channels=(32, 32, 64, 96, 128, 192),
        strides=(1, 2, 2, 2, 2, 2),
        num_convs=(1, 3, 2, 2, 1, 1),
        conv_cfg=None,
        norm_cfg=None,
        act_cfg=dict(type='LeakyReLU', negative_slope=0.1),
        init_cfg=None),

2.2 decoder

在这里插入图片描述
decoder中的核心模块有:

  • Correlation:计算两个特征的相关性
  • warp:光流修正模块

整体流程

  • netM部分,计算cost volume
  • netS部分,光流warp,然后feature concat之后做预测
    在这里插入图片描述
    netM
if upflow is None:
    warp_feat = feat2
    upflow = torch.zeros_like(feat1)
else:
    warp_feat = self.warp_op(feat2, upflow * multiplier)

corr_feat = self.corr(feat1, warp_feat)
corr_feat = self.corr_up(corr_feat)
feat = self.layers(corr_feat)
res_flow = self.pred_flow(feat)

return upflow[:, :2, ...] + res_flow

netS

warp_feat = self.warp_op(feat2, flow * multiplier)
feat = torch.cat((feat1, warp_feat, flow), dim=1)
feat = self.layers(feat)
res_flow = self.pred_flow(feat)

return flow + res_flow

3. 训练

  1. level6至4、3和2级的学习率最初分别设置为1e-4、5e-5和4e-5,从120k、160k、200k和240k迭代开始,我们将其减少了2倍
  2. 用L2训练损失
  3. Adam训练器
  4. 数据增强,和schedule采用和flownet2一样
  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值