Antialiasing Recovery Lei Yang, Pedro V. Sander The Hong Kong University of Science and Technology Jason Lawrence University of Virginia Hugues Hoppe Microsoft.

Slides:



Advertisements
Similar presentations
Accelerating Real-Time Shading with Reverse Reprojection Caching Diego Nehab 1 Pedro V. Sander 2 Jason Lawrence 3 Natalya Tatarchuk 4 John R. Isidoro 4.
Advertisements

Optimizing and Learning for Super-resolution
Spatial Filtering (Chapter 3)
Lecture 6 Sharpening Filters
DREAM PLAN IDEA IMPLEMENTATION Introduction to Image Processing Dr. Kourosh Kiani
Digital Image Processing
Instructor: Mircea Nicolescu Lecture 13 CS 485 / 685 Computer Vision.
Edge Detection CSE P 576 Larry Zitnick
Image Filtering CS485/685 Computer Vision Prof. George Bebis.
Natural and Seamless Image Composition Wenxian Yang, Jianmin Zheng, Jianfei Cai, Senior Member, IEEE, Susanto Rahardja, Senior Member, IEEE, and Chang.
Text Detection in Video Min Cai Background  Video OCR: Text detection, extraction and recognition  Detection Target: Artificial text  Text.
A Study of Approaches for Object Recognition
EE663 Image Processing Edge Detection 2 Dr. Samir H. Abdul-Jauwad Electrical Engineering Department King Fahd University of Petroleum & Minerals.
CSCE 641 Computer Graphics: Image Filtering & Feature Detection Jinxiang Chai.
MSU CSE 803 Stockman Linear Operations Using Masks Masks are patterns used to define the weights used in averaging the neighbors of a pixel to compute.
Edge Detection Phil Mlsna, Ph.D. Dept. of Electrical Engineering
Segmentation (Section 10.2)
HK UST * Hong Kong University of Science and Technology HK UST Modeling Hair from Multiple Views Y. Wei, E. Ofek, L. Quan and H. Shum.
1 Lecture 12 Neighbourhood Operations (2) TK3813 DR MASRI AYOB.
Lecture 2: Image filtering
Processing Image and Video for An Impressionist Effect Peter Litwinowicz Apple Computer, Inc. Siggraph1997.
MSU CSE 803 Linear Operations Using Masks Masks are patterns used to define the weights used in averaging the neighbors of a pixel to compute some result.
Computational Photography: Image Processing Jinxiang Chai.
Yingen Xiong and Kari Pulli
Filtering Approaches for Real-Time Anti-Aliasing /
CSCE 441: Computer Graphics Image Filtering Jinxiang Chai.
CSE 185 Introduction to Computer Vision
Computer Vision - Fitting and Alignment
Chapter 10: Image Segmentation
Computer Vision Spring ,-685 Instructor: S. Narasimhan WH 5409 T-R 10:30 – 11:50am.
Spatial-based Enhancements Lecture 3 prepared by R. Lathrop 10/99 updated 10/03 ERDAS Field Guide 6th Ed. Ch 5: ;
Introduction to Visible Watermarking IPR Course: TA Lecture 2002/12/18 NTU CSIE R105.
Under Supervision of Dr. Kamel A. Arram Eng. Lamiaa Said Wed
CSE 185 Introduction to Computer Vision Pattern Recognition 2.
© by Yu Hen Hu 1 ECE533 Digital Image Processing Image Segmentation.
Lecture 03 Area Based Image Processing Lecture 03 Area Based Image Processing Mata kuliah: T Computer Vision Tahun: 2010.
EECS 274 Computer Vision Segmentation by Clustering II.
Instructor: S. Narasimhan
Chapter 5: Neighborhood Processing
TextureAmendment Reducing Texture Distortion in Constrained Parameterizations Yu-Wing TaiNational University of Singapore Michael S. BrownNational University.
Digital Image Processing Lecture 16: Segmentation: Detection of Discontinuities Prof. Charlene Tsai.
Edge Detection and Geometric Primitive Extraction Jinxiang Chai.
Pixmotor: A Pixel Motion Integrator Ivan Neulander Rhythm & Hues.
Computer Vision - Fitting and Alignment (Slides borrowed from various presentations)
2D Texture Synthesis Instructor: Yizhou Yu. Texture synthesis Goal: increase texture resolution yet keep local texture variation.
Mestrado em Ciência de Computadores Mestrado Integrado em Engenharia de Redes e Sistemas Informáticos VC 15/16 – TP7 Spatial Filters Miguel Tavares Coimbra.
Sampling Pixel is an area!! – Square, Rectangular, or Circular? How do we approximate the area? – Why bother? Color of one pixel Image Plane Areas represented.
CSE 185 Introduction to Computer Vision Feature Matching.
Image enhancement Last update Heejune Ahn, SeoulTech.
Digital Image Processing Lecture 16: Segmentation: Detection of Discontinuities May 2, 2005 Prof. Charlene Tsai.
Digital Image Processing Lecture 17: Segmentation: Canny Edge Detector & Hough Transform Prof. Charlene Tsai.
Edge Segmentation in Computer Images CSE350/ Sep 03.
Computer Vision Image Features Instructor: Dr. Sherif Sami Lecture 4.
Instructor: Mircea Nicolescu Lecture 5 CS 485 / 685 Computer Vision.
Digital Image Processing CSC331
Sliding Window Filters Longin Jan Latecki October 9, 2002.
Non-linear filtering Example: Median filter Replaces pixel value by median value over neighborhood Generates no new gray levels.
Processing Images and Video for An Impressionist Effect Automatic production of “painterly” animations from video clips. Extending existing algorithms.
Spatial Filtering (Chapter 3) CS474/674 - Prof. Bebis.
Edge Detection Phil Mlsna, Ph.D. Dept. of Electrical Engineering Northern Arizona University.
Digital Image Processing Lecture 16: Segmentation: Detection of Discontinuities Prof. Charlene Tsai.
Image gradients and edges
Image Processing - in short
Sampling Theorem told us …
Detecting Artifacts and Textures in Wavelet Coded Images
Lecture 2: Edge detection
Lecture 2: Edge detection
Gradient Domain Salience-preserving Color-to-gray Conversion
Lecture 2: Edge detection
Presentation transcript:

