Batch DropBlock Network for Person Re-identification and Beyond论文阅读
动机:
依旧是一篇基于part-based的re-id论文,但与其他相比不同的是,这篇文章没有正面提取local 信息,而是从侧面通过结合随机mask有效信息强化对local特征的学习。
创新:
- Batch DropBlock,这个思路和Random Erasing如出一辙,只不过Random Erasing在图像层面,而Batch DropBlock在特征层面。既然原理相似,那只要把Random Erasing对于图片层面的说辞换成特征层面就行了。
- Batch DropBlock, 顾名思义, 就是对一个batch的特征加入DropBlock。DropBlock是Google之前提出的Dropout系列的一个正则化的模块,这个在SONA网络中有用到。
这样一个batch的所有特征的同一区域都加入了mask对于这几个Drop操作,作者也很贴心画了图,一目了然: - 作者举了一个例子也很好,如果对一个batch内的样本的特征随机打mask,如果anchor和neg样本头部打了mask,pos样本在脚打了mask,那么在Triplet loss的时候,损失函数将无法将这些local特征一一对应。
- 参数设置,,即纵向占比0.3,横向占比为1,至于位置则是随机的。
框架:
- 框架结构:单一分支
- 特征:使用Global Max Pooling和Global Average Polling后的特征进行学习。其中,Global Max Pooling的特征加入了Batch DropBlock模块,期望可以更好学习到local特征。
- 损失函数:CE loss+ BH triplet loss
- backbone:resnet50 使用last-stride = 1
实验:
这个实验对比了cutout和random erasing对于结果的提升,看样子cutout要优于random erasing。
之前我也以为这两个方法是一样的,只不过叫法不同,查资料后原来还是有差别的。
方法 | cutout | random erasing |
---|---|---|
选择区域大小 | 固定 | 随机 |
填充像素 | 0(可理解为"裁掉") | 图像平均值/随机点 |
在除了market上的结果都很好。
疑惑:
我的疑问在RE,Cutout的对比试验,如果作者不使用cutout而使用BDB+RE,那不就是可以理解为是Bag of trick的baseline+Batch DropBlock分支。但是加入后market上效果从94.5掉到了94.4,这样看样子效果甚至不如不加。转念一想,那这篇文章的亮点我感觉是cutout而不是DropBlock啊。。。