来源: ICCV 2019
代码: https://github.com/ KaiyangZhou/deep-person-reid
Introduction
instance-level 行人重识别面临两个主要挑战:1.类内表观变换由于视角条件变化导致差异性较大;2.类间差距往往由于相似衣物导致易混淆。
解决这两个问题的关键在于提取更强的鉴别特征。
本文提出的OSNet融合了homogeneous尺度和heterogeneous尺度的特征以提升鉴别性。
homogeneous 是指相同尺度不同位置的特征, heterogeneous是指不同尺度的特征。
本文的主要贡献点三点:
- 提出多种不同感受野大小特征的融合实现hemerogeneous特征的融合,融合过程采用了一种Aggregation gate的模块(一种channel的attention模块)
- 采用pointwise和depth-wise操作拆分传统的卷积减少参数量和运算量。
- 基于以上两点,提出了OSNet结构,在多种任务上都能够以较小的参数量获得至少可比的性能。
Approach
Depthwise Separable Convolutions (Lite )
将传统的拆分成(这里文章的维度应该是写错了,depth-wise操作应该是每个channel上操作,不可能是的操作量),方法先进行的维度操作,而非depth-wise操作是因为作者认为输入的维度一般比维度变换后的维度要高,若先进性depth-wise操作会增大计算量。
Omni-scale Residual Block
residual block说明该模块有着resnet的影子,都存在跨层连接。上图(a)是最基本的结构,可以发现和ResNet的残差结构差别仅在于将传统的卷积模块替换成了Lite 模块;上图(b)是将不同的感受野,即不同hemerogeneous尺度特征进行融合。不同感受野的实现可以通过堆叠Lite 模块实现,其输出在输入map上感受野大小为, 为堆叠的次数。不同感受野的特征融合不是采用一般的combination或者addition的方式,而是提出了aggregation gate的结构,该结构是一种channel attention结构,由堆叠的Lite输出确定该branch中channel的attention后进行addition操作。 Aggregation gate(AG)的结构由GAP,一层ReLU激活的隐层以及输出Sigmoid激活的MLP组成,是channel上的attention向量。所有分支上的AG共享参数。共享参数的优势包括: 1.AG的参数量和T无关, 2.所有的分支反向传导过程都作用在AG上。。。(这个解释有点不知所云,这是现象不是原因好吧。。。这也不能说明就是优势啊)
网络结构
训练时加上一层fc层和softmax层,使用交叉熵损失进行训练。
实验
从scratch开始训练时训练了350个epoch,学习率从0.065在150, 225, 300分别下降0.1倍(感觉这个初始学习率的设计也是trick)。 图像增强包括随机翻转,随机crop,随机patch(随机patch是指随机选择patch使用set中的patch随机取代)。
-
SOTA对比,性能确实很不错,而且参数量小很多
-
Ablation study
model 1: T=4, AG, 传统的conv
model 2: T=4, AG, depth-wise的conv, 也是本文的完整方法
model 3:
model 4: 融合的方式不是AG,而采用concatenation方式
model 5: 融合的方式采用addition方式
model 6: 不同分支上的AG相互独立
model 7: AG不是用来channel上操作,而是所有通道同一个权重
model 8: AG与输入独立,而是有训练集学习后固定的
model 9: T=1, 此时没使用AG,发现性能差很多(就是resnet的conv变化)
model 10, 11: T=2, T=3, 在采用AG后的性能。
实验还对比了一些其他任务,此处不再赘述,参考原论文。
补充材料里的一些结论。
- 使用特定数据集的均值和方差,其实和采用imagenet的均值和方差差别不大,但建议两者都试试。
- 大的输入分辨率对于OsNet提升不大,因为OSNet本身考虑了不同尺度感受野的融合。
- DML(deep mutual learning)特征融合能轻量提升性能。
- 采用triplet loss能提升性能,但是triplet loss的权重需要仔细调节,一般采用分类损失就能得到较好的结果。
5。最好的行嗯来自于 原模型+triplet loss+DML model 1+DML model 2
结论
本文提出了一种类似inceptionnet的不同感受野特征通过channel attention融合的方式,另外使用point-wise depth-wise操作拆分传统的conv操作,大大降低了了参数量,并且在多种任务上性能都较好。给我的启发是目前的模型发展并不一定非追求越大越好,已有的模型结构的能力还有很大可挖掘的地方,包括各种attention的利用,因为从FC到conv,参数量跳变太大,而attention的应用其实相当于对其进行了折衷。