Realtime Image Vectorization on GPU Xiaoliang Xiong Jie

  • Slides: 39
Download presentation
Real-time Image Vectorization on GPU Xiaoliang Xiong, Jie Feng, Bingfeng Zhou Institute of Computer

Real-time Image Vectorization on GPU Xiaoliang Xiong, Jie Feng, Bingfeng Zhou Institute of Computer Science and Technology, Peking University, China

Introduction l Image Representation Raster form ü Use a large pixel matrix Vector form

Introduction l Image Representation Raster form ü Use a large pixel matrix Vector form ü Use geometry primitives, ü Require much more space more compact in ü Rendered with high representation efficiency ü Suffer seriously from aliasing or loss of details when scaled ü Require less space to store ü Convenient to transmit and edit ü Artifact-free in display

Introduction • • Convert a raster key frame into its vector form Generate in-betweens

Introduction • • Convert a raster key frame into its vector form Generate in-betweens by shape matching and interpolation [Zou and Yan, 2001] [Zhang et al. , 2009] Document Image Processing Shape From Silhouette Cartoon Animation • • • Estimating 3 D shape of an object from its silhouette images Visual Hull Visual cones intersection [Laurentini, 1994] [Matusik et al. , 2000] • • • Converting the text on image into features the computer can recognize Skeletons Contours [Chang et al. , 1999] [Smith, 1987]

Motivation • Shape From Silhouette • Silhouettes are approximated by line segments • Conversion

Motivation • Shape From Silhouette • Silhouettes are approximated by line segments • Conversion from pixels to line segments • Originally a vectorization problem

Motivation • Shape From Silhouette • Silhouettes are approximated by line segments • Conversion

Motivation • Shape From Silhouette • Silhouettes are approximated by line segments • Conversion from pixels to line segments • Originally a vectorization problem

Motivation • Shape From Silhouette • Silhouettes are approximated by line segments • Conversion

Motivation • Shape From Silhouette • Silhouettes are approximated by line segments • Conversion from pixels to line segments • Originally a vectorization problem • Accelerate vectorization to achieve dynamic visual hull rendering • Distribute vectorization onto GPU

Related Work: Vectorization • Crude Vectorization • Representing the original image with primary geometry

Related Work: Vectorization • Crude Vectorization • Representing the original image with primary geometry like skeleton and contour polygon Thinning based methods [Smith, 1987] Non-thinning based methods [Jimenez and Navalon, 1982]

Related Work: Vectorization • Advanced vectorization • Accurate approximation for both sharp and smooth

Related Work: Vectorization • Advanced vectorization • Accurate approximation for both sharp and smooth features • Constructing high-quality vector representation with less geometry primitives Triangle mesh based methods • Points sampling • Triangulation [Zhao et al. , 2013, Xia et al. , 2009] Diffusion curve based methods • Detect the edges • Convert into diffusion curves Gradient mesh based methods • Generate gradient mesh [Orzan et al. , 2013] [Sun et al. , 2009] • Semi-automatic

