当前位置: 首页 > 编程日记 > 正文

AAAI 2020论文解读:商汤科技发布新视频语义分割和光流联合学习算法

来源 | Every Frame Counts: Joint Learning of Video Segmentation and Optical Flow

编辑 | Carol

出品 | AI科技大本营(ID:rgznai100)

商汤科技研究团队发表论文《Every Frame Counts: Joint Learning of VideoSegmentation and Optical Flow》,该论文被AAAI 2020录用。

视频语义分割的一个主要的挑战是缺少标注数据。在大多数基准数据集中,每个视频序列(20帧)往往只有一帧是有标注的,这使得大部分监督方法都无法利用剩余的数据。为了利用视频中的时间-空间信息,许多现有工作使用预先计算好的光流来提升视频分割的性能,然而视频分割和语义分割仍然被看作是两个独立的任务。

在这篇文章中,作者提出了一个新颖的光流和语义分割联合学习方案。语义分割为光流和遮挡估计提供了更丰富的语义信息,而非遮挡的光流保证了语义分割的像素级别的时序一致性。作者提出的语义分割方案不仅可以利用视频中的所有图像帧,而且在测试阶段不增加额外的计算量。

背景:

视频语义分割通过利用前后帧的语义信息,往往有着比图像分割更高的准确率,因此在机器人和自动驾驶领域有着丰富的应用。然而目前的视频语义分割主要面临两个挑战:缺少标注数据和实时性的问题

一方面由于标注工作耗时耗力,一个视频片段往往只标注一帧,导致很多方法难以利用全部的数据,或者需要使用额外的数据集做预训练;另一方面由于对前后帧之间进行信息交互往往为模型引入额外的模块,导致视频分割效率低。

视频分割大致可以分为两类,第一类通过利用前后帧的时序信息来为视频分割加速,如Clockwork network (Shelhamer etal. 2016) ,Deep Feature Flow (Zhu et al. 2017) 和 (Li,Shi, and Lin 2018) 等,这类模型对前一帧的特征图或者分割结果进行简单处理即可得到下一帧的分割结果了,从而大大减少视频分割中的冗余和加速,但语义分割的准确率会有所降低;

第二类方法如 (Fayyaz et al. 2016) ,Netwarp (Gadde,Jampani, and Gehler 2017),PEARL (Jin et al. 2017) 等通过光流/RNN等模块将前后帧的特征进行融合或添加约束以学习到更强的表示能力,从而提高语义分割的准确率。本文的方法属于第二类。

图一,和使用特征融合(feature aggregation)的方法往往只利用标注帧附近的少数帧相比,本文通过学习的光流来为视频帧添加时序一致性约束,通过这种约束可以间接把分割标注传导到其他无标注的帧上,从而利用全部的数据。

方法概述:

光流作为视频中前后帧之间像素级别的关联,在视频语义分割中一直有着重要的地位。例如 (Li, Shi, and Lin 2018; Zhu etal. 2017; Shelhamer et al. 2016) 通过光流来重新利用前一帧的特征图从而为视频分割加速;(Fayyaz et al. 2016; Jin et al. 2017; Gadde,Jampani, and Gehler 2017; Nilsson and Sminchisescu 2018; Hur and Roth 2016) 通过光流指导的特征融合来获得更好的分割准确率。

然而上述方法面临两个问题,一方面其往往使用现成的在其他数据集上训练的光流模型(FlowNet),导致了分割效率的降低;另一方面上述方法往往只利用了标准帧附近的少数帧,没有充分利用整个数据集和发挥光流的作用。

为了解决上述两个问题,作者提出了一个光流和语义分割联合学习的框架,语义分割为光流和遮挡估计提供了更丰富的语义信息,而非遮挡得光流保证了语义分割的像素级别的时序一致性。

本文模型通过在视频中无监督学习光流并且使用光流对前后帧语义分割的特征图施加约束来使得两个任务互相增益并且没有显式的特征融合,这种隐式的约束可以帮助利用数据集中的全部数据并学到更鲁棒的分割特征以提高分割准确率,并且不会在测试阶段增加额外的计算量。

图二,本文提出的联合学习框架,输入图片经过共享编码器后分为两个分支,第一个是光流分支,第二个是分割分支。block代表模型的特征图,灰色的虚线代表时序一致性约束,灰色实线代表遮挡估计模块。

时间一致性约束:

对于一对图片I_i和I_{i+t},设其对应的分割特征图为S,设学习到的光流为F,遮挡Mask为O,(S,F,O均包含三个block,如图所示),则两帧分割特征图可以通过光流warp进行转换:S_i^{warp}= Warp(S_{i+t},F_{i->i+t})

考虑到遮挡的截断区域无法使用光流进行对齐,因此这些区域不计算损失。两帧的其他区域对应的分割特征图通过光流进行warp对齐后的一致性损失为第一帧的分割特征图和第二帧经过warp的分割特征图的非遮挡区域的2范数。

