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.rhkb.cn/news/169415.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VSCode 自动格式化

1.打开应用商店,搜索 prettier code formatter ,选择第一个,点击安装。 2.安装完成后,点击文件,选择首选项,选择设置。 3.在搜索框内输入 save ,勾选在保存时格式化文件。 4.随便打开一个文件&a…

nginx配置负载均衡--实战项目(适用于轮询、加权轮询、ip_hash)

👨‍🎓博主简介 🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊交流社区:运维交流社区 欢迎大家的加入! 🐋 希望大家多多支…

021-Qt 配置GitHub Copilot

Qt 配置GitHub Copilot 文章目录 Qt 配置GitHub Copilot项目介绍 GitHub Copilot配置 GitHub CopilotQt 前置条件升级QtGitHub Copilot 前置条件激活的了GitHub Copilot账号安装 Neovim 启用插件,重启Qt配置 GitHub Copilo安装Nodejs下载[copilot.vim](https://gith…

http post协议实现简单的rpc协议,WireShark抓包分析

文章目录 1.http 客户端-RPC客户端1.http 服务端-RPC服务端3.WireShark抓包分析3.1客户端到服务端的HTTP/JSON报文3.2服务端到客户端的HTTP/JSON报文 1.http 客户端-RPC客户端 import json import requests# 定义 RPC 客户端类 class RPCClient:def __init__(self, server_url…

基于多尺度分形残差注意力网络的超分辨率重建算法

1.引言 深度神经网络可以显著提高超分辨率的质量,但现有方法难以充分利用低分辨率尺度特征和通道信息,从而阻碍了卷积神经网络的表达能力。针对此类问题,本章提出了一种多尺度分形残差注意力网络(Multi-scale Fractal Residual A…

Java NIO

Java NIO 一,介绍 Java NIO(New IO)是 JDK 1.4 引入的一组新的 I/O API,用于支持非阻塞式 I/O 操作。相比传统的 Java IO API,NIO 提供了更快、更灵活的 I/O 操作方式,可以用于构建高性能网络应用程序。 …

系统设计 - 我们如何通俗的理解那些技术的运行原理 - 第八部分:Linux、安全

本心、输入输出、结果 文章目录 系统设计 - 我们如何通俗的理解那些技术的运行原理 - 第八部分:Linux、安全前言Linux 文件系统解释应该知道的 18 个最常用的 Linux 命令HTTPS如何工作?数据是如何加密和解密的?为什么HTTPS在数据传输过程中会…

领导:给你一个项目,如何开展性能测试工作。我:***

01 怎么开展性能测试 01 测试的一般步骤 性能测试的工作是基于系统功能已经完备或者已经趋于完备之上的,在功能还不够完备的情况下没有多大的意义(后期功能完善上会对系统的性能有影响,过早进入性能测试会出现测试结果不准确、浪费测试资源…

ESRI ArcGIS Desktop 10.8.2图文安装教程及下载

ArcGIS 是由美国著名的地理信息系统公司 Esri 开发的一款地理信息系统软件,它是目前全球最流行的 GIS 软件之一。ArcGIS 提供了图形化用户界面和数据分析工具,可以帮助用户管理、分析和可视化各种空间数据。ArcGIS Desktop是一个完整的桌面GIS软件套件&a…

20231024后端研发面经整理

1.如何在单链表O(1)删除节点? 狸猫换太子 2.redis中的key如何找到对应的内存位置? 哈希碰撞的话用链表存 3.线性探测哈希法的插入,查找和删除 插入:一个个挨着后面找,知道有空位 查找:一个个挨着后面找…

Ai写作创作系统ChatGPT网站源码+图文搭建教程+支持GPT4.0+支持ai绘画(Midjourney)/支持OpenAI GPT全模型+国内AI全模型

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统AI绘画系统,支持OpenAI GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署…

记一次渗透测试事件

一、漏洞发现 拿到登录的接口,丢到sqlmap里面跑一把,发现延时注入 进一步查询,发现是sa权限,直接os-shell whomai查询发现是管理员权限 os-shell执行命令太慢了,直接进行nc 反弹 执行base64 加密后的powershell命令&…

DALL·E 3怎么用?DALL·E 3如何申请开通 ?DALL·E 3如何免费使用?AI绘画教程来喽~

一、引言 DALLE 3 是 OpenAI 在上个月(2023 年 9 月)发布的一个文生图模型。 相对于 Midjourney 以及 Stable Diffusion,DALLE 3 最大的便利之处在于,用户不需要掌握 Prompt 的写法了,直接自然语言描述即可。 甚至还…

【文件操作】Java -操作File对象

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ 文件操作 Java - File对象 Java - File对象 Fi…

ssm+vue的汽车站车辆运营管理系统(有报告)。Javaee项目,ssm vue前后端分离项目。

演示视频: ssmvue的汽车站车辆运营管理系统(有报告)。Javaee项目,ssm vue前后端分离项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系…

面对史上最难求职季,哪些测试技能更容易拿到offer?

在一线大厂,没有测试这个岗位,只有测开这个岗位。这几年,各互联网大厂技术高速更新迭代,软件测试行业也正处于转型期。传统的功能测试技术逐步淘汰,各种新的测试技术层出不穷,测试人员的薪资也水涨船高。与…

数据库连接池有什么用?它有哪些关键参数?

首先,数据库连接池是一种池化技术,池化技术的核心思想是实现资源的复用,避免资源重复创建销毁的开销。而在数据库的应用场景里面,应用程序每次向数据库发起 CRUD 操作的时候,都需要创建连接.在数据库访问量较大的情况下…

28、Flink 的SQL之DROP 、ALTER 、INSERT 、ANALYZE 语句

Flink 系列文章 1、Flink 部署、概念介绍、source、transformation、sink使用示例、四大基石介绍和示例等系列综合文章链接 13、Flink 的table api与sql的基本概念、通用api介绍及入门示例 14、Flink 的table api与sql之数据类型: 内置数据类型以及它们的属性 15、Flink 的ta…

Linux PAGE_ALIGN 宏定义的理解

前言 最近再阅读 Linux ion(一种内存分配管理)时,遇到了 PAGE_ALIGN 宏,这个宏到底是怎么工作的? 【页对齐】时什么意思? 页大小就是 4096 吗? 追踪 PAGE_ALIGN 通过一步一步的追踪&#xff0…

Stream流式处理

Stream流式处理: 建立在Lambda表达式基础上的多数据处理技术。 可以对集合进行迭代、去重、筛选、排序、聚合等处理,极大的简化了代码量。 Stream常用方法 Stream流对象的五种创建方式 //基于数组 String[] arr {"a","b","c…