Antialiasing Recovery Lei Yang, Pedro V. Sander The Hong Kong University of Science and Technology Jason Lawrence University of Virginia Hugues Hoppe Microsoft Research

Overview Introduction Introduction ›Nonlinear filtering and edge artifacts ›Prior work Antialiasing recovery Antialiasing recovery ›A 1D illustration ›Finding the edge color model in 2D ›Correcting the filtered image ›A real-time GPU implementation Results and discussion Results and discussion

Smooth edge and nonlinear filters Antialiased edges in images Antialiased edges in images ›Smooth transition pixels along object boundaries ›Blending of the two meeting colors Nonlinear filters Nonlinear filters ›Can map edge pixels to abrupt colors ›Very common in image processing Image scanline Luminance

I MAGE A BSTRACTION B ILATERAL F ILTERING

D ETAIL E NHANCEMENT I NTENSITY T HRESHOLDING

Repairing abrupt edges Morphological antialiasing (MLAA) [Reshetov 2009] Morphological antialiasing (MLAA) [Reshetov 2009]

Repairing abrupt edges Morphological antialiasing (MLAA) [Reshetov 2009] Morphological antialiasing (MLAA) [Reshetov 2009] ›Designed to repair point sampling artifacts ›Not suitable for fixing partially antialiased edges FilteredMLAADesired

Antialiasing recovery Extract the edge blending info from the original image Extract the edge blending info from the original image Apply it to the filtered image Apply it to the filtered image Preserve filtered colors except at edges Preserve filtered colors except at edges O RIGINAL F ILTERED

Antialiasing recovery A postprocess to existing nonlinear filters A postprocess to existing nonlinear filters Filtered (F) Original (O) Result (R) Nonlinear filter Antialiasing recovery

A 1D illustration For each edge pixel: For each edge pixel: 1.Resolve the contribution of the smooth regions in “O” 2.Apply the same contribution factors in “F” to obtain “R” Smooth regionsEdge Filtered: Incorrect 60%40% Re-blended 60%40% Contributions of smooth regions

Generalizing to 2D images Difficulty: each pixel has 8 neighbors Difficulty: each pixel has 8 neighbors Identify the two contributing colors Identify the two contributing colors ›Select two pixels p a and p b ›Most representative of the two smooth regions (Closest to their colors) papa pbpb p

