Omni-Scale Feature Learning
Methods
OSNet用于站们学习行人重识别任务的全尺度特征表示。该章节从深度可分离卷积开始,然后引入omni-scale residual block和unified aggregation gate。
深度可分离卷积(DWConv)
目的
减少参数量,降低计算成本
方法
将卷积分为深度卷积和逐点卷积。
本文实验表明对于 Omni-scale feature learning先逐点卷积再深度卷积效果比先深度卷积再逐点卷积好
Link|对比
Run, Don’t Walk: Chasing Higher FLOPS for Faster Neural Networks [CVPR 2023]->提出了替代 DWConv 的卷积方式,命名为 Partial 卷积
备注
该模块被命名为 Lite 3X3
Omni-Scale Residual Block
Baseline bottleneck:
\begin{align}&y=x+\tilde x \&s.t.\tilde x =F(x)\end{align}
F: Lite 3X3 学习 scale=3 的单尺度特征。
备注
前后的 1*1Layer只用于修改维度,对空间信息的聚合没有帮助。
Multi-scale feature learning
目的
实现多尺度特征学习
方法
引入维度指数 t,对于残差函数 F,t 维度就堆叠 t 个Lite 3X3->产生大小为(2t+1)*(2t+1)的感受野。
学习的残差变为
\begin{align}\tilde x=\sum^T_{t=1}F^t(x),\quad s.t. T\ge 1\end{align}
OSNet 设置最大 t =4,感受野为 9*9
Unified aggregation gate
目的
更好的学习不同尺度的特征
方法
通过 Unified aggregation gate以动态的方式组合不同流的特征
\begin{align}
&\tilde x = \sum^T{t=1}G(x^t)\odot x^t,\
s.t.&x^t\triangleq F^t(x)
\end{align}
G(x^t)是长度跨越x^t整个通道维度的向量,\odot是点乘
在代码中,用一个迷你网络实现 G,由非参数平均池化层,带有一个 ReLU 激活隐藏层的多层感知器和一个 sigmoid 组成
这里提到了根据另外两篇文章将比率设为 16 来减少 MLP 隐藏维度
权重是根据输入数据动态计算的。这对于Re-ID至关重要,因为测试图像包含与训练中身份不同的人;因此,更需要自适应/输入相关的特征尺度融合策略。
Aggregation Gate 在所有 feature stream中共享,由此带来的损失函数为
\begin{align} \frac{\partial\mathrm L}{\partial G}=\frac{\partial L}{\partial\tilde x}\frac{\partial\tilde x}{\partial G}=\frac{\partial L}{\partial\tilde x} (\sum^T{t=1}x^t) \end{align}