#xx1

基于mxnet的训练代码迁移到pytorch上和 在yolov5的代码基础上验证了一些目标检测的想法一起发了

在迁移mxnet训练代码的时候,很长一段时间结果都无法对齐,于是我不得不又重新认真的读了一下之前撸的mxnet代码,在看的过程中发现了很多之前留下来的备注。我都已经不记得是否有尝试过,索性就结合最近的一些思路,看看自己的一些想法是否科学。

分析

讨论不同的检测方法,核心点就是目标分配和loss函数的使用了。毕竟数据准备,网络结构,训练技巧等等大家都能用。所以先简单叙述一下我的认知,为后续做个铺垫。

1、目标分配

w~视觉~合集8_视觉

  • 在传统方法中,我们一般使用图像金字塔+滑动窗口进行图像切分,然后使用传统的特征抽取方法进行分类。这个时候滑窗和目标达到一定的IOU我们就认定为正样本,低于某个值就是负样本,中间值直接舍去。

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

  • 在基于anchor的方法中,我们一般使用密集铺设的anchor和目标计算IOU,大于某个值作为正样本,小于某个值为负,中间值舍去。这时候就跳出了一些略微特殊的方法,比如yolo计算的是wh的IOU,然后忽略样本是预测结果和标签的IOU大于某个值(正样本不改变,只改负样本)。

 

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

  • 在anchor free的方法中(或者很多方法可以称为point anchor),我们可以使用高斯核,可以使用固定范围,可以自适应等等来区分正负样本。
  • 端到端的方法目前我认为还不是很成熟,也就不说了。

 2、损失函数

 损失函数其实单独拿出来说不是特别科学,因为损失函数需要和具体的样本划分以及标签设置有关系。比较常见的就是交叉熵,l1 ,l2,soomth l1,focal家族等等。

尝试

我这次所有的尝试都是基于修改版本的yolov5代码。原版的yolov5正负样本采用wh和anchor的比例最大值来决定。在可视化训练标签和样本后发出几个疑问。

1)样本的划分是否合理?

首先看几个示例

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

红色表示目标中心在特征图上的位置,每次都会取,也是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训练的特征可视化结果:

 

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

 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上会变慢,所以我们所有卷积都是普通卷积。

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

模型大概就是这种全普通卷积+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. 即插即用地实现视觉基础网络 1.5−3.0× 无损训练加速。上游、下游模型性能均不损失。实测速度与理论结果一致。
  2. 通用于不同的训练数据规模(例如 ImageNet-1K/22K,22K 效果甚至更为明显)。通用于监督学习、自监督学习(例如 MAE)。通用于不同训练开销(例如对应于 0-300 或更多 epochs)。
  3. 通用于 ViT、ConvNet 等多种网络结构(文中测试了二十余种尺寸、种类不同的模型,一致有效)。
  4. 对较小模型,训练加速之外,还可显著提升性能(例如在没有额外信息帮助、没有额外训练开销的条件下,在 ImageNet-1K 上得到了 81.3% 的 DeiT-S,可与原版 Swin-Tiny 抗衡)。
  5. 两种有挑战性的常见实际情形开发了专门的实际效率优化技术: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 仅完成一次训练即需要等效为数年甚至数十年的时间。如此高昂的训练成本,无论是对学术界还是工业界而言,都是较难负担的巨大开销,往往只有少数顶尖机构消耗大量资源才能推进深度学习的进展。因此,一个亟待解决的问题是:如何有效提升大型深度学习模型的训练效率?

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

图 1 示例:大型深度学习基础模型的高昂训练开销

对于计算机视觉模型而言,一个经典的思路是课程学习(curriculum learning),如图 2 所示,即模仿人类渐进式、高度结构化的学习过程,在模型训练过程中,从最「简单」的训练数据开始,逐步引入由易到难的数据。

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

图 2 经典课程学习范式(图片来源:《A Survey on Curriculum Learning》,TPAMI’22)

然而,尽管动机比较自然,课程学习并没有被大规模应用为训练视觉基础模型的通用方法,其主要原因在于存在两个关键的瓶颈,如图 3 所示。其一,设计有效的训练课程(curriculum)并非易事。区别「简单」、「困难」样本往往需要借助于额外的预训练模型、设计较复杂的 AutoML 算法、引入强化学习等,且通用性较差。其二,课程学习本身的建模存在一定不合理性。自然分布中的视觉数据往往具有高度的多样性,图 3 下方给出了一个例子(从 ImageNet 中随机抽取的鹦鹉图片),模型训练数据中包含大量不同动作的鹦鹉、离镜头不同距离的鹦鹉、不同视角、不同背景的鹦鹉、以及鹦鹉与人或物的多样化的交互等,将如此多样化的数据数据仅仅以「简单」、「困难」的单一维度指标进行区分,事实上是一个比较粗糙和牵强的建模方式。

