NiftyNetはTensorFlowをベースにした医療画像用Deep Learningツールであり、プラットフォームです。
日本語資料が無かったため、ここで紹介します。
特徴としては、
NIfTIファイルなどの医療画像特有のファイル形式に対応している点
設定をconfigファイルに書くだけでDeep Learningができる点
が挙げられます。
自分でコードを書いて実装する必要が無いため、KerasやPyTorchよりも簡単にDeep Learningをすることができます。
使用できる機能として4つありました。
1.image segmentation (3D U-NetやV-Netなど)
2.image regression (segmentationのような分類ではなく画素値予測。例えばMRI画像からCT画像を予測する)
3.image model representation (VAEによる)
4.image generation (GANやVAEを用いる)
参考文献
開発者のサイト:https://niftynet.io/
論文:https://www.sciencedirect.com/science/article/pii/S0169260717311823?via%3Dihub
Gibson E, Li W, Sudre C, Fidon L, Shakir DI, Wang G, Eaton-Rosen Z, Gray R, Doel T, Hu Y, Whyntie T, Nachev P, Modat M, Barratt DC, Ourselin S, Cardoso MJ, Vercauteren T. NiftyNet: a deep-learning platform for medical imaging. Comput Methods Programs Biomed. 2018 May;158:113-122. doi: 10.1016/j.cmpb.2018.01.025. Epub 2018 Jan 31. PMID: 29544777; PMCID: PMC5869052.
#インストール
Anacondaでpipを使ってインストール出来ました。(niftynetのversionは、0.6.0がインストールされました。)
pip install tensorflow-gpu==1.14.0
pip install niftynet
###エラー情報
RTXの2070、2080のGPUを使用した場合では、なぜかCUDAエラーで出来なかったため一応書いておきます。
#デモを動かす
インストールしたら、以下コマンドでデモをダウンロードできます。
net_download dense_vnet_abdominal_ct_model_zoo
ホームフォルダに「niftynet」というファルダができ、そこにダウンロードされました。
extensionsのdense_vnet_abdominal_ctフォルダの中にあるconfigファイル(config.ini) を見てみると、設定を見ることができます。
configファイルの項目の説明と書き方についてはサイトに丁寧に書かれています。
では、セグメンテーションを実行してみましょう。
net_segment inference -c ~/niftynet/extensions/dense_vnet_abdominal_ct/config.ini
segmentation_outputフォルダが作成され、セグメンテーション結果が出力されました。
追記(2020/07/01)
残念ながら2020年の4月にNiftyNetの開発は中断され、現在はPyTorchベースのMONAIに移行したようです。
https://monai.io/
これからはこちらに注目していきたいです。