24. 7th Solution
23
• SE-ResNeXt-50 -> global concat (max, avg) pool -> BN ->
Dropout -> Linear -> ReLU -> BN -> Dropout -> clf (5004)
• 4 head classification
• use bbox
• center loss, ring loss, GeM pooling
• verification by local features (Hessian-AffNet + HardNet)
https://github.com/ducha-aiki/mods-light-zmq
• バックボーンは、色々試したが、チームメイトの距離学習を行った
ネットワーク(SE-ResNeXt-50)をfinetuneするのが良かった
• new_whale is inserted to softmaxed predictions with constant
threshold, which is set on validation set by bruteforce search in
range from 0 to 0.95.
https://www.kaggle.com/c/humpback-whale-identification/discussion/82352
https://github.com/ducha-aiki/whale-identification-2018
距離学習のようなことをしているのでsoftmax閾値でもいけた?
28. 10th Solution
27
(SiameseNet part)
• Summary
– Siamese architecture
– Metric learning featuring brand-new CVPR 2019 method
(will be published soon)
– Classification on features
– Large blend for new whale/not new whale binary classification
• Tricks
– Flip augmentation for both positive and negative pairs
– ResNet-18, ResNet-34, SE-ResNeXt-50, ResNet-50,
image size: 299->384->512
– 0.929 LB -> ensemble 0.940
https://www.kaggle.com/c/humpback-whale-identification/discussion/82430
29. 10th Solution
28
(Metric learning part)Another solution will be explained later in
detail by @asanakoy. In two words, it is metric learning with
multiple branches and margin loss, trained on multiple resolution
crops using bboxes, grayscale and RGB input images. He also used
his brand-new method from CVPR which allowed for 1-2% score
boost. らしい
(Classification part)concat features from branch models and
train classifcation model
(Post processing)took their TOP-4 predictions for each whale.
Then, for all of our models, we took their predictions on these set
of classes. We used a blend of LogReg, SVM, several KNN models,
and LightGBM to solve a binary classification problem.
https://www.kaggle.com/c/humpback-whale-identification/discussion/82430
30. 15th Solution
29
• At the beginning, we using pure softmax to classification 5005
class. The best result we obtain is around 0.86X using
seresnext50.
• Then we resort to sphereface. To use sphereface, we abandon
new whales, which means we only use around 19K images. This
gives us 0.920 using seresnext-50 (multi-layer fusion, 384384),
0.919 using resnext50 (multi-layer fusion,384384).
• We also tried arcface, which gives us 0.911 using seresnext-50
(multi-layer fusion, 384*384).
https://www.kaggle.com/c/humpback-whale-identification/discussion/82361
31. My Solution①
30
• 768x256🐳(BBOX), resnext101_32x4d backbone, ArcFace
• known🐳のみ、訓練時はduplicate🐳IDを1つにまとめる
• 10枚以下の画像の🐳は10枚以上になるようにover sampling
• Augmentation: grayscale, Gaussian noise, Gaussian blur,
rotation, shear, piecewise affine, color shift, contrast, crop
• train🐳 vs. test🐳のcos類似度を同一IDに対して平均
768x256
24x8
6x2
24576
bn,
avepool(4)
flatten,
dropout
512
FC
5004
FC
ArcFace
cross
entropyResNeXt101
Feature vector
private LB: 0.92239
public LB: 0.91156
NO VALIDATION SET ;D
due to time constraint