w~视觉~合集8_视觉_09

图 3 阻碍课程学习大规模应用于训练视觉基础模型的两个关键瓶颈

二.方法简介

受到上述挑战的启发,本文提出了一种广义课程学习(generalized curriculum learning)范式,其核心思想在于,将「筛选和使用由易到难的数据、逐步训练模型」的传统课程学习范式推广至「不进行数据维度的筛选,一直使用全部训练数据,但在训练过程中逐步揭示每个数据样本的由易到难的特征或模式」,这样就有效避开了因数据筛选范式引发的局限和次优设计,如图 4 所示。

w~视觉~合集8_视觉_10

图 4 传统课程学习(样本维度) v.s. 广义课程学习(特征维度)

这一范式的提出主要基于一个有趣的现象:在一个自然的视觉模型训练过程中,虽然模型总是可以随时获取数据中包含的全部信息,但模型总会自然地先学习识别数据中包含的某些比较简单的判别特征(pattern),而后在此基础上再逐步学习识别更难的判别特征。并且,这一规律是比较普遍的,「比较简单」的判别特征在频域和空域都可以较方便地找到。本文设计了一系列有趣的实验来证明上述发现,如下所述。

从频域的角度来说,「低频特征」对于模型而言「比较简单」。在图 5 中,本文作者使用标准 ImageNet-1K 训练数据训练了一个 DeiT-S 模型,并使用带宽不同的低通滤波器对验证集进行滤波,只保留验证图像的低频分量,在此基础上报告 DeiT-S 在训练过程中、在低通滤波的验证数据上的准确率,所得准确率相对训练过程的曲线显示于图 5 右侧。

我们可以看到一个有趣的现象:在训练早期阶段,仅使用低通滤波的验证数据不会显著降低准确性,且曲线与正常验证集准确率间的分离点随滤波器带宽的增大而逐渐右移。这一现象表明,尽管模型始终可以访问训练数据的低频和高频部分,但其学习过程自然地从仅关注低频信息开始,识别较高频特征的能力则在训练后期逐步习得(这一现象的更多证据可参考原文)。

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

图 5 频域角度上,模型自然倾向于先学习识别低频特征

这一发现引出了一个有趣的问题:我们是否可以设计一个训练课程(curriculum),从只为模型提供视觉输入的低频信息开始,而后逐渐引入高频信息?

图 6 研究了这个想法,即仅在特定长度的早期训练阶段对训练数据执行低通滤波,训练过程的其余部分保持不变。从结果中可以观察到,尽管最终性能提升有限,但有趣的是,即使在相当长的一段早期训练阶段中仅向模型提供低频分量,模型的最终精度也可以在很大程度上得到保留,这也与图 5 中「模型在训练初期主要关注学习识别低频特征」的观察不谋而合。

这一发现启发了本文作者关于训练效率的思考:既然模型在训练初期只需要数据中的低频分量,且低频分量包含的信息小于原始数据,那么能否使模型以比处理原始输入更少的计算成本高效地仅从低频分量中学习?

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

图 6 在相当长的一段早期训练阶段中仅向模型提供低频分量并不会显著影响最终性能

事实上,这一思路是完全可行的。如图 7 左侧所示,本文作者在图像的傅里叶频谱中引入了裁切操作,裁切出低频部分,并将其映射回像素空间。这一低频裁切操作准确地保留了所有低频信息,同时减小了图像输入的尺寸,因此模型从输入中学习的计算成本可以呈指数级降低。

如果使用这一低频裁切操作在训练早期阶段处理模型输入,可以显著节省总体训练成本,但由于最大限度地保留了模型学习所必要的信息,仍然可以获得性能几乎不受损失的最终模型,实验结果如图 7 右下方所示。

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

图 7 低频裁切(low-frequency cropping):使模型高效地仅从低频信息中学习

在频域操作之外,从空域变换的角度,同样可以找到对于模型而言「比较简单」的特征。例如,没有经过较强数据增强或者扭曲处理的原始视觉输入中所包含的自然图像信息往往对于模型而言「比较简单」、更容易让模型学习,因为它们是从现实世界的分布中得出的,而数据增强等预处理技术所引入的额外信息、不变性等往往对于模型而言较难学习(图 8 左侧给出了一个典型示例)。

