#VideoMAE

搬来了训练出首个十亿参数量视频自监督大模型!VideoMAE V2: 可扩展的视频基础模型预训练范式,一种简单有效的方法,在百万级的预训练数据集上

VideoMAE V2: Scaling Video Masked Autoencoders with Dual Masking。

此项工作由南京大学,上海人工智能实验室和中科院联合完成。

论文链接:https://arxiv.org/abs/2303.16727  代码即将开源。

在大规模数据上进行大基础模型的预训练,逐渐成为学习通用表征的成功范式,这已经在多种数据模态(如语言、音频、图像、视频、视觉语言)上得到验证。通过零样本识别(zero-shot recognition)、线性探针(linear probe)、提示微调(prompt finetune)、微调(fine-tuning)等手段,这些基础模型可以被广泛应用到各种下游任务中。与针对单一任务的专用模型相比,它们表现出很强的泛化性,有力地推动了许多 AI 领域的发展。

在视觉领域,有很多工作致力于发展预训练模型。其中,采用掩码自编码方法预训练的 Transformer 模型正受到越来越多的关注,作为一种自监督视觉学习器,它在概念上简单却十分有效。NLP 的一些研究表明,增大模型容量和训练数据规模,是实现性能跃升的重要途径。但由于图像数据维数高,计算开销大,只有极少数工作将掩码自编码预训练的图像模型扩展到十亿参数量级。视频有额外的时序维度和极高的时序冗余性,其计算开销更甚于图像,这阻滞了掩码自编码预训练方法在视频领域的可扩展性研究。

建立在语言和图像领域富有前景的发现之上,本文旨在研究视频掩码自编码器(VideoMAE)的可扩展性,并推动其在多种视频下游任务上的性能极限。为实现这一目的,我们从模型尺寸和数据规模两方面对 VideoMAE 进行扩展。在模型尺寸上,我们用十亿参数级别的 Vision Transformer(如 ViT-g)实例化 VideoMAE;在数据规模上,我们将预训练数据增加到百万量级,以充分释放 ViT-g 的性能。然而,为了成功地在如此大规模的数据集上训练十亿参数级别的视频模型,并在各种视频下游任务上实现显著的性能提升,仍有一些问题亟需解决,包括:1)扩展 VideoMAE 会导致高昂的计算开销和显存占用,在现有硬件上难以承受;2)掩码自编码预训练方法依然需要大量数据来减小训练大模型时的过拟合风险,但已有的公开视频数据集比较小;3)如何充分释放十亿参数级别的预训练大模型的性能。

基于上述分析,我们提出了一种在百万视频片段的预训练数据集上,将 VideoMAE 扩展到十亿参数量级的简单有效的方法。技术上,我们设计了一种双重掩码策略,基于视频数据冗余性的先验,同时遮蔽编码器和解码器的输入标记。训练策略上,我们遵循中间微调方法,采用渐进的训练范式,在百万级无标签多源混合视频数据集上进行视频掩码预训练,然后在带标签混合视频数据集上进行后预训练微调。这些核心设计和方法构建了一个高效的十亿参数量级的视频自编码框架,称为 VideoMAE V2。在这个框架内,_我们成功训练出了第一个具有十亿参数的 Video Transformer 基础模型_,它在动作识别、时空动作检测、时序动作检测等多种下游任务上取得了领先的性能。

视觉基础模型(Vision foundation models): 基础模型指的是在大规模数据上预训练,并可适用于各类下游任务的强大模型。早期的视觉基础模型工作通常使用带标签的大规模数据集,例如 ImageNet, JFT 等,对 CNN 或 Transformer 结构的模型进行有监督训练。最近一些工作也尝试用对比学习(contrastive learning)或者连体学习(siamese learning)的范式进行无监督预训练。借鉴 NLP 领域的成功经验,掩码自编码(masked autoencoding)也被引入到图像基础模型的自监督预训练中,相关的工作如 BEiT, SimMIM 和 MAE 等。另外还有一类视觉语言预训练模型,例如 CLIP 和 ALIGN,通过在网络规模的带噪样本上学习图像和文本的对齐完成训练。与图像基础模型相比,视频基础模型的发展相对滞后。早期的视频模型通常在 Kinetics 数据集上进行有监督预训练。最近一些工作将图像掩码建模的方法拓展为视频掩码建模,训练出了一些新的视频模型。然而,这些模型在预训练数据规模和模型尺寸上比较受限,通常也只关注动作识别,忽视了其他视频下游任务的研究。

掩码视觉建模(Masked visual modeling): 早期的研究将掩码建模视作一类去噪自编码器或者内容修复工作。受 NLP 的启发,iGPT 将图像转变为像素序列,预测被遮掩的像素序列。ViT 也初步探索了掩码标记建模(masked token prediction)在自监督预训练中的应用。近来,基于 Transformer 模型的掩模视觉建模方法的研究激增:BEiT、BEVT 和 VIMPAC 预测离散标记,MAE 和 SimMIM 恢复被遮掩的像素,MaskFeat 重建被遮掩的 HOG 特征。VideoMAE 和 MAE-ST 将 MAE 扩展到视频领域进行自监督视频预训练,在动作识别任务上取得了很好的结果。

视觉模型扩展(Vision model scaling): 许多工作试图扩展 CNN 模型以提高识别精度。EfficientNet 提出了一种平衡深度、宽度和图像输入分辨率的扩展策略。还有一些工作扩展模型容量和训练数据规模,训练出具有优异性能的更大的 CNN。最近也出现了基于 Transformer 的模型扩展工作,如在 JFT-3B 或者 IN-22K-ext-70M 等大规模数据集上,进行有监督预训练或自监督预训练,将 vision transformer 模型扩展到十亿参数量级以上。MAE-ST 也基于掩码自编码方法,在包含百万视频片段的 IG-uncurated 数据集上完成了自监督预训练,但并未在 Kinetics 上获得性能优势。

w~视觉~合集19_视觉

采用双重掩码策略的 VideoMAE

