w~视觉~合集8
拿经典的人脸检测任务了一把,怼上各种合理的,不合理的操作之后。我们的网络性能较之前在wider face hard上提升了5个点(这里是在yolov5原版的基础上提升的,但是可能和我用的是小模型,加上hard数据比较难导致的,不一定有代表意义)。模型大概就是一个朴实无华的mini vgg + fpn,没有反卷积,3个输出层,每个点输出一个Anchor,整体结构非常清新。在224X224分辨率下大概
我自己的原文哦~ https://blog.51cto.com/whaosoft/13775534
#xx1
基于mxnet的训练代码迁移到pytorch上和 在yolov5的代码基础上验证了一些目标检测的想法一起发了
在迁移mxnet训练代码的时候,很长一段时间结果都无法对齐,于是我不得不又重新认真的读了一下之前撸的mxnet代码,在看的过程中发现了很多之前留下来的备注。我都已经不记得是否有尝试过,索性就结合最近的一些思路,看看自己的一些想法是否科学。
分析
讨论不同的检测方法,核心点就是目标分配和loss函数的使用了。毕竟数据准备,网络结构,训练技巧等等大家都能用。所以先简单叙述一下我的认知,为后续做个铺垫。
1、目标分配
- 在传统方法中,我们一般使用图像金字塔+滑动窗口进行图像切分,然后使用传统的特征抽取方法进行分类。这个时候滑窗和目标达到一定的IOU我们就认定为正样本,低于某个值就是负样本,中间值直接舍去。
- 在基于anchor的方法中,我们一般使用密集铺设的anchor和目标计算IOU,大于某个值作为正样本,小于某个值为负,中间值舍去。这时候就跳出了一些略微特殊的方法,比如yolo计算的是wh的IOU,然后忽略样本是预测结果和标签的IOU大于某个值(正样本不改变,只改负样本)。
- 在anchor free的方法中(或者很多方法可以称为point anchor),我们可以使用高斯核,可以使用固定范围,可以自适应等等来区分正负样本。
- 端到端的方法目前我认为还不是很成熟,也就不说了。
2、损失函数
损失函数其实单独拿出来说不是特别科学,因为损失函数需要和具体的样本划分以及标签设置有关系。比较常见的就是交叉熵,l1 ,l2,soomth l1,focal家族等等。
尝试
我这次所有的尝试都是基于修改版本的yolov5代码。原版的yolov5正负样本采用wh和anchor的比例最大值来决定。在可视化训练标签和样本后发出几个疑问。
1)样本的划分是否合理?
首先看几个示例
红色表示目标中心在特征图上的位置,每次都会取,也是yolo前几代的正样本点。橙色点是yolov5新增加的,每次会从4个橙色点中取出两个相邻的结果,如示例。
现在考虑一些问题:
1、橙色点的贡献应该是均等的吗?例如x=3.51和x=3.99,在取值的时候都会取x=3,4这两个点。当目标比较大的时候贡献均等与否影响不大,但是目标较小的时候是否也能均等贡献?
2、不同大小的目标都只取3个点吗?按照yolov5的设置,在同一层上的目标,最大的比例宽度为16倍。简单解释一下,例如Anchor的w为8,设置的比例阈值为4,那么最小的w为2,最大的w为32。当我们在同一层上进行预测的时候,小目标可能跨度都不够2个网格,大目标跨度是小目标的数倍。那我们都取同样的正样本点,甚至正样本点都不在目标范围内,这是否合适?
3、除去正样本就是负样本这样合适吗?还是刚刚的例子x=3.51时,我们认为3,4为正样本点,2为负样本点。但实际上2,4到中心的差距只差0.02 他们的贡献就应该一正一负吗?
4、直接按照宽高比例取,导致某些点被重复使用这样影响大吗?我们在取点的时候不会判断是否被之前的目标使用,而是按照标签去直接取点运算。这就会导致某些点被多次使用,尤其是目标比较密集的时候。这点在和yolov5的作者讨论的时候也说到了,后面会有当时讨论的修改方案和结果。
5、如果我们选择的Anchor不合理,就会导致某些目标同时出现在所有Anchor或者说所有预测层上,这样强制学习是否可靠?
6、某些标签会被漏掉,例如宽高比例差距很大的数据。漏掉的如何补充进训练数据?
再看一个yolov5训练的特征可视化结果:
yolov5置信度可视化
从特征可视化结果来看,整体倾向于标签选择方式,类似直角三角形的直角边为高可信度区域。但这就有个问题靠近直角边中间的区域,以及反向区域,就应该是低置信度吗?
pytorch 特征可视化:https://zhuanlan.zhihu.com/p/388435039
2)尝试修正不合理
1、关于不同点的贡献是否均等的问题,尝试使用距离比例来解决,选定的正样本点,以到实际目标中心点的距离来决定正样本指数的比例,如x=3.51和x=3.99则比例分别为0.51和0.99;当x=3.49和x=3.01时比例为0.51和0.99(注意这里是取的3,2了,不是3,4)。
2、针对不同目标大小使用fcos中的方式,设置一个范围然后取半径内的点。这样就会出现某些目标只会有中心一个点,有的目标可能有半径3范围内的16个点。
3、直接非正即负的方式替换为预测值和真实标签大于某个值得时候,ignore掉负样本。
4、重复点采用两种方式解决,第一种是直接暴力去重使用torch.unique加上一堆操作来实现,第二种是根据预测结果的iou,选择高iou的结果。
5、合理设置Anchor,相邻层的Anchor比例设置为宽高阈值以上。
6、学习前几代yolo的操作,强制把漏掉的样本加入训练中。
3)看上去无关的尝试
1、别人说好用的loss,都拿来试一下,比如GFL这种神器,比如VFL这种不知名的武器,比如OHEM操作等等。
2、Anchor的数量和值,是否真的影响非常大。
3、各种超参数的组合拳。
4)尝试的结果
1、超参数的调整基本没有意义,影响较大的是影响loss比例的参数,这个需要确保yolov5的box loss和obj loss最终的比例大致在1:2左右,这样会收敛到比较好的结果。
2、Anchor选择
- [192,240, 384,480, 512,640] # P5/32
- [48,60, 96,120, 144,180] # P4/16
- [12,15, 24,30, 36,45] # P3/8
- [192,240] # P5/32
- [48,60] # P4/16
- [12,15] # P3/8
这两组Anchor跑出来的训练结果基本是一致的,可以看到Anchor选择正好是宽高阈值界限,所以合理设置Anchor的大小是重要的,Anchor数量就影响较小。
3、花里胡哨的样本选择方式,需要配合loss的调整才能使用,如果只是直接修改样本信息,结果可能会不如原版本。
4、同上一条,直接修改loss函数也不一定适用,例如focal类似的操作,强调难易样本的不均等对待,这时候因为yolov5的非正即负的样本选择方式,就会导致使用focal的时候模型进入迷惑状态,最终性能会下降。
5、不同样本位置和宽高,进行加权以及范围选择。有效但是影响比较小。
6、对原始yolov5中的重复取点进行去除操作,几乎没有影响,我的理解是作者的操作会导致样本数量非常多,例如一个样本可能生成27个采样点,就算有一部分被重复使用,影响也不大。
7、GFL这类操作是有意义的,就算你不配合修改样本划分策略。使用这类方法也能稳定提升结果,尤其是小目标性能,VFL在小目标和难例上的表现又比GFL好一些。
总结
拿经典的人脸检测任务了一把,怼上各种合理的,不合理的操作之后。我们的网络性能较之前在wider face hard上提升了5个点(这里是在yolov5原版的基础上提升的,但是可能和我用的是小模型,加上hard数据比较难导致的,不一定有代表意义)。模型大概就是一个朴实无华的mini vgg + fpn,没有反卷积,3个输出层,每个点输出一个Anchor,整体结构非常清新。在224X224分辨率下大概是150M的算力。如果替换为depth wise这类型的操作,理论算力下降会很明显,但是npu上会变慢,所以我们所有卷积都是普通卷积。
模型大概就是这种全普通卷积+fpn操作
一些想法
样本选择和loss选择是一个联动的过程。孤立任何一方去修改都可能事倍功半甚至是无用功。
大力很多时候能出奇迹,一些方法不是不适合,而是不适合你的训练参数或者模型结构。
取名?
在刚毕业的时候,我和我师傅两个就鼓捣出了现在非常流行的Anchor free检测器,和《centernet:objects as points》文章的思路比较相似。然鹅最终取没有在公司的主流任务中使用(被Rcnn系列打败了)。这也导致了我一直以来只会yolo这种套路的检测方案,不会ssd(强行找个借口)。
回想一下我们当时的做法:
a、将输入resize到两个分辨率上,一大一小。
b、图片得到两个特征图,然后按照特征图上目标的大小给予置信度标签,以及边框标签。
c、用同一个backbone分别训练两个固定分辨率的数据。
看一下当时我们没用上,但是有比较大的意义的技术:
a、fpn,特征金字塔,特征融合。
b、focal loss或者软化标签。
c、iou 感知替换置信度标签或者类似center ness这类。
看上去似乎修改不大,但都解决了一部分检测中比较核心的标签分配问题。
不同大小的目标怎么分;不同难度样本怎么分;边框和置信度训练使用割裂的问题。
现在回想起来,觉得自己思考还是太简单了,很多问题发现了但是并没有尝试找到合理的解决方案,所以一直这么菜鸡。
#EfficientTrain++
本文主要介绍刚刚被 IEEE Transactions on Pattern Analysis and Machine Intelligence (TPAMI)录用的一篇文章:EfficientTrain++: Generalized Curriculum Learning for Efficient Visual Backbone Training。视觉基础网络最高3倍无损训练加速
- 论文链接:https://arxiv.org/pdf/2405.08768
- 代码和预训练模型已开源:https://github.com/LeapLabTHU/EfficientTrain
- 会议版本论文(ICCV 2023):https://arxiv.org/pdf/2211.09703
近年来,「scaling」是计算机视觉研究的主角之一。随着模型尺寸和训练数据规模的增大、学习算法的进步以及正则化和数据增强等技术的广泛应用,通过大规模训练得到的视觉基础网络(如 ImageNet1K/22K 上训得的 Vision Transformer、MAE、DINOv2 等)已在视觉识别、目标检测、语义分割等诸多重要视觉任务上取得了令人惊艳的性能。
然而,「scaling」往往会带来令人望而却步的高昂模型训练开销,显著阻碍了视觉基础模型的进一步发展和工业应用。
面向解决这一问题,清华大学的研究团队提出了一种广义课程学习(generalized curriculum learning)算法:EfficientTrain++。其核心思想在于,将「筛选和使用由易到难的数据、逐步训练模型」的传统课程学习范式推广至「不进行数据维度的筛选,一直使用全部训练数据,但在训练过程中逐步揭示每个数据样本的由易到难的特征或模式(pattern)」。
EfficientTrain++ 具有几个重要的亮点:
- 即插即用地实现视觉基础网络 1.5−3.0× 无损训练加速。上游、下游模型性能均不损失。实测速度与理论结果一致。
- 通用于不同的训练数据规模(例如 ImageNet-1K/22K,22K 效果甚至更为明显)。通用于监督学习、自监督学习(例如 MAE)。通用于不同训练开销(例如对应于 0-300 或更多 epochs)。
- 通用于 ViT、ConvNet 等多种网络结构(文中测试了二十余种尺寸、种类不同的模型,一致有效)。
- 对较小模型,训练加速之外,还可显著提升性能(例如在没有额外信息帮助、没有额外训练开销的条件下,在 ImageNet-1K 上得到了 81.3% 的 DeiT-S,可与原版 Swin-Tiny 抗衡)。
- 对两种有挑战性的常见实际情形开发了专门的实际效率优化技术:1)CPU / 硬盘不够强力,数据预处理效率跟不上 GPU;2)大规模并行训练,例如在 ImageNet-22K 上使用 64 或以上的 GPUs 训练大型模型。
接下来,我们一起来看看该研究的细节。
一.研究动机
近年来,大型基础模型(foundation models)的蓬勃发展极大促进了人工智能和深度学习的进步。在计算机视觉领域,Vision Transformer(ViT)、CLIP、SAM、DINOv2 等代表性工作已经证明,同步增大(scaling up)神经网络尺寸和训练数据规模能够显著拓展识别、检测、分割等大量重要视觉任务的性能边界。
然而,大型基础模型往往具有高昂的训练开销,图 1 给出了两个典型例子。以使用 8 块 NVIDIA V100 或性能更强的 GPU 为例,GPT-3、ViT-G 仅完成一次训练即需要等效为数年甚至数十年的时间。如此高昂的训练成本,无论是对学术界还是工业界而言,都是较难负担的巨大开销,往往只有少数顶尖机构消耗大量资源才能推进深度学习的进展。因此,一个亟待解决的问题是:如何有效提升大型深度学习模型的训练效率?
图 1 示例:大型深度学习基础模型的高昂训练开销
对于计算机视觉模型而言,一个经典的思路是课程学习(curriculum learning),如图 2 所示,即模仿人类渐进式、高度结构化的学习过程,在模型训练过程中,从最「简单」的训练数据开始,逐步引入由易到难的数据。
图 2 经典课程学习范式(图片来源:《A Survey on Curriculum Learning》,TPAMI’22)
然而,尽管动机比较自然,课程学习并没有被大规模应用为训练视觉基础模型的通用方法,其主要原因在于存在两个关键的瓶颈,如图 3 所示。其一,设计有效的训练课程(curriculum)并非易事。区别「简单」、「困难」样本往往需要借助于额外的预训练模型、设计较复杂的 AutoML 算法、引入强化学习等,且通用性较差。其二,课程学习本身的建模存在一定不合理性。自然分布中的视觉数据往往具有高度的多样性,图 3 下方给出了一个例子(从 ImageNet 中随机抽取的鹦鹉图片),模型训练数据中包含大量不同动作的鹦鹉、离镜头不同距离的鹦鹉、不同视角、不同背景的鹦鹉、以及鹦鹉与人或物的多样化的交互等,将如此多样化的数据数据仅仅以「简单」、「困难」的单一维度指标进行区分,事实上是一个比较粗糙和牵强的建模方式。
图 3 阻碍课程学习大规模应用于训练视觉基础模型的两个关键瓶颈
二.方法简介
受到上述挑战的启发,本文提出了一种广义课程学习(generalized curriculum learning)范式,其核心思想在于,将「筛选和使用由易到难的数据、逐步训练模型」的传统课程学习范式推广至「不进行数据维度的筛选,一直使用全部训练数据,但在训练过程中逐步揭示每个数据样本的由易到难的特征或模式」,这样就有效避开了因数据筛选范式引发的局限和次优设计,如图 4 所示。
图 4 传统课程学习(样本维度) v.s. 广义课程学习(特征维度)
这一范式的提出主要基于一个有趣的现象:在一个自然的视觉模型训练过程中,虽然模型总是可以随时获取数据中包含的全部信息,但模型总会自然地先学习识别数据中包含的某些比较简单的判别特征(pattern),而后在此基础上再逐步学习识别更难的判别特征。并且,这一规律是比较普遍的,「比较简单」的判别特征在频域和空域都可以较方便地找到。本文设计了一系列有趣的实验来证明上述发现,如下所述。
从频域的角度来说,「低频特征」对于模型而言「比较简单」。在图 5 中,本文作者使用标准 ImageNet-1K 训练数据训练了一个 DeiT-S 模型,并使用带宽不同的低通滤波器对验证集进行滤波,只保留验证图像的低频分量,在此基础上报告 DeiT-S 在训练过程中、在低通滤波的验证数据上的准确率,所得准确率相对训练过程的曲线显示于图 5 右侧。
我们可以看到一个有趣的现象:在训练早期阶段,仅使用低通滤波的验证数据不会显著降低准确性,且曲线与正常验证集准确率间的分离点随滤波器带宽的增大而逐渐右移。这一现象表明,尽管模型始终可以访问训练数据的低频和高频部分,但其学习过程自然地从仅关注低频信息开始,识别较高频特征的能力则在训练后期逐步习得(这一现象的更多证据可参考原文)。
图 5 频域角度上,模型自然倾向于先学习识别低频特征
这一发现引出了一个有趣的问题:我们是否可以设计一个训练课程(curriculum),从只为模型提供视觉输入的低频信息开始,而后逐渐引入高频信息?
图 6 研究了这个想法,即仅在特定长度的早期训练阶段对训练数据执行低通滤波,训练过程的其余部分保持不变。从结果中可以观察到,尽管最终性能提升有限,但有趣的是,即使在相当长的一段早期训练阶段中仅向模型提供低频分量,模型的最终精度也可以在很大程度上得到保留,这也与图 5 中「模型在训练初期主要关注学习识别低频特征」的观察不谋而合。
这一发现启发了本文作者关于训练效率的思考:既然模型在训练初期只需要数据中的低频分量,且低频分量包含的信息小于原始数据,那么能否使模型以比处理原始输入更少的计算成本高效地仅从低频分量中学习?
图 6 在相当长的一段早期训练阶段中仅向模型提供低频分量并不会显著影响最终性能
事实上,这一思路是完全可行的。如图 7 左侧所示,本文作者在图像的傅里叶频谱中引入了裁切操作,裁切出低频部分,并将其映射回像素空间。这一低频裁切操作准确地保留了所有低频信息,同时减小了图像输入的尺寸,因此模型从输入中学习的计算成本可以呈指数级降低。
如果使用这一低频裁切操作在训练早期阶段处理模型输入,可以显著节省总体训练成本,但由于最大限度地保留了模型学习所必要的信息,仍然可以获得性能几乎不受损失的最终模型,实验结果如图 7 右下方所示。
图 7 低频裁切(low-frequency cropping):使模型高效地仅从低频信息中学习
在频域操作之外,从空域变换的角度,同样可以找到对于模型而言「比较简单」的特征。例如,没有经过较强数据增强或者扭曲处理的原始视觉输入中所包含的自然图像信息往往对于模型而言「比较简单」、更容易让模型学习,因为它们是从现实世界的分布中得出的,而数据增强等预处理技术所引入的额外信息、不变性等往往对于模型而言较难学习(图 8 左侧给出了一个典型示例)。
事实上,现有研究也已观察到,数据增强主要在训练较晚期阶段发挥作用(如《Improving Auto-Augment via Augmentation-Wise Weight Sharing》, NeurIPS’20)。
在这一维度上,为实现广义课程学习的范式,可以简单地通过改变数据增强的强度方便地实现在训练早期阶段仅向模型提供训练数据中较容易学习的自然图像信息。图 8 右侧使用 RandAugment 作为代表性示例来验证了这个思路,RandAugment 包含了一系列常见的空域数据增强变换(例如随机旋转、更改锐度、仿射变换、更改曝光度等)。
可以观察到,从较弱的数据增强开始训练模型可以有效提高模型最终表现,同时这一技术与低频裁切兼容。
图 8 从空域的角度寻找模型 “较容易学习” 的特征:一个数据增强的视角
到此处为止,本文提出了广义课程学习的核心框架与假设,并通过揭示频域、空域的两个关键现象证明了广义课程学习的合理性和有效性。在此基础上,本文进一步完成了一系列系统性工作,在下面列出。由于篇幅所限,关于更多研究细节,可参考原论文
- 融合频域、空域的两个核心发现,提出和改进了专门设计的优化算法,建立了一个统一、整合的 EfficientTrain++ 广义课程学习方案。
- 探讨了低频裁切操作在实际硬件上高效实现的具体方法,并从理论和实验两个角度比较了两种提取低频信息的可行方法:低频裁切和图像降采样,的区别和联系。
- 对两种有挑战性的常见实际情形开发了专门的实际效率优化技术:1)CPU / 硬盘不够强力,数据预处理效率跟不上 GPU;2)大规模并行训练,例如在 ImageNet-22K 上使用 64 或以上的 GPUs 训练大型模型。
本文最终得到的 EfficientTrain++ 广义课程学习方案如图 9 所示。EfficientTrain++ 以模型训练总计算开销的消耗百分比为依据,动态调整频域低频裁切的带宽和空域数据增强的强度。
值得注意的是,作为一种即插即用的方法,EfficientTrain++ 无需进一步的超参数调整或搜索即可直接应用于多种视觉基础网络和多样化的模型训练场景,效果比较稳定、显著。
图 9 统一、整合的广义课程学习方案:EfficientTrain++
三.实验结果
作为一种即插即用的方法,EfficientTrain++ 在 ImageNet-1K 上,在基本不损失或提升性能的条件下,将多种视觉基础网络的实际训练开销降低了 1.5 倍左右。
图 10 ImageNet-1K 实验结果:EfficientTrain++ 在多种视觉基础网络上的表现
EfficientTrain++ 的增益通用于不同的训练开销预算,严格相同表现的情况下,DeiT/Swin 在 ImageNet-1K 上的训加速比在 2-3 倍左右。
图 11 ImageNet-1K 实验结果:EfficientTrain++ 在不同训练开销预算下的表现
EfficientTrain++ 在 ImageNet-22k 上可以取得 2-3 倍的性能无损预训练加速。
图 12 ImageNet-22K 实验结果:EfficientTrain++ 在更大规模训练数据上的表现
对于较小的模型,EfficientTrain++ 可以实现显著的性能上界提升。
图 13 ImageNet-1K 实验结果:EfficientTrain++ 可以显著提升较小模型的性能上界
EfficientTrain++ 对于自监督学习算法(如 MAE)同样有效。
图 14 EfficientTrain++ 可以应用于自监督学习(如 MAE)
EfficientTrain++ 训得的模型在目标检测、实例分割、语义分割等下游任务上同样不损失性能。
图 15 COCO 目标检测、COCO 实例分割、ADE20K 语义分割实验结果
#visual-concept-translator
近年来,图像生成技术取得了很多关键性突破。特别是自从 DALLE2、Stable Diffusion 等大模型发布以来,文本生成图像技术逐渐成熟,高质量的图像生成有了广阔的实用场景。然而,对于已有图片的细化编辑依旧是一个难题。
一方面,由于文本描述的局限性,现有的高质量文生图模型,只能利用文本对图片进行描述性的编辑,而对于某些具体效果,文本是难以描述的;另一方面,在实际应用场景中,图像细化编辑任务往往只有少量的参考图片,这让很多需要大量数据进行训练的方案,在少量数据,特别是只有一张参考图像的情况下,难以发挥作用。
最近,来自网易互娱 AI Lab 的研究人员提出了一种基于单张图像引导的图像到图像编辑方案,给定单张参考图像,即可把参考图中的物体或风格迁移到源图像,同时不改变源图像的整体结构。研究论文已被 ICCV 2023 接收,相关代码已开源。
- 论文地址:https://arxiv.org/abs/2307.14352
- 代码地址:https://github.com/CrystalNeuro/visual-concept-translator
让我们先来看一组图,感受一下它的效果。
论文效果图:每组图片左上角是源图,左下角是参考图,右侧是生成结果图
主体框架
论文作者提出了一种基于反演-融合(Inversion-Fusion)的图像编辑框架 ——VCT(visual concept translator,视觉概念转换器)。如下图所示,VCT 的整体框架包括两个过程:内容-概念反演过程(Content-concept Inversion)和内容-概念融合过程(Content-concept Fusion)。内容 - 概念反演过程通过两种不同的反演算法,分别学习和表示原图像的结构信息和参考图像的语义信息的隐向量;内容-概念融合过程则将结构信息和语义信息的隐向量进行融合,生成最后的结果。
论文主体框架值得一提的是,反演方法是近年来,特别是在生成对抗网络(GAN)领域,广泛应用且在众多图像生成任务上取得突出效果的一项技术【1】。GAN Inversion 技术将一张图片映射到与训练的 GAN 生成器的隐空间中,通过对隐空间的控制来实现编辑的目的。反演方案可以充分利用预训练生成模型的生成能力。本研究实际上是将 GAN Inversion 技术迁移到了以扩散模型为先验的,基于图像引导的图像编辑任务上。
反演技术
方法介绍
基于反演的思路,VCT 设计了一个双分支的扩散过程,其包含一个内容重建的分支 B* 和一个用于编辑的主分支 B。它们从同一个从 DDIM 反演(DDIM Inversion
【2】,一种利用扩散模型从图像计算噪声的算法)获得的噪声 xT 出发,分别用于内容重建和内容编辑。论文采用的预训练模型为隐向量扩散模型(Latent Diffusion Models,简称 LDM),扩散过程发生在隐向量空间 z 空间中,双分支过程可表示为:
双分支扩散过程
实验结果
文章在主体替换和风格化任务上进行了实验,可以在较好地保持源图片的结构信息的情况下,将内容变成参考图片的主体或风格
论文实验效果
文章提出的 VCT 框架相较于以往的方案有以下优势:
(1)应用泛化性:与以往的基于图像引导的图像编辑任务相比,VCT 不需要大量的数据进行训练,且生成质量和泛化性更好。其基于反演的思路,以在开放世界数据预训练好的高质量文生图模型为基础,实际应用时,只需要一张输入图和一张参考图就可以完成较好的图片编辑效果。
(2)视觉准确性:相较于近期文字编辑图像的方案,VCT 利用图片进行参考引导。图片参考相比于文字描述,可以更加准确地实现对图片的编辑。下图展示了 VCT 与其它方案的对比结果:
主体替换任务对比效果
风格迁移任务对比效果(3)不需要额外信息:相较于近期的一些需要添加额外控制信息(如:遮罩图或深度图)等方案来进行引导控制的方案,VCT 直接从源图像和参考图像学习结构信息和语义信息来进行融合生成,下图是一些对比结果。其中,Paint-by-example 通过提供一个源图像的遮罩图,来将对应的物体换成参考图的物体;Controlnet 通过线稿图、深度图等控制生成的结果;而 VCT 则直接从源图像和参考图像,学习结构信息和内容信息融合成目标图像,不需要额外的限制。
基于图像引导的图像编辑方案的对比效果
#SadTalker
随着数字人概念的火爆、生成技术的不断发展,让照片里的人物跟随音频的输入动起来也不再是难题。
不过目前「通过人脸图像和一段语音音频来生成会说话的人物头像视频」仍然存在诸多问题,比如头部运动不自然、面部表情扭曲、视频和图片中的人物面部差异过大等问题。
最近来自西安交通大学等的研究人员提出了SadTalker模型,在三维运动场中进行学习从音频中生成3DMM的3D运动系数(头部姿势、表情),并使用一个全新的3D面部渲染器来生成头部运动。
论文链接:https://arxiv.org/pdf/2211.12194.pdf
项目主页:https://sadtalker.github.io/
为了学习真实的运动系数,研究人员显式地对音频和不同类型的运动系数之间的联系进行单独建模:通过蒸馏系数和3D渲染的脸部,从音频中学习准确的面部表情;通过条件VAE设计PoseVAE来合成不同风格的头部运动。
最后使用生成的三维运动系数被映射到人脸渲染的无监督三维关键点空间,并合成最终视频。
最后在实验中证明了该方法在运动同步和视频质量方面实现了最先进的性能。
目前stable-diffusion-webui的插件也已经发布!
照片+音频=视频
数字人创作、视频会议等多个领域都需要「用语音音频让静态照片动起来」的技术,但目前来说这仍然是一项非常有挑战性的任务。
之前的工作主要集中在生成「唇部运动」,因为嘴唇的动作与语音之间的关系最强,其他工作也在尝试生成其他相关运动(如头部姿势)的人脸视频,不过生成视频的质量仍然非常不自然,并受到偏好姿势、模糊、身份修改和面部扭曲的限制。
另一种流行的方法是基于latent的人脸动画,主要关注在对话式人脸动画中特定类别的运动,同样很难合成高质量的视频,因为虽然三维面部模型中包含高度解耦的表征,可以用来单独学习面部不同位置的运动轨迹,但仍然会生成不准确的表情和不自然的运动序列。
基于上述观察结果,研究人员提出了SadTalker(Stylized Audio-Driven Talking-head),通过隐式三维系数modulation的风格化音频驱动的视频生成系统。
为了实现这一目标,研究人员将3DMM的运动系数视为中间表征,并将任务分为两个主要部分(表情和姿势),旨在从音频中生成更真实的运动系数(如头部姿势、嘴唇运动和眼睛眨动),并单独学习每个运动以减少不确定性。
最后通过一个受face-vid2vid启发设计的3D感知的面部渲染来驱动源图像。
3D面部
因为现实中的视频都是在三维环境中拍摄的,所以三维信息对于提高生成视频的真实性至关重要;不过之前的工作很少考虑三维空间,因为只从一张平面图像很难获得原始的三维稀疏,并且高质量的面部渲染器也很难设计。
受最近的单图像深度三维重建方法的启发,研究人员将预测的三维形变模型(3DMMs)的空间作为中间表征。
在3DMM中,三维脸部形状S可以被解耦为:
其中S是三维人脸的平均形状,Uid和Uexp是LSFM morphable模型的身份和表情的正则,系数α(80维)和β(64维)分别描述人物身份和表情;为了保持姿势的差异性,系数r和t分别表示头部旋转和平移;为了实现身份无关的系数生成,只将运动的参数建模为{β, r, t}。
即,从驱动的音频中单独学习头部姿势ρ=[r, t]和表情系数β,然后使用这些运动系数被隐式地调制面部渲染用于最终的视频合成。
通过音频生成运动稀疏
三维运动系数包含头部姿势和表情,其中头部姿势是全局运动,而表情是相对局部的,所以完全学习所有的系数会给网络带来巨大的不确定性,因为头部姿势与音频的关系相对较弱,而嘴唇的运动则是与音频高度关联的。
所以SadTalker使用下面PoseVAE和ExpNet分别生成头部姿势和表情的运动。
ExpNet
学习到一个可以「从音频中产生准确的表情系数」的通用模型是非常困难的,原因有二:
1)音频到表情(audio-to-expression)不是对不同人物的一对一的映射任务;
2)表情系数中存在一些与音频相关的动作,会影响到预测的准确性。
ExpNet的设计目标就是为了减少这些不确定性;至于人物身份问题,研究人员通过第一帧的表情系数将表情运动与特定的人物联系起来。
为了减少自然对话中其他面部成分的运动权重,通过Wav2Lip和深度三维重建的预训练网络,只使用嘴唇运动系数(lip motion only)作为系数目标。
至于其他细微的面部运动(如眼睛眨动)等,可以在渲染图像上的额外landmark损失中引入。
PoseVAE
研究人员设计了一个基于VAE的模型以学习谈话视频中真实的、身份相关(identity-aware)的风格化头部运动。
在训练中,使用基于编码器-解码器的结构对固定的n个帧进行姿势VAE训练,其中编码器和解码器都是两层MLP,输入包含一个连续的t帧头部姿势,将其嵌入到高斯分布;在解码器中,网络从采样分布中学习生成t帧姿势。
需要注意的是,PoseVAE并没有直接生成姿势,而是学习第一帧的条件姿势的残差,这也使得该方法在测试中能在第一帧的条件下生成更长、更稳定、更连续的头部运动。
根据CVAE,PoseVAE中还增加了相应的音频特征和风格标识作为rhythm awareness和身份风格的条件。
模型使用KL散度来衡量生成运动的分布;使用均方损失和对抗性损失来保证生成的质量。
3D-aware面部渲染
在生成真实的三维运动系数后,研究人员通过一个精心设计的三维图像动画器来渲染最终的视频。
最近提出的图像动画方法face-vid2vid可以隐含地从单一图像中学习3D信息,不过该方法需要一个真实的视频作为动作驱动信号;而这篇论文中提出的脸部渲染可以通过3DMM系数来驱动。
研究人员提出mappingNet来学习显式3DMM运动系数(头部姿势和表情)和隐式无监督3D关键点之间的关系。
mappingNet通过几个一维卷积层建立,类似PIRenderer一样使用时间窗口的时间系数进行平滑处理;不同的是,研究人员发现PIRenderer中的人脸对齐运动系数将极大地影响音频驱动的视频生成的运动自然度,所以mappingNet只使用表情和头部姿势的系数。
训练阶段包含两个步骤:首先遵循原论文,以自监督的方式训练face-vid2vid;然后冻结外观编码器、canonical关键点估计器和图像生成器的所有参数后,以重建的方式在ground truth视频的3DMM系数上训练mappingNet进行微调。
在无监督关键点的域中使用L1损失进行监督训练,并按照其原始实现方式给出最终生成的视频。
实验结果
为了证明该方法的优越性,研究人员选取了Frechet Inception Distance(FID)和Cumulative Probability Blur Detection(CPBD)指标来评估图像的质量,其中FID主要评估生成帧的真实性,CPBD评估生成帧的清晰度。
为了评估身份保留程度,使用ArcFace来提取图像的身份嵌入,然后计算源图像和生成帧之间身份嵌入的余弦相似度(CSIM)。
为了评估唇部同步和口型,研究人员评估了来自Wav2Lip的口型的感知差异,包括距离评分(LSE-D)和置信评分(LSE-C)。
在头部运动的评估中,使用Hopenet从生成的帧中提取的头部运动特征嵌入的标准偏差来计算生成头部运动的多样性;计算Beat Align Score来评估音频和生成头部运动的一致性。
在对比方法中,选取了几种最先进的谈话头像生成方法,包括MakeItTalk、Audio2Head和音频转表情生成方法(Wav2Lip、PC-AVS),使用公开的checkpoint权重进行评估。
从实验结果中可以看出,文中提出的方法可以展现出更好的整体视频质量和头部姿势的多样性,同时在唇部同步指标方面也显示出与其他完全说话的头部生成方法相当的性能。
研究人员认为,这些唇语同步指标对音频太敏感了,以至于不自然的唇部运动可能会得到更好的分数,不过文中提出的方法取得了与真实视频相似的分数,也表明了该方法的优势。
不同方法生成的视觉结果中可以看到,该方法与原始目标视频的视觉质量非常相似,而且与预期的不同头部姿势也非常相似。
与其他方法相比,Wav2Lip生成了模糊的半脸;PC-AVS和Audio2Head很难保留源图像的身份;Audio2Head只能生成正面说话的脸;MakeItTalk和Audio2Head由于二维扭曲而生成了扭曲的人脸视频。
参考资料:
https://sadtalker.github.io/
#Model structure diagram
这是一个基于密集尺度特征融合&像素级不平衡学习框架
知识蒸馏已成功应用于图像分类。然而目标检测要复杂得多,大多数知识蒸馏方法都失败了。
论文地址:https://arxiv.org/pdf/2203.09387v1.pdf
边缘检测是计算机视觉领域的一项基本任务,是视觉场景识别和理解的重要预处理操作。在常规模型中,生成的边缘图像模糊不清,边缘线也很粗,这通常需要使用非极大值抑制(NMS)和形态细化操作来生成清晰而细的边缘图像。
在今天分享中,研究者旨在提出一种无需后处理即可生成高质量边缘图像的单阶段神经网络模型。所提出的模型采用经典的编码器-解码器框架,其中使用预训练的神经模型作为编码器,并且将每个级别的特征相互融合的多特征融合机制作为可学习的解码器。
此外,研究者提出了一种新的损失函数,通过抑制真阳性(TP)边缘和假阴性(FN)非边缘附近的假阳性(FP)边缘信息来解决边缘图像中的像素级不平衡问题。在几个基准数据集上进行的实验结果表明,所提出的方法在不使用NMS和形态细化操作的情况下实现了最先进的结果。
在机器视觉检测设备中,缺陷检测作用是机器视觉检测设备使用最普遍的作用的一种,主要是检验产品表面的各类信息内容。在当代工业自动化制造中,连续性批量生产的每一个工艺都是有相应的缺陷率,单独看尽管比例不大,但相乘后却成为了企业没法提升良率的难题,而且在经过了完整性制程后再剔除残品成本费会高许多,所以,及时性检验和祛除不良品对质量控制和成本控制十分主要,也是制造产业更进一步升级的主要根基。
我认为缺陷检测没有啥难的,基本上都可以做。那为啥槽点还那么多?我认为很大一部分是AI的槽点,因为目前使用AI来做是主流,或者说只传统方法搞不定的,没办法,只有上AI的方法。AI的槽点有很多,例如:(摘自于知乎皮特潘)
- 多少人工就有多少智能,太依赖于标注的数据;
- 过拟合严重,泛化能力差;
- 容易被攻击到,没有提取到真正的特征;
- 提取特征太多抽象,可解释性差,大家都是“黑盒子”玩家;
- 经验学、尝试学,没有建立起方法论,trick太多,很多都是马后炮强行解释;
- “内卷”严重,nlp领域的sota 拿到CV,各种模改就work了?甚至都使用mlp进行返租现象,让我们一时半会摸不到方向。
当然,学术界和工业界也有一条巨大的鸿沟。学术界在于新,有创新点,在开源数据上各种尝试。工业界强调的是精度、成本、落地。再者场景过于分散,没办法达成一致的共识,场景、数据、需求等均是如此。
单单从工业界来看,在“缺陷检测”这一个细分的场景(其实也不是啥细分场景,所有找异常的都可以叫缺陷检测)。
[Deep crisp boundaries:Fromboundariestohigher-level tasks]针对高级卷积的空间分辨率低和相邻像素的相似响应提出了CED方法。[Learning to predict crisp boundaries]认为边缘像素和非边缘像素之间的高度不平衡是导致较厚边缘的原因之一,因此提出了LPCB模型。他们将ResNeXt模块插入到编码器-解码器模型中,并引入Dice系数,使CNN无需后处理(NMS)即可产生清晰的边界。[Deep Structural Contour Detection]提出了一种用于生成高质量边缘信息的DSCD方法。受SSIM的启发,他们提出了一种新的损失函数,并在模型中添加了一个超模块,以生成质量更好的边缘特征。[Unmixing Convolutional Features for CrispEdge Detection]为CNN中的混合现象提出了上下文感知跟踪策略,分解边界特征以解决定位模糊问题。受先前研究的启发,[Learning Crisp Boundaries Using Deep Refinement Networkand Adaptive Weighting Loss]提出了一种自适应加权损失函数和一个新的网络DRNet,以堆叠多个细化模块并获得更丰富的特征表示,从而实现清晰的边界信息。
Model structure diagram
新提出的方法采用卷积编码器-解码器框架,广泛用于边缘检测。任何预训练的 CNN 模型都可以作为编码器,解码器由多层特征融合器实现,充分利用了低层边缘图中更多的位置和细节信息,以及高层特征中更鲁棒的语义信息,使得模型 可以学习到更清晰的边缘,如上图(a)所示。
提出的多特征跳过连接不仅有利于编码器和解码器之间的互连,而且在解码器内部也有连接。该模型使用每个模块的最后一层作为编码器的输出层,定义为[b1,b2,...,b5]。对于解码器部分,采用了多层特征融合机制。
不同的输出层bi具有可以通过常规方法更新的各种大小的特征图。在这里,研究者以o4为例来解释解码器部分的构造,如下图(b)和上公式所示,其中函数C(.)表示卷积+批量归一化+ReLU激活操作。D(.)和E(.)分别表示上采样和下采样操作,[.]表示连接。B4中的特征图直接融合到O4中。
从编码器的较低层开始,首先将最大池化操作应用于B1、B2和B3中的特征图,然后将它们融合到O4中。随后,通过双线性插值获得来自解码器部分的O5。为了保持通道不变,研究者采用卷积运算来进一步统一通道数。为了更好地将低级细节和空间特征与高级语义特征融合,进一步在五个尺度特征图上进行特征融合。
Pixel-level Imbalance Learning
权重交叉熵。边缘图像生成可以看作是一个像素级的分类任务(边缘和非边缘像素)。它在边缘和非边缘像素的数量方面非常不平衡。
采用加权交叉熵(见上公式,其中Gi是标签,Pi是边缘预测值)来解决这样的分类任务并纠正边缘和非边缘像素之间的不平衡,可以有效地监督网络区分边缘和非边缘信息。然而,“厚度”问题仍然存在。虽然加权交叉熵可以有效地计算像素级差异,但它不能充分区分与TP边缘像素相邻的FP和FN像素值。
实验
#RSCMVR
也是之前发了 ~~ 又带来马教授的~~ 神器稀疏卷积性能和稳健性超越ResNet 标题就是简写可好?
尽管深度神经网络在图像分类方面具有很强的经验性能(empirical performance),但这类模型往往被视为「黑盒」,最为人诟病的就是「难以解释」。
相比之下,稀疏卷积模型(sparse convolutional models)也是分析自然图像的强大工具,其假设一个信号可以由卷积字典(convolutional dictionary)中的几个元素的线性组合来表达,具有良好的理论可解释性和生物合理性。
但在实际应用中,稀疏卷积模型虽然原理上行得通,但与经验设计的深层网络相比并没有展现出应有的性能优势。
最近,马毅教授研究组在发表了一篇新论文,回顾了稀疏卷积模型在图像分类中的应用,并成功解决了稀疏卷积模型的经验性能和可解释性之间的不匹配问题。
论文链接:https://arxiv.org/pdf/2210.12945.pdf
代码链接:https://github.com/Delay-Xili/SDNet
文中提出的可微优化层使用卷积稀疏编码(CSC)对标准卷积层进行替换。
结果表明,与传统的神经网络相比,这些模型在 CIFAR-10、 CIFAR-100和 ImageNet 数据集上具有同样强的经验性能。
通过利用稀疏建模的稳定恢复特性,研究人员进一步表明,只需要在稀疏正则化和数据重构项之间进行简单的适当权衡,这些模型就可以对输入损坏以及测试中的对抗性扰动具有更强的鲁棒性。
马毅教授于1995年获得清华大学自动化与应用数学双学士学位,后求学于美国伯克利加州大学,并于1997年获EECS硕士学位,2000年获数学硕士学位与EECS博士学位。
毕业后在美国伊利诺伊大学香槟分校任教,并成为该校电气与计算机工程系历史上最年轻的副教授。
2009年任微软亚洲研究院视觉计算组高级研究员。2014年全职加入上海科技大学信息科学与技术学院。
2018年加入伯克利加州大学和清华-伯克利深圳学院,目前是加利福尼亚大学伯克利分校电子工程与计算机科学系教授,同时也是IEEE Fellow, ACM Fellow, SIAM Fellow
马毅教授的研究兴趣包括 3D 计算机视觉、高维数据的低维模型、可扩展性优化和机器学习,近来的研究主题包括大规模 3D 几何重构和交互以及低维模型与深度网络的关系。
稀疏卷积
虽然深度卷积网络(ConvNets)已经是图像分类的主流方法,并且性能上也超越其他模型,但其内部的组件如卷积、非线性函数和归一化等的具体数据意义还没有得到解释。
而稀疏数据建模在学习可解释表征的能力和强大的理论保证的支持下(例如处理损坏的数据),已被广泛用于许多信号和图像处理应用,但其在ImageNet等数据集上的分类性能仍然不如经验性的深度模型。
即便性能较强的稀疏模型也仍然存在缺陷:
1)需要专门设计网络结构,限制了模型的适用性;
2)训练的计算速度要慢几个数量级;
3)在可解释性和稳健性上没有表现出明显优势。
研究人员在这篇论文中提出了视觉识别框架,通过一个简单的设计证明稀疏建模可以与深度学习相结合,假设层输入可以由所有数据点所共享的字典中的几个原子(atoms)来表示,从而获得了与标准ConvNets相同的性能,同时具有更好的层级可解释性和稳定性。
该方法将稀疏建模封装在一个隐层(implicit layer)中,并将其作为标准ConvNets中卷积层的替代。
相对于经典的全连接或卷积层中所使用的显式函数(explicit function),隐层使用隐函数。这篇论文中的隐层基于该层输入和权重参数的优化问题进行定义,隐层的输出就是优化问题的解。
给定一个多维输入信号,可以将层的函数定义为执行反向映射到一个更好的稀疏输出,输出通道数可与输入不同,从而可以找到上述Lasso类型优化问题的一个最优的稀疏解。
该隐层实现了卷积稀疏编码(CSC)模型,其中输入信号被卷积字典中的原子稀疏线性组合所逼近。这种卷积词典可以看作是CSC层的参数,通过反向传播进行训练。
CSC模型的目标是通过A(z)算子重构输入信号,其中特征图z指定了A中卷积过滤器的位置和值。为了对建模差异具有容错度,重建并不要求精确。
基于确定的CSC层的输入-输出映射,就可以通过解决相关的优化来进行前向传播,并通过得出最优系数解相对于输入x和参数A的梯度来进行反向传播。
然后,带有CSC层的整个网络可以通过最小化交叉熵损失,以端到端的方式从标记的数据中进行训练。
实验结果
分类性能对比
实验用到的数据集为CIFAR-10和CIFAR-100,每个数据集包含50,000张训练图像和10,000张测试图像,每张图像的尺寸为32×32,RGB通道。
除了将该方法与标准网络架构ResNet-18和ResNet-34进行比较外,研究人员还与具有隐层架构的MDEQ模型和具有稀疏建模架构的SCN进行比较。
实验结果可以看到,在相似的模型规模下,SDNet-18/34的Top-1准确率与ResNet-18/34相近或更高,同时具有相似的推理速度。结果表明该网络有潜力作为现有数据驱动模型的强大替代品,因为SDNet模型在处理受损图像上有额外的优势。
将SDNet-18模型与模型规模相似的MDEQ模型进行了比较后,可以发现SDNet-18不仅比MDEQ更准确,而且速度也快得多(>7倍)。需要注意的是,MDEQ不能像SDNet那样处理受损的数据。
同样使用稀疏建模的SCN网络获得了Top-1的准确度,但SCN的一个重要缺点是它的训练速度非常慢,原因可能是SCN对图像使用了基于patch的稀疏编码模型,与卷积稀疏编码模型相比,它需要在每个前向传播中解决更多稀疏编码问题,无法从并行计算中受益。
稳健推理处理输入扰动
为了测试该方法对输入扰动的鲁棒性,研究人员使用了CIFAR-10-C数据集,其中的数据被不同类型的合成噪声和不同严重程度所破坏。
由于模型中CSC层对输入信号和重建信号之间的entry-wise差异进行惩罚,所以SDNet理论上应该更适合于处理additive噪声。
所以实验部分主要关注于CIFAR-10-C中四种类型的additive噪声,即高斯噪声、shot噪声、speckle噪声和impulse噪声,然后评估SDNet-18的准确性,并将其性能与ResNet-18进行比较。
可以看到,对于各种类型的噪声和不同的严重程度(除了0、1和2级的impulse噪声),适当选择一个不同于训练时使用的λ值有助于提高测试性能。
特别地,作为λ的函数的准确度曲线表现出一个单模态的形状,性能首先增加,然后减少。此外,在每种数据破坏类型中,达到性能峰值的λ值随着破坏严重程度上升而单调地增加,观察结果与预期一致。
处理对抗性扰动
研究人员在CIFAR-10测试数据集上使用PGD攻击对SDNet(λ=0.1)生成对抗性扰动,扰动的L∞范式为8/255,扰动的L2范式为0.5。
与ResNet-18进行对比可以看到,在λ=0.1的情况下,SDNet的表现并不比ResNet好多少,但可以通过调整参数λ来大幅提高鲁棒性精度。
#AutoGL-light
清华大学朱文武教授团队自 2020 年发布智图库(AutoGL)以来,在图自动机器学习的可解释性和可泛化能力等方面取得新进展,特别关注于图 Transformer、图分布外泛化(OOD)、图自监督学习等方面,发表图神经架构搜索评测基准,并在中国新一代开源创新服务平台 GitLink 上发布首个轻量智图库(AutoGL-light)。
智图库回顾
图(graph)是描述数据间关系的一般抽象,广泛存在于不同的研究领域中并有许多重要应用,例如社交网络分析、推荐系统、交通预测等互联网应用,新药物发现、新材料制备等科学应用(AI for Science),覆盖诸多不同领域。图机器学习在近年来取得了广泛关注。由于不同图数据在结构、性质和任务上千差万别,现有人工设计的图机器学习模型缺乏对不同场景与环境变化的泛化能力。图自动机器学习(AutoML on Graphs)是图机器学习发展的前沿,旨在针对给定的数据和任务,自动化地设计最优的图机器学习模型,在研究与应用上都有着极大的价值。
针对图自动机器学习问题,清华大学朱文武教授团队从 2017 年开始布局,并在 2020 年发布了智图库(AutoGL)—— 世界首个针对图自动机器学习的平台和工具包。
项目地址:https://github.com/THUMNLab/AutoGL
智图库已在 GitHub 获得了超千个星标,吸引了超过 20 个国家和地区数万次访问,并在 GitLink 上进行了发布。智图库包括一套完整的图自动机器学习流程,涵盖了主流的图自动机器学习方法。智图库通过图自动机器学习解决方案 AutoGL Solver,将图上的自动机器学习拆分为五个核心部分:图自动特征工程、图神经架构搜索(NAS)、图超参数优化(HPO)、图模型训练,以及图模型自动集成。智图库已经支持节点分类、异构图节点分类、链接预测、图分类等多种类型的图任务。
图自动机器学习研究新进展
针对目前图自动机器学习缺乏可解释性和可泛化能力等问题,智图团队在图自动机器学习研究取得了一系列新进展。
1. 图分布外泛化(OOD)架构搜索
针对图神经架构搜索无法处理图数据分布变化问题,提出了基于解耦自监督学习的图神经架构搜索方法,通过为每个图样本定制合适的图神经网络架构,有效增强了图神经架构搜索方法处理数据分布偏移的适应能力。该工作已发表于机器学习顶级国际会议 ICML 2022。
论文地址:https://proceedings.mlr.press/v162/qin22b/qin22b.pdf
2.大规模图架构搜索
针对现有图神经架构搜索无法处理大规模图问题,提出了基于架构 - 子图联合采样机制的超网络训练方法,通过重要性采样和同辈学习(peer learning)算法,突破了采样过程中的一致性瓶颈,极大程度提升了图神经架构搜索的效率,首次实现了单机可处理亿规模真实图数据。该工作已发表于机器学习顶级国际会议 ICML 2022。
论文地址:https://proceedings.mlr.press/v162/guan22d.html
3. 图神经架构搜索评测基准
针对图神经架构搜索缺乏统一的评测标准,以及评测过程消耗的计算资源量巨大问题,智图团队研究并提出了图神经架构搜索基准 NAS-Bench-Graph,首个针对图神经架构搜索的表格式基准。该基准可以高效、公平、可复现地比较不同图神经架构搜索方法,填补了针对图数据架构搜索没有基准的空白。NAS-Bench-Graph 设计了一个包含 26,206 种不同图神经网络架构的搜索空间,采用了 9 个常用的不同大小、不同类型的节点分类图数据,并提供了已经完全训练好的模型效果,可以在保证可复现性与公平比较的同时,极大地减少计算资源。该工作已发表于机器学习顶级国际会议 NeurIPS 2022。
项目地址:https://github.com/THUMNLab/NAS-Bench-Graph
4. 自动图 Transformer
针对目前人工设计的图 Transformer 架构难以取得最佳预测性能问题,提出了自动图 Transformer 架构搜索框架,通过统一的图 Transformer 搜索空间与结构感知的性能评估策略,解决了设计最佳图 Transformer 耗时长,难以得到最优架构的难题,该工作发表于机器学习顶级国际会议 ICLR 2023。
论文地址:https://openreview.net/pdf?id=GcM7qfl5zY
5. 鲁棒图神经架构搜索
针对目前图神经架构搜索无法处理对抗攻击问题,提出了鲁棒图神经架构搜索方法,通过在搜索空间中增加鲁棒性图算子并在搜索过程中提出了鲁棒性评价指标,增强了图神经架构搜索抵御对抗攻击的能力。该工作已发表于模式识别顶级国际会议 CVPR 2023。
论文地址:https://openaccess.thecvf.com/content/CVPR2023/papers/Xie_Adversarially_Robust_Neural_Architecture_Search_for_Graph_Neural_Networks_CVPR_2023_paper.pdf
6. 自监督图神经架构搜索
现有图神经架构搜索严重依赖于标签作为训练和搜索架构的指标,限制了图自动机器学习在标签匮乏场景的应用。针对该问题,智图团队提出了自监督图神经架构搜索方法,发现了驱动图数据形成的图因子与最优神经架构之间潜在的关系,采用了一种新颖的解耦自监督图神经架构搜索模型,实现了有效在无标签图数据上搜索最优架构。该工作已被机器学习顶级会议 NeurIPS 2023 接收。
7. 多任务图神经架构搜索
针对现有图神经架构搜索无法考虑不同任务对架构需求的差异性问题,智图团队提出了首个多任务图神经网络架构搜索方法,通过同时为不同图任务设计最优架构并采用课程学习捕捉不同任务之间的协作关系,有效实现了不同图任务定制最优架构。该工作已被机器学习顶级会议 NeurIPS 2023 接收。
轻量智图库
基于上述研究进展,智图团队在 CCF 指定开源平台 GitLink 发布了轻量智图(AutoGL-light),世界首个轻量图自动机器学习开源库。其整体架构图如图 1 所示。轻量智图主要具有以下特点:
图 1. 轻量智图框架图
项目地址:https://gitlink.org.cn/THUMNLab/AutoGL-light
1. 模块解耦 轻量智图通过更全面的模块解耦方式,实现了对不同图自动机器学习流水线更便捷的支持,允许在机器学习流程的任何步骤中自由加入模块,满足用户定制化需求。
2. 自主定制能力
轻量智图库支持用户自主定制化图超参数优化(HPO)和图神经架构搜索(NAS)。在图超参数优化模块中,轻量智图提供了多种超参数优化算法和搜索空间,并支持用户通过继承基类来创建自己的搜索空间。在图神经架构搜索模块中,轻量智图实现了典型和最先进的搜索算法,且用户能够根据自己的需求自主轻松组合和定制搜索空间、搜索策略和评估策略的模块设计。
3. 广泛的应用领域
轻量智图的应用不仅仅局限于传统的图机器学习任务,而是进一步扩展到了更广泛的应用领域。目前,轻量智图已经支持了分子图、单细胞组学数据等 AI for Science 应用。在未来,轻量智图希望可以为不同领域图数据提供最先进的图自动机器学习解决方案。
4. GitLink 编程夏令营
以轻量智图为契机,智图团队深度参与了 GitLink 编程夏令营(GLCC),其是在 CCF 中国计算机学会指导下,由 CCF 开源发展委员会(CCF ODC)举办的面向全国高校学生的暑期编程活动。智图团队的两个项目 “GraphNAS 算法复现” 和 “图自动学习科学领域应用案例” 吸引了国内十余所高校的本科生和研究生报名。
夏令营举办过程中,智图团队与参与同学积极沟通,工作进展程度超出预期。其中,GraphNAS 算法复现项目在轻量智图中成功实现了上述介绍的图分布外泛化架构搜索(ICML’22)、大规模图架构搜索(ICML’22)、自动图 Transformer (ICLR’23),有效验证了轻量智图库的灵活性与自主定制能力。
图自动机器学习科学领域应用项目则在轻量智图实现了基于图的生物信息处理算法,包括用于单细胞 RNA 测序分析的代表性算法 scGNN、用于分子表征学习的代表性算法 MolCLR,以及用于分子结构预测的代表性算法 AutoGNNUQ,推动了图自动机器学习技术在 AI for Science 的应用。在 GitLink 编程夏令营中,轻量智图既丰富了算法和应用案例,也使参与的同学锻炼了开源软件开发等技能,在图自动机器学习方面培养人才,并为助力我国开源生态建设的发展贡献了自己的力量。
智图团队来自清华大学计算机系朱文武教授领导的网络与媒体实验室,核心成员包括助理教授王鑫、博士后张子威、博士生李昊阳、秦一鉴、张泽阳,硕士生关超宇等十余人。项目得到了国家自然科学基金委和科技部的大力支持。
#吸烟检测框架
随着世界迈向第四次工业革命,需要采取可靠的环保侦探措施,以应对这种在智能城市内外对公共健康有害的醉酒行为。
事实证明,在公共场所吸烟对非吸烟者的危害更大,使其成为一个巨大的公共卫生问题,迫切需要当局采取积极措施和关注。随着世界迈向第四次工业革命,需要采取可靠的环保侦探措施,以应对这种在智能城市内外对公共健康有害的醉酒行为。
有研究者开发了一个用于吸烟行为检测的可解释特征学习框架,它利用深度学习VGG-16预训练网络对输入图像进行预测和分类,在最相关的学习特征/像素或神经元上,使用逐层相关性传播 ( Layer-wise Relevance Propagation,LRP) 来解释基于吸烟行为的网络检测或预测。网络的分类决策主要基于位于嘴部的特征,尤其是烟雾似乎对网络决策非常重要。“烟雾”的轮廓突出显示为相应课程的证据。一些元素被视为对神经元“烟雾”有负面影响,因此以不同的方式突出显示。有趣的是,网络根据图像区域区分重要特征和不重要特征。该技术还可以检测其他可吸烟药物,如杂草、水烟、大麻等。该框架允许可靠地识别不安全区域(如学校、购物中心、公交车站、铁路车厢或其他“违规”吸烟场所)中的吸烟者。根据政府的监管健康政策。通过在吸烟区明确定义安装,该技术可以检测到范围外的吸烟者。
源代码:https://arxiv.org/pdf/2112.08178.pdf
智慧城市的公共卫生监测需要可靠的技术方法,以环保的方式监测人群的健康生活方式。不幸的是,吸烟是一种生活方式,不仅会污染环境,而且如果在公共场合吸烟也会伤害非吸烟者。作为肺癌、心脏病、孕产妇疾病、发病率和支气管炎的重要因素,吸烟行为正在增加智慧城市的整体医疗保健成本和环境污染。
第四次工业革命和智慧城市趋势需要可靠的技术方法来检测公共场所的吸烟行为,无论使用的风格或吸烟材料的类型如何,例如香烟、水烟、大麻等。现有技术无法可靠地基于image sequencing检测违反吸烟政策的人和烟雾探测器,并进行昂贵的监控和维护以获得准确的检测结果。他们忽略了吸烟方式、模式和行为的各种变化,检测过程是模棱两可的(无法解释)。上述挑战和机器视觉的进步促使研究者们提出、开发和测试一种可解释的吸烟行为检测解决方案,该解决方案具有可解释和可信赖的检测,以改善智慧城市中的公共卫生监测和监测,以实现更健康的环境。
框架设计
除了机器视觉深度学习的进步和智能城市中相机的快速普及之外,对公共卫生的需求帮助我们提出了使用VGG16相关深度神经网络进行特征学习和分类的吸烟行为检测计算机视觉解决方案。
这个可解释的神经网络根据其性能进行评估,并使用LRP、遮挡分析和Integrated Gradient (SmoothGrad) 解释其检测决策,比较学习特征的可解释性以评估烟雾行为检测的可信度,基于在训练中学到的最相关的吸烟特征。
Dataset Description
在这项研究中,研究者使用了SmokerVsNonsmoker数据集,其中包含吸烟和不吸烟的图像。该数据集共包含2400张原始图像,其中1200张图像属于吸烟(吸烟者)类别,其余一半属于未吸烟(non-smokers)类别。对于一定程度的类间混淆(对于
更好的模型训练),考虑两个类别中的通用图像;
- 吸烟类别包括多个角度的吸烟者图像和各种手势
- 不吸烟类别包含不吸烟者的图片,诸如人们喝水、拿着手机、咬指甲等类似吸烟图像的手势
还使用了Google搜索中的一组图片(关键词如吸烟、吸烟者、人、咳嗽、打电话、饮用水等)。
Data preparation and Processing
随机选择六个图像并缩放它们以获得相似的尺寸。然后,执行通用数据可视化以识别和学习任何指示吸烟的特征。在这个实现中,我们只关注两个类(吸烟/不吸烟)并保存各自的图像标签。
实验及可视化
Training and Validation Accuracy and Loss
Relevance Maps for Smokers
Relevance Maps for Non-Smokers
#MedNeXt
本文设计了一个现代化且可扩展的卷积架构——MedNeXt,该架构针对医学图像分割领域进行了针对性的优化。本文方法在 CT 和 MRI 模态以及不同数据集大小的 4 个任务上均实现了最先进的性能。新一代分割架构之王
Title: MedNeXt: Transformer-driven Scaling of ConvNets for Medical Image Segmentation
Paper: https://arxiv.org/pdf/2303.09975.pdf
ConvNeXT
是一种纯卷积模型,其灵感来自Vision Transformers
的设计,性能出众。本文对此进行了改进,以设计一个现代化且可扩展的卷积架构——MedNeXt
,该架构针对医学图像分割领域进行了针对性的优化。
MedNeXt
是一种受Transformer
启发的大卷积核分割网络,其基于类 ConvNeXt 风格的纯 3D 编解码架构(Encoder-Decoder Architecture
)。在这项工作中,作者设计了一种带残差的ConvNeXt
上采样和下采样块,以保持跨尺度的语义丰富性,同时应用了一种新技术通过对小卷积核网络进行上采样来迭代增加kernel
大小,以防止有限医疗数据的性能饱和。
最后,通过对MedNeXt
架构的不同尺度(depth
, width
, kernel size
)进行缩放,本文方法在 CT
和 MRI
模态以及不同数据集大小的 4 个任务上均实现了最先进的性能,可谓是医学图像分割领域的现代化深度架构之王!
值得一提的是,本文是由原
nnUNet
研究团队打造,其结论必将极具说服力和观赏性!
目前深度学习的算法在较为特定、具体的任务上能够获得较好的表现(如脑肿瘤的分割),但是并不一定能够在一些未见过的任务上(如肝脏血管分割)获得较好的泛化性能。如果有一种算法,能够在给定一定的训练数据的情况下,自适应地完成所有未曾处理过的任务的分割而不需要人工干预,对于医学辅助诊断系统是具有重大意义的。下面,首先让我们来看下医学图像分割任务中较为常见的难点和挑战:
- 由于数据标签获取的成本较大,因此往往数据量较少
- 由于疾病的特点(如发病率,病灶通常只占器官的较小部分),样本不均衡的问题较为常见
- 小目标的分割精度对临床价值更大但同时也更难准确分割
- 不同采集设备对数据产生的影响
虽然医学图像分割领域每年产生数以万计的新SOTA
,但由于以上种种原因,导致现有的应用于医学图像分割领域的网络架构很多时候并不具备通用性和鲁棒性。而一个真正的SOTA
架构应当具备以下条件:
- 最先进的算法能够准确地完成医学图像分割任务,并且在新的、未进行过训练的数据集上能够获得较好的泛化性能
- 算法能够在多种不同的分割任务中获得一致的先进的性能
- 目前准确的训练好的模型已经能够进行商业化提供给非AI专业人员使用
nnUNet
nnUNet
早期被众人所熟知是有一年参加了医学图像分割领域的十项全能比赛(MSD)并获得了冠军:
MSD 挑战赛
MSD 挑战赛一共包含十个数据集,其中第一阶段为:脑、心脏、海马体、肝脏、肺部、胰腺以及前列腺的分割,而第二阶段则是包含了结肠、肝脏血管以及脾脏的分割。
应该来说,nnU-Net
其实并不是一个新的网络架构,而是一个集成了多种Trick
和数据预处理以及后处理的医学图像分割框架。其核心思想是基于对训练数据集的分析,使用全自动动态适应的分割综合解决方案,以更好的完成每个任务。作者认为,图像预处理、网络拓扑和后处理比网络结构更重要,而这些最重要的部分nnU-Net
框架能够自动确定(自适应调参)。
nnU-Net
网络结构是基于U-Net
架构,并进行了以下修改:
- 使用
leaky ReLU
替代ReLU
; - 实例归一化替代常规的
BN
; - 步长卷积进行下采样;
此外,在数据增强方面,主要是用到了仿射变换、非线性形变、强度变换(类似于伽马校正)、沿所有轴镜像和随机裁剪等。而在损失函数方面,则结合Dice
和交叉熵作为一个组合,同时使用了Adam
优化器。最后,作者设计了一种集成策略,通过使用四种不同的架构,利用对训练集的交叉验证自动找到特定任务的最佳组合选择。
当然,以上所述都是非常早期的改进,经过这几年的不断迭代,相信
nnUNet
已经发展得更加强大了。值得欣慰的是,作者们也一直在更新和维护该仓库。
在本次挑战赛后的两年中,nnU-Net
总共参加了几十上百项项分割任务。该方法在多个任务中赢得了前几名的成绩。例如,笔者印象深刻的是获得了 2020 年著名的 BraTS 挑战冠军。nnU-Net
的成功证实了我们的假设,即在多个任务上表现良好的方法将能够很好地推广到以前未见过的任务,并有可能胜过定制设计的解决方案。在后续的发展中,nnU-Net
已然成为最先进的医学图像分割方法,并被其他研究人员用于多项分割挑战。例如,在 2019 年肾脏和肾脏肿瘤分割挑战赛的前 15 名算法中,有 8 种是基于 nnU-Net
改进的方法。在COVID-19
肺 CT 病变分割挑战中,前十名中有九种算法是基于nnU-Net
设计的。而 2020 年的各种挑战赛获胜者中有 90% 都是在nnU-Net
之上构建了解决方案。等等。
因此,如此完美的千里马(nnUNet),必然需要一个伯乐(MedNeXt
)才能与之匹配。下面就让我们正式介绍本文方法。
Fully ConvNeXt 3D Segmentation Architecture
众所周知,ConvNeXt
继承了Transformers
的许多重要设计思想,其核心理念旨在限制计算成本,同时增加网络的感受野以学习全局特征。在这项工作中,作者基于ConvNeXt
的设计模式,提出了一个类似于3D-UNet
的新型网络架构——MedNeXt
:
MedNeXt macro and block architecture
上图为MedNeXt
的整体网络架构图。如图所示,该网络各有 4 个对称编码器和解码器层(果然很U-Net
),中间还嵌入一个瓶颈层。其中,MedNeXt
块也包含在每个上采样层和下采样层中。每个解码器层都使用深监督,在较低的分辨率下具有较低的损失权重。
可见,作者的深监督机制设计思路同笔者此前所提出的设想如出一辙。下面重点介绍下MedNeXt
模块(如上述框架图黄色部分),这是一个类似于ConvNeXt block
的新模块,其包含以下三大重要组件,即Depthwise Convolution Layer
、Expansion Layer
以及Compression Layer
。下面分别介绍下这三部分。
Depthwise Convolution Layer
DW
层主要包含一个卷积核大小为 k × k × k 的深度卷积,随后接上归一化,具有 C 个输出通道。此处,作者使用channel-wise GroupNorm
来稳定较小BatchSize
所带来的的潜在影响,而不是使用ConvNeXt
或者说大部分Transformer
架构中常用的LayerNorm
。这是由于卷积的深度性质必将允许该层中的大卷积核复制Swin-Transformers
的大注意力窗口,同时又能够有效的限制计算量。
Expansion Layer
对标Transformers
的类似设计,扩展层主要用于通道缩放,其中 R 是扩展比,同时引入了GELU
激活函数。需要注意的是,大的 R 值允许网络横向扩展,并采用 1 × 1 × 1 的卷积核限制计算量。因此,该层有效地将宽度缩放与上一层中的感受野进行了深度绑定。
Compression Layer
模块的最后便是采用具有 1 × 1 × 1 卷积核和 C 个输出通道的卷积层执行特征图的逐通道压缩。总的来说,MedNeXt
是基于纯卷积架构的,其保留了ConvNets
固有的归纳偏置(inductive bias
),可以更轻松地对稀疏医学数据集进行训练。此外,同ConvNeXt
一样,为了更好的对整体网络架构进行伸缩和扩展,本文设计了一种 3 种正交类型的缩放策略,以针对不同数据集实现更有效和鲁邦的医学图像分割性能。
Resampling with Residual Inverted Bottlenecks
最初的ConvNeXt
架构利用由标准步长卷积组成的独立下采样层。与之相反的便是应用转置卷积来进行上采样操作。然而,这种朴素的设计并未能充分该架构的优势。因此,本文通过将倒置的瓶颈层扩展到MedNeXt
中的重采样块来改进这一点。具体实现上,可以通过在第一个DW
层中分别插入步长卷积或转置卷积来完成,以实现可以完成上、下采样的MedNeXt
块,如上图绿色和蓝色部分所示。此外,为了使梯度流更容易,作者添加了具有 1 × 1 × 1 卷积或步长为 2 的转置卷积的残差连接。如此一来。便可以充分利用类似 Transformer 的倒置瓶颈的优势,以更低的计算代价保留更丰富的语义信息和所需的空间分辨率,这非常有利于密集预测型的医学图像分割任务。
UpKern: Large Kernel Convolutions without Saturation
大家都知道,提高卷积核的大小意味着增大网络的感受野从而有效提升网络的性能。然而,需要注意的是,这仅仅是理论感受野,而非实际感受野。So sad~~~因此,最近有许多工作都在探索大卷积核的魔力,据笔者有限的知识储备,目前看到过最高的极限是扩展到61 x 61
,有兴趣的读者可以自行去翻阅『CVHub』。讨论回ConvNeXt
本身,其卷积核的极限只到7 x 7
,根据原著所述再往上增大就“饱和”了。所以,针对医学图像分割这类本身数据就很稀缺的任务来说,如何才能有效的应用和发挥该架构的优势呢?下面看看作者是如何做的。为了解决这个问题,作者们首先借鉴了Swin Transformer V2
的灵感,其中一个大的注意力窗口网络是用另一个较小的注意力窗口训练的网络进行初始化的。此外,作者提议将现有的偏差矩阵空间插值到更大的尺寸作为预训练步骤,而不是从头开始训练,后续的实验也充分验证了此方法的有效性。
Upsampled Kernel (UpKern) & Performance
如上图所示,作者对针对卷积核进行了相应的“定制化”,以克服性能饱和问题。其中,UpKern
允许我们通过对大小不兼容的卷积核(表示为张量)进行三维线性上采样来初始化具有兼容的预训练小卷积核网络的大卷积核网络,从而迭代地增加卷积核大小。所有其他具有相同张量大小的层(包括归一化层)都通过复制未更改的预训练权重来初始化。综上所述,以上操作为 MedNeXt 带来了一种简单但有效的初始化技术,可帮助大卷积核网络克服医学图像分割常见的相对有限的数据场景中的性能饱和。
Compound Scaling of Depth, Width and Receptive Field
下表展示的是作者针对不同的维度采用复合缩放策略来最大化性能的表现:
可以看到,相较于常规的上采样和下采样模块,本文方法能够更好的适应不同的任务。
实验
本文在AMOS22
和BTCV
数据集上进行了相关的实验,以展示所提方法的有效性,同时也证明了直接应用普通的ConvNeXt
架构连现有的分割基线(如nnUNet
)都打不过。
从上表可以看出,MedNeXt
针对现有的四个主流的医学图像分割数据集均取得了SOTA的性能,而无需额外的训练数据。尽管存在任务异质性(脑和肾肿瘤、器官)、模态(CT、MRI)和训练集大小(BTCV:18 个样本 vs BraTS21:1000 个样本),但 MedNeXt-L 始终优于当前最先进的算法,如nnUNet
。此外,借助 UpKern 和 5 × 5 × 5 的卷积核,MedNeXt 利用完全复合缩放进一步改进其自身网络,在器官分割(BTCV、AMOS)和肿瘤分割(KiTS19、BraTS21)方面进行全面改进。
此外,在官方的Leaderboard
上,MedNeXt 在 BTCV
任务上轻松击败nnUNet
。值得注意的是,这是目前为止仅受监督训练且没有额外训练数据的领先方法之一(DSC:88.76,HD95:15.34)。同样地,对于AMOS22
数据集,MedNeXt
不仅超过了nnUNet
,而且一直占据榜首(DSC:91.77,NSD:84.00)!最后,MedNeXt
在另外两个数据集,即KITS19
和BraTS21
均获得了不错的表现,这一切得益于其优秀的架构设计。
总结
与自然图像任务相比,由于有限的训练数据等固有的领域挑战,医学图像分割缺乏受益于缩放网络的架构(如ConvNeXt
)。本文提出了一种具备高度可扩展性的类ConvNeXt
的 3D 分割架构,其在有限的医学图像数据集上优于其它 7 个顶流方法,当中就包含了非常强的nnUNet
。MedNeXt
设计作为标准卷积块的有效替代,完全可作为医学图像分割领域的新网络架构标杆之作!
#ImageMol
ai圈也是卷的狠啊~~ 又发现一个全球首个分子图像自监督学习框架来也
分子是维持物质化学稳定性的最小单位。对分子的研究,是药学、材料学、生物学、化学等众多科学领域的基础性问题。
分子的表征学习(Molecular Representation Learning)是近年来非常热门的方向,目前可分为诸多门派:
- 计算药学家说:分子可以表示为一串指纹,或者描述符,如上海药物所提出的 AttentiveFP,是这方面的杰出代表。
- NLPer 说:分子可以表示为 SMILES(序列),然后当作自然语言处理,如百度的 X-Mol,是这方面的杰出代表。
- 图神经网络研究者说:分子可以表示为一个图(Graph),也就是邻接矩阵,然后使用图神经网络处理,如腾讯的 GROVER, MIT 的 DMPNN,CMU 的 MOLCLR 等方法,都是这方面的杰出代表。
但是,目前的表征方法仍存在一些局限性。比如,序列表征缺乏分子的显式结构信息,现有图神经网络的表达能力仍有诸多局限(中科院计算所沈华伟老师对此有论述,见沈老师报告“图神经网络的表达能力”)。
有趣的是,在高中化学学习分子的时候,我们看到的是分子的图像,化学家在设计分子时,也是对照分子图像进行观察和思考。一个自然的想法油然而生:“为什么不直接用分子图像来表征分子呢?”如果可以直接用图像来表征分子,那 CV(计算机视觉)里面的十八般武艺,不都可以用来研究分子吗?
说干就干,CV 里面的模型那么多,拿过来学习分子呗?打住,还有一个重要的问题——数据!特别是带标签的数据!在 CV 领域,数据标注这件事似乎并不困难。对于图像识别或者情感分类这些 CV 和 NLP 的经典问题来说,一个人平均能标注 800 条数据。但是在分子领域,只能通过湿实验和临床实验的方式评估分子性质,因此带标签的数据非常稀缺。
基于此,来自湖南大学的研究者们提出了全球首个分子图像的无监督学习框架 ImageMol,利用大规模无标签分子图像数据进行无监督预训练,为分子性质与药物靶点理解提供了新范式,证明了分子图像在智能药物研发领域具有巨大的潜力。该成果以 “Accurate prediction of molecular properties and drug targets using a self-supervised image representation learning framework” 为题发表于国际顶级期刊《Nature Machine Intelligence》。此次计算机视觉与分子领域交叉取得的成功展示了利用计算机视觉技术理解分子性质与药物靶点机制的巨大潜力,并为分子领域的研究提供了新的机遇。
论文链接:https://www.nature.com/articles/s42256-022-00557-6.pdf
模型结构
ImageMol 的整体架构如下图所示,总共分为三部分:
(1) 设计一个分子编码器 ResNet18(浅蓝色),能够从约 1000 万张分子图像中提取潜在特征 (a) 。
(2)考虑分子图像中的化学知识和结构信息,利用五个预训练策略(MG3C、MRD、JPP、MCL、MIR)来优化分子编码器的潜在表示 (b) 。具体来说为:
① MG3C(Muti-granularity chemical clusters classification 多粒度化学簇分类):其中的结构分类器 Structure classifier(深蓝色)用于预测分子图像中的化学结构信息;
② MRD(Molecular rationality discrimination 分子合理性判别器):其中的合理性分类器 Rationality classifier(绿色),它用于区分合理与不合理的分子;
③ JPP(Jigsaw puzzle predicition 拼图预测):其中的拼图分类器 Jigsaw classifier(浅灰色)用于预测分子的合理排列;
④ MCL(MASK-based contrastive learning 基于 MASK 的对比学习):其中的对比分类器 Contrastive classifier(深灰色)用于最大化原始图像和 mask 图像之间的相似性;
⑤ MIR(Molecular image reconstruction 分子图像重建):其中的生成器 Generator(黄色)用于将潜在特征恢复分子图像,判别器 Discriminator(紫色)用于区分真实图像和生成器生成的假的分子图像。
(3)在下游任务中对预处理的分子编码器进行微调,以进一步提高模型性能 (c) 。
基准评估
作者首先使用 8 种药物发现的基准数据集来评估 ImageMol 的性能,并且使用两种最流行的拆分策略(scaffold split 与 random scaffold split)来评估 ImageMol 在所有基准数据集上的性能。在分类任务中,利用受试者工作特性(Receiver Operating Characteristic, ROC)曲线以及曲线下的面积(Area Under Curve, AUC)来评估,从实验结果可以看出,ImageMol 均能得到较高的 AUC 值 (图 a) 。
ImageMol 与预测分子图像的经典卷积神经网络框架 Chemception 在 HIV 和 Tox21 的检测结果对比 (图 b) ,ImageMol 的 AUC 值更高。本文进一步评估了 ImageMol 在预测五种主要代谢酶(CYP1A2, CYP2C9, CYP2C19, CYP2D6 和 CYP3A4)药物代谢方面的性能。图 c 显示,ImageMol 在五种主要药物代谢酶的抑制剂与非抑制剂的预测中,与三种最先进的基于分子图像的表示模型(Chemception46、ADMET-CNN12 和 QSAR-CNN47)相比,获得了更高的 AUC 值(范围从 0.799 到 0.893)。
本文进一步将 ImageMol 的性能与三种最先进的分子表示模型进行了比较,如图 d、e 所示。ImageMol 与使用随机骨架划分的基于指纹的模型(如 AttentiveFP)、基于序列的模型(如 TF_Robust)和基于图的模型(如 N-GRAM、GROVER 和 MPG)相比具有更好的性能。此外,与传统的基于 MACCS 的方法和基于 FP4 的方法相比,ImageMol 在 CYP1A2,CYP2C9,CYP2C19,CYP2D6 和 CYP3A4 上实现了更高的 AUC 值(图 f)。
ImageMol 与基于序列的模型(包括 RNN_LR、TRFM_LR、RNN_MLP、TRFM_MLP、RNN_RF、TRFM_RF 和 CHEM-BERT)和基于图的模型(包括 MolCLRGIN、MolCLRGCN 和 GROVER)相比,如图 g 所示,ImageMol 在 CYP1A2、CYP2C9、CYP2C19、CYP2D6、CYP3A4 上实现了更好的 AUC 性能。
在以上 ImageMol 与其他先进的模型对比中,可以看出 ImageMol 的优越性。
自新冠疫情爆发以来,我们迫切需要为新冠疫情制定有效的抗病毒治疗策略。因此,作者在该方面对 ImageMol 做了相应的评估。
对 13 个 SARS-CoV-2 靶点的抗病毒活性进行预测
ImageMol 对现如今关注的热点病毒 SARS-CoV-2 进行了预测实验,在 13 个 SARS-CoV-2 生物测定数据集中,ImageMol 实现了 72.6% 至 83.7% 的高 AUC 值。图 a 揭示了通过 ImageMol 鉴定的潜在特征,它在 13 个靶点(target)或终点(endpoints)活性和无活性的抗 SARS-CoV-2 上很好的聚集,且 AUC 值均比另一种模型 Jure’s GNN 要高 12% 以上 ,体现出该模型的高精度和很强的泛化性。
识别抗 SARS-CoV-2 抑制剂
对药物分子研究关乎最直接的实验来了,利用 ImageMol 直接识别病毒抑制剂分子!通过 ImageMol 框架下 3CL 蛋白酶(已被证实是治疗 COVID-19 的有希望的治疗发展靶点)抑制剂与非抑制剂数据集的分子图像表示,该研究发现 3CL 抑制剂和非抑制剂在 t-SNE 图中很好地分离,如下图 b 。
另外,ImageMol 鉴定出 16 种已知 3CL 蛋白酶抑制剂中的 10 种,并将这 10 种药物可视化到图中的包埋空间(成功率 62.5%),表明在抗 SARS-CoV-2 药物发现中具有较高的泛化能力。使用 HEY293 测定来预测抗 SARS-CoV-2 可再利用药物时,ImageMol 成功预测了 70 种药物中的 42 种(成功率为 60%),这表明 ImageMol 在推断 HEY293 测定中的潜在候选药物方面也具有很高的推广性。下图 c 展示了 ImageMol 在 DrugBank 数据集上发现 3CL 潜在抑制剂的药物。图 d 展示了 ImageMol 发现的 3CL 抑制剂的分子结构。
注意力可视化
ImageMol 可以从分子图像表示中获取化学信息的先验知识,包括 = O 键、-OH 键、-NH3 键和苯环。图 b 和 c 为 ImageMol 的 Grad-CAM 可视化的 12 个示例分子。这表示 ImageMol 同时准确地对全局 (b) 和局部 (c) 结构信息进行注意捕获,这些结果使研究人员能够在视觉上直观地理解分子结构是如何影响性质和靶点。
#FeatEnHancer
既不需要在合成数据集上进行预训练,也不依赖增强损失函数。本文提出了一种即插即用的新型通用特征增强模块FeatEnHancer,旨在丰富低光视觉下有利于下游任务的分层特征。
论文链接:https://arxiv.org/pdf/2308.03594.pdf
TL;DR: 本文提出了FeatEnHancer
,一种用于低光照视觉任务的增强型多尺度层次特征的新方法。提议的解决方案重点增强相关特征,通过提供强大的语义表示,使其优于现有的低光照图像增强方法。该方法不仅改进了单个特征的质量,而且还有效地结合了来自不同尺度的特征,确保在诸如物体检测和分割等任务上达到更好的性能。论文通过在几个基准数据集上的性能指标确认了其方法的有效性,并与 SOTA 方法相比取得了显著的改进。
众所周知,在低光条件下提取有用的视觉线索对下游任务的应用极具挑战性。现有方法要么通过关联视觉质量与机器感知来提升图像质量,要么使用需要在合成数据集(例如叠加噪声、雨雪、光照等)上进行预训练的方法。
本文提出一个名为FeatEnHancer
的模块,该模块借鉴了多头注意力机制,层次性地结合多尺度特征。这种方法确保了网络能够提取更具代表性和判别行的增强特征。具体地,该方法着眼于改进每个尺度或级别下的特征质量,同时根据任务的相对重要性结合不同尺度的特征(动态机制)。值得一提的是,所提方法是即插即用的,理论上适用于任何低光视觉任务,从上图可视化的分层表示结果来看网络确实能够提取到有意义的表征。
尽管在高质量图像的 high-level
视觉任务中取得了进展,但当将低光图像增强(LLIE)方法与高级视觉任务结合时,性能会下降。这是由于现有的LLIE
方法虽然增强了人眼的视觉效果,但可能与机器视觉不太匹配(模式不匹配),因为它们可能会损害物体的重要特征,如边缘和纹理。
此外,大家都知道低光照图像的像素分布差异很大,这会导致严重的漏检问题。当前的LLIE
方法采用的常规损失函数没有“区分”出每个像素的重要程度,这不利于学习对高级任务至关重要的细节信息。
因此,受到LLIE
和基于视觉的网络的进展的启发,该论文旨在通过共同优化特征增强和下游任务目标来弥合这一差距。
方法
整体的架构如图所示,不难看出就是一个分层的特征表示,中间再结合一些多尺度的特征融合机制,最终得到一张经过低光照增强的图像再送入下游任务做应用。关于这一块其实前面的文章已经讲的很多了,这里我们简要阐述即可。先讲解下整体流程:
首先,FeatEnHance 对输入的低光照图像进行不同层次的下采样,以构建多尺度层次表示。
其次,将这些表示提供给特征增强网络(FEN),以丰富内部尺度的语义表示。
紧接着通过两种策略融合增强的表示:
- 对于高分辨率特征使用尺度感知注意特征聚合(SAFA);
- 对于低分辨率特征使用跳跃连接。
最后,FEN
的参数可以通过与任务相关的损失函数进行调整,以侧重于增强与任务相关的特征。
特征增强网络
为了增强每个尺度上的特征,我们需要一个增强网络,该网络能够学习增强下游任务中重要的空间信息。为此,作者参考了Zero-DCE++
(TPAMI 2021)中应用的DCENet
,并构建了一个全卷积的多尺度特征提取网络FEN
。与 DCENet 不同的是:
多尺度特征融合
这里便涉及到 SAFA 模块,其设计理念在于如何在高计算效率下,有效地聚合多尺度特征?
下面结合上图简单说明下该应用策略:
实验本文分别在四个不同的视觉任务下进行了实验,以下是各任务数据集的详细统计:
这里涉及到暗光目标检测、人脸检测、语义分割、视觉目标检测。首先给出其定量分析结果:
可以看出本文方法在不同任务上涨点还算显著的,大都提升了几个点。接着看看定性分析结果:
最后再来看下中间的可视化结果图,可以明显看出经过增强后的图像可以学习出更好的表征:
总结
本文提出了一种名为FeatEnHancer
的新型通用特征增强模块,旨在丰富低光视觉下有利于下游任务的分层特征。所设计的内部尺度特征增强和尺度感知注意力特征聚合策略与视觉主干网络相结合,产生了强大的语义表示。此外,FeatEnHancer
既不需要在合成数据集上进行预训练,也不依赖增强损失函数。这些架构创新使FeatEnHancer
成为一个即插即用的模块。对四种不同的下游视觉任务进行的广泛实验,涵盖了图像和视频,证明了所提方法相对于基线、LLIE方法和特定任务的最新方法都带来了稳定且显著的改进。
#PDM~~
本文提出的概率退化模型 (PDM) 可以更好地将退化作用与图像内容解耦。与之前的退化模型相比,PDM 可以生成具有更大退化多样性的 HR-LR 训练样本,这可以生成更多种类的退化作用,并有助于提高 SR 模型在测试图像上的性能。
论文名称:Learning the Degradation Distribution for Blind Image Super-Resolution (CVPR 2022)
论文地址:https://arxiv.org/pdf/2203.04962.pdf
盲超分任务介绍
作为基本的 low-level 视觉问题,单图像超分辨率 (SISR) 越来越受到人们的关注。SISR 的目标是从其低分辨率观测中重建高分辨率图像。目前已经提出了基于深度学习的方法的多种网络架构和超分网络的训练策略来改善 SISR 的性能。顾名思义,SISR 任务需要两张图片,一张高分辨率的 HR 图和一张低分辨率的 LR 图。超分模型的目的是根据后者生成前者,而退化模型的目的是根据前者生成后者。经典超分任务 SISR 认为:低分辨率的 LR 图是由高分辨率的 HR 图经过某种退化作用得到的,这种退化核预设为一个双三次下采样的模糊核 (downsampling blur kernel)。 也就是说,这个下采样的模糊核是预先定义好的。但是,在实际应用中,这种退化作用十分复杂,不但表达式未知,而且难以简单建模。双三次下采样的训练样本和真实图像之间存在一个域差。以双三次下采样为模糊核训练得到的网络在实际应用时,这种域差距将导致比较糟糕的性能。这种退化核未知的超分任务我们称之为盲超分任务 (Blind Super Resolution)。
为什么要学习图像盲超分的退化分布
在盲超分辨率超详细解读 (一):模糊核迭代校正方法 IKC 中,我们介绍了一种模糊核迭代校正的盲超分方法 IKC。IKC 发现只有当我们预设的模糊核与图片真实的模糊核相差不大的时候,超分的结果才显得自然,没有伪影和模糊。因此,IKC 提出了一种退化核的迭代校正方法。它的每次迭代都可以分成2步:
但是,IKC 和 DAN 两个方法都预设退化完全取决于图像的内容,所以都是通过一个判别模型 (IKC 的 Predictor 或者 DAN 的 Estimator) 借助图片内容来估计模糊核 (退化作用)。但是真实世界图片的退化作用随机且与图片的内容无关。这些判别模型无法建模不确定的退化作用,以及与图片的内容无关的退化作用,限制了超分模型的性能。
所以,一种更好的解决方案是:我们不通过模型来得到退化作用,而是通过概率模型来建模退化作用。因此,本文作者提出了概率退化模型 (Probabilistic Degradation Model,PDM),可以学习盲图像超分辨率的退化分布。
具体而言,作者把退化模型建模成:
这样一来,PDM 就可以建模退化作用中的随机变量,并把退化作用与图片的内容进行解耦。学习好了 PDM 之后,PDM 可能更容易涵盖所有测试图像的各种退化,并防止 SR 模型过度拟合特定图像。PDM 可以作为一个数据生成器,并可以很容易地与现有的 SR 模型集成,以帮助它们提高应用程序的性能。
模糊分布建模
上式2中的退化过程包含线性的2步:
噪声分布建模
在 CMOS 图像传感器中,以 OV5640 为例,其感光阵列如下图1所示:
可以看到,感光阵列由红、绿、蓝三种感光点组成,B只识别蓝色光,R只识别红色光,Gb只识别绿色光,假如将这种每个感光像素点转换成数字信号后直接输出,就得到了 RAW 格式的图像数据。
而 RGB 是 RAW 格式数据经过一系列处理后得到的图像格式,当然,使用 CMOS 图像传感器话,传感器内部集成了处理电路,只需要配置寄存器就可以选择输出 RAW 格式还是 RGB 格式数据。
人眼能感知的色彩其实是红色、绿色、蓝色三种原色的各种组合,红绿蓝三种颜色的按照不同比例组合最终会呈现出不同的颜色。这种以三原色组合的图像格式是 RGB 格式,是目前应用最广的图像格式。RGB 有很多种格式,常用的有 RGB565,一共用 16bit 就可以表示三种分量;还有 RGB888,这一种格式需要 24bit 的数据来表示,正因为需要的 bit 数多,所以 RGB888 能表示的颜色比 RGB565 要多很多。如果对颜色精细度要求不是很高可以使用 RGB565,在很多计算过程中需要使用 RGB888。
图1:CMOS 图像传感器 OV5640 的感光阵列
概率退化模型
上面两节介绍的模糊模块和噪声模块可以构造概率退化模型,用来生成训练所需的 HR-LR 图像对。
PDM 的优势是:
利用概率退化模型构建盲超分框架
PDM 的框架如下图2所示,它可以和 SR 模型一起训练, 这样,PDM 就可以与任何 SR 模型集成,形成 Blind SR 的统一框架,称为 PDM-SR (或者 PDM-SRGAN,如果在 SR 模型的训练中也采用了对抗性损失和 perceptual loss)。
PDM 训练过程
实验数据集: NTIRE2017 track2,NTIRE2018 track2 和 track4,NTIRE2020 track1 和 track2。
前三个数据集分别提供了用于训练的 800,800 和 3200对 HR-LR 图像和用于验证的 100 对 HR-LR 图像。因此,对于每个数据集,作者只使用前半部分 HR 图像,后半部分 LR 图像进行训练。对于 NTIRE2020 的 track1 和 track2,由于他们提供的训练样本已经不成对,所以我们直接使用所有图像进行训练。
训练时将 HR 图片 crop 成128×128大小,将 LR 图片 crop 成32×32大小,batch size 设置为32,所有模型训练 2 × 105 steps。优化器为 Adam,学习率 2e-4,每隔 5000 steps,减小一半。
由于参考的 SR 模型包括 PSNR-oriented (即 SR 模型由 L1/L2 损失监督) 和 perceptual-oriented (即 SR 模型由 perceptual loss 监督)的方法,作者还提供了我们的方法的两个版本,即 PDM-SR 和 PDM-SRGAN。如下图4所示, 就 LPIPS 而言,PDM-SRGAN 的性能远远优于其他方法。就 PSNR 和 SSIM 而言,PDM-SR 也取得了最佳的整体性能。特别是在 SSIM 上,PDM-SR 远远优于其他所有方法。
下图5是 2017 Track2 的 0827x4 图片和 2018 Track2 的 0860x4m 图片的视觉比较结果。2017 Track2 的 0827x4 是一张非常模糊的图片,它的 SR 结果将可能具有不期望的伪像。可以看到,通过其他方法超分辨率的结果仍然模糊,而 PDM-SR 成功地消除了模糊。2018 Track2 的 0860x4m 受到复杂噪声的影响。如图所示,PDM-SR 的结果比其他方法更清晰,表明 PDM 也能更好地模拟随机噪声。
作者进一步与 Real-ESRGAN 和 BSRGAN 等预训练模型进行了比较,这些方法都是 perceptual-oriented 的,因此作者这里使用 PDM-SRGAN 进行比较。超分模型和其他基线方法一样,都是 RRDB。如下图6所示,PDM-SRGAN 在 2020 Track1 实现了最高的 SSIM 和 LPIPS,在 2020 Track2 实现了最好的 NIQE。下图7是 2020 Track2 的图片 0010 和 0097 的视觉比较结果。可以看出,Real-ESRGAN 和 BSRGAN 等的方法产生的 SR 结果更可能过于平滑,而这些细节在 PDM-SRGAN 中得到更好的保留。
下图8所示 2017 Track2 数据集合成的 LR 图和模糊核,可以看出它与高斯核有很大不同。学习到的模糊核是分散而非紧凑的。图9是 2018 Track4 数据集合成的 LR 图和模糊核,它呈现出对称的形态,且噪声是彩色的,与图片内容有关。
#AlignDet
AlignDet可以显著提升各种检测器在不同训练策略和数据量下的性能。例如,在COCO上使用12个epoch预训练,FCOS精度提升5.3 mAP,Mask R-CNN提升3.3 mAP。 它也是第一个支持各种检测器完全自监督预训练的框架。
论文链接:https://arxiv.org/abs/2307.11077
项目地址:https://github.com/liming-ai/AlignDet
这篇论文主要研究目标检测领域的自监督预训练方法。作者首先指出,当前主流的预训练-微调框架在预训练和微调阶段存在数据、模型和任务上的不一致。具体来说
- 数据不一致预训练通常在分类数据集上进行,如ImageNet,而微调数据集像COCO包含多个目标物体。数据特征和域的差异会导致预训练偏离下游任务。
- 模型不一致当前预训练方法主要聚焦在模型的部分模块,如骨干网络,而检测器的其他关键模块如RPN和回归头没有进行预训练。
- 任务不一致现有预训练只将分类作为预训练任务,没有学习到目标相关的位置上下文信息,如proposal生成、目标分配和框回归。
这些不一致性可能导致目标检测性能的局限、泛化能力差和收敛速度慢的问题。为此,作者提出AlignDet框架,可以调适到不同检测器中,以弥合预训练和微调中的差异。
AlignDet将预训练过程解耦为Image-domain预训练和Box-domain预训练两个阶段。Image-domain预训练优化检测网络的骨干提取高层语义特征,Box-domain预训练则学习实例级语义和任务感知的概念,来初始化骨干以外的模块。具体来说
- 在Image-domain预训练中,可以用分类器对骨干网络进行监督预训练,也可以用最近出现的自监督方法进行无监督预训练。
- 在Box-domain预训练中,使用选择性搜索生成伪标签,构建两视图进行对比学习和坐标回归损失计算,以适应检测导向的任务。同时固定骨干网络避免过拟合噪声标签。
那么对于数据、模型和任务存在的不一致性,AlignDet都是怎么解决的呢?首先对于数据不一致性方面,AlignDet通过Box-domain预训练直接在目标检测数据集上进行,而不是仅在分类数据集上预训练。这使得预训练过程可以适应目标检测的数据分布, bridge the gap between pre-training and fine-tuning datasets。至于模型不一致性方面,AlignDet可以预训练检测器中的所有模块,而不仅仅是骨干网络。这确保了检测头等关键模块可以得到良好的初始化,有利于迁移到下游任务。从任务不一致性的方面来看,AlignDet构建了检测导向的预训练任务,既包含分类也包含回归。这使得预训练不仅学习语义信息,还学习物体的坐标信息,更贴近目标检测的实际任务。进一步来说,AlignDet通过Image-domain和Box-domain解耦设计,可以充分利用现有预训练的骨干网络,提升预训练效率。同时,它也是第一个支持各种检测器完全自监督预训练的框架。
从实验结果来看,AlignDet可以显著提升各种检测器在不同训练策略和数据量下的性能。例如,在COCO上使用12个epoch预训练,FCOS精度提升5.3 mAP,Mask R-CNN提升3.3 mAP。这充分验证了AlignDet可以有效解决目标检测预训练与微调中的差异,并取得显著的性能改进。
方法
这篇论文提出了AlignDet框架,以解决目标检测中预训练和微调过程中的数据、模型和任务的不一致性问题。该框架包含Image-domain预训练提取语义特征和Box-domain预训练学习实例级语义的两个阶段。Box-domain预训练利用选择性搜索生成伪标签,并通过对比学习和坐标回归任务进行检测导向的预训练。
Image-domain Pre-training
在AlignDet框架中,Image-domain预训练主要针对骨干网络,以提取语义特征。该过程可以使用监督或自监督方式进行。
以自监督预训练为例,给定输入图像x,可以通过数据增强构建两个视图x1和x2。然后骨干网络backbone可以学习到视角不变的表示:
这里的predictor通常是一个小的MLP,stopgrad表示停止梯度回传。
通过在大规模图像分类数据集上预训练,骨干网络可以学到语义特征,为后续的Box-domain预训练提供输入。这种监督或自监督的Image-domain预训练可以有效提取视角不变的特征表示,是AlignDet框架的第一步。
Box-domain Pre-training
AlignDet框架中的Box-domain预训练主要针对检测器中除骨干网络之外的模块,以学习实例级语义和任务感知的先验知识。Box-domain预训练包含以下几个关键步骤:
- Box-domain Pre-training:Box-domain Pre-training的目的是生成用于后续预训练的伪标签。它使用选择性搜索算法从图像中生成多个区域proposal,作为预训练时的伪真值框标签。这可以提供多对象和不同位置、尺度的样本,使预训练数据更贴近目标检测场景。实现方式是:对输入图像执行选择性搜索,获得proposal集P。同时构建图像的两增强视图,proposal集也做相应变换,获得P1和P2。检测器的回归模块预测两视图的框坐标B1和B2。
给定输入图像x,使用选择性搜索生成区域proposal集P = {p1, p2, ..., pn}作为伪标签。对x进行数据增强构建两视图x1和x2,proposal集也同时进行变换生成P1和P2。检测器的回归相关模块freg预测两视图的框坐标: -
- Box-domain Contrastive Learning:目的是学习实例级的语义特征表示。它利用预测的框坐标,最大化同一proposal在两视图中特征的相似度,实现对比学习。实现方式是:基于预测框B1和B2,提取两视图的特征表示Z1和Z2。定义正负样本,通过InfoNCE对比损失拉近正样本距离,推远负样本距离。
基于预测的框坐标,可以提取特征向量用于对比学习: -
3. Overall Loss:Box-domain预训练的总损失为对比损失和坐标回归损失之和:
实验
从Table 2的实验结果可以看出,AlignDet与只进行Image-domain预训练的方法相比,在不同的检测器、训练策略和数据量设置下都获得了显著的性能提升。在数据量方面,随着训练数据的减少,AlignDet的提升越明显。例如在只有1%数据的情况下,AlignDet分别为FCOS、RetinaNet、Faster R-CNN和Mask R-CNN带来了1.4、1.8、2.5和3.6 mAP的提升。这说明AlignDet学到的知识可以缓解数据不足的问题。
在训练策略方面,在训练轮数较少(12k iters)的情况下,AlignDet同样带来显著提升,例如Mask R-CNN在12k iters下提升3.2 mAP。这证明AlignDet加速了模型收敛速度。
在检测器方面,AlignDet对一阶段模型FCOS和RetinaNet、两阶段模型Faster R-CNN、query基础模型DETR都取得明显的效果提升。这展示了AlignDet的普适性。即使在充足数据(100% COCO)和充分训练迭代(90k iters)下,AlignDet仍可带来约1.0 mAP的提升。这进一步证明了AlignDet的有效性。与其他方法相比,AlignDet对各类检测器都获得显著且一致的效果改进,尤其是在低数据量或训练迭代较少的困难设置下,而其他方法的提升则相对较小且局限。这充分证明AlignDet可以有效地解决预训练和微调过程中的差异,为各类检测方法提供强有力的预训练方案。
从Table 4的迁移学习结果可以看出,AlignDet在COCO数据集上进行预训练后,可以有效地迁移至Pascal VOC数据集并提升下游检测性能。具体来看:AlignDet在所有检测器上都获得了显著的AP提升,特别是高阈值metric AP75的提升非常明显。例如Faster R-CNN的AP75提升了6.5。对于RetinaNet和FCOS等一阶段检测器而言,AlignDet预训练主要增强了分类能力,即AP50指标获得明显提升。这与一阶段检测器更依赖分类的特点一致。对于两阶段检测器Faster R-CNN,AlignDet预训练主要提升了回归准确度,即AP75指标明显增强。这与两阶段检测器同时优化分类和回归的流程吻合。而DETR这样的query基础检测器,AlignDet在分类和回归两个指标上都取得显著提升。
也就是说,AlignDet学到的知识能有效迁移到下游检测任务和数据集上,提升不同检测器的分类和回归能力。这进一步证明了AlignDet学习到的语义和坐标信息对目标检测任务具有普适的优化作用。这表明AlignDet不仅适用于COCO等多对象检测,也适用于VOC等较简单的少类检测。
讨论
这篇论文的一大优点在于作者针对目标检测预训练与微调之间的数据、模型和任务不一致性难题,提出了一套统一且全面的AlignDet框架进行检测导向的预训练。该框架通过分别解决数据、模型和任务上的差异,成功地在有效性、效率和迁移能力上取得明显改进和突破。此外,该方法的普适性也很强,可以广泛应用于各类检测器和骨干网络。这可以说是一个具有重要意义的里程碑性工作。
但是,这篇论文也存在一些可以改进的地方。比如Box-domain预训练目前需要依赖选择性搜索生成伪标签,这可能会带来一定局限性,我们可以探索端到端的无监督框检测方法来获得proposal。此外,当前方法主要在COCO数据集验证,可以考虑在更多检测数据集和场景下进行评估。
展望未来,这项工作为目标检测的预训练研究打开了新的大门。我们可以基于该框架,继续探索无监督、弱监督proposal生成和Box-domain预训练技术,以进一步降低人工标注和计算成本。另一方面,如何将该框架扩展到其他密集预测任务也是一个有趣的方向。总之,这项工作为更好地解决预训练与下游任务的不一致提供了重要启发,是目标检测和计算机视觉领域一个高质量的工作。
从表1可以看出,AlignDet与其他目标检测预训练方法的主要区别在于:
- 数据方面,AlignDet不仅适用于单对象的数据集,也能够在多对象的数据集上进行预训练,更贴近下游任务。
- 模型方面,AlignDet可以预训练检测模型中的所有模块,而不仅是骨干网络,确保各模块初始化良好。
- 任务方面,AlignDet同时引入了分类和回归两种预训练任务,学习语义和坐标信息,更符合目标检测的需求。
- 效果方面,AlignDet对各类检测器都能取得显著提升,展示了更强的普适性。
- 效率方面,AlignDet只需要12个epoch在COCO上预训练即可取得稳定收益,训练时间上也更为高效。
- 创新方面,AlignDet支持各类检测器的完全自监督预训练,是第一个实现这一目标的方法。
综上所述,AlignDet相比其他方法更充分地解决了预训练和微调过程中的数据、模型和任务差异,使检测器获得了显著和一致的性能改进。这说明了AlignDet的有效性、普适性以及创新性。
结论
题为“AlignDet: Aligning Pre-training and Fine-tuning for Object Detection”的论文研究了目标检测中预训练和微调过程中的数据、模型和任务不一致性问题。论文指出现有预训练范式存在上述三方面差异,导致检测性能受限、泛化能力差且收敛速度慢。为解决这一问题,论文提出了AlignDet框架,可以适配各种检测器以弥合预训练和微调的差异。该框架分为Image-domain预训练提取语义特征和Box-domain预训练学习实例级语义与任务感知先验。实验结果展示,AlignDet可以显著提升各类检测器在不同数据量、训练策略及迁移学习下的性能。例如在COCO上12轮预训练,FCOS精度提升5.3 mAP,Mask R-CNN提升3.3 mAP。可以说AlignDet是第一个支持各类检测器完全自监督预训练的框架,对推进目标检测预训练研究具有重要意义。总之,本论文不仅指出了目标检测中存在的预训练与微调不一致性问题,也设计了AlignDet框架进行有效的检测导向预训练,为该领域的研究做出了重要贡献。
#visii
prompt在视觉领域,也越来越重要,在图像生成,作为一种可控条件,增进交互和可控性,在多模态理解方面,指令prompt也使得任务灵活通用。视觉提示工程,已然成为CV一个前沿方向!
下面来看看最新的两篇论文,了解一下视觉提示的应用!
Visual Instruction Inversion: Image Editing via Visual Prompting
文本条件的图像编辑已经成为一种强大的图像编辑工具。
然而,在许多情况下,语言描述图像编辑具有歧义性和低效性。面对这些挑战时,视觉提示可以更直观和准确地传达所需的编辑内容。
本文提出了一种通过视觉提示进行图像编辑的方法。通过给定代表编辑的“之前”和“之后”图像的示例对,方法学习一个基于文本的编辑方向,用于在新图像上执行相同的编辑。利用文本到图像扩散模型的丰富预训练编辑能力,将视觉提示转化为编辑指令。
结果表明,即使只有一个示例对,也可以获得与最先进的文本条件图像编辑框架相竞争的结果。https://thaoshibe.github.io/visii/
A Systematic Survey of Prompt Engineering on Vision-Language Foundation Models
Prompt engineering是一种技术,它通过增加大型预训练模型与针对特定任务的提示(即prompt)来适应新任务。提示可以手动创建为自然语言指令,也可以自动生成为自然语言指令或向量表示。
Prompt engineering使得仅依靠提示就可以进行预测,而无需更新模型参数,并且更容易将大型预训练模型应用于任务。
在过去的几年里,Prompt engineering在自然语言处理领域得到了广泛研究。然而,目前缺乏关于预训练视觉语言模型上Prompt engineering的系统综述。本文旨在对三种类型的视觉语言模型(包括多模态生成模型、图像-文本匹配模型和文本-图像生成模型)上的Prompt engineering的前沿研究进行全面的调查。对于每种模型,概述了模型简介、提示方法、基于提示的应用以及相关的责任和完整性问题。
此外,还讨论了视觉语言模型、语言模型和视觉模型上的Prompt engineering的共性和差异。总结了挑战、未来方向和研究机会,以促进未来关于这个方向研究。
#FastViT
这里提出了一种通用的 CNN 和 Transformer 混合的视觉基础模型,移动设备和 ImageNet 数据集上的精度相同的前提下,FastViT 比 CMT 快3.5倍,比 EfficientNet 快4.9倍,比 ConvNeXt 快1.9倍。
本文是 MobileOne 原班人马打造,可以看做是 MobileOne 的方法在 Transformer 上的一个改进型的应用。作者取名 FastViT,是一种 CNN,Transformer 混合架构的低延时模型。作者引入了一种新的 token mixer,叫做 RepMixer,它使用结构重新参数化技术,通过删除网络中的 Shortcut 来降低内存访问成本。
进一步使用大核卷积使得 FastViT 精度得到提升,而且不怎么影响延时。在移动设备和 ImageNet 数据集上的精度相同的前提下,FastViT 比 CMT 快3.5倍,比 EfficientNet 快4.9倍,比 ConvNeXt 快1.9倍。在类似的延迟下,FastViT 在 ImageNet 上获得的 Top-1 准确率比 MobileOne 高 4.2%,是一种极具竞争力的混合架构模型。
论文名称:FastViT: A Fast Hybrid Vision Transformer using Structural Reparameterization
论文地址:
https://arxiv.org/pdf/2303.14189.pdf
本文的目标是做一个卷积,Attention 的低延时混合架构,因为这种架构有效地结合了 CNN 和 Transformer 的优势,在多个视觉任务上有竞争力。本文的目标是建立一个模型,实现 SOTA 的精度-延时 Trade-off。
本文的出发点是最近的像 CMT[1],LIT[2]等 CNN 和 Transformer 混合架构的模型都遵循 MetaFormer[3] 的架构,它由带有 skip-connection 的 token mixer 和带有 skip-connection 的前馈网络 (Feed Forward Network) 组成。由于增加了内存访问成本 (memory access cost),这些跳过连接在延迟方面占了很大的开销。为了解决这个延迟开销,本文提出 RepMixer,这是一个完全可以重参数化的令牌混合器,它的特点1是使用结构重参数化来删除 skip-connection。
RepMixer 的特点2是在训练期间为主要的层添加一些过参数化的额外的分支,以在训练时提升模型的精度,在推理时全部消除。RepMixer 的特点3是在网络中使用了大核卷积在前几个阶段替换掉 Self-Attention。具体是在前馈网络 (FFN) 层和 Patch Embedding 层中加入了大核卷积。这些更改对模型的总体延迟影响很小,同时提高了性能。
对于性能这块作者在 iPhone 12 Pro 设备和 NVIDIA RTX-2080Ti desktop GPU 上进行了详尽的分析,实验结果如下图1所示。可以看到在两种设备上,FastViT 都实现了最佳的精度-延时的权衡。
图1:iPhone 12 Pro 设备和 NVIDIA RTX-2080Ti desktop GPU 上的精度-延时比较
FastViT 模型架构
FastViT 整体架构如下图2所示。
Stage 的内部架构
FastViT 采用了4个 stage 的架构,每个 stage 相对于前一个的分辨率减半,通道数加倍。前3个 stage 的内部架构是一样的,都是训练的时候采用下式:
第4个 stage 的内部架构如图2 (a) 所示,采用 Attention 来作为 token mixer,可能是为了性能考虑,宁愿不采用结构重参数化,牺牲延时成本,以换取更好的性能。
值得注意的是,每个 Stage 中的 FFN 使用的并不是传统的 FFN 架构,而是如图2 (c) 所示的,带有大核 7×7 卷积的 ConvFFN 架构。
图2:FastViT 模型架构
Stem 的结构
Stem 是整个模型的起点,如图2 (b) 所示,FastViT 的 Stem 在推理时的结构是 3×3 卷积 + 3×3 Depth-wise 卷积 + 1×1 卷积。在训练时分别加上 1×1 分支或者 Identity 分支做结构重参数化。
Patch Embedding 的架构
Patch Embedding 是模型在 Stage 之间过渡的部分,FastViT 的 Patch Embedding 如图2 (a) 所示,在推理时的结构是 7×7 大 Kernel 的 Depth-wise 卷积 + 1×1 卷积。在训练时分别加上 3×3 分支做结构重参数化。
位置编码
位置编码使用条件位置编码,它是动态生成的,并以输入 token 的局部邻域为条件。这些编码是由 depth-wise 运算符生成的,并添加到 Patch Embedding 中。
RepMixer 的延时优势
如下图3所示,作者对比了 RepMixer 和高效的 Pooling 操作的延时情况。架构使用的是 MetaFormer S12,大概有 1.8 GFLOPs。作者在 iPhone 12 Pro 移动设备上为从 224×224 到 1024×1024 的各种输入分辨率的模型计时。可以看到 RepMixer 明显优于 Pooling,尤其是在较高分辨率的时候。在分辨率为 384×384 时,使用 RepMixer 可以降低 25.1% 的延迟,而在分辨率为 1024×1024 时,使用 RepMixer 可以降低 43.9% 的延迟。
图3:RepMixer 的延时优势
FastViT 的大核卷积
RepMixer 的感受野是局部的。我们知道 Self-Attention 操作的感受野是全局的,但是 Self-Attention 操作计算量昂贵,因此之前有工作说使用大核卷积可以在计算量得到控制的情况下有效增加感受野的大小。FastViT 在两个位置引入了大核卷积,分别是 Patch Embedding 层和 FFN。对比实验的结果如下图4所示。将 V5 与 V3 进行比较,模型大小增加了 11.2%,延迟增加了 2.3 倍,而 Top-1 精度的增益相对较小,只有 0.4%,说明使用大核卷积来替换 Self-Attention 是一种高效,节约延时的方式。V2 比 V4 大 20%,延时比 V4 高 7.1%,同时在 ImageNet 上获得相似的 Top-1 精度。
图4:大核卷积的消融实验
随着感受野的增加,大核卷积也有助于提高模型的鲁棒性。FastViT 各种模型的超参数配置如下图5所示。
图5:FastViT 的超参数配置
实验结果
ImageNet-1K 图像分类实验结果
如下图6所示是 ImageNet-1K 图像分类实验结果。对于 iPhone 设备延时的测量,作者使用 Core ML Tools (v6.0) 导出模型,并在带有 iOS 16 的 iPhone12 Pro Max 上运行,并将所有模型的 Batch Size 大小设置为1。对于 GPU延时的测量,作者把模型导出为 TensorRT (v8.0.1.6) 格式,并在 NVIDIA RTX-2080Ti 上运行,Batch Size 大小为8,报告100次运行的中位数。
与 SOTA 模型的性能比较如下图6所示。本文的 FastViT 实现了最佳的精度-延时均衡,比如 FastViT-S12 在 iPhone 12 Pro 上比 MobileOne-S4 快 26.3%,GPU 上快 26.9%。在 83.9% 的 Top-1 精度下,FastViT-MA36 比 iPhone 12 Pro 上优化的 ConvNeXt-B 模型快 1.9倍, GPU上快2.0倍。
图6:ImageNet-1K 图像分类实验结果
知识蒸馏实验结果
如下图7所示是 FastViT 作为学生模型的知识蒸馏实验结果。作者遵循 DeiT 中的实验设置,RegNet16GF 作为教师模型,使用 Hard Distillation,其中教师的输出设置为 true label,一共训练300个 Epochs。FastViT 优于最近最先进的模型 EfficientFormer。FastViT-SA24 的性能与 EfficientFormer-L7 相似,但参数少3.8倍,FLOPs 少2.7倍,延迟低2.7倍。
图7:知识蒸馏实验结果
目标检测和语义分割实验结果
对于语义分割,作者在 ADE20k 上验证了模型的性能语义分割模型头使用的是 Semantic FPN,所有的模型都是用预先训练好的对应图像分类模型的权重进行初始化。在 512×512 的设置上估计 FLOPs 和延迟。由于输入图像的分辨率较高,在表9和表10中,GPU 延迟在测量时使用了大小为2的 Batch Size。在图8中,作者将 FastViT 与最近的工作进行了比较。FastViT-MA36 的 mIoU 比 PoolFormer-M36 高 5.2%,但是 PoolFormer 具有更高的 FLOPs、参数量和延迟。
图8:语义分割实验结果
目标检测和实例分割实验实验 MS-COCO 数据集,实验结果如下图9所示。所有模型都使用 Mask-RCNN 目标检测和实例分割头按照 1x schedule 进行训练。所有的模型都是用预先训练好的对应图像分类模型的权重进行初始化。结果显示出 FastViT 在多种延迟机制下实现了最先进的性能。FastViT-MA36 模型的性能与 CMT-S 相似,但在桌面GPU 和移动设备上分别快2.4倍和4.3倍。
图9:目标检测和实例分割实验结果
总结
本文提出了一种通用的 CNN 和 Transformer 混合的视觉基础模型,是由 MobileOne 原班人马打造,可以看做是 MobileOne 的方法在 Transformer 上的一个改进型的应用。作者引入了一种新的 token mixer,叫做 RepMixer,它使用结构重新参数化技术,通过删除网络中的 Shortcut 来降低内存访问成本,尤其是在较高分辨率时。作者还提出了进一步的架构更改,以提高 ImageNet 分类任务和其他下游任务的性能。在移动设备和 ImageNet 数据集上的精度相同的前提下,FastViT 比 CMT 快3.5倍,比 EfficientNet 快4.9倍,比 ConvNeXt 快1.9倍。在类似的延迟下,FastViT 在 ImageNet 上获得的 Top-1 准确率比 MobileOne 高 4.2%,是一种极具竞争力的混合架构模型。
#SMT~~
本文介绍了一种新的基础模型SMT,它以更低的参数量和计算量取得了大幅性能的提升。SMT在ImageNet-22k上预训练后以仅仅80.5M的参数量在ImageNet-1k上达到了88.1%的精度。
代码链接:https://github.com/AFeng-x/SMT
近年来,基于Transformer和CNN的视觉基础模型取得巨大成功。有许多研究进一步地将Transformer结构与CNN架构结合,设计出了更为高效的hybrid CNN-Transformer Network,但它们的精度仍然不尽如意。本文介绍了一种新的基础模型SMT(Scale-Aware Modulation Transformer),它以更低的参数量(params)和计算量(flops)取得了大幅性能的提升。
不同于其他CNN-Transformer结合的方案,SMT基于卷积计算设计了一个新颖的轻量尺度感知调制单元Scale-Aware Modulation(SAM),它能够捕捉多尺度特征的同时扩展感受野,进一步增强卷积调制能力。此外,SMT提出了一种进化混合网络Evolutionary Hybrid Network(EHN),它能够有效地模拟网络从浅层变深时捕捉依赖关系从局部到全局的转变,从而实现更优异的性能。在ImagNet、COCO以及ADE20k等任务上都验证了该模型的有效性。值得一提的是,SMT在ImageNet-22k上预训练后以仅仅80.5M的参数量在ImageNet-1k上达到了88.1%的精度。
出发点
对于多层级的网络架构来说,由于浅层特征图分辨率大的原因,自注意力的二次复杂性会带来严重的计算负担。因此,如何为浅层stage设计高效的attention计算机制是十分重要的。
- 回顾以往的大部分Hierarchical(Multi-scale)的模型,以Swin为代表,以及后续的CvT,PvT,Shunted Transformer等等,它们的主要贡献点都是设计出了一种更高效的attention计算单元,比如local attention,lightweight convolution attention等等。
ViT论文中提出,Transformer模型的注意力捕捉依赖关系为,浅层捕捉local信息,深层捕捉global信息,而这种特性在多层级网络架构上也会出现。
- 作者认为,模拟并建模这种捕捉依赖过渡是重要且有效的。
SMT框架算法
SMT的总体框架如图1所示。整个网络包括四个阶段,每个阶段的下采样率为{4, 8, 16, 32}。我们并非和FocalNet一样构建一个无注意力机制的网络,而是首先在前两个阶段采用文章提出的尺度感知调制(SAM),然后在倒数第二个阶段中依次堆叠一个SAM Block和一个多头自注意力(MSA) Block,以建模从捕捉局部到全局依赖关系的转变。对于最后一个阶段,我们仅使用MSA块来有效地捕捉长距离依赖关系。
Scale-Aware Modulation模块
多头混合卷积MHMC(Multi-Head Mixed Convolution)在MHMC中,我们引入了具有不同卷积核大小的多个卷积层,使其能够捕捉多个尺度上的空间特征。当我们将N head设置得较大时,能够引入大卷积核来扩大感受野,增强其建模长距离依赖关系的能力。如图2(b)所示,MHMC将输入通道分为N个头,对每个头应用独立的深度可分离卷积。我们将卷积核大小初始化为3x3,并逐头递增。这种方法使得我们能够人为的通过调整头的数量来调节感受野的范围和多粒度信息。
多尺度感知聚合SAA(Scale-Aware Aggregation)
为了增强MHMC中多个头之间的信息交互,我们引入了一种新的轻量化聚合模块,称为多尺度感知聚合(SAA),如图2(c)所示。SAA首先对MHMC生成的不同粒度的特征进行重组和分组。具体而言,我们从每个头中选择一个通道来构建一个组,然后在每个组内进行up-down的特征融合,从而增强多尺度特征的多样性。值得注意的是,Num_group = C / N_head,C为输入通道数,这意味着组的数量与MHMC中头的数量成反比,每个组里只包含N个特征通道。随后,我们使用1x1卷积进行组内-组间模式的跨组信息融合,从而实现轻量且高效的聚合效果。
如图3所示,我们可视化出SAA前和SAA后的特征图,可以观察到SAA模块加强了语义相关的低频信号,并准确地聚焦于目标物体最重要的部分。与聚合之前的卷积映射相比,SAA模块展示了更好的能力来捕捉和表示视觉识别任务的关键特征。
尺度感知调制器SAM(Scale-Aware Modulation)
如图2(a)所示,在使用MHMC捕捉多尺度空间特征并通过SAA进行聚合后,我们获得一个输出特征图,我们称之为调制器Modulator。然后,我们使用标量乘积采用这个调制器来调制value V。
混合进化网络Evolutionary Hybrid Network
在本节中,我们提出根据网络的捕捉范围依赖关系的变化模式重新分配适当的计算模块,以实现更好的计算性能。我们提出了两种混合堆叠策略用于倒数第二个阶段,(i) 依次堆叠一个SAM块和一个MSA块。(ii) 在stage的前半部分使用SAM块,在后半部分使用MSA块。为了评估这两种混合堆叠策略的有效性,我们在ImageNet-1K上评估了它们的top-1准确率。可以看到,(i)混合堆叠策略更加有效。
不仅如此,我们还计算了倒数第二个阶段中MSA块的相对感受野。值得注意的是,浅层layer的相对感受野开始阶段有一个轻微的下降趋势。作者认为这种下降可以归因于SAM对早期MSA Block的影响,我们将这种现象称为计算单元磨合适应期。而随着网络的加深,我们可以看到感受野呈平稳上升的趋势,这表明我们提出的进化混合网络有效地模拟了从局部到全局依赖捕捉的过渡。
实验分类实验
上表给出了不同模型大小在ImageNet-1k上的性能对比,从中可以看到:
- SMT在tiny、small和base规模上都以更低的参数量和计算量达到了更优的性能;
- SMT-B在仅仅32.0M和7.7GFlops下就取得了84.3%的精度,甚至比大多数80M和15G以上的模型更好。
- 当采用ImageNet-22k与大尺度数据预训练之后,SMT-L精度提升到87.1%和88.1%,优于现有的CNN和Transformer模型。特别地,SMT-L用4x低的参数量和3x低的计算量就超过了InternImage-XL(88.0%)
- 这些结果表明SMT是一个scalability能力很强的模型,在各种尺度参数下都具有优异的性能。
目标检测实验
上述三个表格是在多个检测框架上的性能对比实验,可以看到
- 在多个检测框架上,包括Mask R-CNN、Cascade R-CNN、RetinaNet、Sparse R-CNN、ATSS和DINO中,SMT都获得了更优的性能。
- 对于Mask R-CNN,在1x和3x中,SMT-B分别比Swin-B高2.1mAP和1.3mAP,同时参数量只有Swin-B的一半。
- 对于DINO检测框架,SMT-S仅仅用39.9M的参数量就达到了54.0mAP,超越了现有同等规模大小的其他模型。
分割实验
上表给出了ADE20K分割任务上的性能对比,从中可以看到当我们使用uperNet框架时,SMT在不同尺度下拥有更低的参数量和计算量,同时精度也优于其他模型。
消融实验
总结与展望
总的来说,在视觉基础模型backbone的探索路程中,我们有着对未来的展望:
- 以视觉Transformer为例,除了在自监督学习等预训练中依旧用着ViT这种plain Vision Transformer,大部分视觉基础模型都以Swin和PvT这种Hierarchical架构为基础设计范式。而这种范式需要解决的问题就是如何在浅层stage中设计更高效的注意力机制计算来解决自注意力的二次复杂性带来的计算负担。是否有更优秀的计算模块能够代替SAM或者是MSA是我们后续需要继续探索的路。
- 2023年,更多的视觉Transformer模型和CNN基础大模型被提出,它们在各大榜单上你追我赶,可以发现CV领域中CNN依旧有着一席之地。如果Transformer不能够在CV领域完全替代cnn神经网络,那么将两者的优势结合起来是否是更好的选择?因此,我们希望SMT可以作为Hybrid CNN-Transformer方向新的baseline,推动该领域的进步和发展。
#Retinexformer
本文为52CV粉丝cyh投稿,介绍了 ICCV 2023 上的新工作《Retinexformer: One-stage Retinex-based Transformer for Low-light Image Enhancement》。
[ICCV 2023] 清华ETH提出 Retinexformer 刷新十三大暗光增强榜单
论文链接:https://arxiv.org/abs/2303.06705
代码链接:https://github.com/caiyuanhao1998/Retinexformer
图1 Retinexformer 和之前基于Retinex理论的算法对比
目前所有的代码、模型、训练日志、十三个数据集(LOL-v1, LOL-v2-real, LOL-v2-synthetic, SID, SMID, SDSD-in, SDSD-out, MIT Adobe FiveK, LIME, NPE, MEF, DICM, VV)的测试结果均已开源。我们基于 BasicSR 开发了一个集成了八大数据集的训练框架。欢迎大家来使用~
1. 暗光增强简介
如图1所示,暗光增强的主要任务是增强低光图像的能见度和对比度,同时修复隐藏在黑暗中或由于提升亮度而引入的噪声、伪影、颜色畸变等复杂的退化模式。
图2 暗光增强任务示意图
当前的暗光增强算法大体上可以分为三类:朴素方法、传统感知方法、深度学习方法
朴素方法一般会直接在全局范围内增强整张图像的亮度和对比度。经典的算法有直方图均衡化(histogram equalization )和伽马矫正(Gama Correction)。然而这类算法没有考虑到光照因素,使得增强后的图像与真实光照图像严重不符。
传统感知算法大都基于视网膜理论(Retinex Theory),将一张自然图像解耦为照度图(Illumination)和反射图(Reflectance),并将反射图作为暗光增强后的图像。然而这类算法有两个缺陷。一是假定暗光图像都是干净的,不存在噪声伪影等。然而由于成像设备的缺陷,暗光图像常常带有噪声。二是这类算法依赖于手工设计的图像先验,常常需要调参且表征能力很弱。
现有的深度学习方法大多基于卷积神经网络,不擅长于捕获长程依赖关系,不利于图像的修复。有部分深度学习算法与视网膜分解理论相结合。然而这类算法大都需要一个冗长的流程,采取一个多阶段的训练方案,分别训练多个不同的 CNN 来做不同的任务,如解耦彩色图像、给反射图去噪、调整照度图等。然后将这些训好的 CNN 连接起来进行微调。整个训练过程繁琐复杂,费时费力。
为了解决上述难题,本文:
【1】我们提出了首个与视网膜理论相结合的 Transformer 算法,名为 Retinexformer,以用于暗光增强。
【2】我们推导了一个单阶段视网膜理论框架,名为 ORF(One-stage Retinex-based Framework),不需要繁复的训练和微调流程,只需要一个阶段端到端的训练即可。
【3】我们设计了一种由光照引导的新型多头自注意机制,名为 IG-MSA(Illumination-Guided Multi-head Self-Attention,IG-MSA),将光照信息作为关键线索来引导长程依赖关系的捕获。
【4】我们的算法在十三个暗光增强榜单上达到了更好的定量和定性效果,同时在用户研究和黑夜目标检测任务上验证了我们算法的实用价值。
本文方法
图3 本文方法的整体框架
本文方法的整体框架如图3所示。在图3 (a) 中,Retinexformer 采用我们设计的 ORF。而 ORF 又由两部分构成:(i) 光照估计器(illumination estimator)和 (ii) 退化修复器(corruption restorer)。在图3 (b) 中,我们设计一个光照引导的 Transformer IGT(Illumination-Guided Transformer)来作为退化修复器。IGT 的基本单元是光照引导的注意力块 IGAB (Illumination-Guided Attention Block)。IGAB 由两个层归一化 LN(Layer Normalization),一个 IG-MSA 和一个前馈网络 FFN(Feed-Forward Network)组成,其细节如图3 (c) 所示。
2.1 单阶段视网膜理论框架
根据视网膜理论,一个低光图像 I 可以分解为一个反射图 R 和一个照度图 L 的点乘:
2.2 光照引导的 Transformer如图3 (a) (ii) 所示,IGT采用一个 encoder-bottleneck-decoder 的 U-型结构。其中最重要的组成部件便是 IG-MSA,光照估计器输出的增亮特征图输入到每一个 IG-MSA 当中。在 IG-MSA 当中,输入的特征图首先被变形为 token,然后被分成 k 个 heads:
我们 IG-MSA 计算复杂度与输入尺寸成线性而全局MSA的计算复杂度与输入成二次相关。我们的计算复杂度明显更低。
3. 实验结果
我们在 LOL-v1, LOL-v2-real, LOL-v2-synthetic, SID, SMID, SDSD-in, SDSD-out, MIT Adobe FiveK 八个数据集上开展定量实验,实验结果如表1、2所示:
表1
表2
此处需要补充说明一下,MIT Adobe FiveK 官方只提供了RAW数据。需要大家自己导出才能得到 RGB 数据。导出有两种格式,一种是 pro RGB,这种格式不适于人的眼睛来看,但是计算得到的 PSNR 和 SSIM 指标都偏高,便于大家报指标。而另一种是 s RGB 格式,这种就是最常见的 RGB 图像格式,但是这种格式指标会比较低。本文采用的就是这种格式。我们在 repo 里贴心地为大家准备好了已经导出的 sRGB 图像下载链接,可以直接下载使用~
我们在 LOL-v1, LOL-v2-real, LOL-v2-synthetic, SID, SMID, SDSD-in, SDSD-out, MIT Adobe FiveK, LIME, NPE, MEF, DICM, VV 上测试了定性效果。视觉对比如图4、5、6、7所示
另外我们还做了用户调查,结果如表3所示:
表3 用户调查结果最后,将我们的 Retinexformer 作为预处理器对暗光图像进行增强以辅助夜间目标检测的效果,在 ExDark 数据集上的定量结果如表4所示:
表4 暗光增强辅助夜间目标检测实验指标一些暗光增强辅助夜间目标检测的例子如图8、9、10 所示:

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。
更多推荐
所有评论(0)