光流和遮

文中所说的遮挡意味着两帧图片中光度的不一致性,它一般由图像中遮挡,截断(汽车离开相机拍摄)和移动目标导致,这里作者使用无监督的方式学习遮挡区域,通过反向光流推测出可能无法对齐的像素位置O,模型根据此学习得到O_{est};两帧的分割结果通过光流warp不一致的区域设为O_{seg},O_{seg}应包括遮挡区域和光流估计错误的区域,因此O_{error} = O_{seg}-O_{est}应为光流估计的重点区域。在计算光流估计的损失函数时,作者不考虑遮挡区域(O_{est})的损失,而加大重点区域(O_{error})的权重,遮挡估计的示意图如图3所示。

图3,遮挡和遮挡估计示意图

语义分割的学习:

在训练时,作者从每个视频小段中随机选择10对图片来进行训练,其中五对包含标注帧,而另外五对均不包含标注帧。对于标注帧,直接使用监督的语义分割损失来进行学习;对于不包含标注帧的情况,通过两帧的一致性约束来对模型进行约束和学习。通过这种约束学习,标注信息可以从一帧传播到其他的未标注帧,而即使是两个未标注帧也可以通过一致性来学习。

实验结果:

Cityscapes数据集上的分割结果:

CamVid数据集上的分割结果:

KITTI数据集上的光流估计结果:


可视化结果:

图四,Cityscapes验证集分割结果,从上至下分别为原图,本文算法分割结果,PSPNet分割结果和GT。可以看出本文算法对移动目标(汽车,自行车)和出现频次较少目标(横向卡车)分割效果较好。

图五,KITTI数据集上光流估计结果,从上至下分别为原图,本文算法估计结果,GeoNet估计结果和GT。可以看出本文算法对移动目标的边缘估计更为准确。

论文:Every Frame Counts: Joint Learning of VideoSegmentation and Optical Flow

作者:Mingyu Ding, Zhe Wang, Bolei Zhou, JianpingShi, Zhiwu Lu, Ping Luo

论文地址:https://arxiv.org/pdf/1911.12739.pdf

精彩推荐

为了助力对抗疫情,减少线下人员流动和聚集,CSDN与 PyCon 官方授权的 PyCon中国社区合作,举行「Python开发者日」在线系列峰会。通过精彩的技术干货内容、有趣多元化的在线互动活动等,让您足不出户便可与大咖学习交流,共同渡过抗疫攻坚期。扫码入群咨询详情!

推荐阅读

  • 详解计算机视觉五大技术:图像分类、对象检测、目标跟踪、语义分割和实例分割

  • GPT-2仅是“反刍”知识,真正理解语言还要改弦更张

  • 疫情当前,CSDN开放1000+精品IT课程,程序员在家即可免费学习

  • 2020 年,云游戏将爆发?各大科技公司云游戏布局大曝光!

  • 阿里再发最严口罩禁令;铁路再次调整免费退票;iOS 13.4 测试版发布 | 极客头条

  • 为什么说程序员做外包没前途?

  • 你点的每个“在看”,我都认真当成了AI

相关文章:

互联网+和创业潮,互联网+前提条件是什么?互联网+做什么?

在大众创业,万众创新的大浪下,凭着对新技术的敏感和青春激情,创业新军不断涌现.... 互联网创业浪潮, 如雨后春笋......,互联网渗透每个人的心中。创业不是赶时髦,而是一条非常孤独,艰难的路。实施“互联网+…

C++拾趣——C++11的语法糖auto

C是一种强类型的语言,比如变量a,如果声明它是整型,则之后只能将它作为整型来用。这和其他弱类型的语言有很大的区别,比如python中,我们可以让a在第一行是个整型,第三行是一个字符串。(转载请指明…

“数学不行,啥都干不好!”骨灰级程序员:这比努力重要1000倍

之前有很多程序员读者向我们抱怨:1)做算法优化时,只能现搬书里的算法,遇到不一样的问题,就不会了。2)面试一旦涉及到算法和数据结构,如果数学不行,面试基本就凉凉了。3)一…

跳槽 你准备好了吗

“人往高处走”,这固然没有错。但是,说来轻巧的一句话,它却包含了为什么“走”、什么是“高”、怎么“走”、什么时候“走”,以及“走”了以后怎么办等一系列问题。跳槽是一门学问,也是一种策略。“人往高处走”&#…

C++:常类型Const

常类型:使用类型修饰符const说明的类型,常类型的变量或对象成员的值在程序运行期间是不可改变的。 3.10.1 常引用 如果在说明引用时用const修饰,则被说明的引用为常引用。如果用常引用做形参,便不会产生对实参 的不希望的更改。常…

JQuery制作的toolTip,针对图片预览效果

