目录

论文基本情况

摘要

I. 介绍

II. 相关工作

III. 方法

A. Backbone Network

B. Joint Semantic Segmentation and Depth Estimation

C. Expert Labeling for Asymmetric Annotations

IV. 试验结果

A. NYUDv2

B. KITTI

V. EXTENSIONS

A. Single Model - Three Tasks

B. Single Model - Two Datasets, Two Tasks

C. Dense Semantic SLAM

VI. 总结

参考


论文基本情况

  • 题目:Real-time joint semantic segmentation and depth estimation using asymmetric annotations
  • 作者:
    • Vladimir Nekrasov1, Thanuja Dharmasiri2, Andrew Spek2, Tom Drummond2, Chunhua Shen1 and Ian Reid1
    • 1School of Computer Science, University of Adelaide, Australia 2Monash University, Australia
  • 出处:2019-ICRA
  • 引用:Nekrasov, V., Dharmasiri, T., Spek, A., Drummond, T., Shen, C., & Reid, I. (2019, May). Real-time joint semantic segmentation and depth estimation using asymmetric annotations. In 2019 International Conference on Robotics and Automation (ICRA) (pp. 7101-7107). IEEE.
  • 改进自论文:Nekrasov 2018年的文章 Light-Weight RefineNet for Real-Time Semantic Segmentation

摘要

