工作之余参加了一下关于细粒度分类方面的比赛,就个人而言是第一次完整的参加比较大型比赛,虽结果不完美,但收货良多,故复盘总结。
细粒度与粗粒度gap
case展示
数据分析是无论是做比赛还是做项目都是非常重要的一个环节,对数据做可视化和量化对于后续的模型优化走向很有帮助,为此我们做了几个简单的分析如下:
噪声数据
数据分布
为了先获取一些细粒度对应的baseline,先在cub-200-2011数据集上训练了几个模型(毕竟我没卡TT):
cub-baseline
有了上面的一个初步的结论,我先尝试了cub的数据增强方法,迁移到accv的数据上,在r50-448上得到了一个初步的结果,大概是42左右(小数点不记得了TT),然后有了下面的一系列的调参的工作:
最终,r50 baseline一顿操作以后达到了47-48这样的一个水平,有效的方法迁移到其他的模型。
有了上面的一些数据分析和模型经验,排了一个优化方向的优先级以及一些实验:
检索图片
concat
bilinear
清洗后的数据分布
中后期我还是top-3左右,后面就被大佬们刷测试集给刷没影了,时间,人力还有机器对于结果的导向是显而易见的,预估一下最后的排名大概15名前后吧。不过相比于结果,过程更加重要,在不耽误正常工作的情况下,参加这个比赛,还是锻炼了自己的“炼丹水平”,也对部分知识进行了扩展性学习,受益匪浅。
最后附上训练代码的https://github.com/FlyEgle/cub_baseline,欢迎大家交流和指教,有打比赛的也可以找我~。
欢迎关注GiantPandaCV, 在这里你将看到独家的深度学习分享,坚持原创,每天分享我们学习到的新鲜知识。( • ̀ω•́ )✧