Submit Search
Upload
SappoRoR#7 Rを用いた画像処理入門 -胸部X線の経時的差分画像-
•
8 likes
•
2,342 views
昌彦 飛騨
Follow
magick packageによる画像処理入門 EBImage packageによる胸部X線の経時的差分画像
Read less
Read more
Health & Medicine
Report
Share
Report
Share
1 of 58
Download now
Download to read offline
Recommended
ggplot2用例集 入門編
ggplot2用例集 入門編
nocchi_airport
機械学習を用いた予測モデル構築・評価
機械学習を用いた予測モデル構築・評価
Shintaro Fukushima
パターン認識 04 混合正規分布
パターン認識 04 混合正規分布
sleipnir002
数式を使わずイメージで理解するEMアルゴリズム
数式を使わずイメージで理解するEMアルゴリズム
裕樹 奥田
SHAP値の考え方を理解する(木構造編)
SHAP値の考え方を理解する(木構造編)
Kazuyuki Wakasugi
研究室内PRML勉強会 8章1節
研究室内PRML勉強会 8章1節
Koji Matsuda
変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)
Takao Yamanaka
Pythonで時系列のデータを分析してみよう
Pythonで時系列のデータを分析してみよう
Tatuya Kobayashi
Recommended
ggplot2用例集 入門編
ggplot2用例集 入門編
nocchi_airport
機械学習を用いた予測モデル構築・評価
機械学習を用いた予測モデル構築・評価
Shintaro Fukushima
パターン認識 04 混合正規分布
パターン認識 04 混合正規分布
sleipnir002
数式を使わずイメージで理解するEMアルゴリズム
数式を使わずイメージで理解するEMアルゴリズム
裕樹 奥田
SHAP値の考え方を理解する(木構造編)
SHAP値の考え方を理解する(木構造編)
Kazuyuki Wakasugi
研究室内PRML勉強会 8章1節
研究室内PRML勉強会 8章1節
Koji Matsuda
変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)
Takao Yamanaka
Pythonで時系列のデータを分析してみよう
Pythonで時系列のデータを分析してみよう
Tatuya Kobayashi
変分ベイズ法の説明
変分ベイズ法の説明
Haruka Ozaki
SakataMoriLab GNN勉強会第一回資料
SakataMoriLab GNN勉強会第一回資料
ttt_miura
Rでのtry関数によるエラー処理
Rでのtry関数によるエラー処理
wada, kazumi
kaggle Freesound Audio Tagging 2019 4th place solution
kaggle Freesound Audio Tagging 2019 4th place solution
理 秋山
PRML第3章@京大PRML輪講
PRML第3章@京大PRML輪講
Sotetsu KOYAMADA(小山田創哲)
混合モデルを使って反復測定分散分析をする
混合モデルを使って反復測定分散分析をする
Masaru Tokuoka
Oracle property and_hdm_pkg_rigorouslasso
Oracle property and_hdm_pkg_rigorouslasso
Satoshi Kato
[DL輪読会]Learning Transferable Visual Models From Natural Language Supervision
[DL輪読会]Learning Transferable Visual Models From Natural Language Supervision
Deep Learning JP
検定力分析とベイズファクターデザイン分析によるサンプルサイズ設計【※Docswellにも同じものを上げています】
検定力分析とベイズファクターデザイン分析によるサンプルサイズ設計【※Docswellにも同じものを上げています】
Hiroyuki Muto
因果探索: 観察データから因果仮説を探索する
因果探索: 観察データから因果仮説を探索する
Shiga University, RIKEN
[DL輪読会]Flow-based Deep Generative Models
[DL輪読会]Flow-based Deep Generative Models
Deep Learning JP
なぜベイズ統計はリスク分析に向いているのか? その哲学上および実用上の理由
なぜベイズ統計はリスク分析に向いているのか? その哲学上および実用上の理由
takehikoihayashi
Chapter9 一歩進んだ文法(前半)
Chapter9 一歩進んだ文法(前半)
itoyan110
Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9
Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9
Yuya Unno
Pythonによる累乗近似
Pythonによる累乗近似
智啓 出川
混合ガウスモデルとEMアルゴリスム
混合ガウスモデルとEMアルゴリスム
貴之 八木
負の二項分布について
負の二項分布について
Hiroshi Shimizu
Graphic Notes on Linear Algebra and Data Science
Graphic Notes on Linear Algebra and Data Science
Kenji Hiranabe
Feature Selection with R / in JP
Feature Selection with R / in JP
Sercan Ahi
StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章
StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章
nocchi_airport
goimagick-syokai-II
goimagick-syokai-II
Yo Ya
GoImagickThumbnail
GoImagickThumbnail
Yo Ya
More Related Content
What's hot
変分ベイズ法の説明
変分ベイズ法の説明
Haruka Ozaki
SakataMoriLab GNN勉強会第一回資料
SakataMoriLab GNN勉強会第一回資料
ttt_miura
Rでのtry関数によるエラー処理
Rでのtry関数によるエラー処理
wada, kazumi
kaggle Freesound Audio Tagging 2019 4th place solution
kaggle Freesound Audio Tagging 2019 4th place solution
理 秋山
PRML第3章@京大PRML輪講
PRML第3章@京大PRML輪講
Sotetsu KOYAMADA(小山田創哲)
混合モデルを使って反復測定分散分析をする
混合モデルを使って反復測定分散分析をする
Masaru Tokuoka
Oracle property and_hdm_pkg_rigorouslasso
Oracle property and_hdm_pkg_rigorouslasso
Satoshi Kato
[DL輪読会]Learning Transferable Visual Models From Natural Language Supervision
[DL輪読会]Learning Transferable Visual Models From Natural Language Supervision
Deep Learning JP
検定力分析とベイズファクターデザイン分析によるサンプルサイズ設計【※Docswellにも同じものを上げています】
検定力分析とベイズファクターデザイン分析によるサンプルサイズ設計【※Docswellにも同じものを上げています】
Hiroyuki Muto
因果探索: 観察データから因果仮説を探索する
因果探索: 観察データから因果仮説を探索する
Shiga University, RIKEN
[DL輪読会]Flow-based Deep Generative Models
[DL輪読会]Flow-based Deep Generative Models
Deep Learning JP
なぜベイズ統計はリスク分析に向いているのか? その哲学上および実用上の理由
なぜベイズ統計はリスク分析に向いているのか? その哲学上および実用上の理由
takehikoihayashi
Chapter9 一歩進んだ文法(前半)
Chapter9 一歩進んだ文法(前半)
itoyan110
Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9
Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9
Yuya Unno
Pythonによる累乗近似
Pythonによる累乗近似
智啓 出川
混合ガウスモデルとEMアルゴリスム
混合ガウスモデルとEMアルゴリスム
貴之 八木
負の二項分布について
負の二項分布について
Hiroshi Shimizu
Graphic Notes on Linear Algebra and Data Science
Graphic Notes on Linear Algebra and Data Science
Kenji Hiranabe
Feature Selection with R / in JP
Feature Selection with R / in JP
Sercan Ahi
StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章
StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章
nocchi_airport
What's hot
(20)
変分ベイズ法の説明
変分ベイズ法の説明
SakataMoriLab GNN勉強会第一回資料
SakataMoriLab GNN勉強会第一回資料
Rでのtry関数によるエラー処理
Rでのtry関数によるエラー処理
kaggle Freesound Audio Tagging 2019 4th place solution
kaggle Freesound Audio Tagging 2019 4th place solution
PRML第3章@京大PRML輪講
PRML第3章@京大PRML輪講
混合モデルを使って反復測定分散分析をする
混合モデルを使って反復測定分散分析をする
Oracle property and_hdm_pkg_rigorouslasso
Oracle property and_hdm_pkg_rigorouslasso
[DL輪読会]Learning Transferable Visual Models From Natural Language Supervision
[DL輪読会]Learning Transferable Visual Models From Natural Language Supervision
検定力分析とベイズファクターデザイン分析によるサンプルサイズ設計【※Docswellにも同じものを上げています】
検定力分析とベイズファクターデザイン分析によるサンプルサイズ設計【※Docswellにも同じものを上げています】
因果探索: 観察データから因果仮説を探索する
因果探索: 観察データから因果仮説を探索する
[DL輪読会]Flow-based Deep Generative Models
[DL輪読会]Flow-based Deep Generative Models
なぜベイズ統計はリスク分析に向いているのか? その哲学上および実用上の理由
なぜベイズ統計はリスク分析に向いているのか? その哲学上および実用上の理由
Chapter9 一歩進んだ文法(前半)
Chapter9 一歩進んだ文法(前半)
Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9
Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9
Pythonによる累乗近似
Pythonによる累乗近似
混合ガウスモデルとEMアルゴリスム
混合ガウスモデルとEMアルゴリスム
負の二項分布について
負の二項分布について
Graphic Notes on Linear Algebra and Data Science
Graphic Notes on Linear Algebra and Data Science
Feature Selection with R / in JP
Feature Selection with R / in JP
StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章
StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章
Similar to SappoRoR#7 Rを用いた画像処理入門 -胸部X線の経時的差分画像-
goimagick-syokai-II
goimagick-syokai-II
Yo Ya
GoImagickThumbnail
GoImagickThumbnail
Yo Ya
go-thumber-imagick
go-thumber-imagick
Yo Ya
Kashiwa.R#1 画像解析とパターン認識における R の利用
Kashiwa.R#1 画像解析とパターン認識における R の利用
nmaro
Swift愛好会vol37
Swift愛好会vol37
Daisuke Nagata
勉強会資料Out ofmemory
勉強会資料Out ofmemory
Nao Fujita
Similar to SappoRoR#7 Rを用いた画像処理入門 -胸部X線の経時的差分画像-
(6)
goimagick-syokai-II
goimagick-syokai-II
GoImagickThumbnail
GoImagickThumbnail
go-thumber-imagick
go-thumber-imagick
Kashiwa.R#1 画像解析とパターン認識における R の利用
Kashiwa.R#1 画像解析とパターン認識における R の利用
Swift愛好会vol37
Swift愛好会vol37
勉強会資料Out ofmemory
勉強会資料Out ofmemory
SappoRoR#7 Rを用いた画像処理入門 -胸部X線の経時的差分画像-
1.
Rを用いた画像処理入門 ~胸部X線の経時的差分画像~ Oct 27, 2016
SappoRoR7 Masahiko Hida 1
2.
はじめに magick packageで画像処理の入門編をやってみました。 おまけとして胸部レントゲンで 経時的差分画像を作ってみたお話です。 2
3.
本日のAGENDA • 自己紹介 • magickによる画像処理の基本 •
胸部XP画像の経時的差分処理 • まとめ 3
4.
5.
magickによる画像処理の基本 5 . 1
6.
magick package ImageMagickをラップしたパッケージ。 画像オブジェクトは、“magick-image”クラ ス。 5 .
2
7.
インストールと読み込み install.packages("magick") library(magick) 5 . 3
8.
画像の読み込み・表示 dog <- magick::image_read('img/dog.jpg') magick::image_browse(dog)
# 別ウインドウに表示 dog # Rstudioのviewer上で表示 5 . 4
9.
フォーマットの変更 magick::image_convert(dog, "png") magick::image_write(dog,"img/dog.png",format =
"png") 5 . 5
10.
リサイズ magick::image_scale(dog, "200")
# リサイズ width: 200px magick::image_scale(dog, "x200") # リサイズ height: 200px magick::image_crop(dog, "300x400+150+150") # 切り取り 5 . 6
11.
回転・反転 magick::image_rotate(dog, 45) #
回転 magick::image_flip(dog) # 上下反転 magick::image_flop(dog) # 左右反転 5 . 7
12.
注釈 magick::image_annotate(dog,"I've been working
like a dog.", size = 30, color = "red",boxcolor = "pink", degrees = 10, location = "+150+600") 5 . 8
13.
フィルター magick::image_blur(dog, 10, 5) magick::image_noise(dog,noisetype
= "gaussian") magick::image_oilpaint(dog,radius = 5) magick::image_charcoal(dog) magick::image_edge(dog,radius = 5) magick::image_emboss(dog, radius = 1, sigma = 0.5) magick::image_negate(dog) 5 . 9
14.
結合 img <- c(dog,dog,dog) magick::image_append(img,stack=F)
# stack=Fで横並び magick::image_append(img,stack=T) # stack=Tで縦並び 5 . 10
15.
たまに使う機能 6 . 1
16.
17.
18.
19.
20.
グレイスケール変換 6 . 6
21.
カラーコードからRGBに まずラスターデータに変換します。 各セルがカラーコードになってるので、R/G/Bに分割して10進 法へ。 colorcode2RGB <- function(code){ start
<- c(2,4,6) ; end <- c(3,5,7) RGB16 <- substring(code,start,end) to10 <- function(x) { eval(parse(text =sprintf("0x%s",x))) } RGB <- c(to10(RGB16[1]),to10(RGB16[2]),to10(RGB16[3])) } 6 . 7
22.
23.
前半のまとめ 7 . 1
24.
EBImage packageと 何が違うの? 7 .
2
25.
magickとEBImageの比較1 画像の中身は magick EBImage 画像オブジェクトのクラス magick-image externalptr Image 容量は magick-imageオブジェクトもラスターにしてしまうと >
magick::image_read('img/dog.jpg') %>% object.size() 280 bytes > EBImage::readImage("img/dog.jpg") %>% object.size() 191767312 bytes > magick::image_read('img/dog.jpg') %>% as.raster %>% object.size() 66646344 bytes 7 . 3
26.
magickとEBImageの比較2 お犬様画像(600x800 px)で少しだけ速度比較 magick EBImage 画像読み込み
magick::image_read EBImage::readImage (/500回) 7.74s 32.97s リサイズ magick::image_scale EBImage::resize (/25%縮小、200回) 2.98s 6.47s 回転 magick::image_rotate EBImage::rotate (/45度回転、50回) 22.45s 9.42 7 . 4
27.
前半まとめ magickは関数名がimage_から始まるので、Rstudioのコード 補完を使えば入力が楽ちん。 大量の画像処理なら、可能な処理は極力magickで。 少量の画像や、グレースケール化、特殊なフィルター、複雑な 計算処理ならEBImageで。 (個人的な感想です。) 7 . 5
28.
ここから後半 8 . 1
29.
胸部X線の経時的差分画像 9 . 1
30.
胸部X線画像 9 . 2
31.
胸部X線画像の撮影 吸気状態による上下変動 中央位置合わせによる左右変動 立位なのでrotateは少ない 撮像距離一定で拡大縮小はほぼ無し 9 .
3
32.
なぜ差分画像? 単一のX線画像から異常を見つけるスクリプトは難しいが、 差分 処理なら機械的に異常所見を抽出できる 9 .
4
33.
差分画像はわかりやすい 多発腫瘍は俄然強い 9 . 5
34.
間違い探し 9 . 6
35.
答え 9 . 7
36.
では差分画像を 作って見ましょう 10 . 1
37.
一番の問題は画像のずれ 10 . 2
38.
差分画像作成のポイント 画像の移動・変形 (写真をずらして重ねる) 画像の類似度の評価尺度 (重なり具合を評価する) 評価尺度を最適化するアルゴリズ ム (早く重ねる) 10 . 3
39.
評価尺度の最適化 最急降下法 共益勾配法 など 今回は自作の最適化?関数 10 .
6
40.
画像の変形 線形変換(アフィン変換) 1.剛体位置合わせ(形が変わらない):平行移動、回転 2.非剛体位置合わせ(形が変わる):平行移動、回転、拡大 非線形変換(アフィン変換できないもの) 1. B-spline 法 変換後行列 アフィン行列 変換前行列 = ⎛ ⎝ ⎜ X Y 1 ⎞ ⎠ ⎟ ⎛ ⎝ ⎜ acosθ asinθ 0 −asinθ cosθ 0 T x T
y 1 ⎞ ⎠ ⎟ ⎛ ⎝ ⎜ x y 1 ⎞ ⎠ ⎟ 10 . 4
41.
画像の類似度の評価 残差の二乗和(SSD=Sum of Squared
Difference) 差分絶対値和(SAD=Sum of Absolute Difference) 正規化相互相関(NCC:Normalized Cross- Correlation) 相互情報量 SSD = |A(x) − B(x)∑ x | 2 SAD = |A(x) − B(x)|∑ x NCC = A(x)B(x)∑ x A(x∑ x ) 2 − −−−−−−− √ B(x∑ x ) 2 − −−−−−−− √ 10 . 5
42.
評価尺度の最適化 最急降下法 共益勾配法 など 今回は自作の最適化?関数 10 .
6
43.
方針 前半のまとめ(magickのgrayscaleは面倒?)から、 当初の予定と変更してEBImageで差分画像を作成 シンプルにxy軸の調整のみ。rotate、拡大縮小はな し 差分の二乗和で評価 自作最適化??関数 10 . 7
44.
差分作成用画像 左右の位置ずれはわずか、上下に位置ずれ有り。 10 . 8
45.
差分画像作成の実際 11 . 1
46.
単純差分処理 まずはなにも考えずに、単純な引き算してみます。 上下方向のいちズレが見立ちます。 11 . 2
47.
48.
49.
grid searchの差分画像 y軸方向のズレが改善 11 .
5
50.
もう少し計算量を減らしたい 11 . 6
51.
自作最適化?関数作りました 動画(you tube) 動画(mp4) 11 .
7
52.
53.
自作関数の差分画像 y軸方向のズレはgrid searchと同程度改善 11 .
9
54.
画像作成の計算時間 grid search : 自作関数
: ユーザ システム 経過 725.88 220.83 949.74 ユーザ システム 経過 33.34 12.89 59.03 11 . 10
55.
後半のまとめ 12 . 1
56.
後半まとめ そこそこの胸部X線経時的差分画像は、Rで比較的容易に処 理できる。 でも胸部レントゲン画像は、差分計算のコストがかなり大き い。 位置合わせ用に、低解像度画像を使用するか、コストの低い 最適化関数が必要。 できれば、特徴量検出(SHIFT、SURF)して非線形変換してみ たい。(要学習!) openCVとつなぐか、フルスクラッチ? 12 . 2
57.
reference 13 . 1
58.
reference1 github:magick The magick package:
Advanced Image-Processing in R Introduction to EBImage [R] EBImageを使った画像処理 医用画像位置合わせの基礎 https://github.com/ropensci/magick https://cloud.r-project.org/web/packages/magick/vignettes/int http://bioconductor.org/packages/devel/bioc/vignettes/E introduction.html http://d.hatena.ne.jp/Rion778/20091210/1260414280#fi https://lp-tech.net/articles/vb 13 . 2
Download now