Heat Kernel Smoothing on Manifolds

(c) Moo K. Chung   mkchung@wisc.edu

Department of Biostastics and Medical Infomatics
Waisman Laboratory for Brain Imaging and Behavior
University of Wisconsin-Madison


Description
May 26, 2010

Gaussian kernel smoothing has been widely used in 3D brain images to increase the signal-to-noise ratio. The Gaussian kernel weights observations according to their Euclidean distance. When the observations lie on a convoluted brain surface; however, it is more natural to assign the weight based on the geodesic distance along the surface [1-3]. On a curved manifold, a straight line between two points is not the shortest distance so one may incorrectly assign less weights to closer observations. Therefore, smoothing data residing on manifolds requires constructing a kernel that is isotropic along the geodesic curves. With this motivation in mind, we construct the kernel of a heat equation on manifolds that should be isotropic in the local conformal coordinates, and develop a framework for heat kernel smoothing on manifolds. The codes have been tested under MATLAB 7.5.

If you are using the Matlab codes/sample data for your publication, please reference [1] or [2] in References.

Gaussian kernel smoothing
August 16, 2011

Heat kernel smoothing generalizes Gaussian kernel smoothing. Here we present a 2D version of Gaussian kernel smoothing as an example. The original binary image toy-key.tif is contaminated with Gaussian white noise N(0,2^2).

signal= imread('toy-key.tif');
signal=(double(signal)-219)/36; % makes the image into real numbers between 0 and 1.
figure; imagesc(signal); colormap('bone'); colorbar

noise= normrnd(0, 2, 596, 368);
f = signal + noise;
figure; imagesc(f); colormap('bone'); caxis([0 1]); colorbar

The noisy image went though Gaussian kernel smoothing with 10 and 20 FWHM to recover the signal (Figure 1).

F = gaussblur(f,100);
figure; imagesc(F); colormap('bone'); caxis([0 1]); colorbar



Figure 1. The orignal binary image was contaminated with Gaussian white noise N(0,2^2). Gaussian kernel smoothing with 10 and 20mm FWHM were performed to recover the original image.


Heat kernel smoothing on brain surfaces
May 26, 2010

The reason that the code is short and simple is that it has been implemented as iterative kernel smoothing with very small bandwidth. For small bandwidth, a heat kernel converges to a Gaussian kernel. For details on heat kernel smoothing, please read [1] or [2].

For MNI format, use the following lines to load a mesh into MATLAB. For this, you need to download the following codes:

[tri,coord,nbr,normal]=mni_getmesh('outersurface.obj');
surf.vertices = coord;
surf.faces=tri;
For FreeSurfer format, use the following code to load a mesh into MATLAB. FreeSurfer mesh data into MATLAB. The FreeSurfer package produces cortical meshes with different mesh topology for different subjects. The FreeSufer mesh format starts the face indexing from zero while the MATLAB can not handle zero indexing so we need to inrease the indexing by one.

mesh='lh.pial'
[surf.vertices, surf.faces] = read_surf(mesh);
surf.faces=surf.faces+1;
figure_wire(surf,'white','white');


To perform heat kernel smoothing using function
hk_smooth, we generate 134506 uniform random numbers between 2 and 6mm. This simulated cortical thickness is smoothed out using heat kernel smoothing with bandwidth 1 and 20 iterations (Figure 2).

input=random('unif',2,6,[134506,1]);
figure_trimesh(surf,input,'rwb')
output=hk_smooth(input,surf,1,20);
figure_trimesh(surf,output,'rwb')

Figure 2. Heat kernel smoothing of real (top) and simulated (bottom) data with different number of iterations. Simulation detail is given in [1].



Heat kernel smoothing of mandible surface
October 26, 2015


As an application of heat kernel smoothing, we show how to smooth a closed surface topologically equivalent to a sphere.

hk_smooth2 is a modified version of hk_smooth takes vector data in the first argument. Now we take three coordinates in the form [x y z].

sigma=1;
n_smooth=10;
ss.vertices=hk_smooth2(surf.vertices,surf, sigma, n_smooth);
figure; figure_patch( surf,[0.74 0.71 0.61],0.7);


References
May 26, 2010


  1. Chung, M.K., Robbins,S., Dalton, K.M., Davidson, Alexander, A.L., R.J., Evans, A.C. 2005. Cortical thickness analysis in autism via heat kernel smoothing. NeuroImage 25:1256-1265
  2. Chung, M.K., Robbins, S., Evans, A.C. 2005. Unified statistical approach to cortical thickness analysis. Information Processing in Medical Imaging (IPMI). Lecture Notes in Computer Science (LNCS) 3565:627-638. Springer-Verlag.
  3. Chung, M.K. 2004. Heat kernel smoothing and its application to cortical manifolds. University of Wisconsin-Madison, Department of Statistics, Technical Report 1090.

Created 02/05/2005.
Update history 01/13/2006, 11/28/2006, 09/05/2007, 09/22/2007
05/26/2010 it can now smooth FreeSurfer mesh format.