回归基础:通过亮度恒定性和运动平滑度对光流进行无监督学习

原文链接

文章目录

  • 回归基础:通过亮度恒定性和运动平滑度对光流进行无监督学习
    • 摘要
    • 1 引言
      • 贡献
    • 2 技术方法
      • 2.1 无监督损失
      • 2.2 网络架构
    • 3 实证评估
      • 3.1 数据集
        • 飞椅
        • KITTI 2012
      • 3.2 训练细节
      • 3.3 结果
    • 4 讨论和总结

摘要

​ 最近,卷积网络 (convnets) 已被证明可用于预测光流。 这种成功在很大程度上取决于大型数据集的可用性,这些数据集需要昂贵且复杂的数据采集和费力的标记。 为了绕过这些挑战,我们提出了一种无监督的方法(即,不利用地面实况流)来训练端到端的卷积网络来预测两个图像之间的光流。 我们使用了一个损失函数,它结合了一个数据项,该数据项测量随时间的光度恒定性,以及一个空间项,该空间项对跨图像流的预期变化进行建模这些损失共同构成了真实光流损失的替代度量(proxy measure )。 从经验上讲,我们展示了,使用所提出的无监督方法训练的强大 convnet 基线优于在 KITTI 数据集上使用监督训练的相同网络

1 引言

​ 视觉运动估计是计算机视觉的核心研究领域。 最突出的是图像亮度模式的表观运动的恢复,即光流。 这项工作的大部分内容都集中在在变分框架内提取两个时间图像之间的像素速度 [7, 13]。

​ 最近,卷积网络 (convnets) 已被证明可用于各种逐像素预测任务,包括光流 [3]。 Convnets 是一种高容量模型,可以近似输入图像和输出之间复杂的非线性转换。 convnets 的成功几乎完全依赖于全监督方案,其中在训练期间提供目标值(即标签)。 这对于学习光流来说是有问题的,因为从真实场景中直接获取运动场真实值——光流试图近似的量——是不可能的。

​ 在本文中,我们提出了一种端到端的无监督方法来训练 convnet,用于预测两个图像之间的光流基于标准变分损失。 我们不依赖图像以及相应的地面实况流进行训练,而是单独使用图像。 特别是,我们使用了一个损失函数,它结合了一个数据项,该数据项可以测量随时间的光度恒定性,以及一个空间项,该空间项可以模拟图像中流量的预期变化。 光度损失(photometric loss)根据网络预测的光流测量第一个输入图像和(逆)扭曲的后续图像之间的差异。 平滑度损失(smoothness loss)衡量空间相邻流预测之间的差异。 这两个损失共同构成了基于真实数据流的损失代理。

​ 恢复两帧之间的光流是一个经过充分研究的问题,之前的许多工作都建立在变分公式 [7, 2, 13, 12] 上。 我们的损失类似于为两帧运动估计提出的目标函数; 然而,我们不是优化输入帧之间的速度图,而是使用它来优化图像训练集上的卷积网络权重

​ 最近的几项工作 [3, 10] 提出了学习输入图像帧和相应流之间映射的卷积神经网络。 这些方法中的每一种都在受监督的环境中呈现,其中提供了图像及其相应的真实数据流。 此设置假设有大型带注释的数据集可用。 现有的流数据集(例如 KITTI [6])太小而无法支持训练准确的网络。 计算机生成的场景及其相应的流程 [3, 10, 4] 提供了解决此问题的方法。 尽管最近的一些努力试图使数据创建过程半自动化 [4],但创建大型、多样化的图像仍然很费力。 另一种可能性是使用现有光流估计器的输出来提供真实情况 [14]。 这种训练方法可能导致学习正确的流量预测和光流估计器的失败的部分。 在这项工作中,我们通过仅使用输入图像以无监督的方式学习流程来避免这些缺点。

​ 并发工作提出了无监督方法来规避对大量标记数据进行训练的需要。 引入了一种时空视频自动编码器 [11],它结合了用于无监督流和图像帧预测的长短期记忆 (LSTM) 架构。 在这里,我们提出了一个更简单的前馈 convnet 模型,仅针对流预测。 与当前论文最密切相关的是最近的工作,该工作提出了一种以无监督方式进行深度估计的卷积网络 [5]。 以与所提出的方法类似的方式,光度损失将一个图像扭曲到另一个图像,并且使用平滑度损失项将预测器偏向平滑深度估计。 与当前的工作不同,处理光度损失的方式(通过线性泰勒级数近似)排除了端到端学习。

贡献