昨天做了一个文字版的toolTip,后来想想现在大家都爱看图,文字未免有点单调了点,那我们就来个图片式的预览。代码比较简单,我就不多说了。 欢迎来到 买礼网 选购礼品! 畅游鄂西山水风光尽在 恩施旅游资讯网首先看看调用…

29篇计算机视觉领域论文,篇篇惊艳!内附链接!

作者 | 微软亚洲研究院本文经授权转载自微软研究院AI头条(ID:MSRAsia)1. Deep High-Resolution Representation Learning for Human Pose Estimation论文链接:https://arxiv.org/pdf/1902.09212.pdf该论文在提出了一个新的网络Hig…

绑定CPU逻辑核心的利器——taskset

在工作中,我们可能遇到这样的需求:如何评估程序在一核和多核下的工作效率差距?最简单的想法是找一台只有一个CPU逻辑核的机器和一台有多个逻辑核的机器。(转载请指明出于breaksoftware的csdn博客)但是这种方式有明显的…

IDE set arguments

2019独角兽企业重金招聘Python工程师标准>>> code::blocks -> Project -->set programs arguments qtcreater -> Projects --> Build&Run --> Run --> Arguments xcode -> super < -->build-->arguments 转载于:https://my.osch…

2020年AI如何走?Jeff Dean和其他四位“大神”已做预测!

作者 | Khari Johnson译者 | 王艳妮 责编 | 胡巍巍出品 | AI科技大本营&#xff08;ID&#xff1a;rgznai100&#xff09;人工智能已经不再是随时准备改变世界的状态&#xff0c;而是已经在改变世界。在迈入2020年这新的一年、以及新的20年代之际&#xff0c;笔者请到了AI方面最…

zookeeper快速入门——简介

在几十年前&#xff0c;一个独立的计算机上往往部署着一套完整的应用系统。当时因为网络稳定性及速度的限制&#xff0c;将相关联的服务部署在一台机器上&#xff0c;让它们使用系统机制通信——比如管道&#xff0c;文件等&#xff0c;往往是最稳定和最高效的。然而随着网络技…

为TextMate扩展全屏功能

今天看代码&#xff0c;感觉TextMate那个窗口太小了点&#xff0c;越看越不爽&#xff0c;就想把它弄成全屏的。于是搜索啊搜索啊搜索&#xff0c;终于让我找到一款很yd的小软件&#xff0c;叫megazoomer&#xff0c; 下载地址是&#xff1a;[url]http://ianhenderson.org/mega…

hdu1406

一道很水很水的题&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;#include<iostream> using namespace std; int main(){int num1,num2,i,k,j,sum,n;while(cin>>n){ while(n--){cin&g…

zookeeper快速入门——部署

zookeeper有两种运行模式&#xff1a;独立模式和仲裁模式。独立模式就是只运行一个Zookeeper Server&#xff0c;这自然没法解决服务崩溃导致系统不可用的问题。仲裁模式就是以集群的方式运行Zookeeper Server&#xff0c;这样在Leader不可用时&#xff0c;集群内部会发起选举&…

2020,人工智能和深度学习未来的五大趋势

来源 | forbes编译 | Shawn编辑 | Carol出品 | AI科技大本营&#xff08;ID&#xff1a;rgznai100&#xff09;虽然近年来人工智能经常成为热门议题&#xff0c;但它还远未实现真正的成就。人工智能技术发展的主要障碍在于投资成本&#xff0c;投资成本影响短期内的回报。而当时…

电脑常见故障 1

死机恐怕是所有电脑故障里面最常见的一种了&#xff0c;但是死机的原因是多种多样的。 如果从硬件入手&#xff0c;先是看看机箱里的温度是否很高&#xff0c;要检查CPU的风扇是否正常运转&#xff0c;并要注意电脑的散热问题&#xff1b;其次可检查内存&#xff0c;检查完内存…

linux常用命令-date-clock-hwclock-type-whois--help-man-info-cal

date&#xff1a;时间管理电子表&#xff1a;晶体震荡器 石英震荡器Linux&#xff1a;rtc 硬件时间NTP&#xff1a;网络时间协义硬件时间&#xff08;命令&#xff1a;clock&#xff09;系统时间&#xff08;命令&#xff1a;date&#xff09;type COMMAND 判断命令是内部命令…

内存、性能问题分析的利器——valgraind

valgrind是一个知名的分析软件集。我们可以使用它进行内存、多线程及性能等各种问题的分析。它采用非侵入方式&#xff0c;所谓非侵入方式是指&#xff1a;我们不用在代码中插入分析工具的库。这对于开发者来说是友好的。因为如果要将工具编译到文件中&#xff0c;或者要调用其…

这是我见过最卡通的 Python 算法了,通俗易懂

