#Bi-MTDP

通过二值网络加速多任务密集预测,又快又提点

论文提出二值化多任务密集预测器 Bi-MTDP,通过二值神经网络(BNNs)显著加速多任务密集预测模型,同时保持甚至提高模型性能。为了避免信息严重退化而导致二值化带来性能下降,论文引入了深度信息瓶颈层,在前向传播时强制要求下游任务表示满足高斯分布;此外,还引入知识蒸馏机制来纠正反向传播中信息流方向。

论文地址: https://arxiv.org/abs/2405.14136

论文代码: https://github.com/42Shawn/BiMTDP

Introduction

51c视觉~合集15_视觉AI

在计算机视觉领域,有一个日益增长的趋势,即以多任务学习的方式处理密集预测任务,例如语义分割、单眼深度估计和人体解析。由于多任务模型中通过交叉连接结构进行信息补充机制的收益,一系列密集预测任务的整体性能得到了极大提升(见图1)。然而,处理多个复杂像素级任务的当前最先进(SoTA)多任务密集预测模型具有相当大的计算需求,这种高计算要求限制了它们在资源受限环境中(如自动驾驶、机器人技术和虚拟现实等领域)的应用。论文旨在优化这些庞大的SoTA模型以适用于边缘设备,在速度和性能之间取得平衡。

已经不是研究探索神经网络压缩策略,包括剪枝、网络量化和知识蒸馏。值得注意的是,网络二值化作为一种量化形式,将权重和激活最小化为,从而能够用二值神经网络(BNNs)中更高效的XNOR-Bitcount操作替代全精度网络中计算密集型的内积运算。理论上,二值化可以将存储成本降低32倍,并将推断速度提高64倍,使得BNNs适用于边缘设备。

虽然二值神经网络(BNNs)在图像分类方面取得了令人印象深刻的成果,几乎达到了全精度ResNet级别的准确性,但其应用主要局限于小规模模型,无法用于其他计算密集型的计算机视觉任务。将BNNs扩展到更大的模型应该是下一步的研究,但这种扩展受到过拟合和信息降级等问题的阻碍。在全精度模型中有效的技术,如标签平滑、dropoutmixup,在BNNs上效果较差。此外,最先进的多任务密集预测任务通常需要深层复杂模型并配备多模态融合结构,加剧了有效实施二值化所面临的挑战。

在应用二值化进行多任务密集预测任务时,主要障碍是在深度模型中信息流的显著降级,导致性能下降。为了解决这个问题,论文提出了一个Binary Multitask Dense PredictorBi-MTDP)基线,通过二值化模块构建了一个多任务密集预测器。基于对这个基线的彻底评估,论文得出结论:二值化操作破坏了多任务模型中的信息流,因此与其全精度对应物相比,下游任务的表示不够丰富。为解决这一问题,论文通过两个方向上额外的信息流校准机制更新Bi-MTDP

  1. 在正向传播中实施变分信息瓶颈机制,使嵌入遵循具有稀疏性质的高斯分布以过滤掉与任务无关的因素。
  2. 在反向传播中利用现有全精度模型通过基于特征的知识蒸馏来校准二值网络梯度。

Bi-MTDP的好处可以从两个正交的角度进行分析:

  1. 从网络二值化的角度来看,通过将二值化与多任务密集预测框架相结合,Bi-MTDP的成功证明了它可以有效地补充信息,从而提高了各个二值模型的性能。
  2. 从多任务密集预测任务的角度来看,加速这些繁琐的模型有利于在其中设计更有效和高效的交叉模块,如图1所示。由于现有的密集预测模型在建模交叉模块方面存在严重限制,因为它们过度依赖卷积操作,所以对于多任务密集预测来说,通过交叉机制学习涵盖多任务上下文各个范围的交互和推理是至关重要的。

Multitask Network BinarizationBinary Neural Network

首先, 简要回顾二值神经网络 ( BNNs ) 的一般思想, 详细阐述二值化的加速机制和信息流退化问题。定义一个具有  个层的全精度(FP)神经网络, , 其中  是输入样本,  代表连接第  层和第  层的权重矩阵,  和 分别表示第  层网络输入和输出的大小, 函数  对特征图执行逐元素激活。

51c视觉~合集15_视觉AI_02

BNNS 在前向操作和反向梯度逼近方面与 FP 神经网络有所不同。具体而言, 在前向传播过程中, BNN 保持 FP 潜在权重  用于梯度更新, 第  个权重矩阵  被二值化为 , 通过二值化函数  得到二值权重矩阵 , 即  。然后第  层的中间激活图(全精度)由  产生。相同的量化方法用于将全精度激活图二值化为  ,并且通过对这个过程进行  次迭代执行整个二值化的前向传递,如图 2 所示。对于 BNNs, 权重和激活都是 1-bit, 因此网络在内存成本方面加速了 32 倍。重要的是, 在推断阶段, BNN 加速了 64 倍, 因为 FP 网络中的 FP 乘法被 BNN 中的 Xnor-Bitcoun  所取代。

在反向传播中,主要挑战是普遍存在的sign函数在理论上是不可微的,因此通过梯度传播极大地破坏了信息流。为了解决这个问题,利用直通估计器(STE)来数值近似整个BNN的导数,即

51c视觉~合集15_视觉AI_03

值得注意的是,在实践中没有采用上述的传统逼近方法,而是利用普遍存在的Bi-RealIR-Net逐渐逼近符号函数,这已被证明是更好的估计方法。尽管已经有许多方法来消除二值化引起的信息流恶化,但由于权重、激活和梯度的严重精度损失,恶化仍然是不可避免的。因此,二值化破坏了复杂计算机视觉模型的性能。

Multitask Dense Predictor

在为密集预测任务应用二值化技术后,二值化模型的性能是不可接受的,如图1和表3中的二进制单任务结果所示。因为这些SoTA密集预测模型的架构相对较重且较深(例如,HRNet-48ResNet-101具有特定任务头),而不是用于分类的模型(例如,ResNet-18具有全连接层作为分类头)。此外,在二进制模型中通过反向传播传递信息,特别是在深度模型中,效率极低。

51c视觉~合集15_视觉AI_04

具体地, 骨干网络提取共享特征后通过一组特定任务头进行处理, 产生了一系列对于  个任务的初始预测, 即  (骨干网络和特定任务头被称为网络的前端)。将  转换并二值化成 1-bit 特征图形式, 得到相应场景的一组二值特征图, 即 , 这比骨干网络的共享二值特征更加关注任务。在最终进行任务预测之前, 通过二值化注意力机制将这些来自特定任务的表示融合为多模态蒸馏信息。论文的方法也是可扩展到不同任务, 尤其是可能有一些任务只在网络前端(初始预测)中被使用。这些初始任务也被称为辅助任务, 因为它们充当代理以改善最终任务的性能, 如图 3 所示。

  • Multi-Modal Distillation (MMD) via Binarized Attention Mechanism

多模态蒸馏模块是多任务密集预测模型的关键。具体而言,利用注意力机制来引导不同任务的不同模态生成的二值特征图之间的信息传递。由于传递的信息流并不总是有帮助的,注意力可以作为一个门函数来控制信息的流动。换句话说,使网络能够自动学习集中或忽略来自其他二值特征的信息。基于二值化操作,可以通过二值化注意力公式化MMD。在传递信息给第 个任务时, 首先获得一个二值化注意力图 ,即

51c视觉~合集15_视觉AI_05

其中,  是二值卷积层的参数,  是初始预测的二值特征图,  表示卷积操作。然后, 通过以下方式传递信息:

51c视觉~合集15_视觉AI_06

其中,  表示逐元素相乘。蒸馏过程如图 3 左所示, 然后在图 3 右侧的头部中, 输出的二值特征图  被用于相应的第  个任务。通过使用特定任务的蒸㽞激活, 网络可以为每个任务保留更多信息, 这对于 BNNs 尤其有益, 因为恶化的信息流主要导致性能下降。

另一方面,多任务密集预测模型在性能方面受益于网络二值化。尽管这些多任务模型已经取得了令人期待的性能,但它们仍然受到基于卷积的蒸馏模块的限制,这些模块在多尺度上被大量使用,模拟了相对局部感知领域中的关键空间和任务相关交互。从理论上讲,在不同网络节点中增加更多的蒸馏模块可以提高模型性能,但由于计算限制,不能无限制地向现有模型中添加蒸馏模块。幸运的是,通过二进制网络节省的计算成本,可以在模型中实现额外的蒸馏模块。

  • Binary Baseline for Multitask Dense Prediction, Bi-MTDP

51c视觉~合集15_视觉AI_07

为了在多任务学习框架下使用BNNs获得密集预测,将MTI-Net二值化为二进制基线。具体来说,完整精度的MTI-Net中的主要模块,包括骨干网络、头部和多模态蒸馏模块,都被替换为二进制模块(权重和激活都是1-bit),将这个基线称为Bi-MTDP

Information Flow Supplementation

尽管为多任务密集预测构建了一个完全二值化的基线Bi-MTDP,并使用常见技术对管道进行训练,但性能仍然是一个主要关注点。无关因素在前向传播时过度拟合,而在反向传播时优化方向严重不匹配,导致信息严重退化。为了解决这些问题,论文进一步提出了Bi-MTDP的变体,Bi-MTDP-F。具体来说,在共享的二进制骨干网络的输出后引入了一个变分信息瓶颈(VIB)层,精确地强制特征提取器保留输入数据的最小充分信息。此外,采用基于特征的知识蒸馏来引导优化方向。

  • Variational Information Bottleneck for Filter-Out Nuisance Factors

通过共享的骨干网络获取输入图像的初始二进制表示,需要训练一系列有针对性的头部来对其进行分割,一个直接的策略是将这些表示送到后续的MMD模块中。然而,二值化表示缺乏同质化,导致了模型过拟合问题。因此,需要对二值化表示进行正则化,而正则化不应该污染表示中的信息流。幸运的是,信息瓶颈(IB)原理直接涉及与最佳假设相关的压缩,即数据不匹配和模型复杂性应同时被最小化。

