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

画像コンペティションで使える PyTorchとそのライブラリの紹介

tereka114
March 15, 2022
86

画像コンペティションで使える PyTorchとそのライブラリの紹介

CV勉強会第50回資料「画像コンペティションで使えるPyTorchとそのライブラリの紹介」

tereka114

March 15, 2022
Tweet

Transcript

  1. Copyright © Acroquest Technology Co., Ltd. All rights reserved. 1

    画像コンペティションで使える PyTorchとそのライブラリの紹介 Acroquest Technology株式会社 @tereka114
  2. Copyright © Acroquest Technology Co., Ltd. All rights reserved. 2

    ⾃⼰紹介 1. ⼭本 ⼤輝(Hiroki Yamamoto) 2. Acroquest Technology 株式会社 3. Twitter:@tereka114 4. 画像処理・⾃然⾔語処理など 5. Kaggle Master ① Home Credit Default Risk 2nd ② IEEE’s Signal Processing 10th 6. Interface ① Interface 3⽉号 ラズパイにON!Google⼈⼯知能 (2016) ② Interface 12⽉号 ⼈⼯知能ウルトラ⼤百科(2017) ③ Interface 12⽉号 My⼈⼯知能の育てかた(2018)
  3. Acroquest Technologyについて • Acro (先端を) + quest (探求する) テクノロジストチームとして ビジネス価値を⽣み出す

    • 『Interface 12⽉号』好評発売中︕ - 当社社員がラズパイとDeepLearning を使った記事を書きました。 • 「働きがいのある会社(GPTW)」 ランキング1位を3回受賞 (従業員25〜99⼈部⾨) Copyright © Acroquest Technology Co., Ltd. All rights reserved. 3
  4. 1. コンペ例︓ IEEE's Signal Processing Society - Camera Model Identification(Classification)

    1. 携帯電話(カメラ)で撮影して得られた画像の機種を当てるコ ンペティション 2. 撮影された写真かどうかが正しいのかの判断の⽀援に⽤いるこ とができる。 3. 複数モデルを⽤いたアンサンブルなどが多かった。 4. ⼤きい(4000x3000) のため画像処理の時間 を短縮するのが必須 Copyright © Acroquest Technology Co., Ltd. All rights reserved. 9 ※アンサンブル:複数のモデルを 良い感じに組み合わせて単一のモデルより 精度の高い結果を出せる。
  5. 1. コンペ例︓ TGS Salt Identification Challenge(Segmentation) 1. 地層の表⾯画像から塩を発⾒するコンペティション 2. これも精度の⾼い複数のモデルが組み合わさり、最新研究を含

    め数々の実装を⽤いられていた。 ① 例︓SCSE Block「Concurrent Spatial and Channel ‘Squeeze & Excitation’ in Fully Convolutional Networks」 3. 学習済のモデルを使う 参加者が多い。 4. アンサンブルも多い。 Copyright © Acroquest Technology Co., Ltd. All rights reserved. 10
  6. 1. 画像のコンペティションに必要なこと 1. 単⼀モデルの精度を出すこと。 ① 複数モデルをアンサンブルするケースであっても、単⼀モ デルの精度が必要 2. 可能な限り、⾼速であること ①

    ⼤量のモデルを準備するケースが多いため、⾼速であるこ とが重要 3. 最新の⼿法を早く試せること。 ① ⼿詰まりになると実装が終わらず、眠れないことがある。 (GPUを寝かせる暇はない。) Copyright © Acroquest Technology Co., Ltd. All rights reserved. 11
  7. 1. 画像コンペティションのDLライブラリに必要な要素 1. 実装・拡張が柔軟にできること ① 実装する上で複数誤差やネットワークのパスを簡単に変更 できる。 2. 学習済モデルを複数パタン選べて、使えること。 3.

    最新⼿法、もしくは便利な実装が多いこと。 ① リポジトリで検索すると⼤体引っかかる。 Copyright © Acroquest Technology Co., Ltd. All rights reserved. 12
  8. 2. PyTorchとは 1. PyTorchはFacebookが開発したDeep Learningのフレームワ ーク ① 元はChainerからForkされている(らしい) 。 2.

    ⾮常に柔軟な構成が可能であり、書きやすい。 3. 研究者の多くが利⽤している。 Copyright © Acroquest Technology Co., Ltd. All rights reserved. 14
  9. 2. PyTorchの性能 Copyright © Acroquest Technology Co., Ltd. All rights

    reserved. 16 https://github.com/u39kun/deep-learning-benchmark 最も⾼速 最も⾼速
  10. 3. PyTorchの便利なライブラリ Copyright © Acroquest Technology Co., Ltd. All rights

    reserved. 19 No. ライブラリ名 URL 説明 1 pretrained- models.pytorch https://github. com/Cadene/pr etrained- models.pytorch 学習済モデルが豊富なリポジトリ 学習されていない良いモデルよりも学習済モ デルによる少し前のモデルの初期値の⽅が精 度が⾼い。 2 Albumentation https://github. com/albu/albu mentations 画像のAugmentationを⾼速で実現できるラ イブラリ ⼀回の実験で必要な時間に⼤きく関わる。
  11. 3-1. pretrained-models.pytorch 1. ImageNetの学習済モデルが提供されている。 • ⼀般的に既存モデルの重みから学習したほうが精度が⾼い。 2. 多種多様なモデルが準備されている。 3. ImageNet

    + αの実装を⾏うことが多い。 • 最終層のみの構造を変える。 • UnetのEncoderをpre-trainedの⼀部を使う。 Copyright © Acroquest Technology Co., Ltd. All rights reserved. 20
  12. 3-1. 準備されているニューラルネットワーク • PNASNet • NASNet • SE-ResNeXt • SE-ResNet

    DenseNet • ResNeXt • ResNet • DualPathNet • MobileNet • VGG • AlexNet Copyright © Acroquest Technology Co., Ltd. All rights reserved. 21
  13. 3-1. pretrained-models.pytorchの使い⽅ 1. モデルを読み込んで使う。 • 学習済を学習済のまま利⽤する。出⼒が固定されるため、画像コンペテ ィションでは利⽤されない。 2. モデルの最終層を修正して使う。 •

    最終層を新しいタスクの出⼒数に合わせて修正する。 • 学習済のモデルを初期値し、再学習を⾏う。 (いわゆる、Fine-Turning) 3. 途中の層までの出⼒を⽤いてネットワークを構築する。 • タスクが異なる場合や様々な事情でネットワーク構造を変更したい場合 に使う。 Copyright © Acroquest Technology Co., Ltd. All rights reserved. 22
  14. 3-1. モデルの最終層を修正して使う。 Copyright © Acroquest Technology Co., Ltd. All rights

    reserved. 24 出⼒の⼀つ前の 全結合層を置き換える。
  15. 3-2. Albumentation 1. ⾼速なデータ拡張(Augmentation)ライブラリ • OpenCVを最適に使った⽤いたライブラリ 2. Augmentationは画像処理で⼀般的に利⽤されるテクニック。 • 学習時にReal

    Timeに適⽤する⽅法 • 評価時に複数枚Augmentationしたのも含め1枚として、評価する。 (=Test Time Data Augmentation) 3. Augmentationは分類だけではなく、 Object DetectionやSegmentationにも対応している。 4. PyTorchだけでなく、他のライブラリ(TF/Chainer)などに も組み込める。 Copyright © Acroquest Technology Co., Ltd. All rights reserved. 25
  16. 3-2. Albumentation Copyright © Acroquest Technology Co., Ltd. All rights

    reserved. 26 1秒間で処理できる画像の枚数(高ければ高いほど良い)
  17. 3-2. もう少し凝ったAlbumentation 1. Augmentationは⼀種類ではなく、複数かけることがある。 • ⽔平フリップ->回転->シフトなど 2. Albumentationでは複数のAugmentationを利⽤する際に便 利なクラスがある。 •

    Compose︓複数のAugmentationをシーケンシャルに実⾏する。 • OneOf:複数種類のうち、どれかのみを実⾏する。 Copyright © Acroquest Technology Co., Ltd. All rights reserved. 28
  18. 3-2. もう少し凝ったAlbumentation Copyright © Acroquest Technology Co., Ltd. All rights

    reserved. 29 Import ⽂ Composeで複数の Augmentationを実⾏する。 OneOfを使って複数種類のブラ ーのうち⼀つを使う。 ※結果は毎回変わります C A 2-39 9 3 . 9 - 9 - 3 . 9, . 9 - - -, C A A  
  19. 3-2. もう少し凝ったAlbumentation(テキスト説明) 1. Composeを0.5の確率で適⽤する(以下が内容) 2. ⽔平フリップを0.5の確率で適⽤する。 3. OneOfでメディアン、モーションブラー、ブラーのうちどれか を0.2の確率で適⽤する。 ①

    ただし、モーションブラーは0.2、また、メディアンブラーとブラーは 0.1の確率で実⾏する。 4. スケール、画像シフト、回転を0.2の確率で適⽤する。 5. OneOfで、コントラストや輝度の変化のどちらかを0.3の確率 で適⽤する。 Copyright © Acroquest Technology Co., Ltd. All rights reserved. 30
  20. 4. まとめ 1. PyTorchは画像コンペティションでおすすめのライブラリ • 最新の⼿法がリポジトリで公開されている。 • 柔軟性のある実装が可能。 • 多種多様な学習済モデルが公開されている。

    2. おすすめライブラリが2つ • 学習済モデルがあるpretrained-models.pytorch • ⾼速なAugmentationを⾏うAlbumentation 3. Let’s PyTorch︕ Copyright © Acroquest Technology Co., Ltd. All rights reserved. 32
  21. Copyright © Acroquest Technology Co., Ltd. All rights reserved. 33

    ぜひ、使ってみてください。 Infrastructures Evolution