[MINC-users] best_nonlin_reg.pl ?

Andrew Janke a.janke at gmail.com
Tue Mar 1 18:41:52 EST 2011


> The difference as he mentions in his paper is that he doesn't start
>> fitting from scratch at each step. volgenmodel does but there are
>> other reasons for this.
>
> What are some of the reasons for this?

Mainly philosophical. :)

A bit of a history lesson...

Many moons ago (2000?), Alexandre Guimond started to do recursive
fitting of the ICBM database to itself, the problem at the time
(beyond computation time) was that the model was unstable. It would
continue to grow. I then visited the MNI (2002?) and decided to have
another crack at this a few years on not even realising it had been
done before. Louis Collins pointed me to what Alexandre had been doing
and between the two of us we surmised that the problem was possibly a
registration bias/overshoot. So I added an extra step of averaging
transformations and removing this from the average at each iteration.
At the time we were also fitting both the original data and a mirrored
version in order to make a symmetric model.

This seemed to make the whole process more stable and as such we
managed to make the first iteration of what became known as the
nonlinear ICBM model. This was included in a release of FSL at some
stage.  Around this time a rather clever Austrian who had worked with
me in Oz also visited the MNI (Gunther Grabner) and we decided to try
the same technique on some elderly data. In short he polished off a
lot of rough edges and published a conference abstract on this.

   Grabner G, Janke AL, Budge MM, Smith D, Pruessner J, Collins DL.
Symetric Atlasing and Model Based Segmentation: An Application to the
Hippocampus in Older Adults. Medical Image Computing and Computer
Assisted Intervention (MICCAI) 2006.

Then things exploded.

Alex + Claude then optimised the whole process for the ICBM dataset:

   http://packages.bic.mni.mcgill.ca/tgz/mni-models_icbm152-nl-2009-1.0.tar.gz

As part of this they (or was it Vlad? I forget) produced an "optimal"
fitting scheme for heads

# ICBM nlin conf

@conf = (
   {'step' => 32, 'blur_fwhm' => 16, 'iterations' => 20},
   {'step' => 16, 'blur_fwhm' => 8,  'iterations' => 20},
   {'step' => 12, 'blur_fwhm' => 6,  'iterations' => 20},
   {'step' => 8,  'blur_fwhm' => 4,  'iterations' => 20},
   {'step' => 6,  'blur_fwhm' => 3,  'iterations' => 20},
   {'step' => 4,  'blur_fwhm' => 2,  'iterations' => 10},
   {'step' => 2,  'blur_fwhm' => 1,  'iterations' => 10},
   );

Vladimir Fonov made a bunch of changes, made the pediatric models and
published a paper on another bunch of models using the same technique
for some MS? data with Zografos (Aki) Caramanos.

At the time, I was using a loosely cobbled together directory of shell
and perl scripts to make the whole process happen, the main reason for
this was that my original ICBM models took 3 months to complete across
a rough and ready linux cluster. Vlad made a lot of progress turning
this all into a nice script to do everthing in one but it was in Ruby
(for dependency tracking) and he used all sorts of (clever) special
sauce of his own via resampling with ITK and registration with ANTS?
in short it would have been slightly difficult to distribute. Vlad
also changed the fitting procedure and as such all the rest of us
copied in that we all started fitting the model to the individual. The
reason for this was that it made the xfm averaging much more straight
forward.

I then wrote volgenmodel for my own purposes with dependencies on
distributed MINC things only. So, there will be differences the main
one being the fitting strategy whereby volgenmodel starts from the
initial linear xfm at each fitting stage and Vlads starts from the
previous nonlinear xfm. Certainly this will mean that Vlad's approach
will be faster. The reasoning for starting from the linear xfm was to
avoid continually fitting to a local minima. This was a problem I
originally experienced with minctracc. It possibly is no longer a
problem but I haven't checked so prefer to leave things as they were.
Remember also that Vlad wasn't using minctracc for his nonlinear
fitting so perhaps this is more a difference in ANTS vs minctracc.

So, yes they are different. The idea is still the same but the devil
is often in the details. What is also clear is that the fitting scheme
can vary quite a bit dependant on what you are fitting.

a


PS: For all those involved sorry if I got the timeline wrong somewhere
things really did explode and I never really kept track of everything.


More information about the MINC-users mailing list