Non-local Network:人类早期在CV驯服Transformer尝试 | CVPR 2018

Non-local操作是早期self-attention在视觉任务上的尝试,核心在于依照相似度加权其它特征对当前特征进行增强,实现方式十分简洁,为后续的很多相关研究提供了参考

来源:晓飞的算法工程笔记 公众号

论文: Non-local Neural Networks

Introduction


  卷积操作通常在局部区域进行特征提取,想要获取范围更广的特征信息需要重复进行卷积操作来获得,这样不仅耗时还增加了训练难度。为此,论文提出高效的non-local操作,将特征图上的特征点表示为所有特征点的加权和,用于捕捉覆盖范围更广的特征信息。non-local操作也可以用于含时序的任务中,如图1的视频分类任务,可综合几帧的特征来增强当前帧的特征。
  non-local操作主要有以下优点:

  • 相对于叠加卷积的操作,non-local可通过特征点间的交互直接捕捉更广的特征信息。
  • 从实验结果来看,简单地嵌入几层non-local操作就能高效地提升网络性能。
  • non-local操作支持可变输入,可很好地与其它网络算子配合。

Non-local Neural Networks


Formulation

  首先定义通用的non-local操作:

i i i为特征图上将要计算特征值的位置坐标, j j j为特征图上的所有位置坐标, x x x为对应位置上的输入特征, y y y为增强后的输出, f f f计算 i i i j j j之间的相似性, g g g则用于对 j j j的特征进行转化, C \mathcal{C} C用于对输出进行归一化。
  简而言之,non-local的核心就是计算当前位置的特征与特征图所有特征间的相似性,然后根据相似性对所有特征加权输出。相对于卷积和全连接等参数固定的操作,non-local更加灵活。

Instantiations

  在实现时,函数 f f f和函数 g g g的选择很多。为了简便,函数 g g g选择为线性变换 g ( x j ) = W g x j g(x_j)=W_gx_j g(xj)=Wgxj W g W_g Wg为可学习的权重矩阵,一般为 1 × 1 1\times 1 1×1的卷积。而函数 f f f则可以有以下选择(论文通过实验发现函数 f f f的具体实现影响不大):

  • Gaussian

x i T x j x^T_i x_j xiTxj为点积相似度,也可采用欧氏距离, C ( x ) = ∑ ∀ j f ( x i , x j ) \mathcal{C}(x)={\sum}_{\forall j}f(x_i, x_j) C(x)=jf(xi,xj),归一化类似于softmax操作。

  • Embedded Gaussian

θ ( x i ) = W θ x i \theta(x_i)=W_{\theta}x_i θ(xi)=Wθxi ϕ ( x j ) = W ϕ x j \phi(x_j)=W_{\phi}x_j ϕ(xj)=Wϕxj为两个线性变换, C ( x ) = ∑ ∀ j f ( x i , x j ) \mathcal{C}(x)={\sum}_{\forall j}f(x_i, x_j) C(x)=jf(xi,xj),这个实现与self-attention十分接近。

  • Dot product

  先线性变换,然后通过点积计算相似度, C ( x ) = N \mathcal{C}(x)=N C(x)=N,有助于简化梯度计算。

  • Concatenation

  直接将特征conate起来,通过权重向量 w f T w^T_f wfT转化为标量输出, C ( x ) = N \mathcal{C}(x)=N C(x)=N

Non-local Block

  将公式1的non-local操作修改成non-local block,可插入到当前的网络架构中,non-local block的定义为:

  公式6将non-local操作的输出线性变换后与原特征进行相加,类似于residual block的嵌入方式。

  non-local block的一种实现方式如图2所示,首先对 x x x进行3种不同的线性变换,然后按照公式1得到输出特征,再与原特征进行相加,基本上跟self-attention是一样的。

Experiment


  各种对比实验,表2a为函数 f f f的实现对比,可以看到影响不是很大。

  视频分类对比。

  COCO上的分割、检测、关键点对比。

Conclusion


  Non-local操作是早期self-attention在视觉任务上的尝试,核心在于依照相似度加权其它特征对当前特征进行增强,实现方式十分简洁,为后续的很多相关研究提供了参考。



如果本文对你有帮助,麻烦点个赞或在看呗~
更多内容请关注 微信公众号【晓飞的算法工程笔记】

work-life balance.

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: tph-yolov5是一种基于Transformer预测头的改进版yolov5,用于在无人机捕捉场景中进行目标检测。它采用了Transformer网络结构,能够更好地处理长序列数据,提高了检测精度和速度。在无人机应用中,tph-yolov5可以更好地适应复杂的场景和光照条件,提高了无人机的自主飞行和目标跟踪能力。 ### 回答2: tph-yolov5是一种改进版的yolov5目标检测算法,主要应用于无人机场景下的目标检测。与传统的yolov5相比,tph-yolov5采用了transformer prediction head技术来进一步提高检测的准确率和效率。 无人机场景下的目标检测任务比较特殊,因为无人机拍摄的图像往往具有良好的视角和高度,但是环境复杂多变且目标出现频率较低,因此传统的目标检测算法可能会遇到一些困难,例如漏检、错检等问题。而tph-yolov5算法在transformer prediction head帮助下,能够更好地解决这些问题。 具体来说,tph-yolov5算法的优势在于如下三个方面: 1. Transformer Prediction Head技术 tph-yolov5采用transformer prediction head技术来生成目标检测的预测结果。相比传统的卷积神经网络,transformer prediction head能够更好地捕捉物体之间的关系,并且在计算量相同的情况下,能够获得更高的准确率。 2. 自适应感受野 在tph-yolov5算法中,网络会根据目标的大小和位置自适应地调整感受野的大小,这样可以更好地捕捉目标的细节,提高检测的准确率。 3. 融合多尺度特征 tph-yolov5算法融合了多尺度特征,这样可以更好地处理远距离目标和近距离目标的检测。在无人机场景下的目标检测任务中,这一点尤其重要,因为有些目标可能会比较小或者比较远。 总之,tph-yolov5是一种非常优秀的目标检测算法,它在无人机场景下的目标检测任务中表现很出色。由于采用了transformer prediction head技术等优秀的方法,它能够更准确地捕捉目标,同时也能够更快地处理大量的数据。由于无人机技术的快速发展,相信tph-yolov5算法将在未来得到更广泛的应用。 ### 回答3: tph-yolov5是一种改进的基于transformer预测头的yolov5,用于在无人机捕获的场景中进行物体检测。无人机拍摄的场景与传统的场景有很大不同,比如拍摄的视角更高,场景更广阔,物体更稀疏。这些因素导致传统的物体检测模型难以在无人机场景中准确地检测物体。因此,tph-yolov5的提出是为了解决这些问题。 tph-yolov5使用了transformer预测头来改进yolov5模型的表现。具体来说,transformer模型用于生成特征图中的位置嵌入,以在后续的特征映射中对不同位置的特定位置进行建模。这种方法可以更准确地定位每个目标的位置,特别是在稀疏目标场景中。此外,tph-yolov5还使用了引入MSELoss和IoULoss的CAP L1损失以增强模型的稳定性和准确性。 tph-yolov5的实验结果表明,在无人机拍摄的场景中,tph-yolov5相比于基准模型yolov5和其他物体检测模型,具有更高的准确性和稳定性。这些结果证明了transformer预测头的优越性以及CAP L1损失对模型表现的关键作用,这为无人机场景中物体检测的发展提供了新的思路和方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值