阅读笔记-Image as Set of Points

论文链接:https://arxiv.org/pdf/2303.01494.pdf
项目链接:https://github.com/ma-xu/Context-Cluster


ICLR 2023 oral, 这篇文章提供了一种图像特征抽取的新视角。

  1. 动机和贡献

The way we extract features depends a lot on how we interpret an image.

  • 对于ConvNets而言,图像被认为是以矩形存储的有组织的像素点,通过在local region中的卷积操作辅以滑动窗操作实现特征的抽取。其优势在于局部性和平移不变性带来的归纳偏置。
  • ViTs 则将图像看成patches的序列,通过global-range self-attention操作自适应的从patches之间融合信息,其抛弃了ConvNets的归纳偏置,因此理论上能够获得可喜的结果。

尽管CNN和ViTs在视觉领域影响非常大,但他们并非唯二的选择。

  • MLP-based 框架证明纯基于MLP的设计同样能够得到相似的性能;
  • 另外,图网络也被证明是提取图像特征的有效提取器。

本文则希望能够抛开CNN或者ViTs这种潜意识的固有选择,从一种更新的角度去看待图像,从而找到一种新的特征提取方式。具体而言,作者将图像视作一堆类似点云的点的集合,从而去掉了rectange shape和sequence这种归纳偏置,且能够更好的融合不同模态的数据,比如Fig10中给出的非标准rectangle图像。在确定了看待图像的方式之后,作者提出了一种基于简单****聚类算法****的特征提取方式

image.png

本文方法相对于CNN和ViTs的优势:

  • 通过将图像视作点集, CoCs(Context Clusters) 能够具有在不同数据域内更强大的泛化能力,比如点云,RGBD图像等;
  • 上下文信息的聚类能够提供更好的解释性,通过可视化每一层被聚在一起的点可以更好的理解该层的作用。
  • 虽然文章出发点并不是寻找一个最优的特征提取器,但本文给出的模型依然在不同任务中取得了和SOTA可比的性能。

2. 方法阐述

Pipeline 套用了CNN和ViTs的层次化结构,划分成不同的stage,每个stage开始是一层降分辨率的操作,然后堆叠若干从Context Cluster Blocks用于特征交互。Context Cluster Block 结构和MetaFormer一致,决定了其下限不会差,如Figure2所示,显示特征交互层,然后是MLP进行channel的融合,另外同样的skip connections操作。


image.png

image.png

2.1 From Image to Set of Points

将图像上的每个点使用5维向量表示[r,g,b,x, y], 其中x,y是以图像中心点为远点归一化之后的坐标。每个点的特征既包含了表观特征也包含了位置信息, 从而这些points 可以是无序的。当然,更复杂有效的位置编码方式肯定能改善性能,但不是本文的重点,因此没有进一步探讨。

2.2 Feature Extraction with Image Set Points

为了搭建层次结构,每个stage的第一层是points的缩减层。具体而言在整张图像平面均匀的选择anchors,然后其k近邻的点的特征cat在一起,经过线性层编码得到新的空间。这里如果points 是以rectangele排列的话,本质上就是Conv操作。当然其泛化性体现在针对于非rectangle排列的拓扑结构同样适用。

2.3 Context Cluster block

2.3.1 Context Clustering

对于输入的n个points,通过特征的余弦相似度将每个点划分到不重叠的group中。具体而言,首先将特征P线性投影到新空间 P_s, 然后在空间中均匀的划分出c个中心点,中心点的特征则由其k个最近邻点的特征平均得到。然后计算每个点与中心点的余弦相似度S\in R^{c\times n}, 由于每个点的特征包含位置信息,因此相似度矩阵隐式的包含了局部约束。值得注意的是这里的cluster和CNN以及ViT中的locality相比更自由,划分之后每个cluster包含不同的points数目,甚至有些cluster没有任何point,这些cluster则是冗余类别。

image.png

2.3.2 Feature Aggregating

