Level set (data structures)

Last updated

In computer science a level set data structure is designed to represent discretely sampled dynamic level sets functions.

Contents

A common use of this form of data structure is in efficient image rendering. The underlying method constructs a signed distance field that extends from the boundary, and can be used to solve the motion of the boundary in this field.

Chronological developments

The powerful level-set method is due to Osher and Sethian 1988. [1] However, the straightforward implementation via a dense d-dimensional array of values, results in both time and storage complexity of , where is the cross sectional resolution of the spatial extents of the domain and is the number of spatial dimensions of the domain.

Narrow band

The narrow band level set method, introduced in 1995 by Adalsteinsson and Sethian, [2] restricted most computations to a thin band of active voxels immediately surrounding the interface, thus reducing the time complexity in three dimensions to for most operations. Periodic updates of the narrowband structure, to rebuild the list of active voxels, were required which entailed an operation in which voxels over the entire volume were accessed. The storage complexity for this narrowband scheme was still Differential constructions over the narrow band domain edge require careful interpolation and domain alteration schemes to stabilise the solution. [3]

Sparse field

This time complexity was eliminated in the approximate "sparse field" level set method introduced by Whitaker in 1998. [4] The sparse field level set method employs a set of linked lists to track the active voxels around the interface. This allows incremental extension of the active region as needed without incurring any significant overhead. While consistently efficient in time, storage space is still required by the sparse field level set method. See [5] for implementation details.

Sparse block grid

The sparse block grid method, introduced by Bridson in 2003, [6] divides the entire bounding volume of size into small cubic blocks of voxels each. A coarse grid of size then stores pointers only to those blocks that intersect the narrow band of the level set. Block allocation and deallocation occur as the surface propagates to accommodate to the deformations. This method has a suboptimal storage complexity of , but retains the constant time access inherent to dense grids.

Octree

The octree level set method, introduced by Strain in 1999 [7] and refined by Losasso, Gibou and Fedkiw, [8] and more recently by Min and Gibou [9] uses a tree of nested cubes of which the leaf nodes contain signed distance values. Octree level sets currently require uniform refinement along the interface (i.e. the narrow band) in order to obtain sufficient precision. This representation is efficient in terms of storage, and relatively efficient in terms of access queries, An advantage of the level method on octree data structures is that one can solve the partial differential equations associated with typical free boundary problems that use the level set method. The CASL research group [10] has developed this line of work in computational materials, computational fluid dynamics, electrokinetics, image guided surgery and controls.

Run-length encoded

The run-length encoding (RLE) level set method, introduced in 2004, [11] applies the RLE scheme to compress regions away from the narrow band to just their sign representation while storing with full precision the narrow band. The sequential traversal of the narrow band is optimal and storage efficiency is further improved over the octree level set. The addition of an acceleration lookup table allows for fast random access, where r is the number of runs per cross section. Additional efficiency is gained by applying the RLE scheme in a dimensional recursive fashion, a technique introduced by Nielsen & Museth's similar DT-Grid. [12]

Hash Table Local Level Set

The Hash Table Local Level Set method, introduced in 2011 by Eyiyurekli and Breen [13] and extended in 2012 by Brun, Guittet and Gibou, [14] only computes the level set data in a band around the interface, as in the Narrow Band Level-Set Method, but also only stores the data in that same band. A hash table data structure is used, which provides an access to the data. However, Brun et al. conclude that their method, while being easier to implement, performs worse than a quadtree implementation. They find that

as it is, [...] a quadtree data structure seems more adapted than the hash table data structure for level-set algorithms.

Three main reasons for worse efficiency are listed:

  1. to obtain accurate results, a rather large band is required close to the interface, which counterbalances the absence of grid nodes far from the interface;
  2. the performances are deteriorated by extrapolation procedures on the outer edges of the local grid and
  3. the width of the band restricts the time step and slows down the method.

Point-based

Corbett in 2005 [15] introduced the point-based level set method. Instead of using a uniform sampling of the level set, the continuous level set function is reconstructed from a set of unorganized point samples via moving least squares.

Related Research Articles

<span class="mw-page-title-main">Binary search algorithm</span> Search algorithm finding the position of a target value within a sorted array

In computer science, binary search, also known as half-interval search, logarithmic search, or binary chop, is a search algorithm that finds the position of a target value within a sorted array. Binary search compares the target value to the middle element of the array. If they are not equal, the half in which the target cannot lie is eliminated and the search continues on the remaining half, again taking the middle element to compare to the target value, and repeating this until the target value is found. If the search ends with the remaining half being empty, the target is not in the array.

<span class="mw-page-title-main">Computational chemistry</span> Branch of chemistry