事实上,现有研究也已观察到,数据增强主要在训练较晚期阶段发挥作用(如《Improving Auto-Augment via Augmentation-Wise Weight Sharing》, NeurIPS’20)。

在这一维度上,为实现广义课程学习的范式,可以简单地通过改变数据增强的强度方便地实现在训练早期阶段仅向模型提供训练数据中较容易学习的自然图像信息。图 8 右侧使用 RandAugment 作为代表性示例来验证了这个思路,RandAugment 包含了一系列常见的空域数据增强变换(例如随机旋转、更改锐度、仿射变换、更改曝光度等)。

可以观察到,从较弱的数据增强开始训练模型可以有效提高模型最终表现,同时这一技术与低频裁切兼容。

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

图 8 从空域的角度寻找模型 “较容易学习” 的特征:一个数据增强的视角

到此处为止,本文提出了广义课程学习的核心框架与假设,并通过揭示频域、空域的两个关键现象证明了广义课程学习的合理性和有效性。在此基础上,本文进一步完成了一系列系统性工作,在下面列出。由于篇幅所限,关于更多研究细节,可参考原论文

  1. 融合频域、空域的两个核心发现,提出和改进了专门设计的优化算法,建立了一个统一、整合的 EfficientTrain++ 广义课程学习方案。
  2. 探讨了低频裁切操作在实际硬件上高效实现的具体方法,并从理论和实验两个角度比较了两种提取低频信息的可行方法:低频裁切和图像降采样,的区别和联系。
  3. 对两种有挑战性的常见实际情形开发了专门的实际效率优化技术:1)CPU / 硬盘不够强力,数据预处理效率跟不上 GPU;2)大规模并行训练,例如在 ImageNet-22K 上使用 64 或以上的 GPUs 训练大型模型。

本文最终得到的 EfficientTrain++ 广义课程学习方案如图 9 所示。EfficientTrain++ 以模型训练总计算开销的消耗百分比为依据,动态调整频域低频裁切的带宽和空域数据增强的强度。

值得注意的是,作为一种即插即用的方法,EfficientTrain++ 无需进一步的超参数调整或搜索即可直接应用于多种视觉基础网络和多样化的模型训练场景,效果比较稳定、显著。

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

图 9 统一、整合的广义课程学习方案:EfficientTrain++

三.实验结果

作为一种即插即用的方法,EfficientTrain++ 在 ImageNet-1K 上,在基本不损失或提升性能的条件下,将多种视觉基础网络的实际训练开销降低了 1.5 倍左右。

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

图 10 ImageNet-1K 实验结果:EfficientTrain++ 在多种视觉基础网络上的表现

EfficientTrain++ 的增益通用于不同的训练开销预算,严格相同表现的情况下,DeiT/Swin 在 ImageNet-1K 上的训加速比在 2-3 倍左右。

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

图 11 ImageNet-1K 实验结果:EfficientTrain++ 在不同训练开销预算下的表现

EfficientTrain++ 在 ImageNet-22k 上可以取得 2-3 倍的性能无损预训练加速。

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

图 12 ImageNet-22K 实验结果:EfficientTrain++ 在更大规模训练数据上的表现

对于较小的模型,EfficientTrain++ 可以实现显著的性能上界提升。

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

图 13 ImageNet-1K 实验结果:EfficientTrain++ 可以显著提升较小模型的性能上界

EfficientTrain++ 对于自监督学习算法(如 MAE)同样有效。

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

图 14 EfficientTrain++ 可以应用于自监督学习(如 MAE)

EfficientTrain++ 训得的模型在目标检测、实例分割、语义分割等下游任务上同样不损失性能。

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

图 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

让我们先来看一组图,感受一下它的效果。

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

论文效果图:每组图片左上角是源图,左下角是参考图,右侧是生成结果图

主体框架

论文作者提出了一种基于反演-融合(Inversion-Fusion)的图像编辑框架 ——VCT(visual concept translator,视觉概念转换器)。如下图所示,VCT 的整体框架包括两个过程:内容-概念反演过程(Content-concept Inversion)和内容-概念融合过程(Content-concept Fusion)。内容 - 概念反演过程通过两种不同的反演算法,分别学习和表示原图像的结构信息和参考图像的语义信息的隐向量;内容-概念融合过程则将结构信息和语义信息的隐向量进行融合,生成最后的结果。

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

论文主体框架值得一提的是,反演方法是近年来,特别是在生成对抗网络(GAN)领域,广泛应用且在众多图像生成任务上取得突出效果的一项技术【1】。GAN Inversion 技术将一张图片映射到与训练的 GAN 生成器的隐空间中,通过对隐空间的控制来实现编辑的目的。反演方案可以充分利用预训练生成模型的生成能力。本研究实际上是将 GAN Inversion 技术迁移到了以扩散模型为先验的,基于图像引导的图像编辑任务上。

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

