医用画像を題材とした3次元画像解析とディープラーニング
MathWorks Japan
シニアアプリケーションエンジニア 大塚 慶太郎
リリース毎に進化するMATLABの機能
IPCV Algorithms (core)
Algorithms Performance Code
Generation Apps 3-D Image Object Detection & Recognition Vision Enhancement Embedded Vision Modern Image Processing
Deep Learning and Machine Learning
3-D Vision SfM Point Clouds Calibration ロボティクス 自動運転 製造ライン& 外観検査 セキュリティ 医用画像処理
Image Processing Toolbox : 画像処理系関数の3次元対応
Features MATLAB version imrotate3 17a imresize3 17a bwmorph3 18a 幾何学的変換 Features MATLAB version imhist 17a imadjust 17b histeq 17a adapthisteq 17b コントラスト補正 Features MATLAB version global thresholding 17b adaptive thresholding 17b fast marching 17aactive contour 17a
superpixels3 16b
セグメンテーション
App : Volume Viewer
Features MATLAB Version edge3 17b regionprops3 17b bwselect3 17b 16a 画像解析
File Format : NIfTI
医用画像を題材とした3次元画像解析
3-D Volumetric Image Processing
Demo :
胸部3D CTスキャンデータから臓器抽出
▪
イメージの領域分割Appを利用した初期輪郭の定義
▪
動的輪郭を利用した肺の領域のセグメンテーション
▪
imresize3, imrotate3, activecontourなど
3次元ボリュームデータに対する関数追加・拡張
医用画像の確認:DICOM/NIfTI画像の読み取り
▪DICOMブラウザー
–
DICOMファイルのプレビュー
–
DICOMDIRファイルの読み取り
–
各種ビューワーへのエクスポート機能
▪ ワークスペースへエクスポート ▪ ボリュームビューワーで表示 ▪ ビデオビューワーで表示–
大量のDICOMファイルの確認に便利
Image Processing Toolbox™
大量画像の並列・バッチ処理
大量画像の処理を並列実行で高速処理
デスクトップコンピュータ
入力画像
出力画像
MATLABコア コア
MATLAB Distributed Computing Server
Parallel Computing Toolbox
コンピュータークラスターで分散実行
複数CPU、コアで並列実行
imageBatchProcessor
Image Processing Toolbox Parallel Computing Toolbox
MATLABによるDeep Learning
試行錯誤のやりやすさ
パフォーマンスの高さ
互換性の高い容易な実装
Access Data
Design + Train
Deploy
▪ 大規模データの管理
▪ ラベリングの自動化
▪ 既存モデルへ容易にアクセス
▪ GPU Coderを利用した
GPU, CPU向け自動コード生成
▪ GPUを利用した高速化
▪ クラスタ環境への
スケールアップ
医用画像を題材とした画像分類
Deep Learning for Image Classification
Demo :
血液検査画像の分類
▪
大量の画像データの取り扱い
▪
事前学習済みネットワークの取得
▪
転移学習
SqueezeNetについて
AlexNetと同程度の分類精度、モデルサイズは1/50
Fire Module ▪ネットワークのパラメータを削減するために、
– 3x3 filter を 1x1にする – 3x3 filterの入力チャネル数を減らす ▪ActivationsMapのサイズを維持するために、
– Poolingは極力後段でMATLABによるディープラーニング
RCNN/FastRCNN/FasterRCNN
CNN(Series Network) Semantic Segmentation
画像分類
画像分類&
複数の物体の
認識
医用画像を題材としたセグメンテーション
Deep Learning for Semantic Segmentation
Demo :
血液検査画像から病原虫が寄生しているエリアを抽出
▪
専用Appを利用したラベリング、ラベル画像の取り扱い
▪
SegNetの定義
▪
ネットワークの評価
画像分類のタスクからセグメンテーションへ
▪ 画像分類タスク ▪ 画像内の局所
領域に対して認識
“道路標識”
× 〇面倒で手間のかかるラベリングも専用ツールで誰にでも簡単に行うことができます
起動はアプリケーションタブにある 上記のアイコンをクリックするだけ ドラッグして領域を定め ラベルを選択 ラベルは自由に設定できますTraining Image Labeler App
pxds = pixelLabelDatastore(labelDir,classes,pixelLabelID);
ラベル画像用データストア作成
SegNetの定義(1/2)
SegNetの定義
lgraph = segnetLayers(imageSize, numClasses, 'vgg16');
各ピクセルラベルの割合を計算
imageFreq = tbl.PixelCount ./ tbl.ImagePixelCount; classWeights = median(imageFreq) ./ imageFreq
計算した割合に基づき、Pixel分類レイヤを新規作成
pxLayer = pixelClassificationLayer('Name','labels’,… 'ClassNames', tbl.Name, 'ClassWeights', classWeights)
lgraph = removeLayers(lgraph, 'pixelLabels'); lgraph = addLayers(lgraph, pxLayer);
lgraph = connectLayers(lgraph, 'softmax' ,'labels');
作成したレイヤを結合
SegNetの定義(2/2)
ネットワーク構造可視化
Semantic Segmentation : 性能を示す指標について
IoU(Intersection over Union)
マゼンタ : GroundTruth
緑
: ネットワーク出力
充実したヘルプ環境
逆引き形式、豊富な例題集
>>web(fullfile(docroot, 'nnet/examples.html'))
%% 輝度ベースの自動レジストレーション(位置合せ) clear all; close all; clc;
%% 2つの画像の読込・表示
orig = dicomread('knee1.dcm'); moving = dicomread('knee2.dcm');
figure; imshowpair(moving, orig, 'montage'); %並べて表示 %% imshowpair(moving, orig);shg; %重ねて表示 %% 輝度ベースのレジストレーション実行・表示 [optimizer,metric] = imregconfig('multimodal'); % パラメタ設定 (別々のデバイス:異なる輝度範囲) optimizer.MaximumIterations = 150; % 反復回数 optimizer.InitialRadius = 0.002; % 初期検索範囲
評価キットのご案内
▪https://sft.mathworks.com/human.aspx?r=&Arg07=471196325&Arg12=fileview
▪ Username : customer ▪ Password : MathWorks ▪画像処理関係の関数や機能紹介資料と、対応するサンプルプログラムが
セットになった評価用キットを提供しています。
説明資料
サンプルプログラム
MATLAB Central
MATLAB/Simulinkユーザのオープンコミュニティー
▪ File Exchange – MATLABコード、Simulinkモデル、ドキュメント等のフリー なファイルアップロード/ダウンロード – ファイルの評価、コメント、質問の投稿 – 9,000以上のファイル、一月あたり400以上の投稿、一 日あたり25,500のダウンロード ▪ ニュースグループ – MATLAB/Simulinkに関する技術討論の場としてのウェ ブフォーラムやニュースグループ ▪ ブログ – 製品開発に関するMathWorks開発者からの投稿 – blogs.mathworks.comにアクセスして下さい。 www.mathworks.com/matlabcentralコンピュータービジョン・ディープラーニング 実装ソリューション
▪ デスクトップアプリケーション ▪ Web/エンタープライズ アプリケーションGPU Coder™
▪ NVIDIA® GPUs▪ Intel Xeon® Processors ▪ ARM® CPUs 学習済みモデルのシェア 機器・デバイスへの実装 実装/配布 GPU
“組み込みGPU
への実装”
まとめ
▪MATLAB環境で画像処理が効率的に行えます
– 直感的なプログラミング、対話型の環境 ▪豊富な関数やアプリケーションを組み合わせることで、
画像処理を専門としていない方でもすぐに始められます
▪アプリケーション作成機能、コード生成機能で結果を配布・
展開することができます
▪製品ならではの充実したドキュメントや、テクニカルサポートを
お使い頂けます
▪世界中のユーザー様、研究者様が作成されたプログラムを
利用することができます(MATLAB Central)
MATLABで研究開発のペースを加速!
© 2018 The MathWorks, Inc. MATLAB and Simulink are registered trademarks of The MathWorks, Inc. See www.mathworks.com/trademarks for a list of additional trademarks. Other product or brand names may be trademarks or registered trademarks of their
画像処理・コンピュータービジョン
Image Processing Toolbox™▪ コーナー、円検出 ▪ 幾何学的変換 ▪ 各種画像フィルタ処理 ▪ レジストレーション(位置合せ) ▪ セグメンテーション(領域分割) ▪ 画像の領域の定量評価
Computer Vision System Toolbox™
▪ カメラキャリブレーション ▪ 特徴点・特徴量抽出 ▪ 機械学習による物体認識 ▪ 動画ストリーミング処理 ▪ トラッキング ▪ ステレオビジョン・3D表示
Image Acquisition Toolbox™
▪ デバイスから画像、動画直接取り込み
▪ フレームグラバボード
▪ DCAM, Camera Link® ▪ GigE Vision®, Webカメラ
▪ Microsoft® Kinect® for Windows®
Automated Driving System Toolbox™
▪ アルゴリズム開発の支援
▪ センサーフュージョン ▪ コンピュータービジョン
▪ テスト・検証環境
▪ Ground Truth Labeling App
▪ 可視化ツール
機械学習・並列化・高速化
Statistics and Machine Learning Toolbox™
▪ 機械学習 ▪ 多変量統計 ▪ 確率分布 ▪ 回帰と分散分析 ▪ 実験計画 ▪ 統計的工程管理
Parallel Computing Toolbox
▪ MATLAB & Simulink と連携した並列処理 ▪ 対話的な並列計算実行
▪ GPGPU による高速演算 ▪ ジョブおよびタスクの制御
MATLAB Distributed Computing Server
▪ クラスタによる計算環境を提供
MATLAB Distributed Computing Server
Scheduler Parallel Computing Toolbox MATLAB デスクトップ ローカル コンピュータ 0 5 10 15 20 25 30 10-3 10-2 10-1
100Best Validation Performance is 0.01227 at epoch 26
M e a n S q u a re d E rr o r ( m s e ) 32 Epochs Train Validation Test Best
Neural Network Toolbox
▪ ニューラルネットワークの構築、学習 ▪ データフィッティング ▪ クラスタリング ▪ パターン認識 ▪ 深層学習 ▪ GPUによる計算の高速化