首页
常用链接
关于
Search
1
Pytorch DDP
2,093 阅读
2
Pytorch 常见问题
1,210 阅读
3
视频时序切分
854 阅读
4
Semi-Supervised + Noisy Label
747 阅读
5
中文场景下的CLIP图文预训练
738 阅读
阅读
论文阅读
多模态理解
计算机视觉
Video Understanding
Segmentation
AIGC
机器学习
编程开发
C++
Python
LeetCode
Shell
Pytorch
模型加速
广告
广告基础知识
推荐算法
创意优选
购房/投资
职场经验复盘
默认分类
Search
标签搜索
python
Pandas
transformer
视觉传统方法
创意质量
git
shell
视频理解
Pytroch
nlp
DDP
图像自监督预训练
安装包
视频流行度
Jefxiong
累计撰写
50
篇文章
累计收到
7
条评论
首页
栏目
阅读
论文阅读
多模态理解
计算机视觉
Video Understanding
Segmentation
AIGC
机器学习
编程开发
C++
Python
LeetCode
Shell
Pytorch
模型加速
广告
广告基础知识
推荐算法
创意优选
购房/投资
职场经验复盘
默认分类
页面
常用链接
关于
搜索到
9
篇与
计算机视觉
的结果
2022-04-01
图像自监督预训练小结(2016-2021)
早期方案(2016-2018)通过设计代理任务实现自监督训练,包括预测周围图像块的相对位置(转化为九宫格的分类问题),预测图像的旋转角度等 中期方案(2019-2021)基于对比学习的方法,通过构造正负样本对(正样本对为同一张图片的不同数据增广构成的两张图片,负样本对为不同图片),拉近正样本对特征之间的距离,拉远负样本对特征之间之间的距离。采用InfoNCE作为损失函数。主要包括像MoCo(v1-v3)、SimCLR、BYOL、SwAV、SimSiam 近期方案(2021-现在)主要将NLP中掩码机制(mask部分区域,模型对masked的区域进行预测,类似完形填空)成功地借鉴到CV领域,按照时间顺序,主要有BEiT、MAE、SimMIM、MaskFeat等系列工作 参考文献 自监督学习系列(一):基于 Pretext Task 自监督学习系列(二):基于 Contrastive Learning 自监督学习系列(三):基于 Masked Image Modeling 自监督学习代码库 MMSelfSup
2022年04月01日
120 阅读
0 评论
0 点赞
2022-02-03
Video Understanding Dataset
1. 视频理解数据集概览 2. 数据集详情介绍 SoccerNet HVU ICCV 2019, tag list THUMOS14 THUMOS Challenge 2014 训练集:UCF101,101种动作类别,共13320剪辑的视频片段;验证集:1010未剪辑视频,其中200个有时序标注(3007个行为段,包含20类行为);测试集:1574未剪辑视频,其中213个有时序标注(3358个行为段)。 ActivityNet CVPR2015 包含分类、检测任务,包含200个动作类别,20000多视频(训练10024+验证4926+测试5044)。 Charades 2016 主要包含9848个未剪辑的室内视频(训练7985+1863测试),包含157个类别及267不同的人物,每段视频大约30秒。 AVA 2018 包含430个15分钟电影剪辑片段及标注80类动作。有386,000个标记的片段,614,000个标记的边界框和81,000条人迹。 总共有158万个带有标签的动作,每个人经常有多个标签。 MovieNet ECCV2020 Moments-in-time ICCV2019 Opps CVPR2020 异常动作时间定位数据集 3. 参考文献 视频理解公开数据集
2022年02月03日
251 阅读
0 评论
0 点赞
2021-11-28
Semi-Supervised + Noisy Label
为什么要做半监督(SSL)+带噪学习(Noisy Label): 标注成本高,数据标注周期长。真实业务场景拥有大量无标注数据。探索自监督(任务无关)+半监督(任务相关)相结合的训练范式 标签体系调整带来的训练数据整合问题。最直接的想法是利用少量新增标签标注数据训练,并在原有体系上预测出伪标签进行数据整合,本质是半监督学习的一种最简单、常用的方法(Pseudo Label) 多标签容易出现漏标、错标问题。即使有多次人工审核的情况下。大多数半监督算法(例如伪标签)生成的标签通常的带有噪声,进而影响模型训练 图片半监督学习 半监督学习SSL (Semi-Supervised Learning)概览 1. 定义: 半监督模型主要研究如何利用大量未标注的数据,提升模型的泛化能力,并且利用少量标注数据,减少标注人力。半监督之所以能够有效的关键原因在于,未标注数据提供了更多的数据分布信息,使得决策边界可以避免穿过数据高密度区域,提升模型的泛化性能,如下图所示,黑白点为单个有标注的两个类别数据,灰色为未标注的标签数据。只利用两个有标注数据学习出来的决策边界,在右图的数据分布下不会是一个好的决策边界: **2. 两种主流使用未标注数据的方式:半监督学习 vs 自监督学习。**半监督学习相关工作主要研究集中在视觉领域,而自监督学习预训练 + 下游特定任务Finetune, 是在NLP领域被广泛应用的方式。二者的相同点都是利用无标签的数据进行学习,不同点在于半监督学习是结合具体下游任务进行训练的,而自监督学习是学习一个通用的特征表示,和下游任务无关,导致预训练任务学习的特征在下游任务并不完全适用(**主流基于对比学习的自监督方法,同一个类别的不同样本,被强制拉远特征之间的距离,可能与下游分类任务相违背**)。自监督预训练和半监督学习结合进行下游任务适配学习,会是更好的解决方案(SimCLR v2, NIPS 2020; CoMatch, ICCV2021) ## 主要研究方向 半监督方法可大致分为以下几种: 本文主要介绍前四种主流算法, 基于生成式和图方法的两个研究方向虽然有不少相关论文,但是模型的性能不及前四种研究方法。早期方法以一致性约束和伪标签方法为主,混合方法结合一致性约束和伪标签两类方法提升精度。近期自监督+半监督相结合的方法,成为了新的SOTA。针对半监督领域的一些分支研究方向,比如半监督学习下的样本极度匮乏和类别不均衡的长尾问题,没有在本文的调研范围之内。 评估数据集 DataSet Class Image Size Train Validation Unlabeled 备注 SVHN-10 10 32x32 7.3w 2.6w 53w 谷歌街景房屋号码,预测号码中的中间数字 STL-10 10 96×96 5k 8k 1w张未标注数据(包含不属于10类的其他相近类别物体) - CIFAR-10 10 32x32 5w 1w 没有未标注数据 10分类,动物/交通工具等 CIFAR-100 100 32x32 5w 1w 没有未标注数据 100分类,论文中通常采样一部分比例作为有标注数据,丢弃剩下的数据标签作为无标注数据 ImageNet 1000 任意大小 120w 15w 15w 论文通常采用1%,10%的数据做训练,其余当作未标注数据验证半监督算法 JFT300B 18291 - 3亿 - - 用作预训练,在ImageNet上做评估,半监督算法通常抛弃原有标签,把整个数据集当作无标签数据集使用 算法对比概览(数据集准确率选取top5/top1 acc展示,更多数据见 LeaderBoard of SSL) 半监督加自监督: SSSS (Self-Supervised+Semi-Supvised) 伪标签: PL (Pseudo-Label ) 一致性约束: CR (Consistency Regularization) 混合方法: HM (Hybrid Methods) 算法 backbone 算法归类 数据增广 半监督损失 ImageNet-10%(Top5/top1 acc) CIFAR10-4k(err) SimCLRv2 ResNet-152 x3, SK SSSS simple CE 95.5/80.9 - SimCLRv2 ResNet-50 SSSS simple CE 93.4/77.5 - CoMatch Moco v2 SSSS RandAugment CE 91.4/73.7 - Meta Pseudo Labels ResNet-50 PL RandAugment(15种随机方式) CE 91.38/73.89 3.89± 0.07 Noisy Student EfficientNet-L2 PL RandAugment CE -/- - MixMatch - HM Mixup/simple MSE -/- 6.24 FixMatch - HM RandAugmentCTAugment CE 89.13/- 4.31 DivideMix - HM Mixup/simple MSE -/- - UDA - CR RandAugment CE 88.52/- 5.27 VAT - CR Adversarial Noise MSE -/- 11.36 Mean Teacher - CR simple MSE -/- 6.28 PI Model/Temporal Ensembeling - CR simple MSE -/- 12.16/- 一致性约束方法 一致性约束方法主要思想:约束同一样本的在不同变换下(网络扰动、数据扰动、对抗扰动等)的标签预测概率的一致性。一致性约束主要研究的方向是通过合理的方式构造一致性样本对(正样本对) 网络扰动: Dropout(PI Model, ICLR2017)/EMA(Mean Teacher, NIPS2017) 数据扰动: Temporal Ensembling/输入高斯噪声/数据增广(AutoAugment/RandomAugment) 对抗噪声: 输入的梯度方向(VAT, PAMI2019) PI Model/Temporal Ensembling【ICLR2017】 Temporal Ensembling for Semi-Supervised Learning Authors: Samuli Laine, Timo Aila Institute: Nvidia 论文简介: 半监督领域早期较为经典的一篇文章,提出了PI Model和temporal ensembling两个一致性约束方法 算法细节: a. 模型结构 PI Model: 模型损失由两部分构成:有监督分类损失和一致性约束损失。对于有标注的数据,直接计算交叉熵损失函数,对于同一个未标注数据x,进行两次模型前向并约束网络的输出结果相同(由于网络扰动和数据增广两次结果会不一致),一致性约束的损失函数采用MSE Temporal Ensembeling: PI Model需要进行两次模型前向才能构成一致性样本对,Temporal Ensembeling提出记录每个样本输出概率的滑动平均($Z_{t}=\alpha*Z_{t-1} + (1-\alpha)*z_{t}$),作为一致性约束的目标。节约了一次前向时间,并且滑动平均能够对噪声更加鲁棒。 Temporal Ensembeling的主要缺点在于需要维护整个数据集样本的输出预测概率,在大规模数据集上需要过大的存储空间 b . 半监督损失时变系数w(t)的重要性: 一致性损失函数的权重采用 $w(t)=e^{-5*(1-t)^2}$,即在网络的初期以优化监督损失为主,当模型训练精度提升后再开始逐步减小一致性约束。论文中指出,逐步增大一致性约束损失很有必要,否则会导致模型陷入收敛到没有意义的结果(比如模型预测为恒定常数) Mean Teacher【NIPS 2017】 Mean teachers are better role models: Weight-averaged consistency targets improve semi-supervised deep learning results Authors: Antti Tarvainen, Harri Valpola Institute: The Curious AI Company 论文简介: 为解决Temporal Ensembling中数据存储的问题,Mean Teacher提出进行模型参数滑动平均替代样本概率滑动平均 算法细节: 借鉴意义: 模型参数的滑动平均,可以认为是一种简单的模型集成。在监督学习和半监督领域都适用,通常能够起到防止过拟合的作用 模型的EMA能够稳定网络训练,在自监督预训练模型BYOL(NIPS2020)也被运用 UDA【NIPS 2020】 Unsupervised Data Augmentation for Consistency Training 【Code】 Authors: Qizhe Xie, Zihang Dai, Eduard Hovy, Minh-Thang Luong, Quoc V. Le Institute: Google Research 论文简介: 以往方法采用的构造一致性约束样本对的扰动方式过于简单(如数据高斯噪声和dropout等),论文尝试引入图像/文本领域内的SOTA数据增广方式(图像RandAugment/文本反向翻译)方式,提升基于一致性约束方法的性能 算法细节: a. 模型结构:模型结构和PI Model一致,只是数据增广方式进行了扩展 b. 消融实验: 有效的数据增广方式对基于一致性约束方法十分重要。 VAT【PAMI2019】 Virtual Adversarial Training: A Regularization Method for Supervised and Semi-Supervised Learning Authors: Takeru Miyato, Shin-ichi Maeda, Masanori Koyama, Shin Ishii Institute: Google Research 论文简介: 对抗训练在有监督学习中被采用做数据增广提升模型泛化性,本文提出在未标注数据上的对抗训练方法,不依赖样本GT 算法细节: (1). VAT算法整体和PI model(ICLR2017)相似,只是将数据增广方式变成了对抗噪声 (2) 未标注数据对抗噪声: 对抗训练在有监督中实现方式是,根据标注数据GT和模型预测,找到输入x的梯度方向即为噪声。在未标注数据中,采用如下方法近似方法进行估计: $r \sim \mathcal{N}\left(0, \frac{\xi}{\sqrt{\operatorname{dim}(x)}} I\right)$ $\operatorname{grad}_{r}=\nabla_{r} d_{\mathrm{KL}}\left(f_{\theta}(x), f_{\theta}(x+r)\right)$ $r_{a d v}=\epsilon \frac{g r a d_{r}}{\left\|g r a d_{r}\right\|}$ (3) 未标注数据一致性损失 $$ \mathcal{L}_{u}=w \frac{1}{\left|\mathcal{D}_{u}\right|} \sum_{x \in \mathcal{D}_{u}} d_{\mathrm{MSE}}\left(f_{\theta}(x), f_{\theta}\left(x+r_{a d v}\right)\right) $$ VAT方法的优缺点: 优点:和输入x的类型无关,可以用于RGB图片/已经提取好的特征/文本模态等等 缺点: 相比于数据增广方法,VAT扰动生成数据视觉上不够真实,对比一些SOTA的图片数据增广算法性能较差 伪标签方法(self-training) 最简单的伪标签方法的流程可分为三步: 在有标注数据集上训练Teacher模型 在未标注数据上进行预测得到数据的分类(soft-label/hard-label) 最后Student模型在有标注数据和伪标签数据上进行联合训练 为简化流程,更多的伪标签算法采用同步训练的方式: 即在一个batch内同时计算有标注样本的交叉熵损失,对于未标注样本通过模型预测出概率分布后,通过将概率分布通过阈值的方式转变为one-hot编码方式并计算交叉熵损失或MSE(对噪声更鲁棒)。 伪标签的最大挑战是: Teacher网络对未标注数据的预测存在噪声( confirmation bias),目前研究主要通过以下方法解决: 启发式方法: 通常采用固定卡阈值(threshold=0.9)方法;时变系数损失权重 迭代训练,逐步提升Teacher网络预测的伪标签精度: Noisy Student(CVPR2021) 动态阈值解决固定阈值问题: FlexMatch(NIPS2021) Meta Pseudo Label(CVPR2021)通过Student网络在标注数据上的损失,反馈调整Teacher网络参数。Meta Pseudo Label通过学习如何修正pseudo label来提升Student网络在有标注验证集上的精度,可用于半监督和Noisy label的数据修正 不只用模型预测出的分类score,预测标签可信度: UPS(ICLR2021) Noisy Student【CVPR2020】 Self-training with Noisy Student improves ImageNet classification 【Code】 Authors: Qizhe Xie, Minh-Thang Luong, Eduard Hovy, Quoc V. Le Institute: Google Research 论文简介: 结合self-training、蒸馏、数据增广/网络结构噪声等策略,提升模型性能。论文方法简单,消融实验丰富,可提供较多训练的经验指导,在ImageNet top1-acc上达到88.4%(结合3亿JFT未标注数据,达到了当时的SOTA,目前最高90.88%)。 算法流程: 模型训练流程: 1) 标注数据上训练Teacher网络 ;2)未标注数据上用Teacher网络预测伪标签;3) 利用伪标签数据和标注数据,结合网络和数据噪声,训练学生网络;4)迭代训练,重复2)3)两个步骤 一系列模型训练Trick合集: 未标注数据类别平衡的重要性: 重复类别少的未标注数据(810w->1300w) 控制有标注样本和无标注样本比例:使用大比例的无标注数据batch_size 过滤未标注数据中的OOD(out-of-distribution)样本: 利用模型预测,并过滤最大分类概率小于0.3的样本 有标注/无标注(soft-label)的两类数据联合训练的优点:在标注数据和未标注数据联合训练,比在未标注数据上预训练再到有标注数据分步训练的方式好 迭代训练逐步提升精度(ImageNet top1-acc +0.8%) Meta Pseudo Labels【CVPR2021】 Meta Pseudo Labels 【Code】 Authors: Hieu Pham, Zihang Dai, Qizhe Xie, Minh-Thang Luong, Quoc V. Le Institute: Google AI, Brain Team 论文简介: 伪标签方法中的Teacher网络不准确引入错误的预测伪标签GT(确认偏差, confimation bias),进而影响Student模型训练。为了修正Teacher模型预测伪标签的精度,本文提出采用元伪标签方法,根据Student网络在有标签数据集上的损失优化Teacher网络,利用未标注数据JET进行半监督,在ImageNet上top1-acc达到90.2%(首个在ImageNet上突破90% ) 算法细节: 算法流程: Student网络产生的Loss对Teacher反馈信号: 目标函数如下,利用元学习中MAML的方法进行近似求解梯度 $$ \begin{array}{cl} \min _{\theta_{T}} & \mathcal{L}_{l}\left(\theta_{S}^{\mathrm{PL}}\left(\theta_{T}\right)\right) \\ \text { where } & \theta_{S}^{\mathrm{PL}}\left(\theta_{T}\right)=\underset{\theta_{S}}{\operatorname{argmin}} \mathcal{L}_{u}\left(\theta_{T}, \theta_{S}\right) \end{array} $$ 借鉴意义 在半监督和带噪学习中的可用性: Student网络利用干净标签数据进行Loss评估,Teacher网络学习如何生成干净样本,使得Student网络在干净样本上的精度得到提升,是一条可探索的路,但不能一定确保获得好正向结果。 混合方法 混合方法采用一致性约束和伪标签算法中的一些算法模块,提升模型性能。 MixMatch【NIPS2019】 MixMatch: A Holistic Approach to Semi-Supervised Learning [Code] Authors: David Berthelot, Nicholas Carlini, Ian Goodfellow, Nicolas Papernot, Avital Oliver, Colin Raffel Institute: Google Research 论文简介: 统一当前主流半监督算法在一个算法中,包括一致性约束、最小化熵和MixUp正则化方法 算法流程: (1) 构建未标注样本概率分布(soft-label): 通过多次数据增强的平均预测提升精度(一致性约束),并结合Sharpen函数降低预测概率分布的不确定性(最小化熵) $$ \operatorname{Sharpen}(p, T)_{i}:=p_{i}^{\frac{1}{T}} / \sum_{j=1}^{L} p_{j}^{\frac{1}{T}} $$ 当T=1时,为identity;当T取<1时,概率分布向one-hot方式改变,论文中T取0.5 (2) 在标注样本和未标注样本(带有soft-label)的两类数据上做MixUp正则化: MixMatch中的Mixup与原论文的不同点在于: 下面公式中的第二项,保证了合成的样本 $x{'}$相比$x_{2}$而言与$x_{1}$更接近。让合成的样本保持和前者更接近是为了在计算损失的时候,对于Labeled Group和Unlabel Group两种类型数据,采用不同的监督方式。 $$ \begin{aligned} \lambda & \sim \operatorname{Beta}(\alpha, \alpha) \\ \lambda^{\prime} &=\max (\lambda, 1-\lambda) \\ x^{\prime} &=\lambda^{\prime} x_{1}+\left(1-\lambda^{\prime}\right) x_{2} \\ p^{\prime} &=\lambda^{\prime} p_{1}+\left(1-\lambda^{\prime}\right) p_{2} \end{aligned} $$ (3) 针对Labeled Group和Unlabel Group两种类型数据,分别采用交叉熵和MSE进行监督。 未标注样本损失函数的选取:对于无标签数据的监督优化,采用MSE替换常规的KL散度/交叉熵等分类损失函数,因为MSE对噪声更鲁棒。MSE损失函数相比较于KL散度的缺点是收敛慢,论文在对MSE损失函数的权重乘以100以加快收敛速度(我推测的)。 算法细节: (1) 消融实验: K 表示数据增广的次数,MixMatch默认采用K=2,K越大效果越好但是也增加了模型的前向时间 概率分布Sharpen影响精度较大(在4000labels情况下约4.5%), 考虑低熵预测的其他方式, 如果将sharpen替换为one-hot编码效果会怎样? Mixup对算法的贡献最大(4.97%), 在样本数少的情况下越明显 借鉴意义: Mixup作为一种与模态无关的非常有效的数据增广方法,不止在图片中可以用,对于其他模态(甚至是预先提取好的embedding)也是适用的 一致性损失函数的选择可以考虑其他对噪声鲁棒的SOTA损失函数替换,解决MSE监督概率分布收敛慢的问题 FixMatch【NIPS2020】 FixMatch: Simplifying Semi-Supervised Learning with Consistency and Confidence [Code] Authors: Kihyuk Sohn Institute: Google Research 论文简介: FixMatch简化同期MixMatch/ReMatch等混合方法中复杂的设计,并超越MixMatch/ReMatch等方法 算法流程: (1) 在有标注样本上计算交叉熵损失 (2) 利用弱数据增广(flip-and-shift)为无标注样本生成伪标签,并进行高阈值过滤,转变为one-hot伪标签概率分布 (3) 对同一样本进行强数据增广(RandomAugment/Cutout),并用上一步得到的one-hot伪标签进行交叉熵损失计算。对于最大概率低于阈值的样本,不参与损失计算 算法细节: 为什么需要将数据增广分类为强/弱两种:弱数据增广用于提供更准确的伪标签,强数据增广让网络能够适配更多的数据变化。如果将第一条支路的弱数据数据增广替换为强数据增广,实验中发现训练会变得不稳定(训练过程中准确率突然从45%突变到12%) 对比实验数据 在各个数据集上超越之前方法,尤其是在样本数少的时候,e.g. 40个样本的CIFAR-10实验 借鉴意义: 整体结构简单有效,存在改进的地方是算法中采用固定的阈值过滤的超参数,对于难却分的类别(通常表现为预测score低)是不友好的,难样本会被过滤掉,动态估计阈值方法在(FlexMatch, NIPS2021)中进行了改进 DivideMix【ICLR2020】 DivideMix: Learning with Noisy Labels as Semi-supervised Learning [Code] Authors: Junnan Li, Richard Socher, Steven C.H. Hoi Institute: Salesforce Research 论文简介: 基于噪声样本通常表现为loss较大的前提假设,将带噪样本问题转换为半监督问题处理 算法流程: (1) 在有监督数据上进行warmup训练 (2) 通过高斯混合模型(GMM)建模每样样本损失的分布(随着训练过程变化),将训练集分为有标签的干净数据集和有噪声的未标注数据集 样本属于干净样本的概率:样本loss属于均值小的高斯分布的概率。通过卡阈值可以Clean/Noisy样本划分 (3) 在干净有标签样本集上计算有监督损失函数,和带噪的样本上利用MixMatch进行半监督训练(丢弃噪声GT) 模型细节: 为了缓解单个网络出现确认偏差问题(预测为错误样本,且在伪标签上loss低),论文提出两个网络联合训练的方法 - Co-Divide: 两个网络互相为对方进行Clean(labeled) 和Noisy(unlabeled)的数据划分 - Co-Refine: 对于样本的类别概率$$p_{gt}$$,通过加权求和进行更新,加权系数w为样本属于干净样本的概率 $p_{gt}^{’}= w*p_{gt}+ (1 − w)*p_{new}$ - Co-Guess: 对于未标注样本伪标签概率分布,通过两个网络的预测平均作为该样本输入到MixMatch的伪标签 借鉴意义: 缺点:需要同时优化两个网络,对训练时间和显存需求会翻倍;Multi-task和Multi-Label的设定下,不能只有一个loss评估样本,需要分任务,分标签进行区分; 完全丢弃原始标签信息,可能会造成信息丢失 优点: 同时考虑了半监督和带噪训练,在实际应用场景会更实用 SOTA: 自监督 + 半监督 SimCLR V2【NIPS2020】 Big Self-Supervised Models are Strong Semi-Supervised Learners 【Code】 Authors:Ting Chen, Simon Kornblith, Kevin Swersky, Mohammad Norouzi, Geoffrey Hinton Institute: Google Research, Brain Team 论文简介: 自监督预训练任务没有考虑具体下游任务,采用预训练特征+少量标注样本Finetune的方式没有充分在下游任务上 算法流程: (1) 在未标注数据上利用对比损失函数进行自监督预训练,正类(同一样本的数据增广)拉近特征距离,负类(不同样本)推远。 Normalized Temperature-scaled cross entropy loss,sim为余弦相似性 $$ \ell_{i, j}^{\text {NT-Xent }}=-\log \frac{\exp \left(\operatorname{sim}\left(\boldsymbol{z}_{i}, \boldsymbol{z}_{j}\right) / \tau\right)}{\sum_{k=1}^{2 N} \mathbb{1}_{[k \neq i]} \exp \left(\operatorname{sim}\left(\boldsymbol{z}_{i}, \boldsymbol{z}_{k}\right) / \tau\right)} $$ (2) 有标签数据上进行模型Finetune (3) 再次使用未标注数据,利用Finetune的模型进行蒸馏(soft label + CrossEntropy),适配当前下游任务。 训练包含有标注数据的监督损失和未标注数据的蒸馏损失 $$ \mathcal{L}=-(1-\alpha) \sum_{\left(\boldsymbol{x}_{i}, y_{i}\right) \in \mathcal{D}^{L}}\left[\log P^{S}\left(y_{i} \mid \boldsymbol{x}_{i}\right)\right]-\alpha \sum_{\boldsymbol{x}_{i} \in \mathcal{D}}\left[\sum_{y} P^{T}\left(y \mid \boldsymbol{x}_{i} ; \tau\right) \log P^{S}\left(y \mid \boldsymbol{x}_{i} ; \tau\right)\right] $$ 算法细节: (1) 在越少的标注样本下,越大的模型性能越好,即使存在过拟合的风险 (2) 针对具体分类任务使用未标注的数据,能够提升模型在具体任务下的性能 借鉴意义: 优点: 自监督很重要,结合半监督训练比单纯在少量标注样本上Finetune效果更好 缺点: 简单利用无标注数据进行知识蒸馏的方法还有较大提升的空间。相对而言,CoMatch(ICCV2021)的解决方案更有针对性 SimCLR V2效果非常好的原因在于用了参数量非常大的Teacher模型,需要较多计算资源用于自监督预训练 CoMatch【ICCV2021】 CoMatch: Semi-supervised Learning with Contrastive Graph Regularization 【Code】 Authors: Junnan Li, Caiming Xiong, Steven Hoi Institute: Salesforce Research 算法简介: self-training的自监督预训练能够得到一个较好的特征表示,但是在特定任务上不一定适用(对于同一个类别的不同样本,被强制拉远特征距离)。CoMatch提出将数据的特征表示层和标签预测层分离,再进行信息交互: 利用不同样本的特征相似性: 融合特征相近样本的标签,用于提升伪标签精度 利用不同样本的标签信息提升特征对比学习: 如果样本标签一致,则拉近两个样本的特征emb,反之推远 算法流程: (1) 算法流程图 模型细节 消融实验 在没有预训练的情况下,半监督方法CoMatch比监督训练好11.2%(91.6 vs 80.4) 在有监督预训练情况下,CoMatch半监督方法比直接finetune好1.29% 参数量大的SimCLR v2有较强的优势,结合蒸馏到小模型,比同量级模型(25.6M vs 29.8M)高出2% 借鉴意义 结合下游任务标签数据,将对比学习预训练中,不合理的负样本(不同的样本,但属于同一个类别)特征拉远问题进行优化 图片半监督调研小结 自监督预训练很有效但还不够。自监督结合任务相关的半监督训练方法可以较大幅度提升模型精度,达到SOTA水平(SimCLR v2, CoMatch等) 数据增广方式在一致性约束中扮演重要的作用,一种有效的视频数据增广方式是一致性方法得以应用在视频理解任务里面的关键;一些sota的数据增广方式比如,AutoAugument,RandomAugment等只在图片中适用。与模态无关的数据增广方式包括Mixup和VAT对抗扰动噪声,从实验精度来看,mixup数据增广的效果比对抗扰动更好。在预先提取好视频帧的情况下,可以优先考虑mixup方法和其变种来实现数据增广 对无标签的预测标签分布后处理,多数算法选择对概率分布进行sharpen操作,甚至直接转换为one-hot的形式,本质都是在鼓励低熵预测,即让样本尽可能远离分类边界。保持soft-label的方法在蒸馏中会被采用,soft-label在无标注样本可能存在OOD(out-of-distribution)的情况下适用(允许类别概率是均匀分布)。 值得尝试的方向:1.带噪训练和半监督方法如何更好得结合: 比如【DividMix, ICLR2020】/【 Robust LR,Top1 on WebVision】方法; 2.Meta Pseudo Label为代表,Teacher网络学习如何生成“高质量”的伪标签提升Student网络的精度,结合meta learning的方法也可能较大提升精度的一个方向; 3. 自监督+半监督相结合的策略 方法迁移应用于多标签问题:图片半监督算法基本都是在研究多分类问题,要适配到多标签任务需要额外的设计(比如,根据类别概率最大值去过滤样本、根据loss进行样本划分等) 参考文献 【Survey】A Survey on Deep Semi-supervised Learning⭐️ 【Survey】An Overview of Deep Semi-Supervised Learning⭐️ 【Github】 Awesome-Learning-with-Label-Noise ⭐️ 【Github】 awesome-semi-supervised-learning ⭐️⭐️ 【LeaderBoard of SSL on Paper with Code】⭐️⭐️ 【Github】半监督学习开源库 TorchSSL ⭐️⭐️ 【Blog】OPENAI, Learning with not Enough Data Part 1: Semi-Supervised Learning ⭐️ 【Blog】Semi-Supervised Learning in Computer Vision ⭐️ 【Blog】PaperWeekly 半监督学习技术近年来的发展历程及典型算法框架的演进 【Blog】vivo-带噪学习研究及其在内容审核业务下的工业级应用 【Blog】淘宝,主动学习入门篇:如何能够显著地减少标注代价 【Blog】网易,知物由学 | “半监督”与“自监督”:多方法结合让AI模型训练事半功倍 【Blog】Meta Pseudo Label A Survey of Label-noise Representation Learning: Past, Present and Future
2021年11月28日
747 阅读
1 评论
1 点赞
2021-09-02
Transformer-based Segmentation
Unet系列Transformer模型(医学图像分割) 结合全局(self-attention) 和 局部(Unet) 的特点,构建分割网络 如何在小样本数据集上,使得分割work,有效训练大参数量的transformer模型 Swin-Unet: Unet-like Pure Transformer for Medical Image Segmentation [Code] 1. Metric: 2. Motivation: Swin transformer 的优点: 解决长序列问题;窗口内Attention + 窗口间信息交互; UNet的优点: 局部信息, ShortCut 3. Main Contributions: Based on Swin Transformer block, we build a symmetric Encoder-Decoder architecture with skip connections. In the encoder, self-attention from local to global is realized; in the decoder, the global features are up-sampled to the input resolution for corresponding pixel-level segmentation prediction. A patch expanding layer is developed to achieve up-sampling and feature dimension increase without using convolution or interpolation operation. It is found in the experiment that skip connection is also effective for Transformer, so a pure Transformer-based U-shaped Encoder-Decoder architecture with skip connection is finally constructed, named Swin-Unet. 4. Model Structure: 5. Take Home Message: 上采样方式patch expanding layer Medical Transformer: Gated Axial-Attention for Medical Image Segmentation [Code] 主流语义分割Transformer模型 SegFormer: Simple and Efficient Design for Semantic Segmentation with Transformers [Code] MaskFormer: Per-Pixel Classification is Not All You Need for Semantic Segmentation [Code]
2021年09月02日
396 阅读
0 评论
0 点赞
2021-06-09
视频时序切分
将视频在时序维度(镜头 + 场景)进行理解, 相关公开数据集和benchmark:SoccerNet-v2、 Kinetics-GEBD、MovieNet ViTT-AACL2020 1. 镜头分割(Shot Boundray Segmentation) 镜头切分benchmark: ClipShots、TRECVID、SoccerNet-v2 1.1 TransNet 1.2 TransNet V2 1.3 DSBD 2. 场景分割(Scene Boundray Segmentation) 2.1 SceneSeg A Local-to-Global Approach to Multi-modal Movie Scene Segmentation [CVPR 2020] 论文简介:提出一个场景切分数据集MovieNet(380个电影),此外提出了一个局部到全局的场景切分算法 Github Code 算法整体流程: 镜头切分,公开的源代码采用了传统方法做镜头切分,可以考虑用深度学习方法做优化,如TransNet等 对每个镜头提取多个模态特征(动作、地点、语音等维度) 进行局部到全局的特征聚合,利用BNet(boundary Network)实现局部的特征融合 a. Clip-level: BNet由两个部分构成: 通过内积建模镜头之间(4个镜头)的差异,通过temporal conv + max pooling建模镜头之间的联系,二者concat b. Segment-level: 通过bi-LSTM实现序列到序列的功能,其中序列长度选取10(远小于镜头数目,为了减少内存消耗) c. global optimal grouping: 通过过动态规划,实现后处理优化(优点:考虑了所有镜头特征,考虑了长时的上下文依赖,缺点: 没有能够实现端到端的优化,与前面的模型时独立的), 具体细节参考StoryGraph 2.2 Shot Type Classification A Unified Framework for Shot Type Classification Based on Subject Centric Lens[ECCV2020] 镜头拍摄风格识别 Deep Relationship Analysis in Video with Multimodal Feature Fusion [ACM MM 2020] 多模态场景理解 2.3 自监督预训练 Shot Contrastive Self-Supervised Learning for Scene Boundary Detection [CVPR2021] Amazon BaSSL: Boundary-aware Self-supervised Learning for Video Scene Segmentation UBoCo : Unsupervised Boundary Contrastive Learning for Generic Event Boundary Detection Scene Consistency Representation Learning for Video Scene Segmentation 3. 事件分割(Event Segmentation) Generic Event Boundary Detection: A Benchmark for Event Segmentation 提出了一种新的边界切分定义,包括: 环境、物体、镜头发生变化。 A Benchmark for Multi-shot Temporal Event Localization Temporal Perceiver: A General Architecture for Arbitrary Boundary Detection Progressive Attention on Multi-Level Dense Difference Maps for Generic Event Boundary Detection
2021年06月09日
854 阅读
1 评论
0 点赞
2020-08-16
Awesome Segmentation
本文对截止到2020年各大顶会的分割论文,包括语义分割,实例分割, 全景分割,视频分割等领域发展进行小结,不定期更新。 Awesome Semantic Segmentation CVPR 2020 StripPooling Strip Pooling: Rethinking Spatial Pooling for Scene Parsing [Paper] [Code] ECCV 2020 Error-Correcting Supervision Semi-Supervised Segmentation based on Error-Correcting Supervision [Paper] Segmentation Failures Detection Synthesize then Compare: Detecting Failures and Anomalies for Semantic Segmentation [Paper] OCRNet Object-Contextual Representations for Semantic Segmentation[Paper] [Code] coarse2fine、attention IFVD Intra-class Feature Variation Distillation for Semantic Segmentation [Paper] [Code] 模型蒸馏 CaC-Netx Learning to Predict Context-adaptive Convolution for Semantic Segmentation[Paper] [[Code]()] 通过预测卷积kernel进行空间attention TGM Tensor Low-Rank Reconstruction for Semantic Segmentation [Paper] [Code] non-local方法的改进 Segfix SegFix: Model-Agnostic Boundary Refinement for Segmentation [Paper] Motivation: 边缘处的点的类别与“内部”的点的类比相似,通过网络学习shift DecoupleSegNets Improving Semantic Segmentation via Decoupled Body and Edge Supervision [Paper] [Code] 将主体和边缘特征分离,多任务学习 EfficientFCN EfficientFCN: Holistically-guided Decoding for Semantic Segmentation [Paper] Motivation: 如何高效率地扩充特征的感受野 算法原理:通过采用减小stride+dilated conv的方式的方式,由于特征分辨率增加导致计算量暴增。文章主要提出一种利用stride=32生成“Codebook”,可以理解为不同patten的特征集合,利用stride=8的特征生成集合的组合系数,实现“上采样” GCSeg Class-wise Dynamic Graph Convolution for Semantic Segmentation [Paper] 图卷积做全局特征提取 CVPR 2019 Fast Interactive Object Annotation with Curve-GCN. [Paper] [Code(pytorch)] 利用Graph Convolutional Network (GCN) 预测多边形的各个端点实现分割标注 Large-scale interactive object segmentation with human annotators. [Paper] 交互式分割 Knowledge Adaptation for Efficient Semantic Segmentation. [Paper] 通过知识蒸馏实现大降采样(分辨率降16倍)的高效率分割 通过autoencoder对Teacher网络的特征进行压缩去噪,用L2损失比较T的编码特征与S的编码特征 两两像素之间的相似性的差异(pair-wise distillation) Structured Knowledge Distillation for Semantic Segmentation. [Paper] 通过知识蒸馏实现高效分割,引入多个约束项 单个像素的损失(Teacher与Student之间逐像素损失,Student与GT之间逐像素损失) Teacher与Student网络中两两像素之间的相似性的差异(pair-wise distillation) 利用判别网络实现约束Embedding的相似性(holistic distillation) FickleNet: Weakly and Semi-supervised Semantic Image Segmentation using Stochastic Inference. [Paper] 图片类别标注(Weakly); 图片类别标注+部分逐像素标注(Semi-supervised) Dual Attention Network for Scene Segmentation. [Paper] [Code(pytorch)] 加入空间上(二阶关系,借鉴Non-Local)和通道上的注意力 [DUpsampling]: Decoders Matter for Semantic Segmentation: Data-Dependent Decoding Enables Flexible Feature Aggregation. [Paper] 基于Encoder-Decoder的算法通常为了避免Encoder的最后一层卷积层空间分辨率过小,Encoder网络的total_stride会尽可能小(多数为8),导致占内存,消耗大量计算资源 该论文提出的DUpsampling,利用分割标注在空间上的冗余性(对标注概率label_prob的压缩,对低分辨率网络输出pred_prob,重建高分辨率标注概率label_prob)提出了一种Data-Dependent的上采样方法,比转置卷积上采样方法参数量少,比双线性插值方法更好。 得益于DUpsampling,可以将特征分辨率将到足够低,并对底层特征进行Downsample,然后与低分辨率高层特征融合,减少计算量 In Defense of Pre-trained ImageNet Architectures for Real-time Semantic Segmentation of Road-driving Images. [Paper] [Code(Pytorch)] 出发点: 实现实时语义分割 轻量化backbone: compact encoders(ResNet18 or MobileNet V2) 轻量化decoder with lateral skip-connections(UNet类似结构) 增大网络的感受野:SPP(PSPNet) 或 结合lateral skip-connections的图像金字塔结构,有利于识别大目标 ECCV 2018 [ICNet]: ICNet for Real-Time Semantic Segmentation on High-Resolution Images. [Paper] [Code(Tensorflow)] PSPNet(~1FPS)的加速版本,能够达到实时,30FPS; Image Cascade Network(ICNet) 为什么不直接在最后一个分辨率下,实现1/16和1/32的降采样,然后多尺度特征图融合(UNet结构),再加上多个尺度上的监督,也就是DeepLabV3+的简化模型版本? [ExFuse]: Enhancing Feature Fusion for Semantic Segmentation(Face++).[Paper] semantic supervision(SS): 在backbone的预训练的过程,在网络的中间层加入多个分类损失,使得中间层带有更多的语义信息 layer rearrangement(LR): 调整backbone中不同block的通道数的分布,使得深层和浅层具有相近的通道数,即丰富底层特征,有利于后续步骤中深层和浅层的融合 explicit channel resolution embedding(ECRE):借鉴超分辨率中的上采样方式(sub-pixel Upsample) semantic embedding branch(SEB): 将不同深层特征进行上采样,然后与浅层特征相乘融合 densely adjacent prediction(DEP): 可以理解为卷积核为$k \times k$固定参数$\frac{1}{k \times k}$的group conv [DeepLabv3+]: Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation. Adaptive Affinity Fields for Semantic Segmentation [PSANet]: Point-wise Spatial Attention Network for Scene Parsing [ESPNet]: Efficient Spatial Pyramid of Dilated Convolutions for Semantic Segmentation [BiSeNet]: Bilateral Segmentation Network for Real-time Semantic Segmentation CVPR 2018 [DFN]: Learning a Discriminative Feature Network for Semantic Segmentation(Face++). [Paper] [Code(tensorflow)] The Lovász-Softmax loss:A tractable surrogate for the optimization of the intersection-over-union measure in neural networks. [Paper] [Code] [EncNet]: Context Encoding for Semantic Segmentation Context Contrasted Feature and Gated Multi-Scale Aggregation for Scene Segmentation DenseASPP for Semantic Segmentation in Street Scenes Dense Decoder Shortcut Connections for Single-Pass Semantic Segmentation Awesome Instance Segmentation Latest YOLACT:Real-time Instance Segmentation. [Paper] CVPR 2020 BlendMask: Top-Down Meets Bottom-Up for Instance Segmentation GITHUB CODE PolarMask: Single Shot Instance Segmentation with Polar Representation GITHUB CODE CVPR 2019 Hybrid Task Cascade for Instance Segmentation. [Paper] [Code(pytorch)] Mask Scoring R-CNN. [Paper] 算法简介:Mask Scoring R-CNN是对Mask-RCNN的改进,文章的出发点在于mask-rcnn采用分类的得分作为检测结果和分割结果与GT重合程度的得分,但是在实际应用中常常出现,分类得分高,但是检测结果和分割结果并不好的问题。为了更准确的评估分割结果的好坏,文章在Mask-RCNN的基础上提出一个MaskIOU分支,该分支以ROI区域的分割Mask和ROIAlign的特征作为输入,预测输出该ROI predicted mask与GT mask 之间的IOU score。结合IOU score 和classification score,判断该ROI输出mask的精确程度 值得借鉴的点: CVPR 2018 Path Aggregation Network for Instance Segmentation. [Paper] [Code(pytorch)] COCO2017 Winner :fire: Masklab: Instance segmentation by refining object detection with semantic and direction features ICCV 2017 Mask R-CNN. [Paper] CVPR 2017 End-to-End Instance Segmentation with Recurrent Attention.[Paper] ECCV 2016 Instance-sensitive fully convolutional networks Awesome Panoptic Segmentation CVPR 2019 Panoptic Segmentation. [Paper] Learning to Fuse Things and Stuff. [Paper] Attention-guided Unified Network for Panoptic Segmentation. Panoptic Feature Pyramid Networks. UPSNet: A Unified Panoptic Segmentation Network DeeperLab: Single-Shot Image Parser An End-to-End Network for Panoptic Segmentation PanopticFusion: Online Volumetric Semantic Mapping at the Level of Stuff and Things Awesome Video Object Segmentation 视频分割 VS 语义图片分割: 相邻帧得到相似的结果(时间冗余度和视觉抖动) VOS Performance(mean region similarity) Algorithm DAVIS(16val/17) YouTube-VOS Youtube-Obj(mIOU) Speed(FPS) RVOS(CVPR19) -/48.0 - - 22.7 STCNN(CVPR19) 83.8/58.7 - 79.6 0.256 FEELOVS(CVPR19) 81.1/- 1.96 SiamMask(CVPR19) 35 FAVOS(CVPR18) -/54.6 - - - OSVOS(CVPR17) 79.8/56.6 - - 0.1~5 MaskTrack(CVPR17) 80.3/- - 71.7 <1.0 OnAVOS(BMVC17) 86.1/- CVPR 2019 RVOS: End-to-End Recurrent Network for Video Object Segmentation. [Paper] [Code(pytorch)] 特点: 多目标视频分割;one-shot and zero-shot VOS spatial(Instance) and temporal(video) Recurrent Netorrk STCNN: Spatiotemporal CNN for Video Object Segmentation. [Paper] [Code(pytorch)] 主要由两个支路构成,Temporal Coherence Branch ,利用GAN进行无监督的预训练(输入前4帧, 预测输出当前帧, 生成器的目标为最小化生成图片与当前帧的MSE和最大化判别器的损失),网络的目的是学习时序的一致性;另外一条支路为Spatial Segmentation Branch,融合当前帧和历史帧的多尺度特征,得到当前帧的预测结果 FEELOVS: Fast End-to-End Embedding Learning for Video Object Segmentation. [Google] [Paper] [Code(tensorflow)] SiamMask: Fast Online Object Tracking and Segmentation: A Unifying Approach. [Paper] [Code(Pytorch)] MHP-VOS: Multiple Hypotheses Propagation for Video Object Segmentation. [Paper] 解决目标被遮挡或消失 Accel: A Corrective Fusion Network for Efficient Semantic Segmentation on Video. [Paper] A Generative Appearance Model for End-To-End Video Object Segmentation. [Paper] [Code(Pytorch)] ECCV 2018 YouTube-VOS: Sequence-to-Sequence Video Object Segmentation. [Paper] [DatasetURL] Video object segmentation with joint re-identification and attention-aware mask propagation CVPR 2018 Motion-guided cascaded refinement network for video object segmentation. FAVOS: Fast and accurate online video object segmentation via tracking parts. Efficient video object segmentation via network modulation. CVPR 2017 OSVOS 可以认为是将语义分割方法适用到视频目标分割最直接的方法,由离线训练二分类网络(物体分割)+在线finetune构成。FusionSeg和MaskTrack用了光流信息和RGB输入图像进行互补,通过在网络的输入中加入传统方法计算的光流。FusionSeg的光流支路进行重新训练,和MaskTrack 直接沿用RGB支路的模型,前者的光流支路结果通过可学习的1*1卷积进行融合,而后者直接将光流支路得到的结果叠加求平均。 OSVOS: One-Shot Video Object Segmentation.[Paper] [Code(pytorch)] [Code(TensorFlow)] 算法流程图:ImageNet预训练+视频分割数据集DAVIS二分类训练+在线测试Finetune 特点:单帧处理,没有累计误差;通过Finetune+物体边缘损失约束,用时间换准确率 FusionSeg: Learning to combine motion and appearance for fully automatic segmentation of generic objects in videos.[Paper] [Code(caffe)] 利用外观信息和运动信息构成two stream结构,实现视频目标分割 利用光流信息和当前帧的图像作为输入,够成two-stream结构,实现信息互补:ResNet101结构;最后采用不同大小的空洞卷积构成多尺度,最后通过逐点求极大值进行多分支结果融合。网络训练通过将不同分支分开单独训练后,再训练最后的融合层(1*1) 为了解决视频目标分割数据集不足的问题,提出利用预训练分割模型(VOC2012)+视频目标检测数据集(ImageNet VID)标注框进行筛选,再后处理得到训练数据,过程如下图: 缺点:光流采用传统方法估计得到,得到的带有噪声的光流输入图像可能使得训练不稳定,且会影响最后的输出结果 MaskTrack: Learning video object segmentation from static images. [Paper] [Code] 利用前一帧预测的mask和当前RGB图像作为输入,mask(t-1)指示了目标的位置,形状大小。训练通过对单张图像进行平移,形变生成训练数据图像对(RGBImg,mask);离线训练(静态图片平移形变生成的数据优于视频数据集,文中采用显著性检测数据集)+在线Finetue;此外可以加入光流信息互补提升性能,将RGB图像用光流图像替代,经过同样的卷积网络,得到输出概率与MaskTrack的输出概率得分进行平均(论文3.3节中) 特点: 速度慢(Finetune+光流计算耗时);前一帧的输入图像可以是粗糙的因此可以用目标检测算法相结合 Others OnAVOS: Online adaptation of convolutional neural networks for video object segmentation. [BMVC17] Awesome Video Instance Segmentation Reference Awesome-Panoptic-Segmentation Awesome Semantic Segmentation InstanceSegmentation 漫谈全景分割 视频分割在移动端的算法进展综述 Segmentation.X Deep-Learning-Semantic-Segmentation 自动驾驶入门日记-5-视频语义分割 ECCV2020 segmentation
2020年08月16日
263 阅读
0 评论
2 点赞
2019-08-09
视频语义分割
1. Overview 如果对视频语义分割采用逐帧进行图像语义分割的方法存在两个问题:1. 逐帧处理没有考虑分割结果的时空一致性,造成视觉上分割结果在边缘上的剧烈抖动;2. 同一视频中的不同帧之间非常相似,用图像分割网络提取特征存在大量的计算冗余。基于这两点视频语义分割目前主要有两个研究方向: 提升精度,利用时序信息提升精度 视频数据生成辅助训练(少量标注); 利用时序视频帧自监督学习时序特征:star: 光流法用于图像/特征/标签的propagation;光流图用于网络输入:star: 在对图像逐帧分割后的refinement操作(后处理):optimization based label propagation(CRF); Filtering based label propagation(e.g. Bilateral filtering) CRF作为深度神经网络中的Layer进行端到端学习 提升速度,对时序上的特征进行重用(同一视频相邻时刻的图像帧的高层语义特征相似),以减少推断时间消耗。具体过程分为两步:先通过视频关键帧选择的策略(固定时间间隔、根据网络输出score判断、强化学习策略等策略),选择少量的视频帧作为关键帧,只在这些帧上进行特征提取(主要耗时操作);对于非关键帧,通过feature propagation(包括naive copy or warping based on optical flow or spatially variant convolution等)方法变换得到,以达到减少计算量的目的 视频处理中常采用的方法(不限于视频语义分割任务): 3D CNN: 用于行为识别,视频预测任务。参数量大 two stream(spatial stream, temporal stream): 将多帧光流和图像帧作为网络输入,两条支路处理 optial flow: 用作图像/语意标签/特征等的变换(双线性插值方法) RNN/LSTM: 长时时序信息传递 2. 主要评测集算法性能对比 source Method cityscapes(mIOU) CamVid(mIOU) time(sec/frame) link CVPR19 Improving Semantic Segmentation via Video Propagation and Label Relaxation 83.5(baseline deeplabv3+: 79.5) 81.7 - Pytorch ICCV17 PEARL: Video Scene Parsing with Predictive Feature Learning :star: 75.4 - 0.8 - CVPR18 Semantic Video Segmentation by Gated Recurrent Flow Propagation :star: 80.6 - 0.7s@512x512(PSP) TF ICCV17 Semantic Video CNNs through Representation Warping 80.5 70.3 3@1024x2048(PSP) Caffe CVPR18 Deep Spatio-Temporal Random Fields for Efficient Video Segmentation - 67/75(cityscape pretrain) 0.08@321x321 - CVPR16 Feature space optimization for semantic video segmentation - 66.1 >10s c++ CVPR17 [Video Propagation Networks(VPN)](CVPR17 Paper [Code(Caffe)):star: - 69.5 0.38 + classifier预测时间 Caffe CVPR19 Accel: A Corrective Fusion Network for Efficient Semantic Segmentation on Video:star: 75.5 69.3 0.87 MXNet CVPR18 DVSNet: Dynamic Video Segmentation Network 70.4 - 0.12 TF CVPR18 Low-Latency Video Semantic Segmentation:star2: 76.8 - 0.17 - CVPR17 DFF: Deep feature flow for video recognition 69.2 - 0.18 MXNet CVPR17 Budget-Aware Deep Semantic Video Segmentation - - 50%计算量/90%准确率 - ECCV16 Clockwork Convnets for Video Semantic Segmentation 64.4 - - Caffe 3. 算法细节介绍 3.1 提升精度方向(7) 3.1.1 视频数据生成辅助训练(2) Improving Semantic Segmentation via Video Propagation and Label Relaxation. CVPR19 算法简介:主要提出了一种通过视频预测进行数据扩充的方法。给定稀疏标注的数据集(每隔一定视频帧数才进行标注,总标注语言标签帧数小于总视频帧数),利用视频帧$I_{1:t+1}$和光流$F_{2:t+1}$得到运动向量(利用3D卷积实现),再结合当前帧$I_{t}$进行插值,输出预测的图像帧$\tilde{I_{t+1}}$,对于语义标签$\tilde{L_{t+1}}$同理,最后将预测得到的图像帧$\tilde{I_{t+1}}$、语义标签$\tilde{L_{t+1}}$加入分割图像训练集辅助训练。此外,为了避免生成的数据在边界上的标签不准确,本文提出Boundary Label Relaxation,即将边界上的像素概率从one-hot编码变成多类别(像素周围区域类别集合)概率和为1的监督信号;该方法最后仍然使用图像语义分割网络DeeplabV3+逐帧处理视频 可以借鉴的点:视频生成用于视频数据训练集扩充;Boundary Label Relaxation改善边界预测问题(在物体边缘的标注不准确引起的问题) PEARL: Video Scene Parsing with Predictive Feature Learning. ICCV2017 算法简介:该方案以历史图像帧预测未来图像帧(Frame Prediction),引导网络学习出时序相关(结构变化,运动变化)的特征。该学习过程利用视频图像帧进行自监督,不需要进行标注,适用于目前视频语义分割数据集匮乏的现状。视频预测任务采用GAN进行实现(生成器的第一层卷积层采用Group conv以适应多帧输入)。为了使得学习到的特征进一步适应语义分割任务,提出了利用历史帧预测未来图像帧的语义标签任务(Predictive Parsing),并采用上一过程中的生成器作为初始化参数。最后通过AdapNet(单层带ReLU的1x1卷积)融合时序信息特征$EN_{PPNet}$和当前帧的特征$EN_{IPNet}$,预测当前帧的分割结果。mIOU结果在cityscape数据集上提升6% 可以借鉴的点:利用历史帧预测当前帧学习到的特征能够挖掘视频中的时序信息,并且该方法不需要人工标注,对于处理视频任务是一种值得借鉴的预训练方法,隐式地将时序信息(运动信息/外观信息)集成在特征上 3.1.2 光流法(feature propagation)(2) 方法 优点 缺点 光流法(a) 可以用于大位移预测 受限于光流估计算法的精度,光流估计错误会出现累计误差;双线性插值的方法只考虑四个点,容易受到噪声影响;对于遮挡部分在下一帧出现的情况,遮挡部位的光流向量未定义造成错误 predicted sampling kernel(b) 变换时能够很好地保证物体形状的一致性(边缘预测准确) 由于所预测的位移范围与kernel尺寸相关,所以该方法不能处理大位移,否则大位移时需要大量显存 spatially-displaced convolution(c) 结合二者特点,能够在小kenel size的情况下预测大位移,节省计算资源 - 光流法的问题: 被遮挡部分再次出现问题 Semantic Video CNNs through Representation Warping. ICCV17 算法特点:本方案的基本思想是通过光流对前一帧图像的卷积特征进行warp操作,通过双线性插值方法得到与当前图像帧特征在空间上对齐的特征,然后将二者进行线性加权叠加。这里光流的计算采用DISFlow(5ms@CPU,原始光流)+FlowCNN(输入原始光流和图像对,输出refined的光流估计,通过语义分割标签图进行监督学习) 可以借鉴的点: 相比较于视频逐帧图像分割流程,该方法引入了历史帧特征提升性能,并且只增加了少量计算量(光流计算和双线性插值操作); 该算法只用到了两帧之间的光流,即只考虑了极短时间内图像的变化,结合多帧进行长时间和短时间的图像特征融合可以考虑作为改进的方向 光流法:目前现有视频语义分割文献中光流估计以FlowNet2网络为主流(300 ms/frame),考虑到效率时使用其它非深度网络方法 Semantic Video Segmentation by Gated Recurrent Flow Propagation. CVPR18 算法简介:通过光流法进行插值的方法得到的结果不总是可靠,例如被遮挡物体在下一帧重新出现的情况,被遮挡区域处的光流值是不定的,因为前后帧之间找不到对应点。本文采用GRU(Gated Recueeent Unit, LSTM的变种)门限思想,对于不准确的光流估计,通过Gate限制信息流动。光流估计的准确性通过$I_{t}$和$\hat{I_{t}}$(利用$I_{t-1}$和计算的光流结果wrap得到)之间的差值判断。与Netwrap不同光流插值方式不同,STGRU不对CNN的中间特征变换,而是直接对历史帧预测的语义分割概率$h_{t-1}$进行warp。利用光流网络(FlowNet)将前一帧预测的语义分割概率$h_{t-1}$与当前帧对齐得到$w_t$,结合当前帧语义分割结果$x_t$作为GRU的输入,最后得到当前帧的输出类别概率估计。 可以借鉴的点: 对光流估计进行置信度估计,避免不准确的光流估计对结果造成影响。 3.1.3 CRF(2) Deep Spatio-Temporal Random Fields for Efficient Video Segmentation. CVPR18 算法简介:将CRF作为深度神经网络中的一层,参与前向反向传播,区别于3D-CRF;用线性方程解替代平均场近似; 可以借鉴的点:CRF参与网络端到端训练,在性能和速度上均优于CRF后处理的方法。 Feature space optimization for semantic video segmentation. CVPR16 算法简介:将2D-CRF(特征维度: 位置,颜色)扩展成3D-CRF(特征维度: 位置,颜色,时刻),论文主要贡献在于对CRF中的特征空间选择(难点: 特征空间上,同一时刻的同一物体和不同时刻的同一个物体内的点的在特征空间上应该是邻近的,但是由于遮挡、摄像头运动等原因难以满足要求) 可以借鉴的点:: 对语义分割网络逐帧处理结果的后处理操作,该算法比较耗时(10秒/帧),不适合大规模数据处理 3.1.4 Filtering based propagation(1) Video Propagation Networks. CVPR17 Paper 算法简介: 文章提出一种双边滤波器网络对逐帧处理得到的分割结果进行refine的方法Video Propagation Networks(VPN,可以理解为图像语义分割在时间维度上的后处理操作,在时间维度上的平滑滤波)。VPN由双边滤波器网络(Bilateral Network)和常规卷积网络(Spatial Network)构成。VPN以当前帧之前的历史帧的分割结果$O_{t-T:t-1}$和历史帧图像$I_{t-T:t}$为输入,输出当前帧的预测结果$O_{t}$。狭义的双边滤波器采用高斯核函数和位置颜色(x,y,r,g,b)作为特征,本文采用可学习的滤波器组和位置颜色时间(x,y,r,g,b,t)作为特征。本文利用permutohedral lattice(一种对双边滤波的加速方法,可进行反向传播)双边滤波器网络进行加速。 可以借鉴的点:该方法属于后处理操作,任意的视频分割方法均可采用该方法进行结果提升。基于双边滤波的后处理方法相比较于基于优化的方法(CRF)而言,具有速度快的优势。缺点是网络的输入为分割网络的输出结果,不能进行端到端学习。 狭义上的双边滤波器(边缘保持滤波器):滤波器参数由空间域和像素域的核函数乘积构成。在平坦区域,不同位置像素域数值接近,主要由空间核函数作用;在边缘区域,不同位置像素值差别大,主要由像素域核函数起作用,所以起到了保留边缘的平滑滤波器效果。 3.2 提升速度方向(6) 提升速度方向的文章,算法流程基本分两步: 确定关键帧,并在关键帧上利用深度网络计算特征 利用特征传递的方法,将关键帧特征变换到当前需要处理的视频帧上,再输出当前帧分割结果 视频语义分割算法的主要耗时在步骤1中的深度网络特征提取,提升速度方向的算法通过高效的特征传递方法减少特征提取计算量 Accel: A Corrective Fusion Network for Efficient Semantic Segmentation on Video. CVPR19 算法简介:每隔几帧,从视频中选择关键帧。关键帧的卷积网络特征(高准确率的特征网络)在一定的时间间隔内通过光流进行特征的重利用,与当前帧的卷积特征(Update Branch,轻量级特征网络)进行融合,输出当前帧的预测结果; 与DFF的区别在于,Accel进行了关键帧特征在一段时间内的累积wrap,而DFF直接从关键帧特征wrap到当前帧。 可以借鉴的点: 针对任务的要求(效率 vs 准确率),可以模块化定制选择不同Update feat特征网络;关键帧特征在多帧间逐步变换 DFF: Deep feature flow for video recognition. CVPR17 算法简介:每隔几帧,从视频中选择关键帧。利用关键帧特征和光流进行特征重用,避免对当前帧进行特征提取。特征传递不是逐帧依次累计进行,而是直接计算关键帧,和当前帧的光流进行变换。 可以借鉴的点: 算法丢弃了对当前帧进行特征提取,而是直接由关键帧特征变换得到。在视频内容变化快的情况下,会忽略当前视频帧中的细节,因此适用于场景变化慢、细节变化小的场景。 Low-Latency Video Semantic Segmentation. CVPR18 算法简介:文章主要有两个贡献点: 1. 特征传递 ;2.基于预测图像差异的关键帧选择策略。1.关键帧选择策略:以关键帧和当前帧低层卷积特征之差为输入,预测图像的差异来决定是否更新关键帧(gt为语义标注的差异)。 2.特征传递:为了能够减少计算当前图像帧的高层卷积特征,采用spatially variant convolution(自适应空间卷积,每一个位置的卷积权重不同,且卷积权重通过网络预测得到)将关键帧的高层卷积特征propagate到当前帧 可以借鉴的点::提出一种不同于光流法的特征传递方法,较光流法的优点在于具有空间的约束先验(关键帧中某一物体在当前帧的对应位置的固定邻域范围内,具有空间上的约束); 缺点是不能用于快速运动,运动范围受限于预测卷积kernel的大小,而kernel过大会导致过高的显存消耗 DVSNet: Dynamic Video Segmentation Network. CVPR18 算法简介:文章的主要出发点是视频中的图像帧,不同图像区域随着时间的变化,图像区域变化的程度不同。首先将图片划分成多个区域,再利用关键帧和当前帧的特征传递思想,对于变化慢的区域可以采用光流wrap关键帧对应区域的分割结果(小模型,速度快)得到当前帧中该区域的预测结果;对于变化区域快的区域可以直接通过分割网络(大模型,慢)得到该区域的预测结果。为了能够评估区域变化的快慢,采用Decision network(输入为光流网络特征,回归wraped语义结果图与GT之间的相似度)进行对光流法wrap操作准确性的估计。如果估计得分高,选择spatial warping path,否则选择segmentation path。 可以借鉴的点:相比较于逐帧处理,速度提升大(约10倍,直接wrap预测结果而不是卷积网络的中间特征层),效果变差明显(mIOU下降7%),适用于视频中不同区域内容变化差异大的场景。 Budget-Aware Deep Semantic Video Segmentation. CVPR17 算法简介: 本文通过只计算关键帧图像分割概率,非关键帧通过单层卷积求得(输出最邻近关键帧与非关键帧的图像差分和关键帧的分割概率,输出非关键帧的预测概率结果),其中关键帧的选择通过强化学习进行决策 可以借鉴的点:在对计算资源有严格的限制的情况下适用 Clockwork Convnets for Video Semantic Segmentation. ECCV16 算法简介:直接复制特征(卷积网络深层特征在一段时间间隔内的特征复用),简单粗暴,牺牲精度换效率 可以借鉴的点: 为了提升速度牺牲了过多精度,不推荐 4. 结论 4.1 改进设计原则 利用现实应用场景视频进行自监督的预训练(特征提取),学习时序信息(物体外形变化/运动变化)和适应现实场景 利用光流/spatially-displaced convolution等方法进行特征传递,融合两帧或多帧/长时(LSTM)特征。将任务分为特征提取backbone和任务相关的分支,对backbone进行特征传递,可以适用于所有的视频相关任务。 对光流估计进行置信度判断(类似MaskScore RCNN的思想,利用预测结果和特征输出得分),Gated限制噪声特征的传递(光流估计不准确,视频镜头切换等情况) 判断关键帧,用作加速(可选) Reference 知乎文章 视频语义分割介绍
2019年08月09日
313 阅读
0 评论
0 点赞
2019-06-01
光流法到FlowNet
1. 光流法 首先,简单回顾下什么是光流估计。对于相邻的前后两帧图像x和y, 光流估计的目标是估计出y中每个像素点与在图像x上对应点的偏移量。我们讨论的是二维图像,所以这里的对于每个像素的偏移量由大小和方向表示。 如上图所示,左下角估计出的光流图像,色调表示偏移量的方向,色调的强度代表偏移量的大小。传统的光流估计法以LK光流法为代表, LK光流法主要由三个假设和利用最小二乘法求解每个像素点的偏移量(大小和方向)构成。其中三个假设为: 亮度恒定(建立等式) 相邻帧为小位移(能够进行泰勒级数展开) 局部小块具有运动一致性(每个像素点存在两个变量,但只有一个方程,所以需要假设多个像素点的偏移量一致,联立多个方程进行最小二乘法求解一致的偏移量) 具体公式见维基百科LK光流法
2019年06月01日
387 阅读
0 评论
2 点赞
2016-09-01
Handcraft features
Take-Home Message LBP 不受光照影响,运算快,适用在人脸 SIFT是基于关键点的特征描述,具有旋转、尺度、光照不变性(常用欧式距离比较距离做匹配) HOG 是基于块的梯度直方图特征描述,适用在人体检测(常作为分类器输入特征)
2016年09月01日
141 阅读
0 评论
0 点赞
粤ICP备2021042327号