users > Metrics, global or local
Showing 1-2 of 2 posts
Display:
Results per page:
Nov 13, 2018  10:11 AM | Greg Fleishman
Metrics, global or local
I looked around in the help outputs and documentation for the answer to this question but couldn't find it. I took a look at the source code as well, and it would be non-trivial to find the answer amongst the hundreds of files, so I'm posting here. CMTK offers metrics:

nmi
mi
cr
msd
ncc

When performing a registration, which of these metrics is computed globally over the whole image, and which are computed locally over neighborhoods? Some are obvious, e.g. msd doesn't normalize for any intensity statistics, so it's degenerately global (no local normalization) and local (uses single voxel neighborhoods). I suspect the mi metrics are global, because you want as many samples as possible to construct the histograms. So, in particular, I'm wondering about cr and ncc. When considering the "mean" and "standard deviations" in these functionals, are they computed from all voxels in the image, or locally for neighborhoods around each voxel.

Follow up question, is it different when computing the functional value vs. computing the residual (gradient of functional)?

Thanks very much in advance!
Nov 14, 2018  06:11 PM | Torsten Rohlfing - Google LLC
RE: Metrics, global or local
Hi Greg -

Unless I misunderstand your question, the answer is, all similarity metrics are computed globally. None of them are computed for local neighborhoods only.

In terms of gradients - these are computed strictly by finite difference approximation, so the computation of each gradient component involves two evaluations of the global metric.

There is an implementation detail that may obscure this fact for the nonrigid transformations - when computing derivatives w.r.t. one of the B-spline control points, the metric is only updated for voxels in the neighborhood affected by that control point. BUT this is done by selective substitution of samples into the global metric. So the metric as such remains global.

Hope this answers your question.

Torsten

Originally posted by Greg Fleishman:
I looked around in the help outputs and documentation for the answer to this question but couldn't find it. I took a look at the source code as well, and it would be non-trivial to find the answer amongst the hundreds of files, so I'm posting here. CMTK offers metrics:

nmi
mi
cr
msd
ncc

When performing a registration, which of these metrics is computed globally over the whole image, and which are computed locally over neighborhoods? Some are obvious, e.g. msd doesn't normalize for any intensity statistics, so it's degenerately global (no local normalization) and local (uses single voxel neighborhoods). I suspect the mi metrics are global, because you want as many samples as possible to construct the histograms. So, in particular, I'm wondering about cr and ncc. When considering the "mean" and "standard deviations" in these functionals, are they computed from all voxels in the image, or locally for neighborhoods around each voxel.

Follow up question, is it different when computing the functional value vs. computing the residual (gradient of functional)?

Thanks very much in advance!