《A Large Dataset to Train Convolutional Networks for Disparity, Optical Flow, and Scene Flow Estimation》

  • 论文阅读
    • 摘要
    • 1.Introduction
      • 名词解释
      • 内容
    • 2.Related work
      • Datasets.
      • Convolutional networks.
      • Scene flow.[略]
    • 3.Definition of scene flow
    • 4.Three rendered datasets[略]
    • 5.Networks
      • Training.
      • Data augmentation.
    • 6.Experiments
      • Evaluation of existing methods.
      • SceneFlowNet.[略]
    • 7.Conclusion[略]

CVPR找论文
arxiv找论文
论文传送门
论文相关资源

论文阅读

最近在做基于深度学习的立体匹配,因此对最早的端到端的立体匹配网络DispNet进行阅读,整理如下。

摘要

  1. 作者扩展了使用卷积神经网络有监督的学习光流估计的想法,将其应用到视差估计和场景流估计
  2. 制作了三个合成 stereo video 数据集
  3. 提出了一个基于卷积神经网络的实时视差估计网络(重点)
  4. 通过结合光流和视差估计网络并联合训练,演示了第一个使用卷积网络的场景流估计;

1.Introduction

名词解释

stereo video:这里简单理解为双目相机拍摄的图像,即两个相机同时拍摄的两张图像。
场景流估计(scene flow estimation):提供立体图像中所有可见点的深度(视差估计)和3D运动向量(光流估计)信息。

内容

场景流估计是三维重建、运动估计、辅助驾驶、自动驾驶等高层次研究的重要基础。过去几十年的研究关注其子任务——视差估计和光流估计,并取得了一定的成功,而场景流估计作为一个整体的任务来研究,还没有获得成功。原因之一是缺乏具有完整标签的真实数据。虽然部分场景流可以通过简单的组合子任务的结果来得到,但将子任务的网络联合进行场景流估计在效率和精确度上是更有利的。

Dosovitskiy et al. [1] 将光流估计作为监督学习任务,并制作了合成的2D数据集——flying chairs,来训练他们的网络,可以在一般的视频中准确的预测光流。这些结果暗示了视差估计和场景流估计同样可以通过卷积神经网络来实现,不足的是缺少足够真实性和可变性的数据集来训练和评估网络。

2.Related work

Datasets.

MPI Sintel: 一个完全合成的数据集,源自一个简短的开源动画3D电影。
它包含足够逼真的场景,包括自然图像退化,例如雾和运动模糊。这使得数据集成为比较方法的非常可靠的测试集。

KITTI: KITTI 数据集于 2012 年产生并于 2015 年扩展。
它包含来自安装在汽车上的一对校准摄像头的道路场景立体视频。光流和视差的基本事实是从 3D 激光扫描仪结合汽车的自我运动数据获得的。虽然数据集包含真实数据,但采集方法将地面实况限制在场景的静态部分。此外,激光只提供到一定距离和高度的稀疏数据。在最新版本中,将汽车的 3D 模型安装到点云中,以获得更密集的标签,并且还包括移动物体。

可用数据集对比:

Convolutional networks.

作者采用了Dosovitskiy et al.[1] 提出的FlowNet的架构进行视差估计。
Dosovitskiy et al.[1] 使用了一种编码器-解码器架构,在收缩和扩展网络部分之间有额外的交叉链接,其中编码器从逐渐增加的感受野计算抽象特征,解码器通过扩展的上卷积架构重新建立原始分辨率。

在网络的收缩部分,按照输入的不同方式,分为FlowNetSample和FlowNetCorr两种架构:

在网络的扩展部分,将粗特征映射细化为高分辨率预测:

Scene flow.[略]

该部分介绍了一些非深度学习的场景流估计方法。

3.Definition of scene flow

光流: 光流是物理世界中3D运动在图像平面(2D平面)的投影。
场景流估计: 是指从stereo videos or RGBD videos中计算3D运动场(运动向量)。
例如,假设给定两个连续帧的stereo videos共四张图片,场景流估计就是提供任意一张图片中所有可见点的3D位置及3D运动向量。这些3D量在已知相机的内参矩阵和外参矩阵的条件下,是可以求解的。
场景流估计(独立于相机的定义): 由光流、视差、视差变化三个组件给出,如下图红色箭头。

4.Three rendered datasets[略]

该部分介绍了如何制作的合成数据集,有什么样特点。

5.Networks

作者遵循 FlowNet 的架构:每个网络由一个收缩部分和一个扩展部分组成,它们之间具有远程连接。收缩部分包含步长为 2 的卷积层,导致总下采样因子为 64,这允许网络估计大位移。网络的扩展部分逐渐和非线性地对特征图进行上采样,同时考虑到收缩部分的特征,这是通过一系列上卷积层和卷积层来完成的。请注意,网络中没有数据瓶颈,因为信息可以在收缩层和扩展层之间远程连接。 对于整体架构的说明,参考前面的 Dosovitskiy [1] 等人的图。
DispNetSample架构:

