A Survey on Deep Learning Technique for Video Segmentation
本文回顾视频分割的两条基本研究路线:视频目标分割(object segmentation)和视频语义分割(semantic segmentation)。本文介绍它们各自的task setting、背景概念、感知需求、发展历史以及主要挑战。本文详细概述相关的方法和数据集的代表性文献。本文在一些知名的数据集上对这些方法检测(benchmark)。最后,指出这些领域的opne issue以及未来的研究方向。
视频分割(找出视频中具有特殊性质或者语义(semantics)的关键目标)是计算机视觉(computer vision,CV)中基础且有挑战性的的问题。它有无数潜在的应用:自动驾驶、机器人、监控(surveillance)、社交媒体、AR、电影制作以及视频会议。
这个问题已经被传统的CV和机器学习(machine learning,ML)方法解决。包括:
最近,深度网络(DNN),尤其是全卷积网络(FCN)在视频分割取的巨大进展。相比于传统方法,这些基于深度学习(Deep Learning,DL)的(Video Segmentation,VS)算法有更高的精度(有时甚至更有效)。
全卷积网络(fully convolutional network,FCN)采用卷积神经网络实现了从图像像素到像素类别的变换。与卷积神经网络有所不同,全卷积网络通过转置卷积(transposed convolution)层将中间层特征图的高和宽变换回输入图像的尺寸,从而令预测结果与输入图像在空间维(高和宽)上一一对应:给定空间维上的位置,通道维的输出即该位置对应像素的类别预测。
现在大多数的研究视角狭隘,例如,只关注视频的前景/背景分割。本文系统地介绍了VS的最新进展,跨度从任务公式化(task formulation)到分类(taxonomy)、从算法到数据集、从未解决的问题到未来的研究方向,涵盖的关键点包括:
本文主要关注VS两个主要分支(目标分割、语义分割)的最新进展,之后会分为八个子领域。本文参考来自有名望的期刊和会议中有影响力的作品,也包含其他领域(例如:视觉跟踪)中非深度学习的视频分割模型和文献。

上图是本文回顾的视频分割任务:

上图是本文的结构。
令 X 和 Y 分别表示输入空间和输出的分割空间,基于深度学习的VS就是要找到一个理想映射。
基于如何定义输出空间Y,VS大致可分为两类:VOS、VSS。
视频目标(前景/背景)分割(VOS):Y 是一个二值的前景/背景分割空间。VOS应用于视频分析以及编辑场景,例如:移除电影中的目标、基于内容的视频编码、视频会议中生成虚拟背景。
视频语义分割(VSS):图像语义分割向时空(spatio-temporal)域的直接扩展。目标是从视频中提取属于预定义语义类别(例如:车、建筑物、人行道、道路)的对象。因此,Y 对应一个多类别的语义解析(parsing)空间。VSS是许多应用的的感知基础,这些应用要求对环境的高度理解,例如:机器人感知、人机交互、自动驾驶。
评论:VOS和VSS有相同的挑战,例如:快速移动和目标遮挡(object occlusion)。不同的应用场景有不同的挑战。例如:VOS通常关注人类创造的媒介,这些媒介具有较大的镜头移动、变形和外观变化;VSS通常关注像自动驾驶这样的应用,要求精度和时延的权衡、对小目标精确地探测、模型的并行性、跨域泛化能力。
基于人类参与推断的程度,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。
根据训练策略,基于DL的VS可以分为三个类别:监督、半监督、弱监督。
监督学习:完全使用labelled data学习,使模型输出贴近label。
无监督(自监督,self-supervised)学习:完全使用unlabeled data学习。无监督学习包括完全无监督学习(不需要任何label)和自监督学习(不需要人工标注,使用自动生成的伪标签(pseudo labels)训练网络)。几乎所有现存的无监督VS都是自监督学习。
弱监督(weakly-supervised)学习:使用有限数目的labelled data学习,且该label易于标注,例如:边界。
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的性能。
视觉跟踪:为了推断时变目标的位置,现有方法通常假设目标在视频的第一帧就已经被圈定了。视觉跟踪和VS有一些共通的挑战(例如:目标/相机运动、外观改变、目标遮挡等),这促使了它们的联合使用。
图像语义分割:端到端图像语义分割的成功促使VSS快速发展。最近的VSS基于时间连续性提升分割的精度和有效性,而不是对视频逐帧的使用图像语义分割。
视频目标检测:为了进行视频目标检测,视频目标检测器使用了框或特征级的时间线索。视频目标检测和(实例级)视频分割之间存在许多关键技术步骤和挑战,如目标建议(object proposal)生成、时间信息聚合和帧间目标关联。
目标建议(object proposal)的基本思路就是在图像上找到一些潜在的目标,而不是穷举!然后将这些潜在的目标输入目标识别模型进行分类。
VOS从视频序列中提取通用前景对象,而不考虑语义类别识别。基于人工参与度,VOS分为AVOS、SVOS、IVOS。
现代的AVOS以数据驱动的方式学习通用视频目标模式。