由于VIB能够有效地捕捉相关部分并过滤掉输入中的无关部分,论文在骨干网络后设计了一个基于VIB的新颖层。具体来说,它明确要求特征提取器保留输入数据的最小充分信息。换句话说,它可以帮助确保信息流灵活地学习针对性任务的清晰表示。基于VIB的分类目标函数可以被表述为信息损失项,如下所示:

51c视觉~合集15_视觉AI_08

其中,  是输入的二进制骨干表示,  是潜在表示变量,  是一个多变量高斯分布,  是一个标准正态分布。一般来说, 后者是一个正则化项, 控制过滤掉输入信息的程度。

  • Feature-based Knowledge Distillation for Guiding the Direction of Information Flow

蒸馏是一种常见且重要的优化方法, 用于缓解量化模型在超低比特宽设置下性能下降的问题, 可以灵活地应用于任何架构, 利用全精度教师模型的知识。通常做法是逐层地从全精度教师向量量化对应的激活进行蒸馏,即  和  ,其中  表示网络层数)。使用均方误差(MSE)作为距离函数来衡量学生和教师之间相应特征的差异。知识蒸馏损失可以写成如下形式:

51c视觉~合集15_视觉AI_09

Counter-Intuitive Results of Bi-MTDP-A

直观地说,在FP网络上实施二值化必然会导致表示退化,因为sign函数的梯度无法完美估计。因此,二值化模型不可能优于其全精度对应模型。然而,Bi-MTDP的变体Bi-MTDP-C(即仅二值化多模态蒸馏的全精度骨干模型)的性能优于其全FP版本。具体来说,仅对多模态蒸馏进行二值化处理就能同时将模型加速∼39%,并将分割 mIoU提高∼4%。这一结果表明,论文的方法并不是在模型性能和效率之间进行天真的权衡,而是提升多任务密集预测器的有力工具。

这一令人兴奋的成果甚至有点违反直觉,推测原因是:i) 在MMD上进行二值化可以过滤掉与任务无关的信息;ii) 网络内的信息流更加有效。为了验证这一推测,从两个方面进行了一系列实验,即Bi-MTDP-C的表示能力和网络内信息流的补充。

  • Qualitative Study of Learned Features with Bi-MTDP

为了研究Bi-MTDP-C及其FP对应模型的表示能力,使用t-SNE算法在2-D空间中可视化了二值化多模态蒸馏(MMD)模块后面的特征图,以及使用Grad-Cam算法确定网络认为重要的区域,结果如图5所示。显然,二值化模型Bi-MTDP-C能够通过二值化注意力模块过滤掉无关信息(见图5(a)),从而有助于学习更具有区分性的特征(见图5(b)),导致更高的定量结果。总体而言,分割生成的空间特征图更好。增强的代表能力可以促进更高的定量结果。

  • Analysis of Information Flow Supplementation within Network via Centered Kernel Alignment

分析神经网络层内的分布信息流是具有挑战性的, 因为层的输出分布在大量神经元之间。中心化核对齐(CKA)可以解决这些挑战,通过定量比较网络内部或跨网络的激活。具体而言, 对于一个由  个样本输入的网络,  算法将  和  作为输入, 它们是两个层的输出激活(分别具有  和  个神经元)。令  和  表示两个层的格拉姆矩阵, CKA 计算如下:

51c视觉~合集15_视觉AI_10

在这里, HSIC 是希尔伯特-施密特独立准则。给定中心矩阵  和中心化的格拉姆矩阵  以及 , 表示这些中心化格拉姆矩阵之间的相似性。重要的是, CKA 对于表示的正交变换(包括神经元的排列)是不变的,而归一化项确保了对各向同性缩放的不变性。这些特性使得能够对神经网络隐藏表示进行有意义的比较和分析。

因此,引入CKA来研究多任务密集预测模型中的信息流。在热图中,点越浅,两个相应层之间的相似度越高。两个层的输出表示之间的相似得分越高,意味着这两个层共享更多信息。结果如图5(c)所示,我们可以看到Bi-MTDP-C前层和后层之间的相似得分要比MTI-Net中的相似得分高得多。这表明Bi-MTDP-C能够补充网络内部的信息流,从而提高模型性能。

Experiments

51c视觉~合集15_视觉AI_11

51c视觉~合集15_视觉AI_12

51c视觉~合集15_视觉AI_13

51c视觉~合集15_视觉AI_14

开发板商城 天皓智联 TB上有视觉设备哦 支持AI相关~ 大模型相关也可用~



#SAM2-Adapte

延续SAM-Adapter的成功,魔芯科技、科大等提出SAM2-Adapter,让SAM2实现下游任务SOTA!

本篇分享论文SAM2-Adapter: Evaluating & Adapting Segment Anything 2 in Downstream Tasks: Camouflage, Shadow, Medical Image Segmentation, and More,延续 SAM-Adapter 的成功,魔芯科技、科大等提出 SAM2-Adapter,让 SAM2 实现下游任务SOTA!

  • 项目页面:http://tianrun-chen.github.io/SAM-Adaptor
  • 论文链接:https://arxiv.org/abs/2408.04579
  • 开源代码:https://github.com/tianrun-chen/SAM-Adapter-PyTorch

“SAM-Adapter的成功经验同样适用于SAM2!”

在AI研究领域,基础模型的引入已经彻底改变了研究的格局,尤其是当这些模型基于庞大的数据集进行训练时。

近期,Segment Anything (SAM)模型因其在图像分割任务中的卓越表现而备受瞩目。尽管如此,先前的研究指出,SAM在处理一些具有挑战性的低级结构分割任务时存在性能瓶颈。

为了克服这些限制,研究者在SAM发布后不久便提出了SAM-Adapter,旨在通过增强SAM的功能,提升其在这些任务中的表现。SAM-Adapter 的架构如图所示。

51c视觉~合集15_视觉AI_15

随着时间的推进,一个更为强大和通用的模型——Segment Anything 2 (SAM2)——应运而生。SAM2在网络架构上进行了优化,并在更广泛的视觉数据上进行了训练,引起了科研界的广泛关注。这引发了两个关键问题:

  • SAM在下游任务中遇到的挑战是否同样存在于SAM2?
  • 是否能够借鉴SAM-Adapter的成功经验,利用SAM2的先进预训练编码器和解码器,在这些任务中达到新的最前沿(SOTA)水平?

本研究的实验结果对这两个问题都给出了肯定的答案。尽管基础模型的固有局限性仍然存在,例如训练数据无法完全覆盖所有可能的场景,但通过引入SAM2-Adapter,研究者成功地在多个任务中实现了SOTA性能。

SAM2-Adapter不仅继承了SAM-Adapter的核心优势,还引入了显著的改进。以下是SAM2-Adapter的主要特点

  • 广泛的适用性:SAM2-Adapter能够适应各种任务,并在自定义数据集上实现优异的性能,几乎不需要额外的数据增强。
  • 高度的灵活性:SAM2-Adapter支持多种条件的集成,以微调SAM2,从而在特定任务上取得更好的结果。

SAM2-Adapter通过利用SAM2的多分辨率分层Transformer架构,进一步增强了这些优势。通过多个适配器的协同工作,SAM2-Adapter有效地利用了SAM2的多分辨率和分层特性,实现了更为精确和鲁棒的分割效果。网络结构图如下所示:

51c视觉~合集15_视觉AI_16

“SAM2可以代替SAM在特定任务中实现SOTA表现”

本研究在多个任务和数据集上进行了广泛的实验,包括ISTD和COD10K数据集用于阴影检测,CHAMELEON和CAMO数据集用于伪目标检测,以及kvasir-SEG数据集用于医学图像分割任务。这些实验结果证明了SAM2和SAM2-Adapter在实现SOTA性能方面的潜力。

伪目标检测可视化结果如下

51c视觉~合集15_视觉AI_17

51c视觉~合集15_视觉AI_18

阴影检测结果如下

51c视觉~合集15_视觉AI_19

51c视觉~合集15_视觉AI_20

息肉分割实验结果如下

51c视觉~合集15_视觉AI_21

51c视觉~合集15_视觉AI_22

总结与展望

SAM2-Adapter是一项突破性的创新技术,专为释放Segment Anything 2(SAM2)模型的全部潜力而设计,专注于攻克最具挑战性的分割任务。

延续了SAM-Adapter的成功经验,SAM2-Adapter再次突破了SAM2在伪装物体检测、阴影识别和息肉分割等复杂任务中的瓶颈,达到了行业顶尖的性能水准,树立了新的标杆。

从SAM到SAM2的持续挑战展示了将基础模型应用于多样化现实场景的复杂性。但令人鼓舞的是,SAM-Adapter和SAM2-Adapter出色地解决了这些问题,展现出它作为高精度分割工具的巨大潜力,适用于广泛的应用领域。

本文鼓励研究人员和工程师大胆采用SAM2与SAM2-Adapter的组合,以实现更卓越的分割性能,并推动图像分割领域向新的高峰迈进。



#GLOMAP

全局式SfM最新SOTA,GLOMAP重新定义SfM!

ETH&微软最新开源-全局式GLOMAP,它与以前的全局SfM系统相比,其核心区别在于全局定位步骤。不是先执行不适定的平移平均然后进行全局三角测量,而是进行联合相机和点位置估计。GLOMAP不仅在鲁棒性和准确性方面达到增量式COLMAP系统相当或更优的水平,同时还比COLMAP快几个数量级。

本文由原paper一作Linfei Pan(潘林菲)博士指导授权【深蓝AI】编译首发,Linfei Pan博士就读于苏黎世联邦理工学院,她的个人主页为:https://lpanaf.github.io/

论文链接:https://arxiv.org/abs/2407.20219

01 背景简介

从一组图像中恢复3D结构和相机运动一直是计算机视觉研究的焦点,此类问题被称为运动恢复结构(Structure-from-Motion,SfM)。多年来已经形成了两种主要的解决范式:增量式和全局式。它们都以基于图像的特征提取和匹配开始,然后通过两视图几何估计构建输入图像的初始视图。

增量方法从两个视图开始重建,并通过逐步配准附加的相机图像和相关的三维结构来扩展重建。这一过程交替进行绝对相机姿态估计、三角测量和捆绑调整,尽管实现了高精度和鲁棒性,但由于重复的捆绑调整的高成本,限制了其可扩展性。

