未完待续综述:用于视频分割(Video Segmentation)的深度学习
Posted EDPJ
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了未完待续综述:用于视频分割(Video Segmentation)的深度学习相关的知识,希望对你有一定的参考价值。
A Survey on Deep Learning Technique for Video Segmentation
0. 摘要
本文回顾视频分割的两条基本研究路线:视频目标分割(object segmentation)和视频语义分割(semantic segmentation)。本文介绍它们各自的task setting、背景概念、感知需求、发展历史以及主要挑战。本文详细概述相关的方法和数据集的代表性文献。本文在一些知名的数据集上对这些方法检测(benchmark)。最后,指出这些领域的opne issue以及未来的研究方向。
1. 简介
视频分割(找出视频中具有特殊性质或者语义(semantics)的关键目标)是计算机视觉(computer vision,CV)中基础且有挑战性的的问题。它有无数潜在的应用:自动驾驶、机器人、监控(surveillance)、社交媒体、AR、电影制作以及视频会议。
这个问题已经被传统的CV和机器学习(machine learning,ML)方法解决。包括:
- hand-crafted features (e.g., histogram statistics, optical flow, etc.)
- heuristic prior knowledge (e.g., visual attention mechanism, motion boundaries, etc.)
- low/mid-level visual representations (e.g., super-voxel, trajectory, object proposal, etc.)
- classical machine learning models (e.g., clustering, graph models, random walks, support vector machines, random decision forests, markov random fields, conditional random fields, etc.)
最近,深度网络(DNN),尤其是全卷积网络(FCN)在视频分割取的巨大进展。相比于传统方法,这些基于深度学习(Deep Learning,DL)的(Video Segmentation,VS)算法有更高的精度(有时甚至更有效)。
全卷积网络(fully convolutional network,FCN)采用卷积神经网络实现了从图像像素到像素类别的变换。与卷积神经网络有所不同,全卷积网络通过转置卷积(transposed convolution)层将中间层特征图的高和宽变换回输入图像的尺寸,从而令预测结果与输入图像在空间维(高和宽)上一一对应:给定空间维上的位置,通道维的输出即该位置对应像素的类别预测。
现在大多数的研究视角狭隘,例如,只关注视频的前景/背景分割。本文系统地介绍了VS的最新进展,跨度从任务公式化(task formulation)到分类(taxonomy)、从算法到数据集、从未解决的问题到未来的研究方向,涵盖的关键点包括:
- 任务类别(前景/背景分离、语义分割)
- 推断模型(自动的、半自动的、交互的)
- 学习方式(监督、无监督、弱监督)
- 澄清术语(减背景法(background subtraction)、运动分割(motion segmentation))
本文主要关注VS两个主要分支(目标分割、语义分割)的最新进展,之后会分为八个子领域。本文参考来自有名望的期刊和会议中有影响力的作品,也包含其他领域(例如:视觉跟踪)中非深度学习的视频分割模型和文献。
上图是本文回顾的视频分割任务:
- 目标级自动视频目标分割(object-level AVOS)
- 实例级自动视频目标分割(instance-level AVOS)
- 半自动视频目标分割(SVOS)
- 交互式视频目标分割(IVOS)
- 语言引导的视频目标分割(LVOS)
- 视频语义分割(VSS)
- 视频实例分割(VIS)
- 视频全景分割(video panoptic segmentation,VPS)
上图是本文的结构。
2. 背景
2.1 问题公式化和分类学
令 X 和 Y 分别表示输入空间和输出的分割空间,基于深度学习的VS就是要找到一个理想映射。
2.1.1 视频分割(VS)的类别
基于如何定义输出空间Y,VS大致可分为两类:VOS、VSS。
视频目标(前景/背景)分割(VOS):Y 是一个二值的前景/背景分割空间。VOS应用于视频分析以及编辑场景,例如:移除电影中的目标、基于内容的视频编码、视频会议中生成虚拟背景。
视频语义分割(VSS):图像语义分割向时空(spatio-temporal)域的直接扩展。目标是从视频中提取属于预定义语义类别(例如:车、建筑物、人行道、道路)的对象。因此,Y 对应一个多类别的语义解析(parsing)空间。VSS是许多应用的的感知基础,这些应用要求对环境的高度理解,例如:机器人感知、人机交互、自动驾驶。
评论:VOS和VSS有相同的挑战,例如:快速移动和目标遮挡(object occlusion)。不同的应用场景有不同的挑战。例如:VOS通常关注人类创造的媒介,这些媒介具有较大的镜头移动、变形和外观变化;VSS通常关注像自动驾驶这样的应用,要求精度和时延的权衡、对小目标精确地探测、模型的并行性、跨域泛化能力。
2.1.2 视频分割(VS)的推断模式(Inference Modes)
基于人类参与推断的程度,VOS又被进一步分成三类:自动、半自动、交互式。
自动视频目标分割(AVOS):又被成为无监督VS、zero-shot VS。它自动执行VOS,且不需要手动初始化。
半自动视频目标分割(SVOS):又被称为半监督学习、one-shot VS,通过有限的人类监督(通常在第一帧提供)找出所需的目标。典型的人类输入是在视频第一帧的目标掩模(mask),这种情况下,SVOS也叫做像素跟踪,或掩模传播。从这个角度来看,语言引导的视频目标分割(LVOS)是SVOS的一个分支,其中,人类输入是关于所需对象的语言描述。与AVOS相比,SVOS定义target objects更灵活,但需要人工输入。
交互式视频目标分割(IVOS):一旦target确定,SVOS就自动运行;而IVOS的进程需要人为引导。
与VOS不同,VSS是自动模式,除了少量早期方法使用半自动模式,例如:label propagation。
2.1.3 视频分割(VS)的学习方法
根据训练策略,基于DL的VS可以分为三个类别:监督、半监督、弱监督。
监督学习:完全使用labelled data学习,使模型输出贴近label。
无监督(自监督,self-supervised)学习:完全使用unlabeled data学习。无监督学习包括完全无监督学习(不需要任何label)和自监督学习(不需要人工标注,使用自动生成的伪标签(pseudo labels)训练网络)。几乎所有现存的无监督VS都是自监督学习。
弱监督(weakly-supervised)学习:使用有限数目的labelled data学习,且该label易于标注,例如:边界。
2.2 历史和术语
VS的早期尝试是video over-segmentation:基于特定区域像素强度的不连续性和相似性。典型的方法包括:hierarchical video segmentation,temporal superpixel,super-voxels。这些方法适用于视频的预处理,但是不能解决目标级的分割问题。因为它们不能把分层(hierarchical)视频分解为二值分割。
二值分割:首先把图像转换成灰度图像,然后设置一个用来进行二值分割的阈值,再遍历灰度图像的每个像素点。如果该像素点的灰度值大于阈值,就将该像素点灰度值设为255,如果该像素点的灰度值小于阈值,就将该像素点灰度值设为0。
为了从视频序列中提取前景目标,在70年代后期,减背景法(background subtraction)出现了。 他们假设背景是先验已知的,并且相机是静止的或经历可预测的、参数化的2D或具有3D视差的3D运动。这些基于几何的方法非常适合特定的应用场景,如监控系统,但它们对模型选择(2D或3D)敏感,无法处理相机非确定移动的场景。
视差(parallax):从不同位置观察物体所产生的位置或方向上的差别
运动分割(motion segmentation):寻找运动的目标。减背景法可视为运动分割的特例。然而,大多数运动分割模型是基于运动分析、因子分解和统计技术建立的,这些技术在相机运动模式未知的情况下对运动场景的特征进行建模。
轨迹分割(trajectory segmentation):运动分割的一种。轨迹由多个帧上的跟踪点生成,表示长期的运动模式,可作为分割的信息提示。基于运动的方法严重依赖于光流估计的准确性,并且当物体的不同部分表现出不同的运动模式时,可能会失败。
光流(optical flow):分析运动图像的重要方法,指时变图像中亮度模式的运动。因为当物体在运动时,它在图像上对应点的亮度模式也在运动。(百科)
在分析光流时,需要用到两个重要假设:1.对象的像素强度在连续帧之间不会改变。2.相邻像素具有相似的运动。(参考)
AVOS可以克服上面所说的限制。一些方法在视频的每一帧中生成大量候选目标,并将分割视频目标的任务转化为目标区域选择的问题。这些算法的主要缺点是计算量大以及复杂的目标推断。还有一些人探索了启发式假设,如visual-attention和运动边界,但在启发式假设不成立的场景中很容易失败。
启发式(heuristic): “自我发现的能力”或“运用某种方式或方法去判定事物的知识和技能”
运动边界(motion boundary):提取运动物体的边界信息(轮廓)
早期的SVOS通常依赖于光流,且和目标跟踪很像。此外,IVOS在大量的人类指导下完成高质量视频分割任务。SVOS和IVOS的灵活性和准确性的代价:由于人工参与,不可能大规模使用。
由于VSS任务的复杂性,在DL时代之前,相关研究很少。该方法主要依赖于有监督的分类器(例如,SVM)以及video over-segmentation。
综上,相比于以往的方法,基于DL的方法进一步提升了VS的性能。
2.3 相关研究领域
视觉跟踪:为了推断时变目标的位置,现有方法通常假设目标在视频的第一帧就已经被圈定了。视觉跟踪和VS有一些共通的挑战(例如:目标/相机运动、外观改变、目标遮挡等),这促使了它们的联合使用。
图像语义分割:端到端图像语义分割的成功促使VSS快速发展。最近的VSS基于时间连续性提升分割的精度和有效性,而不是对视频逐帧的使用图像语义分割。
视频目标检测:为了进行视频目标检测,视频目标检测器使用了框或特征级的时间线索。视频目标检测和(实例级)视频分割之间存在许多关键技术步骤和挑战,如目标建议(object proposal)生成、时间信息聚合和帧间目标关联。
目标建议(object proposal)的基本思路就是在图像上找到一些潜在的目标,而不是穷举!然后将这些潜在的目标输入目标识别模型进行分类。
3. 基于深度学习(DL)的视频分割(VS)
3.1 基于DL的视频目标分割(VOS)
VOS从视频序列中提取通用前景对象,而不考虑语义类别识别。基于人工参与度,VOS分为AVOS、SVOS、IVOS。
3.1.1 自动视频目标分割(AVOS)
现代的AVOS以数据驱动的方式学习通用视频目标模式。
上图是一些AVOS技术的特点,其中的Instance表示instance级或者object级的分割。
基于DL的方法:
- 2015年,Fragkiadaki做出了早期的努力。他学习了一个多层感知器来对propoasl segments进行排序并推断前景目标。
- 2016年,Tsai提出了用于AVOS和光流估计的联合优化框架,该框架使用了一个预训练分类网络的深度特征。
- 后来的方法,基于帧或光流预测初始的、像素级的前景,尽管仍需要一些后续步骤。
- 基本上,这些原始解决方案主要依赖于传统的AVOS技术;神经网络的学习能力尚不充分。
基于像素实例Embedding的方法:首先生成像素级实例embeddings,然后选择聚类为前景或者背景的代表性embeddings。最终,被采样embeddings的label被传播给其他embeddings。聚类和传播是无监督的。虽然使用了较少的注释,但这些方法的却是支离破碎且复杂的。
基于短时信息编码的端到端的方法:
- 卷积递归神经网络(CRNN,CNN用于特征提取,RNN基于特征预测)用于学习时空视觉模式。
- 双流法(two-stream):构建并行双流从图像和光流中提取特征。双流特征融合(feature fusion)之后用于分割预测。双流法充分利用了外观和运动信息,代价是光流的计算以及大量需要学习的参数。
这些端到端的方法提升了精度,并且显示了使用神经网络的优势。然而,它们只考虑了有限时间跨度内的局部内容:提取少量连续帧中的外观和运动信息作为输入,忽视了间隔较远帧的关系。虽然通常使用RNN,但它们的内部隐藏内存(internal hidden memory)在建模长期依赖性时造成了固有的限制。
基于长时语境编码的端到端的方法:目前领先的AVOS使用长时间跨度上的全局语境(global context)。
- Lu提出了基于Siamese结构的模型:提取任意成对帧的特征,然后通过计算像素级特征相关性来获取cross-frame context。
- 另一个同时期的方式有相似的思想,但是只是把第一帧作为参考。
- 还有一些扩展研究改进对多个帧中信息的使用、编码空间语境、结合时间连续性,从而提升表示能力(representation power)和计算有效性。
基于无/弱监督的方法:只有少数AVOS使用无/弱标签数据训练。
相比于VS data,更容易获取的静态图像目标分割和动态注视data被用于学习通用的视频目标模式。
通过探索视频在多个粒度(granularity)上的固有属性来学习视觉模式,例如:帧内显著性(saliency,)、短时视觉连贯性、长程语义对应性、视频级辨别性。
通过最小化目标的运动与其语境之间的互信息,开发了一种对抗性(adversarial)语境模型来分割运动目标,且无需任何手动注释。还可通过自举(bootstrapping)策略和强制时间连续性进一步增强该方法。
对运动专门研究用于发现移动的目标,并且基于Transformer的模型使用未标记视频数据的自监督流重建(self-supervised flow reconstruction)来设计和训练。
实例级AVOS方法:又称为多目标无监督视频分割。这个任务更有挑战性,因为它不止需要把多个前景从背景中分离出来,还要区分不同的实例目标。目前该任务的解决办法是从宏观到微观(top-down)的办法:生成每一帧的候选目标,然后联合不同帧的实例。
综上,目前的实例级AVOS遵循古典的通过检测进行跟踪的办法,精度和有效性仍有相当大的提升空间。
3.1.2 半自动视频目标分割(SVOS)
基于DL的SVOS主要关注第一帧的掩模传播(mask propagation)。该技术基于目标掩模的测试时间进行分类。
基于online fine-tune的方法:基于one-shot的方法,以一种online的方法分别在每一个给定的目标掩模上训练一个分割模型。Fine-tune本质上是开发神经网络迁移学习的能力,并且通常有两步:
- 离线pre-train:从图像和视频序列中学习通用的分割特征;
- 在线fine-tune:基于监督学习目标专门的representation。
然而,fine-tune的方法有一些缺点:
- 预训练是固定的,且没有为之后的fine-tune优化;
- online fine-tune的超参数通常过于专门设计,所以不具有良好的泛化能力;
- 现存的fine-tune都有着高运行时间(每个分割目标多达1000次训练迭代)。根本原因在于这些方法编码了所有与目标相关的信息(例如:外观、掩模)
为了自动有效的进行fine-tune,人们开始使用meta learning,即优化fine-tune policy(例如:通用的模型初始化、learning rate等)或者直接更改网络权重。
基于传播的方法:
(未完待续)机器学习教程视频资料汇总
在学习机器学习的过程中,我陆陆续续收集了些免费的教程资料,希望能和您共享。
如果您有好的网站希望分享就评论吧,我也会整理到文章中。
1 机器学习基础篇
(1)课程资源
(2)机器学习算法:
感知机
K近邻法
朴素贝叶斯法
决策树
逻辑斯蒂回归与最大熵模型
支持向量机
提升方法
EM算法及其推广
隐马尔可夫模型
条件随机场
2 深度学习
3 神经网络
4 python应用篇
(1)python机器学习教程
《机器学习 Python scikit-learn》by study-ai
(2)相关库函数
numpy:《Python科学计算》by study-ai
opencv:《机器学习之opencv》by study-ai
(3)案例分析:
4 框架
Tensorflow:《Tensorflow中级教程》by study-ai
以上是关于未完待续综述:用于视频分割(Video Segmentation)的深度学习的主要内容,如果未能解决你的问题,请参考以下文章