反演技术

方法介绍

基于反演的思路,VCT 设计了一个双分支的扩散过程,其包含一个内容重建的分支 B* 和一个用于编辑的主分支 B。它们从同一个从 DDIM 反演(DDIM Inversion

【2】,一种利用扩散模型从图像计算噪声的算法)获得的噪声 xT 出发,分别用于内容重建和内容编辑。论文采用的预训练模型为隐向量扩散模型(Latent Diffusion Models,简称 LDM),扩散过程发生在隐向量空间 z 空间中,双分支过程可表示为:

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

双分支扩散过程

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

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

 

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

实验结果

文章在主体替换和风格化任务上进行了实验,可以在较好地保持源图片的结构信息的情况下,将内容变成参考图片的主体或风格

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

论文实验效果

文章提出的 VCT 框架相较于以往的方案有以下优势:

(1)应用泛化性:与以往的基于图像引导的图像编辑任务相比,VCT 不需要大量的数据进行训练,且生成质量和泛化性更好。其基于反演的思路,以在开放世界数据预训练好的高质量文生图模型为基础,实际应用时,只需要一张输入图和一张参考图就可以完成较好的图片编辑效果。

(2)视觉准确性:相较于近期文字编辑图像的方案,VCT 利用图片进行参考引导。图片参考相比于文字描述,可以更加准确地实现对图片的编辑。下图展示了 VCT 与其它方案的对比结果:

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

主体替换任务对比效果 

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

风格迁移任务对比效果(3)不需要额外信息:相较于近期的一些需要添加额外控制信息(如:遮罩图或深度图)等方案来进行引导控制的方案,VCT 直接从源图像和参考图像学习结构信息和语义信息来进行融合生成,下图是一些对比结果。其中,Paint-by-example 通过提供一个源图像的遮罩图,来将对应的物体换成参考图的物体;Controlnet 通过线稿图、深度图等控制生成的结果;而 VCT 则直接从源图像和参考图像,学习结构信息和内容信息融合成目标图像,不需要额外的限制。

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

基于图像引导的图像编辑方案的对比效果





#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的风格化音频驱动的视频生成系统。

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

为了实现这一目标,研究人员将3DMM的运动系数视为中间表征,并将任务分为两个主要部分(表情和姿势),旨在从音频中生成更真实的运动系数(如头部姿势、嘴唇运动和眼睛眨动),并单独学习每个运动以减少不确定性。

最后通过一个受face-vid2vid启发设计的3D感知的面部渲染来驱动源图像。

3D面部

因为现实中的视频都是在三维环境中拍摄的,所以三维信息对于提高生成视频的真实性至关重要;不过之前的工作很少考虑三维空间,因为只从一张平面图像很难获得原始的三维稀疏,并且高质量的面部渲染器也很难设计。

受最近的单图像深度三维重建方法的启发,研究人员将预测的三维形变模型(3DMMs)的空间作为中间表征。

在3DMM中,三维脸部形状S可以被解耦为:

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

其中S是三维人脸的平均形状,Uid和Uexp是LSFM morphable模型的身份和表情的正则,系数α(80维)和β(64维)分别描述人物身份和表情;为了保持姿势的差异性,系数r和t分别表示头部旋转和平移;为了实现身份无关的系数生成,只将运动的参数建模为{β, r, t}。

即,从驱动的音频中单独学习头部姿势ρ=[r, t]和表情系数β,然后使用这些运动系数被隐式地调制面部渲染用于最终的视频合成。

通过音频生成运动稀疏

三维运动系数包含头部姿势和表情,其中头部姿势是全局运动,而表情是相对局部的,所以完全学习所有的系数会给网络带来巨大的不确定性,因为头部姿势与音频的关系相对较弱,而嘴唇的运动则是与音频高度关联的。

所以SadTalker使用下面PoseVAE和ExpNet分别生成头部姿势和表情的运动。

ExpNet

学习到一个可以「从音频中产生准确的表情系数」的通用模型是非常困难的,原因有二:

1)音频到表情(audio-to-expression)不是对不同人物的一对一的映射任务;

2)表情系数中存在一些与音频相关的动作,会影响到预测的准确性。

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

ExpNet的设计目标就是为了减少这些不确定性;至于人物身份问题,研究人员通过第一帧的表情系数将表情运动与特定的人物联系起来。