相反,全局方法通过联合考虑视图图中的所有两个视图几何形状,在单独的旋转平均(rotation averaging)和平移平均(translation averaging)步骤中一次恢复所有输入图像的相机几何形状。通常,在最终的全局束调整(global bundle adjustment)步骤之前,将全局估计的相机几何形状用作3D结构三角测量的初始化。虽然增量方法被认为更准确、更稳健,但全局方法的重建过程更具可扩展性,在实践中速度更快。

增量和全局SfM之间准确性和鲁棒性差距的主要原因在于全局平移平均步骤。平移平均描述了从视图图中的相对姿态集估计全局相机位置的问题,其中之前通过旋转平均恢复了相机方向。这一过程在实践中面临三大挑战:

  • 第一个是尺度歧义:从估计的双视图几何获得的相对平移只能确定到某种尺度;
  • 第二是准确地将相对双视图几何分解为旋转和平移分量需要对相机内参的先验知识;
  • 第三个挑战出现在几乎共线的运动上,这导致了退化的重建问题。

研究者因此做了大量的研究工作致力于解决该问题。

主要贡献:

  • 引入了一种通用的全局SfM系统,称为GLOMAP。与之前的全局SfM系统的核心区别在于全局定位步骤。本文方法不是先进行不适定的平移平均,再进行全局三角测量,而是执行相机和点位置的联合估计。
  • GLOMAP在保持全局SfM流程效率的同时,达到了当前最前进的增量SfM系统相似的鲁棒性和精度(如图1a所示)。
  • 与大多数之前的全局SfM系统不同,GLOMAP系统能够处理未知的相机内参(例如,来自互联网照片)并且稳健地处理顺序图像数据(例如,手持视频或自动驾驶汽车场景)。

图1|GLOMAP重构对比示例

02 全局SfM相关研究

全局SfM流程通常由三个主要步骤组成:对应关系搜索(Correspondence Search)、全局相机姿态估计(Global Camera Pose Estimation)以及联合相机和结构细化(Global Structure and Pose Refinement)。

2.1 Correspondence Search

增量和全局SfM都是从输入图像  中提取显著的图像特征开始。一般来说, 检测出的特征点与从检测周围的局部上下文中提取的紧凑签名进行描述。接下来, 开始在图像对  之间搜索特征对应关系。然后通过稳健地恢复重叠对的双视图几何体来验证这些。基于摄像机的几何配置, 这可能会得到一个用于平面场景的一般运动和纯摄像机旋转的单应矩阵 , 或者用于一般场景和一般运动的基础矩阵  (未标定)和本质矩阵  (已标定)。当相机内参近似已知时, 这些可以被分解为相对旋转  和平移  。

与相关内点对应关系计算出的双视图几何定义了视图图G,作为全局重建步骤的输入。在GLOMAP的流程中,作者利用COLMAP进行对应关系搜索,并结合RootSIFT特征和可扩展的词袋图像检索来找到候选的重叠图像对,以便进行暴力匹配特征。

2.2 Global Camera Pose Estimation

全局相机位姿估计是区分全局SfM和增量SfM的关键步骤。全局SfM不是通过重复的三角测量和光束法平差(Bundle Adjustment,BA)来顺序配准相机,而是利用视觉图G作为输入,寻求一次性估计所有相机的位姿,通常将其分解为独立的旋转和位移平均步骤。

Rotation Averaging: 也称为旋转平均,与位姿图优化(PGO)算法相关。该问题通常被表述为非线性优化,惩罚全局旋转与估计的相对位姿之间的偏差。实际上,由于噪声和异常值,该问题通常通过鲁棒最小度量目标进行建模并优化为(如公式1所示):

51c视觉~合集15_视觉AI_23

其中鲁棒器  (如Huber)、旋转参数化 (如四元数或轴角) 和距离度量  (如弦距离或测地线距离) 的各种组合。基于这些原则, 目前大多数工作进行展开研究。

Translation Averaging: 平移平均描述了估计全局相机位置的问题,这些位置在基于约束 的条件下与成对的相对平移  最大限度一致。然而,由于噪声和异常值,以及相对平移的未知尺度,任务尤其具有挑战性。

近年来,提出了不同的平移平均方法。Govind的开创性工作最小化了相对相机位置和观察方向之间的叉乘。Jiang等使用三元组对问题进行了线性化。Wilson等直接优化方向的差异,并设计了专门的异常值过滤机制。尽管这些研究取得了显著进展,但平移平均通常仅在视图图连接良好时才能可靠工作。这个问题本质上是不适定的,并且在相机受到或接近共线运动时对噪声测量敏感。此外,从双视图几何中提取相对平移只有在已知相机内参的情况下才可能。当这些信息不准确时,提取的平移不可靠。相反,作者跳过了平移平均的步骤,直接对相机和点的位置进行联合估计,视为一种全局定位。

Structure for Camera Pose Estimation: 例如直接使用双视图几何中的对应关系来估计全局平移。此外,为了减少尺度漂移,Holynski等将线和面特征集成到优化问题中。这些工作是将对3D场景结构的约束纳入有助于提高相机位置估计的鲁棒性和准确性。

2.3 Global Structure and Pose Refinement

在恢复相机后,可以通过三角测量获得全局3D结构。结合相机的外部参数和内部参数,3D结构通常会使用全局束调整进行精细化。

Global Triangulation: 给定双视图匹配,可以利用传递对应关系来增强完整性和准确性。多视图点的三角测量,此类任务的常见做法是直接线性变换(DLT)和中点法,以及最近的LOST方法。然而,上述三角测量机制在存在任意水平的异常值时往往会失效。基于RANSAC的三角测量方案,试图在存在不匹配的情况下建立多个点轨迹。

Global Bundle Adjustment: 全局束调整对获得准确的最终3D结构 , 相机外部参数  和相机内部参数  至关重要。它被形式化为一种联合鲁棒优化, 目标是最小化重投影误差, 如公式2所示:

51c视觉~合集15_视觉AI_24

2.4 Hybrid Structure-from-Motion

为了结合增量方法的鲁棒性和全局结构从运动(SfM)的效率,之前的研究提出了混合系统。HSfM提出了通过增量估计相机的位置和旋转。还有研究提出了一个图划分方法,首先将整个图像集划分为重叠的簇。在每个簇内,利用全局SfM方法估计相机姿态。然而,根据研究公式,当相机内部参数不准确时,这类方法依然不可用。作者通过在全局定位步骤中对目标进行不同建模,克服了这一限制。

2.5 Frameworks for Structure-from-Motion

目前有多个开源的结构从运动(SfM)框架可供使用。例如,增量SfM范式的代表-COLMAP,一个通用的SfM和多视角立体系统。开源的全局SfM流程,例如OpenMVG,它从几何验证匹配开始,使用对立RANSAC估计相对姿态。之后,OpenMVG通过调整循环长度加权来评估旋转一致性,以消除异常边,并利用剩余边通过稀疏特征值求解器求解全局旋转。全局平移通过三焦点张量进行精细化,然后使用方法进行平移平均。最后,OpenMVG通过逐点优化和全局束调整执行全局三角测量。类似方法还有Theia。

基于学习的系统流程有PixSfM,提出了一个联合优化机制,用于特征和结构以实现亚像素准确重建。VGGSfM,一个用于SfM任务的端到端学习框架。但是,这两种方法的处理能力仅限于数十幅图像。

本文出了一个新的端到端全局SfM流程(如图2所示)。

图2|GLOMAP系统处理流程

03 方法精析

本节描述GLOMAP作为全局SfM是如何在鲁棒性和准确性方面缩小与增量SfM的差距。

3.1 Feature Track Construction

为了实现精确的重建,必须仔细构建特征轨迹。首先只考虑由两视图几何验证产生的内点特征对应。在这一步中,需要对两视图几何的初始分类进行区分:如果单应矩阵最能描述两视图几何,会使用矩阵来验证内点。同样的原理也适用于本质矩阵和基本矩阵。然后通过进行趋势性检验来过滤异常值。靠近任何一个极点或三角化角度较小的匹配也被移除,以避免由于较大的不确定性而产生的奇异性。在对所有视图图边进行成对过滤后,最后拼接所有剩余的匹配形成特征轨迹。

▲图3|全局定位

3.2 Global Positioning of Cameras and Points

这个步骤旨在共同恢复点和相机位置(如图3所示)。作者这里没有先执行平移平均然后进行全局三角化,而是直接执行联合全局三角化和相机位置估计。针对标准增量和全局SfM系统中,目标函数初始化和误差的问题,本方法的目标函数,使用归一化方向差异作为误差度量。原始形式是基于相对平移提出的,而这里舍弃了相对平移约束,仅包括相机光线约束。具体来说,问题被建模和优化为:

51c视觉~合集15_视觉AI_25

其中,  是从相机  观察点  的全球旋转相机光线, 而  是一个归一化因子。Huber作为鲁棒化函数  ,并且使用Levenberg-Marquardt作为优化器。所有点和相机变量均通过均匀随机分布初始化在范围  内, 而归一化因子初始化为  。

与重投影误差相比,本方法有几个优点。首先是鲁棒性。尽管重投影误差是无界的,上述公式等价于

51c视觉~合集15_视觉AI_26

其中对于最佳的  是  和  之间的角度。因此,误差严格限制在[0,1]范围内。这样,异常值不会对结果产生重大偏差。其次,由于其双线性形式,在随机初始化时能够可靠收敛。

与经典的平移平均相比,在优化中舍弃相对平移项有两个关键优点。首先,本方法适用于内参不准确或未知以及不遵循预期针孔模型的退化相机的数据集(例如,处理任意互联网照片时)。这是它因为解决相对平移需要准确内参的知识。其次是全局SfM在共线运动场景中的适用性,这已知是平移平均的一个退化情况。与成对的相对平移相比,特征轨迹限制了多个重叠相机。因此,GLOMAP可以在常见的前向或侧向运动场景中更可靠地处理。

3.3 Global Bundle Adjustment

