2D Image Registration

August 17, 2018 ยท View on GitHub

Medical data from volunteers used in the examples was anonimized.

2D Image Registration

Breathing Motion

Perfusion

examples_ptv/perf.m

Groupwise 2D registration with nuclear metric. Extreme breathing motion.

Figure: input images; registered images; tracking animation;

MOLLI

examples_ptv/molli.m

Groupwise 2D registration with nuclear metric. Breathing motion. Notice contrast inversion.

Figure: input images; registered images; tracking animation;

Cardiac Diffusion Weighted MRI

examples_ptv/dti.m

Groupwise 2D registration with nuclear metric. Breathing motion. Notice low SNR.

Figure: input images; registered images;

Figure: input images; registered images;

Cardiac Motion

Short Axis Cardiac MRI

examples_ptv/heart_SA.m

Groupwise 2D registration with nuclear metric. Cardiac motion.

Figure: input images; registered images; tracking animation;

Natural Images

The method is not limited to medical images and can be applied to natural images without any modifications.

Rolling Shutter

examples_ptv/rolling_shutter2.m

Groupwise and pairwise (with SSD metric) 2D registration routines both work well. Multichannel (RGB) images.

Figure: input images; registered images;

Now we can fit rigid or affine motion to estimated displacements and use them to stabilize images. We can observe "jelly" effect due to sequential CMOS sensor readout (rolling shutter) that can not be compensated for with linear motion models.

Figure: rigid motion; affine motion

Faces

examples_ptv/faces.m

Groupwise 2D multichannel (RGB) registration of 550 facelapse images. Note that pairwise registration fails here (and about 10 times slower than groupwise). Images extracted from Noah Kalinas Youtube Video

Figure: input images; registered images; tracking animation;

To suppress nonrigid registration artefacts, fitting rigid+scale or affine model can help:

Figure: rigid+scale motion; affine motion

3D Image Registration

Breathing Motion

3D+Time Lung CT. DIR Dataset

examples_ptv/DIR_test_all.m

Pairwise 3D registration using LCC metric.

Figure: overlayed initial images; overlayed registered images

Figure: registered images; tracking animation;

Performance of pTV on DIR challenge.

Method config4DCT 14DCT 24DCT 34DCT 44DCT 54DCT 64DCT 74DCT 84DCT 94DCT 10Mean TREMean Time (sec.)
cp_refinements = 0
loc_cc_approximate = false
Original resolution
0.820.830.981.281.130.880.831.050.950.870.9672
cp_refinements = 0
loc_cc_approximate = true
Original resolution
0.780.790.961.271.090.890.861.070.940.930.9657
cp_refinements = 0
loc_cc_approximate = true
Resampled to 1x1x1 mm^3
0.770.750.931.261.070.830.801.010.910.840.92130
cp_refinements = 0
loc_cc_approximate = false
Resampled to 1x1x1 mm^3
0.800.770.921.281.110.810.801.120.900.790.93188
cp_refinements = 1
loc_cc_approximate = true
Resampled to 1x1x1 mm^3
0.780.740.921.271.090.840.810.990.920.850.92178
cp_refinements = 1
loc_cc_approximate = false
Resampled to 1x1x1 mm^3
0.800.770.921.301.130.780.791.000.910.820.92300

Table: TRE is computed in the snap-to-pixel fashion and given in millimeters.

Note that according to the leaderboard, our method achieves the best registration result in terms of TRE (0.92 mm), and is one of the few methods that does not use lung masks.

3D+Time Lung CT. DIR Dataset. Groupwise

See examples_ptv/DIR_groupwise.m

Pairwise 3D registration using nuclear metric. This is just an example of 3D groupwise registration. TRE between inhale and exhale states did not improve.

Figure: registered images; tracking animation;

3D Breathhold Lung CT. COPDgene Dataset

examples_ptv/COPD_final.m and examples/COPD_finetue.m

Pairwise 3D registration using LCC metric with displacement grid refinement.

Figure: overlayed initial images; overlayed registered images

Performance of pTV on COPDgene challenge.

Method configCOPD 1COPD 2COPD 3COPD 4COPD 5COPD 6COPD 7COPD 8COPD 9COPD 10Mean TREMean Time (sec.)
cp_refinements = 0
loc_cc_approximate = false
Linear interpolation
0.783.380.790.720.771.000.811.190.670.861.09224
cp_refinements = 0
loc_cc_approximate = true
Linear interpolation
0.793.810.830.780.980.900.821.020.721.071.17186
cp_refinements = 1
loc_cc_approximate = false
Linear interpolation
0.722.220.790.680.810.700.810.830.640.860.91359
cp_refinements = 1
loc_cc_approximate = true
Linear interpolation
0.743.220.790.740.801.130.810.850.660.921.07275
cp_refinements = 1
loc_cc_approximate = false
Cubic interpolation
Fine-tune
0.711.910.770.670.710.660.750.780.640.850.8461442

Table: TRE is computed in the snap-to-pixel fashion and given in millimeters.

Note that according to the leaderboard, our method achieves the second best registration result in terms of TRE (0.85 mm), and is the best among methods that do not use lung masks.

3D MRI Liver

examples_ptv/LIVER.m

Pairwise 3D registration using LCC metric. Note that this dataset contains landmarks both inside and outside the liver. Thus we can evaluate registration accuracy on the both sides of the sliding interface.

Figure: overlayed initial images; overlayed registered images

Method configInsideOutsideOverallMean Time (sec.)
loc_cc_approximate = false
cp_prefinements = 0
Original resolution
1.881.721.8022

Table: TRE in millimeters.

Interpatient Registration

3D Aorta Segmentation

examples/aorta_segmentation.m

Pairwise 3D registration using SAD metric. Here fixed image is accompanied with the segmentation of aorta. The aim is to acquire segmentation of the moving image. We simultaneously (1) register both images and (2) align fixed segmentation with the moving image, using Gaussian intensity models of foreground and background pixels.

Figure: fixed, moving and registered images with overlayed propagated and manual segmentations of aorta.