Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
SkrGAN: Sketching-rendering Unconditional Gener...
Search
koshian
October 11, 2019
Programming
0
350
SkrGAN: Sketching-rendering Unconditional Generative Adversarial Networks for Medical Image Synthesis
#番外編【画像処理 & 機械学習】論文LT会!〜MICCAI 2019 予習編〜 @ LPIXEL
koshian
October 11, 2019
Tweet
Share
More Decks by koshian
See All by koshian
Wasserstein GANからSpectral Normalizationへ
koshian2
3
1.8k
Other Decks in Programming
See All in Programming
実践サーバーレスパフォーマンスチューニング ~その実力に迫る~ / Practical Serverless Performance Tuning ~A Close Look at its Power~
seike460
PRO
2
230
メルカリ ハロ アプリの技術スタック
atsumo
2
880
ACES Meet におけるリリース作業改善の取り組み
fukucheee
0
150
Hi, have you met Kotlin Multiplatform? | DevFest Vienna 2024
prof18
0
230
Micro Frontends for Java Microservices - dev2next 2024
mraible
PRO
0
230
.NET Aspireのクラウド対応検証: Azureと他環境での実践
ymd65536
1
670
rtcamp 10 (vk-illuminati)
yumcyawiz
1
210
書籍『LangChainとLangGraphによるRAG・AIエージェント[実践]入門』の紹介
os1ma
2
120
Re:proS_案内資料
rect
0
170
今日で分かる!カスタムコップの作り方
krpk1900
2
270
tc39 x jsconf.jp Panel Discussion 2024
yosuke_furukawa
PRO
0
110
Successful with Signals: 3 Rules for Your Architecture
manfredsteyer
PRO
0
140
Featured
See All Featured
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
31
2.6k
Fashionably flexible responsive web design (full day workshop)
malarkey
404
65k
5 minutes of I Can Smell Your CMS
philhawksworth
202
19k
It's Worth the Effort
3n
183
27k
KATA
mclloyd
29
13k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.8k
The Power of CSS Pseudo Elements
geoffreycrofte
71
5.3k
Bash Introduction
62gerente
608
210k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
504
140k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
225
22k
What's in a price? How to price your products and services
michaelherold
243
11k
Transcript
SkrGAN: Sketching-rendering Unconditional Generative Adversarial Networks for Medical Image Synthesis
2019/10/11 こしあん(koshian2) #番外編【画像処理 & 機械学習】論文LT会! 〜MICCAI 2019 予習編〜 @ LPIXEL
論文紹介 SkrGANの論文:MICCAI 2019にAccept Tianyang Zhang, Huazhu Fu, Yitian Zhao,
Jun Cheng, Mengjie Guo, Zaiwang Gu, Bing Yang, Yuting Xiao, Shenghua Gao, Jiang Liu. SkrGAN: Sketching-rendering Unconditional Generative Adversarial Networks for Medical Image Synthesis. MICCAI 2019 https://arxiv.org/abs/1908.04346 ざっくりとした特徴 • 医用画像の生成を目的としたGAN(Generative adversarial networks) • Uncodintional GANでProgressive GAN(PGGAN)の応用 • PGGANにはないスケッチ画像によるガイドを追加することで、GANでぼやけがちな輪郭を明 瞭にすることに成功。各評価指標でPGGANを上回り、医用画像の生成ではSoTA。 なぜこの論文を選んだか • 医用画像がテーマだが、本質的には応用範囲は広そう(イラストやアニメの生成にも使えそう) • ありがちな「医用画像はデータが少ないのでGANでAugmentationしましょう」がメインではない。 Data Augmentationについても議論しているがおまけ程度。より本質的な側面に切り込んでお り、意義がありそう。 • 人間が絵を描くプロセスを踏襲しており、直感的に理解しやすい。 • Conditional GANではいろいろな条件(Semantic Segmentation、クラスラベル、ポーズ……) を追加情報として与える風潮があるが、アノテーションデータが必要。スケッチに限れば機械的 に作り出せるので、Uncodintionalでもいける(アノテーション不要)。そこが面白い。
GANとは DiscriminatorとGeneratorという2つのネットワークが敵対するよう に学習することで、高画質な画像生成が可能 最近では非常に高画質な出力が可能に(BigGAN, StyleGAN等) 作った偽物で D(警察)を騙 したい
偽物か本物 か見分けたい Generator (偽造者) Discriminator (警察)
SkrGANの特徴 問題意識 GANで失われがちな前面構造(血管、骨)は医療診断では重要。ここを鮮明に出したい スケッチと着色の2ステージに分ける ⚫ 通常GAN:ノイズ→カラー画像という1ステージ ⚫ SkrGAN:ノイズ→スケッチ(モノクロ)、スケッチ→カラー画像という2ステージ
2ステージにするのはS2GANなど前例はある。SkrGANは損失関数を工夫していて、2ステージ だがEnd-to-Endに訓練できる(はず)。SkrGANは訓練の誘導としてスケッチを入れる。 発想は「現実の絵画の描画手順( realistic drawing procedures of human painting )」からと記 されている。 眼底写真の生成 既存手法で一番まともそうなのがPGGAN 緑の矢印がSkrGANで改善してるポイント (各GANについては後述)
SkrGANの全体図 (1) スケッチの生成 (2) カラーレンダリング Noise→ImageのGAN (普通のGAN) Image→ImageのGAN (pix2pixなど) Noise→ImageのGANを分解し、
スケッチによる「ガイド」を入れる
スケッチの生成 本物のスケッチはどうするの?ス ケッチのデータが必要では? 不要。カラー画像を、 I. Sobelフィルターによるエッジ検出 II. ガウシアンローパスフィルターでノイズ を除去(ガウシアンぼかし)
III. モルフォロジー変換でオープニングした あとクロージングする(詳しくは OpenCVのドキュメント参照) OpenCV等で機械的にスケッチは生成可能! スケッチ生成のG/Dの構成は? PGGANを使う。低解像度→高解像度で訓練 スケッチ生成の損失関数は? 普通のGANと同じ。zはノイズ、lというlatent codeを用意し、要素積取ってるのが特徴
カラーレンダリング Image to imageのGAN。スケッチを 着色する。Gの構成はU-Net。 カラーレンダリングの損失関数は? (Adversarial loss)
+ λ×(L1 loss) L1 lossは教師あり学習と同じ。訓練を加速さ せる。λ=100(多少変えてもほとんど影響な い)。着色部分はpix2pixと同じ。 全体の損失関数は? スケッチと着色が一本の損失関数で表せるの でEnd-to-Endで訓練できるはず(コードが公 開されていないので詳細不明) 疑問点:PG-GANのProgressive Growing(低解像度→高解像度)の訓練をやっている間に 着色部分のU-Netはどう訓練するの? 訓練段階をスケッチと着色で分割する? U-NetもProgressive Growingするの? 偽のスケッチが出力されたらリサイズしてU-Netに入力するの?(特に記述がない)
データと評価指標 3つのPublic dataと1つのPrivate data を使用 Public data 1.
Chest X-Ray dataset:胸部X線画像 肺炎or正常、5863枚。Kaggleより 2. Kaggle Lung dataset:CTスキャン画像 肺のセグメンテーション。267枚。Kaggle 3. Brain MRI dataset:脳のMRI画像 147枚。有料らしい Private data 病院から集めた6432枚の眼底写真からなる データセット どのデータにおいても、ラベル情報 は不要(アノテーション要らない) 512x512の解像度で生成 TITAN XP2枚でバッチサイズ16で訓練 評価指標3つ→ MS-SSIM (multi-scale structural similarity) ピクセルの相関に注目した2画像間の類似度。 完全に同一画像なら1。 →本論文では「高いほうが良い」とあるが、 高すぎるとモード崩壊していることがあり、 低いほうが良いとする文献も多いのに注意。 SWD (Sliced Wasserstein Distance) ラプラシアンピラミッド(≒画像を周波数分 解)からパッチを取り、乱数で1次元に投射し たときのWasserstein距離。PGGANの指標。 Inceptionモデルに左右されないメリットがあ る。→「低い方が良い」 FID (Freshet Inception Distance) 訓練済みInceptionモデルの出力層における特 徴量で見たときの、本物-偽物間の2乗距離。 ただのL2距離ではなく、平均や共分散行列で 計算。 →「低いほうが良い」。直感的にはL2距離に 似ている。Inception scoreは本物の分布を見 ないのでその欠陥を補うために使われる。
実験結果 すべてのデータ、評価指標に対してSkrGANが一番良かった 他のGAN補足 1. DCGAN:多くのGANの雛形となった元祖 2. ACGAN:DCGANにクラスラベル、Dに画像分類を入れたConditional GAN。SNGANやSAGAN、BigGANの祖先。
3. WGAN:Dにリプシッツ連続の制約を入れ、損失関数をWasserstein距離にしたGAN。モード崩壊が(ほぼ)起きな い。GPではなくWeight Clip版。 4. PGGAN:低→高解像度と段階的に訓練するGAN。速度・安定性、高解像度に強み。4つの中では結果がまとも。 眼底 (6432枚) 胸部X線 (5863枚) 肺CT (267枚) 脳MRI (147枚) ↑画像数が少ないとDCGAN, ACGAN, WGANが悪すぎ
実験結果 eがSkrGAN。非常に高画質 特にCTスキャン(一番上)では 他のGANが明らかにおかしい (脊髄に違和感がある) DRIVEという糖尿病性網膜症の 血管のセグメンテーションタスク でのパフォーマンス。 DRIVEはtrain/testが20枚ずつ SEN=TP/(TP+FN)
SkrGANで2000枚生成し 生成されたスケッチをラベルとして利用 (スケッチをラベルとして使っていい?pseudo-label的な発想?)
まとめ スケッチによる「ガイド」を入れ、noise→imageのGANを、 noise→image + image→imageのタスクに分解したのが SkrGAN。データ数が少ない+ラベルがなくてもうまくいく。 最初にスケッチを作るというのは、人間と同じなので発想が とてもわかりやすい(私見)
PGGAN+pix2pixなので、GANの割に訓練は安定しそう(私 見) スケッチ(線画)が重要なのは、イラストでも変わりないの でSkrGANでお絵かきしたら楽しそう(私見) Data Augmentationとして使えるかは、そのタスクにおいて スケッチがPseudo labelingとしてどの程度有効か、では? (私見)