当前位置: 首页 > article >正文

Monocular arbitrary moving object discovery and segmentation 论文阅读

基本信息

题目:Monocular Arbitrary Moving Object Discovery and Segmentation
作者
在这里插入图片描述
来源:BMVC
时间:2021
代码地址:https://github.com/michalneoral/Raptor

Abstract

我们提出了一种发现和分割场景中独立移动的物体或其部分的方法。给定三个单眼视频帧,该方法输出语义上有意义的区域,即对应于整个对象的区域,即使只有其中一部分移动。

基于 CNN 的端到端方法的架构称为 Raptor,它结合了语义和运动主干,将其输出传递到最终的区域分割网络。语义主干以与类无关的方式进行训练,以便泛化到训练数据之外的对象类。运动分支的核心是根据光流、光学扩展、单深度和估计的相机运动计算出的几何成本量。

对所提出的架构在 KITTI、DAVIS-Moving 和 YTVOSMoving 数据集上的实例运动分割和二元动静态分割问题的评估表明,所提出的方法在所有数据集上实现了最先进的结果,并且能够很好地泛化到各种环境。对于KITTI数据集,我们提供了升级的实例运动分割注释,涵盖了所有运动对象。

Introduction

只有单个相机可用(单目视觉),相机不一定是静态的,并且处理需要是因果的。目标是发现并分割所有独立移动的“物体”。我们将该问题称为移动对象发现和分割 – MODaS

Object define

MODaS 规范的关键是实例或对象的定义。常用的定义(参见第 2 节)是几何定义——一组经历相同刚性运动并在空间上连接的像素。此定义在两种重要情况下失败:(i) 当对象不是刚性的时,以及 (ii) 当两个语义不同但邻近的对象移动相似时(参见图 1)。对于应用程序来说,过度分割和分割不足的情况都是有问题的。例如,当一个人移动她的腿时,应该返回整个人的轮廓,因为要预测位置的是人,而不是腿。因此,移动对象在几何上被定义,其部分独立于相机运动而移动,并且在语义上,它是语义上有意义的实体。
在这里插入图片描述

Object discovery

对象发现与现代检测器密切相关,因为它们不仅输出位置,还输出可能数百个类别的分割[18]。在这方面,我们更进一步,使用以与类无关的方式训练的检测器[14],其中所有类都合并为单个“对象”类。这样,检测器可以更好地概括训练期间未见过的类别的对象(例如,当训练数据仅包含马时检测到骆驼)。为了将其与已知类的检测问题区分开来,我们将其称为对象发现。

Independent motion

独立运动。当一个物体(或其部分)的表观运动不是相机自我运动的结果时,该物体(或其一部分)被认为是独立移动的。一般来说,从单目相机识别此类运动是一个不适定问题。由于光流本身只是 3D 场景运动的 2D 投影,因此其解释是不明确的。单目深度估计的最新进展提供了克服这些模糊性的可能方法。对于统计数据与训练数据集相似的场景,单一深度可以作为真实深度的有用先验,并且能够消除观察到的运动的歧义[46]

Contribution

我们提出了一种名为 Raptor 的基于 CNN 的架构,它基于语义和几何处理的新颖组合。我们表明,与类无关的语义部分导致了语义上有意义的对象的发现,而几何运动成本量处理解决了明显的运动歧义。该网络发现刚性和非刚性移动对象及其实例分割掩模。与大多数方法 [14、15、20、31、33、38、46] 不同,Raptor 架构使用三个框架进行 MODaS。我们是第一个将几何部分扩展到两帧处理之外的人。

我们表明,对两个方向(向前和向后)的几何特征的估计提高了 Raptor 的发现和分割输出的精度

Architecture

所提出的 Raptor 架构如图 2 所示。它有两个输入分支:一个生成语义特征(绿色),另一个使用运动成本量 (MCV) 生成运动特征(橙色)。它们的输出被连接并发送到混合任务级联(HTC)[11]头,该头生成移动对象掩模。

在这里插入图片描述

Semantic backbone

语义主干(图 2 (a))改编自 DetectoRS 架构 [29]。它围绕递归特征金字塔主干 (RFP) 和可切换空洞卷积 (SAC) 构建。我们使用主干网的 ResNet-50 变体。

为了将检测管道转换为对象发现方法,以便它更好地推广到未知类,我们遵循[14]的类不可知训练的思想。我们在对象分割问题 [21] 上训练主干网络和临时 HTC 头,将所有对象类别合并为单个“对象”类别。本次训练不存在运动分支。 [14] 中已经表明,这种方法可以更好地预测未知类。训练结束后,HTC 头被丢弃,语义主干权重被固定。

Motion branch

运动分支(图 2 (b))的灵感来自于最近的刚体运动分割方法 [46]。它使用单眼深度 D t D_t Dt 、光流 F t − > t + 1 F_{t->t+1} Ft>t+1、光学扩展 E t + 1 E_{t+1} Et+1 和自我运动估计 [ R t + 1 , t t + 1 ] [R_{t+1},t_{t+1}] [Rt+1,tt+1] 作为前向运动成本体积 (MCV) 构造的输入。我们使用 F t − > t − 1 F_{t->t-1} Ft>t1 E t − 1 E_{t-1} Et1 [ R t − 1 , t t − 1 ] [R_{t-1},t_{t-1}] [Rt1,tt1] 进一步计算“向后”MCV。和[46]一样,我们为每个方向构建一个 14 通道 MCV,包括:对极几何的每像素 Samson 误差、每像素旋转单应性重投影误差、3D P+P 成本、深度对比度成本、重建 3D来自光流的场景点、校正运动场、光流和光学扩展的不确定性以及 3D 角度 P+P 成本。这些成本旨在指示与估计的自我运动的不一致,同时处理共面或共线运动或自我运动简并的各种模糊性。

