users > Metrics, global or local
Showing 1-2 of 2 posts
Nov 13, 2018 06:11 PM | 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!
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 15, 2018 02:11 AM | Torsten Rohlfing
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:
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!
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!