Construction of Regular 3D Point Clouds Using Octree Partitioning and Resampling Jae-Young Sim and Sang-Uk Lee
Chang-Su Kim
School of Electrical Engineering and Computer Science Seoul National University Seoul 151-742, KOREA Email:
[email protected],
[email protected]
Department of Information Engineering The Chinese University of Hong Kong Shatin, Hong Kong Email:
[email protected]
Abstract— We propose a construction algorithm of regular 3D point clouds from irregular ones. An irregular point cloud is partitioned hierarchically using an octree, and the points in each octree node are projected onto a square face, called a base plane, of the cubic node. The geometry of the point cloud is then represented by the hight fields on the base planes. The height fields are interpolated and then resampled uniformly on the base plane. Consequently, the original geometry is represented by the scalar height fields, each of which is defined at uniform grid points on a square region. Therefore, the resulting geometry can be easily processed by conventional 2D image processing techniques. Fig. 1.
I. I NTRODUCTION Three dimensional (3D) data are widely used in various applications, including video gaming, virtual reality and scientific visualization. The mesh representation is often used to represent and render 3D data. However, there is growing demand for more detailed models and it takes a long time to render highly detailed meshes [1]. To overcome this drawback, points have been adopted instead of triangles as rendering primitives [?], [3]. In contrast to the mesh representation, point images require no connectivity information that describes topological relations between vertices. Thus, the point rendering can provide relatively fast visualization of huge 3D models. Levoy and Whitted [4] first employed point data to represent 3D surfaces. Grossman and Dally [5] developed a surface reconstruction algorithm, which fills gaps in rendered images using the hierarchical Z-buffer. Rusinkiewicz and Levoy [2] hierarchically organized a cloud of points using bounding spheres and provided a multiresolution rendering algorithm. In [3], Pfister et al. also developed a hierarchical structure for surface point elements, which are sampled regularly to generate three layered depth images. In addition to these point rendering methods, several processing techniques for 3D point data have been introduced such as editing [6], simplification [7], and compression [8]. In general, it is not convenient to process raw point data, since there is no connectivity information to define local neighbors. Pauly and Gross [9] alleviated this problem by partitioning a point cloud into several patches and resampling points uniformly. However, their algorithm yields overlapping patches for irregular boundaries, which make subsequent processing cumbersome.
0-7803-8834-8/05/$20.00 ©2005 IEEE.
Block diagram of the proposed algorithm.
In this work, we propose an efficient algorithm to partition a 3D point cloud into regular and disjoint patches. An octree is employed to decompose a given point cloud into disjoint cubic nodes. The points within each node are then projected onto one face of the node without overlapping, and the corresponding height field is built on the face. The selected face is called the base plane. Finally, the hight field is interpolated and resampled uniformly on the base plane. Since the resampled height field for each node is a 2D image, various image processing techniques can be applied to process 3D point data, such as filtering, transform and compression. This paper is organized as follows. Section II describes the proposed algorithm, and Section III presents simulation results. Section IV concludes this paper and discusses future works to make this work more complete. II. P ROPOSED A LGORITHM Fig. 1 shows the block diagram of the proposed algorithm. An original irregular point cloud O is first decomposed into several disjoint partitions Pn ’s (n = 1, . . . , N ) using an octree, where N is the number of partitions. Each partition Pn is then resampled uniformly to yield In , which is a height field on the base plane. By combining all In ’s together, we reconstruct a regularly resampled point cloud R. A. Octree Partitioning Fig. 2 illustrates the quadtree partitioning of scattered points, which is a 2D counterpart of the octree partitioning in 3D space. The smallest bounding square (cube in 3D
956
(a)
(b)
Fig. 3. Projection of points onto the base plane. (a) Points within a partition node. The base plane is depicted by a thick line. (b) The points are projected onto the base plane.
Fig. 2. Illustration of the quadtree partitioning, which is a 2D counterpart of the octree partitioning in 3D space.
space), which includes all points, becomes the root node. The root node is divided into four (eight in 3D space) child nodes by bisecting each coordinate. Then, the child nodes are recursively divided according to the point distribution, until stopping conditions are satisfied. In this work, a node is no longer divided, when its points yield similar normal characteristics or the number of points is smaller than a prespecified threshold. As shown in Fig. 2, the nodes in the quadtree (octree) are disjoint and each node has the square (cubic) shape. We define an octree node as a partitioning unit and the points within each node constitute a partition of point cloud. B. Projection After partitioning a point cloud into octree nodes, a face of each cubic node is selected as the base plane. The base plane is chosen such that its normal is the closest to the average normal of the points in the node. The points are projected onto the base plane, as shown in Fig. 3. An original point po in 3D space is projected onto po on the base plane, and po is associated with the height value, given by (1) h(po ) = po − po . Thus, the 3D position vector of po is represented by the scalar value h(po ). However, the implicit surface, defined by points, can overlap when it is projected onto the base plane, as shown in Fig. 4 (a). In such a case, the mapping from 3D space to 2D plane may not be one-to-one, making the height field invalid. Moreover, even if it is valid, the height field is shaky and contains undesirable high frequency components. To prevent the overlapping problem, the node is further divided into child nodes at finer levels until a robust projection is achieved, as shown in Fig. 4 (b).
(a)
(b)
Fig. 4. Overlapping problem. (a) The implicit surface, defined by points, cannot be projected onto the base plane without overlapping. (b) The node is divided into child nodes until no overlapping occurs. The corresponding base planes are selected accordingly, as depicted by thick lines.
In practice, we detect defective nodes, causing the overlapping, by checking the deviation of point normals. When the normal of a certain point is different from the normal of the base plane by a large amount (≥ 90◦ in this work), the corresponding node is assumed to cause the overlapping and divided into smaller partitions. The base plane is also changed according to the refined partitions. Thus, an octree hierarchy is constructed adaptively to the point distribution of an input 3D model, such that each partition is represented by a welldefined height field. C. Resampling The height field of each node is resampled uniformly to facilitate the processing of 3D point data. Specifically, a uniform grid is drawn over the base plane, and then a new height value is evaluated at each grid point. Fig. 5 (a) shows the resampling process. A new point pr is elevated from the uniform grid point pr by h(pr ), which is interpolated from the original height values h(po )’s. The regular structure of the uniform grid facilitates the spectral processing of the height field. Also, note that we can control the tradeoff between the data amount and the geometry accuracy by changing the sampling resolution.
957
(a) (a)
(b)
Fig. 5. Resampling. (a) The height of each point on the uniform grid is obtained by interpolating the original irregular height field. (b) The regular height field after the resampling. .
(b)
Fig. 7. Point distributions on a part of the ‘Venus’ model: (a) the original point cloud and (b) the resampled regular point cloud.
where τ is a radius of the interpolation filter. While a large τ reconstructs the geometry data smoothly and robustly, it may cause blurring artifacts. Thus, it should be determined by considering both the robustness and the accuracy. It is worthy to point out that the resampled scalar height fields can be considered as 2D images, whose pixel values correspond to h(pr )’s. Thus, conventional image processing techniques can be easily adopted for the manipulation of 3D geometry data. D. Reconstruction The projection and resampling are performed to each partition Pn to generate In . Since In ’s are disjoint, the whole point cloud can be reconstructed by simply combining all In ’s, III. S IMULATION R ESULTS
Fig. 6. Interpolation. The white and the black points depict the original points and the uniform grid points, respectively. Only the pio ’s within a circle centered on pr are employed for the interpolation.
The interpolation of a new height is performed as illustrated in Fig. 6. The height h(pr ) of a grid point pr is set to the weighted average of the heights of original points pio ’s, given by wi h(pio ) h(pr ) = i . (2) i wi As pio is closer to pr , h(pi0 ) exhibits a higher correlation to h(pr ) in general. Therefore, the weight is set to be inversely proportional to the distance, as wi = 1/|pr − pio |.
(3)
Moreover, pio is employed for the interpolation, only if |pr − pio | < τ,
(4)
We first compare the point distributions of the original irregular model ‘Venus’ and its resampled result in Fig. 7. The number of points in the original model is 67,173. At the sampling resolution of 7 bits per coordinate (bpc), the resampled model has 32,153 points. We see that the resampled points are more regularly distributed on the 3D surface than the original ones. Next, we evaluate the reconstructed models according to the sampling resolutions. Fig. 8 (a) shows the original ‘David head’ model, which contains 2,000,606 points. Figs. 8 (b)(d) illustrate the resampled regular point clouds at sampling resolutions of 10 bpc, 11 bpc, and 12 bpc, respectively. They have 396,147, 1,448,099, and 4,802,238 points. It is observed that the overall 3D geometry can be reconstructed faithfully even at 10 bpc, although only about one fifth of points are used as compared with the original model. However, some holes are visible since all the points are rendered with square primitives of the same size. These artifacts can be removed if we use rendering primitives of adaptive sizes. At higher sampling resolutions, we see that the reconstructed models are indistinguishable from the original one. Finally, we investigate the relation between the parameter τ in (4) and the reconstructed visual quality. Fig. 9 (a) shows a magnified region of the original ‘St. Matthew face’ model, which has 3,382,866 points. Figs. 9 (b)-(d) show the
958
(a)
(b)
(a)
(b)
(c)
(d)
(c)
(d)
Fig. 8. Reconstructed point clouds at various sampling resolutions: (a) the original point cloud for ‘David head’ model and its resampled models at (b) 10 bpc, (c) 11 bpc, and (d) 12 bpc.
Fig. 9. Reconstructed point clouds using different parameters τ for the interpolation filter: (a) the original point cloud of the ‘St. Matthew face’ model and its reconstructions when τ is set to (b) 1, (c) 4, and (d) 8 times larger than the grid step size, respectively.
reconstructed models, which are obtained by setting τ as 1, 4, and 8 times larger than the grid step size, respectively. We see that the reconstructed geometry becomes smooth and blurred as τ increases, while small τ reveals the geometry more sharply.
•
IV. C ONCLUSION In this work, we proposed a converting algorithm of irregular 3D point clouds into regular ones based on the octree partitioning. An irregular point cloud is partitioned into disjoint octree nodes. Then, the points within each partition is projected onto the base plane such that no overlapping occurs. The projection lengths are parameterized on the base plane as a scalar height field. Then, the heights of uniform grid points are evaluated using the interpolation scheme. By combining the resampled points for each partition, the whole 3D point cloud is reconstructed. The proposed algorithm can be employed to facilitate the processing of 3D geometry data, since the resampled points have a regular structure as in 2D images. This work will be extended in the following directions. • Multi-resolution spectral processing: The proposed algorithm represents a 3D point cloud by a set of scalar height fields over uniform grids. Therefore, a multi-resolution representation scheme for 3D geometry can be developed by adopting wavelet transform. • Progressive compression: Geometry data can be represented progressively based on the proposed octree structure. Moreover, progressive compression of point data
can be developed by incorporating the above wavelet transform and the zerotree coding scheme. Editing of graphics models: The multi-resolution framework will be used to facilitate the editing of graphics models. R EFERENCES
[1] M. Levoy et al., “The digital Michelangelo project: 3D scanning of large statues,” in Proc. SIGGRAPH, pp. 131–144, July 2000. [2] S. Rusinkiewicz and M. Levoy, “QSplat: a multiresolution point rendering system for large meshes,” in Proc. SIGGRAPH, pp. 343–352, July 2000. [3] H. Pfister, M. Zwicker, J. Baar, and M. Gross, “Surfels: surface elements as rendering primitives,” in Proc. SIGGRAPH, pp. 335–342, July 2000. [4] M. Levoy and T. Whitted, “The use of points as a display primitive,” Technical Report TR 85-022, University of North Carolina at Chapel Hill, 1985. [5] J. P. Grossman and W. J. Dally, “Point sample rendering,” M.S. Thesis, MIT, Aug. 1998. [6] M. Zwicker, M. Pauly, O. Knoll, and M. Gross, “Pointshop 3D: an interactive system for point-based surface editing,” in Proc. SIGGRAPH, pp. 322–329, July 2002. [7] M. Pauly, M. Gross and L. P. Kobbelt, “Efficient simplification of pointsampled surfaces,” in Proc. IEEE Visualization, pp. 163–170, Oct.–Nov. 2002. [8] M. Waschb¨usch et al., “Progressive compression of point-sampled models,” in Symposium on Point-Based Graphics, pp. 95–102, Zurich, Switzerland, June 2004. [9] M. Pauly and M. Gross, “Spectral processing of point-sampled geometry,” in Proc. SIGGRAPH, pp. 379–386, Aug. 2001.
959