写点什么

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

  • 2020-02-16
  • 本文字数:2800 字

    阅读完需:约 9 分钟

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

视频语义分割的一个主要的挑战是缺少标注数据。在大多数基准数据集中,每个视频序列(20 帧)往往只有一帧是有标注的,这使得大部分监督方法都无法利用剩余的数据。为了利用视频中的时间 - 空间信息,许多现有工作使用预先计算好的光流来提升视频分割的性能,然而视频分割和语义分割仍然被看作是两个独立的任务。近日,商汤科技研究团队发表论文《Every Frame Counts: Joint Learning of Video Segmentation and Optical Flow》,该论文被 AAAI 2020 录用。


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

背景

视频语义分割通过利用前后帧的语义信息,往往有着比图像分割更高的准确率,因此在机器人和自动驾驶领域有着丰富的应用。然而目前的视频语义分割主要面临两个挑战:缺少标注数据和实时性的问题。一方面由于标注工作耗时耗力,一个视频片段往往只标注一帧,导致很多方法难以利用全部的数据,或者需要使用额外的数据集做预训练;另一方面由于对前后帧之间进行信息交互往往为模型引入额外的模块,导致视频分割效率低。视频分割大致可以分为两类,第一类通过利用前后帧的时序信息来为视频分割加速,如 Clockwork network (Shelhamer et al. 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 et al. 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。可以看出本文算法对移动目标的边缘估计更为准确。


论文作者:Mingyu Ding, Zhe Wang, Bolei Zhou, Jianping Shi, Zhiwu Lu, Ping Luo


2020-02-16 12:003761

评论

发布
暂无评论
发现更多内容

我的 2020 iOS BAT面试心得:Bigo、字节、快手、伴鱼、百度、微博等

iOSer

ios 面试

Golang 反射性能优化

余歌

性能优化 Go 语言

分布式数据库拆分常用之法

华为云开发者联盟

数据库 架构 分布式

大作业2

雪涛公子

站在巨人的肩膀上学习:五位阿里大牛联手撰写的《深入浅出Java多线程》

Java架构之路

Java 编程 面试 并发编程 多线程

Java开发连Redis都不会还想跳槽涨薪?先把Redis的知识点吃透再说

Java架构之路

Java redis 编程 程序员 面试

智能商业时代的思考(三)数据驱动

刘旭东

大数据 数据驱动 智能商业

收藏手册:该不该用Lombok?15个常用注解全解析

互联网应用架构

lombok

springboot2.3手册:多租户及自动创建数据,这样做

互联网应用架构

springboot mybaitsplus 多租户 自动填充基础信息

Kotlin 插件1.4.10使用报错

三爻

android kotlin

超全面分布式缓存高可用方案:哨兵机制

架构精进之路

redis哨兵模式

科大讯飞再握一国产核心技术,可高精细拾取30分贝超小音量

Talk A.I.

拆分链表、图解HTTPS、Zookeeper原理、如何成为技术专家、架构师三板斧 John 易筋 ARTS 打卡 Week 18

John(易筋)

ARTS 打卡计划 图解https ZooKeeper原理 架构师三板斧 拆分链表

高难度对话读书笔记

wo是一棵草

rpc探路(一)

余歌

Java新特性:数据类型可以扔掉了?

Java 编程 架构师

测试工程师在敏捷项目中扮演什么角色?

禅道项目管理

程序员 敏捷开发 测试

java安全编码指南之:输入校验

程序那些事

java安全编码 安全编码规范 java安全编码指南

RDS、DDS和GaussDB理不清?看这一篇足够了!

华为云开发者联盟

数据库 华为云 RDS

JavaScript原型机制

Clloz

Java 原型

Golang框架探索(一)

余歌

Web框架 Go web

架构设计:微服务架构如何划分?这6个标准原则让你一目了然

互联网应用架构

微服务 架构设计

收藏手册:Docker安装RabbitMQ,只需3步

互联网应用架构

Docker RabbitMQ

(0)skynet序章

休比

高效程序员的45个习惯:敏捷开发修炼之道(8)

石云升

敏捷开发 技术分享 轮换制

Java ConcurrentHashMap 高并发安全实现原理解析

vivo互联网技术

Java hashmap 多线程 高并发

使用递增计数器的线程同步工具 —— 信号量,它的原理是什么样子的?

程序员小航

Java 源码 源码阅读 JUC Semaphore

第十一周.命题作业

刘璐

从linux源码看socket的阻塞和非阻塞

无毁的湖光

Linux TCP socket Linux Kenel

实践解读丨Python 面向对象三大特征之多态

华为云开发者联盟

编程 面向对象

当代开发者的好帮手,浅析.NET敏捷开发框架的优势与特点

Learun

敏捷开发 开发工具

AAAI 2020论文解读: 商汤科技发布新视频语义分割和光流联合学习算法_语言 & 开发_Mingyu Ding等_InfoQ精选文章