semantic instance segmentation with a discriminative loss ......戦略 •...
TRANSCRIPT
![Page 1: Semantic Instance Segmentation with a Discriminative Loss ......戦略 • 巨人の肩の上に立つ • CityscapesデータセットをターゲットにしたSegmentationの論文は数多くある](https://reader036.vdocuments.site/reader036/viewer/2022071302/60a65928bcce15432f22daf3/html5/thumbnails/1.jpg)
セグメンテーション部門 2位
MTLLAB谷合 廣紀, 森 大輝
![Page 2: Semantic Instance Segmentation with a Discriminative Loss ......戦略 • 巨人の肩の上に立つ • CityscapesデータセットをターゲットにしたSegmentationの論文は数多くある](https://reader036.vdocuments.site/reader036/viewer/2022071302/60a65928bcce15432f22daf3/html5/thumbnails/2.jpg)
自己紹介
東京大学大学院 情報理工学系研究科 電子情報学専攻坂井・入江研(通称MTL)の修士2年
谷合 廣紀 (nyoki-mtl) 森 大輝
![Page 3: Semantic Instance Segmentation with a Discriminative Loss ......戦略 • 巨人の肩の上に立つ • CityscapesデータセットをターゲットにしたSegmentationの論文は数多くある](https://reader036.vdocuments.site/reader036/viewer/2022071302/60a65928bcce15432f22daf3/html5/thumbnails/3.jpg)
2つの闘い
• GPUメモリとの闘い
• 1216*1936のセグメンテーションはGPUメモリに載せるのが大変!
• ローカルのGPUは8GBしかメモリがなかったため、クラウドでV100を借りる
• 修論との闘い
• 1月は学習を回している間に修論を書いているような状態
• 修論提出締め切りとコード提出の締め切りが同じ時間!
![Page 4: Semantic Instance Segmentation with a Discriminative Loss ......戦略 • 巨人の肩の上に立つ • CityscapesデータセットをターゲットにしたSegmentationの論文は数多くある](https://reader036.vdocuments.site/reader036/viewer/2022071302/60a65928bcce15432f22daf3/html5/thumbnails/4.jpg)
戦略
• 巨人の肩の上に立つ
• CityscapesデータセットをターゲットにしたSegmentationの論文は数多くある
• 特にDeepLabはGoogleの研究で知見の塊
• 公式実装をできるだけ利用
• 軽量なモデルでたくさん実験する
• DeepLabV3+は優秀なモデルだが、計算量やメモリ使用量が多く、学習に時間がかかる
• 最終モデルはDeepLabV3+を用いるものの、実験はMobileNetV2を利用
![Page 5: Semantic Instance Segmentation with a Discriminative Loss ......戦略 • 巨人の肩の上に立つ • CityscapesデータセットをターゲットにしたSegmentationの論文は数多くある](https://reader036.vdocuments.site/reader036/viewer/2022071302/60a65928bcce15432f22daf3/html5/thumbnails/5.jpg)
最終モデル
• モデル:半精度(fp16)のDeepLabV3+ (Xception65+ASPP)
• 画像の入力サイズ:609*969
• TTA
• left-right flip + multi scaling(0.5, 0.75, 1.0, 1.25, 1.5)
• 分割数5のk-foldで学習した各モデルの予測と全データを用いて学習させたモデルの予測を1:1:1:1:1:5の重み付け平均
• つまり1枚の画像あたり6*2*5=60通りの予測の平均をとっている
![Page 6: Semantic Instance Segmentation with a Discriminative Loss ......戦略 • 巨人の肩の上に立つ • CityscapesデータセットをターゲットにしたSegmentationの論文は数多くある](https://reader036.vdocuments.site/reader036/viewer/2022071302/60a65928bcce15432f22daf3/html5/thumbnails/6.jpg)
学習
• 初期値はCityscapes訓練済みモデルを利用
• バッチサイズ:2
• 609*969入力の半精度DeepLabV3+だとGPUメモリ使用量が16GB⇒ぴったりV100に載る!
• 損失関数: Lovasz Loss
• 実験ではCross Entropy Lossよりいいスコア
• Optimizer: SGD (lr=0.007, momentum=0.9, weight_decay=4e-5)
• DeepLabV3+の公式実装と同じパラメタ
• LR Scheduler: Cosine Annealing
• base_lr=7e-3で30epoch*2 base_lr=1e-5で10epoch の計70epoch
![Page 7: Semantic Instance Segmentation with a Discriminative Loss ......戦略 • 巨人の肩の上に立つ • CityscapesデータセットをターゲットにしたSegmentationの論文は数多くある](https://reader036.vdocuments.site/reader036/viewer/2022071302/60a65928bcce15432f22daf3/html5/thumbnails/7.jpg)
Data Augmentation
• DeepLabV3+のCityscapes向け公式実装
• 1. 元画像(1024, 2048)を0.5~1.5倍にスケーリング
• 2. スケールした画像から(729, 729)でクロップ
• 3. left-right flip
![Page 8: Semantic Instance Segmentation with a Discriminative Loss ......戦略 • 巨人の肩の上に立つ • CityscapesデータセットをターゲットにしたSegmentationの論文は数多くある](https://reader036.vdocuments.site/reader036/viewer/2022071302/60a65928bcce15432f22daf3/html5/thumbnails/8.jpg)
Data Augmentation
• DeepLabV3+のCityscapes向け公式実装
• 1. 元画像(1024, 2048)を0.5~1.5倍にスケーリング
• 2. スケールした画像から(729, 729)でクロップ
• 3. left-right flip
• 最終モデル
• 1. 元画像(1216, 1936)を0.5~1.5倍にスケーリング
• 2. スケールした画像から(609, 969)でクロップ 729*729と609*969 はほぼ一緒!
• 3. left-right flip
![Page 9: Semantic Instance Segmentation with a Discriminative Loss ......戦略 • 巨人の肩の上に立つ • CityscapesデータセットをターゲットにしたSegmentationの論文は数多くある](https://reader036.vdocuments.site/reader036/viewer/2022071302/60a65928bcce15432f22daf3/html5/thumbnails/9.jpg)
GPUメモリとの闘い
• 入力(609, 969)の半精度DeepLabV3+でバッチサイズ2にしてギリギリ16GB
• V100を使うためにGCPに10万円以上課金…
• バッチサイズ2はBatch Normalizationを不安定にするがCityscapesの訓練済みモデルからスタートすれば比較的安定
• DeepLabV3+の公式実装の訓練済みモデル(TensorFlow)をPyTorchに移植
• 最終10epochはBatch Normalizationを固定しlearning rateを1e-5にしてfine tuning
![Page 10: Semantic Instance Segmentation with a Discriminative Loss ......戦略 • 巨人の肩の上に立つ • CityscapesデータセットをターゲットにしたSegmentationの論文は数多くある](https://reader036.vdocuments.site/reader036/viewer/2022071302/60a65928bcce15432f22daf3/html5/thumbnails/10.jpg)
学習率スケジューリング
• base_lr=7e-3で1サイクル30epochのCosine Annealing *2
• BNを固定してbase_lr=1e-5で10epochのCosine Annealing
![Page 11: Semantic Instance Segmentation with a Discriminative Loss ......戦略 • 巨人の肩の上に立つ • CityscapesデータセットをターゲットにしたSegmentationの論文は数多くある](https://reader036.vdocuments.site/reader036/viewer/2022071302/60a65928bcce15432f22daf3/html5/thumbnails/11.jpg)
コード
• https://github.com/nyoki-mtl/pytorch-segmentation
• DeepLabV3+やMobileNetV2, UNetなどのPyTorch実装
• 今回使ったコードのほとんどはアップロード済み
• このコンペに関するDataLoaderやconfigファイルは非公開
![Page 12: Semantic Instance Segmentation with a Discriminative Loss ......戦略 • 巨人の肩の上に立つ • CityscapesデータセットをターゲットにしたSegmentationの論文は数多くある](https://reader036.vdocuments.site/reader036/viewer/2022071302/60a65928bcce15432f22daf3/html5/thumbnails/12.jpg)
おまけ
![Page 13: Semantic Instance Segmentation with a Discriminative Loss ......戦略 • 巨人の肩の上に立つ • CityscapesデータセットをターゲットにしたSegmentationの論文は数多くある](https://reader036.vdocuments.site/reader036/viewer/2022071302/60a65928bcce15432f22daf3/html5/thumbnails/13.jpg)
精度向上のアイデア
• 弱教師あり学習
• このコンペは物体検出部門もあったため、セグメンテーションの弱教師が存在していた
• 弱教師あり学習はMobileNetV2では多少の精度向上が確認されていたがDeepLabV3+に適用する時間がなかった
• 半教師あり学習
• 物体検出部門の画像をラベルなしデータとして、半教師あり学習に取り込む
• アイデアとしてはあったが、実行には移さず…
• Style transferによる昼画像と夜画像の変換
• 予測結果を分析すると夜画像に対する予測精度が低いため夜画像の水増し狙い
• Style transferの学習が大変
![Page 14: Semantic Instance Segmentation with a Discriminative Loss ......戦略 • 巨人の肩の上に立つ • CityscapesデータセットをターゲットにしたSegmentationの論文は数多くある](https://reader036.vdocuments.site/reader036/viewer/2022071302/60a65928bcce15432f22daf3/html5/thumbnails/14.jpg)
誤検出
• 車に描かれている木によってテールランプが信号として検出されてしまっている
• 交通事故を引き起こしかねない致命的な誤検出