STC-Seg:首个超越PointTrack的弱监督视频MOTS算法

news2024/11/24 18:44:18

弱监督视频多目标实例分割新SOTA(代码已开源):
Paper: Solve the Puzzle of Instance Segmentation in Videos: A Weakly Supervised Framework with Spatio-Temporal Collaboration
Code: https://github.com/ylqi/STC-Seg

在这里插入图片描述

众所周知,视频多目标跟踪与分割(Multi-Object Tracking and Segmentation,MOTS)的标注需要给每个视频帧中的每个目标描绘轮廓(Mask-Level Label),工作量十分巨大。我们希望仅仅利用更弱一级的标注——目标检测框(Box-Level Label),作为标注信息来训练视频多目标分割模型。

在图像弱监督多目标分割中,因为边界信息的缺乏,仅仅使用Box-Level的标注很难训练模型预测出较好的轮廓;然而在视频中,视频的时空信息往往包含了大量的轮廓信息,因此我们可以利用时空分析方法,包括视频深度估计方法、光流预测方法,来提取出目标的轮廓特征。

基于上述思路,STC-Seg[1]首先利用自监督的视频深度估计和光流预测方法获得深度(Depth)和光流(Optical Flow),利用它们生成Pseudo-Label来配合Box-Label的标注:
在这里插入图片描述

STC-Seg的损失函数(Loss)包括两项:(1)Boundary Term(2)Box Term。前者负责Pseudo-Label的监督,后者负责Box-Label的监督,像拼图一样将Pseudo-Label里的一块一块拼成一个完整的Mask。方法的系统框架如下:

在这里插入图片描述

其中的目标分割网络(Segmentation Network)可以选取任何多目标分割网络,例如CondInst[2]。

为了平衡Boundary Term导致预测的Mask往外扩的趋势,在Box Term的损失函数中,STC-Seg在Dice Loss的基础上做了改动:

在这里插入图片描述

最终Box Term和Boundary Term相互约束实现平衡:

在这里插入图片描述

在KITTI MOTS的官网榜单上,弱监督的STC-Seg的效果超越了经典的全监督学习的方法PointTrack和TrackR-CNN:

在这里插入图片描述

可以看到轮廓预测地非常丝滑(而 TrackR-CNN 和 MaskTrack R-CNN 都不那么贴合真实物体):
在这里插入图片描述

References

[1] Yan, Liqi, et al. “Solve the Puzzle of Instance Segmentation in Videos: A Weakly Supervised Framework with Spatio-Temporal Collaboration.” IEEE Transactions on Circuits and Systems for Video Technology (2022).

[2] Z. Tian, C. Shen, and H. Chen, “Conditional convolutions for instance segmentation,” in ECCV, 2020.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/89518.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

linux之syslog使用说明

syslog 系统日志应用 1) 概述 syslog默认的日志守护进程。默认的syslog配置文件是/etc/syslog.conf文件。程序,守护进程和内核提供了访问系统的日志信息。因此,任何希望生成日志信息的程序都可以向 syslog 接口呼叫生成该信息。 几乎所有的网络设…

【2台真机实战--Redis一主一从两哨兵配置集群和主从切换】

2台真机实战--Redis一主一从两哨兵配置集群和主从切换前言实战真实环境节点分布配置主服务器(192.168.137.23)配置redis.conf配置sentinel.conf从服务器(192.168.137.24)配置redis.conf配置sentinel.conf启动redis整合SpringBoot配…

[附源码]Node.js计算机毕业设计服装销售商城系统Express

项目运行 环境配置: Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境:最好是Nodejs最新版,我…

python之路 socket、socket server

一、socket socket的英文原义是“孔”或“插座”。作为BSD UNIX的进程通信机制,取后一种意思。通常也 称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信。在Inter…

nodejs+vue大学生企业推荐系统vue

