超声图像模拟
最近,因项目前期数据需求,需要将CT图像模拟生成超声图像,那么第一个问题来了,好好的CT图像为什么要模拟生成超声图像呢?超声成像模拟是利用已有的三维医学影像(如CT图像)数据,模拟生成超声成像过程得到虚拟超声成像技术 ,可以广泛应用于超声引导手术、图像处理、超声培训等。如果需要利用神经网络处理超声图像,那么前期的数据增强是不是可以这么做呢?当然这只是我的臆想,比如说利用U-Net(2D或3D),FCN与Mask-RCNN进行分割?哎呀,跑题了。
由于才开始看这方面的文章,了解不深,查了部分资料或论文如下:
a.《Fast and Automatic Ultrasound Simulation from CT Images》
c.《基于CT的超声成像模拟》
d.《Medical Image Synthesis with Context-Aware Generative Adversarial Networks》
e.《Real-Time Simulation of Medical Ultrasound from CT Images》
原本看到前两篇论文,以为找到了救命稻草,结果找不到源码,就按照作者所给公式自己编写,才发现仅仅几个公式根本无法到达预期效果。所以又查阅了很多文献,了解到一个Field_II方法,直接百度Field II或者点击Field II即可。
接下来,我以kidney_phantom_example为例,记下了其调试的详细过程:
(1)首先,下载源代码
下载之后得到的源码,Field_II_ver_3_24_windows_gcc解压后如下:
(2)下载kidney_phantom_example代码:
解压后得到的代码为:
(3)代码都准备好了,接下来是如何操作运行了?请见操作教程,这里以kidney_phantom_example为例:
1)将代码导入到matlab中,运行make_scatterers.m,得到pht_data.mat,结果如下:
2)为了简洁,添加六行代码,如下:
这时候运行,你会发现,报错了!!!为什么??
怎么办?怎么办?怎么办?初始化!!!
3)初始化,运行field_init,如下:
4)现在运行sim_kidney.m文件:
看到这个结果,心里是不是很畅快?没错,这说明代码已经跑通啦!!!
(4)注意,这个迭代的速度特别慢,没生成一个rf_lni.mat文件需要10min,没错,真的是10分钟。一共需要生成128个,一共要21.3小时。啥意思,一张CT图像,需要经过21小时才能模拟生成一张与之对应的超声图像!!!我当时震惊到了,先看看效果:
效果也并不是太好,马马虎虎。那么为什么当时不选择用并行加速呢?从代码的结构可以看出,for i=1:128 。。。 end,每次迭代之间相互独立,完全可以并行加速!
小结:kidney_phantom_example运行的过程如下:
参考网址
1、https://blog.****.net/qq_34018578/article/details/73027207
2、https://blog.****.net/qq_34018578/article/details/74772103#comments