Related Work: GPU-based Shape From Silhouette • Visual hull parallelization [Ladikos et al. ,

Related Work: GPU-based Shape From Silhouette • Visual hull parallelization [Ladikos et al. , 2008] [Waizenegger et al. 2009] [Yous et al. , 2007] • GPU-acceleration Vectorized Image Rendering High efficiency rendering [Nehab and Hoppe, 2008] [Xia et al. , 2009] [Orzan et al. , 2013]

Overview Thresholding Input raster image Binary silhouettes Boundary detecting Preontouring Contour Vectorization result Silhouettes

Overview Thresholding Input raster image Binary silhouettes Boundary detecting Preontouring Contour Vectorization result Silhouettes vectorization

Our Algorithm Input silhouette image • Boundary Pixel Detecting • Like scanline filling •

Our Algorithm Input silhouette image • Boundary Pixel Detecting • Like scanline filling • Parallel between each line • Each thread for one scanline

Algorithm • Boundary Pixel Detecting 3 intervals 4 intervals

Algorithm • Boundary Pixel Detecting 3 intervals 4 intervals

Algorithm • Boundary Pixel Detecting • Pre-contouring • Compute connectivity relationship between adjacent lines

Algorithm • Boundary Pixel Detecting • Pre-contouring • Compute connectivity relationship between adjacent lines • Parallel between each two scanlines

Algorithm • Boundary Pixel Detecting • Pre-contouring • Connectivity relationship 0 1 1 n

Algorithm • Boundary Pixel Detecting • Pre-contouring • Connectivity relationship 0 1 1 n m n

Algorithm • Boundary Pixel Detecting • Pre-contouring

Algorithm • Boundary Pixel Detecting • Pre-contouring

Algorithm • Boundary Pixel Detecting • Pre-contouring • Contouring

Algorithm • Boundary Pixel Detecting • Pre-contouring • Contouring

Contouring rules. Loop Initialization(1: 0) Loop Termination(0: 1) Loop Extension(1: 1) Loop Merging(1: n)

Contouring rules. Loop Initialization(1: 0) Loop Termination(0: 1) Loop Extension(1: 1) Loop Merging(1: n) Loop Branching(n: 1) Loop Merging, then Branching(m: n)

Algorithm Loop Initialization • Boundary Pixel Detecting • Pre-contouring • Contouring

Algorithm Loop Initialization • Boundary Pixel Detecting • Pre-contouring • Contouring

Algorithm • Boundary Pixel Detecting Loop extension • Pre-contouring • Contouring

Algorithm • Boundary Pixel Detecting Loop extension • Pre-contouring • Contouring

Algorithm • Boundary Pixel Detecting Loop extension • Pre-contouring • Contouring

Algorithm • Boundary Pixel Detecting Loop extension • Pre-contouring • Contouring

Algorithm • Boundary Pixel Detecting • Pre-contouring • Contouring Loop extension

Algorithm • Boundary Pixel Detecting • Pre-contouring • Contouring Loop extension

Algorithm • Boundary Pixel Detecting • Pre-contouring • Contouring Loop extension

Algorithm • Boundary Pixel Detecting • Pre-contouring • Contouring Loop extension

Algorithm • Boundary Pixel Detecting • Pre-contouring • Contouring Loop termination Note: Loop branching

Algorithm • Boundary Pixel Detecting • Pre-contouring • Contouring Loop termination Note: Loop branching and merging do not appear in this demo.

Algorithm • Boundary Pixel Detecting • Pre-contouring • Contour vectorization • Approximate the contour

Algorithm • Boundary Pixel Detecting • Pre-contouring • Contour vectorization • Approximate the contour by line segments • Active Contour Modeling [Kass et al. , 1988]

Algorithm • p 2 p 1 p. M pi

Algorithm • p 2 p 1 p. M pi

Algorithm • Boundary Pixel Detecting • Pre-contouring • Contour vectorization

Algorithm • Boundary Pixel Detecting • Pre-contouring • Contour vectorization

Experiment & Result • Implement our algorithm using CUDA • Common PC with Quad

Experiment & Result • Implement our algorithm using CUDA • Common PC with Quad CPU 2. 5 GHz, 2. 75 GB RAM • Ge. Force GTX 260+ graphic card • Boundary Detection, Pre-contouring, Contour Vectorization are parallelized onto GPU

Result Character Vectorization

Result Character Vectorization

Evaluation Image Resolution #Points #edges #loops Time(ms) Char. B 600 x 600 626 84

Evaluation Image Resolution #Points #edges #loops Time(ms) Char. B 600 x 600 626 84 3 6. 51 Digit 4 600 x 600 414 24 2 5. 93 Pegion 400 x 400 439 86 2 5. 89 Skater 400 x 400 596 104 4 6. 56 Bird 600 x 480 833 83 1 8. 92 Yang 600 x 480 982 203 2 9. 75 Winnie 500 x 500 2761 432 26 8. 54

Comparison l Floodfill-based method vs our method l Difference: strategy of boundary pixel detection

Comparison l Floodfill-based method vs our method l Difference: strategy of boundary pixel detection and ordering Pigeon Skater Bird 2002 4002 6002 8002 10002 FBM 29. 9 105. 4 306. 4 510. 1 799. 8 Ours 4. 6 7. 8 9. 7 13. 1 FBM 18. 8 67. 6 168 293. 5 420. 8 Ours 5. 6 7. 7 8. 5 11. 6 14. 2 FBM 14. 5 90. 5 158. 3 419. 9 583. 3 Ours 4. 9 6. 5 8. 1 11. 2 14. 1

Application

Application

Video Vectorization l Silhouettes are extracted by background subtraction l Temporal coherence is not

Video Vectorization l Silhouettes are extracted by background subtraction l Temporal coherence is not considered l Average frame rate: 48 fps

Visual Hull l Contour vectorization among 8 -channel multi-view video streams l Temporal coherence

Visual Hull l Contour vectorization among 8 -channel multi-view video streams l Temporal coherence is not considered Channel-1 Channel-2 l reconstruct and render dynamic. Channel-3 VH 20 fps …Channel 8 Input video Vecorized silhouette Frame sequence: VHs

Document Image Vectorization • Large number of contours • Difficulties in data storing and

Document Image Vectorization • Large number of contours • Difficulties in data storing and transferring on GPU

Document Image Vectorization Input Vectorization Result

Document Image Vectorization Input Vectorization Result

Real-time Image Vectorization on GPU Xiaoliang Xiong, Jie Feng, Bingfeng Zhou Institute of Computer

Real-time Image Vectorization on GPU Xiaoliang Xiong, Jie Feng, Bingfeng Zhou Institute of Computer Science and Technology, Peking University l Boundary Pixel Detecting l Pre-contouring l Contour vectorization ü Future work ü Parallelize the contouring step ü Postprocess the vectorization result Contact info: {jonny_xiong, feng_jie, cczbf}@pku. edu. cn