上图是一些AVOS技术的特点,其中的Instance表示instance级或者object级的分割。
基于DL的方法:
基于像素实例Embedding的方法:首先生成像素级实例embeddings,然后选择聚类为前景或者背景的代表性embeddings。最终,被采样embeddings的label被传播给其他embeddings。聚类和传播是无监督的。虽然使用了较少的注释,但这些方法的却是支离破碎且复杂的。
基于短时信息编码的端到端的方法:
这些端到端的方法提升了精度,并且显示了使用神经网络的优势。然而,它们只考虑了有限时间跨度内的局部内容:提取少量连续帧中的外观和运动信息作为输入,忽视了间隔较远帧的关系。虽然通常使用RNN,但它们的内部隐藏内存(internal hidden memory)在建模长期依赖性时造成了固有的限制。
基于长时语境编码的端到端的方法:目前领先的AVOS使用长时间跨度上的全局语境(global context)。
基于无/弱监督的方法:只有少数AVOS使用无/弱标签数据训练。
相比于VS data,更容易获取的静态图像目标分割和动态注视data被用于学习通用的视频目标模式。
通过探索视频在多个粒度(granularity)上的固有属性来学习视觉模式,例如:帧内显著性(saliency,)、短时视觉连贯性、长程语义对应性、视频级辨别性。
通过最小化目标的运动与其语境之间的互信息,开发了一种对抗性(adversarial)语境模型来分割运动目标,且无需任何手动注释。还可通过自举(bootstrapping)策略和强制时间连续性进一步增强该方法。
对运动专门研究用于发现移动的目标,并且基于Transformer的模型使用未标记视频数据的自监督流重建(self-supervised flow reconstruction)来设计和训练。
实例级AVOS方法:又称为多目标无监督视频分割。这个任务更有挑战性,因为它不止需要把多个前景从背景中分离出来,还要区分不同的实例目标。目前该任务的解决办法是从宏观到微观(top-down)的办法:生成每一帧的候选目标,然后联合不同帧的实例。
综上,目前的实例级AVOS遵循古典的通过检测进行跟踪的办法,精度和有效性仍有相当大的提升空间。
基于DL的SVOS主要关注第一帧的掩模传播(mask propagation)。该技术基于目标掩模的测试时间进行分类。

