Apply a smooth dense deformation

Hi all,

I need to do the data augmentation used by the 3-D Unet work (paper link): “Besides rotation, scaling and gray value augmentation, we apply a smooth dense deformation field on both data and ground truth labels. For this, we sample random vectors from a normal distribution with standard deviation of 4 in a grid with a spacing of 32 voxels in each direction and then apply a B-spline interpolation.”

Can I achieve this with any Slicer module? Hope for some advice. Thanks a lot.


HI -

Yes, you should be able to just create a grid transform for that. This code might help get you started.

You may also create a thin-plate spline transform using SlicerIGT extension’s Fiducial Registration Wizard module. You just need to specify two markups fiducial point lists and the module creates a transform that transform each point to a corresponding point in the other list and smoothly interpolates between them. This way, you can very easily create a smoothly changing dense displacement field by just specifying a few displacement vectors.

Thanks a lot. I have done the data augmentation with Fiducial Registration Wizard module following your advice. The deformed images are satisfactory. Now I am preparing the scientific paper. I am not sure how to describe this operation as data augmentation step. Hope for some suggestions. Your help is highly appreciated!



If you use SlicerIGT modules then please cite this paper:
Ungi T, Lasso A, Fichtinger G. Open-source platforms for navigated image-guided interventions. Med Image Anal. 2016 Oct;33:181-6. doi: 10.1016/

If possible, please also cite 3D Slicer as described here.

Internally, Fiducial registration wizard module uses VTK’s thin-plate spline transform implementation. Algorithm details are described in this paper:

1 Like