全局定位步骤为相机和点提供了一个稳健的估计。但是,当相机内参未知时,精度受到限制。为了进一步优化,利用Levenberg-Marquardt和Huber损失作为鲁棒化器进行了多轮的全局光束平差。在每一轮中,首先固定相机的旋转,然后与内参和点一起进行联合优化。然后,根据图像空间中的重投影误差过滤轨迹。当过滤轨迹的比例低于0.1%时,迭代停止。3.4 Camera Clustering


解决被采集的图像,不重叠的图像可能会被错误地匹配在一起。因此,不同的重构可以合并为一个重构。为了克服这个问题,通过对相机进行聚类来对重建进行后处理。首先,通过统计每个图像对的可视点数构建可视性图G。然后,寻找G中的强连通分量来发现具有良好约束的相机簇。递归地重复这个过程,直到没有更多的簇可以合并为止。

3.5 Proposed Pipeline

如图2所示,GLOMAP方法的流程图。该方法由两个主要组件组成:对应关系搜索和全局估计。对于对应关系搜索,它以特征提取和匹配开始。从匹配中估计两视图几何,包括基本矩阵、必需矩阵和单应性。几何上不可行的匹配会被排除。然后在几何验证的图像对上执行视图图校准。使用更新后的相机内参,估计相对相机姿态。关于全局估计,通过平均来估计全局旋转,并通过对 和 之间的角度距离进行阈值过滤来排除不一致的相对姿态。然后,通过全局定位联合估计相机和点的位置,随后进行全局束调整。同样的,重建的精度可以通过结构优化进一步提高。

04 实验

在各种数据集上对GLOMAP进行了大量实验,这些数据集覆盖了从标定到未标定、从无序到序列场景的情况。数据集包含ETH3D、LaMAR、2023年图像匹配挑战赛(IMC 2023)和 MIP360,并与最先进的框架(OpenMVG、Theia、COLMAP)进行了比较。

Metrics 对于所有评估,采用两个标准指标。对于无序图像数据,基于每对图像之间相对旋转和位移误差的最大值计算出的AUC(召回曲线下的面积)得分,这种误差的表述考虑了每一对可能相机之间的偏差。对于序列图像数据,在使用鲁棒的RANSAC方案将重建结果全局对齐到真实值后计算的相机位置误差的AUC得分。

4.1 Calibrated Image Collections

数据集ETH3D SLAM包含稀疏特征、动态物体和剧烈光照变化的序列数据。在具有毫米级精确地面真值的训练序列上进行方法评估。结果表明(如表1所示),GLOMAP系统的召回率比COLMAP高出约8%,在0.1m和0.5m阈值下分别提高9分和8分,且COLMAP的速度慢一个数量级。与其他全局SfM流程相比,GLOMAP在召回率上提高了18%和4%,在0.1m下AUC高出约11分,确认了其稳健性。

▲表1|ETH3D SLAM数据集实验结果对比

ETH3D MVS(rig)每个场景包含约1000个多机rig曝光,每个曝光4张图像。该数据集包含室外和室内场景,5个训练序列具有毫米级的地面真值。结果如表2所示,GLOMAP成功重建了所有场景。相比之下,OpenMVG在所有场景上的表现较差,而COLMAP在一个场景上失败,Theia的表现始终低于本文的方法。在COLMAP成功的序列中,GLOMAP达到相似或更高的精度,其运行时间比全局SfM基线略慢,但比COLMAP快约3.5倍。

▲表2|ETH3D MVS(rig)数据集实验结果对比

ETH3D MVS(DSLR)特征是一个无序的高分辨率图像集合,包含室内和室外场景,训练和测试序列都具有毫米级的地面真值。结果如表3所示,与其他ETH3D数据集一致,GLOMAP优于OpenMVG和Theia,同时与COLMAP达到类似的精度。对于exhibition_hall,GLOMAP的表现不准确,因为场景的旋转对称性导致旋转平均崩溃。由于场景规模较小,所有方法的运行时间相近。

▲表3|ETH3D MVS(DSLR)数据集实验结果对比

LaMAR是一个大规模的室内和室外基准测试,每个场景包含数万个由各种AR设备和智能手机拍摄的图像。实验结果如表4所示,与其他基线相比,GLOMAP在HGE和LIN上实现了显著更准确的重建,包括COLMAP,同时在速度上比COLMAP快几个数量级。在CAB上,包括COLMAP在内的所有方法表现不佳,特别是在视觉检查中,由于存在许多前向运动轨迹、剧烈的昼夜光照变化,以及楼层/房间之间的许多对称性和重复外立面,这对这个极具挑战性的基准造成了很大的影响。

▲表4|LaMAR数据集实验结果对比

4.2 Uncalibrated Images Collections

IMC 2023包含在复杂场景中unordered(无序)的图像集合。图像来自多个来源,通常缺乏先前的相机内参。结果如表5所示。GLOMAP在3°、5°和10°下的平均AUC分数比其他全局SfM基线高出几倍。运行时间与其他全局SfM流程相似。与COLMAP相比,所提方法在3°、5°和10° 下的AUC分数高出约4分,并且速度快约8倍。

▲表5|IMC 2023数据集实验结果对比

MIP360包含7个以物体为中心的场景,这些场景的高分辨率图像是由同一相机拍摄的。如表6所示,GLOMAP与全局SfM基线相比,显著更接近参考模型。GLOMAP速度超过COLMAP的1.5倍。

▲表6|MIP360数据集实验结果对比

4.3 Ablation

为了证明全局定位策略的有效性,通过替换组件进行实验,一是仅添加相对位移约束,称为(BATA,cam),以及二是添加点和位移约束(BATA,cam+pt)。在 ETH3D MVS(DSLR)和IMC 2023上进行了测试。结果表明(如表7所示),相对位移约束会降低收敛性和整体性能。

▲表7|消融实验结果

4.4 Limitations

尽管GLOMAP总体上取得了不错的的性能,但某些情况下会失效。主要原因是旋转均值计算的失败,例如,由于对称结构(如表3中的Exhibition_Hall)。在这种情况下,GLOMAP可以与现有的方法结合,比如Doppelganger。此外,由于GLOMAP依赖传统的对应搜索,错误估计的双视图几何或完全无法匹配图像对(例如,由于外观或视角的剧烈变化)将导致结果下降,或在最坏的情况下,出现灾难性故障。

05 总结

GLOMAP 提出了一种新的全局SfM流程。以前的全局SfM系统被认为更高效但鲁棒性较差,GLOMAP重新审视了这个问题,发现解决关键在于在优化中使用点。GLOMAP不再通过不适定的位移平均来估计相机位置,也不再单独通过点三角测量获取3D结构,而是将它们合并为一个单一的全局定位步骤。通过在多个数据集上进行实验对比,GLOMAP在准确性和鲁棒性方面与增量方法相比有类似或更优的结果,同时速度快十倍。



#CFPT

干翻一众 FPN,专攻小目标检测!CFPT:无需上采样的新型FPN

在本文中,作者提出了跨层特征金字塔 Transformer (CFPT),这是一种无需上采样的新型特征金字塔网络,专门为航拍图像中的小目标检测而设计。 

目标检测一直是一项具有挑战性的任务。大多数当前检测器优先考虑新颖的检测框架,却常常忽视了对基本组成部分(如特征金字塔网络)的研究。在本文中,作者提出了跨层特征金字塔 Transformer (CFPT),这是一种无需上采样的新型特征金字塔网络,专门为航拍图像中的小目标检测而设计。CFPT采用了两个精心设计的、具有线性计算复杂度的注意力模块:跨层通道注意力(CCA)和跨层空间注意力(CSA)。


CCA通过划分通道 Token 组来实现跨层交互,以沿空间维度感知跨层全局信息;而CSA则通过划分空间 Token 组来完成跨层交互,以沿通道维度感知跨层全局信息。通过整合这些模块,CFPT一步实现跨层交互,从而避免了元素逐点加和以及层与层之间传递引起的语义差距和信息丢失。此外,CFPT融入了全局上下文信息,这增强了小目标的检测性能。为了在跨层交互中进一步提升位置感知,作者基于层间相互感受野提出了跨层一致相对位置编码(CCPE)。作者在两个具有挑战性的航拍图像目标检测数据集上评估了CFPT的有效性,分别是VisDrone2019-DET和TinyPerson。大量实验证明了CFPT的有效性,它在计算成本更低的情况下,性能优于现有的特征金字塔网络。


相关代码将在https://github.com/duzw9311/CFPT发布。

I Introduction

得益于卷积神经网络(CNNs)和视觉 Transformer (ViTs)的进步,现有的目标检测器已经取得了显著的发展,并在自动驾驶、人脸检测、医学图像分析和工业质量检查等众多应用领域奠定了其基本解决方案的地位。

作为目标检测的一个子领域,小目标检测由于在卷积和池化操作过程中小目标特征可能会被大目标特征所淹没或遮盖,因此相较于传统的目标检测任务面临更大的挑战。如图3所示,作者展示了两个经典的小目标检测数据集在航拍图像中的数据分布箱线图:VisDrone2019-DET [2] 和 TinyPerson [3]。箱线图凸显了 VisDrone2019-DET 数据集不仅包含大量小目标(20到30像素),而且存在显著的尺度变化。相比之下,TinyPerson 数据集相比于 VisDrone2019-DET,主要包含更小尺寸的目标,大多数目标的大小不超过20像素。无人机飞行高度和拍摄角度显著影响目标尺度分布,导致在航拍图像上的目标检测性能相对较差。

51c视觉~合集15_视觉AI_27

图1:在VisDrone2019-DET数据集上,各种最先进特征金字塔网络的性能比较。作者通过替换RetinaNet [1]中的 Neck 组件来评估它们的性能。

51c视觉~合集15_视觉AI_28

