ITK Lecture 13: Registration

Slides:



Advertisements
Similar presentations
Bayesian Belief Propagation
Advertisements

Image Registration  Mapping of Evolution. Registration Goals Assume the correspondences are known Find such f() and g() such that the images are best.
Image Processing IB Paper 8 – Part A Ognjen Arandjelović Ognjen Arandjelović
This work by John Galeotti and Damion Shelton, © , was made possible in part by NIH NLM contract# HHSN P, and is licensed under a Creative.
Wavelets Fast Multiresolution Image Querying Jacobs et.al. SIGGRAPH95.
Medical Image Registration Kumar Rajamani. Registration Spatial transform that maps points from one image to corresponding points in another image.
The content of these slides by John Galeotti, © Carnegie Mellon University (CMU), was made possible in part by NIH NLM contract# HHSN P,
Lecture 8 Registration with ITK
OverviewOverview Motion correction Smoothing kernel Spatial normalisation Standard template fMRI time-series Statistical Parametric Map General Linear.
Intensity-based deformable registration of 2D fluoroscopic X- ray images to a 3D CT model Aviv Hurvitz Advisor: Prof. Leo Joskowicz.
1 ITK Lecture 7 - Writing Filters, Part 1 Methods in Image Analysis CMU Robotics Institute U. Pitt Bioengineering 2630 Spring Term, 2006 Methods.
Methods in Image Analysis 2004, Damion Shelton 1 ITK Lecture 6 - The Pipeline Methods in Image Analysis CMU Robotics Institute U. Pitt Bioengineering.
Instructor: Mircea Nicolescu Lecture 13 CS 485 / 685 Computer Vision.
Tuesday Seminar Deformable Image Registration
Motion Tracking. Image Processing and Computer Vision: 82 Introduction Finding how objects have moved in an image sequence Movement in space Movement.
Non-Rigid Registration. Why Non-Rigid Registration  In many applications a rigid transformation is sufficient. (Brain)  Other applications: Intra-subject:
Affine Linear Transformations Prof. Graeme Bailey (notes modified from Noah Snavely, Spring 2009)
Motion Analysis (contd.) Slides are from RPI Registration Class.
CSci 6971: Image Registration Lecture 4: First Examples January 23, 2004 Prof. Chuck Stewart, RPI Dr. Luis Ibanez, Kitware Prof. Chuck Stewart, RPI Dr.
Reinforcement Learning Rafy Michaeli Assaf Naor Supervisor: Yaakov Engel Visit project’s home page at: FOR.
Fractal Image Compression
Computing motion between images
CS664 Lecture #19: Layers, RANSAC, panoramas, epipolar geometry Some material taken from:  David Lowe, UBC  Jiri Matas, CMP Prague
Active Appearance Models Suppose we have a statistical appearance model –Trained from sets of examples How do we use it to interpret new images? Use an.
Kathy Grimes. Signals Electrical Mechanical Acoustic Most real-world signals are Analog – they vary continuously over time Many Limitations with Analog.
Radial Basis Function Networks
Face Recognition Using Neural Networks Presented By: Hadis Mohseni Leila Taghavi Atefeh Mirsafian.
ENG4BF3 Medical Image Processing
National Alliance for Medical Image Computing Registration in Slicer3 Julien Jomier Kitware Inc.
October 8, 2013Computer Vision Lecture 11: The Hough Transform 1 Fitting Curve Models to Edges Most contours can be well described by combining several.
CSE 185 Introduction to Computer Vision
1 Computer Performance: Metrics, Measurement, & Evaluation.
The content of these slides by John Galeotti, © Carnegie Mellon University (CMU), was made possible in part by NIH NLM contract# HHSN P,
Noise and Procedural Techniques John Spitzer Simon Green NVIDIA Corporation.
Multimodal Interaction Dr. Mike Spann
Coregistration and Spatial Normalisation
CSCE 643 Computer Vision: Structure from Motion
Jan Kamenický Mariánská  We deal with medical images ◦ Different viewpoints - multiview ◦ Different times - multitemporal ◦ Different sensors.
1 ITK Lecture 8 - Neighborhoods Methods in Image Analysis CMU Robotics Institute U. Pitt Bioengineering 2630 Spring Term, 2006 Methods in Image.
Image Registration as an Optimization Problem. Overlaying two or more images of the same scene Image Registration.
Methods in Image Analysis 2004, Damion Shelton 1 ITK Lecture 9 - Toolbox Part I Methods in Image Analysis CMU Robotics Institute U. Pitt Bioengineering.
Feature based deformable registration of neuroimages using interest point and feature selection Leonid Teverovskiy Center for Automated Learning and Discovery.
1 ITK Lecture 9 - Toolbox Part I Methods in Image Analysis CMU Robotics Institute U. Pitt Bioengineering 2630 Spring Term, 2006 Methods in Image.
2005MEE Software Engineering Lecture 11 – Optimisation Techniques.
1cs426-winter-2008 Notes  Will add references to splines on web page.
Autonomous Robots Vision © Manfred Huber 2014.
1 ITK Lecture 6 - The Pipeline Methods in Image Analysis CMU Robotics Institute U. Pitt Bioengineering 2630 Spring Term, 2006 Methods in Image Analysis.
Application: Multiresolution Curves Jyun-Ming Chen Spring 2001.
Image Processing A Study in Pixel Averaging Building a Resolution Pyramid With Parallel Computing Denise Runnels and Farnaz Zand.
1 ITK Lecture 5 Intro to Iterators Methods in Image Analysis CMU Robotics Institute U. Pitt Bioengineering 2630 Spring Term, 2006 Methods in Image.
: Chapter 5: Image Filtering 1 Montri Karnjanadecha ac.th/~montri Image Processing.
Instructor: Mircea Nicolescu Lecture 5 CS 485 / 685 Computer Vision.
Photoconsistency constraint C2 q C1 p l = 2 l = 3 Depth labels If this 3D point is visible in both cameras, pixels p and q should have similar intensities.
MASKS © 2004 Invitation to 3D vision Lecture 3 Image Primitives andCorrespondence.
ITK 9.3. Level Set Segmentation Shape Detection Segmentation
April 21, 2016Introduction to Artificial Intelligence Lecture 22: Computer Vision II 1 Canny Edge Detector The Canny edge detector is a good approximation.
This work by John Galeotti and Damion Shelton, © , was made possible in part by NIH NLM contract# HHSN P, and is licensed under a Creative.
University of Ioannina
Paper – Stephen Se, David Lowe, Jim Little
HADI Tutorial Templates
Lecture 12 Theory of Registration ch
Outline Announcement Local operations (continued) Linear filters
Computational Neuroanatomy for Dummies
Image Processing, Lecture #8
MPHY8149: Image Registration
2D transformations (a.k.a. warping)
Image Processing, Lecture #8
Image Registration 박성진.
Lecture 3 Math & Probability Background ch
Image Registration  Mapping of Evolution
Presentation transcript:

ITK Lecture 13: Registration Damion Shelton Methods in Image Analysis CMU Robotics Institute 16-725 U. Pitt Bioengineering 2630 Spring Term, 2006

For more info/gory detail… Please see Chapter 8 in the Software Guide and Insight into Images for exhaustive detail

What is registration? The process of aligning a target image to a source image More generally, determining the transform that maps points in the target image to points in the source image

Transform types Rigid (rotate, translate) Affine (rigid + scale & shear) Deformable (affine + curvature) Many others

Registration in ITK ITK uses an extensible registration framework Various interchangeable classes exist Relatively easy to “twiddle” the part you’re interested in while recycling prior work

ITK terminology Fixed image f(x) - stationary in space Moving image m(x) - the fixed image with an unknown transform applied Goal: recover the transform T(x) which maps points in f(x) to m(x)

Registration framework pieces 2 input images, fixed and moving Metric - determines the “fitness” of the current registration iteration Optimizer - adjusts the transform in an attempt to improve the metric Interpolator - applies transform to image and computes sub-pixel values

ITK registration flowchart

ITK’s “Hello world” example 2D floating point image inputs Please see the software guide (section 8.2) for code specifics I’m going to cover what each piece does, not look at code per se

Input images 2D floating point Floating point avoids loss of precision problems with integer pixel types

