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
Kashiwa.R#1 画像解析とパターン認識における R の利用
Kashiwa.R#1 画像解析とパターン認識における R の利用
nmaro
Rの高速化
Rの高速化
弘毅 露崎
Pythonによる機械学習実験の管理
Pythonによる機械学習実験の管理
Toshihiro Kamishima
研究効率化Tips Ver.2
研究効率化Tips Ver.2
cvpaper. challenge
Texture-Aware Superpixel Segmentation
Texture-Aware Superpixel Segmentation
yukihiro domae
乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-
乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-
Takuya Akiba
最高の統計ソフトウェアはどれか? "What’s the Best Statistical Software? A Comparison of R, Py...
最高の統計ソフトウェアはどれか? "What’s the Best Statistical Software? A Comparison of R, Py...
ケンタ タナカ
ベイズ主義による研究の報告方法
ベイズ主義による研究の報告方法
Masaru Tokuoka
Recommended
Kashiwa.R#1 画像解析とパターン認識における R の利用
Kashiwa.R#1 画像解析とパターン認識における R の利用
nmaro
Rの高速化
Rの高速化
弘毅 露崎
Pythonによる機械学習実験の管理
Pythonによる機械学習実験の管理
Toshihiro Kamishima
研究効率化Tips Ver.2
研究効率化Tips Ver.2
cvpaper. challenge
Texture-Aware Superpixel Segmentation
Texture-Aware Superpixel Segmentation
yukihiro domae
乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-
乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-
Takuya Akiba
最高の統計ソフトウェアはどれか? "What’s the Best Statistical Software? A Comparison of R, Py...
最高の統計ソフトウェアはどれか? "What’s the Best Statistical Software? A Comparison of R, Py...
ケンタ タナカ
ベイズ主義による研究の報告方法
ベイズ主義による研究の報告方法
Masaru Tokuoka
Rを用いたGIS
Rを用いたGIS
Mizutani Takayuki
20210711 deepI2P
20210711 deepI2P
Takuya Minagawa
変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)
Takao Yamanaka
YamadaiR(Categorical Factor Analysis)
YamadaiR(Categorical Factor Analysis)
考司 小杉
はじめてのパターン認識 第5章 k最近傍法(k_nn法)
はじめてのパターン認識 第5章 k最近傍法(k_nn法)
Motoya Wakiyama
20090924 姿勢推定と回転行列
20090924 姿勢推定と回転行列
Toru Tamaki
[DL輪読会]Deep Neural Networks as Gaussian Processes
[DL輪読会]Deep Neural Networks as Gaussian Processes
Deep Learning JP
はじパタ6章前半
はじパタ6章前半
T T
社会心理学者のための時系列分析入門_小森
社会心理学者のための時系列分析入門_小森
Masashi Komori
ResNest: split-attention networks
ResNest: split-attention networks
harmonylab
微分可能な信号処理に基づく音声合成器を用いた DNN 音声パラメータ推定の検討
微分可能な信号処理に基づく音声合成器を用いた DNN 音声パラメータ推定の検討
Yuta Matsunaga
CVPR2018のPointCloudのCNN論文とSPLATNet
CVPR2018のPointCloudのCNN論文とSPLATNet
Takuya Minagawa
トピックモデルの話
トピックモデルの話
kogecoo
実践多クラス分類 Kaggle Ottoから学んだこと
実践多クラス分類 Kaggle Ottoから学んだこと
nishio
ゼロから始める自然言語処理 【FIT2016チュートリアル】
ゼロから始める自然言語処理 【FIT2016チュートリアル】
Yuki Arase
遺伝研スパコンを使った解析の並列化.pptx
遺伝研スパコンを使った解析の並列化.pptx
Osamu Ogasawara
Graph U-Nets
Graph U-Nets
Shion Honda
パターン認識と機械学習(PRML)第2章 確率分布 2.3 ガウス分布
パターン認識と機械学習(PRML)第2章 確率分布 2.3 ガウス分布
Nagayoshi Yamashita
解説#78 誤差逆伝播
解説#78 誤差逆伝播
Ruo Ando
階層ベイズとWAIC
階層ベイズとWAIC
Hiroshi Shimizu
More Related Content
What's hot
Rを用いたGIS
Rを用いたGIS
Mizutani Takayuki
20210711 deepI2P
20210711 deepI2P
Takuya Minagawa
変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)
Takao Yamanaka
YamadaiR(Categorical Factor Analysis)
YamadaiR(Categorical Factor Analysis)
考司 小杉
はじめてのパターン認識 第5章 k最近傍法(k_nn法)
はじめてのパターン認識 第5章 k最近傍法(k_nn法)
Motoya Wakiyama
20090924 姿勢推定と回転行列
20090924 姿勢推定と回転行列
Toru Tamaki
[DL輪読会]Deep Neural Networks as Gaussian Processes
[DL輪読会]Deep Neural Networks as Gaussian Processes
Deep Learning JP
はじパタ6章前半
はじパタ6章前半
T T
社会心理学者のための時系列分析入門_小森
社会心理学者のための時系列分析入門_小森
Masashi Komori
ResNest: split-attention networks
ResNest: split-attention networks
harmonylab
微分可能な信号処理に基づく音声合成器を用いた DNN 音声パラメータ推定の検討
微分可能な信号処理に基づく音声合成器を用いた DNN 音声パラメータ推定の検討
Yuta Matsunaga
CVPR2018のPointCloudのCNN論文とSPLATNet
CVPR2018のPointCloudのCNN論文とSPLATNet
Takuya Minagawa
トピックモデルの話
トピックモデルの話
kogecoo
実践多クラス分類 Kaggle Ottoから学んだこと
実践多クラス分類 Kaggle Ottoから学んだこと
nishio
ゼロから始める自然言語処理 【FIT2016チュートリアル】
ゼロから始める自然言語処理 【FIT2016チュートリアル】
Yuki Arase
遺伝研スパコンを使った解析の並列化.pptx
遺伝研スパコンを使った解析の並列化.pptx
Osamu Ogasawara
Graph U-Nets
Graph U-Nets
Shion Honda
パターン認識と機械学習(PRML)第2章 確率分布 2.3 ガウス分布
パターン認識と機械学習(PRML)第2章 確率分布 2.3 ガウス分布
Nagayoshi Yamashita
解説#78 誤差逆伝播
解説#78 誤差逆伝播
Ruo Ando
階層ベイズとWAIC
階層ベイズとWAIC
Hiroshi Shimizu
What's hot
(20)
Rを用いたGIS
Rを用いたGIS
20210711 deepI2P
20210711 deepI2P
変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)
YamadaiR(Categorical Factor Analysis)
YamadaiR(Categorical Factor Analysis)
はじめてのパターン認識 第5章 k最近傍法(k_nn法)
はじめてのパターン認識 第5章 k最近傍法(k_nn法)
20090924 姿勢推定と回転行列
20090924 姿勢推定と回転行列
[DL輪読会]Deep Neural Networks as Gaussian Processes
[DL輪読会]Deep Neural Networks as Gaussian Processes
はじパタ6章前半
はじパタ6章前半
社会心理学者のための時系列分析入門_小森
社会心理学者のための時系列分析入門_小森
ResNest: split-attention networks
ResNest: split-attention networks
微分可能な信号処理に基づく音声合成器を用いた DNN 音声パラメータ推定の検討
微分可能な信号処理に基づく音声合成器を用いた DNN 音声パラメータ推定の検討
CVPR2018のPointCloudのCNN論文とSPLATNet
CVPR2018のPointCloudのCNN論文とSPLATNet
トピックモデルの話
トピックモデルの話
実践多クラス分類 Kaggle Ottoから学んだこと
実践多クラス分類 Kaggle Ottoから学んだこと
ゼロから始める自然言語処理 【FIT2016チュートリアル】
ゼロから始める自然言語処理 【FIT2016チュートリアル】
遺伝研スパコンを使った解析の並列化.pptx
遺伝研スパコンを使った解析の並列化.pptx
Graph U-Nets
Graph U-Nets
パターン認識と機械学習(PRML)第2章 確率分布 2.3 ガウス分布
パターン認識と機械学習(PRML)第2章 確率分布 2.3 ガウス分布
解説#78 誤差逆伝播
解説#78 誤差逆伝播
階層ベイズとWAIC
階層ベイズとWAIC
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