
FocalNet
突破注意力机制的新型视觉模型架构
FocalNet是一种创新的视觉模型架构,无需使用注意力机制。其核心的焦点调制技术在多项视觉任务中超越了现有的自注意力方法。该模型在ImageNet分类和COCO检测等基准测试中表现优异,同时保持了高效简洁的实现。FocalNet具有平移不变性、强输入依赖性等特点,为计算机视觉领域提供了一种全新的建模思路。
FocalNets图像分类目标检测语义分割卷积神经网络Github开源项目
焦点调制网络
这是FocalNets的官方PyTorch实现:
"焦点调制网络",作者:Jianwei Yang、Chunyuan Li、Xiyang Dai、Lu Yuan和Jianfeng Gao。
新闻
- [2023/11/07] 研究人员表明,Focal-UNet在多个 地球系统分析基准测试中优于以往的方法。查看他们的代码、论文和项目!
- [2023/06/30] :collision: 请从huggingface查找FocalNet-DINO检查点。旧链接已废弃。
- [2023/04/26] 通过与FocalNet-Huge骨干网络结合,Focal-Stable-DINO在COCO测试开发集上实现了64.8 AP,无需任何测试时增强!查看我们的技术报告了解更多详情!
- [2023/02/13] FocalNet已集成到Keras,查看教程!
- [2023/01/18] 查看一个精选论文列表,介绍基于现代卷积和调制的超越注意力的网络!
- [2023/01/01] 研究人员表明,Focal-UNet在多个医学图像分割基准测试中优于Swin-UNet。查看他们的代码和论文,新年快乐!
- [2022/12/16] :collision: 我们很高兴发布我们在Object365上预训练并在COCO上微调的FocalNet-Large-DINO检查点,它在COCO minival上无需测试时增强就能达到63.5 mAP!快来看看吧!
- [2022/11/14] 我们创建了一个新的仓库FocalNet-DINO来存放使用DINO复现目标检测性能的代码。我们将在那里发布目标检测代码和检查点。敬请期待!
- [2022/11/13] :collision: 我们发布了在ImageNet-22K上预训 练的大型、超大型和巨型模型,包括我们用来在COCO目标检测排行榜上取得最佳成绩的模型!
- [2022/11/02] 我们写了一篇博客文章,以通俗的方式介绍了FocalNets背后的见解和技术,快来看看吧!
- [2022/10/31] :collision: 基于强大的OD方法DINO,我们在COCO minival上达到了64.2 box mAP的新最佳成绩,在COCO test-dev上达到了<strike>64.3</strike> 64.4 box mAP的新最佳成绩!我们使用的巨型模型(700M)击败了更大的基于注意力的模型,如SwinV2-G和BEIT-3。查看我们的新版本并保持关注!
- [2022/09/20] 我们的FocalNet已被NeurIPS 2022接收!
- [2022/04/02] 在huggingface space创建了一个gradio演示来可视化调制机制。快来看看吧!
简介
<p align="center"> <img src="https://yellow-cdn.veclightyear.com/835a84d5/b3cc1b2d-27b8-40f2-863c-7eabb96164c8.png" width=95% height=95% class="center"> </p> 我们提出了**FocalNets:焦点调制网络**,这是一种**无注意力**架构,在各种视觉基准测试中的表现优于最先进的自注意力(SA)方法。如上所示,SA是一个先交互后聚合(FILA)的过程。我们的焦点调制则颠倒了这个过程,采用先聚合后交互(FALI)。这种颠倒带来了以下几个优点:- 平移不变性:对每个目标令牌执行,以其周围的上下文为中心。
- 显式输入依赖:通过聚合输入的短程和长程上下文来计算调制器,然后应用于目标令牌。
- 空间和通道特定:首先在空间维度聚合上下文,然后在通道维度聚合,之后进行逐元素调制。
- 解耦特征粒度:查询令牌保留最细粒度的个体信息,而在其周围提取较粗粒度的上下文。两者通过调制操作解耦但相连。
- 易于实现:我们可以以非常简单和轻量级的方式实现上下文聚合和交互。不需要softmax、多头注意力、特征图滚动或展开等。
在开始之前,看看我们的FocalNets学会了如何感知图像以及在哪里进行调制!
<p align="center"> <img src="https://yellow-cdn.veclightyear.com/835a84d5/ec202c51-dfc1-4e31-9602-1b5f438ce222.png" width=90% class="center"> </p>最后,FocalNets是由卷积层和线性层构建的,但通过提出一种简单、通用、有效且高效的新型调制机制而更进一步。我们在此推荐:
焦点调制可能是我们视觉建模所需要的!
入门
基准测试
ImageNet-1K上的图像分类
- 与多尺度Swin和Focal Transformers的严格对比:
模型 | 深度 | 维度 | 核大小 | 参数量 (M) | FLOPs (G) | 吞吐量 (图片/秒) | Top-1 准确率 | 下载 |
---|---|---|---|---|---|---|---|---|
FocalNet-T | [2,2,6,2] | 96 | [3,5] | 28.4 | 4.4 | 743 | 82.1 | ckpt/config/log |
FocalNet-T | [2,2,6,2] | 96 | [3,5,7] | 28.6 | 4.5 | 696 | 82.3 | ckpt/config/log |
FocalNet-S | [2,2,18,2] | 96 | [3,5] | 49.9 | 8.6 | 434 | 83.4 | ckpt/config/log |
FocalNet-S | [2,2,18,2] | 96 | [3,5,7] | 50.3 | 8.7 | 406 | 83.5 | ckpt/config/log |
FocalNet-B | [2,2,18,2] | 128 | [3,5] | 88.1 | 15.3 | 280 | 83.7 | ckpt/config/log |
FocalNet-B | [2,2,18,2] | 128 | [3,5,7] | 88.7 | 15.4 | 269 | 83.9 | ckpt/config/log |
- 与等向ViT模型的严格对比: | 模型 | 深度 | 维度 | 核大小 | 参数量 (百万) | FLOPs (十亿) | 吞吐量 (图/秒) | Top-1准确率 | 下载 | :----: | :---: | :---: | :---: | :---: | :---: | :---: | :---: |:---: | | FocalNet-T | 12 | 192 | [3,5,7] | 5.9 | 1.1 | 2334 | 74.1 | 模型/配置/日志 | FocalNet-S | 12 | 384 | [3,5,7] | 22.4 | 4.3 | 920 | 80.9 | 模型/配置/日志 | FocalNet-B | 12 | 768 | [3,5,7] | 87.2 | 16.9 | 300 | 82.4 | 模型/配置/日志
ImageNet-22K预训练
模型 | 深度 | 维度 | 核大小 | 参数量 (百万) | 下载 |
---|---|---|---|---|---|
FocalNet-L | [2,2,18,2] | 192 | [5,7,9] | 207 | 模型/配置 |
FocalNet-L | [2,2,18,2] | 192 | [3,5,7,9] | 207 | 模型/配置 |
FocalNet-XL | [2,2,18,2] | 256 | [5,7,9] | 366 | 模型/配置 |
FocalNet-XL | [2,2,18,2] | 256 | [3,5,7,9] | 366 | 模型/配置 |
FocalNet-H | [2,2,18,2] | 352 | [3,5,7] | 687 | 模型/配置 |
FocalNet-H | [2,2,18,2] | 352 | [3,5,7,9] | 689 | 模型/配置 |
注意:我们重新排序了imagenet-22k的类名,以便可以直接使用前1k个logits来评估imagenet-1k。我们提醒,imagenet-1k中的第851个类(标签=850)在imagenet-22k中缺失。请参考此标签映射。更多讨论请查看此问题。
COCO数据集上的目标检测
- Mask R-CNN | 骨干网络 | 核心 | 学习率调度 | 参数量 (百万) | FLOPs (十亿) | 边界框mAP | 掩码mAP | 下载 | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | | FocalNet-T | [9,11] | 1x | 48.6 | 267 | 45.9 | 41.3 | 检查点/配置/日志 | FocalNet-T | [9,11] | 3x | 48.6 | 267 | 47.6 | 42.6 | 检查点/配置/日志 | FocalNet-T | [9,11,13] | 1x | 48.8 | 268 | 46.1 | 41.5 | 检查点/配置/日志 | FocalNet-T | [9,11,13] | 3x | 48.8 | 268 | 48.0 | 42.9 | 检查点/配置/日志 | FocalNet-S | [9,11] | 1x | 70.8 | 356 | 48.0 | 42.7 | 检查点/配置/日志 | FocalNet-S | [9,11] | 3x | 70.8 | 356 | 48.9 | 43.6 | 检查点/配置/日志 | FocalNet-S | [9,11,13] | 1x | 72.3 | 365 | 48.3 | 43.1 | 检查点/配置/日志 | FocalNet-S | [9,11,13] | 3x | 72.3 | 365 | 49.3 | 43.8 | 检查点/配置/日志 | FocalNet-B | [9,11] | 1x | 109.4 | 496 | 48.8 | 43.3 | 检查点/配置/日志 | FocalNet-B | [9,11] | 3x | 109.4 | 496 | 49.6 | 44.1 | 检查点/配置/日志 | FocalNet-B | [9,11,13] | 1x | 111.4 | 507 | 49.0 | 43.5 | 检查点/配置/日志 | FocalNet-B | [9,11,13] | 3x | 111.4 | 507 | 49.8 | 44.1 | 检查点/配置/日志
- 其他检测方法
主干网络 | 核大小 | 方法 | 学习率调度 | 参数量 (M) | FLOPs (G) | 边界框mAP | 下载 |
---|---|---|---|---|---|---|---|
FocalNet-T | [11,9,9,7] | 级联Mask R-CNN | 3x | 87.1 | 751 | 51.5 | 检查点/配置/日志 |
FocalNet-T | [11,9,9,7] | ATSS | 3x | 37.2 | 220 | 49.6 | 检查点/配置/日志 |
FocalNet-T | [11,9,9,7] | 稀疏R-CNN | 3x | 111.2 | 178 | 49.9 | 检查点/配置/日志 |
ADE20K上的语义分割
- 分辨率512x512,迭代次数160k
主干网络 | 核大小 | 方法 | 参数量 (M) | FLOPs (G) | mIoU | mIoU (多尺度) | 下载 |
---|---|---|---|---|---|---|---|
FocalNet-T | [9,11] | UPerNet | 61 | 944 | 46.5 | 47.2 | 检查点/配 置/日志 |
FocalNet-T | [9,11,13] | UPerNet | 61 | 949 | 46.8 | 47.8 | 检查点/配置/日志 |
FocalNet-S | [9,11] | UPerNet | 83 | 1035 | 49.3 | 50.1 | 检查点/配置/日志 |
FocalNet-S | [9,11,13] | UPerNet | 84 | 1044 | 49.1 | 50.1 | 检查点/配置/日志 |
FocalNet-B | [9,11] | UPerNet | 124 | 1180 | 50.2 | 51.1 | 检查点/配置/日志 |
FocalNet-B | [9,11,13] | UPerNet | 126 | 1192 | 50.5 | 51.4 | 检查点/配置/日志 |
可视化
我们的FocalNets包含三个步骤:
- 使用深度卷积进行上下文化;
- 通过门控机制进行多尺度聚合;