VideoMAE V2 是 VideoMAE 的可扩展性研究,其整体框架如上图所示。VideoMAE 的预备知识可参考相关论文、代码,作者此前也有介绍(https://zhuanlan.zhihu.com/p/575573336)。下面说明本文采用的双重掩码设计,扩展方案和渐进式训练范式。

双重掩码

w~视觉~合集19_视觉_02

VideoMAE 的解码器相对低效,因为它需要重建输入视频片段中的所有像素。而最近的一项工作 MAR 发现,只使用部分的视频标记进行训练和推理,就可以达到和全部标记相近的性能。这启发我们思考重建目标的冗余性问题,尝试只重建部分的视频立方块。为保持 VideoMAE 的预训练性能,我们需要为解码器掩码图选择恰当的掩码策略。编码器选择高掩码率的管道掩码策略,从而缓解时序相关性导致的“信息泄露”问题。与之相反,在解码器掩码策略中,我们需要鼓励“信息互补”,即_选择尽可能多样化的立方块重建,以减少该过程中的监督信号损失_。我们比较了不同的掩码策略,最终选择运动单元掩码策略(running cell masking)。更多细节参照实验部分。

扩展方案

  • 模型尺寸

我们选择 ViT-g/14 作为编码器骨干网络,解码器的深度和宽度则分别控制在 4 和 512 以减少计算开销,具体结构如下所示:

w~视觉~合集19_视觉_03

VideoMAE V2-g 框架细节

  • 数据规模

VideoMAE V2 旨在训练出一个更加通用的视频基础模型,能够泛化到不同的下游任务中。为了让模型更好地学到通用表征,我们增加了预训练视频数据的规模和多样性。具体来说,我们混合网络、YouTube、Instagram、电影、人工拍摄等不同来源的视频数据,构建出了一个包含 135 万视频片段的无标签多源数据集。值得说明的是,这是_首次在如此大规模且多样化的视频数据集上对 video transformer 模型进行预训练_。数据集的具体构成如下,更多细节可参考论文。

w~视觉~合集19_视觉_04

无标签多源混合数据集的构成

渐进式训练

为了让预训练的 video transformer 模型更好地适应下游任务,需要确定一个合适的迁移方案。掩码自编码预训练能让模型学到某些不变性特征,为模型的参数空间提供一个有利的初始化,但模型也需要更高语义的监督来释放性能。原始的 VideoMAE 只在对应数据集上微调模型,监督信号比较受限。这种直接迁移策略可能无法充分释放大型预训练 video transformer 模型的性能。因此,我们遵循中间微调方法,采用了一种渐进式的训练范式,降低模型过拟合风险的同时,充分释放其潜在性能。

首先,我们在无标签多源视频数据集上进行自监督预训练(Pre-training);然后,我们合并多个公开的带标签监督视频数据集来建立一个带标签的混合数据集,并在该数据集上对模型进行有监督的后预训练微调(Post-pre-training)阶段,以融入多源的高维语义;最后,我们在目标数据集上进行专门微调(Specific Fine-tuning),使模型迁移到以该任务为中心的知识域中。

实验结果

主要结果

  • 双重掩码

w~视觉~合集19_视觉_05

解码器掩码策略消融实验。None 即原始 VideoMAE,不做解码器掩码;1 在所有需要重建的 tokens 上计算损失;2 只在对编码器不可见的需重建 tokens 上计算损失

VideoMAE V2 尝试了随机掩码,帧掩码,运动单元掩码等策略。随机掩码不区分视频块的时空位置,随机选取部分视频块进行重建;帧掩码只重建奇数帧或偶数帧;运动单元掩码由 MAR 提出,按照空间位置将视频划分为不同单元,以固定的模式在不同时间点选取每个单元的不同视频块重建。如上表所示,采用运动单元掩码策略并只重建编码器不可见的视频块时,即使掩码比率提高到 75%,VideoMAE V2 也始终能保持优异的性能。

w~视觉~合集19_视觉_06

双重掩码和单编码器掩码的对比。1 根据若干 epoch 的训练时长估计的总训练时长

对比发现,双重掩码策略可以进一步降低原始 VideoMAE 非对称框架的训练开销,节省接近一半的显存占用,这也使模型能以更大的 batch size 进行预训练。

  • 扩展实验

w~视觉~合集19_视觉_07

Something-Something V2 上的结果

我们在 Kinetics 400 和 Something-Something V2 上进行了实验,通过直接在目标数据集上微调来探究数据规模和模型尺寸的扩展对模型预训练的影响,结果如上所示。

数据规模:我们对所有骨干网络进行了比较,并发现在大规模多源数据集上预训练的 VideoMAE V2 相比于小规模数据集上预训练的原始 VideoMAE,展现出更高的性能。随着模型尺寸的增大,两者之间的性能差异越来越明显。在 SSv2 数据集上,ViT-H 模型的性能差距达到 2%,这突显了预训练数据规模的重要性。此外,与 MAE-ST 在百万级的 IG-uncurated 上预训练的 ViT-L 模型相比,VideoMAE V2-L 在 K400 上的性能高出 1%。这表明,训练数据的质量和多样性可能是影响模型性能的另一个重要因素。

模型尺寸:我们比较了以 ViT-B、ViT-L、ViT-H 和 ViT-g 作为骨干网络时,模型尺寸对性能的影响。结果显示,随着模型从 ViT-B 扩展到 ViT-g,性能稳步提高,展现出掩码自编码方法的可扩展性。其中,从 ViT-B 到 ViT-L 的性能提升显著,但从 ViT-L 到 ViT-H 的性能提升幅度则较小。虽然模型进一步扩展到 ViT-g 后性能有所提高,但提升幅度只有 0.3% 以内。我们注意到,在图像领域中,ViT-H 和 ViT-g 的性能差距也非常小(0.1%~0.2%),这与我们的实验结果一致。我们分析认为,在不使用额外的有监督数据集的情况下,K400 的性能似乎在 87.0% 左右饱和,SSv2 的性能在 77.0% 左右饱和。

  • 渐进式训练

w~视觉~合集19_视觉_08

渐进式训练的研究

我们研究了渐进式训练范式中后预训练微调(Post-pre-training)的影响。为了将更多的人类监督融入到预训练模型中并降低过拟合风险,VideoMAE V2 合并不同版本的 Kinetics 数据集,并在该带标签混合数据集上进行后预训练微调(或称中间微调)。不同模型的 K400 微调性能详见上表。我们观察到,后预训练微调能够显著提升大规模数据预训练模型的性能,这一现象与图像领域中的研究结果一致。此外,我们也将后预训练微调手段应用在小规模数据预训练的原始 VideoMAE 上,结果显示 VideoMAE V2-H 模型的精度比原始模型高 0.5%,这也说明了大规模无监督数据预训练的重要性。采用 ViT-H 作为骨干网络,VideoMAE V2 模型在中间微调后的性能比 MAE-ST 高 1.8%。这一性能优势可能归功于更大的无监督预训练数据集和更大的中间微调数据集。尽管我们也在 SSv2 上进行了后预训练微调的实验,但结果表明这会导致微调精度下降。

性能表现


  • 动作识别
  • w~视觉~合集19_视觉_09

  • 动作识别任务结果
    VideoMAE V2 在 Kinetics-400/600, Something-Something V1/V2, UCF101, HMDB51 等数据集上测试动作识别性能。

  • 时空动作检测
  • w~视觉~合集19_视觉_10

  • 时空动作检测结果
    VideoMAE V2-g 在 AVA,AVA-Kinetics 等数据集上测试时空动作检测性能。我们采用双阶段方案,人物框由人检测器单独给出,训练时采用真实框,测试时采用由 AIA 检测的人物框,具体流程与原始 VideoMAE 一致。
  • 时序动作检测
    时序动作检测结果
    VideoMAE V2-g 在 THUMOS14,FineAction 等数据集上测试时序动作检测性能。我们采用 ActionFormer 的框架进行训练和测试。训练时我们固定最大输入序列长度,测试时使用 Soft-NMS 筛去高度重叠的候选位置。

模型蒸馏

w~视觉~合集19_视觉_11

蒸馏实验结果 

我们将 VideoMAE V2-g 蒸馏到 ViT-B 模型中,如上表所示,蒸馏后的学生模型表现出优异的性能。具体来说,我们用 VideoMAE V2-B 初始化学生 ViT-B 模型的参数,以 VideoMAE V2-g 作为教师模型(此处的 VideoMAE V2 模型都是后预训练微调阶段后的模型);接着在混合带标签数据集 K710 上进行 100 轮次的蒸馏实验,最小化教师模型和学生模型输出 logits 的 KL 散度。

总结

本文提出了一种简单有效的方法,在百万级的预训练数据集上,成功将 VideoMAE 扩展到十亿参数量级的模型。我们的工作表明,视频掩码自编码器是一种可用于视频理解的通用可扩展的表示学习器。希望我们的工作可以在未来给更多的视频理解任务提供良好的表征。

尽管 VideoMAE V2 在很多任务上的结果都比较出色,我们也发现从 ViT-H 扩展为 ViT-g 时,模型在一些测试基准上的性能提升比较小。部分原因可能是这些视频基准的结果已经饱和。但另一方面,V2 的训练数据规模依然比图像和 NLP 的大规模预训练数据集小几个数量级。如何更进一步在十亿级视频数据集上完成预训练,是一项十分重要且极具挑战性的任务,这需要更加高效的视频预训练框架。希望本文可以启发扩展视频模型预训练的相关后续工作。





#MobileOne

在这提出一种在移动设备上部署友好的神经网络模型 MobileOne。在 ImageNet 上达到 top-1 精度 75.9% 的情况下,在 iPhone12 上的推理时间低于 1 ms。并可以推广到多个任务:图像分类、对象检测和语义分割 

本文提出一种在移动设备上部署友好的神经网络模型 MobileOne。本文识别并分析了最近一些高效的神经网络的架构和优化的瓶颈,并提供了缓解这些瓶颈的方法。最终设计出来一个高效的 Backbone 模型 MobileOne,在 ImageNet 上达到 top-1 精度 75.9% 的情况下,在 iPhone12 上的推理时间低于 1 ms。MobileOne 是一种在端侧设备上很高效的架构。而且,与部署在移动设备上的现有高效架构相比,MobileOne 可以推广到多个任务:图像分类、对象检测和语义分割,在延迟和准确性方面有显著改进。

因为在推理的时候 MobileOne 是一个直筒型的架构,这种结构导致更低的内存访问成本,因此 MobileOne 的宽度可以适当增加。例如,MobileOne-S1 参数为 4.8M,时延为 0.89ms,而 MobileNet-V2 参数为 3.4M,但是时延却涨到了 0.98ms。而且,MobileOne 的 top-1 精度比 MobileNet-V2 高 3.9%。

w~视觉~合集19_视觉_12

图1:MobileOne 的精度和延时比较

MobileOne:1ms 推理延时的移动端视觉架构

论文名称:An Improved One millisecond Mobile Backbone (CVPR 2023)

论文地址:

https://arxiv.org/pdf/2206.04040.pdf

针对移动设备的高效深度学习架构的设计和部署的方向之一是在提高精度的同时不断减少浮点运算量 (FLOPs) 和参数量 (Params)。但是这两个指标和模型具体的延时 (Latency) 的关系却不那么明朗。

比如说 FLOPs,相同 FLOPs 的两个模型,它们的延时可能会差出很远来。因为 FLOPs 只考虑模型总的计算量,而不考虑内存访问成本 (memory access cost, MAC) 和并行度 (degree of parallelism)[1]。

  1. 对于 MAC 而言,Add 或 Concat 所需的计算可以忽略不计,但是 MAC 却不能忽略。而 Add 或 Concat 并不占用计算量啊。由此可见,在相同的 FLOPs 下,MAC 大的模型将具有更大的延时。
  2. 对于并行度而言,在相同的 FLOPs 下,具有高并行度的模型可能比另一个具有低并行度的模型快得多。在 ShuffleNet V2[2] 中作者报告说碎片操作符的数量越多,对于高并行计算能力的设备 (如 GPU) 不友好,并引入了额外的开销,如内核启动和同步。相比而言,Inception 架构有多分支,而 VGG 类的直筒架构是单分支的。

再比如说 Params,相同 Params 的两个模型,它们的延时也不会完全一致。

  1. 对于 MAC 而言,Add 或 Concat 所需的参数是零,但是 MAC 却不能忽略。所以在相同的 Params 下,MAC 大的模型将具有更大的延时。
  2. 当模型使用共享参数时,会带来更高的 FLOPS,但是同时 Params 会降低。

因此,本文的目标是设计实际设备上面 Latency 较低的神经网络。测试的方法是使用 CoreML[3] 这个工具在 iPhone12 上测试 Latency。小模型的优化问题是另一个瓶颈,针对这个问题作者希望借助 RepVGG[4] 里面的结构重参数化技术的帮助。作者通过在整个训练过程中动态放松正则化来进一步缓解优化瓶颈,以防止小模型的过度正则化而导致的欠拟合问题。具体而言,本文设计了一个新的架构 MobileOne,其变体在 iPhone12 上运行不到 1ms,实现了很高的精度,同时在实际设备上运行得更快。

轻量化指标 Params,FLOPs,和 Latency 的相关性

作者首先评估了轻量化指标 Params,FLOPs,和 Latency 的相关性。具体来讲作者开发了一个 iOS 应用程序来测量 iPhone12 上 ONNX 模型的延迟,模型转换的工具包使用的是 CoreML[3] 这个包。

如下图2所示是延迟与 FLOPs 以及延迟与 Params 的关系。可以观察到许多具有较高 Params 的模型具有较低的延迟,FLOPs 和延迟之间也具有相似的关系。作者还估计了 Spearman rank correlation,如下图3所示。可以发现,对于移动设备上的高效架构,延迟与 FLOPs 中度相关,与 Params 弱相关。这种相关性在 CPU 上甚至更低。

w~视觉~合集19_视觉_13

图3:FLOPs 和 Params 和 Latency 之间的斯皮尔曼相关系数

延时的瓶颈在哪里

激活函数

为了分析激活函数对延迟的影响,作者构建了一个30层卷积神经网络,并在 iPhone12 上使用不同的激活函数对其进行了基准测试。结果如下图4所示,可以看到延迟有很大的不同。简单的 ReLU 激活函数的延时成本最低。复杂的激活函数可能由于同步成本的原因,造成了较高的延时成本。在未来,这些激活可以被硬件加速。因此 MobileOne 中只使用 ReLU 作为激活函数。

w~视觉~合集19_视觉_14

 图4:不同激活函数的延时比较

内存访问成本 (memory access cost, MAC) 和并行度 (degree of parallelism)[1]

如上文所述,在多分支架构中,内存访问成本显著增加。因为每个分支的激活必须被存储起来,以计算图中的下一个张量。如果网络的分支数量较少,则可以避免这种内存瓶颈。为了演示 MAC 等隐藏成本带来的影响,作者在30层卷积神经网络中使用 skip connections 和 squeeze-excite 块进行消融实验。从图5的结果中可以看到,这些东西都会带来 Latency 的提升。因此,我们在推理时采用了无分支的架构,从而减少了内存访问成本。

w~视觉~合集19_视觉_15

 图5:SE 块和跳跃连接对于 Latency 的影响

MobileOne Block 架构

首先,MobileOne 的 Basic Block 是按照 MobileNet-V1[5]来设计的,采用的基本架构是 3x3 depthwise convolution + 1x1 pointwise convolution。

在训练的时候,MobileOne 使用结构重参数化技术,在训练时给 3x3 Depthwise Convolution 加上几个并行的分支,给 1x1 Pointwise Convolution 也加上几个并行的分支,如下图6所示。但是,和 RepVGG 不同的是:

RepVGG 在训练时给 3x3 Convolution 加上:1x1 convolution 和只有 BN 的 Shortcut 分支。

w~视觉~合集19_视觉_16

图6:MobileOne 架构

在推理的时候,MobileOne 模型没有任何分支,是一个直筒型的架构。结构重参数化的具体做法和 RepVGG 一致,都是先把 BN "吸" 到前面的卷积中,再合并平行的卷积的参数。

w~视觉~合集19_视觉_17

图8:是否使用结构重参数化的影响

MobileOne 架构

如下图9所示是 MobileOne 的具体架构参数。设计的一般原则是在模型的浅层使用较少的 Blocks,深层则堆叠较多的 Blocks,因为浅层输入分辨率较大,使得整个模型的延时增加。

因为 MobileOne 模型在推理时没有多分支架构,因此不会产生数据移动成本,换句话讲节约了延时。所以,在设计模型时可以在不产生显著的 Latency 成本的情况下,使用更多的参数量。

w~视觉~合集19_视觉_18

图9:MobileOne 架构作者在保持所有其他参数不变的情况下消融了各种训练策略。可以看到,对 Weight decay 系数进行退火后得到0.5% 的精度提升。

w~视觉~合集19_视觉_19

图10:训练策略的消融实验

实验结果

图像分类实验结果

ImageNet-1K 上面的图像分类实验结果如下图11所示。可以看到,目前最先进的 MobileFormer 的 top-1 精度为79.3%,延迟为 70.76ms,而 MobileOne-S4 的准确率为 79.4%,延迟仅为 1.86ms,移动端速度快了38倍。MobileOne-S3 的 top-1 精度比 EfficientNet-B0 高 1%,移动端速度快了11倍。

w~视觉~合集19_视觉_20

w~视觉~合集19_视觉_21

 图11:图像分类实验结果MobileOne 作为端侧的小模型,除了图像分类之外,还在下游任务上面做了实验,结果如下图12所示。

w~视觉~合集19_视觉_22

图12:下游任务实验结果

COCO 目标检测实验结果

使用 ImageNet-1K 上预训练的 Backbone,加上 SSDLite 作为检测头。在 MS COCO 数据集上进行训练。输入分辨率设置 320×320,模型训练200个 Epochs。MobileOne 的最佳模型比 MNASNet 高出 27.8%,比 MobileViT 的最佳版本高出 6.1%。

Pascal VOC 和 ADE20K 语义分割实验结果

使用 ImageNet-1K 上预训练的 Backbone,加上 Deeplab V3 作为分割头。在 Pascal VOC 和 ADE20K 数据集上进行训练。对于 VOC 数据集,MobileOne 比 Mobile ViT 高出 1.3%,比 MobileNetV2 高出 5.8%。对于 ADE20K 数据集,MobileOne 比 MobilenetV2 高出 12.0%。使用更小的 MobileOne-S1,仍然高出 2.9%。

总结

MobileOne 是一种借助了结构重参数化技术的,在端侧设备上很高效的视觉骨干架构。而且,与部署在移动设备上的现有高效架构相比,MobileOne 可以推广到多个任务:图像分类、对象检测和语义分割,在延迟和准确性方面有显著改进。

参考

  1. ^abRepVGG: Making VGG-style ConvNets Great Again
  2. ^ShuffleNet V2: Practical Guidelines for Efficient CNN Architecture Design
  3. ^abhttps://coremltools.readme.io/docs
  4. ^MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications

 

 


 

#GuidedImageFiltering

引导(导向)滤波是由何恺明等人于2010年发表的文章《Guided Image Filtering》中提出的,后续于2013年发表。引导过滤器根据局部线性模型原理,通过考虑引导图像的内容来计算过滤输出,引导图像可以是输入图像本身或另一个不同的图像。

论文链接:

引导滤波:

https://www.researchgate.net/publication/236228168_Guided_Image_Filtering

快速引导滤波:

https://arxiv.org/abs/1505.00996v1

github 链接:

https:///Sundrops/fast-guided-filter

opencv文档:

https://docs.opencv.org/4.x/da/d17/group__ximgproc__filters.html#ga86813d59f8452a9600e979c6287805f5

三大保边滤波算法 

保边滤波器 (Edge Preserving Filter)是指在滤波过程中能够有效地保留图像中的边缘信息的一类特殊滤波器。

三大保边滤波算法:

引导滤波:

双边滤波:

https://users.soe.ucsc.edu/~manduchi/Papers/ICCV98.pdf

加权最小二乘平滑(WLS):论文是 Edge-Preserving Decompositions for Multi-Scale Tone and Detail Manipulation.

引导滤波(Guided Filtering)和双边滤波(BF)、最小二乘滤波(WLS)是三大边缘保持(Edge-perserving)滤波器。当然,引导滤波的功能不仅仅是边缘保持,只有当引导图是原图的时候,它就成了一个边缘保持滤波器。

还有一些保边平滑算法,比如1. 各向异性滤波, 2. 基于小波变换的滤波(Edge-avoiding wavelets and their applications), 3. 基于域变换的滤波(Domain Transform for Edge-Aware Image and Video Processing), 4. 基于 geodesic 的滤波(Geodesic Image and Video Editing) 等等。

论文摘要

在本文中,我们提出了一种新的显式图像滤波器,称为引导滤波器。从局部线性模型导出,引导滤波器通过考虑引导图像的内容来计算过滤输出,引导图像可以是输入图像本身或另一个不同的图像。引导过滤器也是一个比平滑更通用的概念:它可以将引导图像的结构传输到过滤输出,从而实现新的过滤应用,例如去雾和引导羽化。此外,无论内核大小和强度范围如何,引导滤波器自然具有快速且非近似的线性时间算法。目前,它是最快的边缘保留滤波器之一。实验表明,引导滤波器在各种计算机视觉和计算机图形应用中既有效又高效,包括边缘感知平滑、细节增强、HDR 压缩、图像抠图/羽化、去雾、联合上采样等等。

引导滤波简介

引导(导向)滤波顾名思义,就是有选择(导向)性的滤波,其与我们经常提及的高斯滤波、双边滤波相比,它具有导向性,说具体点就是,它通过输入一副图像(矩阵)作为导向图,这样滤波器就知道什么地方是边缘,这样就可以更好的保护边缘,最终达到在滤波的同时,保持边缘细节。所以有个说法是导向滤波是各向异性的滤波器,而高斯滤波、双边滤波这些是各向同性滤波器,我觉得也是很贴切。

引导滤波具有以下特点:

引导滤波器可以像流行的双边滤波器一样用作边缘保留平滑算子,但在边缘附近有更好的效果。引导过滤器也是平滑之外的一个更通用的概念:它可以将引导图像的结构传输到过滤输出,从而实现新的过滤应用,例如去雾和引导羽化。此外,无论核大小和强度范围如何,引导滤波器自然具有快速且非近似的线性时间算法。目前它是最快的边缘保留滤波器之一。

w~视觉~合集19_视觉_23

引导滤波(导向滤波)是一种图像滤波技术,通过引导图像,对初始图像p(输入图像)进行滤波处理,使得最后的输出图像大体上与初始图像P相似,但是纹理部分与引导图相似。

引导滤波的前提条件是:

导引图像 与 输出图像 之间存在线性关系。

额外的数据(引导图像)可以指导滤波过程,得到更好(更适合)的去噪效果。

 

w~视觉~合集19_视觉_24

 

 基于OpenCV实现代码

因为 opencv 的实现在扩展模块中,同时为了可以加深自己的理解,我们基于 opencv 部分常用算子实现了引导滤波的代码。

C++代码如下:

cv::Mat GuidedFilter(cv::Mat I, cv::Mat p, int r, double eps)
{
    I.convertTo(I, CV_64FC1, 1.0 / 255);
    p.convertTo(p, CV_64FC1, 1.0 / 255);
    int R = 2 * r + 1;
    cv::Mat mean_I;
    cv::boxFilter(I, mean_I, CV_64FC1, cv::Size(R, R));
    cv::Mat mean_p;
    cv::boxFilter(p, mean_p, CV_64FC1, cv::Size(R, R));
    cv::Mat mean_Ip;
    cv::boxFilter(I.mul(p), mean_Ip, CV_64FC1, cv::Size(R, R));
    cv::Mat cov_Ip = mean_Ip - mean_I.mul(mean_p);
    cv::Mat mean_II;
    cv::boxFilter(I.mul(I), mean_II, CV_64FC1, cv::Size(R, R));
    cv::Mat var_I = mean_II - mean_I.mul(mean_I);
    cv::Mat a = cov_Ip / (var_I + eps);
    cv::Mat b = mean_p - a.mul(mean_I);
    cv::Mat mean_a;
    cv::boxFilter(a, mean_a, CV_64FC1, cv::Size(R, R));
    cv::Mat mean_b;
    cv::boxFilter(b, mean_b, CV_64FC1, cv::Size(R, R));
    cv::Mat q = mean_a.mul(I) + mean_b;
    q.convertTo(q, CV_8UC1, 255);
    return q;
}

python代码如下:

def guided_filter(I, P, r, eps):
    scale = 255
    I = I/scale
    P = P/scale
    R = 2*r+1
    P_mean = cv.boxFilter(I, -1, (R, R))
    I_mean = cv.boxFilter(P, -1, (R, R))
    I_square_mean = cv.boxFilter(np.multiply(
        P, P), -1, (R, R))
    I_mul_P_mean = cv.boxFilter(np.multiply(
        I, P), -1, (R, R))
    var_I = I_square_mean-np.multiply(I_mean, I_mean)
    cov_I_P = I_mul_P_mean-np.multiply(I_mean, P_mean)
    a = cov_I_P/(var_I+eps)
    b = P_mean-np.multiply(a, I_mean)
    a_mean = cv.boxFilter(a, -1, (R, R))
    b_mean = cv.boxFilter(b, -1, (R, R))
    dst = np.multiply(a_mean, P)+b_mean
    dst *= scale
    return dst

效果展示

在这里,我们暂时只研究引导  与过滤输入 P 相同的特殊情况

w~视觉~合集19_视觉_25

w~视觉~合集19_视觉_26

 

w~视觉~合集19_视觉_27

 

计算量

引导滤波算法快的关键之处在于计算a_k,b_k所需的均值与方差都可以通过盒式滤波去实现,盒式滤波是一种与滤波半径大小无关的算法,其实现方法类似积分图思想,都是一种以空间换取时间的方式。因为相邻像素之间有许多重复计算的地方,这些地方可以暂时记录下来,后面需要用到时直接读取就行了。

快速引导滤波算法 

导向滤波的时间复杂度为O(N),其中N为像素点的个数。

何凯明在2015又发表了一篇《Fast Guided Filter》的文章,阐述了一种很实用的更快速的导向滤波流程。如下所示。其本质是通过下采样减少像素点,计算mean_a & mean_b后进行上采样恢复到原有的尺寸大小。假设缩放比例为s,那么缩小后像素点的个数为N/s^2,那么时间复杂度变为O(N/s^2)(注意,上下采样也需要消耗一部分算力)。

w~视觉~合集19_视觉_28

基于上面的理论,只需调用 resize() 函数就可以实现下采样和上采样了
 

总 结 

在本文中,我们提出了一种广泛适用于计算机视觉和图形的新型过滤器。与最近加速双边滤波器的趋势不同,我们设计了一种新的滤波器,它展示了边缘保留平滑的良好特性,但可以计算有效的和非近似的。我们的过滤器比“平滑”更通用,适用于结构转移,实现基于过滤的羽化/消光和去雾的新应用。由于局部线性模型是一种无监督学习,因此可能会应用其他高级模型/特征来获得新的过滤器。我们将其留作将来的研究。

更多详细介绍可以参考原论文。





#ViECap

南科大VIP Lab: 基于预训练视觉语言模型及大语言模型的Zero-Shot的图像到文本生成

不使用任何图像-文本对,ViECap在多个I2T任务上表现出了SOTA的迁移性(跨数据集测试,NoCaps),并能够生成用户期望风格的文本(幽默,浪漫)。

和大家分享一下我们组ICCV2023中稿的零样本图像-文本(I2T)生成工作ViECap。该任务目前的一个主流做法是结合预训练的视觉语言模型(VLMs)和大语言模型(LLMs)来完成I2T的生成,然而我们发现在微调VLMs和LLMs以结合这两个预训练模型时,目前的方法至少存在两个问题:

  1. 模态偏置,即在文本生成的过程中,来自LLMs的语言先验会占据生成过程的主导地位,这是由于通常情况下LLMs的能力更强,且来自视觉的指导的强度弱导致的。

2. 物体混淆,即这些在大量数据上进行过预训练的大模型的泛化能力将会退化到指定的微调数据集,从而导致I2T模型生成的文本中出现图像中并不存在的物体(而该物体在微调数据集中非常常见)。

该工作通过实验进一步验证了这两个问题,并基于此提出了ViECap。不使用任何图像-文本对,ViECap在多个I2T任务上表现出了SOTA的迁移性(跨数据集测试,NoCaps),并能够生成用户期望风格的文本(幽默,浪漫)。

Transferable Decoding with Visual Entities for Zero-Shot Image Captioning

Paper: https://arxiv.org/abs/2307.16525

Code: https:///FeiElysia/ViECap

效果展示

w~视觉~合集19_视觉_29

w~视觉~合集19_视觉_30

任务介绍

零样本图像-文本(I2T)生成任务的主要目的是使模型没有事先在特定的图像-文本对上进行训练的情况下,能够生成与给定图像相关的文本描述。即在模型看到新的图像时(训练时没见过的新物体,训练时没见过的新图像分布),能够根据模型存储的世界知识生成合理的、与图像内容相关的描述。该任务可以测试模型的泛化能力,即模型能否将训练时学到的知识应用到未见过的图像领域,以生成图像相关的文本描述;该任务允许模型在没有经过特定领域的图像-文本数据训练的情况下,为多种不同类型的图像生成文本描述;该任务可以避免为不同领域收集和标注大量的图像-文本对,从而降低了数据收集和标注的成本。

研究背景和动机

w~视觉~合集19_视觉_31

I2T任务是一个重要的视觉感知任务。传统的I2T生成方法需要通过在大量的图像-文本对上进行训练以获得感知图像、与文本对齐并生成文本的能力。最近,VLMs取得了重要进展,在大量带噪的图像-文本对上进行预训练的CLIP具备良好的图像感知能力,并能很好的对齐配对的图像和文本。最近一些工作尝试结合CLIP和LLMs来完成零样本I2T生成任务。为了达到这个目的,需要将CLIP的输出特征对齐到LLMs的隐空间上。

当前有两种方法解决这个问题:

(1)late-guidance的范式在语言模型完成单词预测后再注入视觉信息(如语言模型完成单词预测后使用CLIP计算图像-文本相似度来选择单词),这会导致在解码过程中语言模型具备的语言先验占据主导地位(模态偏置),如上图所示,“jump”虽然与图像无关,但是其与“skateboarder”一起出现的频率较高,进而在预测中出现了这个单词。

(2)early-guidance的范式通过微调预训练模型来显式的指导文本生成过程,这种方式可以极大的缓解模态偏置的问题。但是,在一个小的数据集上微调预训练模型通常会导致模型产生物体混淆,即在描述图像时,经常生成图像中并不存在的物体(这个物体可能频繁出现在训练集中)。如上图所示,在COCO数据集上进行微调的I2T模型,因为没有见过海龟这个概念,当来了一张海龟的图时,模型把海龟误认为“surfboard”(surfboard在COCO数据集里非常常见)。

进一步的验证

w~视觉~合集19_视觉_32

w~视觉~合集19_视觉_33

我们使用CLIP来计算图像与生成的文本之间的相似度, 如上图所示(中间的图), 当从in-domain迁移到out-of-domain时, CapDec的性能逐渐下降, 而我们提出的ViECap对于未见过的物体能够保证良好的迁移性。因为物体混淆表示生成的文本中出现本身并不在图像中的物体, 我们进一步分析了不同I2T模型生成的文本中是否能够准确包含图像中存在的物体, 可以看到从in-domain的I2T生成到out-of-domain的I2T 生成, CapDec从60.2下降到了43.6, 产生了严重的物体混淆。

方法介绍

w~视觉~合集19_视觉_34

为了避免为不同领域收集和标注大量的图像-文本对, 我们只使用文本数据来微调I2T模型。具体来 说, 我们的目标是训练一个解码器, 使其在解码的过程中能够更多的去关注到图像中的物体, 进而实现良好迁移性。为了达到这个目的, 我们构建两种类型的prompt。

w~视觉~合集19_视觉_35

(2) soft prompt, 训练时, 我们只使用文本数据以避免针对不同领域收集 和标注大量的图像-文本对, 我们使用CLIP的文本编码器将文本投射到CLIP的特征空间, 并给该文 本表征添加一个随机高斯噪声使得文本表征尽可能能够表示图像特征(该做法来自CapDec),然 后将之输入给一个可学习的Transformer来将该文本表征投射到GPT-2的隐空间。推理时, 我们直 接使用CLIP的图像编码器来将图像投射到CLIP的特征空间并直接使用训练过的Transformer将之投 射到GPT-2的隐空间来构建soft prompt。值得一提的是, 在输入GPT-2之前, 还需要将构建得到 的entity-aware hard prompt和soft prompt在序列维度级联起来,一起输入GPT-2。

实验

为了验证ViECap描述图像中出现的新物体的能力,我们在NoCaps数据集上进行测试。具体来说,我们在COCO的文本数据上训练ViECap,然后直接在NoCaps上进行验证。如下表所示,对比其他不使用图像-文本对进行训练的方法(DeCap,CapDec),ViECap在描述新物体时,能够生成更加合理且符合图像的描述。从in-domain到out-of-domain,DeCap和CapDec的CIDEr下降了接近35,而ViECap的CIDEr并没有下降,这证明ViECap对于新分布的图像具有更强的迁移性。为了进一步的测试ViECap的迁移性,我们还在跨数据集的设定下进行了测试(即在一个数据集上进行训练,不进行任何微调,直接在另一个数据集上进行测试),可以看到ViECap在大部分文本生成质量的指标上依然能够达到SOTA的迁移性。

w~视觉~合集19_视觉_36

除此之外,我们还在通用的I2T数据集COCO和Flickr30k上测试了ViECap的性能,我们分别在这两个数据集的训练集上进行了微调然后再测试集上进行测试。由下表可以看到,ViECap在保持良好迁移性的同时,还能对训练时见过的概念保持优秀的描述能力。只用文本数据进行训练的一个优势是可以让生成的文本符合用户期望的风格,我们在FlickrStyle10K上测试了ViECap,从结果可以看出ViECap能够生成符合用户期望风格的文本(即浪漫,幽默)并在文本生成质量上达到了SOTA。

w~视觉~合集19_视觉_37

我们还探索了ViECap在低数据量情况下的性能,如下表所示,可以看到,在数据量较少的情况下,使用ViECap是一个不错的选择。此外,我们还逐步增大ViECap中语言模型的规模(从GPT-2到OPT),随着模型规模的增大,ViECap的I2T生成性能逐渐变强,表格显示继续增大语言模型,没有看到显著上限!

w~视觉~合集19_视觉_38





#CoTNet

这次是搬来的JD的哦~~新开源的计算机视觉模块,京东AI研究院提出的一种新的注意力结构。将CoT Block代替了ResNet结构中的3x3卷积,在分类检测分割等任务效果都出类拔萃

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

源代码地址:https:///JDAI-CV/CoTNet

具有自注意力的Transformer引发了自然语言处理领域的革命,最近还激发了Transformer式架构设计的出现,并在众多计算机视觉任务中取得了具有竞争力的结果。

如下是之前我们分享的基于Transformer的目标检测新技术!

w~视觉~合集19_视觉_39

w~视觉~合集19_视觉_40

w~视觉~合集19_视觉_41

 

尽管如此,大多数现有设计直接在2D特征图上使用自注意力来获得基于每个空间位置的独立查询和键对的注意力矩阵,但未充分利用相邻键之间的丰富上下文。在今天分享的工作中,研究者设计了一个新颖的Transformer风格的模块,即Contextual Transformer (CoT)块,用于视觉识别。这种设计充分利用输入键之间的上下文信息来指导动态注意力矩阵的学习,从而增强视觉表示能力。从技术上讲,CoT块首先通过3×3卷积对输入键进行上下文编码,从而产生输入的静态上下文表示。

w~视觉~合集19_视觉_42

上图是传统的self-attention仅利用孤立的查询-键对来测量注意力矩阵,但未充分利用键之间的丰富上下文。 

w~视觉~合集19_视觉_43

上图(b)就是CoT块

研究者进一步将编码的键与输入查询连接起来,通过两个连续的1×1卷积来学习动态多头注意力矩阵。学习到的注意力矩阵乘以输入值以实现输入的动态上下文表示。静态和动态上下文表示的融合最终作为输出。CoT块很吸引人,因为它可以轻松替换ResNet架构中的每个3 × 3卷积,产生一个名为Contextual Transformer Networks (CoTNet)的Transformer式主干。通过对广泛应用(例如图像识别、对象检测和实例分割)的大量实验,验证了CoTNet作为更强大的主干的优越性。

Attention注意力机制与self-attention自注意力机制

  • 为什么要注意力机制?

在Attention诞生之前,已经有CNN和RNN及其变体模型了,那为什么还要引入attention机制?主要有两个方面的原因,如下:

(1)计算能力的限制:当要记住很多“信息“,模型就要变得更复杂,然而目前计算能力依然是限制神经网络发展的瓶颈。

(2)优化算法的限制:LSTM只能在一定程度上缓解RNN中的长距离依赖问题,且信息“记忆”能力并不高。

  • 什么是注意力机制

在介绍什么是注意力机制之前,先让大家看一张图片。当大家看到下面图片,会首先看到什么内容?当过载信息映入眼帘时,我们的大脑会把注意力放在主要的信息上,这就是大脑的注意力机制。

w~视觉~合集19_视觉_44

同样,当我们读一句话时,大脑也会首先记住重要的词汇,这样就可以把注意力机制应用到自然语言处理任务中,于是人们就通过借助人脑处理信息过载的方式,提出了Attention机制。

self attention是注意力机制中的一种,也是transformer中的重要组成部分。自注意力机制是注意力机制的变体,其减少了对外部信息的依赖,更擅长捕捉数据或特征的内部相关性。自注意力机制在文本中的应用,主要是通过计算单词间的互相影响,来解决长距离依赖问题。

新框架

1、Multi-head Self-attention in Vision Backbones

w~视觉~合集19_视觉_45

在这里,研究者提出了视觉主干中可扩展的局部多头自注意力的一般公式,如上图(a)所示。形式上,给定大小为H ×W ×C(H:高度,W:宽度,C:通道数)的输入2D特征图X,将X转换为查询Q = XWq,键K=XWk,值V = XWv,分别通过嵌入矩阵 (Wq, Wk, Wv)。 值得注意的是,每个嵌入矩阵在空间中实现为1×1卷积。

w~视觉~合集19_视觉_46

 

局部关系矩阵R进一步丰富了每个k × k网格的位置信息

w~视觉~合集19_视觉_47

接下来,注意力矩阵A是通过对每个头部的通道维度上的Softmax操作对增强的空间感知局部关系矩阵Rˆ进行归一化来实现的:A = Softmax(Rˆ)。将A的每个空间位置的特征向量重塑为Ch局部注意力后矩阵(大小:k × k),最终输出特征图计算为每个k × k网格内所有值与学习到的局部注意力矩阵的聚合:

w~视觉~合集19_视觉_48

 

2、Contextual Transformer Block

传统的自注意力很好地触发了不同空间位置的特征交互,具体取决于输入本身。然而,在传统的自注意力机制中,所有成对的查询键关系都是通过孤立的查询键对独立学习的,而无需探索其间的丰富上下文。这严重限制了自注意力学习在2D特征图上进行视觉表示学习的能力。

w~视觉~合集19_视觉_49

为了缓解这个问题,研究者构建了一个新的Transformer风格的构建块,即上图 (b)中的 Contextual Transformer (CoT) 块,它将上下文信息挖掘和自注意力学习集成到一个统一的架构中。

3、Contextual Transformer Networks

w~视觉~合集19_视觉_50

 ResNet-50 (left) and CoTNet50 (right)

w~视觉~合集19_视觉_51

 

ResNeXt-50 with a 32×4d template (left) and CoTNeXt-50 with a 2×48d template (right).

实验及可视化

w~视觉~合集19_视觉_52

 

探索上下文信息的不同方式的性能比较,即仅使用静态上下文(Static Context),只使用动态上下文(Dynamic Context),线性融合静态和动态上下文(Linear Fusion),以及完整版的CoT块。 主干是CoTNet-50和采用默认设置在ImageNet上进行训练

w~视觉~合集19_视觉_53

 

w~视觉~合集19_视觉_54

 

在ImageNet数据集上的Inference Time vs. Accuracy Curve

 

w~视觉~合集19_视觉_55

上表总结了在COCO数据集上使用Faster-RCNN和Cascade-RCNN在不同的预训练主干中进行目标检测的性能比较。 将具有相同网络深度(50层/101层)的视觉主干分组。 从观察,预训练的CoTNet模型(CoTNet50/101和CoTNeXt-50/101)表现出明显的性能,对ConvNets 主干(ResNet-50/101和ResNeSt-50/101) 适用于所有IoU的每个网络深度阈值和目标大小。 结果基本证明了集成self-attention学习的优势使用CoTNet中的上下文信息挖掘,即使转移到目标检测的下游任务。

不同主干的检测结果demo:

w~视觉~合集19_视觉_56

CoTNeXt-50

w~视觉~合集19_视觉_57

 

CoTNet50

w~视觉~合集19_视觉_58

 

CoTNet50

w~视觉~合集19_视觉_59

 

CoTNeXt-50 






#CoCs~


这里带来 超高分工作|把图片视为点集,简单聚类算法实现强悍视觉架构

这里说下 视觉表征的一类经典方法:聚类 (Clustering) 。作者将这种范式称之为上下文聚类 (Context Cluster)。这是一种新的用于视觉表征的特征提取范式。并在多种视觉任务中取得了和 ConvNets,ViTs 相当的性能

把图片视为点集,简单聚类算法实现强悍视觉架构

论文名称:Image as Set of Points

论文地址:

https://openreview.net/pdf%3Fid%3DawnvqZja69

背景和动机

提取特征的方式很大程度上取决于如何解释图像。

在方法上,ConvNets 将图像概念化为一组排列成矩形形式的像素,并以滑动窗口的方式使用卷积提取局部特征。卷积网络非常高效的原因是得益于一些重要的归纳偏置 (inductive bias),如局部性 (locality) 和平移等变性 (translation equivariance)。视觉 Transformer 将图像视为一块块组成的序列,并使用全局注意力操作自适应地融合来自每个 Patch 的信息。这样,模型中固有的归纳偏置被抛弃,并获得了令人满意的结果。

最近,有些工作试图把卷积和注意力机制结合在一起,比如:CMT[1],CoAtNet[2]等,这些方法在网格中扫描图像 (通过卷积,获得局部性的先验),同时探索 Patch 之间的相互关系 (通过注意力,获得全局建模的能力)。虽然它们继承了两者的优点,但其见解和知识仍然局限于 ConvNets 和 ViT。

本文作者研究特征提取器 (Feature Extractor),但是视角不仅仅局限在 ConvNets 和 ViT 上。虽然卷积和注意力机制已经被证明了可以用来构建高性能视觉架构,但它们并不是唯一的选择。其他的选择比如基于 MLP 的模型 ResMLP[3],和基于 GNN 的模型 ViG[4]。因此,作者期待在本文中探索一种新的特征提取范式,它可以提供一些新颖的见解,而不是增量式的性能改进。

在本文中,作者回顾了视觉表征的一类经典方法:聚类 (Clustering) 。总体而言,作者将图像视为一组点集,并将所有点分组为 Clusters。在每个类中,我们将这些点聚集成一个 center,然后自适应地将中心点分配给所有的点。作者将这种范式称之为上下文聚类 (Context Cluster) 。

w~视觉~合集19_视觉_60

图1:上下文聚类 (context cluster)

如上图1所示,具体而言,作者将每个像素视为一个具有颜色和位置信息的5维数据点。作者将图像转换为一组点云,并利用点云分析的方法用于图像视觉表征。这连接了图像和点云的视觉表征,显示出了强大的泛化性能,也有利于未来的多模态研究。对于一组点,作者引入了一种简化的聚类方法[5],将点分组为一个个类。

作者将基于上下文聚类 (context cluster) 得到的 Deep Model 称之为 Context Clusters (CoCs) 。模型的设计也继承了 ViT 的层次表示和 MetaFormer 的框架。通过将图像视为点的集合,CoC 对不同数据域 (如点云、RGBD 图像等) 具有很强的泛化能力,和比较令人满意的可解释性。尽管 CoC 不以性能为目标,但作者发现在几个基准测试中,它仍然达到了与 ConvNets 或 ViTs 相同甚至更好的性能。

把图像视为一组点集

作为一个通用主干网络的工作,我们首先要明确的一点是:无论作者在鼓吹什么概念,这个网络的每一个 Block 都要做一件事情:就是特征提取 (Feature Extraction)。本文使用的聚类 (Clustering) 操作也不会例外。

w~视觉~合集19_视觉_61

这样的表征为图像提供了一个全新的视角,即:把图像视为一组点集,其可以被认为是一种通用数据表示,因为大多数领域的数据可以作为特征和位置信息的组合给出。

CoCs 模型的总体架构和图片的预处理环节

前文提到,无论作者在鼓吹什么概念,这个网络的每一个 Block 都要做一件事情:就是特征提取 (Feature Extraction)。本文作者同样遵循 ConvNets 的方法,利用 Context Clusters Block,提取深层特征。

模型总体架构如下图2所示,每个 Stage 都由点数缩减模块 (Points Reducer Block) 和上下文聚类块 (Context Clusters Block) 组成。

总体而言:

  • CoCs 模型的总体架构类似于 Swin,PVT 的金字塔结构
  • Swin 中的图片的预处理环节在 CoCs 里面用的也是卷积
  • Swin 中的 Self-attention 模块在 CoCs 里面用的是上下文聚类模块 (Context Clusters Block) 。
  • Swin 中的下采样操作在 CoCs 里面用的是点数缩减模块 (Points Reducer Block) 。
  • Swin 中的位置编码是 Add 在图片上的,CoCs 里面用的是 Concat 操作,把3维的 image 搞成了5维的 "augmented image"。

w~视觉~合集19_视觉_62

 图2:CoCs 模型的总体架构

如何选择锚点呢?如下图3所示,作者展示了16个点和4个锚点,每个锚点都考虑了它最近的4个邻居。所有邻居都沿着通道维度进行 concatenation,并且使用 FC 层来降低维度数并融合信息。在减少点的数量后,会得到4个新的点。这步可以使用 2×2 的卷积实现。

PyTorch 代码如下 (PointRecuder 和 Transformer 类金字塔结构使用的下采样操作是一致的):

class PointRecuder(nn.Module):
    """
    Point Reducer is implemented by a layer of conv since it is mathmatically equal.
    Input: tensor in shape [B, C, H, W]
    Output: tensor in shape [B, C, H/stride, W/stride]
    """
    def __init__(self, patch_size=16, stride=16, padding=0,
                 in_chans=3, embed_dim=768, norm_layer=None):
        super().__init__()
        patch_size = to_2tuple(patch_size)
        stride = to_2tuple(stride)
        padding = to_2tuple(padding)
        self.proj = nn.Conv2d(in_chans, embed_dim, kernel_size=patch_size,
                              stride=stride, padding=padding)
        self.norm = norm_layer(embed_dim) if norm_layer else nn.Identity()

    def forward(self, x):
        x = self.proj(x)
        x = self.norm(x)
        return x

w~视觉~合集19_视觉_63

 图3:模型一开始选择锚点的方法,很像 ViT 的卷积分 Patch 操作

上下文聚类模块原理

w~视觉~合集19_视觉_64

图4:一个上下文聚类 Block

本小节介绍 CoCs 的核心:上下文聚类模块 (图4虚线部分) 的原理。总体而言,上下文聚类模块分为两部分:特征聚合 (Feature Aggregating) 和**特征再分配 (Feature Dispatching)**。作者首先将特征点聚类成为 Cluster,然后,每个聚类中的特征点将被聚合,然后再分派回去。

w~视觉~合集19_视觉_65

w~视觉~合集19_视觉_66

多头机制

考虑到 ViT 中使用的多头注意力机制,作者在上下文聚类模块中使用了类似的做法,也使用了 hh 个 head,且多头操作的输出由 FC 层融合,发现多头机制也使得模型效果更好。

聚类中心不动?

传统的聚类算法和 SuperPixel 技术都是迭代更新中心直到收敛,但是这将导致过高的计算成本,使得推理时间将呈指数增长。在上下文聚类中,作者固定聚类中心不动,在准确性和速度之间取得妥协。

PyTorch 代码如下 (变量维度我已经在代码中标明):

class Cluster(nn.Module):
    def __init__(self, dim, out_dim, proposal_w=2,proposal_h=2, fold_w=2, fold_h=2, heads=4, head_dim=24, return_center=False):
        """

        :param dim:  channel nubmer
        :param out_dim: channel nubmer
        :param proposal_w: the sqrt(proposals) value, we can also set a different value
        :param proposal_h: the sqrt(proposals) value, we can also set a different value
        :param fold_w: the sqrt(number of regions) value, we can also set a different value
        :param fold_h: the sqrt(number of regions) value, we can also set a different value
        :param heads:  heads number in context cluster
        :param head_dim: dimension of each head in context cluster
        :param return_center: if just return centers instead of dispatching back (deprecated).
        """
        super().__init__()
        self.heads = heads
        self.head_dim=head_dim
        self.fc1 = nn.Conv2d(dim, heads*head_dim, kernel_size=1)
        self.fc2 = nn.Conv2d(heads*head_dim, out_dim, kernel_size=1)
        self.fc_v = nn.Conv2d(dim, heads*head_dim, kernel_size=1)
        self.sim_alpha = nn.Parameter(torch.ones(1))
        self.sim_beta = nn.Parameter(torch.zeros(1))
        self.centers_proposal = nn.AdaptiveAvgPool2d((proposal_w,proposal_h))
        self.fold_w=fold_w
        self.fold_h = fold_h
        self.return_center = return_center

    def forward(self, x): #[b,c,w,h]
        value = self.fc_v(x)
        x = self.fc1(x)
        x = rearrange(x, "b (e c) w h -> (b e) c w h", e=self.heads) #[b*heads,head_dim,w,h]
        value = rearrange(value, "b (e c) w h -> (b e) c w h", e=self.heads) #[b*heads,head_dim,w,h]
        if self.fold_w>1 and self.fold_h>1:
            # split the big feature maps to small loca regions to reduce computations of matrix multiplications.
            b0,c0,w0,h0 = x.shape
            assert w0%self.fold_w==0 and h0%self.fold_h==0, \
                f"Ensure the feature map size ({w0}*{h0}) can be divided by fold {self.fold_w}*{self.fold_h}"
            x = rearrange(x, "b c (f1 w) (f2 h) -> (b f1 f2) c w h", f1=self.fold_w, f2=self.fold_h) #[bs*blocks,c,ks[0],ks[1]] #[b*heads*64,head_dim,w/8,h/8]
            value = rearrange(value, "b c (f1 w) (f2 h) -> (b f1 f2) c w h", f1=self.fold_w, f2=self.fold_h) #[b*heads*64,head_dim,w/8,h/8]
        b,c,w,h = x.shape #[b*heads*64,head_dim,w/8,h/8]
        centers = self.centers_proposal(x)  # [b,c,C_W,C_H], we set M = C_W*C_H and N = w*h #[b*heads*64,head_dim,2,2]
        value_centers = rearrange(self.centers_proposal(value) , 'b c w h -> b (w h) c') # [b,C_W,C_H,c] #[b*heads*64,4,head_dim]
        b,c,ww,hh = centers.shape #[b*heads*64,head_dim,2,2]
        sim = torch.sigmoid(self.sim_beta + self.sim_alpha * pairwise_cos_sim(centers.reshape(b,c,-1).permute(0,2,1), x.reshape(b,c,-1).permute(0,2,1))) #[B,M,N] #[b*heads*64,4,w/8*h/8]
        # sololy assign each point to one center
        sim_max, sim_max_idx = sim.max(dim=1,keepdim=True)
        mask = torch.zeros_like(sim)  # binary #[B,M,N]
        mask.scatter_(1, sim_max_idx, 1.)
        sim= sim*mask
        value2 = rearrange(value, 'b c w h -> b (w h) c')  # [B,N,D] #[b*heads*64,w/8*h/8,head_dim]
        # out shape [B,M,D]
        # [b*heads*64,1,w/8*h/8,head_dim] * [b*heads*64,4,w/8*h/8,1] = [b*heads*64,4,w/8*h/8,head_dim]
        # [b*heads*64,4,head_dim]
        out = ( ( value2.unsqueeze(dim=1)*sim.unsqueeze(dim=-1) ).sum(dim=2) + value_centers)/ (mask.sum(dim=-1,keepdim=True)+ 1.0) # [B,M,D]

        if self.return_center:
            out = rearrange(out, "b (w h) c -> b c w h", w=ww)
        # return to each point in a cluster
        else:
            # # [b*heads*64,4,1,head_dim] * [b*heads*64,4,w/8*h/8,1] = [b*heads*64,w/8*h/8,head_dim]
            out = (out.unsqueeze(dim=2)*sim.unsqueeze(dim=-1)).sum(dim=1) # [B,N,D]
            # [b*heads*64,head_dim,w/8*h/8]
            out = rearrange(out, "b (w h) c -> b c w h", w=w)

        if self.fold_w>1 and self.fold_h>1: # recover the splited regions back to big feature maps
            out = rearrange(out, "(b f1 f2) c w h -> b c (f1 w) (f2 h)", f1=self.fold_w, f2=self.fold_h) # [b*heads,head_dim,w,h]
        out = rearrange(out, "(b e) c w h -> b (e c) w h", e=self.heads) # [b,head_dim*heads,w,h]
        out = self.fc2(out) # [b,out_dim,w,h]
        return out

实验结果

ImageNet-1K 图像分类

如下图6所示是在 ImageNet-1K 上的消融实验结果。当 Position info. 即位置信息删掉时,模型无法训练了。在没有 Context Cluster 操作的情况下,性能下降了 3.3%。此外,多头设计可使结果提高 0.9%。0.9,weight decay 为0.5,使用了 Exponential Moving Average (EMA)。如下图56所示,CoCs 能够获得与广泛使用的基线相当甚至更好的性能。

通过约 25M 个参数,CoCs 的性能超过了增强的 ResNet50 和 PVT-small 1.1%,并达到 80.9% 的 Top-1 精度。此外,CoCs 明显优于基于 MLP 的方法。这一现象表明,上下文集群模块有助于建模视觉表征。

w~视觉~合集19_视觉_67

图5:ImageNet-1K 图像分类实验结果

如下图5所示是在 ImageNet-1K 上的消融实验结果。当 Position info. 即位置信息删掉时,模型无法训练了。在没有 Context Cluster 操作的情况下,性能下降了 3.3%。此外,多头设计可使结果提高 0.9%。

w~视觉~合集19_视觉_68

图6:消融实验结果

聚类可视化结果

作者在图7中绘制了 ViT 的注意力图,ConvNet 的 class activation map (i.e., CAM),和 CoCs 的 clustering map。可以看到,本文的方法在最后的 Stage 清晰地将 "鹅" 聚为一个 object context,并将背景 "草" 分组在一起。上下文聚类甚至可以在非常早期的 Stage 聚类相似的上下文

w~视觉~合集19_视觉_69

图7:聚类可视化结果,从左到右分别是4个 Stage ([3rd, 6th, 9th, 12th]) 的聚类可视化结果

ScanObjectNN 3D 点云分类实验结果

作者选择 PointMLP 作为模型的基线,因为它的性能和易用性。作者将上下文聚类模块放在 PointMLP 中的每个 Residual Point Block 之前。得到的模型称为 PointMLP-CoC。如下图7所示,作者展示了所有类别的平均准确度 (mAcc) 和所有样本的总体准确度 (OA)。实验结果表明,该方法可以显著提高 PointMLP 的性能,平均准确率提高0.5% (84.4% vs. 83.9%),总体准确率提高 0.8% (86.2% vs. 85.4%)。

w~视觉~合集19_视觉_70

图8:点云分类实验结果

MS-COCO 目标检测和实例分割实验结果

接下来,作者研究 Context Cluster 操作对下游任务的泛化性,包括 MS-COCO 目标检测和实例分割。检测头和实例分割头使用 Mask RCNN。所有模型使用 1× scheduler (12 epochs) 进行训练,并使用 ImageNet 预训练权重进行初始化。为了进行比较,作者将 ResNet 作为 ConvNets 的代表,PVT 作为 ViTs 的代表。

对于分辨率为 (1280,800) 大小的图像,检测和分割任务将有 1000 个点。很明显,将1000个点分成4个 Cluster 会产生较差的结果。为此,作者研究了一个局部区域中使用4,25,49个中心,并将得到的模型分别称为 Small/4、Small/25 和 Small/49。如图9的结果表明,Context Cluster 操作对下游任务具有很好的泛化能力。CoC-Small/25 在检测和实例分割任务上都优于 ConvNet 和 ViT 基线。

w~视觉~合集19_视觉_71

图9:目标检测实验结果         

ADE20K 语义分割实验结果

接下来,作者研究 Context Cluster 操作对 ADE20K 语义分割任务的泛化性,语义分割头使用 semantic FPN。所有模型使用 80k iterations 进行训练,并使用 ImageNet 预训练权重进行初始化。为了进行比较,作者将 ResNet 作为 ConvNets 的代表,PVT 作为 ViTs 的代表。

ADE20K 的实验结果如下图10所示。使用类似数量的参数,Context Cluster 操作明显优于 PVT 和 ResNet。Context Cluster 操作类似于 SuperPixel,这是一种过度分割的技术。当应用于特征提取时,作者期望 Context Cluster 操作能够对中间特征中的上下文进行过度分割,并在语义分割任务中表现出改进。与目标检测和实例分割任务不同,center 数量对结果影响不大。

w~视觉~合集19_视觉_72

图10:语义分割实验结果

总结

提取特征的方式很大程度上取决于如何解释图像。在本文中,作者回顾了视觉表征的一类经典方法:聚类 (Clustering) 。总体而言,作者将图像视为一组点集,并将所有点分组为 Clusters。在每个类中,我们将这些点聚集成一个 center,然后自适应地将中心点分配给所有的点。作者将这种范式称之为上下文聚类 (Context Cluster)。这是一种新的用于视觉表征的特征提取范式。受点云分析和 SuperPixel 算法的启发,Context Cluster与 ConvNets 和 ViTs 有本质区别,不涉及卷积和注意力。并在多种视觉任务中取得了和 ConvNets,ViTs 相当的性能。

 





# 这里总结一些论文,包括多标签分类、姿态估计、目标检测、HOI、小样本学习等研究方向。

01 面向具有标注噪声的人脸表情识别

Attack can Benefit: An Adversarial Approach to Recognizing Facial Expressions under Noisy Annotations

大规模人脸表情数据集通常表现出极端的噪声标签问题,模型容易过拟合于噪声标签样本。同时,表情数据集也表现出极端的类别分布不均衡问题,两个问题相互耦合,给解决表情识别数据中的噪声标签问题带来困难。在本文中,我们提出一个全新的噪声标签定位和重标记方法,即使用对抗攻击来定位噪声标签样本。首先,为了减轻数据分布不平衡的影响,本文提出了一种分治策略,将整个训练集分成两个相对平衡的子集。

其次,基于两个观察结果 (1) 对于用噪声标签训练的深度卷积神经网络,决策边界附近的数据更难区分,更容易被错误标记; (2) 网络对噪声标签的记忆会导致显著的对抗弱点,我们设计了一种几何感知对抗弱点估计方法 ,能够在训练集中发现更多可攻击的数据并将其标记为候选噪声样本。最后,再使用剩余的干净数据来重新标记这些候选噪声样本。

实验结果表明,我们的方法达到了SOTA,相关的可视化结果也证明了所提出方法的优势。

w~视觉~合集19_视觉_73

02 联邦学习对抗鲁棒性研究

Delving into the Adversarial Robustness of Federated Learning

与集中式训练的模型类似,联邦学习(FL)训练的模型同样缺乏对抗鲁棒性。本文主要讨论了联邦学习中的对抗鲁棒性。为了更好地理解现有FL方法的鲁棒性,我们对各种对抗攻击和对抗训练方法进行了评估。

此外,我们揭示了在FL中直接采用对抗性训练所产生的负面影响,即这会严重损害了干净样本的准确率,尤其是在非独立同分布下中。在这项工作中,我们提出了一种基于决策边界的联邦对抗训练(DBFAT)的方法,它由两个组件(即局部重新加权和全局正则化)组成,以提高FL系统的准确性和鲁棒性。

在多个数据集上的大量实验表明,在IID和非IID设置下,DBFAT始终优于其他基线方法。

w~视觉~合集19_视觉_74

03 TaCo:一种基于对比学习的文本属性识别方法

TaCo: Textual Attribute Recognition via Contrastive Learning

随着办公数字化进程的持续提速,利用人工智能技术自动、快速、精准地解析输入文档图片的内容,并进一步理解、提取和归纳,即文档智能(DocAI),目前是计算机视觉和自然语言处理交叉学科的一个热门研究方向。在优图实际业务场景中,文档智能技术已经产出了良好的商业价值,在表单理解、版面分析等场景中起到了关键性的支撑。视觉富文档独有的多模态属性,即文本内容,图像信息及文档整体布局的高度耦合,既加大了问题的复杂性,也为技术创新提供了新的着力点。

文字是信息的重要载体。除内容外,其多样的视觉属性,如字体/颜色/斜体/粗体/划线,也传达了设计者的理念和思路。如能获取精准的文字视觉属性,对设计从业人员快速获取素材,以及文档图片转word这样的效率工具的开发有直接的助益。但数千种中英文字体,结合开放的配色设计及粗体,斜体等多种状态,即便对于文字设计专家来说,准确判断文字的视觉属性也是一个很大的挑战。因此,研发文字视觉属性识别能力的有潜力为广泛应用赋能。

设计文字视觉属性识别系统并不如想象中简单,因为文字视觉属性间的区别往往是细微的。以字体举例,两个不同字体间往往仅有细微的局部细节差异。与日俱增的新文字样式更近一步加剧了识别的困难,也对系统的泛化性提出了更高的要求。此外,我们在实际应用中观察到,即便是扫描PDF和精心拍摄的图片也会引入噪声和模糊,使细微的局部细节更加难以区分,加大了在特征空间中划分的难度。

从算法上看,文字视觉属性识别可定义为一个多标签分类问题,输入文本图片,输出文本的各个视觉属性。现有技术方案可以划分为三个类别:1)基于手工设计特征描述符和模板匹配的方法。通常不同文字属性具有不同的视觉风格,可通过统计特征来描述并识别;2)基于深度神经网络的分类方法,用网络提取特征并用于识别;3)基于序列的属性识别方法。基于实际场景的观察,单个文本行内的多个文字往往具有一致的属性。通过将输入图像视为连续的序列信号并建模时序关联,可利用字符间的相关信息和语义一致性来提升识别效果。