DispNetCorr架构:
两张图片分别单独的经过conv1和conv2,得到左特征图(feature_left)和右特征图(feature_right)。指定视差搜索范围为160pixels,conv2的输出为原输入的1/4,所以将特征图进行水平移位(移位范围0-40)并计算相关。(水平移位,是因为经过极线校正后,视差只在x方向上)
特征图移位计算相关的python代码如下:

def build_corr_volume(left_fea, right_fea, maxdisp):B, C, H, W = left_fea.shapevolume = left_fea.new_zeros([B, maxdisp, H, W])for i in range(maxdisp):if i > 0:volume[:, i, :, i:] = correlation(left_fea[:, :, :, i:], right_fea[:, :, :, :-i])else:volume[:, i, :, :] = correlation(left_fea, right_fea)volume = volume.contiguous()return volume
def correlation(fea1, fea2):B, C, H, W = fea1.shapecost = (fea1 * fea2).view([B, C, H, W]).mean(dim=1)assert cost.shape == (B, H, W)return cost

FlowNet and a joint SceneFlowNet [略]
该部分介绍了如何将FlowNet和DispNet组合成SceneFlowNet。

Dispnet与FlowNet的区别:

  • 1、作者在网络的扩展部分增加了额外的卷积层,位于每个上卷积层之后,实验证明,额外的卷积层使得视差图更平滑。

Training.

本文提出的网络都可以进行端到端的训练。
深度学习框架: 自定义版Caffe
优化器: Adam,set β1 = 0.9 and β2 = 0.999
学习率: As learning rate we used λ = 0.0001 and divided it by 2 every 200k iterations starting from iteration 400k.
网络在扩展部分进行了多尺度的损失计算(共有6个损失,loss6到loss1分别对应的分辨率为1/64,1/32,1/16,1/8,1/4,1/2)
损失权重策略: 原文中说,由于网络的深度以及收缩层和扩展层之间的直接连接,如果六个损失函数都是启用的话,底部的层将得到混合梯度。作者发现使用损失权重的策略可能是有益的:开始训练时将损失权重 1 分配给最低分辨率损失 loss6,将所有其他损失的权重设为 0(即,关闭所有其他损失)。在训练期间,逐渐增加具有更高分辨率的损失权重并停用低分辨率损失。这使网络能够首先学习粗略的表示,然后继续进行更精细的分辨率,而不会损失限制中间特征。(可以理解,不好操作)

Data augmentation.

数据增强:

  • 空间转换:旋转、平移、裁剪、缩放
  • 彩色转换:颜色、对比度、亮度
    对所有2或4个输入图像使用相同的变换。
    对于视差,任何旋转或垂直移动都会打破极线约束,立体视图之间的水平移动可能会导致负视差,因此不适用选择和平移。

6.Experiments

Evaluation of existing methods.

1、作者在FlyingThings3D上训练Dispnets,并有选择地在KITTI数据集上进行微调。
2、后缀 “-K”, 表示在KITTI数据集上进行了微调。
3、提交的结果表现:在KITTI2015上微调的DispNetCorr在KITTI2015最佳结果表中排名第二,略落后于MC-CNN-acrt,但速度大约快1000倍。
4、在KITTI分辨率上,它在Nvidia GTX Titan X GPU上以每秒15帧的速度运行。对于前景像素(属于汽车模型),我们的误差大约是[27]的一半。网络出现了一个错误∼比表中报告的最佳实时方法多块匹配[7]低30%。此外,在其他数据集上,DispNet表现良好,优于SGM和MC-CNN。

实验结果说明:
1、在KITTI上微调改进了该数据集的结果,但增加了其他数据集的错误。原因解释为:KITTI2015仅包含较小的视差范围(最多大约150像素),而其他的数据集包含500像素甚至更大的视差。当在KITTI上进行微调时,网络似乎失去了预测大位移的能力,因此在其他数据集上产生了更大的错误。
2、相比FlowNet,作者在网络扩展部分的上卷积层之间添加了额外的卷积层。正如预期的那样,这允许网络更好地规范视差图并预测更平滑的结果,如下图所示。结果是在 KITTI 2015 上相对 EPE 降低了 ∼15%。
3、DispNetCorr架构的网络性能更好,一个可能的合理解释是,视差估计问题的一维性质允许我们在比 FlowNet 更精细的网格上计算相关性。(个人理解,DispNetCorr模型更好的原因之一是通过相关计算显式地引入了视差信息,相比直接堆叠输入,将视差信息完全交给网络自己学习更好一点。)

SceneFlowNet.[略]

该部分介绍了FlowNet和DispNet组合训练的实验结果。

7.Conclusion[略]