将深度学习模型部署在机器人技术中作为感觉信息提取器可能是一项艰巨的任务,即使使用通用GPU卡也是如此。在这里,我们解决了三个最突出的障碍,即:

  • i)适应单个模型以一次执行多个任务的工作(在这项工作中,我们认为深度估计和语义分割对于获取场景的几何和语义理解至关重要) ,
  • ii)实时进行,并且
  • iii)使用非对称数据集(asymmetric datasets,每个模态(modality)的注释数量不均匀。

为了克服前两个问题,我们采用了最近提出的实时语义分割网络,进行了少量更改以进一步减少浮点运算的数量。

为了解决第三个问题,我们假设在可以访问强大的“教师”网络(‘teacher’ network的前提下,采用基于硬知识提炼(hard knowledge distillation的简单解决方案。最后,我们展示了如何轻松扩展我们的系统以一次处理更多任务和更多数据集。

从数量上看,在NYUDv2-40上使用单一模型,我们达到42%的平均iou,56万RMSE(对数)和0.20 RMSE(对数),在KITTI- 6用于分段,KITTI用​​于深度估计,其中前向通过仅花费17ms,在1200×350输入上仅花费6.45 GFLOP。所有这些结果都等于(或优于)当前的最新方法,这些方法是通过较大和较慢的模型分别解决每个任务而实现的。

I. 介绍

随着深度学习显示出令人印象深刻的结果的任务数量在范围和多样性上不断增长,达到这种结果的模型的数量也不断增加,这使从业人员更难以部署需要一次执行多个任务的复杂系统。对于一些紧密相关的任务,这样的部署不会带来重大障碍,除了结构相似之外,这些任务还倾向于共享相同的数据集,例如图像分类,对象检测和语义分割的情况。另一方面,诸如分割和深度估计之类的任务很少(完全)共享同一数据集。例如,NYUD数据集[1],[2]包含用于深度估计(depth estimation)的一大批注释,但仅包括一小部分 segmentations 标记的细分。只要存在针对该任务的 ground truth 注释,就可以通过简单地更新每个任务的参数来轻松解决此问题。不幸的是,由于不平衡和有偏差的梯度更新,这通常导致次优结果。我们注意到,虽然目前尚不清楚如何在最一般的情况下处理这种情况,但在本文中,我们假设我们可以访问一个大型且强大的模型,该模型可以进行有益的预测以获取丢失的标签。对于单独考虑的每个任务,此假设通常是有效的,我们利用它来预测缺失的分割掩码。

出现的另一个问题是在机器人技术和自治系统中必须实时提取感官信息。尽管有许多成功的方法可以加快单个任务的速度[3]-[5],但几乎没有任何以前的工作可以实时并行执行多个任务。在这里,我们展示了如何在几乎没有体系结构更改且没有任何复杂管线的情况下,实时执行深度估计和语义分割这两个任务。

我们选择任务的原因是,对于各种机器人应用而言,对于机器人(代理)来说,了解其周围环境的语义并感知到场景中表面的距离非常重要。所提出的方法很简单,与大型模型相比,具有竞争优势。此外,我们认为,没有什么可以阻止从业者和研究人员将我们的方法用于更多任务的,这反过来又会导致在实际应用中更好地利用深度学习模型。为了证实这一说法,我们进行了另外的实验,除了深度和分割之外,还预测了表面法线。此外,我们成功地训练了一个模型,该模型可以在室内和室外设置中一次执行深度估计和语义分割。在另一个案例研究中,我们证明了我们联合网络的原始输出(分割和深度)可以直接在SemanticFusion框架内使用[6]来估计场景的密集语义3D重构

总结我们的导言,我们再次强调我们的结果表明,当一个小型网络可以实现相同的性能时,就无需非关键性地部署多个昂贵的模型-一个案例要优于两个案例!

II. 相关工作

我们的工作与几个主题密切相关。其中包括多任务学习,语义分割,深度估计和知识提取(knowledge distillation)。

根据经典的多任务学习范例,强制单个模型同时执行多个相关任务可以通过在学习的表示上施加归纳偏差(inductive bias)来提高通用性[7],[8]。这种方法假定所有任务在学习特定于任务的参数之前都使用共享表示。计算机视觉方面的多项工作都遵循了这一策略。特别是,

  • Eigen&Fergus [9]训练了一个单一的体系结构(但是具有不同的副本)来预测深度​​,表面法线和语义分割,
  • Kokkinos [10]提出了一个通用网络来解决7种不同的视觉任务,
  • Dvornik等人 [11]发现进行联合语义分割和对象检测是有益的,
  • 而Kendall等人 [12]认识到同时执行实例分割,语义分割和深度估计的最佳权重。
  • 为了缓解注释不均衡的问题,Kokkinos [10]选择累积每个任务的梯度(accumulate the gradients),直到看到每个任务有一定数量的示例(example)为止,而Dvornik等人则选择了这种方法。
  • [11]在没有完整可用的 ground truth 时,只是诉诸于保留分支(keep the branch),直到至少有一个这样的模态的例子被发现。

我们注意到,这些方法都没有为每个单独的任务使用已经存在的模型,除BlitzNet [11]以外,没有其他方法可以实现实时性能。相反,我们展示了如何利用大型的预训练模型来获得更好的结果,以及如何进行实时推理。

语义分割是为每像素标签分类的一项任务,近年来,大多数方法都围绕着将图像分类网络改编为能够在不同大小的输入上运行的全卷积网络的想法[13] – [15]。具有良好性能的此类网络的实时使用并非易事,目前尚无可用的方法[5],[16] – [18]。我们选择了最近在MobileNet-v2 [19]之上提出的 Light-Weight RefineNet [18]作为我们的基准体系结构,因为它在标准基准数据集PASCAL VOC [20]上实时显示出稳定的性能,而少于4M参数。

深度估计是每个像素的另一项任务,其目的是确定每个像素距观察者的距离。

  • 传统上,基于图像的深度重建是使用基于SLAM的方法进行的[21] – [23]。
  • 但是,最近的机器学习方法取得了令人印象深刻的结果,其中CNN已成功采用监督学习[9],[24]-[26],无监督学习[27],[ 28]和半监督学习[29]。
  • Eigen&Fergus [9]首先解决了从单个图像预测包括深度在内的多个数量的问题。
  • Dharmasiri等[30]证明,与利用三个独立的网络相比,以深度、表面法线和表面曲率的形式预测相关的结构信息可提高所有三个任务的性能。
  • 最近,齐等人 [31]发现直接编码几何结构作为网络体系结构的一部分以同时执行深度估计和表面法线估计是有益的。

我们的方法与以前的工作有两个根本不同。首先,我们的网络在每个任务上都表现出实时性能。其次,我们展示了如何有效地将不对称和不均匀的地面实况注释纳入训练体系。此外,应该指出的是,尽管使用了实时运行的较小模型,但我们在数量上仍胜过这些方法。

最后,我们简要介绍一下知识提炼方法(knowledge distillation[32]-[35],

  • 其基础是拥有一个大型的预训练教师(专家)网络(或一组网络),并使用其多元逻辑(logit)或预测,直接作为小型网络的指导信号以及原始标签。
  • 先前的一些工作依靠知识提取(knowledge distillation)来获取缺失的数据[36],或作为正则化项(a regulariser term[37],[38]。
  • 尽管这些与我们的工作有关,但我们在几个方面有所不同:最值得注意的是
    • Zamir等[36]需要不同的网络副本来完成不同的任务,
    • 而霍夫曼等人 [37]和Li&Hoiem [38]仅考虑单个任务学习(分别是对象检测和图像分类)。

III. 方法

虽然我们主要讨论仅涉及两个任务的情况,但是相同的机制适用于更多任务,如Sect. V-A 中所示。

A. Backbone Network

如前一节所述,我们采用了最近提出的基于轻型Light-Weight-RefineNet架构[18],该架构建立在MobileNet-v2分类网络[19]之上。这种架构通过附加几个简单的上下文块(称为链式残差池化(Chained Residual Pooling, CRP)[39])扩展了分类器,该块由一系列5×5最大池和1×1卷积组成(图1)。

即使原始结构已经实现了实时性能并且具有少量参数,但对于深度估计和语义分割(共40个类)的联合任务,在640×480大小的输入上仍需要14个以上的浮点运算(GFLOP),这可能会阻碍它。我们发现,最后一个CRP块负责处理FLOP的一半以上,因为它处理高分辨率特征图(原始分辨率为1/4)。因此,(创新点:)为了减小其影响,我们将最后一个CRP块中的1×1卷积替换为其深度等效值(即,替换为分组卷积,其中组数等于输入通道数)。通过这样做,我们将操作数量减少了一半以上,减少到6.5 GFLOP.

B. Joint Semantic Segmentation and Depth Estimation

在一般情况下,决定在何处将骨干网分支到单独的特定于任务的路径,以同时在所有路径上实现最佳性能是很重要的。在没有强力假设的情况下,我们没有找到最佳位置,而是仅在最后一个CRP块之后进行分支,并为每个任务附加了两个额外的卷积层(一个深度1×1和一个普通3×3)(图1)。

如果我们将分支之前的网络输出表示为,其中是具有一组参数θb的骨干网络,而I是输入的RGB图像,则深度和分段预测可以为表示为,其中分别是分段和深度估计分支,分别带有参数θs和θd。我们使用标准的softmax交叉熵损失进行分割,使用反Huber损失进行深度估计[25]。我们的总损耗(等式(1))包含一个额外的缩放参数λ,为简单起见,我们将其设置为0.5:

其中Gs和Gd分别表示ground truth的分割掩码和深度图; 分割损失中的(·)ij是像素i处类别j的概率值。

C. Expert Labeling for Asymmetric Annotations

正如人们所期望的那样,不可能为每个单个图像提供所有ground truth感官信息(sensory information)。很自然地,这提出了一个问题,即如何处理一组图像S = { I },其中有些图像具有一种模态的注释,而另一种图像则没有。假设每个图像始终存在一个模态,则将集合S分为两个不相交的集合,使得,其中T1和T2分别表示两个任务,并且集合S1包括没有可用的第二任务的注释的图像,而集合S2包括具有两组注释的图像。

简而言之,没有什么可以阻止我们继续使用等式(1),在这种情况下,只会更新具有可用标签的分支的权重。正如我们在实验中显示的那样,这导致倾斜的梯度,因此导致次优解。相反,强调需要同时更新两个分支,我们依靠专家模型为我们提供嘈杂的估计值,以代替缺少的注释。

更正式地说,如果我们将第二个任务的专家模型表示为,则其对集合S1的预测可用作合成的ground truth数据,我们将使用它来对我们的联合模型进行预训练,然后在原始集S2(同时含有两个任务的ground truth数据)上进行最终微调。在这里,我们利用专家网络而不是 logit 预测的标签,因为存储一组大型3-D浮点张量需要大量资源。

还要注意,我们的框架可以直接转移到集合S包含多个数据集的情况下。在Sect. V-B 我们展示了一种使用模型的单个副本同时利用所有资源的方法。

IV. 试验结果

本部分的目的是演示可以轻松地将我们的方法直接应用于其他实际情况,例如,一次执行三个任务的单个模型的部署,以及一次执行两个任务的单个模型的部署在两种不同的情况下一次完成任务-室内和室外。 作为第三项任务,在这里我们考虑表面法线估计,并且在两种情况下,我们考虑同时在NYUD和KITTI上训练单个模型,而不必为每个数据集都拥有相同体系结构的单独副本。
在本节中,我们力求简单,而不是追求获得高性能,因此,我们直接采用与上一节中概述的相同的训练方案。

A. NYUDv2

B. KITTI

V. EXTENSIONS

A. Single Model - Three Tasks

B. Single Model - Two Datasets, Two Tasks

C. Dense Semantic SLAM

最后,我们证明了由我们在室内进行深度估计和语义分段的联合网络预测的quantities,可以直接合并到现有的SLAM框架中。
特别地,我们考虑

  • SemanticFusion [6]: SLAM重构由ElasticFusion [49]进行(ElasticFusion [49]依靠RGB-D输入以查找帧之间的密集对应关系)。
  • McCormac等人使用了一个单独的CNN,该CNN也在RGB-D输入上运行。
  • [6]获取当前帧的二维语义分割图。借助SLAM系统预测的跟踪姿势,可以获得场景的密集3D语义图。

我们考虑了作者1提供的NYUD验证集的一个序列,并直接用我们的网络输出共同执行地面深度和分段(第IV-A节)来代替地面真实深度测量。同样,我们不利用作者的细分CNN,而是利用网络中的细分预测。还要注意,我们的细分网络是在40个语义类上训练的,而在这里,我们直接将结果重新映射到13个类的域中[50]。我们在图5上显示了基于密稠密表面重建以及稠密分割和当前帧。有关完整序列结果,请参阅补充视频资料。

VI. 总结

我们相信,使用深度学习模型在机器人应用程序中轻松提取视觉信息,对于进一步开发和部署机器人及自动驾驶至关重要。为此,我们提出了一种用于深度估计和语义分割的联合任务的实现实时性能的简单方法。我们展示了有可能(并且确实有益)重新使用大型现有模型,以生成对于紧凑模型的预训练阶段很重要的合成标签。此外,我们的方法可以轻松扩展以同时处理更多任务和更多数据集,而我们网络的原始深度分割预测可以在可用的稠密SLAM系统中无缝使用。在未来的工作中,我们将考虑在训练前阶段是否可以直接考虑专家的不确定性,以获得更好的结果,以及在没有可靠专家的情况下。另一个有趣的方向在于整合Zamir等人的发现 [36]为了减少训练注解的总数而不牺牲性能。

参考

[12] A. Kendall, Y. Gal, and R. Cipolla, “Multi-task learning using uncertainty to weigh losses for scene geometry and semantics,” CoRR, vol. abs/1705.07115, 2017

[18] V. Nekrasov, C. Shen, and I. Reid, “Light-weight refinenet for realtime semantic segmentation,” in BMVC, 2018.

[19] M. Sandler, A. G. Howard, M. Zhu, A. Zhmoginov, and L. Chen, “Inverted residuals and linear bottlenecks: Mobile networks for classification, detection and segmentation,” CoRR, vol. abs/1801.04381, 2018.

论文笔记_S2D.08-2019-ICRA-使用非对称标注实时联合语义分割和深度估计相关推荐

  1. NVIDIA ECCV18论文:超像素采样网络助力语义分割与光流估计(代码将开源)

    (欢迎关注"我爱计算机视觉"公众号,一个有价值有深度的公众号~) 计算机视觉中超像素指具有相似纹理.颜色.亮度等特征的相邻像素构成的具有一定视觉意义的不规则像素块.它利用像素之间特 ...

  2. MultiNet:自主驾驶中的实时联合语义推理 论文翻译

    MultiNet论文相关 论文下载地址:原文地址.免翻墙地址 论文Github地址:KittiSeg 论文翻译参考:csdn MultiNet: Real-time Joint Semantic Re ...

  3. CVPR2019 | 15篇论文速递(涵盖目标检测、语义分割和姿态估计等方向)

    [导读]CVPR 2019 接收论文列表已经出来了,但只是一些索引号,所以并没有完整的论文合集.CVer 最近也在整理收集,今天一文涵盖15篇 CVPR 2019 论文速递,内容涵盖目标检测.语义分割 ...

  4. 论文笔记(五)FWENet:基于SAR图像的洪水水体提取深度卷积神经网络(CVPR)

    FWENet: a deep convolutional neural network for flood water body extraction based on SAR images 作者:J ...

  5. CVPR 2019 | 微软亚研院提出用于语义分割的结构化知识蒸馏

    点击我爱计算机视觉标星,更快获取CVML新技术 今天跟大家分享一篇关于语义分割的论文,刚刚上传到arXiv的CVPR 2019接收论文<Structured Knowledge Distilla ...

  6. CVPR 2022 57 篇论文分方向整理 + 打包下载|涵盖目标检测、语义分割、人群计数、异常检测等方向

    CVPR2022论文速递系列: CVPR 2022 3月3日论文速递(22 篇打包下载)涵盖网络架构设计.姿态估计.三维视觉.动作检测.语义分割等方向 CVPR 2022 3月4日论文速递(29 篇打 ...

  7. 论文笔记:ICML 2019 Simplifying Graph Convolutional Networks

    前言 随着2017年GCN概念的提出,近年来越来越多的GCN方法被提出.由于GCN本身的提出来源于深度学习中CNN和RNN的概念,因此可能会继承其中一些不必要的复杂度和冗余计算,本文提出了一种简化的图 ...

  8. 论文笔记:WWW 2019 Heterogeneous Graph Attention Network

    1.前言 论文链接:https://arxiv.org/pdf/1903.07293v1.pdf github:https://github.com/Jhy1993/HAN 图神经网络作为一种基于深度 ...

  9. 论文笔记_S2D.77_2013_TOR_使用RGBD相机的3D建图(RGBD SLAM V2)

    目录 基本情况 摘要 介绍 系统流程 特征提取 运动估计 EMM:Environment Measurement Model 回环检测 图优化 建图OctoMap 参考 基本情况 出处:Endres ...

  10. 【论文笔记】DSIFN:用于高分辨率双时相遥感图像变化检测的深度监督图像融合网络

    本文是论文<A deeply supervised image fusion network for change detection in high resolution bi-tempora ...

最新文章

  1. gitlab 构建tag_GitLab常用命令 分支 Tag 配置 操作
  2. 字节跳动python面试_【字节跳动Python面试】生平遇到最好的面试体验-看准网
  3. vue滚动条禁止_vue弹窗后如何禁止滚动条滚动?
  4. abd shell关闭所有程序_第十六章 Shell编程
  5. 京东金融 App 收集隐私?开源库程序员不背锅!
  6. jdk配置环境变量的方法
  7. C语言:从键盘输入三个数,求最值问题
  8. 30个最常用css选择器解析(经典)
  9. 采用传输矩阵法求解光子晶体带隙
  10. Python零基础学习笔记(三十九)—— time
  11. 展锋芒,一遇风云便化龙
  12. 《缠中说禅108课》57:当下图解分析再示范
  13. rust修改礼包时间_Rust Async: futures-timer源码解析
  14. Django项目实战——10—(修改地址前后端逻辑、删除地址前后端逻辑、设置默认地址、修改密码、虚拟机安装docker/FastDFS、电商-商品知识、首页广告数据库表分析、商品信息数据库表分析)
  15. mac键盘快捷键详解,苹果电脑键盘快捷键图文教程
  16. python程序下载腾讯企业邮箱附件_获取腾讯企业邮箱通讯录python脚本(带登录功能)...
  17. 云计算与大数据技术 李春燕
  18. servlet,filer,listener 推荐阅读
  19. android 备份游戏数据,用于Android游戏存档备份和存档还原的教程(图形中的详细信息)...
  20. Proxifier使用教程

热门文章

  1. android studio 中由于网络问题,编译错误
  2. SpringMvc上传文件遇到重复读取InputStream的问题
  3. POJ 1330 Nearest Common Ancestors(LCA Tarjan算法)
  4. VBA基础知识———常用语句
  5. 程序员生存定律——打造属于自己的稀缺性(转载)
  6. 查看web站点缓存的好工具Cache Manager -- 避免滥用缓存
  7. Tomcat—如何在Windows 7中修改Tomcat的端口号
  8. MYSQL单列索引和组合索引分析
  9. GDAL根据Shape文件切图(java)
  10. 获取笔记本序列号(SN码)命令