遗憾的是,以上方案受困于:1)数据预处理流程复杂。有监督方法依赖于大量专家标注数据;2)可扩展性差,仅支持部分预先定义的类别;3)准确性低,难以捕捉实际场景下相似属性的细微区别。

基于以上观察,我们设计了TaCo (Textual Attribute Recognition via Contrastive Learning)系统用以弥补鸿沟。

w~视觉~合集19_视觉_75

04 基于双生完形自编码器的自监督视觉预训练方法

The Devil is in the Frequency: Geminated Gestalt Autoencoder for Self-Supervised Visual Pre-Training

近年来,自监督掩模图像建模(MIM)范式由于其从未标记的数据中学习视觉表示的出色能力,正获得越来越多研究者的兴趣。该范式遵循从掩模图像中恢复内容的“掩模-重构”流程,为了学习高阶语义抽象表示,一系列研究工作尝试采用大比例掩模策略,重构像素。

然而,该类方法存在“过平滑”问题。相比而言,另一个方向的工作引入额外的数据,并采用离线方式直接在监督信息中融入语义。与上述方法不同,我们将视角转移到具有全局视角的傅里叶域,并提出了一种新的掩模图像建模(MIM)方法,称为双生完形自编码器(Ge2-AE),用于解决视觉预训练任务。

