fast non-local means (nlm) / uinta denoising
DESCRIPTION
Fast Non-Local Means (NLM) / UINTA Denoising. Ross T. Whitaker, Suyash P. Awate , Kristen Zygmunt Scientific Computing & Imaging (SCI) Institute. Fast Non-Local Patch-Based Denoising. Fast Non-Local Patch-Based Denoising. Aims - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Fast Non-Local Means (NLM) / UINTA Denoising](https://reader036.vdocuments.net/reader036/viewer/2022070423/56816678550346895dda147b/html5/thumbnails/1.jpg)
Fast Non-Local Means (NLM) / UINTA Denoising
Ross T. Whitaker, Suyash P. Awate, Kristen Zygmunt
Scientific Computing & Imaging (SCI) Institute
![Page 2: Fast Non-Local Means (NLM) / UINTA Denoising](https://reader036.vdocuments.net/reader036/viewer/2022070423/56816678550346895dda147b/html5/thumbnails/2.jpg)
2
Fast Non-Local Patch-Based Denoising
28 June 2011
![Page 3: Fast Non-Local Means (NLM) / UINTA Denoising](https://reader036.vdocuments.net/reader036/viewer/2022070423/56816678550346895dda147b/html5/thumbnails/3.jpg)
3
Fast Non-Local Patch-Based Denoising
• Aims1. Non-Local Means (Buades at al. 2005 CVPR) /
UINTA (Awate & Whitaker 2005 CVPR) denoising within ITK framework
2. Computational efficiency using multithreading & efficient patch searches
3. Incorporating noise models using Bayesian schemes
28 June 2011
![Page 4: Fast Non-Local Means (NLM) / UINTA Denoising](https://reader036.vdocuments.net/reader036/viewer/2022070423/56816678550346895dda147b/html5/thumbnails/4.jpg)
4
Aim 1 : Non-Local Means Image Filter
• Generic framework denoising images having multi-dimensional domains and values– Scalar– Vector (e.g. multimodal MRI)– Tensor (e.g. DTI)
28 June 2011
![Page 5: Fast Non-Local Means (NLM) / UINTA Denoising](https://reader036.vdocuments.net/reader036/viewer/2022070423/56816678550346895dda147b/html5/thumbnails/5.jpg)
5
Aim 2 : Computational Efficiency
• Multithreading on multiprocessor or multicore shared-memory machines
• Memory efficiency in handling patch data structures
• Efficient searching of similar patches in image– Pre-filtering schemes– Space-subdivision schemes
28 June 2011
![Page 6: Fast Non-Local Means (NLM) / UINTA Denoising](https://reader036.vdocuments.net/reader036/viewer/2022070423/56816678550346895dda147b/html5/thumbnails/6.jpg)
6
Aim 3 : Noise Models
• Noise-model examples– Gaussian, Rician, Poisson
• Bayesian denoising– NLM/UINTA impose an MRF prior on image data– Noise model introduces a likelihood term– Free parameter (Lambda) balances two terms
28 June 2011
![Page 7: Fast Non-Local Means (NLM) / UINTA Denoising](https://reader036.vdocuments.net/reader036/viewer/2022070423/56816678550346895dda147b/html5/thumbnails/7.jpg)
728 June 2011
NLM / UINTA Project Status
![Page 8: Fast Non-Local Means (NLM) / UINTA Denoising](https://reader036.vdocuments.net/reader036/viewer/2022070423/56816678550346895dda147b/html5/thumbnails/8.jpg)
8
NLM / UINTA Project Status
• Code design / implementation Basic design implemented in ITK framework Functional test written☐ Provide support for all pixel types
Scalar☐ RGB / Vector☐ Tensor
☐ Finalize design based on your feedback
28 June 2011
![Page 9: Fast Non-Local Means (NLM) / UINTA Denoising](https://reader036.vdocuments.net/reader036/viewer/2022070423/56816678550346895dda147b/html5/thumbnails/9.jpg)
9
NLM / UINTA Project Status
• Testing☐ Confirm functionality☐ Test CPU performance☐ Test memory performance
• Prepare Insight Journal Article☐ Code☐ Documentation☐ Test images
28 June 2011
![Page 10: Fast Non-Local Means (NLM) / UINTA Denoising](https://reader036.vdocuments.net/reader036/viewer/2022070423/56816678550346895dda147b/html5/thumbnails/10.jpg)
ITK Class Hierarchy for NLM / UINTA Denoising
![Page 11: Fast Non-Local Means (NLM) / UINTA Denoising](https://reader036.vdocuments.net/reader036/viewer/2022070423/56816678550346895dda147b/html5/thumbnails/11.jpg)
11
NLM/UINTA ITK Class Hierarchy
28 June 2011
![Page 12: Fast Non-Local Means (NLM) / UINTA Denoising](https://reader036.vdocuments.net/reader036/viewer/2022070423/56816678550346895dda147b/html5/thumbnails/12.jpg)
12
API: NonLocalMeansBaseImageFilter
• Similar to FiniteDifferenceImageFilter• Pixel types:– Scalar – RGB– Vector– Tensor
28 June 2011
![Page 13: Fast Non-Local Means (NLM) / UINTA Denoising](https://reader036.vdocuments.net/reader036/viewer/2022070423/56816678550346895dda147b/html5/thumbnails/13.jpg)
13
API: NonLocalMeansBaseImageFilter
• Defines abstract algorithm for NLM / UINTAGenerateData() {
Initialization and AllocationPreProcessInput()while (! Halt()){
InitializeIteration()ComputeSigmaUpdate()ComputeImageUpdate()ApplyUpdate()
}PostProcessOutput()
}
28 June 2011
![Page 14: Fast Non-Local Means (NLM) / UINTA Denoising](https://reader036.vdocuments.net/reader036/viewer/2022070423/56816678550346895dda147b/html5/thumbnails/14.jpg)
14
API: NonLocalMeansImageFilter
• API similar to DenseFiniteDifferenceImageFilter
• Internals similar to SampleSelectiveMeanShiftBlurringFilter
• Subclass to provide other statistical estimation schemes
28 June 2011
![Page 15: Fast Non-Local Means (NLM) / UINTA Denoising](https://reader036.vdocuments.net/reader036/viewer/2022070423/56816678550346895dda147b/html5/thumbnails/15.jpg)
15
API: NonLocalMeansImageFilter
• Multithreaded implementations :– ComputeSigmaUpdate()– ComputeImageUpdate() – ApplyUpdate()
• User supplies :– Subsamplers – Neighborhood weights
28 June 2011
![Page 16: Fast Non-Local Means (NLM) / UINTA Denoising](https://reader036.vdocuments.net/reader036/viewer/2022070423/56816678550346895dda147b/html5/thumbnails/16.jpg)
16
ImageToNeighborhoodSampleAdaptor
• Patch Data Type: – ConstNeighborhoodIterator
• Provides patches from an image• Patches are not copied around everywhere,
avoiding large data structures• Patches accessed via indirection only for
computation involving that particular patch
28 June 2011
![Page 17: Fast Non-Local Means (NLM) / UINTA Denoising](https://reader036.vdocuments.net/reader036/viewer/2022070423/56816678550346895dda147b/html5/thumbnails/17.jpg)
17
Subsampler Hierarchy
28 June 2011
![Page 18: Fast Non-Local Means (NLM) / UINTA Denoising](https://reader036.vdocuments.net/reader036/viewer/2022070423/56816678550346895dda147b/html5/thumbnails/18.jpg)
18
SubsamplerBase
• Abstract interface to create subsamples– SetSample() / GetSample()– Search (InstanceIdentifier query, SubsamplePointer& results)–Combines APIs from KdTree and
SampleToSubsampleFilter– Flexible Input/Output types– Search API not Update API
28 June 2011
![Page 19: Fast Non-Local Means (NLM) / UINTA Denoising](https://reader036.vdocuments.net/reader036/viewer/2022070423/56816678550346895dda147b/html5/thumbnails/19.jpg)
19
SubsamplerBase Derived Classes
• RegionConstrainedSubsampler– All selected patches are within given region
• SpatialNeighborSubsampler– Select all patches within spatial radius of query
• GaussianRandomSpatialNeighborSubsampler– Select normal distribution of patches within spatial
radius of query• KdTreeImageRegionSubsampler– Select nearest patches in the k-d space
28 June 2011
![Page 20: Fast Non-Local Means (NLM) / UINTA Denoising](https://reader036.vdocuments.net/reader036/viewer/2022070423/56816678550346895dda147b/html5/thumbnails/20.jpg)
ITK-Related Implementation Issues
![Page 21: Fast Non-Local Means (NLM) / UINTA Denoising](https://reader036.vdocuments.net/reader036/viewer/2022070423/56816678550346895dda147b/html5/thumbnails/21.jpg)
21
Other ITK Contributions
• Wrote bug report #12152 that identified a persistent deadlock inside the multi-threaded logger framework
• Provided a test http://review.source.kitware.com/#change,1577
• Provided a fixhttp://review.source.kitware.com/#change,1578
• Currently going through Gerrit review process28 June 2011
![Page 22: Fast Non-Local Means (NLM) / UINTA Denoising](https://reader036.vdocuments.net/reader036/viewer/2022070423/56816678550346895dda147b/html5/thumbnails/22.jpg)
22
Other ITK Contributions
• Tested a patch supplied by Gaetan to fix the thread-unsafe MersenneTwisterRandomNumberGenerator– Posted a message on ITK users mailing list
confirming the patch workshttp://www.itk.org/pipermail/insight-users/2011-March/040391.html
– Will file bug report and provide Gerrit patch
28 June 2011
![Page 23: Fast Non-Local Means (NLM) / UINTA Denoising](https://reader036.vdocuments.net/reader036/viewer/2022070423/56816678550346895dda147b/html5/thumbnails/23.jpg)
23
Other ITK Contributions
• Found problem with BoundaryFaceCalculator– Also noticed by others
http://www.itk.org/pipermail/insight-users/2011-May/040946.html
• Created a test and a patch that fixed problem– Patch found in an earlier mailing list posting
• Will file bug report and Gerrit patch
28 June 2011
![Page 24: Fast Non-Local Means (NLM) / UINTA Denoising](https://reader036.vdocuments.net/reader036/viewer/2022070423/56816678550346895dda147b/html5/thumbnails/24.jpg)
24
Experiences with ITK process
• Not sure how to combine Review/Statistics and main Statistics
• Documentation in flux, hard to keep up with processes for v4.0, v3.20– Git / Gerrit interplay• Initial setup• Revising / resubmitting patches
• For bugs, should patches be submitted for both v4.0 and v3.20?
28 June 2011
![Page 25: Fast Non-Local Means (NLM) / UINTA Denoising](https://reader036.vdocuments.net/reader036/viewer/2022070423/56816678550346895dda147b/html5/thumbnails/25.jpg)
25
The End.
28 June 2011