为了减少自然对话中其他面部成分的运动权重,通过Wav2Lip和深度三维重建的预训练网络,只使用嘴唇运动系数(lip motion only)作为系数目标。

至于其他细微的面部运动(如眼睛眨动)等,可以在渲染图像上的额外landmark损失中引入。

PoseVAE

研究人员设计了一个基于VAE的模型以学习谈话视频中真实的、身份相关(identity-aware)的风格化头部运动。

 

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

在训练中,使用基于编码器-解码器的结构对固定的n个帧进行姿势VAE训练,其中编码器和解码器都是两层MLP,输入包含一个连续的t帧头部姿势,将其嵌入到高斯分布;在解码器中,网络从采样分布中学习生成t帧姿势。

需要注意的是,PoseVAE并没有直接生成姿势,而是学习第一帧的条件姿势的残差,这也使得该方法在测试中能在第一帧的条件下生成更长、更稳定、更连续的头部运动。

根据CVAE,PoseVAE中还增加了相应的音频特征和风格标识作为rhythm awareness和身份风格的条件。

模型使用KL散度来衡量生成运动的分布;使用均方损失和对抗性损失来保证生成的质量。

3D-aware面部渲染

在生成真实的三维运动系数后,研究人员通过一个精心设计的三维图像动画器来渲染最终的视频。

最近提出的图像动画方法face-vid2vid可以隐含地从单一图像中学习3D信息,不过该方法需要一个真实的视频作为动作驱动信号;而这篇论文中提出的脸部渲染可以通过3DMM系数来驱动。

研究人员提出mappingNet来学习显式3DMM运动系数(头部姿势和表情)和隐式无监督3D关键点之间的关系。

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

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权重进行评估。

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

从实验结果中可以看出,文中提出的方法可以展现出更好的整体视频质量和头部姿势的多样性,同时在唇部同步指标方面也显示出与其他完全说话的头部生成方法相当的性能。

研究人员认为,这些唇语同步指标对音频太敏感了,以至于不自然的唇部运动可能会得到更好的分数,不过文中提出的方法取得了与真实视频相似的分数,也表明了该方法的优势。

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

不同方法生成的视觉结果中可以看到,该方法与原始目标视频的视觉质量非常相似,而且与预期的不同头部姿势也非常相似。 

与其他方法相比,Wav2Lip生成了模糊的半脸;PC-AVS和Audio2Head很难保留源图像的身份;Audio2Head只能生成正面说话的脸;MakeItTalk和Audio2Head由于二维扭曲而生成了扭曲的人脸视频。

参考资料:

https://sadtalker.github.io/





#Model structure diagram


这是一个基于密集尺度特征融合&像素级不平衡学习框架

知识蒸馏已成功应用于图像分类。然而目标检测要复杂得多,大多数知识蒸馏方法都失败了。

论文地址:https://arxiv.org/pdf/2203.09387v1.pdf 

边缘检测是计算机视觉领域的一项基本任务,是视觉场景识别和理解的重要预处理操作。在常规模型中,生成的边缘图像模糊不清,边缘线也很粗,这通常需要使用非极大值抑制(NMS)和形态细化操作来生成清晰而细的边缘图像。

在今天分享中,研究者旨在提出一种无需后处理即可生成高质量边缘图像的单阶段神经网络模型。所提出的模型采用经典的编码器-解码器框架,其中使用预训练的神经模型作为编码器,并且将每个级别的特征相互融合的多特征融合机制作为可学习的解码器。

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

