因为代码偏弱,我迫切想要针对图像识别各个模块进行进步,kaggle是一个很好的学习代码比赛,里面会分享很多参赛者的思路,甚至有机会可能学习到其代码和具体实现方法!!!
这周学习的内容,我同样找到了一个农作物的识别比赛,上面针对医学识别和农作物识别还是挺多的,在这里我将记录一下作者的一些想法,方便我后期的学习和使用。
Backbones:(最近针对图像的swin模型确实很好,有很大的发展空间!!!)
(粗体是我要看的模型)
好像大多数都是从训练策略上进行调整
id | backbone | public | private |
---|---|---|---|
0 | swin-B | 0.85499 | 0.86055 |
1 | convnext-B | 0.85464 | 0.85956 |
2 | deit-iii B | 0.84423 | 0.8495 |
3 | resnest-101 | 0.83208 | 0.83838 |
4 | efficient-B6 | 0.83841 | 0.84321 |
5 | cswin-L | 0.84373 | 0.8501 |
6 | swin-L | 0.85057 | 0.85607 |
7 | swinv2-B | 0.85851 | 0.86282 |
单个模型上面的优化
change | public | private |
---|---|---|
swin-B 224 baseline | 0.77223 | 0.78442 |
add cross-entropy losses on genera,species, family 交叉熵loss添加 | 0.7829 | 0.79544 |
learning rate from 2e-4 to 5e-4 学习率的变化 | 0.79444 | 0.80501 |
+5crop (resize 256, 288, 320, 384, 448 and center crop 224) 调节图像大小和中心裁剪 | 0.80088 | 0.80981 |
replacing cross-entropy by subcenter-arcface with dynamic margins 用subcenter-arcface代替cross-entropy loss | 0.81532 | 0.82267 |
+ extra fc by cross-entropy, add to subcenter-arcface output after softmax fc使用交叉熵,softmax之后使用arcface输出 | 0.82201 | 0.82929 |
+ data augmentation the same with Swin-Transformer 数据增强 | 0.8315 | 0.83554 |
from swin-B224 to SwinB384 改变模型 | 0.8468 | 0.85245 |
+5crop (resize 400, 416, 448, 480, 512 and center crop 384) 调节图像大小和中心裁剪 | 0.84895 | 0.85654 |
+Freeze layers (not update parameters) from 100 to 0 将层(不更新参数)从 100 冻结到 0,应该就是都改变 | 0.85499 | 0.86055 |
+square resize and test crop from 384 从 384 调整大小并测试裁剪 | 0.85563 | 0.86201 |
+from swin base to swin V2 改变模型到V2 | 0.85851 | 0.86282 |
Fusion:
we utilize the scores on public dataset as the weight.
这边的话就是增加公共数据集来提高精度
fusion approach | public | private |
---|---|---|
fusion models (0,1,2) | 0.86366 | 0.8679 |
fusion models (0,1,2,3,4) | 0.86619 | 0.87185 |
fusion models (0,1,2,3,4,5,6,7) | 0.87193 | 0.87662 |