Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Nishika 日本酒銘柄画像検索コンペ 参戦記(備忘録)

Avatar for U-Bex U-Bex
March 31, 2026
160

Nishika 日本酒銘柄画像検索コンペ 参戦記(備忘録)

Nishikaで2023年に開催された日本酒銘柄画像検索コンペの備忘録です。
https://competition.nishika.com/competitions/sake/summary

Avatar for U-Bex

U-Bex

March 31, 2026

Transcript

  1. Summary • Nishika主催の「日本酒銘柄画像検索」コンペに参加し、最終7位(金メダル)!  サイト:日本酒銘柄画像検索 | Nishika  タスク概要:日本酒の画像から画像検索により、同一ブランドの日本酒を特定する 

    開催期間:2023/6/23~2023/9/15  参加形態:チームで参加。私がメインでサブ8割ほど取り組み。  結果:7位 /120で金メダル獲得(10位までが金圏) • 自チームの解法:  基本アプローチ:ConvNextをbackboneモデルとして距離学習ArcFace+GeM poolingで学習し、 複数モデルの特徴量を連結して近似最近傍探索によって類似画像検索  精度向上のポイント:主に以下の3点 ① ボトル検出の前処理, ②解像度ぶりの複数モデルアンサンブル, ③複数ボトルあるテスト画像への後処理 • コンペを通しての所感:  LB上位は非常にアクティブかつ実力者も多くおり、活気あるコンペだった! ユーザー同士・運営間もコミュニケーション多くてやりやすく、良いコンペでした  過去参加して結果が出せてなかった類似検索系のコンペ知見を応用・実践し、結果につながってよかった  データが如何に大事か改めて実感。お題の画像が実サービスの煩雑なものだったのも良い実践に近い体験だった
  2. コンペ概要  提供データ:  評価指標: • タスクについて • Train:訓練用。約10万件。各画像にブランドラベルあり •

    Cite:引用用。約10万件。画像のみ。 • Test:評価用。約3千件。画像のみ。 今回のタスクはTestの各画像に対して同一ブランドと予測されたCite(引用画像)のidを予測する
  3. ①前処理データセット (1/2) 1. Deticによる検出後にビンを指定して疑似ラベル作成 2. ビンが1本のみ写っている画像のみを選定(複数本検出は誤検出の可能性が高いため) 3. Yolov7で学習(Mosaic Augmentationを入れることで複数本への対応) 検出あり

    検出なし total 1個 複数個 Train 100755 6864 541 108160 test 2737 175 30 2942 cite 102072 6892 517 109481 Finetuned Yolov7 検出結果 This part Main contributed by @sugupoko! まずは以下のようなアプローチでボトル検出モデルを作成
  4. Pre-processed Dataset (Detected only 1 bottle image by fine-tuned yolov7)

    Original Dataset Score1 Score2 Score1 > Score2 検出0はそのまま 検出1は検出した領域のみ 検出2~は検出スコアが高い検出領域のみ 複数本検出されている場合はscoreが高いものを採用する 瓶以外の誤検出はscore低いので概ね回避でき、 また、瓶でも中心以外はscore低く、多くの画像は中心のものが対象ラベルになっていたのでこのルールを採用 検出数が0の画像はそのまま使用し、 検出数が複数本の画像は検出スコアの高い1本のみを切り抜いたデータセットを作成 ①前処理データセット (2/2)
  5. ②複数解像度モデルアンサンブル ② 過去の類似画像探索系のコンペを参考に以下を実行 • 入力解像度ぶり • Embedding(特徴ベクトル)での連結によるモデルアンサンブル • 参考にした類似画像検索コンペ •

    HappyWhale( https://www.kaggle.com/competitions/happy-whale-and-dolphin/overview ) • AIx商標:イメージサーチコンペティション( https://competition.nishika.com/competitions/patent/summary ) • Google landmark2021( https://www.kaggle.com/c/landmark-recognition-2021 )
  6. ③複数ボトルあるテスト画像に対する後処理(1/2) テストデータ Pre-processed Dataset Original Dataset 複数本ある画像については、前処理データ セットで1本分しか推論できていない 全体画像の貢献で や

    を 予測候補にカバーできていたら嬉しいが そうはなっていなそうだった・・・ <後処理を入れようと思った経緯> 後処理を入れる前まででは検出した1本のみを推論。複数本あるものについては前処理をかけていない OriginalDatasetのアンサンブルでカバーされることを期待していたが、期待する結果は得られなかった。
  7. ③複数ボトルあるテスト画像に対する後処理 Pre-processed Dataset Original Dataset Top 1 result candidate Top

    1 result candidate 候補20件 1:画像idxxx 2:画像idyyy 3:画像idzzz 4:画像idwww : 20:画像idkkk Top 20 results candidate 1:画像idaaa 1:画像idbbb 候補20件 1:画像idxxx 2:画像idaaa 3:画像idbbb 4:画像idyyy 5:画像idzzz 6:画像idwww : 20:画像idjjj Top 20 Final results 複数ボトルを検出したtest画像については、検出したすべてのボトル候補を、別途推論させ、Top1の類似検索結果を 取得し、アンサンブル予測結果のTop20の2位以降。 これにより、LBで0.001ほど精度改善。
  8. 実験結果のまとめ (Public/Private) No. model(Dataset, Image size) Public Private 1 ConvNext_base

    (Pre-processed, 512x512) 0.707686 0.680452 2 ConvNext_base (Pre-processed, 768x768) 0.709843 0.691290 3 ConvNext_base (Original, 512x512) 0.712661 0.684281 4 ConvNext_base (Original, 768x768) 0.722188 0.698648 5 ConvNext_base (Original, 1024x1024) 0.721854 0.707085 6 ConvNext_base (Original, 1536x1536) 0.715547 0.694804 7 ensemble 1~6 0.755150 0.736487 8 7+ Post-processing 0.756098 0.738466 後処理追加で+0.001 Publicでは順位変動はなかったが、Privateではこれがなかったら8位だった・・・! おかげでPublic/Privateともに7位でFinish
  9. 上位解法と自チームとの共通部分と差異部分  前処理 • (共通)物体検出によるクロップ処理 ⇒ 7位以上は何かしらの手段でクロップ処理をしたデータを用いていました • (差異)さらに上位は入念なEDAによるルール処理・クレンジングを実施 

    1位のチームの解法解説より ラベルミスや表記ゆれに対するデータクレンジング 労力の割にそこまで精度貢献は大きくなかったそうだが、ここまで行えるのはまさにデータサイエンティスト  2位のチームの解法解説より 頻出するボトルに対する検出クラスの採用 / 画像面積による選択 既存モデルの検出性能を活かすためにEDAで瓶に対する検出クラスと大きさによるルールカバー 3位の方も類似する方法を取ってました [Nishika] 日本酒銘柄画像検索 振り返り会 - connpass https://youtube.com/live/_VTVnU9_Mqo?feature=share  上位解法についてはNishikaさん主催での振り返り会より
  10. 上位解法と自チームとの共通部分と差異部分  モデル/アンサンブル • (共通)距離学習を採用し、複数解像度のモデルのアンサンブル ⇒ 1024以上使用していたのは自チームだけっぽい • (差異)最新モデルの採用・複数モデル構造の適用 上位2チームで共通して使用していたのがEVA-02

    timmで使用できる学習済みモデルで精度最上位 他にも通常のViT系モデルが相性がよかったそう CNN系のResnetシリーズ、Effcientnetシリーズ、ConvNextシリーズ などなど、複数組み合わせてるチームが多数 CNN系だけのチームもいたのでいろんな特徴アンサンブル出来ることが大事 むしろ金圏上位チームでモデル構造にConvNext_baseしか使用していなかったのは自チームだけ・・・ 後半実験時間が足りず、モデル複数採用までが手が回っていなかった(反省) [2303.11331] EVA-02: A Visual Representation for Neon Genesis (arxiv.org) EVA02はCVPR2023で発表されているEVAの後継 ViT構造の改善とCLIPを用いたMIMによる事前学習 [Nishika] 日本酒銘柄画像検索 振り返り会 - connpass https://youtube.com/live/_VTVnU9_Mqo?feature=share  上位解法についてはNishikaさん主催での振り返り会より
  11. まとめと所感  Nishikaの日本酒画像検索コンペに参加して7位(金圏)  Public/Privateともに7位で終えることができた  LB上位はは非常にアクティブかつ実力者も多くおり、活気あるコンペだった  ユーザー同士・運営間もコミュニケーション多くやりやすく結果的に良いコンペでした 

    過去コンペの知見を応用・実践し、結果につながってよかった  今まで類似検索系はHappyWhale@Kaggle、タナチョー部材認識@Signate と2度参加はしていたが思うように結果は出せていなかった  今回はその学びを活かし、各アイディアを取り入れて活かすことができてよかった  前処理・後処理の工夫が最も肝心!いろんな方の解法例も見れて非常に参考になった  データが如何に大事か改めて実感。上位陣の解法をみてデータクレンジングの重要性を痛感 お題の画像が実サービスの煩雑なものだったのも良い実践に近い体験だった