​ 根据之前的研究,我们做出以下贡献。 首先,我们提出了一种无监督的方法,以端到端的方式训练卷积网络,以预测两个图像之间的光流。 有限但有价值的地面实况流被保留用于微调网络和交叉验证其参数。 其次,我们凭经验证明,使用我们的无监督方法训练的强大 convnet 基线优于在 KITTI 上使用监督训练的相同网络,其中可用的训练ground truth流不足。

2 技术方法

​ 给定一个 RGB 图像对作为输入,X ∈ RH×W×6 ,我们的目标是学习到相应光流的非线性映射(由卷积网络近似),Y ∈ RH×W×2 ,其中 H 和 W 分别表示图像的高度和宽度。 在 2.1 节中,我们概述了我们的无监督损失。 第 2.2 节提供了有关如何将无监督损失与参考 convnet 架构集成在一起的详细信息。

2.1 无监督损失

​ 训练集由成对的时间连续图像{I(x, y, t), I(x, y, t+ 1)}组成。 与之前的工作不同,我们不假设可以访问相应的速度像素标签,参见。 [3]。 取而代之的是,我们回到传统的方法来对给定的解决方案进行评分,通过损失结合了第一张图像和扭曲的第二张图像之间的光度度量损失,以及与速度场预测的平滑度相关的损失 [7]:

其中 u, v ∈ RH×W 分别是预测流场的水平分量和垂直分量,λ 是衡量预测流平滑度相对重要性的正则化参数。 请注意,光度损失可以用其他措施代替或增加,例如图像梯度恒常性 (image gradient constancy)[2]。

​ 给定预测的流量,光度损失计算为第一张图像和向后/逆向扭曲的第二张图像之间的差异:

其中 ρD 是数据惩罚函数。 我们考虑稳健的广义 Charbonnier 惩罚函数 ρ(x) = (x2 + 2)α 来减轻异常值的影响 [13]。

​ 为了计算非刚性向后扭曲,我们使用最近提出的空间变换器模块 [8]。 这允许以端到端的方式使用标准反向传播进行学习。 简而言之,空间变换器可以描述为两个按顺序工作的部分:(i)采样网格生成器和(ii)可微图像采样器。 (此处不需要空间变换器定位步骤,因为流预测 (u, v) 为跨帧图像点之间的映射提供了必要的参数。)采样网格由以下逐点变换生成:

其中 (x1, y1) 是第一幅图像中的坐标,(x2, y2) 是第二幅图像中的采样坐标。 双线性采样步骤可以写成以下(亚)可微形式:

其中 M(·) = max(0,·)。 有关通过此模块进行反向传播的详细信息,请参阅 [8]。

​ 图像结构不足的区域支持多个相同的评价速度,例如孔径问题。 为了解决这种歧义,我们引入了标准的稳健(分段)平滑度损失:

其中 ρS(·) 是由广义 Charbonnier 函数实现的(空间)平滑度惩罚函数。

​ 我们提出的用于流量预测的无监督方法的总结如图 1 所示。


图 1:我们的无监督方法概述。

2.2 网络架构

​ 我们使用“FlowNet Simple”[3] 作为参考网络。 该架构由收缩部分和扩展部分组成。 收缩部分将两个堆叠在一起的 RGB 图像作为输入,并用级联的跨步卷积层处理它们。 扩展部分实现了“跳过层”架构,该架构将来自收缩部分各个级别的信息与“上卷积”层相结合,以迭代地细化粗流预测。 FlowNet Simple 架构如图 2 所示。

图 2:“FlowNet Simple”架构。 将两张图像作为输入,并使用多阶段细化过程生成光流预测。 来自收缩部分的特征图以及中间流预测用于“上卷积”部分。

​ 在这项工作中,我们使用由最终损失和位于扩展部分不同阶段的几个中间损失组成的损失。 中间损失旨在将较早的层更直接地引导至最终目标 [9]。 在 FlowNet 中,端点误差 (EPE),即光流的标准误差度量,被用作监督训练损失。 作为每像素地面实况流(per-pixel ground truth flow)的代理,我们用建议的无监督损失(1)替换 EPE。

3 实证评估

3.1 数据集

飞椅

​ 该合成数据集是通过将仿射映射应用于公开可用的彩色图像和一组渲染的 3D 椅子模型来实现的。 该数据集包含 22、232 个训练和 640 个测试图像对,具有地面实况流。 为了交叉验证超参数并监控学习中的过度拟合,我们从训练集中留出 2, 000 个图像对。 我们同时使用光度学和几何增强来避免过度拟合。 光度增强由应用于每个图像的加性高斯噪声、对比度、RGB 通道的乘法颜色变化、伽马和加法亮度组成。 几何变换包括二维平移、左右翻转、旋转和缩放

KITTI 2012

