Figure 2 - uploaded by João Luiz Dihl Comba
Content may be subject to copyright.
Valid and invalid cells (cuts) 

Valid and invalid cells (cuts) 

Source publication
Conference Paper
Full-text available
Point-based modeling and rendering is an active area of research in Computer Graphics. The concept of points with attributes (e.g. normals) is usually referred to as surfels, and many algorithms have been devised to their effi- cient manipulation and rendering. Key to the efficiency of many methods is the use of partitioning schemes, and usually ax...

Context in source publication

Context 1
... of this problem. In addition, boolean operations in such structures are simplified since they only have axis- aligned cuts. In order to circumvent the problem of creating too many cells along curved parts of the model, a hybrid structure is proposed in [1] that uses a quadtree (or octree) with cuts that are not aligned with the coordinate axes at the leaves. This solution requires special treatment of the leaves, specially when computing boolean operations. In this work we introduce Constrained BSP-trees (CBSP-trees) as a variation of BSP-trees that impose certain conditions on the directions of cuts. CBSP-trees can be seen as an intermediary structure between the BSP-tree [6] and the KD-tree [4]. The KD-tree corresponds to a hi- erarchical representation of binary partitions of space by axis-aligned cuts. On the other hand, BSP-trees also represent binary partitions of space, but with no restriction on the directions of cuts. This is one important aspect that dif- ferentiates BSP-trees from KD-trees: the direction of the partitioner cuts: arbitrary in a BSP-tree, orthogonal in a KD-tree. Another important difference is the complexity of the cells associated with regions in space: bounded in a KD-tree (all cells have four vertices in 2D), unbounded in a BSP-tree. The flexibility of the additional type of cuts allows the CBSP-tree to better adapt the shape of the objects represented, generating trees with fewer cells (figure 1). This is a more general framework that naturally handles non-orthogonal cuts (without special treatment such as in [1]). The paper is outlined as follows. Section 2 discusses previous work. CBSP-trees are presented in section 3, followed by the presentation of the boolean operations algorithm in section 4. Results are presented in section 5 followed by conclusions and directions for future work in section 6. Points as primitives were discussed in [12], and more re- cently in the work of Grossman and Dally [9, 8] and Pfister et al. [14], where the concept of surfel is introduced. A good survey on the subject can be found in [3]. Adams and Dutré [1] described an algorithm to compute boolean operations on surfel-bounded objects. Surfels are stored in a hybrid structure, that uses an octree at intermediate nodes, and non-axis aligned cuts at the leaves. The octree speeds up computation of the inside-outside classification required by boolean operations. A resampling operator is used to improve the quality of the edges of the resulting object. Later, the same authors improved their solution using programmable graphics hardware (GPUs) [2]. Another surfel-based boolean operation algorithm that uses the GPU was described in [10], based on a depth peeling technique. Boolean operations using distance fields was described in [5]. Octrees are also used here to speed-up calculations. The octree, used in [1] and [5], was the preferred choice of spatial data structure due to its simplicity, regularity and easy boolean operation algorithms. Competing structures, such as KD-trees[4], BSP-trees[6] can also be considered, and algorithms to perform boolean operations are described in [15, 13]. Each structure has its own advantages and dis- advantages, and hybrid structures are often used as a way of combining the good features of each approach. In this work we propose the CBSP-tree to allow an adaptive combination of the features of several spatial data structures. A CBSP-tree corresponds to a BSP-tree with a predicate that defines which directions of cuts are valid. For computing boolean operations with surfels we define a criterion to identify valid cuts as described below. For example, in 2D, cells have 3 or (usually) 4 vertices. In 3D, cells have at most (usually exactly) 8 vertices. A valid cut is defined as (figure 2): Our decision to use the above definition of valid cut is directly related to the cells generated by the subdivision. Cells with bounded complexity can more efficiently be used in geometric problems such as point location, nearest neighbor search or intersection detection, as well as serve as better function approximations using interpolation. The construction of CBSP-trees for representing surfels is controlled by a partition operation. We explore the added flexibility of CBSP-trees with a combination of cut selection strategies implemented using the strategy pattern [7]. The first selection mode uses a Principal Component Analysis [11] approach (called PCA selection ). It consists in computing the eigenvectors representing the principal and secondary directions of the surfels positions. The cor- responding eigenvalues represent the significance of each direction. Figure 3 shows principal and second component for a sequence of surfels. We use the direction given by the second component to define partitioner cuts. Another strategy is to choose a valid cut from a list of candidates that span a subset of all possible directions in a given space. This is called candidate selection . We use the cut that maximizes empty space in one of its halfspaces. If none is found, we split the longest dimension, thus avoiding thin cells. We observed that best results are obtained when we further subdivide space with cuts that are orthogonal to the previous chosen direction. In order to simulate this behavior, we chose to alternate between PCA and candidate selection strategies while building a CBSP-tree. Partitioning stops when certain conditions are met. Two simple strategies have been tested. The first one uses an evaluation of a geometric criteria based on surfels alignment, while the second stops processing when a certain tree depth is reached In both cases, the area of the cell can be tested first, to avoid wasting time processing very small cells and also to avoid numerical errors. As expected, the number of surfels in a cell is used as stop criterion too. In our tests, the stop criterion was chosen so that partitioning is detailed while avoiding too many unnecessary cuts. In this strategy we first test the number of surfels. If the cell has less than lim surfels, we stop partitioning. The parameter lim can be configured as low as 1 or 2 (since two surfels will always be aligned), or a higher number can be chosen when that degree of precision is found to be too much. If the cell has more than lim surfels, we check alignment using the PCA results based on an equation that relates the first and secondary components, such as the following for- mula: sec eigval / ( princ eigval + sec eigval ) . If the result is less than or equal to a given threshold, the surfels are considered to be sufficiently aligned. A simple alternative to stop partitioning is based on the depth of the tree. If the level of recursion when building the tree is less than level (for example, level = 4 ), we con- tinue dividing. When the tree depth is greater than level , we test the number of surfels in the cell. That means that ...