运动分支主干架构与语义主干架构类似,但它不是基于 ResNet-50,而是基于 ResNet-18 DetectoRS 架构构建。输入是每个方向的 14 通道运动成本量。图像特征不直接输入到运动主干。向前和向后方向的MCV一一穿过运动主干。运动分支是用另一个临时 HTC 头单独预训练的,没有 MODaS 问题的语义主干。训练结束后,临时 HTC 头再次被丢弃,运动主干被固定。

Semantic + motion

语义 + 运动(图 2 (b)) 两个分支的输出被连接起来。

语义分支产生五个特征张量 F 1 / 4 、 F 1 / 8 、 F 1 / 16 、 F 1 / 32 、 F 1 / 64 F_{1/4} 、F_{1/8}、 F_{1/16} 、 F_{1/32} 、 F_{1/64} F1/4F1/8F1/16F1/32F1/64 ,空间分辨率递减,每个特征张量有 256 个通道。

原始运动分支生成每个方向 256 个通道的特征张量。面对训练设备的内存限制,我们通过额外的 1x1 卷积层将输出标准化为 128 通道。然后,两个方向的输出与语义主干的特征连接并馈送到 HTC 头(总共 512 个通道)。由于 MCV 仅针对刚体运动而设计,因此它会报告铰接对象的仅部分不一致问题。 HTC 头的任务是将这些部分不一致与语义特征结合在一起,并输出完整的运动对象分割掩模。

两个分支在最终训练中都是固定的,并且只有最终的 HTC 头部接受了移动物体发现的训练。运动分支归一化 1x1 CNN 层在训练的最后阶段与 HTC 一起进行训练。

Improvement of MCV components

MCV 组件的改进。运动分支使用多种外部算法来生成其输入。我们还小心翼翼地将它们带到文献中最先进的版本。我们使用 RAFT [32] 代替原来较旧且较弱的 VCN [45] 光流估计器。我们在广泛的数据集上训练 RAFT(鲁棒视觉挑战风格,如先前的作品 [24, 39] 展示了增强的泛化能力)。使用此光流估计,我们还重新训练了光学扩展部分。

与原始 VCN 不同,RAFT 不输出超出范围的置信度,这是 MCV 中的通道之一。我们将其替换为类似的前向-后向一致性成本,该成本针对 MCV 计算为 F t − > t + 1 + w a r p ( F t + 1 − > t ; F t − > t + 1 ) F_{t->t+1} + warp(F_{t+1->t} ;F_{t->t+1}) Ft>t+1+warp(Ft+1>t;Ft>t+1),其中 warp 操作转换流 $F_{t+1->t}到框架 t。我们不设置该值的阈值。

Experiments

MCV 的构建需要内部相机参数和相机运动 [R;t] 的估计,以分解基本矩阵。我们选择 NG-RANSAC [6] 进行基本矩阵估计,因为它允许在未来的工作中进行可能的端到端训练。

对于不包含相机固有参数的数据集,我们将焦距设置为 1 / m a x ( I w i d t h , I h e i g h t ) 1/max(I_{width},I_{height}) 1/max(Iwidth,Iheight),并将主点设置为图像的中点。

Failure case

在这里插入图片描述

(见图 5)最常见的问题是缓慢移动的物体、远离相机的物体或靠近扩展点的物体。它们的检测可能需要更长的时间整合。观察到的另一个问题是合并不明确的对象实例(带包的人、摩托车及其驾驶员等)。 Raptor 还与明显被遮挡的对象(树叶、条形后面……)作斗争,有时会返回静态但语义上有意义的对象。


http://www.kler.cn/a/108720.html

相关文章:

  • Springboot整合Prometheus+grafana实现系统监控
  • LLMs之MindFormers:基于国产硬件华为Atlas针对GLM-4-9B实现模型全参微调(单机8卡)→模型推理(单卡多batch推理)
  • Vue3入门介绍及快速上手
  • 【大数据学习 | kafka高级部分】kafka的kraft集群
  • 模型压缩相关技术概念澄清(量化/剪枝/知识蒸馏)
  • 动手学深度学习68 Transformer
  • IconWorkshop 6软件官方下载:制作ICO/ICON图标、编辑、转换图标
  • Web攻防06_sqlmap的使用
  • Java面试基础篇
  • 《C和指针》(6)指针
  • JAVA面试题简单整理
  • php使用lunar实现农历、阳历、节日等功能
  • SpringBoot小项目——简单的小区物业后台管理系统 认证鉴权 用户-角色模型 AOP切面日志 全局异常【源码】
  • 云原生微服务治理 第四章 Spring Cloud Netflix 服务注册/发现组件Eureka
  • 【C++项目】高并发内存池第五讲内存回收释放过程介绍
  • 如何利用 ChatGPT 提升编程技能
  • RabbitMQ生产者的可靠性
  • 洛谷 B2029 大象喝水 C++代码
  • pandas笔记
  • spring-aop-execution表达式
  • vue3.0运行npm run dev 报错Cannot find module node:url
  • 文心一言 VS 讯飞星火 VS chatgpt (123)-- 算法导论10.4 4题
  • Java SE 学习笔记(十七)—— 单元测试、反射
  • POJ 1201 Intervals 线段树
  • 微信小程序之投票管理
  • Leetcode—274.H指数【中等】