Computational chemistry is a branch of chemistry that uses computer simulations to assist in solving chemical problems. It uses methods of theoretical chemistry incorporated into computer programs to calculate the structures and properties of molecules, groups of molecules, and solids. The importance of this subject stems from the fact that, with the exception of some relatively recent findings related to the hydrogen molecular ion, achieving an accurate quantum mechanical depiction of chemical systems analytically, or in a closed form, is not feasible. The complexity inherent in the many-body problem exacerbates the challenge of providing detailed descriptions of quantum mechanical systems. While computational results normally complement information obtained by chemical experiments, it can occasionally predict unobserved chemical phenomena.

<span class="mw-page-title-main">Hash function</span> Mapping arbitrary data to fixed-size values

A hash function is any function that can be used to map data of arbitrary size to fixed-size values, though there are some hash functions that support variable length output. The values returned by a hash function are called hash values, hash codes, hash digests, digests, or simply hashes. The values are usually used to index a fixed-size table called a hash table. Use of a hash function to index a hash table is called hashing or scatter storage addressing.

In computer science, an associative array, map, symbol table, or dictionary is an abstract data type that stores a collection of pairs, such that each possible key appears at most once in the collection. In mathematical terms, an associative array is a function with finite domain. It supports 'lookup', 'remove', and 'insert' operations.

<span class="mw-page-title-main">Perfect hash function</span> Hash function without any collisions

In computer science, a perfect hash functionh for a set S is a hash function that maps distinct elements in S to a set of m integers, with no collisions. In mathematical terms, it is an injective function.

A randomized algorithm is an algorithm that employs a degree of randomness as part of its logic or procedure. The algorithm typically uses uniformly random bits as an auxiliary input to guide its behavior, in the hope of achieving good performance in the "average case" over all possible choices of random determined by the random bits; thus either the running time, or the output are random variables.

<span class="mw-page-title-main">Graph (abstract data type)</span> Abstract data type in computer science

In computer science, a graph is an abstract data type that is meant to implement the undirected graph and directed graph concepts from the field of graph theory within mathematics.

Sparse grids are numerical techniques to represent, integrate or interpolate high dimensional functions. They were originally developed by the Russian mathematician Sergey A. Smolyak, a student of Lazar Lyusternik, and are based on a sparse tensor product construction. Computer algorithms for efficient implementations of such grids were later developed by Michael Griebel and Christoph Zenger.

In computing, a persistent data structure or not ephemeral data structure is a data structure that always preserves the previous version of itself when it is modified. Such data structures are effectively immutable, as their operations do not (visibly) update the structure in-place, but instead always yield a new updated structure. The term was introduced in Driscoll, Sarnak, Sleator, and Tarjan's 1986 article.

<span class="mw-page-title-main">Octree</span> Tree data structure in which each internal node has exactly eight children, to partition a 3D space

An octree is a tree data structure in which each internal node has exactly eight children. Octrees are most often used to partition a three-dimensional space by recursively subdividing it into eight octants. Octrees are the three-dimensional analog of quadtrees. The word is derived from oct + tree. Octrees are often used in 3D graphics and 3D game engines.

A space–time trade-off, also known as time–memory trade-off or the algorithmic space-time continuum in computer science is a case where an algorithm or program trades increased space usage with decreased time. Here, space refers to the data storage consumed in performing a given task, and time refers to the time consumed in performing a given task.

<span class="mw-page-title-main">Isosurface</span> Surface representing points of constant value within a volume

An isosurface is a three-dimensional analog of an isoline. It is a surface that represents points of a constant value within a volume of space; in other words, it is a level set of a continuous function whose domain is 3-space.

<span class="mw-page-title-main">Level-set method</span> Conceptual framework used in numerical analysis of surfaces and shapes

Level-set methods (LSM) constitute a conceptual framework for using level sets as a tool for the numerical analysis of surfaces and shapes. Invented in 1988 by S. Osher and J. A. Sethian, the key advantage of LSM is its ability to perform numerical computations involving curves and surfaces on a fixed Cartesian grid without having to parameterize these objects. Importantly, LSM makes it easier to follow shapes with sharp corners or that change topology, for example, when a shape splits in two, develops holes, or the reverse of these operations. These characteristics make LSM an effective method for modeling time-varying objects, like inflation of an airbag, or a drop of oil floating in water.

In computing, a cache-oblivious algorithm is an algorithm designed to take advantage of a processor cache without having the size of the cache as an explicit parameter. An optimal cache-oblivious algorithm is a cache-oblivious algorithm that uses the cache optimally. Thus, a cache-oblivious algorithm is designed to perform well, without modification, on multiple machines with different cache sizes, or for a memory hierarchy with different levels of cache having different sizes. Cache-oblivious algorithms are contrasted with explicit loop tiling, which explicitly breaks a problem into blocks that are optimally sized for a given cache.