具体来说,我们为模型配备了一对并行的解码器,分别负责从像素和频率空间重构图像内容,两者相互约束。通过这种方法,预训练的编码器可以学习到更鲁棒的视觉表示,在下游识别任务上的一系列实验结果证实了这种方法的有效性。

我们还进行了定量和定性的实验来研究我们方法的学习模式。在业内,这是第一个从频域角度去解决视觉预训练任务的MIM工作。

w~视觉~合集19_视觉_76

05 定位再生成:基于视觉-语言连接包围框的场景文本视觉问答方法

Locate Then Generate: Bridging Vision and Language with Bounding Box for Scene-Text VQA

*本文由腾讯优图实验室和中国科技大学共同完成

本文提出了一种新的多模态场景文本视觉问答框架(STVQA),该框架可以读取图像中的场景文本进行问答。除了可以独立存在的文本或视觉对象外,场景文本在作为图像中的视觉对象的同时,通过传递语言语义,自然地将文本和视觉形态联系在了一起。

与传统的STVQA模型将场景文本中的语言语义和视觉语义作为两个独立的特征不同,本文提出了“先定位后生成”(LTG)范式,将这两种语义明确地统一起来,并以空间包围框作为桥梁连接它们。

具体来说,LTG首先利用由区域建议网络和语言细化网络组成的答案定位模块 (ALM)在可能包含答案词的图像中定位区域,两者通过场景文本边界框进行一对一映射转换。接下来,给定ALM选择的答案词,LTG使用基于预训练语言模型的答案生成模块 (AGM)生成可读的答案序列。采用视觉和语言语义显式对齐的好处是,即使没有任何基于场景文本的预训练任务,LTG也可以在TextVQA数据集和ST-VQA数据集上分别提高 6.06% 和 6.92%的绝对准确性,与非预训练基线方法相比,我们进一步证明,LTG通过空间包围框连接有效地统一了视觉和文本模式,这在之前的方法中研究尚浅。