为了应对这些挑战,已经连续提出了许多研究。鉴于无人机场景中前景的比例较小,现有的解决方案通常采用由粗到精的检测方案[4, 5, 6]。在粗略预测阶段,通常使用一个通用检测器来检测目标并预测密集的目标簇。随后,在细化阶段,通常会修剪、上采样该簇,并将其重新输入检测器以进行精细搜索。尽管上述模型架构可以有效地适应无人机视角,并且在较低的计算成本下比直接输入高分辨率图像增强了各种检测器的性能,但它仍然缺少专为空中图像中目标检测定制的基本组件,例如特征金字塔网络。特征金字塔网络作为图像金字塔的低计算成本替代方案,在多种检测器中被广泛使用,并已成为每个检测器的基本组成部分。最早的FPN [7]使用自上而下的单向路径将语义信息整合到浅层特征图中,有效增强了模型在多尺度目标检测方面的能力。由于逐层传递的单向路径不可避免地造成信息丢失[8],随后的特征金字塔网络逐渐过渡到层与层之间的直接交互。

作者提出CFPT,一种新的跨层特征金字塔结构,它通过在不同方向(即空间方向和通道方向)促进跨层信息交互来增强模型的表达能力。

通过整合这两种交互,CFPT能够有效地捕获小型目标的必要全局上下文信息,同时保持较低的计算成本。

  • 作者提出CCPE,一种基于层间互惠感受野的新型位置编码方法,旨在增强模型在跨层交互过程中对空间和通道位置的认识。
  • 通过在VisDrone2019-DET和TinyPerson数据集上的大量实验,作者证明了CFPT在航拍图像中小型目标检测的有效性。

II Related WorkSmall Object Detection in Aerial Images

现代的目标检测器通常通过连续的卷积和池化层降低输入图像的分辨率,力求在性能与计算复杂度之间达到最佳平衡。因此,检测小物体本质上比常见目标检测更具挑战性,因为它们的小尺寸增加了在下采样过程中信息丢失的风险。

对于航拍图像中的小目标检测,ClusDet [17]采用了一种从粗到精的方案,首先检测密集的目标簇,然后在这些簇内进行搜索细化,以提高模型检测小物体的能力。DMNet [18]简化了ClusDet的训练过程,通过采用密度图生成网络来为簇预测生成密度图。遵循类似的检测流程,CRENet [19]和GLSAN [4]进一步增强了聚类预测算法,并优化了细粒度预测方案。UFPMP-Det [6]采用UFP模块和MPNet预测子区域,并将它们组装成单一图像以实现高效的单一推理,从而提高了检测的准确性和效率。CEASC [20]利用稀疏卷积优化了航拍图像中目标检测的传统检测器,降低了计算需求同时保持了竞争力的性能。DTSNNet [21]在Backbone和Neck之间引入了人工设计的块,以提高模型对多尺度特征的敏感性,并采用了专门针对小物体的训练样本选择方法。

上述解决方案优化了各种检测器,以适应航拍图像中的目标检测场景,而作者提出了一种专门针对这一背景下小目标检测的新型特征金字塔网络。

Feature Pyramid Network

为了减轻图像金字塔带来的巨大计算成本,特征金字塔网络(FPN)作为一种有效且高效的替代方法出现,它提高了各种检测器的性能。FPN [7] 利用一系列自顶向下的快捷连接来增强浅层特征图中缺乏的语义信息。基于FPN,PAFPN [12] 提出使用自底向上的快捷连接来解决深层特征图中细节信息的不足。Libra-RCNN [22] 通过结合非局部块来改进原始特征,以获得平衡的交互特征。为了减轻多尺度特征图中的语义差距,AugFPN [23] 引入了连贯的监督分支,并提出了ASF,用于跨多尺度动态特征融合。FPG [8] 使用规则网格表示特征尺度空间,并通过平行路径之间的多方向横向连接进行融合,从而增强了模型的特征表示能力。AFPN [11] 通过深层和浅层特征图的跨 Level 融合迭代改进多尺度特征,在具有常见尺度分布的目标检测中取得了竞争性的性能。

与先前方法不同,作者提出了CFPT,它利用全局上下文信息,并策略性地强调浅层特征图,以增强航拍图像中小型目标的检测。

Vision Transformer

作为计算机视觉中Transformer[24]的扩展,Vision Transformer (ViT)[25]在各种各样的视觉场景中[26, 27, 28]展示了显著的潜力。由于传统ViT与图像分辨率相关的二次计算复杂度,后续研究主要集中在开发轻量级的替代方案。Swin Transformer[29]通过限制特定窗口内的交互,并在交互过程中移动这些窗口以实现全局感受野。局部ViT[30, 31, 32]通过局部窗口内的交互引入局部诱导偏差,有效降低了模型的计算复杂度并加快了收敛速度。轴向注意力[33]通过将交互限制在图像宽度和高度上的条带,减少了计算复杂度。

遵循类似的轻量级概念,作者设计了两款具有线性复杂度(即CCA和CSA)的注意力块,以跨层捕捉沿各种方向(即空间方向和通道方向)的全局上下文信息,从而增强了模型对小物体的检测能力。

III Methodology

在本节中,作者将详细介绍所提出的跨层特征金字塔 Transformer (CFPT)。在第三节A部分,作者首先概述了所提出CFPT的整体架构。随后,在第三节B和C部分,作者介绍了CFPT的两个关键组成部分,即跨层通道注意力(CCA)和跨层空间注意力(CSA)。在第三节D部分,作者提出了一种新颖的跨层一致相对位置编码(CCPE),旨在增强模型的跨层位置感知能力。

Overview

如图4所示,CFPT采用多个并行的CBR块来构建跨层特征交互的输入,这些输入来自特征提取网络(如ResNet[34])的多级特征图输出,从而降低了计算复杂度,满足了大多数检测器在架构上的要求。通过利用堆叠的跨层注意力模块(CAMs),CFPT增强了模型利用全局上下文信息和跨层多尺度信息的能力。

51c视觉~合集15_视觉AI_29

具体来说,CAM模块由一系列跨层通道注意力(CCA)和跨层空间注意力(CSA)组成。CCA沿着通道维度促进局部跨层交互,从而通过每个通道 Token 组的交互在空间维度上建立一个全局感受野。相反,CSA沿着空间维度促进局部跨层交互,通过每个空间 Token 组的交互捕捉通道维度的全局上下文信息。此外,作者通过在CAM的输入和输出之间使用捷径分支来进一步提高梯度增益。

假设经过CBR块后每个尺度的特征图可以表示为 , 其中  是输入层的数量, 每个特征图的空间分辨率  随橧加而增大, 同时保持通道数 

其中是一组经过跨层交互的多尺度特征图,其形状与相应的输入特征图保持一致。

值得注意的是,作者的CFPT消除了复杂特征上采样操作和逐层信息传输机制,这些机制在层间传输过程中容易造成信息丢失,并导致计算负载增加和内存访问延迟。相反,作者通过利用尺度间相互感受野大小的局部分组操作,对多尺度特征图执行一步跨层邻近交互操作,从而促进尺度间的信息混合。这种方法使得每个尺度的特征能够平衡地从其他层获取信息(即使这些层相隔较远),同时促进自我修正,并从局部交互提供的归纳偏置中受益[32]。

跨层通道注意力

假设CCA的输入特征图集合为  。如图5(a)所示, CCA沿着通道维度执行跨层的多尺度邻近交互, 从而为每个通道 Token 提供空间维度的全局上下文信息。为了构建交互式输入, 作者首先在每个尺度上对特征图执行通道重建 (CR), 以确保它们具有相同的空间分辨率, 从而得到 

51c视觉~合集15_视觉AI_30

接下来, 作者执行重叠通道式 Patch 划分 (OCP) 以形成通道式标记组, 这可以看作是沿着通道维度在局部区域具有重叠区域的 Patch 嵌入[25], 其中不同尺度的特征图上的 Patch 大小是不同的。具体来说, 根据多尺度特征的形状,  中相邻特征图的通道大小相差一个 4 倍因子(即,  )。为了构建重叠的邻近交互组, 作者引入一个扩展因子  对  执行OCP, 从而得到 


以第  层的特征图为例, 在获得  之后, 作者采用跨层一致的多头注意力机制来捕获沿空间维度的全局依赖性, 从而得到交互结果 

其中  是线性投影矩阵。  分别表示连接的键和值, 其中  代表连接操作。 表示第 

在为每个尺度的特征图获得交互结果  之后, 作者应用反向重叠通道式 Patch 划分 (ROCP) 来恢复 OCP 的影响, 并得到 

作者最终使用空间重建 (SR) 来获得与输入X形状相匹配的结果 

Cross-layer Spatial-wise Attention

同样,将CSA的输入特征图集合表示为 。如图5(b)所示,CSA沿着空间维度跨层执行多尺度邻近交互,为每个空间标记提供沿通道维度的全局上下文信息。

由于输入特征图的通道大小在CBR块后匹配(例如,256),无需使用CR和SR等方法来调整它们的大小, 正如在CCA中所做的那样。因此, 作者可以直接执行重叠空间划分 (OSP) 来形成空间标记组, 这可以看作是在不同尺度特征图上使用不同大小的矩形框进行滑动裁剪。假设OSP的扩展因子为 , 通过上述操作, 作者可以得到 


然后, 作者在跨层空间标记组内执行局部交互, 并使用跨层一致性多头注意力来捕获沿通道维度的全局依赖性, 从而得到  。对于第 

其中  是线性投影矩阵。和  。 表示第 

接下来, 作者使用反向重叠空间划分(ROSP)来反转OSP的效果, 并获得交互结果集 

Cross-layer Consistent Relative Positional Encoding

由于在交互过程中,它们各自的跨层标记组内的每个标记都保持着特定的位置关系。然而,传统的多头注意力机制统一处理所有交互标记,这对于像目标检测这样对位置敏感的任务来说会导致次优结果。因此,作者引入了跨层一致相对位置编码(CCPE),以增强CFPT在交互过程中的跨层位置感知。

CCPE的主要解决方案是基于对多个尺度上的相互感受野进行对齐, 这由卷积的特性决定。以CSA 为例, 每对空间标记组之间的注意力图集合其中  是头的数量, , 如方程 9 中定义。为了简化, 作者忽略  和 , 并定义  和 , 其中  和  分别表示第  层和第  层空间标记组的高度和宽度。因此, 注意力图集合可以重新表示为 