<span class="mw-page-title-main">Signed distance function</span> Distance from a point to the boundary of a set

In mathematics and its applications, the signed distance function is the orthogonal distance of a given point x to the boundary of a set Ω in a metric space, with the sign determined by whether or not x is in the interior of Ω. The function has positive values at points x inside Ω, it decreases in value as x approaches the boundary of Ω where the signed distance function is zero, and it takes negative values outside of Ω. However, the alternative convention is also sometimes taken instead.

<span class="mw-page-title-main">James Sethian</span> American mathematician

James Albert Sethian is a professor of mathematics at the University of California, Berkeley and the head of the Mathematics Group at the United States Department of Energy's Lawrence Berkeley National Laboratory.

<span class="mw-page-title-main">3D reconstruction</span> Process of capturing the shape and appearance of real objects

In computer vision and computer graphics, 3D reconstruction is the process of capturing the shape and appearance of real objects. This process can be accomplished either by active or passive methods. If the model is allowed to change its shape in time, this is referred to as non-rigid or spatio-temporal reconstruction.

<span class="mw-page-title-main">Volume of fluid method</span> Free-surface modelling technique

In computational fluid dynamics, the volume of fluid (VOF) method is a free-surface modelling technique, i.e. a numerical technique for tracking and locating the free surface. It belongs to the class of Eulerian methods which are characterized by a mesh that is either stationary or is moving in a certain prescribed manner to accommodate the evolving shape of the interface. As such, VOF is an advection scheme—a numerical recipe that allows the programmer to track the shape and position of the interface, but it is not a standalone flow solving algorithm. The Navier–Stokes equations describing the motion of the flow have to be solved separately. The same applies for all other advection algorithms.

A sparse voxel octree (SVO) is a 3D computer graphics rendering technique using a raycasting or sometimes a ray tracing approach into an octree data representation.

References

  1. Osher, S. & Sethian, J. A. 1988. "Fronts propagating with curvature-dependent speed: Algorithms based on Hamilton-Jacobi formulations". Journal of Computation Physics 79:12–49.
  2. Adalsteinsson, D. & Sethian, J. A. 1995. "A fast level set method for propagating interfaces." Journal of Computational Physics . 118(2)269–277.
  3. Adalsteinsson, D; Sethian, J (1994). "A fast level set Method for Propagating Interfaces". Journal of Computational Physics. 118 (2): 269. Bibcode:1995JCoPh.118..269A. CiteSeerX   10.1.1.46.1716 . doi:10.1006/jcph.1995.1098.
  4. Whitaker, R. T. 1998. "A level-set approach to 3d reconstruction from range data." International Journal of Computer Vision. 29(3)203–231.
  5. S. Lankton. "Sparse Field Method - Technical Report." April 21, 2009 <http://www.shawnlankton.com/2009/04/sfm-and-active-contours/>
  6. Bridson, R. 2003. "Computational aspects of dynamic surfaces (dissertation)." Stanford University, Stanford, California.
  7. Strain, J. 1999. "Tree methods for moving interfaces." Journal of Computational Physics . 151(2)616–648.
  8. Losasso, F., Gibou, F., & Fedkiw, R. 2004. Simulating water and smoke with an octree data structure. ACM Transactions on Graphics. 23(3)457–462.
  9. Min, C. & Gibou, F. 2007. A second order accurate level set method on non-graded adaptive cartesian grids. Journal of Computational Physics. 225(1)300–321.
  10. Gibou, Frederic. "Frederic Gibou - Research". UCSB Engineering Department. Archived from the original on 2017-02-03.
  11. Houston, B., Nielsen, M., Batty, C., Nilsson, O. & K. Museth. 2006. "Hierarchical RLE Level Set: A Compact and Versatile Deformable Surface Representation." ACM Transactions on Graphics . 25(1).
  12. Nielsen, M. B. & Museth K. 2006. "Dynamic Tubular Grid: An efficient data structure and algorithms for high resolution level sets." Journal of Scientific Computing . 26(1) 1–39.
  13. Eyiyurekli, M. & Breen, D. 2011. "Data structures for interactive high resolution level-set surface editing," Proc. Graphics Interface. pp. 95-102.
  14. Brun, E., Guittet, A. & Gibou, F. 2012. "A local level-set method using a hash table data structure." Journal of Computational Physics . 231(6)2528-2536.
  15. Corbett, R. 2005. "Point–Based Level Sets and Progress Towards Unorganised Particle Level Sets (thesis)." University of British Columbia, Canada.