此外,研究者提出了一种新的损失函数,通过抑制真阳性(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

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

新提出的方法采用卷积编码器-解码器框架,广泛用于边缘检测。任何预训练的 CNN 模型都可以作为编码器,解码器由多层特征融合器实现,充分利用了低层边缘图中更多的位置和细节信息,以及高层特征中更鲁棒的语义信息,使得模型 可以学习到更清晰的边缘,如上图(a)所示。

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

提出的多特征跳过连接不仅有利于编码器和解码器之间的互连,而且在解码器内部也有连接。该模型使用每个模块的最后一层作为编码器的输出层,定义为[b1,b2,...,b5]。对于解码器部分,采用了多层特征融合机制。

不同的输出层bi具有可以通过常规方法更新的各种大小的特征图。在这里,研究者以o4为例来解释解码器部分的构造,如下图(b)和上公式所示,其中函数C(.)表示卷积+批量归一化+ReLU激活操作。D(.)和E(.)分别表示上采样和下采样操作,[.]表示连接。B4中的特征图直接融合到O4中。

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

从编码器的较低层开始,首先将最大池化操作应用于B1、B2和B3中的特征图,然后将它们融合到O4中。随后,通过双线性插值获得来自解码器部分的O5。为了保持通道不变,研究者采用卷积运算来进一步统一通道数。为了更好地将低级细节和空间特征与高级语义特征融合,进一步在五个尺度特征图上进行特征融合。

Pixel-level Imbalance Learning

权重交叉熵。边缘图像生成可以看作是一个像素级的分类任务(边缘和非边缘像素)。它在边缘和非边缘像素的数量方面非常不平衡。 

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

采用加权交叉熵(见上公式,其中Gi是标签,Pi是边缘预测值)来解决这样的分类任务并纠正边缘和非边缘像素之间的不平衡,可以有效地监督网络区分边缘和非边缘信息。然而,“厚度”问题仍然存在。虽然加权交叉熵可以有效地计算像素级差异,但它不能充分区分与TP边缘像素相邻的FP和FN像素值。

实验

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

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

 

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

 





#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类型优化问题的一个最优的稀疏解。

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

该隐层实现了卷积稀疏编码(CSC)模型,其中输入信号被卷积字典中的原子稀疏线性组合所逼近。这种卷积词典可以看作是CSC层的参数,通过反向传播进行训练。 

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

CSC模型的目标是通过A(z)算子重构输入信号,其中特征图z指定了A中卷积过滤器的位置和值。为了对建模差异具有容错度,重建并不要求精确。

基于确定的CSC层的输入-输出映射,就可以通过解决相关的优化来进行前向传播,并通过得出最优系数解相对于输入x和参数A的梯度来进行反向传播。

然后,带有CSC层的整个网络可以通过最小化交叉熵损失,以端到端的方式从标记的数据中进行训练。

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

 实验结果

分类性能对比

实验用到的数据集为CIFAR-10和CIFAR-100,每个数据集包含50,000张训练图像和10,000张测试图像,每张图像的尺寸为32×32,RGB通道。

除了将该方法与标准网络架构ResNet-18和ResNet-34进行比较外,研究人员还与具有隐层架构的MDEQ模型和具有稀疏建模架构的SCN进行比较。

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

实验结果可以看到,在相似的模型规模下,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噪声。

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

所以实验部分主要关注于CIFAR-10-C中四种类型的additive噪声,即高斯噪声、shot噪声、speckle噪声和impulse噪声,然后评估SDNet-18的准确性,并将其性能与ResNet-18进行比较。

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

可以看到,对于各种类型的噪声和不同的严重程度(除了0、1和2级的impulse噪声),适当选择一个不同于训练时使用的λ值有助于提高测试性能。

特别地,作为λ的函数的准确度曲线表现出一个单模态的形状,性能首先增加,然后减少。此外,在每种数据破坏类型中,达到性能峰值的λ值随着破坏严重程度上升而单调地增加,观察结果与预期一致。

处理对抗性扰动

研究人员在CIFAR-10测试数据集上使用PGD攻击对SDNet(λ=0.1)生成对抗性扰动,扰动的L∞范式为8/255,扰动的L2范式为0.5。

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

与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)—— 世界首个针对图自动机器学习的平台和工具包。

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

项目地址: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 所示。轻量智图主要具有以下特点:

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

图 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相关深度神经网络进行特征学习和分类的吸烟行为检测计算机视觉解决方案。

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

这个可解释的神经网络根据其性能进行评估,并使用LRP、遮挡分析和Integrated Gradient (SmoothGrad) 解释其检测决策,比较学习特征的可解释性以评估烟雾行为检测的可信度,基于在训练中学到的最相关的吸烟特征。     

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

Dataset Description

在这项研究中,研究者使用了SmokerVsNonsmoker数据集,其中包含吸烟和不吸烟的图像。该数据集共包含2400张原始图像,其中1200张图像属于吸烟(吸烟者)类别,其余一半属于未吸烟(non-smokers)类别。对于一定程度的类间混淆(对于

更好的模型训练),考虑两个类别中的通用图像;

  • 吸烟类别包括多个角度的吸烟者图像和各种手势
  • 不吸烟类别包含不吸烟者的图片,诸如人们喝水、拿着手机、咬指甲等类似吸烟图像的手势

还使用了Google搜索中的一组图片(关键词如吸烟、吸烟者、人、咳嗽、打电话、饮用水等)。

Data preparation and Processing

随机选择六个图像并缩放它们以获得相似的尺寸。然后,执行通用数据可视化以识别和学习任何指示吸烟的特征。在这个实现中,我们只关注两个类(吸烟/不吸烟)并保存各自的图像标签。

实验及可视化

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

Training and Validation Accuracy and Loss

 

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