​ 该数据集包含在驾驶平台上收集的图像。 分别有 194 和 195 个训练和测试图像对,具有稀疏的地面实况流。 训练集用于交叉验证和监控学习进度。 对于训练,我们使用来自城市、住宅和道路类的原始 KITTI 数据,在这些类中,groundtruth 流不可用。 为了避免对相关测试图像进行训练,我们删除了所有与测试图像在视觉上相似的原始图像,包括它们的时间邻居 ±20 帧。 (策划的)原始数据由 82, 958 个图像对组成。 我们包括照片度量和几何增强。 我们使用与应用于Flying Chairs相同类型的光度增强。 几何变换包括左右翻转和缩放。 我们还使用了一个小的相对平移。

3.2 训练细节

​ 我们使用公开可用的 FlowNet Caffe 代码 [1] 中提供的“FlowNet Simple”架构。 对于光度度量损失,Flying Chairs 和 KITTI 的广义 Charbonnier 参数 α 分别设置为 0.25 和 0.38。 对于平滑度损失,Flying Chairs 和 KITTI 的 α 分别设置为 0.37 和 0.21。 平滑权重 λ 对于 Flying Chairs 设置为 1,对于 KITTI 设置为 0.53。 我们使用 Adam 作为优化方法,其参数 β1 = 0.9 和 β2 = 0.999。 Flying Chairs 的初始学习率设置为 1.6e -5,KITTI 的初始学习率设置为 1.0e- 5,我们每 100, 000 次迭代将其除以一半。 批量大小设置为四个图像对。 总的来说,我们对 Flying Chairs 使用 600, 000 次迭代,为 KITTI 使用 400, 000 次迭代。 在最初的测试中,我们注意到无监督方法在高度饱或非常黑暗的区域存在困难。 这些区域是难以辨别的,添加光度增强使这个问题更加复杂。 为了解决这个问题,在光度增强之前我们将几何增强的图像直接传递给光度损失。 此外,我们将局部 9 × 9 响应归一化应用于几何增强图像以改善乘法照明因子。

3.3 结果

​ 表 1 提供了结果汇总。 正如预期的那样,在 Flying Chairs 上使用地面实况流训练的 FlowNet 优于无监督的。 但是请注意,对于真实图像而言,提供足够密集地面实况的场景通常是不现实的。 相反,KITTI 举例说明了一个自动化场景,其中大量密集的真实图像流是不可用的。 为了回避这个问题,之前的工作 [3] 使用合成数据作为监督训练的代理。 在非遮挡 (NOC) 指标上,无监督方法改进了 KITTI 训练集上的监督方法 [3]。 这种改进在官方测试集上仍然存在。 考虑到所有像素(即被遮挡和未遮挡),所提出的方法与监督方法相比仍然具有竞争力。 图 3 显示了 KITTI 上的示例流预测结果。 虽然无监督方法的性能落后于最先进的方法,但它在 NVIDIA GTX 1080 GPU 上实时运行,测试运行时间为 0.03 秒。

表 1:平均端点错误 (EPE) 流结果。 所报告的用于监督 FlowNet 的 EPE 是 FlowNet Simple 架构 [3] 的最佳结果,没有变分平滑后处理。 “平均。 全部”和“平均 NOC”是指分别取自所有标记像素和所有未遮挡标记像素的 EPE。

图 3:KITTI 示例。 (从上到下)覆盖在第一个输入图像上的来自无监督网络的输入图像帧、ground truth 流和预测流。

4 讨论和总结

​ 我们提出了一种端到端的无监督方法来训练用于光流预测的卷积神经网络。 我们表明,所提出的无监督训练方法比有监督的训练方法具有竞争力甚至优越的性能。 这为进一步改进开辟了途径,通过利用在感兴趣的领域(例如汽车应用)中拍摄的商用相机可以轻松捕捉到的大量视频。 此外,这是一个通用的学习框架,可以通过更复杂的损失以多种方式扩展,以增强时间输入图像和流之间基于 convnet 的映射。