w~视觉~合集19_视觉_77

06 基于少量真实样本指导的稳健网图原型学习

FoPro: Few-Shot Guided Robust Webly-Supervised Prototypical Learning

最近,基于互联网(图像)的监督学习(WSL)研究旨在利用来自互联网上的大量可访问数据。大多数现有方法都侧重于从互联网图像中学习出对噪声稳健的模型,而常常忽略了网络图像领域和真实世界业务领域之间的差异所造成的性能下降问题。只有解决了上述性能差距,我们才能充分挖掘互联网上开源数据集的实用价值。

为此,我们提出了一种名为FoPro的利用少量真实世界样本指导网络图像原型表示学习的方法。它只需要现实业务场景中的少量有标注样本,就可以显著提高模型在真实业务领域的性能。

具体地,本方法使用少量真实场景数据来初始化每个类别中心的特征表示,作为“现实”原型。然后,通过对比学习缩小网络图像实例和真实原型之间的类内距离。最后,该方法用度量学习的方式来衡量网络图像与各类别原型之间的距离。类别原型由表示空间内相邻的高质量网络图像不断修正,并参与移除距离较远的分布外样本(OOD)。

实验中,FoPro使用一些真实领域的样本指导网络数据集的训练学习,并在真实领域的数据集上进行了评估。该方法在三个细粒度数据集和两个大规模数据集上均实现了先进性能。与现有的WSL方法相比,在同样的少量真实样本实验设置下,FoPro在真实场景下的泛化性能表现出色。