Relevance Maps for Smokers

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

 

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架构的不同尺度(depthwidthkernel size)进行缩放,本文方法在 CT 和 MRI 模态以及不同数据集大小的 4 个任务上均实现了最先进的性能,可谓是医学图像分割领域的现代化深度架构之王!

值得一提的是,本文是由原nnUNet研究团队打造,其结论必将极具说服力和观赏性!

目前深度学习的算法在较为特定、具体的任务上能够获得较好的表现(如脑肿瘤的分割),但是并不一定能够在一些未见过的任务上(如肝脏血管分割)获得较好的泛化性能。如果有一种算法,能够在给定一定的训练数据的情况下,自适应地完成所有未曾处理过的任务的分割而不需要人工干预,对于医学辅助诊断系统是具有重大意义的。下面,首先让我们来看下医学图像分割任务中较为常见的难点和挑战:

  • 由于数据标签获取的成本较大,因此往往数据量较少
  • 由于疾病的特点(如发病率,病灶通常只占器官的较小部分),样本不均衡的问题较为常见
  • 小目标的分割精度对临床价值更大但同时也更难准确分割
  • 不同采集设备对数据产生的影响

虽然医学图像分割领域每年产生数以万计的新SOTA,但由于以上种种原因,导致现有的应用于医学图像分割领域的网络架构很多时候并不具备通用性和鲁棒性。而一个真正的SOTA架构应当具备以下条件:

  • 最先进的算法能够准确地完成医学图像分割任务,并且在新的、未进行过训练的数据集上能够获得较好的泛化性能
  • 算法能够在多种不同的分割任务中获得一致的先进的性能
  • 目前准确的训练好的模型已经能够进行商业化提供给非AI专业人员使用

nnUNet

nnUNet早期被众人所熟知是有一年参加了医学图像分割领域的十项全能比赛(MSD)并获得了冠军:

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

MSD 挑战赛

MSD 挑战赛一共包含十个数据集,其中第一阶段为:脑、心脏、海马体、肝脏、肺部、胰腺以及前列腺的分割,而第二阶段则是包含了结肠、肝脏血管以及脾脏的分割。

应该来说,nnU-Net其实并不是一个新的网络架构,而是一个集成了多种Trick和数据预处理以及后处理的医学图像分割框架。其核心思想是基于对训练数据集的分析,使用全自动动态适应的分割综合解决方案,以更好的完成每个任务。作者认为,图像预处理、网络拓扑和后处理比网络结构更重要,而这些最重要的部分nnU-Net框架能够自动确定(自适应调参)。

nnU-Net网络结构是基于U-Net架构,并进行了以下修改:

  1. 使用leaky ReLU替代ReLU
  2. 实例归一化替代常规的BN
  3. 步长卷积进行下采样;

此外,在数据增强方面,主要是用到了仿射变换非线性形变强度变换(类似于伽马校正)、沿所有轴镜像随机裁剪等。而在损失函数方面,则结合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

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

MedNeXt macro and block architecture

上图为MedNeXt的整体网络架构图。如图所示,该网络各有 4 个对称编码器和解码器层(果然很U-Net),中间还嵌入一个瓶颈层。其中,MedNeXt块也包含在每个上采样层和下采样层中。每个解码器层都使用深监督,在较低的分辨率下具有较低的损失权重。

可见,作者的深监督机制设计思路同笔者此前所提出的设想如出一辙。下面重点介绍下MedNeXt模块(如上述框架图黄色部分),这是一个类似于ConvNeXt block的新模块,其包含以下三大重要组件,即Depthwise Convolution LayerExpansion 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的灵感,其中一个大的注意力窗口网络是用另一个较小的注意力窗口训练的网络进行初始化的。此外,作者提议将现有的偏差矩阵空间插值到更大的尺寸作为预训练步骤,而不是从头开始训练,后续的实验也充分验证了此方法的有效性。

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

Upsampled Kernel (UpKern) & Performance

如上图所示,作者对针对卷积核进行了相应的“定制化”,以克服性能饱和问题。其中,UpKern允许我们通过对大小不兼容的卷积核(表示为张量)进行三维线性上采样来初始化具有兼容的预训练小卷积核网络的大卷积核网络,从而迭代地增加卷积核大小。所有其他具有相同张量大小的层(包括归一化层)都通过复制未更改的预训练权重来初始化。综上所述,以上操作为 MedNeXt 带来了一种简单但有效的初始化技术,可帮助大卷积核网络克服医学图像分割常见的相对有限的数据场景中的性能饱和。

Compound Scaling of Depth, Width and Receptive Field

