- 使い方:フォルダ管理システム
- 使い方:校正ソフトウェアDojo
- 使い方:3D Annotator
- 使い方:2次元CNNを用いたセグメンテーション
- 使い方:3次元FFNを用いたセグメンテーション
- 使い方:2D/3Dフィルタ
- 適用事例1:2次元CNNによるミトコンドリアのセグメンテーション
- 適用事例2:3次元FFNによる細胞膜のセグメンテーション
UNI-EMによる2D CNNセグメンテーションの一例として、ATUM/SEMによって連続断層撮影されたMouse somatosensory cortexのミトコンドリアのセグメンテーションを行います。撮影データは ISBI 2013 challenge (SNEMI3D) において用いられたものをそのまま使用させて頂いております。同データを用いた論文は Kasthuri et al. ( Cell 162(3):648-61, 2015 ) に出版されました。その後EM画像は Open Data Commons Attribution License (ODC-By) v1.0 ライセンスのもと公開されています。EM画像には、使用前に Contrast Limited Adaptive Histogram Equalization (CLAHE)フィルタを通しました (blocksize 127, Histogram bins 256, max slope 1.50) 。
- https://neurodata.io/data/kasthuri15/
- https://opendatacommons.org/licenses/by/1-0/
- http://docs.neurodata.io/kasthuri2015/kasthuri15docs.html
下の ExampleCNN.zip をダウンロードして展開してください。"TrainingImages" にトレーニング画像が、"GroundTruth" に教師セグメンテーションが入っています(Fig. 1.1)。ほか "TestImages" に推論用の画像が入っています。"GT_annotation", "Proofread"は空フォルダです。提供された教師セグメンテーション用いて、次セクション「2次元CNNのトレーニングと推論」から始めても構いませんし、下の手順に従ってDojoを用いて教師セグメンテーションを作成することもできます。
- "Example2CNN.zip": https://www.dropbox.com/s/k73vlvyru1p3qei/Example2CNN.zip?dl=0
Figure 1.1. Training EM image and mitochondria ground truth segmentation
-
UNI-EMを起動してください。
-
ExampleCNN中の"TrainingImages"および"GT_annotation"フォルダをUNI-EM上にドラッグ&ドロップしてください。Fileドロップダウンメニューを開いて、2つのフォルダが開かれたことを確認してください。
-
UNI-EM上端のFileドロップダウンメニュー → Create Dojo Folder を選択して、Create Dojo Folderダイアログを起動してください(Fig. 1.2)。
-
Source Image Folder を "TrainingImages" に設定してください。
-
Use blank segmentationをチェックして Segmentation folderを無効にしてください。
-
Destination Dojo Folder を "GT_annotation" に設定してください。GT_annotationフォルダ中にDojo形式でファイルが保存されます。
Figure 1.2. Importing a training image to Dojo
- Create Dojo Folderダイアログ最下段の OK をクリックして、Dojoファイルの生成を行ってください。
- Dojoドロップダウンメニュー → Open Dojo Folder を選択して、ダイアログよりGT_annotationを選択してください。Dojoが起動します。
- 下段のSliceバー(Fig. 1.3a)、上段のZoomバー(Fig. 1.3b)を動かして、Dojoの動作を確認してください。
- ひょうたん形状のAdjustボタンをクリックして(Fig. 1.3c)、AdjustモードにしてくださいPaintID (既定ID[255]のままで) 下の色パネルをクリックしてください。ID 255のペイントモードになり、カーソル円が現れます ([=/-] で拡縮可)。ミトコンドリア部分をペイントしてセグメンテーション像を作成してください(Fig. 1.3 赤矢印)。Tabボタンを押すとペイントが反映されます。Escボタンを押すとキャンセルになります。また、消しゴムをクリックしたのち、余分な部分をドラッグして余分な部分を削ってください。Tabボタンで消去を反映し、Escボタンで消去をキャンセルします。
- ミトコンドリアのペイントが終了したら、ドロップダウンメニューより Dojo →Save Dojo Folderとしてペイント結果を保存してください。
- ドロップダウンメニューより Dojo →Export Segmentationとして、ペイント結果を保存します。Formatを"PNG, 8bit, Grayscale" としてくださいFilenameは空欄で結構です。OKをクリックしてダイアログより保存先フォルダを指定すると、ペイント結果(教師セグメンテーション像)が0000.pngとして保存されます。同教師セグメンテーション像をGroundTruthフォルダ内に置いてください。
Figure 1.3. Drawing ground truth segmentation
-
UNI-EMを起動してください。
-
ExampleCNN中の"TrainingImages", "GroundTruth", "TestImages", "TestSegmentation", "Proofreading"フォルダをUNI-EM上にドラッグ&ドロップしてください。Fileドロップダウンメニューを開いて、5つのフォルダが開かれたことを確認してください。
-
UNI-EM上端のドロップダウンメニューより Segmentation → 2D DNN を選択して、2D DNNダイアログを起動してください(Fig. 2a)。
- Training タブを選択してください(Fig. 2b)。
- Image Folderを"TrainingImages" に(Fig. 2c)、Segmentation Folderを"GroundTruth"に(Fig. 2d)設定してください。また Checkpoint Folder ("[UNI-EM]/data/DNN_model_tensorflow") が存在することを確認してください(Fig. 2e)。
- ミトコンドリアのセグメンテーションにはResnetが最適であるため(参考1)、中段 Generator タブにて resnet を選択し(Fig. 2f)、 N res blocks を 16 に設定します(Fig. 2g)。
- 必要であれば、右列下段の "Save Parameters" をクリックしてパラメータを保存してください。"Load Parameters" をクリックすると保存したパラメータを呼び出すことができます。
-
Training タブ最下段の Execute をクリックして、トレーニングを開始してください(Fig. 2h)。コンソールに起動に関するメッセージが現れたのち、プログレスメッセージが現れます(下)。トレーニング時間はNIVIDA GTX1070 GPUを搭載したPCで6分程度です。"saving model"と表示されたら、Trainingは終了です。トレーニング期間中、Segmentation → Tensorboard を選択して、"[UNI-EM]/data/DNN_model_tensorflow" フォルダを指定すると、トレーニングの進捗をグラフ表示することができます。 ここで、… remaining 6 min はトレーニングに後6分かかることを示します。
progress epoch 49 step 1 image/sec 5.2 remaining 6 min
discrim_loss 0.49639216
gen_loss_GAN 0.41848987
gen_loss_classic 0.13485438
recording summary
progress epoch 99 step 1 image/sec 5.5 remaining 5 min
discrim_loss 0.69121116
gen_loss_GAN 0.73412275
gen_loss_classic 0.13613938
...
...
progress epoch 1999 step 1 image/sec 7.3 remaining 0 min
discrim_loss 0.715416
gen_loss_GAN 2.1579466
gen_loss_classic 0.04729831
saving model
-
2D DNNダイアログのInferenceタブを選択してください(Fig. 2b)。
- 最上段のImage Folderを"TestImages"に、Output Segmentation Folderを"TestSegmentation"に設定すると共に、Checkpoint Folder が"[UNI-EM]/data/_2DNN_model_tensorflow" であることを確認してください。
-
Inferenceタブ最下段の Execute をクリックして、推論を開始してください。コンソールに起動に関するメッセージが現れたのち、次の様なプログレスメッセージが現れます。"evaluated image 0099"と表示されたら、Inferenceは終了です。
parameter_count = 68334848
loading all from checkpoint
evaluated image 0000
evaluated image 0001
evaluated image 0002
...
...
evaluated image 0097
evaluated image 0098
evaluated image 0099
- Output Segmentation Folder "TestSegmentation に推論結果ファイル 0000.png, 0001.png, ..., 0099.png が保存されていることを確認してください。
Figure 2. 2D DNN training dialog
-
UNI-EM上端のドロップダウンメニューより Plugins → 2D/3D Filters を選択して、Filters ダイアログを起動してください(Fig. 3)。
- Binary (二値化) および3D Label (3次元ラベル)をFilter Application 欄にドラッグ&ドロップしてください(Fig. 3a)。
- Target Folder を "TestSegmentation" に設定してください(Fig. 3b)。
- Output Folder も "TestSegmentation" に設定してください(Fig. 3c)。
- Target Folder 内画像のサムネイルが Target image に表示されていることを確認してください(Fig. 3d)。"Obtain sample output"ボタンをクリックすると(Fig. 3e)、二値化・3次元ラベリングフィルタの処理結果が表示されます(Fig. 3f)。
-
Execute ボタンをクリックして、二値化+3次元ラベリングの適用を行ってください(Fig. 3g)。コンソールに次の様なプログレスメッセージが現れ、フィルタ処理後の画像がOutput Folder中に保存されます。
Loading images ...
Saving images ...
2D/3D filters were applied!
Figure 3. 2D/3D Filters
-
UNI-EM上端のドロップダウンメニューより File → Create Dojo Folder を選択して、ダイアログを起動してください。
- Source Image Folder を "TestImages" に設定してください。
- Source Segmentation Folder を "TestSegmentation" に設定してください。
- Destination Dojo Folder を "Proofreading" に設定してください。
-
Create Dojo Folder ダイアログ最下段の OK をクリックして、Dojoファイルの生成を行ってください。
-
Dojoドロップダウンメニュー → Open Dojo Folder を選択して、ダイアログより"Proofreading"を選択してください。Dojoが起動します(Fig. 4a)。
-
下段のSliceバー(Fig. 4b)、上段のZoomバー(Fig. 4c)、Opacityバー(Fig. 4d)を動かしつつ、セグメンテーションの正確さを視覚的に確認してください。
-
不正確なセグメンテーションを校正する場合は、ひょうたん形状のAdjustボタンをクリックして(Fig. 4e)、Adjustモードにしてください。欠損がある部分に向かってカーソル円(=/-で拡縮)をドラッグすると欠損を埋めることができます。欠損を埋めたのち、Tabボタンを押して変更反映してください。Escボタンを押すとキャンセルになります。また、消しゴムをクリックしたのち(Fig. 4f)、余分な部分をドラッグして余分な部分を削ってください。Tabボタンで消去を反映し、Escボタンでキャンセルします。
-
十分に校正ができたら、セグメンテーションを保存してください。また、UNI-EM上端のドロップダウンメニューより Dojo → Export Segmentation を選択することにより、校正したセグメンテーションファイルをpng/tiff形式で保存することができます。
-
UNI-EM上端のドロップダウンメニューより Annotator → Open を選択して3D Annotatorを開いてください。セグメンテーションしたミトコンドリアの3次元形状の視覚化・保存、名前づけ(アノテーション)、Markerの設置ができます(Fig. 4g)。詳細な使い方は使い方:3D Annotatorをご覧ください。
Figure 4. Proofreader Dojo and 3D Annotator
- (参考1) Dr. Torsten Bullmann がミトコンドリアのセグメンテーションのために最適なモデルを探索しています。