普通程序员&#xff0c;不学算法&#xff0c;也可以成为大神吗&#xff1f;对不起&#xff0c;这个&#xff0c;绝对不可以。可是算法好难啊~~看两页书就想睡觉……所以就不学了吗&#xff1f;就一直当普通程序员吗&#xff1f;如果有一本算法书&#xff0c;看着很轻松……又有…

WebService(Axis2)视频教程与QQ交流群发布

Axis2是目前比较流行的WebService引擎。WebService被应用在很多不同的场景。例如&#xff0c;可以使用WebService来发布服务端 Java类的方法&#xff0c;以便使用不同的客户端进行调用。这样可以有效地集成多种不同的技术来完成应用系统。WebService还经常被使用在SOA中&#x…

fragment类onresume里面刷新操作处理

今天项目中涉及fragment中嵌套多个fragment&#xff0c;但是要根据tag去展示对应的fragment&#xff0c;而不是默认展示的第一个fragment&#xff0c;如果使用activity很容易想到onpause(),onResume()中进行处理&#xff0c;但是你会发现fragment的onpause和onresume只调用一次…

内存问题分析的利器——valgrind的memcheck

在《内存、性能问题分析的利器——valgrind》一文中我们简单介绍了下valgrind工具集&#xff0c;本文将使用memcheck工具分析各种内存问题。&#xff08;转载请指明出于breaksoftware的csdn博客&#xff09; 本文所有的代码都是使用g -O0 -g mem_error.c -o mem_erro编译&#…

类项目中的配置文件app.config在打包安装后的信息获取的问题

在一个项目中碰到这样的一个问题&#xff0c;做一个WORD插件&#xff0c;功能在类库项目中实现了&#xff0c;配置信息存在类库项目的配置文件app.config中&#xff0c;在进行打包后&#xff0c;获取的配置文件中的DocType节点信息时&#xff0c;使用以下方法 ConfigurationMa…

AAAI 2020论文解读:商汤科技提出新弱监督目标检测框架

来源 | Object Instance Mining for WeaklySupervised Object Detection编辑 | Carol出品 | AI科技大本营&#xff08;ID&#xff1a;rgznai100&#xff09;商汤科技视频大数据团队发表论文《Object Instance Mining forWeakly Supervised Object Detection》&#xff0c;该论文…

20135306黄韧 信息安全系统设计基础期中学习总结

信息安全系统设计基础第八周学习总结 知识点总结 第1章 计算机系统漫游 △计算机系统是由硬件和系统软件组成的&#xff0c;它们共同协作以运行应用程序。计算机内部的信息被表示为一组组的位&#xff0e;它们依据上下文有不同的解释方式。程序被其他程序翻译成不同的形式&…

使用SQL Server维护计划实现数据库定时自动备份

在SQL Server中出于数据安全的考虑&#xff0c;所以需要定期的备份数据库。而备份数据库一般又是在凌晨时间基本没有数据库操作的时候进行&#xff0c;所以我们不可能要求管理员每天守到晚上1点去备份数据库。要实现数据库的定时自动备份&#xff0c;最常用的方式就是使用SQL S…

AI 医疗公司“战疫”在前线

作者 | Just来源 | CSDN&#xff08;CSDNnews&#xff09;紧急驰援疫区&#xff0c;涉足AI医疗领域的公司也出动了。截止到2月6日&#xff0c;随着新冠病毒肺炎疫情的不断发展&#xff0c;全国累计已有31161例确诊病例&#xff0c;26359例疑似病例。不过&#xff0c;由于医疗资…

动态执行流程分析和性能瓶颈分析的利器——valgrind的callgrind

在《内存、性能问题分析的利器——valgrind》一文中我们简单介绍了下valgrind工具集&#xff0c;本文将使用callgrind工具进行动态执行流程分析和性能瓶颈分析。&#xff08;转载请指明出于breaksoftware的csdn博客&#xff09; 之前的《利器》系列中&#xff0c;我们介绍了两种…

CentOS6.3编译安装Nginx1.4.7 + MySQL5.5.25a + PHP5.3.28

2019独角兽企业重金招聘Python工程师标准>>> 【准备工作】 01 #在编译安装lnmp之前&#xff0c;首先先卸载已存在的rpm包。 02 rpm -e httpd 03 rpm -e mysql 04 rpm -e php 05 06 yum -y remove httpd 07 yum -y remove mysql-server mysql 08 yum -y remove php 0…

GitHub标星14000+,阿里开源的SEATA如何应用到极致?

作者简介&#xff1a;袁鸣凯&#xff0c;家乐福技术总监&#xff0c; 高知特有限技术公司中国区架构师&#xff0c;HP上海研发技术专家&#xff0c;夸客金融首席架构师&#xff0c;现任家乐福中国区技术总监。多年互联网、企业级SOA、微服务、全渠道中台方面的架构设计实战经验…