CCGE的过程如图6所示。作者定义了一个可学习的码本 , 并通过计算它们的跨层一致相对位置索引, 从码本中获取任意两个标记之间的相对位置信息。为了简化, 考虑来自第  层和第  层的空间标记组的交互,其中  和 

51c视觉~合集15_视觉AI_31

51c视觉~合集15_视觉AI_32

为了获得  相对于  的相对位置信息, 作者首先使用它们各自的空间标记组大小来中心化它们的坐标, 以获得  和 

Complexity Analysis

在本节中,作者将分析典型相关分析(CCA)和通道分割注意力(CSA)的计算复杂性。此外,由于在训练和测试阶段,空间域和通道域的标记组大小保持不变,它们的计算复杂性与输入特征图的空间分辨率成线性关系。

Iii-E1 Cross-layer Channel-wise Attention

考虑一组输入特征图集合, 记作  。此外, 令  表示在CCA中使用的扩展因子。CCA的整体计算复杂度包括线性投影的 , 注意力交互的 , 以及FFNs的 

Iii-E2 Cross-layer Spatial-wise Attention

假设输入特征图集合为  。此外, 令  表示在CSA中使用的扩展因子。CSA的整体计算复杂度包括线性投影的 , 注意力交互的 , 以及FFNs的 

IV Experiments

Datasets

作者通过将提出的CFPT应用于两个特别为从小型无人机视角进行小目标检测而设计的挑战性数据集来评估其有效性:VisDrone2019-DET [2] 和 TinyPerson [3]。

Iv-A1 VisDrone2019-DET

这个数据集包含了7,019张由无人机拍摄的图片,其中6,471张用于训练,548张用于验证。数据集涵盖了十个类别:自行车、三轮车、三轮机动车、货车、公交车、卡车、摩托车、行人、人以及汽车。这些图片的分辨率大约为像素。

Iv-A2 TinyPerson

这个数据集由无人机收集,主要用于远距离场景中的小目标检测,因为目标目标的平均长度小于20像素。它包含1,610张图片,其中794张用于训练,816张用于测试。数据集包含72,651个标记实例,分为两组:“海上行人”和“陆地行人”。为了简化,作者将上述两个类别合并为一个类别,命名为“行人”。

Implementation Details

作者使用PyTorch [48] 和MMdetection工具箱 [49] 实现了所提出的CFPT。所有模型都在单块RTX 3090上进行训练和测试,批处理大小为2。在模型训练中,作者使用SGD作为优化器,学习率为0.0025,动量为0.9,权重衰减为0.0001。作者在VisDrone2019-DET数据集上进行了消融研究,并比较了各种最先进的特征金字塔网络性能,输入分辨率为,并采用计划(12个周期)。为了加速模型收敛,作者在训练开始时采用了线性预热策略。为了比较在VisDrone2019-DET数据集上各种最先进检测器的性能,作者训练模型15个周期,以确保按照CEASC [20]的方法完全收敛。

在TinyPerson数据集 [3] 的实验中,为了减少内存使用过度,作者将高分辨率图像划分为大小均匀的块,并设有30%的重叠比例。每个块按比例缩放,以确保最短边长为512像素。为了全面评估模型性能,作者在模型训练中设置了批处理大小为1,并采用计划,同时实施多尺度训练和多尺度测试。

Comparison with Other Feature Pyramid Networks

作者最初在VisDrone2019-DET数据集上,将提出的CFPT与基于RetinaNet [1]的各种最先进特征金字塔网络性能进行了比较。如表格I所示,作者的CFPT在不同的 Backbone 网络上,包括ResNet-18、ResNet-50和ResNet-101,均取得了RetinaNet的最佳结果,同时在性能与计算复杂度之间取得了最优平衡。此外,与专注于航拍图像中小目标检测的SSFPN相比,作者的CFPT在参数更少(分别为-3.8M、-3.5M和-3.5M)和FLOPs更低(分别为-55.5G)的情况下,实现了更好的性能(+0.8 AP、+0.5 AP和+0.4 AP)。这证明了CFPT在航拍图像中小目标检测的应用潜力。

Comparison with State-of-the-Art Methods

为了进一步验证CFPT的有效性,作者将当前最先进检测器中的特征金字塔网络替换为CFPT,并在VisDrone2019-DET和TinyPerson数据集上比较其性能表现。

Iv-D1 VisDrone2019-DET

作者将GFL [43]中的特征金字塔替换为CFPT,并将其性能与各种最先进的检测器进行比较。如表格II所示,应用作者的CFPT分别基于ResNet-18、ResNet-50和ResNet-101,将GFL的性能提升了0.8 AP、0.7 AP和0.7 AP。尽管参数数量略有增加,分别为0.3 M、0.2 M和0.2 M。与CEASC [20]相比,作者的参数仅增加了0.1 M,却实现了显著的性能提升(分别提升了+0.7 AP、+0.6 AP和+0.6 AP),证明了作者CFPT的有效性。

Iv-D2 TinyPerson

在TinyPerson数据集上的比较中,作者采用了文献[3]中定义的评价指标来全面评估模型的性能。作者观察到,GFL [43]在细粒度检测方面表现出色,这体现在其在AP-tiny指标上的优越性能上;而FSAF [41]在粗粒度预测方面更为有效,这从其在AP-tiny和AP-tiny指标上的更好性能可以证明。因此,作者将CFPT分别整合到GFL和FSAF中,以评估其在两种场景下的适应性。如表格III所示,CFPT带来了显著的性能提升,包括为GFL提高了2.4个AP-tiny(44.2 AP-tiny对比41.8 AP-tiny),以及为FSAF提高了2.0个AP-tiny(44.5 AP-tiny对比42.5 AP-tiny),所有性能指标均有增强。因此,有效整合CFPT可显著提升模型对小物体的检测性能,证明了其在航拍图像中小目标检测的有效性。

Ablation Study

在消融研究部分的开头。

V-E1 Order of CCA and CSA

作者研究了CCA(典型相关分析)和CSA(通道空间注意力)应用的顺序对模型性能的影响。具体来说,作者比较了如图7所示的三种解决方案的性能,包括先应用CCA后应用CSA(CCACSA)、先应用CSA后应用CCA(CSACCA)以及同时应用CCA和CSA(CCACSA)。如表4所示,CCACSA的模式取得了最优性能,平均精度(AP)为22.2。作者认为这是因为CCA沿着空间方向提供了全局感受野,使得CSA能够利用全局上下文信息来预测更准确的注意力图,并获取更优的邻近细节信息。然而,由于CSA沿着通道方向具有全局感受野,首先应用它可能会破坏局部性,阻止CCA准确关注空间上的邻近信息。此外,CCACSA将导致CCA和CSA之间没有交互,使得无法利用彼此的信息进行精细的信息聚合。

51c视觉~合集15_视觉AI_33

51c视觉~合集15_视觉AI_34

V-E2 Effectiveness of each proposed component

作者通过逐步将提出的模块整合到 Baseline 模型(即没有FPN的RetinaNet)中来评估每个组件的有效性。如表5所示,将CCA和CSA分别整合到 Baseline 模型中,显著提升了模型性能,分别提高了3.5个AP和3.4个AP。将CCA和CSA综合整合到CAM中,模型实现了3.9个AP的提升(22.0 AP对比18.1 AP)。随后,应用CCPE进一步增强了模型性能,最终AP达到了22.2。值得注意的是,与表1中的大多数特征金字塔网络相比,仅整合CCA或CSA就能实现更优的性能,这突显了它们在航空图像中小目标检测的潜力。

51c视觉~合集15_视觉AI_35

作者还报告了每个组件对模型计算复杂度、参数数量和推理速度的影响,具体见表5。当仅使用单一组件(例如CCA)时,与 Baseline 模型相比,CFPT引入了额外的1.4M参数、7.4G FLOPs和每张图像0.004秒的推理延迟,同时实现了显著性能提升(+3.5 AP)。当使用所有组件时,CFPT引入了额外的2.8M参数、14.8G FLOPs和每张图像0.01秒的推理延迟,同时实现了显著性能提升(+4.1 AP)。因此,CFPT能够在性能与计算复杂度之间实现更好的平衡。

Iv-D3 Number of CAMs

作者评估了CAMs数量对模型性能的影响。如表格VI所示,增加CAMs的数量一致性地提升了模型的性能。当使用三个CAMs时,模型达到了22.5的AP,相较于 Baseline 模型提高了4.4个AP点(22.5 AP对比18.1 AP)。为了更好地平衡计算复杂度与性能,作者在所有其他实验中将CAM的堆叠数量设置为1,尽管更多的CAMs会带来更多的好处。

Iv-D4 Channel Size reduction factor and MLP ratio

作者研究了不同的通道尺寸缩减因子(即特征图通道在注意力交互中的压缩比)和多层感知器(MLP)比例(即在FFN中通道尺寸的扩展比)的影响,旨在找出能够平衡计算复杂度和模型性能的最佳组合。如图9所示,当通道尺寸缩减因子设为4,MLP比例设为2时,模型在计算复杂度和性能之间达到了最佳平衡。因此,在VisDrone2019-DET和TinyPerson数据集上进行的所有实验中,作者均采用这一组合方案。

51c视觉~合集15_视觉AI_36

Qualitative Analysis

作者通过在VisDrone2019-DET和TinyPerson数据集上可视化检测结果来对CFPT进行定性分析,所有可视化的置信度阈值设置为0.3。如图8所示,作者将CFPT应用于GFL,并将其与 Baseline 模型(即GFL)和CEASC在VisDrone2019-DET数据集上进行定性比较。应用CFPT有效降低了模型的漏检率(第一行和第三行)和误检率(第二行),从而提升了整体性能。此外,图8的第三行展示了CFPT在小目标检测方面的有效性。如图10所示,在TinyPerson数据集上的检测结果进一步验证了上述解释,表明CFPT在降低漏检和误检率的同时,有效提升了模型对小目标的检测能力。

51c视觉~合集15_视觉AI_37

51c视觉~合集15_视觉AI_38

V Conclusion

在本论文中,作者引入了CFPT,这是一种新型的无需上采样的特征金字塔网络,

CFPT能够明确更多地关注浅层特征图,并摒弃基于静态核的交互方案,以减轻尺度差异对模型性能的影响,这使得它特别适合于航拍图像中的目标检测。