回归基础:通过亮度恒定性和运动平滑度对光流进行无监督学习相关推荐

  1. 数据分析4——挖掘建模(监督学习中的分类、回归模型,无监督学习)

    文章目录 挖掘建模 1.机器学习与建模 2.训练集.测试集.验证集 3.监督学习中的分类模型 (1)KNN (2)朴素贝叶斯--适合离散数据 (3)生成模型与判别模型 (4)决策树 安装Graphvi ...

  2. C的回归基础学习1——真的基础

    C的回归基础学习1--真的基础 前言 自从高二noip(2017)惨败后便没有在认真的碰C++了,以至于荒废至此.本身打算在国庆复习,但是奈何的编写网页的任务太爆肝了,假期结束还得补作业.直到现在才开 ...

  3. Python机器学习基础篇三《无监督学习与预处理》

    前言 前期回顾: Python机器学习基础篇二<为什么用Python进行机器学习> 上面这篇里面写了文本和序列相关. 我们要讨论的第二种机器学习算法是无监督学习算法.无监督学习包括没有已知 ...

  4. python 线性回归与逻辑回归区别(有监督学习【分类、回归】、无监督学习【聚类、强化学习】、损失函数、梯度下降、学习率、过拟合、欠拟合、正则化)

    引用文章1 https://blog.csdn.net/viewcode/article/details/8794401 引用文章2:一.线性回归和逻辑回归 一.什么是机器学习 利用大量的数据样本,使 ...

  5. 【机器学习基础】(六):通俗易懂无监督学习K-Means聚类算法及代码实践

    K-Means是一种无监督学习方法,用于将无标签的数据集进行聚类.其中K指集群的数量,Means表示寻找集群中心点的手段. 一. 无监督学习 K-Means 贴标签是需要花钱的. 所以人们研究处理无标 ...

  6. 【机器学习基础】通俗易懂无监督学习K-Means聚类算法及代码实践

    K-Means是一种无监督学习方法,用于将无标签的数据集进行聚类.其中K指集群的数量,Means表示寻找集群中心点的手段. 一. 无监督学习 K-Means 贴标签是需要花钱的. 所以人们研究处理无标 ...

  7. 机器学习基础 | 监督学习与无监督学习的快速入门指南

    介绍 监督学习和无监督学习有什么区别? 对于机器学习的初学者和新手来说,这是一个常见的问题.答案是理解机器学习算法本质的核心.如果没有明白监督学习与无监督学习之间的区别,你的机器学习之旅就无法继续进行 ...

  8. AI:人工智能领域算法思维导图集合之有监督学习/无监督学习/强化学习类型的具体算法简介(预测函数/优化目标/求解算法)、分类/回归/聚类/降维算法模型选择思路、11类机器学习算法详细分类之详细攻略

    AI:人工智能领域算法思维导图集合之有监督学习/无监督学习/强化学习类型的具体算法简介(预测函数/优化目标/求解算法).分类/回归/聚类/降维算法模型选择思路.11类机器学习算法详细分类(决策树/贝叶 ...

  9. 对新手的忠告:拒绝创意,回归基础

    1,什么是游戏开发? 当你亲身参与了任何一个游戏项目制作,或者认真分析了任何一个游戏的文件结构后,你才会看到游戏开发的真相:游戏开发不是新手幻想中的所谓的创意而已,也不是宣传中的所谓的高科技,创意行业 ...

最新文章

  1. github pages markdown_排版利器——MarkDown入门简介
  2. 计算机jsp外文文献,计算机JSPweb外文翻译外文文献英文文献-20210615222802.docx-原创力文档...
  3. 14.并发与异步 - 2.任务Task -《果壳中的c#》
  4. git 安装目录与服务的暂停与启动
  5. pycharm如何安装pythoncard_pycharm的各种设置,配置
  6. 解读现代存储系统背后的经典算法
  7. win10风格美化以及新建系统后优化
  8. Spring中注册Bean的方式有哪些?
  9. IDEA如何安装主题
  10. arcgis怎么做poi_基于POI数据与ArcGIS空间分析技术的城市公交站点现状容量评价方法...
  11. 微信小程序--对接萤石云视频监控
  12. 几款任意波形发生卡推荐
  13. 手机上怎么在线生成gif?1分钟教你手机图片合成gif
  14. 异步FIFO设计:各个模块的作用及Verilog代码详解
  15. pandas筛选数据_2_条件筛选
  16. Intel(R) Xeon(R) CPU E5-2678 v3
  17. 踏上自媒体之路,分享必备技能心得
  18. Windows 11配置WSL及Linux子系统安装
  19. 2019年度巨献:肠道微生物组研究领域重要成果解读!
  20. STM32开发实例 基于STM32单片机的室外环境监测系统

热门文章

  1. 紫羚云秦鸿林:大中型企业实施IT服务管理(ITSM)的几大难题
  2. 用python wxpy管理微信公众号,并利用微信获取自己的开源数据。
  3. HTB-Cursed Secret Party
  4. 2021年电工(中级)报名考试及电工(中级)考试资料
  5. 【ANSYS APDL】如何将变量、矩阵等数据导出到TXT文件?
  6. 常见HTTP/FTP/WebSockets状态码大全
  7. XUL使用中的常见错误
  8. 苏宁易购获得suning商品详情 API 返回值说明
  9. 致这一段无悔的大学青春
  10. 试水Bilibili/ijkplayer-Android