深層距離学習(EfficientNet+ArcFace+Ann)
サマリ
参加コンペ
結果
- 38位/投稿89組中(参加628人)
- 最終スコア0.163424(1位0.734111)
リファレンス
- Shopee – Price Match Guarantee | Kaggle
- 深層距離学習(ArcFace)とは
- ArcFace Explained | Kaggle
- ArcFaceの例
- Pytorch Metric Learning Pipeline : Only Images | Kaggle
- tutorialのtrain.pyの参考コード
- Metric Learning : Image + TFIDF Inference | Kaggle
- tutorialのtest.pyの参考コード
- ArcFace Explained | Kaggle
- ArcMarginProduct(ArcFace)のサンプルコード
- GitHub – lukemelas/EfficientNet-PyTorch: A PyTorch implementation of EfficientNet and EfficientNetV2 (coming soon!)
- EfficientNet
- EfficientNetB0~B7のデフォルトのinput_shapeの解像度 | cocoinit23
- B0~B7のどれか決める。入力画像を224にしたのでB0を選択
- https://pytorch.org/tutorials/beginner/finetuning_torchvision_models_tutorial.html
- ファインチューニング
- https://github.com/lyakaap/Landmark2019-1st-and-3rd-Place-Solution/blob/master/src/modeling/metric_learning.py
- ArcFace(ArcMarginProduct)のソースコード
コンペ概要
タスク
- 申請のあった商標画像の類似画像のピックアップ
- 登録されている商標画像は約90万件(コンペでは85万件)
- 1申請画像につき、20件まで類似画像をピックアップし、正解率を競う。
ルール
- gid・・申請ID
- 4,000件ぐらい
- trainとtestで約2:1
- citeid・・登録商標ID
- 85万件
- gidごとにciteid20件までピックアップ
- その中に正解があればOK
- チーム参加OK。
実装
- チュートリアルとして提供されたコードを使った
考え方
- すべての画像citeidの特徴量マップ(feature map)を作成
- 申請画像gidの特徴量マップを取得
- ANNを使って特徴量が近いものを類似画像として抽出
利用モデル
- EfficientNet+ArcFace
- YOLOv5
- ANN
結果考察
- 正解率は0.16程度と低いわりに、手ごたえは十分
- 見た目に明らかに類似画像がピックされていた
- 酷似のものはほぼ抽出できたような気がする
- 部分一致や文字が十分に除去できなかった画像について、正解率が上がらなかったと思う
- 前処理の精度が成功のカギになったのではないか
- 上位者のsolutionを見ると「Swin Transformer」を利用とあった
- 最新論文を技術を実装、利用できるようにすることも、上位に食い込むには必要か