具体来说,CFPT由两个精心设计的、具有线性计算复杂度的注意力模块组成,分别为CCA和CSA。这两个模块从不同角度捕捉上下文信息,它们的融合为模型提供了对检测小目标至关重要的全局上下文建模能力。

此外,为了在跨层交互中增强位置感知,作者提出了一种新的位置编码方法CCPE。在两个具有挑战性的航拍数据集上的大量实验表明,CFPT在优于现有最先进的特征金字塔网络的同时,也降低了计算成本。

在未来的工作中,作者计划探索可变形的跨层交互解决方案,并研究更有效的实现策略。



#脉冲神经网络 (SNN)

如何看待第三代神经网络SNN?详解脉冲神经网络的架构原理、数据集和训练方法

脉冲神经网络 (SNN) ,旨在弥合神经科学和机器学习之间的差距,使用最拟合生物神经元机制的模型来进行计算,更接近生物神经元机制,但其实用价值却一直存在着争议。本文深入浅出的带大家学习和了解这一研究方向及其模型的训练过程。

1 脉冲神经网络简介

脉冲神经网络 (SNN) 属于第三代神经网络模型,实现了更高级的生物神经模拟水平。除了神经元和突触状态之外,SNN 还将时间概念纳入了其操作之中,是一种模拟大脑神经元动力学的一类很有前途的模型。

那么什么是第一代和第二代神经网络模型呢?

第一代神经网络

第一代神经网络又称为感知器,在1950年左右被提出来,它的算法只有两层,输入层输出层,主要是线性结构。它不能解决线性不可分的问题,对稍微复杂一些的函数都无能为力,如异或操作。

第二代神经网络:BP 神经网络

为了解决第一代神经网络的缺陷,在1980年左右 Rumelhart、Williams 等人提出第二代神经网络多层感知器 (MLP)。和第一代神经网络相比,第二代在输入层之间有多个隐含层的感知机,可以引入一些非线性的结构,解决了之前无法模拟异或逻辑的缺陷。

第二代神经网络让科学家们发现神经网络的层数直接决定了它对现实的表达能力,但是随着层数的增加,优化函数愈发容易出现局部最优解的现象,由于存在梯度消失的问题,深层网络往往难以训练,效果还不如浅层网络。

所有对目前机器学习有所了解的人都听说过这样一个事实:目前的人工神经网络是第二代神经网络。它们通常是全连接的,接收连续的值,输出连续的值。尽管当代神经网络已经让我们在很多领域中实现了突破,但它们在生物学上是不精确的,其实并不能模仿生物大脑神经元的运作机制

第三代神经网络:脉冲神经网络

第三代神经网络,脉冲神经网络 (Spiking Neural Network,SNN) ,旨在弥合神经科学和机器学习之间的差距,使用最拟合生物神经元机制的模型来进行计算,更接近生物神经元机制。脉冲神经网络与目前流行的神经网络和机器学习方法有着根本上的不同。SNN 使用脉冲——这是一种发生在时间点上的离散事件——而非常见的连续值。每个峰值由代表生物过程的微分方程表示出来,其中最重要的是神经元的膜电位。本质上,一旦神经元达到了某一电位,脉冲就会出现,随后达到电位的神经元会被重置。对此,最常见的模型是 Leaky Integrate-And-Fire (LIF) 模型。此外,SNN 通常是稀疏连接的,并会利用特殊的网络拓扑。

然而,关于 SNN 作为人工智能和神经形态计算机群体中的计算工具的实用价值,长期以来一直存在争论。尤其是和人工神经网络 (ANN) 相比。在过去的几年里,这些怀疑减缓了神经形态计算 (neuromorphic computing ) 的发展,而随着深度学习的快速进步,研究人员试图从根本上缓解这个问题,人们想要通过加强 SNN 的手段,如改善训练算法,来缓解这个问题。

与成熟有效的人工神经网络 (ANN) 训练算法:误差反向传播算法 (Back Propagation) 不同,神经网络研究中最困难的问题之一是由于复杂的动力学和脉冲的不可微性质导致的训练困难。

为了提升脉冲神经网络的精度,已有一些前人的工作做出了探索,如:

  • Spike timing dependent plasticity (STDP) :无监督学习方法

1 Unsupervised learning of digit recognition using spike-timing-dependent plasticity

  • 添加奖励机制

2 Combining stdp and reward-modulated stdp in deep convolutional spiking neural networks for digit recognition

  • 把预训练好的 ANN 转化为 SNN

3 Spiking deep convolutional neural networks for energy-efficient object recognition
4 Spiking deep residual network
5 Fast-classifying, high-accuracy spiking deep networks through weight and threshold balancing
6 Training spiking deep networks for neuromorphic hardware
7 Conversion of continuous-valued deep networks to efficient event-driven networks for image classification

为了提升 ANN 与 SNN 的兼容性,通常把 bias 去掉,使用 ReLU 激活函数,把 max-pool 换成 average-pool 等。把 ANN 转化成 SNN 时,通常包括 weight/activation normalization,threshold tuning, sampling error compensation 等操作以维持精度。

  • 脉冲神经网络使用 BP 算法训练

8 Hybrid macro/micro level backpropagation for training deep spiking neural networks
9 Training deep spiking neural networks using backpropagation
10 Spatio-temporal backpropagation for training high-performance spiking neural networks
11 Direct training for spiking neural networks: Faster, larger, better

在执行反向传播时,梯度可以沿着空间维度通过聚合脉冲传播,也可以沿着时间和空间2个维度通过计算膜电势的梯度传播。

简而言之,通过上述努力,SNN 在视觉识别任务中的应用精度逐渐接近 ANN。

由于 SNN 缺乏专门的benchmark,许多工作直接使用 ANN 的 benchmark 来验证 SNN 模型。例如,用于 ANN 验证的图像数据集被简单地转换为 Spike 版本,用于 SNN 训练和测试。此外,网络的准确性仍然是主要的评估指标,但众所周知,我们的大脑在绝对识别准确性方面,通常比现有的人工智能机器表现得差。这反映了我们需要更全面和公平的衡量标准来评估和模拟生物大脑工作方式的 SNN。简而言之,由于不适当的评估指标,目前的 SNN 无法击败 ANN。因此,出现了1个开放的问题,即:

如何评估 SNN 是有意义的?

Training spiking deep networks for neuromorphic hardware

这篇文章将预训练好的 ANN 转化成 SNN,在这个工作里面作者考虑到了 SNN 网络的 Efficiency,而不仅仅是 Accuracy。评价一个 SNN 时要从多个角度考量,比如:application accuracy,memory cost, compute cost 。

在以 ANN 主导的评价指标和任务中,相同大小的 SNN 无法打败 ANN。但是在以 SNN 主导的评价指标和任务中,SNN 的表现会更好。

2 脉冲神经网络原理

如下图1所示是ANN 和 SNN 的单个基本神经元。

51c视觉~合集15_视觉AI_39

图1:ANN 和 SNN 的基本神经元

(a) 图是典型的单个 ANN 神经元,ANN 的计算方法是:

式中,  是非线性的激活函数。

 代表上个神经元过来的连续的激活值 (Pre-activation),通过突触 (Synapse) 传递到树突的位置 (Dendrite),并且最终由细胞体 (Soma) 来处理这个激活值 (具体处理方法就是1式)。

ANN 中的神经元使用高精度和连续值编码的激活值进行相互通信,并且只在空间域 (spatial domain,即 layer by layer) 传播信息。从上述方程可以看出,输入和权重的相乘和累加 (MAC) 是网络的主要操作。

(b) 图是典型的单个 SNN 神经元,它的结构与 ANN 神经元相似,但行为不同。脉冲神经元之间的交流通过 binary 的 events,而不是连续的激活值。

 代表上个神经元过来的一个一个的脉冲 (Spike),通过突触 (Synapse) 传递到树突的位置 (Dendrite),并且最终由细胞体 (Soma) 来处理这些脉冲 (具体处理方法就是2式)。

51c视觉~合集15_视觉AI_40

这个式子看起来很麻烦,我们先来理解下每个变量的含义。

式中  代表时间步长,  是常数,  和  代表膜电位和输出峰值。

 和  分别是静息电位和重置电位。

 是第  个输入突触的权重。

 是当第  个输入突触的第  个脉冲在  这个积分时间窗口内激发了 (即状态为1) 的时刻。

 是代表延时效应的核函数。

 是积分时间窗口。

 是个阈值,代表要不要点火 (Fire) 一次。

接下来我们用人话解释一下2式是什么意思:

1 当膜电位  (也就是细胞体 Soma 这个隐含电位) 高于阈值  时,脉冲神经元看做一次点火,此时输出电位  置为1,同时膜电位  回归到重置电位  。


2 当膜电位  (也就是细胞体 Soma 这个隐含电位) 低于阈值  时,不点火,此时输出电位  保持为0。

3 在每个 time step,膜电位  的更新过程满足一个微分方程,即2.1式。

4 在每个 time step,膜电位  值应下降  这么大的值,其中  是静息电位。

5 同时在每个 time step,膜电位  值应上升一个值,这个值来的大小与这个神经元的  个输入突触有关,每个输入突触的权值是  ,这个突触对膜电位上升的贡献值是  ,即在  个脉冲中,如果  时刻的输入脉冲是点火状态 (即1状态),那么计算一次  并累积起来。

与 ANN 不同的是,SNN 使用脉冲的序列来传递信息,每个脉冲神经元都经历着丰富的动态行为。具体而言,除了空间域中的信息传播外,时间域中的过去历史也会对当前状态产生紧密的影响。因此,与主要通过空间传播和连续激活的神经网络相比,神经网络通常具有更多的时间通用性,但精度较低。由于只有当膜电位超过一个阈值时才会激发尖峰信号,因此整个尖峰信号通常很稀疏。此外,由于尖峰值 (Spike) 是二进制的,即0或1,如果积分时间窗口  调整为1,输入和权重之间的乘法运算就可以消除。由于上述原因,与计算量较大的 ANN 网络相比,SNN 网络通常可以获得较低的功耗。

