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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
koshian
October 11, 2019
Programming
0
380
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
2.1k
Other Decks in Programming
See All in Programming
Goの型安全性で実現する複数プロダクトの権限管理
ishikawa_pro
2
1.4k
Claude Codeログ基盤の構築
giginet
PRO
7
3.7k
ファインチューニングせずメインコンペを解く方法
pokutuna
0
190
ベクトル検索のフィルタを用いた機械学習モデルとの統合 / python-meetup-fukuoka-06-vector-attr
monochromegane
2
540
Cyrius ーLinux非依存にコンテナをネイティブ実行する専用OSー
n4mlz
0
250
コードレビューをしない選択 #でぃーぷらすトウキョウ
kajitack
3
1.1k
実践ハーネスエンジニアリング #MOSHTech
kajitack
7
4.1k
RailsのValidatesをSwift Macrosで再現してみた
hokuron
0
130
ネイティブアプリとWebフロントエンドのAPI通信ラッパーにおける共通化の勘所
suguruooki
0
190
どんと来い、データベース信頼性エンジニアリング / Introduction to DBRE
nnaka2992
1
330
Kubernetesでセルフホストが簡単なNewSQLを求めて / Seeking a NewSQL Database That's Simple to Self-Host on Kubernetes
nnaka2992
0
180
Java 21/25 Virtual Threads 소개
debop
0
270
Featured
See All Featured
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
150
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
100
Claude Code のすすめ
schroneko
67
220k
Code Reviewing Like a Champion
maltzj
528
40k
RailsConf 2023
tenderlove
30
1.4k
Leo the Paperboy
mayatellez
4
1.6k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.7k
SEO for Brand Visibility & Recognition
aleyda
0
4.4k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
660
Become a Pro
speakerdeck
PRO
31
5.9k
Design in an AI World
tapps
0
180
The agentic SEO stack - context over prompts
schlessera
0
720
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としてどの程度有効か、では? (私見)