深度学习(神经网络)模型可以用来提升图像分辨率,通常称为Super Resolution的方法。
具体来讲,模型的input为低分辨图像,output为高分辨图像,模型训练时需提供真实的低分辨与高分辨图像,训练后的模型可以从新的低分辨图像中推理出高分辨的图像。推理出来的图像不是真实的高分辨图像,称为超分辨(super resolution)图像。
该模式的神经网络的input和output均为灰度值图像。与之不同的是,图像分割的神经网络的input为灰度值图像,output为区域标记即分类;因此,图像分割模型属于分类模型,超分辨模型属于回归模型。
工具:Dragonfly 3D World软件(重点是深度学习工具 Deep Learning Tool)
注:Segmentation Wizard工具是针对图像分割模型的,不适用于回归模型例如这里的super resolution.
素材:同一个样品的两次CT扫描图像(低分辨、高分辨)。
步骤:
1. 对低分辨和高分辨两组图像进行空间配准
2. 对高分辨图像数据进行重新采样(此步骤根据后面模型设定不同,有两种采样方式)
注:便于学习本文附有两组经过配准和采样的图像数据。使用此数据可略过上述两步。
3. 在Deep Learning Tool工具里对模型进行训练
注:通常不会在整个CT图像的所有slice上都进行训练,而是选一些局部
4. 在未参与训练的低分辨图像上检验模型效果
下载数据(链接:https://pan.baidu.com/s/1a26MNkwEGyaz5I3NsoyEjQ?pwd=jqrk )
train_input.ORSObject:训练模型时提供给模型的输入图像,即低分辨图像(该图像是对原始低分辨图像进行重采样,使其像素点大小和下面的高分辨图像完全一样)
train_output.ORSObject:训练模型时提供给模型的输出图像,即高分辨图像(已与上面的低分辨图像进行了高精度的空间配准,同时两组图像的空间范围也裁剪成完全一样,即两个数据具有同样大小和数目的像素点、因此也具有同样大小的Box)
test_mask.ORSObject:测试集区域(通过ROI遮罩来定义)
train_mask.ORSObject:训练集区域(通过ROI遮罩来定义)
visual_feedback.ORSObject:用来显示视觉反馈的区域(通过区域工具来定义)
导入上述五个对象文件到Dragonfly 2024.1,可以观察和对比一下input低分辨图像和output高分辨图像:
打开Artificial Intelligence主目录下面的Deep Learning Tool菜单,选择U-Net架构(注意除U-Net外还有其它架构可以用以super resolution),Model type改为Regression(如上文所述,该模型是回归模型),输入模型名称(可输入任意文字包括中文),其它参数可以保持默认值:
模型创建之后,就可以进入训练环节了。这里再次强调一下:使用U-Net模型进行super resolution时,input和output的图像必须配准并且具有一致的geometry(像素点大小与数目)。在模型架构下拉框里还可以看到其它模型,另外一些模型比如U-Net SR和WDSR是允许input和output的像素点大小成比例(例如input图像每个像素点为4微米,output图像每个像素点1微米,创建模型的时候选择比例Scale为4)。
以下为U-Net模型的训练设置页面:
设置完模型之后点击Train按钮开始训练。下面是训练过程中的截图(正在进行第10个epoch,前一个epoch训练好的模型在visual feedback区域进行了推理,推理结果呈现在右侧,有助于观察模型每次epoch之后的性能改善:
训练后的模型可以用Deep Learning Tool 底部的Apply进行“推理”(即应用到低分辨图像上产生新的图像,推理出来的图像成为超分辨图像):
下图显示的是经过10次epoch训练之后的U-Net回归模型对上文中展示的低分辨图像进行推理后得到的超分辨图像:
如上文所述,某些模型架构(UNet SR, WDSR等)的设计是允许input低分辨图像与output高分辨图像具有不一样的像素点大小。我们准备的第二组实验数据即符合该类模型,欢迎大家下载和自行尝试。
下载数据(链接:https://pan.baidu.com/s/1h_03SmODxVQRsPygXqHNdw?pwd=whf8 )
train_input.ORSObject:训练模型时提供给模型的输入图像,即低分辨图像,像素点大小为0.0235405 mm.
train_output.ORSObject:训练模型时提供给模型的输出图像,即高分辨图像,经过配准和重新采样后的高分辨(HR)图像的像素点大小为0.0047081 mm,因此两组图像的分辨率的倍数为5.
test_mask.ORSObject:测试集区域(通过ROI遮罩来定义)
train_mask.ORSObject:训练集区域(通过ROI遮罩来定义)
visual_feedback.ORSObject:用来显示视觉反馈的区域(通过区域工具来定义)
*UNet 和 UNet SR/WDSR/EDSR 模型在使用上的差别:
(1)常规的UNet模型除了广泛用在图像分割上,也一样可以用在Super Resolution。使用常规UNet模型,需要input和output两组图像具有完全一样的像素点大小和数据。
剑指苍穹,工具齐全,破云斩雾任我行
智剑凌云,算法无双,破阵穿风学者行
神经网络深似海,研精覃思智慧来。
逻辑交织巧迭代,深度学习展神采。
借助先进的深度学习引擎,Dragonfly利用AI模型进行图像增强和全自动图像分割。
这就是Dragonfly 3D World,一款功能强大的三维图像数据可视化及分析软件!