Citations

... And the strategy for choosing the subdividing hyperplane and the stop criteria are application dependent.Figure 2 shows a BSP-Tree for a space partitioning. BSP-Tree has been applied to hidden surface removal [7], image processing [12, 6], solid modeling [16, 5], point-based processing [11] and geometry compression [15, 2], just to cite a few. A KD-tree is a specific kind of a BSP-Tree since when the splitting hyperplanes are axis-aligned, while in BSP-Trees, the splitting hyperplanes can be in an arbitrary direction. ...
Conference Paper
Full-text available
This work proposes a simple approximation scheme for discrete data that leads to an infinitely smooth result without global optimization. It combines the flexibility of Binary Space Partitions Trees with the statistical robustness of Smooth Transition Regression Trees. The construction of the tree is straightforward and easily controllable, using error-driven metrics or external constraints. Moreover, it leads to a concise representation. Applications on synthetic and real data, both scalar and vector-valued demonstrated the effectiveness of this approach.
Article
This work presents the first surfel-based method for multi-view 3D reconstruction of the boundary between known and unknown space. The proposed approach integrates multiple views from a moving depth camera and it generates a set of surfels that encloses observed empty space, i.e. it models both the boundary between empty and occupied space, and the boundary between empty and unknown space. One novelty of the method is that it does not require a persistent voxel map of the environment to distinguish between unknown and empty space. The problem is solved thanks to an incremental algorithm that computes the Boolean union of two surfel bounded volumes: the known volume from previous frames and the space observed from the current depth image. A number of strategies were developed to cope with errors in surfel position and orientation. The method, implemented on CPU and GPU, was evaluated on real data acquired in indoor scenarios, and it was compared against state of the art approaches. Results show that the proposed method has a low number of false positive and false negatives, it is faster than a standard volumetric algorithm, it has a lower memory consumption, and it scales better in large environments.