Dear William,
>
> I'm using FNIRT to register an FSE T2-weighted image to an EPI T2-
> weighted image. The
> EPI image is not diffusion-weighted, so its contrast
> characteristics are pretty similar to
> that of the FSE image. The EPI image is a little bit warped by
> susceptibility artifacts, and
> I'm trying to use FNIRT to apply a similar warping to the FSE image.
>
> I got great results using FNIRT's default settings, adding --
> intmod=global_non_linear. But
> execution time was about 30-40 minutes on my machine, and it would
> really help me if I
> could cut that down substantially.
The thing that would really help here is if fnirt was aware that your
displacements are really 1D (all in the phase-encode direction). We
are working on a version like that (to use precisely for distortion
correction), but it is still a little while away.
>
> I have cropped down my reference image, and that helped a bit. I
> tried --
> subsamp=8,4,2,2, but that produced this error message when I ran
> FNIRT:
>
> New Lambda: 240
> New FWHM (mm) for --ref: 4
> New FWHM (mm) for --in: 6
> New Matrix Size: 33 33 3
> New Voxel Size: 6.875 6.875 48
> Error occurred when preparing to fnirt
> Exception thrown with message: St9bad_alloc
>
This is the same problem that was described a couple of days ago.
What you can do here is to instead set your warp-resolution to
10,10,12 rater than 10,10,10 as is now in the configuration file.
This happens because your voxel-size is 6mm in the z-direction, so
the highest resolution you can get in that direction is 2*6 (where
the 2 here refers to the final level of sub-sampling).
Another option is that you upsample your reference image by a factor
of 2 in the z-direction before you run fnirt. That way you could
still have a 10mm warp-resolution in all directions.
> Using --numproc=float, --splineorder=2, and --intmod=global_linear
> all at once produced
> time savings that were nice, but not really impressive, and the
> resulting fit wasn't nearly
> as good. I'm now in the process of restoring settings back to
> their defaults, to see which
> one messed up my fit. But that'll just make execution time longer.
The --numproc=float should NOT make a difference to your quality. I
would be very surprised if it did. Going from cubic to quadratic
splines may affect things a little, but you may be able to "fix" that
by slightly increasing the regularisation for each of the sub-
sampling steps.
>
> I'd really like to achieve the 60% time savings that I can
> supposedly get by fixing that --
> subsamp bug. Any suggestions?
See above.
> For what it's worth, both my input and reference images have 22 cm
> FOV, 256x256
> matrix, 6 mm slice thickness (although I have cropped down the
> reference image).
In general I would advice you to try and use more isotropic voxels.
Those voxels of yours are almost match-shaped. Great when you are eye-
balling an image in the original resolution, not so great as soon as
you start to perform some kind of processing on the 3D volume.
Good luck Jesper
|