The color line model Blendings of two colors are collinear in RGB color space Blendings of two colors are collinear in RGB color space The two generating colors c a and c b are endpoints (extrema) The two generating colors c a and c b are endpoints (extrema) R G c caca cbcb papa pbpb p B

Identifying extrema colors The local 3  3 patch may contain noise and other colors The local 3  3 patch may contain noise and other colors Find the direction of maximum variance “x” in color space Find the direction of maximum variance “x” in color space ›Compute the first principal component using EM [Roweis 97] ›Very efficient (2-3 iterations) p R G c x

Identifying extrema colors Form a datum line l = c + xt passing through the center color c along the principal direction x Form a datum line l = c + xt passing through the center color c along the principal direction x Project each pixel color c i onto l Project each pixel color c i onto l ›Distance: d i, parametric coord.: t i Discard all pixels with d i > 3  d Discard all pixels with d i > 3  d ›  d : a user specified tolerance p R G c l x 6d6d didi titi

Identifying extrema colors p R G c l titi tjtj caca papa cbcb pbpb

Determine pixel coverage values p R G c cbcb papa pbpb caca 1-  p :  p dpdp

Correcting the filtered image Correct pixels only at edges Correct pixels only at edges Determining edge strength e p Determining edge strength e p ›Compute and combine Sobel edge strength in O and F Edges in O Edges in F Edge strength e p  =

Correcting the filtered image

Blended color Unchanged When the blending confidence is high When confidence is low

Examples of dependency chains Thick edges Thin features Thick edges Thin features

Real-time GPU Implementation Embarrassingly parallel algorithm Embarrassingly parallel algorithm Implemented using pixel shaders on the GPU Implemented using pixel shaders on the GPU Apply Jacobi iterations to solve the linear system Apply Jacobi iterations to solve the linear system ›Use R = F as the initial solution ›Converges quickly (fixed 3 iterations suffices) Extremely fast Extremely fast ›Over 500MP/s (= p images/s) on AMD HD5870

Parameters  e for controlling edge sensitivity  e for controlling edge sensitivity  d for controlling noise sensitivity  d for controlling noise sensitivity We use a fixed  d = 0.1 and  e = 0.01 for results We use a fixed  d = 0.1 and  e = 0.01 for results Insensitive to changing parameters in a range Insensitive to changing parameters in a range Can be interactively adjusted for special cases Can be interactively adjusted for special cases

Results Application to a number of image processing tasks Application to a number of image processing tasks ›Image abstraction ›Bilateral filter ›Intensity thresholding ›Detail enhancement ›Gradient mapping ›Color to gray ›Color replacement

Results Image abstraction Image abstraction Original (O)Filtered (F)Recovered(R) Images courtesy from J. E. Kyprianidis et al. [2009]

Results Bilateral filter Bilateral filter Original (O)Filtered (F)Recovered(R) Image courtesy of

Results Intensity thresholding Intensity thresholding Original (O)Filtered (F)Recovered(R)

Results Gradient mapping Gradient mapping Original (O)Filtered (F)Recovered(R)

Results Color replacement Color replacement Original (O)Filtered (F)Recovered(R)

Limitations Our method is not suitable for Our method is not suitable for ›Filters with geometric distortions (E.g. image warping) ›Filters that intentionally change the edge fidelity (E.g. Gaussian blur) ›Filters that have artifacts in the interior regions (E.g. Unsharp masking)

Limitations When the color line assumption is violated When the color line assumption is violated ›Pixels that receive more than two scene elements ›May lead to artifacts in extreme cases Original (O)Filtered (F)Recovered(R) Images courtesy of M. Čadík and Y. Kim

Conclusion An algorithm to repair antialiased edges damaged by certain types of nonlinear filters An algorithm to repair antialiased edges damaged by certain types of nonlinear filters ›Simple to implement ›Very fast (500 MP/sec) ›Useful for a number of filters ›Code will be available within a month Future work Future work ›Consider filters with geometric distortions ›Relax the color line model

Thanks Acknowledgement: Acknowledgement: ›Diego Nehab and Tian Fang for fruitful discussions ›HK RGC GRF grant # ›Image credits: −Yongjin Kim, Martin Čadík, Johannes Kopf, Jan Eric Kyprianidis, Giuseppe Papari, Phillip Greenspun, and