1、 node_modules文件夹(有npn install产生) 这文件夹就是在创建完项目后,cd到项目目录执行npm install后生成的文件夹,下载了项目需要的依赖项。 2、package.json文件 此文件是项目的配置文件(可定义应用程序名,版本&am…

Java基础之并发理论基础

Java基础之并发理论基础一、为什么需要多线程二、线程不安全1、三要素之一可见性(CPU缓存引起)2、三要素之一原子性(分时复用引起)3、三要素之一有序性(重排序引起)一、为什么需要多线程 CPU 增加了缓存&a…

springcloud3 EurekaServer集群的搭建1

一 EurekaServer集群搭建 1.1 逻辑流程 服务的注册与发现 服务注册:向注册中心进行注册登记。 服务发现:从注册中心中获取服务器信息。 整个流程 1.首先eurekaServer先进行启动, 2.服务提供者开始启动并将自己的信息注册到EurekaServer上(前…

如何获取java加载器和类完整结构的方法?

类加载器的作用与类缓存: 类加载器的作用:将class文件字节码内容加载到内存中,并将这些静态数据转换成方法区的运行时数据结构,然后在堆中生成一个代表这个类的java.lang.Class对象,作为方法区中类数据的访问入口。 …

红绿灯(交通信号灯)检测数据集

深度学习目标检测:红绿灯(交通信号灯)检测数据集 目录 深度学习目标检测:红绿灯(交通信号灯)检测数据集 1.红绿灯数据集说明 (1)Traffic-Lights-Dataset-Domestic (2)Traffic-Lights-Dataset-Foreign …

第12部分 交换机基本配置

目录 12.1 交换机简介 12.2 实验1:交换机基本配置 1.实验目的 2.实验拓扑 3.实验步骤 12.3 实验2:交换机端口安全 1.实验目的 2.实验拓扑 3.实验步骤 4.实验调试 12.4 实验3:交换机的密码恢复 1.实验目的 2.实验拓扑 3.实验步骤…

React学习8(新旧生命周期)

组件的生命周期(旧) react生命周期(旧) 1.初始化阶段:由ReactDOM.render()触发---初次渲染 1.constructor(){} 2.componentWillMount() {} 3.render() {} 4.componentDidMount() {}----常用,一般在这个钩子…

ElasticSearch的数据存储及写入原理

数据存储 数据存储介绍 Elasticsearch 是面向文档型数据库,一条数据在这里就是一个文档。 为了方便大家理解,我们将 Elasticsearch 里存储文档数据和关系型数据库 MySQL 存储数据的概念进行一个类比。 注意:Types 的概念已经被逐渐弱化&…

上海亚商投顾:沪指全天窄幅震荡 大消费板块再掀涨停潮

上海亚商投顾前言:无惧大盘大跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 市场情绪沪指全天窄幅震荡,创业板指高开低走。医药股大幅分化,新华制药6连板,股价创出历…

软件测试丨单元测试框架怎么搭?新版的Junit5有哪些神奇之处?

单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。 总的来说,单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部…

12306接口采集

铁路客户服务中心https://kyfw.12306.cn/otn/leftTicket/query?leftTicketDTO.train_date2022-12-22&leftTicketDTO.from_stationCQW&leftTicketDTO.to_stationETW&purpose_codesADULT请求头 Accept: */* Accept-Language: zh-CN,zh;q0.9 Cache-Control: no-cach…

高并发编程之JUC 三大辅助类和读写锁

7 JUC 三大辅助类 JUC 中提供了三种常用的辅助类,通过这些辅助类可以很好的解决线程数量过 多时 Lock 锁的频繁操作。这三种辅助类为: • CountDownLatch: 减少计数• CyclicBarrier: 循环栅栏• Semaphore: 信号灯 下面我们分别进行详细的介绍和学习…

JavaScript基础之循环

1、循环 1.1、for循环 语法结构: for(初始化变量; 条件表达式; 操作表达式 ){//循环体 } 名称作用初始化变量通常被用于初始化一个计数器,该表达式可以使用 var 关键字声明新的变量,这个变量帮我们来记录次数。条件表达式用于确定每一次循…

Java on Azure Tooling 11月更新|远程调试支持与 App Settings 增强

作者:Jialuo Gan Program Manager, Developer Division at Microsoft 排版:Alan Wang 大家好,欢迎回到11月的 Java on Azure Tooling 的更新。在这次更新中,我们将引入对 Azure Spring Apps 和 Azure Function Apps 的远程调试支持…

MySql补充知识点

这里写自定义目录标题1、sql语句查询表结构信息(1)查询某库某表的字段、数据类型、字段注释(2)查询某库的所有表名、表注释(3)查询库下所有表名、表注释、所有字段名、数据类型、字段注释(4)查询某个表在哪个库2、MySQL操作符(1)Union(2)having、on、where的区别having、whereo…

虚拟化与云计算技术硬核内幕

这种将物理硬件分配给多个使用者的技术,叫做“时分复用”。计算机操作系统的任务调度模块,实质上提供的就是将CPU以“时分复用”的方式给不同任务使用的机制。 那么,如果在虚拟化系统中,也利用时分复用机制,将一个物理…