结束啦!后续会记录使用pytorch对Dispnet进行模型构建及训练过程的复现。欢迎正在做相关工作的伙伴一起交流~
如有错误,请大力指正!多谢!!!

[1]: Alexey Dosovitskiy, Philipp Fischer, Eddy Ilg, Philip Hausser, Caner Hazirbas, Vladimir Golkov, Patrick van der Smagt, Daniel Cremers, Thomas Brox; Proceedings of the IEEE International Conference on Computer Vision (ICCV), 2015, pp. 2758-2766

【DispNet_CVPR_2016】论文阅读之一相关推荐

  1. 论文阅读工具ReadPaper

    对于搞科研的同学们来说,看论文是要经历的第一关,尤其是要读好多篇论文的时候,更是着实令人头大. 这不,最近无意中发现了个在线论文阅读网站:readpaper.com,号称「论文阅读笔记神器,硕博科研学 ...

  2. 多目标跟踪:CVPR2019论文阅读

    多目标跟踪:CVPR2019论文阅读 Robust Multi-Modality Multi-Object Tracking 论文链接:https://arxiv.org/abs/1909.03850 ...

  3. 快速人体姿态估计:CVPR2019论文阅读

    快速人体姿态估计:CVPR2019论文阅读 Fast Human Pose Estimation 论文链接: http://openaccess.thecvf.com/content_CVPR_201 ...

  4. Action4D:人群和杂物中的在线动作识别:CVPR209论文阅读

    Action4D:人群和杂物中的在线动作识别:CVPR209论文阅读 Action4D: Online Action Recognition in the Crowd and Clutter 论文链接 ...

  5. 深度学习点云语义分割:CVPR2019论文阅读

    深度学习点云语义分割:CVPR2019论文阅读 Point Cloud Oversegmentation with Graph-Structured Deep Metric Learning 摘要 本 ...

  6. 3D目标检测论文阅读多角度解析

    3D目标检测论文阅读多角度解析 一.前言 CNN(convolutional neural network)在目标检测中大放异彩,R-CNN系列,YOLO,SSD各类优秀的方法层出不穷在2D图像的目标 ...

  7. 3D目标检测论文阅读摘要

    3D目标检测论文阅读摘要 2D Object Detection 的研究已经非常成熟了,代表作品有RPN系列的FasterRCNN,One Shot系列的YOLOv1-YOLOv3,这里推荐一个2D ...

  8. 目标检测——Faster R-CNN论文阅读

    论文阅读--Faster R-CNN:Towards Real-Time Object Detection with Region Proposal Networks 文章目录 论文阅读--Faste ...

  9. 【独家】深度学习论文阅读路线图

    如果你是深度学习领域的一名新手,可能会遇到的第一个问题是"应该从哪篇论文开始读起呢?" 这里给出了深度学习论文阅读路线图! 路线图按照下面四个准则构建而成: 从提纲到细节 从经典到 ...

最新文章

  1. Linux7-常用文件管理命令及系统变量基础
  2. 服膺守善 立德立言——院长王建民教授在清华大学软件学院2020届学生毕业典礼上的赠言...
  3. Spring进阶的几大要点,你有做到吗?
  4. sql语句的学习(2)
  5. 写博客必备的复制黏贴
  6. Eclipse中如何修改SVN的地址
  7. Android 简单实现订单模块类APP的物流详情页
  8. java面向对象-------类属性和方法,不同类之间调用
  9. 好看的按钮html,html-好看的CSS按钮
  10. 无尽包围html5游戏在线玩,小团体激发潜能小游戏突破自我
  11. ftk学习记(脚本篇)
  12. 用JS实现自动提取身份证的出生日期
  13. html——float与clear详解(深度好文)
  14. 面向对象-类与对象、关键字、异常使用
  15. mockito简单教程
  16. 微型计算机软件有哪些,微型计算机常用到的应用软件有哪些?
  17. 【题解】LuoGu1512:伊甸园日历游戏
  18. 试验数据管理系统TDM6.0产品功能介绍之——签到管理
  19. android系统GUI设计师必会资源图制作工具
  20. Atitit db analysis statistics tonjyi fsy数据库统计分析目录1. Atitit 数据库表与注释文档与统计(表,说明) 11.1. 获取表列表 数据库包含哪些

热门文章

  1. matlab功率谱密度单位,功率谱密度单位是什么?和功率有关系吗?
  2. App启动图片变形,拉伸
  3. java kit 9_Java SE Development Kit 9
  4. 什么叫VI、及VI的设计规范
  5. eWebEditor编辑器asp.net版
  6. kali局域网APR攻击三https降级为http+网站账号密码获取
  7. mysql datetime 计算相隔时间
  8. 推荐几个CAD/dwg文件批量转pdf或其他格式的方法
  9. vue 字典配置_vue 字典
  10. 运算符与基本数据类型int和string的方法汇总(二)