基于online fine-tune的方法:基于one-shot的方法,以一种online的方法分别在每一个给定的目标掩模上训练一个分割模型。Fine-tune本质上是开发神经网络迁移学习的能力,并且通常有两步:
然而,fine-tune的方法有一些缺点:
为了自动有效的进行fine-tune,人们开始使用meta learning,即优化fine-tune policy(例如:通用的模型初始化、learning rate等)或者直接更改网络权重。
基于传播的方法:
大约一年前,我决定确保每个包含非唯一文本的Flash通知都将从模块中的方法中获取文本。我这样做的最初原因是为了避免一遍又一遍地输入相同的字符串。如果我想更改措辞,我可以在一个地方轻松完成,而且一遍又一遍地重复同一件事而出现拼写错误的可能性也会降低。我最终得到的是这样的:moduleMessagesdefformat_error_messages(errors)errors.map{|attribute,message|"Error:#{attribute.to_s.titleize}#{message}."}enddeferror_message_could_not_find(obje
我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm
当我使用has_one时,它工作得很好,但在has_many上却不行。在这里您可以看到object_id不同,因为它运行了另一个SQL来再次获取它。ruby-1.9.2-p290:001>e=Employee.create(name:'rafael',active:false)ruby-1.9.2-p290:002>b=Badge.create(number:1,employee:e)ruby-1.9.2-p290:003>a=Address.create(street:"123MarketSt",city:"SanDiego",employee:e)ruby-1.9.2-p290
目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称
最近在学习CAN,记录一下,也供大家参考交流。推荐几个我觉得很好的CAN学习,本文也是在看了他们的好文之后做的笔记首先是瑞萨的CAN入门,真的通透;秀!靠这篇我竟然2天理解了CAN协议!实战STM32F4CAN!原文链接:https://blog.csdn.net/XiaoXiaoPengBo/article/details/116206252CAN详解(小白教程)原文链接:https://blog.csdn.net/xwwwj/article/details/105372234一篇易懂的CAN通讯协议指南1一篇易懂的CAN通讯协议指南1-知乎(zhihu.com)视频推荐CAN总线个人知识总
深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal
动漫制作技巧是很多新人想了解的问题,今天小编就来解答与大家分享一下动漫制作流程,为了帮助有兴趣的同学理解,大多数人会选择动漫培训机构,那么今天小编就带大家来看看动漫制作要掌握哪些技巧?一、动漫作品首先完成草图设计和原型制作。设计草图要有目的、有对象、有步骤、要形象、要简单、符合实际。设计图要一致性,以保证制作的顺利进行。二、原型制作是根据设计图纸和制作材料,可以是手绘也可以是3d软件创建。在此步骤中,要注意的问题是色彩和平面布局。三、动漫制作制作完成后,加工成型。完成不同的表现形式后,就要对设计稿进行加工处理,使加工的难易度降低,并得到一些基本准确的概念,以便于后续的大样、准确的尺寸制定。四、
2022/8/4更新支持加入水印水印必须包含透明图像,并且水印图像大小要等于原图像的大小pythonconvert_image_to_video.py-f30-mwatermark.pngim_dirout.mkv2022/6/21更新让命令行参数更加易用新的命令行使用方法pythonconvert_image_to_video.py-f30im_dirout.mkvFFMPEG命令行转换一组JPG图像到视频时,是将这组图像视为MJPG流。我需要转换一组PNG图像到视频,FFMPEG就不认了。pyav内置了ffmpeg库,不需要系统带有ffmpeg工具因此我使用ffmpeg的python包装p
Transformers开始在视频识别领域的“猪突猛进”,各种改进和魔改层出不穷。由此作者将开启VideoTransformer系列的讲解,本篇主要介绍了FBAI团队的TimeSformer,这也是第一篇使用纯Transformer结构在视频识别上的文章。如果觉得有用,就请点赞、收藏、关注!paper:https://arxiv.org/abs/2102.05095code(offical):https://github.com/facebookresearch/TimeSformeraccept:ICML2021author:FacebookAI一、前言Transformers(VIT)在图
我完全不是程序员,正在学习使用Ruby和Rails框架进行编程。我目前正在使用Ruby1.8.7和Rails3.0.3,但我想知道我是否应该升级到Ruby1.9,因为我真的没有任何升级的“遗留”成本。缺点是什么?我是否会遇到与普通gem的兼容性问题,或者甚至其他我不太了解甚至无法预料的问题? 最佳答案 你应该升级。不要坚持从1.8.7开始。如果您发现不支持1.9.2的gem,请避免使用它们(因为它们很可能不被维护)。如果您对gem是否兼容1.9.2有任何疑问,您可以在以下位置查看:http://www.railsplugins.or