3 脉冲神经网络数据集

这一节介绍下脉冲神经网络的基本数据集。

像 MNIST,CIFAR10 这类基于帧的静态图像,广泛应用于 ANN 中,我们称之为 ANN-oriented dataset,如下图2的前2行所示。

CIFAR-10:32×32×3 RGB image,Training set:50000,Testing set:10000

MNIST:28×28×1 grayscale image,Training set:60000,Testing set:10000

51c视觉~合集15_视觉AI_41

图2:ANN和SNN基本数据集

图2的后2行 N-MNIST 和 DVS-CIFAR10 叫做 SNN-oriented dataset。这里的 DVS 叫做 dynamic vision sensor,代表使用了动态视觉传感器扫描每张 images 得到的 spike 数据。它除了具有与 ANN-oriented dataset 相似的空间信息外,还包含更多的动态时间信息,而且尖峰事件与神经网络中的信号格式自然兼容,因此我们称之为 SNN-oriented dataset。

DVS 产生两个通道的脉冲事件,命名为 On 和Off 事件 (分别如图2中红色和蓝色所示)。因此,DVS 将每个图像转换为  的脉冲模式。

N-MNIST:34×34×2×T spatio-temporal spike pattern,Training set:60000,Testing set:10000

DVS-CIFAR-10:128×128×2×T spatio-temporal spike pattern,Training set:9000,Testing set:1000

一般来说,ANN 接收帧为基础的图像,而 SNN 接收事件驱动的脉冲信号。因此,有时需要将相同的数据转换为另一个域中的不同形式来处理。本文以视觉识别任务为例,主要介绍了四种信号转换方法,如下图3所示。

51c视觉~合集15_视觉AI_42

图3:数据信号转换方法

Image to spike pattern

由图片信号转化为脉冲信号的方法比较直观。

一种方法是:如图3 (a) 所示。 在每一个时间步骤,采样的原始像素强度 (pixel intensity) 到一个二进制值 (通常归一化为[0,1]),其中的这个强度值就等于发射一个脉冲的概率。这个采样样遵循一个特定的概率分布,例如伯努利分布或泊松分布。

例如,图3(a) 中的  神经元,对应于标准化强度为 0.8 的 intensity,产生一个二进制尖峰序列,跟随着伯努利分布  。这里  是取样的时间窗口。

再例如,图3(a) 中的  神经元,对应于标准化强度为 0.1 的 intensity,产生一个二进制尖峰序列,跟随着伯努利分布  。这里  是取样的时间窗口。

这种方法在取样的时间窗口  比较短时有一个较大的精度损失。

另一种方法是: 如图3 (b) 所示。使用一个编码器来产生全局的脉冲信号。这个编码器的每个神经元接受图片多个像素的强度值intensity 信号作为输入, 而产生脉冲作为输出。虽然编码层是 ANN-SNN 混合层,而不是像网络中的其他层那样的完整 SNN 层,但它的权重是可训练的,因为我们的训练方法也是 BP 兼容的。由于神经元的数量可以灵活定制,参数也可以调整,因此它可以适应整体最佳化问题,从而获得更高的精确度。

Spike pattern to image

由脉冲信号转化为图片信号的输出主要有2种:

  1. binary image with 0/1 pixels。
  2. intensity image with real-valued pixels。

如图3(c) 所示,代表把脉冲pattern转化为二值图片。2D 脉冲 pattern 可以直接看做一个二值图像 (每个脉冲 Event 代表像素强度为1,否则像素强度为0)。为了转换为强度图像 (Intensity image),需要在一个时间窗  内随时间对脉冲时间的累积。

如图3(d)所示,代表把脉冲pattern转化为强度图片。描述了100毫秒内脉冲事件的累积过程,累积脉冲数将被归一化为具有适当强度值的像素。由于 DVS 的相对运动和固有噪声,使得图像常常模糊,边缘特征模糊。这种转换只允许一个强大的假设,每个脉冲位置不应该移动,否则将严重损害生成的图像质量。

  • ANN-oriented workloads

ANN-oriented workloads 的含义是目标是识别在 ANN 中经常使用的基于帧的数据集 (如 MNIST 和 CIFAR10)。有3种基准模型:

1 如下图4(a) 所示,最直接的解决办法是 ANN 训练 + ANN 推理。

2 如下图4(b) 所示,这种方案是先在 ANN 数据集上使用 BP 算法训练一个 ANN,再把这个训练好的 ANN 转化成 SNN。这个 SNN 与 ANN 拥有相同的结构,但是不同的神经元。这个 SNN 在推理时使用的是 ANN 数据集转化得到的 SNN-oriented dataset。

3 如下图4(c) 所示,这种方案是直接使用 SNN-oriented dataset 训练一个 SNN,训练方法是 BP-inspired Training。在每个时刻和位置的梯度直接由 spatio-temporal backpropagation (STBP) 方法得到。

51c视觉~合集15_视觉AI_43

图4:ANN-oriented workloads 模型配置

  • SNN-oriented workloads

SNN-oriented workloads 的含义是目标是识别在 SNN 中经常使用的脉冲数据集 (如 N-MNIST 和 DVS-CIFAR10)。有2种基准模型:

1 如下图5(a) 所示,把脉冲数据集转化成图片,即 ANN-oriented dataset,然后使用 BP 算法训练 ANN 并推理。脉冲数据集转化成图片的方法就是图3的 (c)(d) 所示。

2 如下图5(b) 所示,这种方案是直接使用 SNN-oriented dataset 训练一个 SNN,训练方法是 BP-inspired Training。在每个时刻和位置的梯度直接由 spatio-temporal backpropagation (STBP) 方法得到。

51c视觉~合集15_视觉AI_44

图5:SNN-oriented workloads 模型配置

4 脉冲神经网络训练方法

  • ANN 的 BP 训练方法

可以用下式表示:

51c视觉~合集15_视觉AI_45

式中,  是  层的第  个神经元的激活函数的导数。  是损失函数,比如可以是 MSE Loss:  。

  • SNN 的 STBP (时空反向传播) 训练方法

基于的前向模型是2式的 LIF 的 SNN 模型,为了阅读的方便再把2式写一遍。

51c视觉~合集15_视觉AI_46

LIF 模型的迭代版本可以用下式表示:

51c视觉~合集15_视觉AI_47

式中,  代表脉冲输出,  代表 time step,  代表 layer index。  代表膜电位的延迟效应。  是阶跃函数 (step function)。这种迭代的 LIF 模型包含了原始神经元模型中的所有行为,包括集成 (integration),触发 (fire) 和重置 (reset)。

注意,为了简单起见,我们在原来的 LIF 模型中设置了  。给定迭代 LIF 模型,梯度沿着时间和空间维度传播,LIF 模型的迭代版本的参数更新可以按照如下方式进行:

51c视觉~合集15_视觉AI_48

从膜电位  到输出  是个阶跃函数,它是不可导的。为了解决这个问题,有下面这个辅助函数计算输出  到膜电位  的导数值:

式中,参数  决定了梯度宽度。

 是损失函数,比如可以是 MSE Loss:  。

5 脉冲神经网络评价指标

众所周知,基于 SNN 的模型通常无法在绝对识别准确性方面击败当前基于 ANN 的 AI 系统,而真正的大脑在其他指标上表现更好,比如操作效率。然而,在最近的研究中,识别精度仍然是判断哪个模型 (ANN 或 SNN) 更好的主流指标,特别是在算法研究中。这是不公平的,因为 ANN 和 SNN 有非常不同的特点。例如,数据的精度 ANN 比 SNN 更高,这就使得在网络大小相同的情况下,ANN 通常比 SNN 更容易获得更好的识别精度。所有这些都表明模型评估需要更全面的度量。除了通常的精度比较,这里我们进一步介绍了内存和计算成本作为互补的评估指标。

  • 识别精度 (Recognition accuracy)

在 ANN 中,这个精确度意味着正确识别样本的百分比。如果标签类别与模型预测的最大激活值相同,则识别结果对当前样本是正确的。

在 SNN 中,我们首先计算每一个输出神经元的 fire rate,即脉冲率,当然是在给定的时间窗  内。然后取 fire rate 最高的那个神经元作为输出,写成公式就是:

式中,  代表网络的第  层,第  个神经元在第  时刻的输出。

下面介绍的内存花销和计算花销都是指推理过程。原因有2点,一方面, spatio-temporal gradient propagation 相对于推理过程来讲非常复杂。另一方面, 大多数支持 SNN 的神经形态学设备只执行推理阶段 (inference phase)。

  • 内存花销 (Memory cost)

通常,在嵌入式设备上部署模型时,内存占用 (Memory cost) 非常重要。

在 ANN 中,存储器成本包括 权重内存 (weight memory) 和激活值内存 (activation memory)。activation memory 的开销被忽略,但是如果使用查找表来实现的话应该被计算在内。

在 SNN 中,内存成本包括 权重内存 (weight memory),膜电位内存 (membrane potential memory) 和脉冲内存 (spike memory)。其他参数如点火阈值  和时间常数  等可以忽略,因为它们可以被同一层或整个神经网络的所有神经元共享。只有当脉冲触发时,脉冲内存 (spike memory) 开销才会出现。总之,内存开销可以通过下式计算:

式中,  由网络结构决定,而  由每个时间戳最大脉冲数动态地决定。

  • 计算花销 (Compute cost)

计算开销对于运行延迟和能量消耗是至关重要的。

在 ANN 中,计算开销主要由方程中的 MAC 运算决定。

在 SNN 中,主要的计算成本来自脉冲输入的这个积分的过程。与 ANN 有两点不同:

  1. 代价高昂的乘法运算可以省去,如果假设  。此时树突的这个积分运算 (integration,注意看2式) 就变成了  ,成为了一个纯加法运算
  2. 积分是事件驱动的,这意味着如果没有收到脉冲信号就不会进行计算。

计算开销可以通过下式计算:

在细胞体中的计算开销 (例如 ANN 中的激活函数和 SNN 中的膜电位更新和触发活动) 被忽略,这是神经网络设备中的一种常见方式。

注意,在 SNN 中,  与 Spike 事件的总数成正比。