同一个cluster的points的特征用于更新中心点的特征。假设某一cluster包含了m 个points, 中心点和每个点的特征相似度是s\in R^m,首先将point的特征做一次映射(类似于ViTs中的V)P_v \in R^{m\times d'},另外这里的中心点特征v_c也是同样空间的特征, 于是中心点更新后的特征为
g=\frac{1}{C}\Big( v_c + \sum_{i=1}^m sig(\alpha s_i + \beta) * v_i\Big) ~~~~ \text{s.t.} C=1 + \sum_{i=1}^m sig(\alpha s_i + \beta)
其中sig是sigmoid函数,\alpha , \beta是可学习变量。某种程度上可以类似于self attention中的softmax(qK^T)\cdot V,文章这里解释了下为什么使用sigmoid,且没有使用softmax的原因是同一个cluster一般被认为相似度非常大,不存在冲突,因此sigmoid能够保证是正值,从每个point中取一部分特征,而softmax的话其稀疏性主要用于从存在冲突的多个point中选一部分。v_c的引入类似于skip connection,主要是为了数值稳定性以及强化locality。

2.3.3 Feature Dispatching

整个context cluster block类似于squeeze-expand 结构,相同cluster中的points 经过2.3.2 聚合到center point之后,再分配到每一个point上,这里可以理解成按比例分配个不同的point。同样也是使用了skip connection结构。
p_i'=p_i+FC(sig(\alpha s_i + \beta)*g)

2.3.4 Multi-Head Computing

类似于self-attention结构,multi-head同样可以引入到context cluster计算中。在P_v空间内将特征划分n个head,然后经过feature aggregationg和feature dispatching之后,再经过FC层进行channel上的融合。

2.4 Task-Specific Application

对于分类问题,从最后一个stage的最后一个block的输出,经过FC层进行分类。
对于下游密集预测任务,比如检测和分割,需要在每个stage的最后一层block的输出上rearange 输出points,然后送到不同的任务头中。

2.5 Architecture parameters

k_neighbors: 用于下采样而选择的近邻点个数
downsampler_r: 下采样率
regions:为了降低计算量,类似于Swin-Transformer,划分window的数目
local_centers: 每个regions中划分的类别数
mlp_r: 每个block的mlp中特征放大率


image.png

2.6 Discussion

  • Fixed or Dynamic centers for clusters?
    Dynamic centers性能会更好,但需要多次iteration,时间消耗太大,因此fixed centers是accuracy和speed比较好的折衷。
  • Overlap or non-overlap clustering?
    Although it might produce higher performance, overlapped clustering is not essential to our approach and could result in extra computing burdens

3. 实验分析

3.1 图像分类

数据增强:随机水平翻转、随机擦除、mixup, cutmix, label smoothing
优化策略:AdamW, momentum=0.9, wd=0.05, lr=0.001, bs=1024, cosine schedular, EMA
训练长度:310 epochs

3.1.1 分类指标

image.png

image.png

Table 2给出了分类任务上的消融实验,可以发现multi-head 有0.9的提升,context cluster 提升比较显著(这里猜测不使用CoC应该是不适用cluster这种方式划分group?)最后如果去掉position info., 所有的像素点都是纯无序的,训练不收敛。
Table 9 对比了是否划分region(window)对分类指标的影响,发现如果global的话,指标会有提升,但显存和训练时间都会显著增大。

image.png

3.1.2 可视化分析

image.png
  • CoCs 在最后一个stage上能够看到goose以及背景的草都被聚成对应的类,前面stage结果更加精细。
  • CoCs在第一个stage的输出就能够得到很强的语义信息,而CNN这种一般只是边线信息;
  • CoCs不单单考虑到局部信息,比如图中黄色区域并不是连在一起的,也会被划分到相同cluster中。再次验证了文章的设计哲学:只是希望相似的点被聚类而非限制感受野

3.2 3D点云分类

image.png

3.3 目标检测和实例分割

pretrain:ImageNet分类任务的ckpt
训练策略:1x scheduler


image.png

4. 总结

文章感觉不足在于没有做细致的时间分析,且文章强调了该方法适合处理irrectangle 图像,却没有给出这方面的分析实验。
一些思路:

  • 聚类的思想确实能够更直观的给出每一层学到的状态,这个操作也可以用在ViT的划分窗口中。
  • 聚类是否能解决BEV中的拖尾现象
  • 这个思路可以用于超分图像
  • 也可以尝试用于图像恢复
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,588评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,456评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,146评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,387评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,481评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,510评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,522评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,296评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,745评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,039评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,202评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,901评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,538评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,165评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,415评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,081评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,085评论 2 352

推荐阅读更多精彩内容