w~视觉~合集19_视觉_78

07 一种通用的粗-细视觉Transformer加速方案

CF-ViT: A General Coarse-to-Fine Method for Vision Transformer

*本文由腾讯优图实验室和厦门大学共同完成

Vision Transformers (ViTs)的核心操作是self-attention,而self-attention的计算复杂度和输入token数目的平方成正比,因此压缩ViT计算量最直接的思路就是减少推理时的token数目,也即减少图像划分的patch数目。

本文通过两阶段自适应推理减少推理过程的token数目:第一阶段将图像划分为粗粒度(大尺寸)patch,目的是使用较少的计算量识别“简单”样本;第二阶段将第一阶段中信息量高的粗粒度patch进一步划分成细粒度(小尺寸)patch,目的是使用较少的计算量识别“困难”样本。

本文还设计了全局注意力用于识别信息量高的粗粒度patch,以及特征复用机制用于增大两阶段推理的模型容量。在不影响Top-1 准确率的情况下,该方法在ImageNet-1k上将LV-ViT-S的FLOPs降低53%, GPU上实测推理速度也加快了2倍。

w~视觉~合集19_视觉_79

08 通过视觉语言知识蒸馏的端到端人-物交互检测

End-to-End Zero-Shot HOI Detection via Vision and Language Knowledge Distillation

大多数现有的人-物交互检测方法严重依赖于具有预定义人-物交互类别的完整标注,这在多样性方面受到限制,并且进一步扩展成本高昂。我们的目标是推进零样本人-物交互检测,以同时检测可见和不可见人-物交互。基本的挑战是发现潜在的人-物对并识别新的人-物交互类别。为了克服上述挑战,我们提出了一种新的基于视觉语言知识提取的端到端零样本人-物交互检测框架。
我们首先设计了一个交互式评分模块,该模块与两阶段二部分匹配算法相结合,以动作不可知的方式实现对人-物对的交互区分。然后,我们将来自预训练的视觉语言教师的动作概率分布以及所看到的真相标注转移到人-物交互检测模型,以实现零样本人-物交互分类。在HICO Det数据集上的大量实验表明,我们的模型发现了潜在的交互对,并能够识别未知的人-物交互。最后,在各种零样本设置下,我们的方法优于先前的优秀方法。此外,我们的方法可推广到大规模目标检测数据,以进一步放大动作集。

