Fast—ReID使用的各种技巧解析

fast-reid现有的训练策略

目录

1. 数据预处理

2.Backbone

3.Aggregation

4.Head

 5.loss

6.训练策略

7.自己的试验


Fast—ReID使用的各种技巧解析_第1张图片

1. 数据预处理

flip(镜像),Random erasing,Random patch,Cutout,Auto-augment

Random erasing:在不同的epoch中在原始图像中去除一个预先定义大小范围的矩形块,这个大小范围为原图的高宽的1/6~1/2之间;

Random patch:随机补丁(Random patch)和随机擦除操作类似,不同的是是通过从其他的图像来对矩形块(补丁)进行填充;

Cutout:该操作则是把原始图像中去掉的矩形块的位置用0来进行填充;三者对比参考下图;

Fast—ReID使用的各种技巧解析_第2张图片

Auto-augment:源自《AutoAugment: Learning Augmentation Strategies from Data》

2.Backbone

ResNet,ResNeXt,ResNeSt,增加attention-like non-local module,instance batch normalization(IBN)module在主干中;

什么是IBN?

IBN是由Instance Normalization(IN)和Batch Normalization构成,有增强学习和泛化能力的作用;IN常用于风格迁移任务中,BN和IN的区别在于BN用的mean和variance是从一个batch中所有的图片统计的,而IN的mean和variance是从单张图片中统计的;

其中γ和β对于每个channel都是不同的;直白而言,IN是每张图片在每个channel都进行normalization;而BN是当前的channel,该batch中所有图片一起进行normalization;

IBN原论文链接:https://arxiv.org/pdf/1807.09441.pdf 

IN和BN的区别:Batch normalization和Instance normalization的对比_吃了亏还皮的博客-CSDN博客_instance normalization

什么是attention-like non-local module?

convolution和recurrent都是对局部区域进行的操作,所以它们是典型的local operations;non-local operations用于捕获长距离依赖(long-range dependencies),即如何建立图像上两个有一定距离的像素之间的联系,如何建立视频里两帧的联系,如何建立一段话中不同词的联系等。

——《Non-local Neural Networks》

论文链接:https://arxiv.org/pdf/1711.07971v1.pdf

3.Aggregation

max pooling,average pooling, GeM pooling和attention pooling.

Fast—ReID使用的各种技巧解析_第3张图片

4.Head

batch normalization(BN)head(bn层+一个决策层), Linear head(只有一个决策层(decision layer))和Reduction head(conv+bn+relu+dropout).

Fast—ReID使用的各种技巧解析_第4张图片

 5.loss

交叉熵loss(cross-entropy loss),Arcface loss,Circle loss,Triplet loss

6.训练策略

Learning rate warm-up,Backbone freeze

Fast—ReID使用的各种技巧解析_第5张图片

fast-reid源码中交叉熵损失默认使用的label smoothing,调整参数可以使用自适应的标签平滑;

7.自己的试验

自己也针对其中的一些策略做了对比试验,发现是有明显的涨点效果(在行李箱reid数据上)做的实验对比:

Fast—ReID使用的各种技巧解析_第6张图片

 Fast—ReID使用的各种技巧解析_第7张图片

 第一次的测试结果:

 第二次测试结果:

第四次测试结果:

你可能感兴趣的:(reid,fast-reid,训练策略)