This is the 1st Place Solution for Webly-supervised Fine-grained Recognition, refer to the ACCV workshop competition in https://www.cvmart.net/race/10412/base.
Mainly done by Ezra-Yu, Yuan Liu and Songyang Zhang, base on MMClassifiion 与 MMSelfSup. please flork and star them if you think they are useful.
Lecture and slide are available.
Tricks (AdaptiveSubCenterArcFace
, EQL_Loss
, Post-Hoc_LT_Adjusment
, Uniform_Model_Soup
) have been or will be implemented in MMClassifiion.
复现精度请点击这里
- ViT(MAE-pt) # 自己预训练
- Swin(21kpt) # 来自MMCls-swin_transformer_v2.
Archs
- ViT + CE-loss + post-LongTail-Adjusment
- ViT + SubCenterArcFaceWithAdvMargin(CE)
- Swin-B + SubCenterArcFaceWithAdvMargin(SoftMax-EQL)
- Swin-L + SubCenterArcFaceWithAdvMargin(SoftMAx-EQL)
所有都使用了 Flip TTA。
MIM 预训练 --> 训练 --> 清洗数据 --> fine-tune + 集成 + 生成伪标签交替训练 --> 后处理
- MAE 预训练
- Swin 与 ViT 的训练
- 使用权重做数据清洗
- 训练 -> 制作伪标签,放回训练集中 -> 再训练; (testa3轮)
- 训练 -> 制作伪标签,放回训练集中 -> 再训练; (testb3轮,包括testa的伪标签)
- 模型融合,调整预测的标签分布,提交
- MAE | Config
- Swinv2 | Config
- ArcFace | Code
- SubCenterArcFaceWithAdvMargin | Code
- Post-LT-adjusment | Code
- SoftMaxEQL | Code
- FlipTTA | Code
- 数据清洗
- 模型融合: Uniform-model-soup | code
- 半监督 | Code
- 自适应集成 Code,
- 后处理: 调整预测分布;
- 使用检索以及检索分类混合的方式
- 使用EfficientNet
- DiVE 蒸馏提升长尾问题表现
- Simim 训一个 swinv2 的预训练模型
- 优化 re-distribute-label