w~视觉~合集19_视觉_80

09 基于多模态知识迁移的开放词典多标签学习

Open-Vocabulary Multi-Label Classification via Multi-modal Knowledge Transfer

分类模型在实际应用中不可避免的会遇到大量在训练集中未出现的标签。为了识别这些标签,传统的多标签零样本学习方法通过引入语言模型(如GloVe)来实现从训练集可见标签到训练集不可见标签的知识迁移。单模态的语言模型虽然很好地建模了标签之间的语义一致性,但忽视了图像分类中关键的视觉一致性信息。

近来,基于图文预训练模型的开放词典(Open-Vocabulary)分类模型在单标签零样本学习上取得了令人印象深刻的效果,但如何将这种能力迁移到多标签场景仍是亟待探索的问题。

在本文中,作者提出了一种基于多模态知识迁移(Multi-modal Knowledge Transfer, MKT)的框架实现了多标签的开放词典分类。具体的,作者基于图文预训练模型强大的图文匹配能力实现标签预测。为了优化标签映射和提升图像-标签映射的一致性,作者引入了提示学习(Prompt-Tuning)和知识蒸馏(Knowledge Distillation)。

同时,作者提出了一个简单但是有效的双流模块来同时捕捉局部和全局特征,提高了模型的多标签识别能力。在NUS-WIDE和OpenImage两个公开数据集上的实验结果表明,该方法有效实现了多标签的开放集合学习。

w~视觉~合集19_视觉_81

10 基于自适应层级分支融合的在线知识蒸馏算法摘要

Adaptive Hierarchy-Branch Fusion for Online Knowledge Distillation

*本文由腾讯优图实验室与华东师范大学共同完成

在线知识蒸馏无需使用预训练教师模型进行知识蒸馏,大大提高了知识蒸馏的灵活性。现有方法主要侧重于提高多个学生分支集成后的预测精度,往往忽略了使学生模型快速过拟合并损害性能的同质化问题。该问题来源于使用相同的分支架构和粗糙的分支集成策略。为了缓解此问题,在本文中提出了一种用于在线知识蒸馏的新型自适应层级分支融合框架,简称为AHBF-OKD。

该框架主要设计了层级分支结构和自适应层级分支融合模块来提高模型多样性,从而使不同分支的知识能够互补。特别地,为了有效地将知识从最复杂的分支转移到最简单的目标分支,本文提出了一种自适应层级分支融合模块来递归地创建层级间的辅助教师模块。在训练过程中,来自高层的辅助教师模块内的知识被有效地蒸馏给当前层次结构中的辅助教师模块和学生分支。因此,不同分支的重要性系数被自适应地分配以减少分支同质化。

大量实验验证了AHBF-OKD 在不同数据集上的有效性,包括 CIFAR-10/100 和 ImageNet 2012。例如,经过蒸馏的ResNet18 在 ImageNet 2012 上达到了29.28%的Top-1错误率。

w~视觉~合集19_视觉_82

11 基于图像间一致性的多人姿态估计方法

Inter-image Contrastive Consistency for Multi-person Pose estimation

近年来,多人姿态估计(MPPE)取得了令人瞩目的进展。然而,由于遮挡或者人体之间的外观差异很大,模型很难学习一致的关键点表征。本篇论文中,我们提出了图像间对比一致性方法,来加强 MPPE任务中图像之间的关键点特征的一致性。

具体来说,我们考虑双重一致性约束,包括单关键点对比一致性(SKCC)和成对关键点对比一致性(PRCC)。SKCC用来加强图像中同类别关键点的一致性,从而提高特定类别的鲁棒性。虽然 SKCC能使模型有效减少由于外观变化引起的定位错误,但由于缺乏关键点结构关系指导,在极端姿势(例如遮挡)下仍然具有挑战性。因此,我们提出PRCC来加强图像之间成对关键点关系的一致性。PRCC 与 SKCC 合作,进一步提高了模型在处理极端姿势时的能力。

在三个数据集(即 MS-COCO、MPII、CrowdPose)上的广泛实验表明,所提出的 ICON 比基线取得了较大的改进。

w~视觉~合集19_视觉_83

12 基于变分特征融合的少样本目标检测模型

Few-Shot Object Detection via Variational Feature Aggregation

由于少样本目标检测器通常在样本较多的基础类进行训练,并在样本较少的新颖类上进行微调,其学习到的模型通常偏向于基础类,并且对新颖类样本的方差敏感。为了解决这个问题,本文提出了基于元学习框架的两种特征聚合算法。

具体来说,本文首先提出了一种类别无关的特征聚合算法CAA,其通过聚合不同类别的查询(Query)和支持(Support)特征,使得模型学习到类别无关的特征表示,并减少了基础类与新颖类之间的混淆。

基于 CAA,本文又提出了变分特征聚合算法VFA,其通过将样本编码为类别的分布,实现了更加鲁棒的特征聚合。本文使用了变分自动编码器(VAE)来估计类别的分布,并从对样本方差更鲁棒的分布中抽样变分特征。

此外,本文解耦了分类和回归任务,以便在不影响目标定位的情况下,在分类分支上进行特征聚合。

w~视觉~合集19_视觉_84

 13 用于伪装物体分割的高分辨率迭代反馈网络

High-resolution Iterative Feedback Network for Camouflaged Object Detection

发现视觉同化到背景中的伪装对象对于物体检测算法和人类来说都是棘手的问题。因为两者都容易被前景对象与背景环境之间完美的内在相似性所迷惑或欺骗。

为了应对这一挑战,我们提取高分辨率纹理细节,以避免细节退化,因为这种细节退化会导致边缘和边界视觉模糊效应。我们引入了一种新颖的HitNet 网络框架,以迭代反馈方式通过高分辨率特征改进低分辨率表征,其实质是多尺度分辨率之间基于全局循环的特征交互。

另外,为了设计更好的反馈特征流并避免由递归路径引起的特征崩塌,我们提出了一种迭代反馈策略,以对每个反馈连接施加更多约束。

在四个具有挑战性的数据集上进行的大量实验表明,与 35 种先进的方法相比,我们的 HitNet 打破了性能瓶颈并取得了显着改进。此外,为了解决伪装场景中数据稀缺的问题,我们提供了一个将显着物体转换为伪装物体的应用程序,从而从不同的显着物体中生成更多的伪装训练样本,代码将公开。

w~视觉~合集19_视觉_85

14 SpatialFormer: 基于语义和目标感知注意力的小样本学习方法

SpatialFormer: Semantic and Target Aware Attentions for Few-Shot Learning

最近的小样本学习方法强调生成强区分性的嵌入特征,以准确计算支持集和查询集之间的相似性。当前基于 CNN 的cross-attention方法通过增强支持和查询图像对的相互语义相似区域来生成更有区分性的特征。然而,它存在两个问题:CNN 结构基于局部特征产生不准确的注意力图,以及互为相似的背景导致干扰。

为了缓解这些问题,我们设计了一种新颖的SpatialFormer结构,以基于全局特征生成更准确的注意力区域。传统的 Transformer 建模内在实例级相似性导致小样本分类准确率下降,而我们的SpatialFormer探索了对输入之间的语义级相似性以提高性能。

然后,我们提出两个注意模块,称为 SpatialFormer Semantic Attention (SFSA) 和 SpatialFormer Target Attention (SFTA),以增强目标对象区域,同时减少背景干扰。其中,SFSA 突出了对特征之间具有相同语义信息的区域,而 SFTA 找到了与基本类别相似的新特征的潜在前景对象区域。

大量实验证明了我们方法的有效性,并且我们在多个基准数据集上取得了更优的性能。

w~视觉~合集19_视觉_86

15 基于校正教师模型的稀疏标注目标检测

Calibrated Teacher for Sparsely Annotated Object Detection

完全监督的目标检测需要标注训练图像中的所有目标实例,但这需要大量的标注人力成本,同时在标注中往往存在有不可避免的漏标。图像中漏标的目标将会提供误导性的监督并损害模型训练,为此我们研究稀疏标注的目标检测方法,通过为遗漏的目标生成伪标签来减轻此问题。

早期的稀疏标注目标检测方法往往依赖于预设的得分阈值来筛选漏标框,但是在不同的训练阶段,不同的目标类别,以及不同目标检测器中,其有效阈值是不同的。因此,具有固定阈值的已有方法仍存在优化空间,并且需要针对不同的检测器繁琐地调整超参数。

为了解决这一障碍,我们提出了一个"校准教师模型",其中对预测的置信度估计经过得分校准,使其符合检测器的实际精度。从而,针对不同训练阶段以及不同检测器将具有相似的输出置信度分布,因此多个检测器可以共享相同的固定阈值并实现更好的性能。

此外,我们提出了一个简单但有效的FIoU机制,以降低因漏失标注而引起的假阴性目标的分类损失权重。

广泛的实验表明,我们的方法在12种不同的稀疏标注目标检测设置下达到了最优的性能。

w~视觉~合集19_视觉_87

16 基于大规模通用数据集的退化图像高分辨率GAN反演方法

High-Resolution GAN Inversion for Degraded Images in Large Diverse Datasets

在过去的几十年里,大量的、多样化的图像数据显示出越来越高的分辨率和质量。然而,我们获得的一些图像可能受到多种退化,影响了感知和下游任务的应用。我们需要一种通用的方法从退化的图像中生成高质量的图像。在本文中,我们提出了一个新的框架,利用StyleGAN-XL的强大生成能力进行反演来解决上述问题。

为了缓解StyleGAN-XL在反演时遇到的挑战,我们提出了聚类正则反演(CRI):(1)通过聚类将庞大且复杂的隐空间划分为多个子空间,并为反演过程找到更优的初始化起点,从而降低优化难度。(2)利用GAN网络隐空间的特性,在反演过程中引入带有正则化项的偏移量,将隐向量约束在能生成高质量图像的隐空间内。

我们在复杂的自然图像的多种修复任务(补全、上色和超分辨率)上验证了我们的CRI方案,在定量和定性方面都获得了较好的结果。我们进一步证明了CRI针对不同数据和不同的GAN模型是鲁棒的。

就我们所知,本文是首个采用StyleGAN-XL从受退化的自然图像中生成高质量图像的工作。

w~视觉~合集19_视觉_88

注:以上数据均为实验室数据 








# 视频场景解析挑战赛第一名方案详解

本方法在开发测试和最终测试中分别获得了63.71%和67.83%的mIoU分数。在CVPR 2024的野外挑战赛中获得了视频场景解析的第一名。

像素级场景理解是计算机视觉的基础问题之一,旨在识别给定图像中每个像素的对象类、mask和语义。与图像场景解析相比,视频场景解析引入了时间信息,可以有效提高预测的一致性和准确性,因为现实世界实际上是基于视频的,而不是静态的。

本文采用基于不可靠伪标签的半监督视频语义分割方法。然后,将教师网络模型与学生网络模型集成,生成伪标签并对学生网络进行再训练。本方法在开发测试和最终测试中分别获得了63.71%和67.83%的mIoU分数在CVPR 2024的野外挑战赛中获得了视频场景解析的第一名

简介

Video Scene Parsing in the Wild(VSPW)是一个视频语义分割数据集,包含3536个视频和124个类别的标注。由于各种语义分割数据集的可用性,图像语义分割取得了重大进展。该挑战旨在为VSPW中测试集视频的每个视频帧分配逐像素语义标签。挑战的突出评估指标是mIoU。随着深度神经网络的发展和大规模标注数据的可用性,视频语义分割(VSS)的能力得到了显著扩展。

VSS是视频图像分割的时空变化,旨在预测连续视频帧中的像素标签。与图像语义分割相比,现有的大多数VSS方法都强调对局部信息的利用。[4-6]这几种方法利用光流预测对帧之间的时间信息进行建模。然而,光流可能会导致不平衡的张力。ETC在每帧分段预测中使用了时间损失和新的速度一致性知识提取,作为光流的有效替代。MRCFA挖掘跨帧仿射关系,以实现更好的时间信息聚合。TMANet是第一个使用时间记忆注意力模块来捕捉VSS中帧之间的时间关系的工作。

LLVSS设计了一种高效的帧工作,包括自适应特征传播和自适应关键帧调度。DVIS通过将VSS框定为初始分割任务,然后进行跟踪,随后使用综合视频数据细化分割结果,从而简化了分割过程。CVPR 2023 PVUW VSS Track的第一位解决方案专注于增强具有对比损失的时空相关性,并利用具有标签映射的多数据集训练来提高模型性能。

方法