下表展示的是作者针对不同的维度采用复合缩放策略来最大化性能的表现:

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

可以看到,相较于常规的上采样和下采样模块,本文方法能够更好的适应不同的任务。

实验

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

本文在AMOS22BTCV数据集上进行了相关的实验,以展示所提方法的有效性,同时也证明了直接应用普通的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在另外两个数据集,即KITS19BraTS21均获得了不错的表现,这一切得益于其优秀的架构设计。

总结

与自然图像任务相比,由于有限的训练数据等固有的领域挑战,医学图像分割缺乏受益于缩放网络的架构(如ConvNeXt)。本文提出了一种具备高度可扩展性的类ConvNeXt的 3D 分割架构,其在有限的医学图像数据集上优于其它 7 个顶流方法,当中就包含了非常强的nnUNetMedNeXt设计作为标准卷积块的有效替代,完全可作为医学图像分割领域的新网络架构标杆之作!






#ImageMol


ai圈也是卷的狠啊~~  又发现一个全球首个分子图像自监督学习框架来也

分子是维持物质化学稳定性的最小单位。对分子的研究,是药学、材料学、生物学、化学等众多科学领域的基础性问题。

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

分子的表征学习(Molecular Representation Learning)是近年来非常热门的方向,目前可分为诸多门派:

  • 计算药学家说:分子可以表示为一串指纹,或者描述符,如上海药物所提出的 AttentiveFP,是这方面的杰出代表。
  • NLPer 说:分子可以表示为 SMILES(序列),然后当作自然语言处理,如百度的 X-Mol,是这方面的杰出代表。
  • 图神经网络研究者说:分子可以表示为一个图(Graph),也就是邻接矩阵,然后使用图神经网络处理,如腾讯的 GROVER, MIT 的 DMPNN,CMU 的 MOLCLR 等方法,都是这方面的杰出代表。

但是,目前的表征方法仍存在一些局限性。比如,序列表征缺乏分子的显式结构信息,现有图神经网络的表达能力仍有诸多局限(中科院计算所沈华伟老师对此有论述,见沈老师报告“图神经网络的表达能力”)。

有趣的是,在高中化学学习分子的时候,我们看到的是分子的图像,化学家在设计分子时,也是对照分子图像进行观察和思考。一个自然的想法油然而生:“为什么不直接用分子图像来表征分子呢?”如果可以直接用图像来表征分子,那 CV(计算机视觉)里面的十八般武艺,不都可以用来研究分子吗?

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

说干就干,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》。此次计算机视觉与分子领域交叉取得的成功展示了利用计算机视觉技术理解分子性质与药物靶点机制的巨大潜力,并为分子领域的研究提供了新的机遇。

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

 

论文链接:https://www.nature.com/articles/s42256-022-00557-6.pdf

模型结构

ImageMol 的整体架构如下图所示,总共分为三部分: 

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

(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) 。

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

基准评估

作者首先使用 8 种药物发现的基准数据集来评估 ImageMol 的性能,并且使用两种最流行的拆分策略(scaffold split 与 random scaffold split)来评估 ImageMol 在所有基准数据集上的性能。在分类任务中,利用受试者工作特性(Receiver Operating Characteristic, ROC)曲线以及曲线下的面积(Area Under Curve, AUC)来评估,从实验结果可以看出,ImageMol 均能得到较高的 AUC 值 (图 a) 。

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

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)。

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


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

本文进一步将 ImageMol 的性能与三种最先进的分子表示模型进行了比较,如图 d、e 所示。ImageMol 与使用随机骨架划分的基于指纹的模型(如 AttentiveFP)、基于序列的模型(如 TF_Robust)和基于图的模型(如 N-GRAM、GROVER 和 MPG)相比具有更好的性能。此外,与传统的基于 MACCS 的方法和基于 FP4 的方法相比,ImageMol 在 CYP1A2,CYP2C9,CYP2C19,CYP2D6 和 CYP3A4 上实现了更高的 AUC 值(图 f)。

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

 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 性能。

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

 在以上 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% 以上  ,体现出该模型的高精度和很强的泛化性。

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

识别抗 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 抑制剂的分子结构。

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

 

注意力可视化

ImageMol 可以从分子图像表示中获取化学信息的先验知识,包括 = O 键、-OH 键、-NH3 键和苯环。图 b 和 c 为 ImageMol 的 Grad-CAM 可视化的 12 个示例分子。这表示 ImageMol 同时准确地对全局 (b) 和局部 (c) 结构信息进行注意捕获,这些结果使研究人员能够在视觉上直观地理解分子结构是如何影响性质和靶点。         

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