Block-matching and 3D filtering

From HandWiki
Short description: Algorithm for noise reduction in images
Left: original crop from raw image taken at ISO800, Middle: Denoised using bm3d-gpu (sigma=10, twostep), Right: Denoised using darktable 2.4.0 profiled denoise (non-local means and wavelets blend)

Block-matching and 3D filtering (BM3D) is a 3-D block-matching algorithm used primarily for noise reduction in images.[1] It is one of the expansions of the non-local means methodology.[2] There are two cascades in BM3D: a hard-thresholding and a Wiener filter stage, both involving the following parts: grouping, collaborative filtering, and aggregation. This algorithm depends on an augmented representation in the transformation site.[3]

Method

Grouping

Image fragments are grouped together based on similarity, but unlike standard k-means clustering and such cluster analysis methods, the image fragments are not necessarily disjoint. This block-matching algorithm is less computationally demanding and is useful later on in the aggregation step. Fragments do however have the same size. A fragment is grouped if its dissimilarity with a reference fragment falls below a specified threshold. This grouping technique is called block-matching, it is typically used to group similar groups across different frames of a digital video, BM3D on the other hand may group macroblocks within a single frame. All image fragments in a group are then stacked to form 3D cylinder-like shapes.

Collaborative filtering

Filtering is done on every fragments group. A [math]\displaystyle{ d+1 }[/math][clarification needed] dimensional linear transform is applied, followed by a transform-domain shrinkage such as Wiener filtering, then the linear transform is inverted to reproduce all (filtered) fragments.

Aggregation

The image is transformed back into its two-dimensional form. All overlapping image fragments are weight-averaged to ensure that they are filtered for noise yet retain their distinct signal.

Extensions

Color images

RGB images can be processed much like grayscale ones. A luminance-chrominance transformation should be applied to the RGB image. The grouping is then completed on the luminance channel which contains most of the useful information and a higher SNR. This approach works because the noise in the chrominance channels is strongly correlated to that of the luminance channel, and it saves approximately one-third of the computing time because grouping takes up approximately half of the required computing time.

Deblurring

The BM3D algorithm has been extended (IDD-BM3D) to perform decoupled deblurring and denoising using the Nash equilibrium balance of the two objective functions.[4]

Convolutional neural network

An approach that integrates a convolutional neural network has been proposed and shows better results (albeit with a slower runtime).[5] MATLAB code has been released for research purpose.[6]

Implementations

References

  1. Dabov, Kostadin; Foi, Alessandro; Katkovnik, Vladimir; Egiazarian, Karen (16 July 2007). "Image denoising by sparse 3D transform-domain collaborative filtering". IEEE Transactions on Image Processing 16 (8): 2080–2095. doi:10.1109/TIP.2007.901238. PMID 17688213. Bibcode2007ITIP...16.2080D. 
  2. Manjón, José V.; Carbonell-Caballero, José; Lull, Juan J.; García-Martí, Gracián; Martí-Bonmatí, Luís; Robles, Montserrat (2008-08-01). "MRI denoising using Non-Local Means" (in en). Medical Image Analysis 12 (4): 514–523. doi:10.1016/j.media.2008.02.004. ISSN 1361-8415. PMID 18381247. https://www.sciencedirect.com/science/article/pii/S1361841508000248. 
  3. Maggioni, M.; Katkovnik, V.; Egiazarian, K.; Foi, A. (January 2013). "Nonlocal Transform-Domain Filter for Volumetric Data Denoising and Reconstruction". IEEE Transactions on Image Processing 22 (1): 119–133. doi:10.1109/TIP.2012.2210725. ISSN 1057-7149. PMID 22868570. https://ieeexplore.ieee.org/document/6253256. 
  4. Danielyan, Aram; Katkovnik, Vladimir; Egiazarian, Karen (30 June 2011). "BM3D Frames and Variational Image Deblurring". IEEE Transactions on Image Processing 21 (4): 1715–28. doi:10.1109/TIP.2011.2176954. PMID 22128008. Bibcode2012ITIP...21.1715D. 
  5. Ahn, Byeongyong; Ik Cho, Nam (3 April 2017). "Block-Matching Convolutional Neural Network for Image Denoising". arXiv:1704.00524 [Vision and Pattern Recognition Computer Vision and Pattern Recognition].
  6. "BMCNN-ISPL". http://ispl.snu.ac.kr/clannad/BMCNN/. 
  7. "LASIP - Legal Notice". Tampere University of Technology (TUT). http://www.cs.tut.fi/~foi/GCF-BM3D/legal_notice.html. 
  8. Lebrun, Marc (8 August 2012). "An Analysis and Implementation of the BM3D Image Denoising Method". Image Processing on Line 2: 175–213. doi:10.5201/ipol.2012.l-bm3d.