MONAI简介:
https://blogs.nvidia.com/blog/2020/04/21/monai-open-source-framework-ai-healthcare/
https://medium.com/pytorch/monai-public-alpha-is-now-available-54b79f5532aa
https://github.com/Project-MONAI/MONAI

就先简单按源码这个结构来吧:

1 apps:

dataset.py:这个文件中定义了两个常见的数据集的Dataset类:MedNISTDataset和DecathlonDataset,继承父类Randomizable, CacheDataset,里边分别定义了随机数,和cachedataset的形式。
utils.py:定义了一些通过url下载文件,验证MD5,解压数据集的code
2 config:

deviceconfig.py:获取系统的一些版本配置信息
type_definitions.py:这个我没看太明白,貌似是给两个贯穿MONAI的概念定义了名字和类型,为了统一的使用。
定义了KeysCollection和IndexSelection
3 data:???

1 csv_saver.py
# 保存dict的结果到csv文件,预测结果之类的,可以save单个数据,也可以savebatch,finalize写入文档。有一点存疑,在overwrite为False并且存在文件时,他会先读取已有文件中的信息,保存到要写入disk的dict中,但是我担心他遇到key值相同的情况怎么办???
2 dataloader.py
# 普通的dataloader,继承自pytorch原生的,没发现什么特殊的地方目前
3 dataset.py
# 有几个自定义类以及一些应用函数
# class Dataset,继承自pytorch原生Dataset,看这一层没有什么特殊的,具体的要看transform和读取了
# class PersistentDataset,继承自自定义的Dataset,顾名思义他会将非随机性的transform(这里是读取标准化之类的操作)在第一次时做好,保存到硬盘里,后边就直接读取了,不再每次再做重复操作了。
# 注:这里用到了pathlib模块(相比os.path,nested -> chained,且os太过臃肿,还有一些其他的小区别)
# class CacheDataset,继承自自定义的Dataset,也是先处理一下非random的操作,但是这个是存在内存中的,内存大的服务器就很香了
# class ZipDataset,继承自自定义的Dataset,貌似是处理同时多个dataset的情况,这个我还没具体用过
# class ArrayDataset,继承自Randomizable和pytorch的dataset,多个数据集的话里边也用到了ZipDataset。还有些疑问我没看到他做增广啊???这个和zipdataset到时还需细看一下???
4 decathalon_datalist.py
# 感觉就是几个和十项全能数据及有关的代码
5 grid_dataset.py???
class GridPatchDataset(IterableDataset): 
#我这个阅读代码能力有些减弱了,没看太明白,但是大概意思是,把array分成块,生成出来,好像块儿与块儿之间没有overlap???
IterableDataset就没看太懂,itertool相关的东西还需要巩固。还有多线程的东西掌握也不好
6 nifti_reader.py
class NiftiDataset(Dataset, Randomizable):
# 常规载入Nifiti格式数据的一个Dataset类,里边比较复杂的是用到了monai.transforms 里边的 LoadNifti
7 nifti_saver.py
class NiftiSaver:
# 一个保存数据为Nifti格式的类。支持的输入数据格式可以为单个数据,也可以是一个batch的数据。一般来说保存的都是分割的预测结果。保存时用到了write_nifti函数。
8 nifti_writer.py
def write_nifti(...):
# 考虑了几种情况,是不是需要affine;channel调整的问题;
9 png_saver.py
10 png_writer.py
# 类似于Nifti格式,使用的PIL包来处理
11 synthetic.py
# 。。。我看是生成噪声图 和 一堆重叠圆的test图。。。没发现什么实际意义
12 utils.py ???
# 很多小工具,还没细看???
11 synthetic 效果

 
                   
                   
                   
                   本文深入解析MONAI框架,涵盖其核心组件如Dataset、Transforms、Inferers等,以及Ignite引擎的应用,适合医疗影像AI开发者参考。
本文深入解析MONAI框架,涵盖其核心组件如Dataset、Transforms、Inferers等,以及Ignite引擎的应用,适合医疗影像AI开发者参考。
           最低0.47元/天 解锁文章
最低0.47元/天 解锁文章
                           
                       
       
           
                 
                 
                 
                 
                 
                
               
                 
                 
                 
                 
                
               
                 
                 扫一扫
扫一扫
                     
              
             
                   6456
					6456
					
 被折叠的  条评论
		 为什么被折叠?
被折叠的  条评论
		 为什么被折叠?
		 
		  到【灌水乐园】发言
到【灌水乐园】发言                                
		 
		 
    
   
    
   
             
            


 
            