本节描述了网络的总体架构。然后介绍了一种基于不可靠伪标签的半监督视频语义分割方法。首先在有标签数据上训练教师网络和学生网络,然后使用教师网络生成伪标签,将它们与原始数据集组合形成新的数据集,然后对学生网络进行再训练。通过半监督训练,提高了模型在未标注数据集上的性能。

概述

Transformer是一种基于保持机制的神经网络模型,在自然语言处理和其他序列数据处理任务中取得了显著成功。近年来,随着Transformer技术的发展,它在分割领域也取得了显著进展。鉴于One peace算法在ADE2K数据集的语义分割领域取得了最先进的性能,选择它作为教师网络。同时选择ViT Adapter算法作为学生网络。

半监督方法

随着深度学习方法的发展,分割性能有了质的提高。然而,高性能的深度学习模型需要大量的数据和标注,尤其是像素级的标签,这需要巨大的人力和时间成本投资。因此,基于半监督学习的方法受到研究者的青睐。半监督学习的核心问题是有效地利用未标注样本作为标注样本的补充,从而提高模型的性能。传统的半监督方法通过筛选样本来保持高置信度的预测结果,但这些结果导致大量未标注的数据得不到有效利用,导致模型训练不足。对于一些不可预测的类别,很难将正确的标签分配给未标注的像素。因此,我们将不可靠的预测结果视为负样本来参与模型训练,让所有未标注的样本在训练过程中发挥有效作用。

伪标签策略

w~视觉~合集19_视觉_89

使用像素级熵来区分伪标签中的可靠像素和不可靠像素。

方法的pipeline

如图1所示,如何从未标注的数据中提取有效的信息是一个关键因素,因此使用半监督学习方法。具体来说,在第一步中,使用标注的训练数据来训练教师网络模型和学生网络模型,然后使用多尺度和水平翻转来增强测试和模型集成以生成伪标签。

w~视觉~合集19_视觉_90

然后,将未标注和标注的数据集组合成一个新的数据集,并继续微调学生网络模型。对于伪标签,使用像素级熵来过滤可靠像素和不可靠像素。对于作为负样本的不可靠像素,使用比较损失训练来确保在训练过程中可以有效地使用整个伪标签。

损失

对于每个标注的图像,目标是最小化等式(4)中的标准交叉熵损失。对于每个未标注的图像,首先使用教师模型进行预测。然后,使用像素级熵来忽略方程(5)中不可靠的像素级伪标签和无监督损失。使用对比损失来充分利用等式(6)中排除的不可靠像素。为了获得更好的分割性能,最大限度地减少整体损失,可以将其形式化为:

w~视觉~合集19_视觉_91

实验

本部分将描述方法的实现细节,并在PVUW2024挑战测试集上报告结果。

数据集

VSPW数据集标注了124类真实世界场景,其中包含3536个视频,总共251633帧。在这些视频中,训练集中有2806个视频,验证集中有343个视频,测试集中有387个视频。为了丰富我们的训练样本,训练集和验证集都用于训练。由于Transformer模型中的参数数量很大,增加训练样本的数量有利于提高模型的性能。引入了额外的数据来训练我们的模型,例如ADE200和COCO数据集。在训练阶段,我们的模型的主干在ImageNet22K数据集上进行预训练。COCO数据集用于在预训练阶段训练整个模型。通过标签重映射将COCO和ADE20k数据集标签映射到VSPW数据集,并且将VSPW中不存在的类别标为255。

训练配置

w~视觉~合集19_视觉_92

消融研究

随着transformer技术的快速发展,基于transformer的模型在密集目标检测和分割领域表现出了强大的特征表达能力,甚至在一些复杂场景中保持了良好的鲁棒性。因此,探索了基于transformer的模型在视频语义分割任务中的应用。不同骨干和方法的实验结果如表1所示。

w~视觉~合集19_视觉_93

从表中可以看出,选择One peace作为骨干的性能明显优于Swin-L、BEiT-L和ViT-Adapter-L。在随后的实验中,继续探索网络输入分辨率、多尺度和翻转增强测试、半监督训练和模型集成对分割性能的影响。

半监督训练

半监督学习旨在从未标注的数据中提取有效的信息,从而提高模型的性能。受此启发,选择了一个地方作为教师网络,ViT Adapter作为学生网络。首先,在标注的数据集上训练教师和学生网络,并通过多尺度和翻转增强的测试和模型验证生成伪标签。将未标注和标注的数据集组合到一个新的训练集中,以继续微调学生网络。

相信在半监督模型训练中,伪标签的每个像素都是重要的,即使它的预测是模糊的。直观地说,不可靠的预测可能会在概率最高的类别中直接混淆,但对于不属于其他类别的像素,它们应该具有可信度。因此,这样的像素可以被判断为最不可能类别中的负样本。从表3中可以看出,半监督训练和模型集成将mIoU提高了约0.4个百分点。

w~视觉~合集19_视觉_94

推理增强

在推理阶段,将继续探索影响模型性能的因素。通过对每个标度使用多尺度和水平翻转在mIOU度量上获得更高的分数,其中所选标度为[512./896.640./896.768/896.896.1024./896.1152./896.1280./896.1408./896.]。从表2和表3中可以看出,与单尺度结果相比,多尺度和水平翻转结果使mIoU指标增加了0.4个百分点。

w~视觉~合集19_视觉_95

为了进一步提高模型的性能,将裁剪尺寸为896的教师模型和学生模型集成在一起,并在PVUW测试部分1的mIOU上获得最高分数。通过结合多尺度和水平翻转增强测试、半监督训练学习和多模型集成技术,在PVUW语义分割挑战的最终测试集上取得了最先进的结果。最后,在最终测试集中获得了第一名,如表4所示。我们方法在VSPW测试集上的定性结果如图2所示。

w~视觉~合集19_视觉_96

w~视觉~合集19_视觉_97

结论

本文首先选择了一个非常适合多类语义分割任务的强基线模型。采用了一种基于不可靠伪标签的半监督视频信号分割方法。方法有效地利用未标注样本作为标注样本的补充,以提高模型性能。提出了一种集成方法,通过融合不同模型的结果来获得更准确的概率。这些技术结合在一起,创造了一个全面的解决方案,在CVPR 2024大会上获得了PVUW挑战VSS赛道的第一名。结果证明了解决方案在解决多任务语义分割问题方面的有效性和通用性。




# EdgeNet

在深度神经网络时代,深度神经网络(DNNs)在视觉分类任务中展现出了卓越的准确性。然而,它们对额外噪声,即对抗性攻击,表现出了脆弱性。先前的研究假设这种脆弱性可能源于高准确度的深度网络过度依赖于与纹理和背景等无关紧要且不鲁棒的特征。

最近的AAAI 2024学术会议上,悉尼大学的研究人员们揭示了「从图像中提取的边缘信息」能够提供与形状和前景相关的相关性强且鲁棒的特征。

论文链接:https://ojs.aaai.org/index.php/AAAI/article/view/28110

这些特征在帮助预训练深度网络改善对抗鲁棒性的同时,还不影响其在清晰图像上的准确性。

作者们提出了一种轻量级且即插即用的EdgeNet,可以无缝集成到现有的预训练深度网络中,包括Vision Transformers (ViTs),这是最新一代用于视觉分类的先进模型家族。

EdgeNet可以处理从干净的自然图像或嘈杂的对抗性图像中提取的边缘,产生鲁棒的特征,可以注入到预训练好并被冻结的的骨干深度网络的中间层。

值得注意的是,这种方法带来的额外成本极低:使用传统的边缘检测算法(例如文中所用的 Canny 边缘检测器)获取这些边缘的成本与深度网络的推理成本相比微乎其微;而训练EdgeNet 的成本则与使用诸如 Adapter 等技术对骨干网络进行微调的成本不相上下。

EdgeNet 架构

为了将图像中的边缘信息注入到预训练的骨干网络中,作者引入了一个名为 EdgeNet 的侧支网络。这个轻量级、即插即用的侧枝网络可以无缝地集成到现有的预训练深度网络中,包括像 ViTs 这样的最新模型。

EdgeNet 通过处理从输入图像中提取的边缘信息运行。这个过程产生了一组具有鲁棒性的特征,可以被选择性地注入到预训练好并被冻结的骨干深度网络的中间层。

通过注入这些鲁棒特征,能够提升网络在防御对抗性扰动方面的能力。同时,由于骨干网络是被冻结的,而新特征的注入是有选择性的,所以可以保持预训练网络在识别未经扰动的清晰图像方面的准确性。

w~视觉~合集19_视觉_98

w~视觉~合集19_视觉_99

EdgeNet 构建块

为了实现选择性特征提取和选择性特征注入,这些 EdgeNet 构建块采取了一种“三明治”结构:每个块的前后都添加了零卷积(zero convolution)来控制输入与输出。在这两个零卷积之间是一个具有随机初始化的、与骨干网络架构相同的 ViT block

w~视觉~合集19_视觉_100

训练目标

在训练 EdgeNet 的过程中,预训练好的 ViT 骨干网络除了分类头均被冻结住,不进行更新。优化目标仅专注于为边缘特征引入的 EdgeNet 网络,以及骨干网络内的分类头。在这里,作者采用了一个非常简化的联合优化目标以保障训练的效率:

w~视觉~合集19_视觉_101

在公式 9 中,α 是准确性损失函数的权重,β 是鲁棒性损失函数的权重。通过调整 α 和 β 的大小,可以微调 EdgeNet 训练目标的平衡性,以达到在提升其鲁棒性的同时不显著损失准确性的目的。

实验结果

作者们在 ImageNet 数据集上针对两大类鲁棒性进行了测试。

第一类是抵御对抗攻击的鲁棒性,包括白盒攻击与黑盒攻击;

第二类是抵御一些常见的扰动的鲁棒性,包括 ImageNet-A 中的自然对抗样本(Natural Adversarial Examples),ImageNet-R 中的分布外数据(Out-of-Distribution Data)和 ImageNet-C 中的常见数据扭曲(Common Corruptions)。

作者还针对不同扰动下提取到的边缘信息进行了可视化。

w~视觉~合集19_视觉_102

网络规模与性能测试

在实验部分,作者首先测试了不同规模 EdgeNet 的分类性能和计算开销(Table 1)。在综合考虑分类性能和计算计算开销后,他们确定 #Intervals = 3的配置为最佳设置。

在这个配置中,EdgeNet 与基准模型相比获得了显著的准确度和鲁棒性提升。它在分类性能、计算要求和鲁棒性之间取得了平衡的妥协。       

w~视觉~合集19_视觉_103

该配置在保持合理的计算效率的同时,在清晰准确度和鲁棒性方面取得了实质性的增益。

准确性与鲁棒性对比

作者将他们提出的 EdgeNet 与5个不同类别的 SOTA 方法进行了对比(Table 2)。这些方法包括在自然图像上训练的 CNNs、鲁棒的 CNNs、在自然图像上训练的 ViTs、鲁棒的ViTs 和经过鲁棒微调的ViTs。

考虑的指标包括在对抗攻击(FGSM 和 PGD)下的准确性、在ImageNet-A上的准确性以及在ImageNet-R上的准确性。

此外,还报告了ImageNet-C 的平均错误(mCE),较低的值表示更好的性能。实验结果表明 EdgeNet 在面对 FGSM 和 PGD 攻击时展现出卓越的性能,同时在清晰的 ImageNet-1K 数据集及其变体上表现出与先前 SOTA 方法相持平的水平。

w~视觉~合集19_视觉_104

除此之外,作者还开展了黑盒攻击的实验(Table 3)。实验结果表明,EdgeNet 也能十分有效的抵挡黑盒攻击。

w~视觉~合集19_视觉_105

结论

在这项工作中,作者提出了一种名为 EdgeNet 的新方法,它通过利用从图像中提取到的边缘信息,可以提升深度神经网络(特别是 ViTs)的鲁棒性。

这是一个轻量级且可以无缝集成到现有网络中的模块,它能够有效的提高对抗性鲁棒性。实验证明,EdgeNet 具有高效性——它仅带来了极小的额外计算开销。

此外 EdgeNet 在各种鲁棒基准上具有广泛适用性。这使其成为该领域引人注目的进展。

此外,实验结果证实,EdgeNet 可以有效抵抗对抗性攻击,并能在干净图像上保持的准确性,这突显了边缘信息在视觉分类任务中作为鲁棒且相关特征的潜力。

值得注意的是,EdgeNet 的鲁棒性不仅限于对抗性攻击,还涵盖了涉及自然对抗性示例(ImageNet-A)、分布之外的数据(ImageNet-R)和常见破坏(ImageNet-C)情景。

这种更广泛的应用凸显了EdgeNet的多功能性,并显示其作为视觉分类任务中多样挑战的全面解决方案的潜力。

参考资料:

https://ojs.aaai.org/index.php/AAAI/article/view/28110