Transform TranslationTransform Permits translation only in 2D Documentation notes similarity to AffineTransform, but improved speed (why…?)

Metric MeanSquaresImageToImageMetric Sum of squared differences between 2 images on a pixel-by-pixel basis A bit naïve Works for 2 images that were acquired with the same imaging modality

Optimizer RegularStepGradientDescent Follows the derivative of the metric Step size depends on rapid changes in the gradient Step size eventually reaches a user-defined value that determines convergence

Interpolator LinearInterpolateImageFunction Fast and conceptually simple

Wrapper ImageRegistrationMethod Combines all of the previous classes into a master class registration->SetMetric( metric ); registration->SetOptimizer( optimizer ); registration->SetTransform( transform ); registration->SetInterpolator( interpolator);

Other steps Set the region of the fixed image the registration will operate on (e.g. to ignore bad data) Initialize the transform Twiddle the optimizer for best performance* *may involve magic

Hello world input

X & Y translation vs. time

Metric vs. time

Registration results After registration converges/terminates you call GetLastTransformParamters to recover the final transform For the Hello World example there are 2 parameters, X & Y translation

Double checking results Use ResampleImageFilter to apply the transform for the fixed image Take the output, compute a difference image with the moving image, examine the results Good registration results in nothing much to see

Image comparison

Keeping tabs on registration Registration is often time consuming It’s nice to know that your algorithm isn’t just spinning it’s wheels Use the observer mechanism in ITK to monitor progress You’ve seen this before with filters

Observer steps Write an observer class that will process “iteration” events Add the observer to the optimizer As a generic note, observers can observe any class derived from itk::Object Start registration as usual

Things observers can do Print debugging info Update GUI Other small management functions Should not do anything too processor intensive

Multi-modality registration Remember how I said sum-of-squares difference is relatively naïve? Mutual information helps overcome this problem Section 8.4 shows how to implement a simple MI registration

Notes about the MI example Significantly, largely the same piece of code as Hello World Mutual Information is a metric, so we can keep the optimizer, the interpolator, and so on Majority of differences are in tweaking the metric, not in rewriting code

MI Inputs T1 MRI Proton density MRI

MI Output Before After

Centered transforms More natural (arguably) reference frame than having the origin at the corner of the image Details are not appreciably different from other rigid registrations, see 8.5

An aside: “Twiddling” A common criticism of many/most registration techniques is their number of parameters A successful registration often depends on a very specific fine-tuning of the algorithm “Generalized” registration is an open problem

Multi-Resolution registration Useful to think of this as algorithmic “squinting” Start with something simple and low-res Use low-res registration to seed the next higher step Eventually run registration at high-res Also called “coarse to fine”

Multi-resolution schematic

Image pyramids

Optimization Parameter dependency rears its ugly head You often/usually need to adjust optimizer parameters as you move through the pyramid You can do this using the Observer mechanism

Multi-resolution example Again, mostly the same code as Hello World Use MultiResolutionPyramidImage filter to build fixed and moving pyramids MultiResolutionImageRegistrionMethod is now the overall framework

Benefits of multi-resolution Often faster More tolerant of noise (from “squinting”) Minimizes initialization problems to a certain extent, though not perfect

See the software guide for… Complete list of: Transforms Optimizers Interpolation methods You’re encouraged to mix and match!

Deformable registration ITK has 2 techniques: Finite element: treat small image regions as having physical properties that control deformation Demons: images are assumed to have iso-intensity contours; image deformations occur by pushing on these contours

Model based registration Build a simplified geometric model from a training set Identify parameters that control the characteristics of the model Register the model to a target image to adapt to a particular patient

Model based, cont. Uses the Spatial Objects framework for representing geometry Useful because it derives analytical data from the registration process, not just a pixel-to-pixel mapping

Model-based reg. schematic

Model-based example

Speed issues Execution time can vary wildly Optimizer (more naïve = faster) Image dimensionality (fewer = faster) Transform (fewer DOF = faster) Interpolator (less precise = faster)

Take home messages Exactly what parameters do what is not always obvious, even if you’re familiar with the code Successful registrations can be something of an art form Multi-resolution techniques can help Work within the framework!