cilix-ai / on-the-fly-guidance

[MICCAI 2024] On-the-Fly Guidance Training for Medical Image Registration. Pre-print available in link below.
https://arxiv.org/abs/2308.15216
Creative Commons Attribution 4.0 International
29 stars 3 forks source link

交流一下关于数据准备的问题 #15

Open busyyang opened 4 months ago

busyyang commented 4 months ago

作者你们好,

最近我有一个任务是进行CT/MRI的配准,看了不少文献和方法,对于配准的过程大致有个了解,但是在数据准备阶段犯了难。

现在我想到的思路是1. 先把所有数据全部重采样到[1,1,1]的Spacing,2. 想办法进行初始对齐,我想到的办法是写一个GUI界面,通过拖动的方式让两个模态的数据先对齐,但是这样比较麻烦,写GUI需要时间,每组数据拖动也需要时间,有没有其他的比较方便一点的办法? 3. 初始对齐了后,框一个ROI区域出来,将ROI区域的数据切出来,用于训练,这样基本上满足VM等的数据输入要求,可以做一个初版的Demo.

但是,总感觉这样做数据处理就需要很长的时间,不知道是不是一个好办法?

yuelinxin commented 4 months ago

GUI的话你可以去看一下3D Slicer这个软件,里面应该是带有affine transform这个功能的。数据空间的问题需要你平衡好数据的取值范围和训练的时候的梯度问题,这个我目前也没有很好地解决,如果你有尝试欢迎来这个issue分享你的发现。关于dimension不一样的问题的话我觉得还是好解决,选取一个你认为合适的图像形状,然后做上/下采样就行了,对于模型来说只要你选的形状合理就不会有什么区别。如果你的数据只有几百对的话这样处理就还好,除了affine这步都基本上可以靠代码来完成。

busyyang commented 4 months ago

看了3D Slicer的affine transform功能,Registration with 3DSlicer,感觉并不是十分方便,调整窗和叠加显示有时候要调好久。我试了下ITK-Snap,发现这个好用,调整窗和叠加显示操作就比较好弄,手动调整位置后,直接保存结果为txt文件,还可以使用ants.Registration做进一步的迭代对齐。

在处理前我把所有的CT全部转换为RAI方向了,spacing全部重采样成[1,1,1],ants.Registration对齐后保存浮动图像,已经裁剪为CT大小一样的,虽然可能FOV不一样有的数据有黑边,但是这样也比较好了。后续根据黑边结果把需要的部分裁剪出来也方便。

使用ITK-Snap做一组affine transform,大概需要3~5分钟,几百组数据的话,这个时间还是可以接受的。