CPU-Based Real-Time Surface and Solid Voxelization for Incomplete Point Cloud Frederic Garcia, Björn Ottersten Interdisciplinary Centre for Security, Reliability and Trust, University of Luxembourg
[email protected],
[email protected] August 27, 2014
This work was supported by the National Research Fund, Luxembourg, under the CORE project C11/BM/1204105/FAVE/Ottersten.
22nd International Conference on Pattern Recognition (ICPR’14) 24-28 August 2014 Stockholm, Sweden
Outline Introduction Motivation: Human Pose Estimation/Gesture Recognition Intermediate step to extend 2D curve-skeletons techniques to point sets
Proposed approach Bounding 3D grid of voxels Surface voxelization Solid voxelization
Experimental evaluation Concluding remarks
2
CPU-Based Real-Time Surface and Solid Voxelization for Incomplete Point Cloud
Introduction Voxelization: models geometric scenes into their equivalent discrete voxel-based representations Complex scenes with thousands of polygons are approximated to a discrete 3-D voxel grid This voxelization process known as surface voxelization results from setting those voxels describing the object surface within the 3D grid Implemented by spatial decomposition techniques such as kd-trees or octrees[2,3,4] More complex geometric processing needs to consider not only those voxels representing the external object surface but also those voxels considered to be interior to the object, i.e., solid voxelization
3
CPU-Based Real-Time Surface and Solid Voxelization for Incomplete Point Cloud
Motivation: Human Pose Estimation Voxelization: intermediate step to extend 2D curve-skeleton techniques[1] to human-scanned point clouds
Frontal view
4
Body silhouette
Distance Transform
Laplace operator
Threshold operator
Human pose
CPU-Based Real-Time Surface and Solid Voxelization for Incomplete Point Cloud
Motivation: Human Pose Estimation Voxelization: intermediate step to extend 2D curve-skeleton techniques[1] to human-scanned point clouds
Body-scanned Point Cloud
5
Surface & Solid Voxelization
Curve-Skeleton
CPU-Based Real-Time Surface and Solid Voxelization for Incomplete Point Cloud
Proposed approach Bounding 3D grid of voxels V ≡ v(i, j, k) Big enough to fit the entire point set P ≡ p(x, y, z) But no bigger to avoid inefficiency (real-time processing) Defined by max & min 3D point set coordinates Voxel size λ defines the resolution & accuracy of the discrete voxel representation
Bounding 3D grid of voxels 6
CPU-Based Real-Time Surface and Solid Voxelization for Incomplete Point Cloud
Proposed approach Surface Voxelization: We map each 3D point pi = (px, py, pz) to its closest voxel vi = (vi, vj, vk) Solify a shell representing the external object surface by approximating all pi to the geometric center of their respective voxel vi, i.e., 1 if p i ∈ [v i , v i + λ ] vi = otherwise. 0
Scanned points pi
Surface voxelization
Selected voxel-slice from V 7
CPU-Based Real-Time Surface and Solid Voxelization for Incomplete Point Cloud
Proposed approach Solid Voxelization is generally addressed using polygonal meshes [4,5,6] : Sensitive to shell holes & time consuming We propose a high-performance 2-step solid voxelization approach: Step 1, complete shell: Solidify the shell of surface voxels representing the object surface Sort set voxels according to their relative distances Set those voxels intersected by the segment that connect two near voxels
Selected voxel-slice from J and K axes V 8
Surface voxelization
Complete shell
CPU-Based Real-Time Surface and Solid Voxelization for Incomplete Point Cloud
Proposed approach Step 2, shell filling: Set interior voxels within the complete shell Iterate row-by-row each voxel-slice propagating the voxel state (scan line algorithm)
Selected voxel-slice from J and K axes V
9
Complete shell
Filled shell
CPU-Based Real-Time Surface and Solid Voxelization for Incomplete Point Cloud
Proposed approach Shell filling might fail in some situations:
Selected voxel-slice from J and K axes V
10
Complete shell
Wrong shell filling
CPU-Based Real-Time Surface and Solid Voxelization for Incomplete Point Cloud
Proposed approach Therefore, individual filled shells are combined to generate a unique volumetric grid
Scanned points
11
Surface voxelization
Solid voxelization
CPU-Based Real-Time Surface and Solid Voxelization for Incomplete Point Cloud
Experimental evaluation Incomplete human-scanned point clouds V-Rep setup
Poin cloud Volumetric Surface Solid grid voxelization voxelization
12
Poin cloud Volumetric Surface Solid grid voxelization voxelization
CPU-Based Real-Time Surface and Solid Voxelization for Incomplete Point Cloud
Experimental evaluation Stanford 3D Scanning Repository
Poin cloud
13
Volumetric grid
Surface voxelization
Solid voxelization
CPU-Based Real-Time Surface and Solid Voxelization for Incomplete Point Cloud
Experimental evaluation Running time (units are in ms)
14
CPU-Based Real-Time Surface and Solid Voxelization for Incomplete Point Cloud
Experimental evaluation Running time (units are in ms)
15
CPU-Based Real-Time Surface and Solid Voxelization for Incomplete Point Cloud
Conclusions A new scheme to compute surface & solid voxelization of incomplete point cloud datasets has been described Our main contribution is in using an axis-aligned 3D grid of voxels to which we approximate the given point cloud set From the voxelization process, we reduce the amount of data to be treated, registration inaccuracies & noise within depth measurements The combination of filled shells results in an accurate surface & solid voxelization of the given point set, independently of its complexity. Experimental evaluation shows a high-performance, making the approach practical for further geometric processing, e.g., computation of volumetric distance fields
16
A New Multi-lateral Filter for Real-Time Depth Enhancement
Thank you! Frederic Garcia, Björn Ottersten Interdisciplinary Centre for Security, Reliability and Trust, University of Luxembourg
[email protected],
[email protected]
[1] [2] [3] [4] [5] [6]
Meng Li, Tao Yang, Runping Xi, and Zenggang Lin, “Silhouette-based 2d human pose estimation,” in International Conference on Image and Graphics (ICIG), September 2009, pp. 143–148. R. B. Rusu, “Semantic 3d object maps for everyday manipulation in human living environments,” Ph.D. dissertation, Tecnische Universitatet Muenchen, 2009. C. Crassin and S. Green, “Octree-based sparse voxelization using the gpu hardware rasterizer,” in OpenGL Insights. CRC Press, Patrick Cozzi and Christophe Riccio, 2012. X. Wu, W. Liu, and T. Wang, “A new method on converting polygonal meshes to volumetric datasets,” in IEEE International Conference on Robotics, Intelligent Systems and Signal Processing, vol. 1, 2003, pp. 116–120. D. Haumont and N. Warze, “Complete polygonal scene voxelization,” Journal of Graphics Tools, vol. 7, no. 3, pp. 27–41, 2002. M. Schwarz and H.-P. Seidel, “Fast parallel surface and solid voxelization on gpus,” ACM Trans. Graph., vol. 29, no. 6, pp. 1–10, 2010.
22nd International Conference on Pattern Recognition (ICPR’14) 24-28 August 2014 Stockholm, Sweden