Next Article in Journal
Spatial Data Sharing: A Pilot Study of French SDIs
Previous Article in Journal
ASTROLABE: A Rigorous, Geodetic-Oriented Data Model for Trajectory Determination Systems
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Affine-Invariant Triangulation of Spatio-Temporal Data with an Application to Image Retrieval

1
Luciad, Gaston Geenslaan 11, 3001 Leuven, Belgium
2
UHasselt – Hasselt University and transnational University Limburg, Databases and Theoretical Computer Science Research Group, Agoralaan, Gebouw D, 3590 Diepenbeek, Belgium
3
Department of Computer Science & Engineering, University of Nebraska-Lincoln, 256 Avery Hall, 1144 T Street, Lincoln, NE 68588-0115, USA
*
Author to whom correspondence should be addressed.
ISPRS Int. J. Geo-Inf. 2017, 6(4), 100; https://doi.org/10.3390/ijgi6040100
Submission received: 10 February 2017 / Revised: 22 March 2017 / Accepted: 25 March 2017 / Published: 28 March 2017

Abstract

:
In the geometric data model for spatio-temporal data, introduced by Chomicki and Revesz, spatio-temporal data are modelled as a finite collection of triangles that are transformed by time-dependent affinities of the plane. To facilitate querying and animation of spatio-temporal data, we present a normal form for data in the geometric data model. We propose an algorithm for constructing this normal form via a spatio-temporal triangulation of geometric data objects. This triangulation algorithm generates new geometric data objects that partition the given objects both in space and in time. A particular property of the proposed partition is that it is invariant under time-dependent affine transformations, and hence independent of the particular choice of coordinate system used to describe the spatio-temporal data in. We can show that our algorithm works correctly and has a polynomial time complexity (of reasonably low degree in the number of input triangles and the maximal degree of the polynomial functions that describe the transformation functions). We also discuss several possible applications of this spatio-temporal triangulation. The application of our affine-invariant spatial triangulation method to image indexing and retrieval is discussed and an experimental evaluation is given in the context of bird images.

1. Introduction and Summary

1.1. Introduction

At this moment, spatial databases are a well-established area of research. Since most natural and man-made phenomena have a temporal as well as a spatial extent a lot of attention has also been paid, during the last decade, to modelling and querying spatio-temporal data [1,2,3,4,5,6,7,8,9]. Several data models for representing spatio-temporal data have been proposed already. In this article, we adopt the geometric data model that was introduced by Chomicki and Revesz [1] and of which closure properties under boolean operations were later studied by them and the present authors [4,10]. In the geometric data model, spatio-temporal objects are finitely represented as geometric objects, which in turn are collections of atomic geometric objects. An atomic geometric object is given by its spatial reference object, which determines its shape; a time interval, which specifies its lifespan; and a transformation function, which determines the movement of the object during the time interval.
Although this model is very natural, it is not immediately clear what the spatio-temporal object represented by some atomic geometric objects looks like. This difficulty has several possible reasons. To start with, the time domain of the spatio-temporal object has to be computed from the time domains of all atomic geometric objects, which might overlap or may contain gaps (i.e., moments when the spatio-temporal object does not exist). Furthermore, two different sets of atomic geometric objects may represent the same spatio-temporal object and there may be elements in the set of atomic geometric objects that do not contribute to the spatio-temporal object at all, as they may be overlapped totally by other atomic objects. In short, the proposed geometric data model would benefit from a normal form that supports visualization and describes the objects in a unique way.

1.2. Summary of Results

We propose as a normal form an affine-invariant spatio-temporal triangulation. This triangulation can be used to preprocess geometric objects in order to facilitate querying and animation in such a way that queries can be executed much more efficiently and require few additional computations. The main reason for this is that in a spatio-temporal triangulation the data is partitioned in space as well as in time. Hence, no objects overlap, thus reducing unnecessary computations. Actually, we deviate a little from the strict mathematical concept of a triangulation and allow triangles in a spatial and spatio-temporal triangulation to share boundaries with each other, as is not uncommon (see, e.g., [11]).
Our spatio-temporal triangulation is also invariant under time-dependent affinities. In the area of spatial database research, much attention has been payed to affine invariance of both data description and manipulation techniques and queries [12,13,14]. The main idea of working in an affine invariant way is to obtain methods and techniques that are not affected by affine transformations of the ambient space in which the data is situated. This means that a particular choice of origin or some particular, possibly artificial, choice of unit of measure (e.g., inches, centimeters, ...) and direction of coordinate axis has no effect on the final result of the method, technique or query. This means that an affine-invariant method is robust with respect to a particular choice of measuring data.
Also in other areas, invariance under affinities is often relevant. In computer vision, the so-called weak perspective assumption [15] is widely adopted. This assumption says that when an object is repeatedly photographed from different viewpoints, and the object is relatively far away form the camera, that all pictures of the object are affine images of each other, i.e., all images are equal up to an affinity of the photographic plane. We generalize this assumption for spatio-temporal objects as follows. If a spatio-temporal event is filmed by two moving observers, relatively far away from the event, then both films will be the same up to a time-dependent affinity of the plane of the pellicle. For each time moment, another affinity maps the snapshots of the different movies onto each other.
The weak perspective assumption has necessitated affine-invariant similarity measures between pairs of pictures [16,17,18]. Also, in computer graphics, affine-invariant norms and triangulations have been studied [19]. In the field of spatial and spatio-temporal constraint databases [20,21], affine-invariant query languages [12,13,14] have been proposed. For spatial data, there exist several triangulation algorithms, but, apart from the triangulation of Nielson [19], their output is not affine-invariant. The method proposed by Nielson to triangulate a set of points in an affine-invariant way computes an affine-invariant norm using the coordinate information of all points, and then uses this norm in the triangulation algorithm. We develop a spatial triangulation algorithm that is more intuitive, that is efficiently computable and that naturally extends to a spatio-temporal triangulation algorithm.
Affine-invariant measures have also been applied to shape matching, shape retrieval, and symmetry detection problems [22]; to point matching in aerial imaging [23]; to visual features detection in computer vision [24]; and object recognition [25].
The main contribution of this paper is an affine-invariant time-dependent triangulation algorithm that produces a unique and affine-invariant triangulation of a spatio-temporal object given as a geometric data object. As mentioned before, a geometric input object for this triangulation algorithm, consists of m atomic geometric objects, given by a triangle, a time interval and a time-dependent transformation function that we assume to be given as a fraction of polynomial functions of degree at most d. We show that our triangulation algorithm runs in polynomial time in the size of the input, measured by m and d. The worst-case time complexity is of order z ( d , ϵ ) d m 5 log m , where z ( d , ϵ ) is the complexity of finding all roots of an univariate polynomial of degree d, with accuracy ϵ . The maximal number of atomic objects in the resulting triangulation is of order m 5 d 6 . For static spatial data the time complexity of triangulating is of order m 2 log m and the number of returned triangles is of order m 2 . These results are summarized in Table 1.
We remark that such triangulations could also be computed via general purpose cell decomposition algorithms, most notably cylindrical algebraic decomposition [26]. These algorithms are not affine-invariant, however, and are therefore not directly suitable for the computational task that we consider.
In this paper, we also show some applications of the proposed triangulation and show that, when computed in a preprocessing stage, it facilitates the computation of certain types of queries and operations. We end this introduction with a description of a number of application scenarios.

1.3. Application Scenarios

There is a range of possible applications for our proposed algorithms. Below we describe briefly some selected applications from ecology and criminology.
  • Application Scenario 1: Consider an ornithologist who is exploring a jungle and takes some photos of some new bird species. Suppose that the ornithologist would like to find in an image database of already known birds those bird images that are similar to the image of the new bird species. This content-based image retrieval problem is challenging because the images of the birds from even the same species may vary slightly, especially in size and due to changing view angles, for example slightly higher or lower. Hence, the image retrieval algorithm needs to be affine-invariant. In this paper, we provide the basis for an image retrieval algorithm that retrieves for the ornithologist all the images of birds that are similar to the image of the new bird species using a similarity measure that is able to disregard simple scaling and view angle distortions [27].
  • Application Scenario 2: Consider again the ornithologist. Sometimes closely related bird species can be best distinguished by their behavior, for example the way of they crack and eat some nut or by their mating dance. A famous example of this are the Galapagos finches that Charles Darwin has recognized to be several separate species with only slight changes in appearance (primarily focused on the shape and the size of their beaks) but with a very marked change in their behavior (the type of fruits and nuts they eat). Suppose that the ornithologist takes a short video clip of the new bird species eating some fruit and is interested in looking up in a video database all the known birds which are similar both in appearance and in their eating behavior. This is an even more challenging problem that requires the temporal sequence of the images (the video) to match as well while still allowing for the scaling and the view angle distortions that we mentioned in the previous application scenario.
  • Application Scenario 3: Videocameras are frequently used for crime control. Hence the appearance and way of walking of a criminal may be captured on a video and compared to the appearance and motion of already recorded persons in a video databases.
  • Application Scenario 4: In spite of all the security cameras, fingerprint analysis remains a major tool in criminal investigations because while criminals often disguise their appearance, they inadvertently leave their fingerprints on the objects that they touch. Usually each fingerprint can be broken into distinctive regions of swirls and arches. An arch could be approximated by a single triangle and a swirl can be decomposed into a hexagon and further into six equilateral triangles. This gives a natural triangulation of fingerprint images. Such a triangulation forms a basis of our image similarity algorithms as opposed to other algorithms. The advantage of a triangulation is that each triangle can be further analyzed in more detail. For example, in each triangle of a fingerprint the number and thickness of the lines that define the tiny groves of the skin is very unique. Hence two fingerprints that roughly correspond in the location of swirls and arches can be distinguished by the patterns within each triangle.
Further applications are discussed in Section 5. Application scenarios 1 and 2 are elaborated in Section 6, where we present an application of our affine-invariant spatial triangulation method to image indexing and retrieval in the context of bird images.
The outline of this paper is as follows. In Section 2, we explain the geometric data model and define spatial and spatio-temporal triangulations. We introduce an affine invariant spatial triangulation method in Section 3. Afterwards, in Section 4, we describe a novel affine-invariant triangulation of spatio-temporal data. We describe the algorithm in detail and give and prove some properties. Then, we give some possible applications of the triangulation in Section 5. The application of our affine-invariant spatial triangulation method to image indexing and retrieval is described in Section 6. We end with some concluding remarks in Section 7.

2. Preliminaries and Definitions

We denote the set of real numbers by R and the two-dimensional real space by R 2 . The space containing moving 2-dimensional objects will be denoted ( R 2 × R ) . We will use x and y (with or without subscripts) to denote spatial variables and t (with or without subscripts) to denote time variables. The letter T (with or without subscripts) will be used to refer to triangles, which we assume to be represented by triples of pairs of points in R 2 .
In this section, we first give the definition of a spatial, a temporal and a spatio-temporal object. Next, we come back to the need of a normal form. Finally, we define affine triangulations of spatial and of spatio-temporal data.

2.1. Spatio-Temporal Data in the Geometric Data Model

In this section, we describe the geometric data model as introduced by Chomicki and Revesz [1], in which spatio-temporal data are modeled by geometric objects that in turn are finite collections of atomic (geometric) objects. First, we define temporal, spatial and spatio-temporal data objects. In this definition we work with semi-algebraic sets because these are infinite sets that allow a effective finite description by means of polynomial equalities and inequalities. More formally, a semi-algebraic set in R d is a Boolean combination of sets of the form { ( x 1 , x 2 , , x d ) R d p ( x 1 , x 2 , , x d ) > 0 } , where p is a polynomial with integer coefficients in the real variables x 1 , x 2 , ..., x d . Properties of semi-algebraic sets are well known [28].
Definition 1.
A temporal object is a semi-algebraic subset of R , a spatial object is a semi-algebraic subset of R 2 and a spatio-temporal object is a semi-algebraic subset of ( R 2 × R ) .
With the time domain of a spatio-temporal object, we mean its projection on the time axis, i.e., on the third coordinate of ( R 2 × R ) . It is a well-known property of semi-algebraic sets, that this projection is a semi-algebraic set and can therefore be considered a temporal object [28].
Example 1.
The interval [ 0 , 4 ] and the finite set { 0 , 1 , 2 , 3 , 4 } are examples of temporal objects. The unit circle in the plane is a spatial object, since it can be represented by the polynomial inequalities ¬ ( 1 x 2 y 2 > 0 ) ¬ ( x 2 + y 2 1 > 0 ) , usually abbreviated by the formula x 2 + y 2 = 1 . The set { ( x , y ; t ) R 2 × R x 2 t x 2 + 2 t y t 1 y t t 0 t 4 } is a spatio-temporal object and it represents rectangle that is translated at constant speed during the time interval [ 0 , 4 ] . At each moment t in this interval it has corner points ( 2 t , t ) , ( 2 + 2 t , t ) , ( 2 + 2 t , t 1 ) and ( 2 t , t 1 ) , as illustrated in Figure 1.
In the geometric data model [1,4], spatio-temporal objects are finitely represented by geometric objects, which in turn are finite collections of atomic geometric objects. An atomic geometric object is given by its spatial reference object, which determines its shape; a time interval, which specifies its lifespan; and a transformation function, which determines the movement of the object during the time interval.
Several classes of geometric objects were introduced, depending on the types of spatial reference objects and transformations [1,4]. In this article, we consider spatio-temporal objects that can be represented as finite unions of triangles moved by time-dependent affine transformations. We refer also to Definition 2. Other combinations have been studied [4] in which triangles, rectangles or polygons are transformed by time-dependent translations, scalings or affinities, that, in turn, are given by linear, polynomial or rational functions of time. The class of geometric objects that we consider is not only the most general of the classes that were previously studied, it is also one of the few classes that have the desirable property of being closed under the set operations union, intersection and difference [4]. In Section 4, we will rely on this closure property.
Definition 2.
An atomic geometric object O is a triple ( T , I , f ) , where
  • T R 2 is the spatial reference object of O , which is a (filled) triangle with corner points that have rational or algebraic coefficients. For technical reasons, we allow a triangle to degenerate into a line segment or a point;
  • I R is the time domain (a point or an interval) of O ; and
  • f : R 2 × R R 2 is the transformation function of O , which is a time-dependent affinity of the form
( x , y ; t ) a 11 ( t ) a 12 ( t ) a 21 ( t ) a 22 ( t ) · x y + b 1 ( t ) b 2 ( t ) ,
where a i j ( t ) and b i ( t ) are rational functions of t (i.e., of the form p 1 ( t ) / p 2 ( t ) , with p 1 and p 2 polynomials in the variable t with rational coefficients) and the determinant of the matrix of the a i j ’s differs from zero for all t in I.
We remark that this definition guarantees that there is a finite representation of atomic geometric objects by means of the polynomial constraint description of the time-interval, (the cornerpoints of) the reference triangle and the coefficients of the transformation matrices. An atomic geometric object O = ( T , I , f ) finitely represents the spatio-temporal object
{ ( x , y ; t ) R 2 × R t I ( x ) ( y ) ( ( x , y ) T ( x , y ) = f ( x , y ; t ) ) } ,
which we denote as s t ( O ) . Atomic geometric objects can be combined to more complex geometric objects.
Definition 3.
A geometric object is a set { O 1 , , O n } of atomic geometric objects. It represents the spatio-temporal object i = 1 n s t ( O i ) .
By definition 3, the atomic geometric objects that compose a geometric object are allowed to overlap in time as well in space. This is a natural definition, but we will see in Section 2.2, that this flexibility in design leads to expensive computations when we want to query spatio-temporal objects represented this way.
We define the time domain of a geometric object { O 1 , , O n } to be the smallest time interval that contains all the time intervals I i of the atomic geometric objects O i (this is the convex closure of these time intervals, denoted by ¯ i = 1 n I i ).
Remark that a spatio-temporal object is empty outside the time domain of the geometric object that defines it. Also, within the time domain, a spatio-temporal object is empty at any moment when no atomic object exists.
Example 2.
The spatio-temporal object of Example 1 can be represented by the geometric object { O 1 , O 2 } , where O 1 is represented by ( T 1 , [ 0 , 4 ] , f) and O 2 equals ( T 2 , [ 0 , 4 ] , f), with T 1 the triangle with corner points ( 0 , 0 ) , ( 2 , 0 ) , ( 2 , 1 ) , T 2 the triangle with corner points ( 0 , 0 ) , ( 0 , 1 ) , ( 2 , 1 ) , and f the transformation ( x , y ; t ) ( x + 2 t + 2 , y t 1 ) .
Example 3.
Figure 2 shows a traffic sign at six moments (seen by an observer walking around it). This observation can be described by seven atomic geometric objects. During the interval [ 0 , 3 ] , there exist three atomic objects, two triangles, and one line segment. At the time instant t = 3 there exists one atomic object that represents the shape of a line. During the interval [ 3 , 5 ] , there exist three atomic objects, two triangles, and a line segment.
To end this subsection, we define the snapshot of a spatio-temporal object at a certain moment in time. Snapshots are spatial objects that show what a spatio-temporal object looks like at a certain moment.
Definition 4.
Let O be an atomic object. Let τ 0 be a time moment in the time domain of O . The snapshot of O at time τ 0 , denoted O τ 0 , is the intersection of the spatio-temporal object s t ( O ) with the plane in ( R 2 × R ) defined by t = τ 0 , i.e., the plane R 2 × { τ 0 } .
Let { O 1 , , O n } be a geometric object. The snapshot of { O 1 , , O n } at time τ 0 , denoted { O 1 , , O n } τ 0 , is the union of the snapshots at τ 0 of all atomic objects that compose { O 1 , , O n } , i.e., i = 1 n O i τ 0 .
As explained in Example 3, Figure 2 shows six snapshots of a geometric object representing a traffic sign seen by a moving observer.

2.2. The Benefits of a Normal Form

As remarked after Definition 3, the atomic objects that compose a geometric object may overlap both in space as in time. As a consequence, it is impossible to answer some very basic queries about a geometric object without a lot of computations.
To know the time domain of a spatio-temporal object, for example, one needs to check all atomic objects that describe it, sort the begin and end points of their time domains, and derive the union of all time domains.
Also, there might be atomic objects that do not contribute at all to the shape of the spatio-temporal object as they are entirely overlapped by other atomic objects. These objects are taken along unnecessarily in computations. Furthermore, two geometric objects that represent the same spatio-temporal object can have a totally different representation by means of atomic objects. It is computationally expensive to derive from their different representations that they are actually the same.
These drawbacks can be solved by introducing a normal form for geometric objects, that makes their structure more transparent. This normal form should have the property that it is the same for all geometric objects that represent the same spatio-temporal object, independent of their initial representation by means of atomic objects. In this paper, we add the requirement that this normal form should be invariant under affinities. If two geometric objects are the same up to time-dependent affinities, we also want their normal form representation to be the same up to these affinities.

2.3. Affine Triangulation Methods

We end this section with the definition of affine spatial and spatio-temporal triangulation methods. We remark that, in the following definition, we consider filled triangles and we allow a triangle to degenerate into a closed line segment or a point.
We use the notion of the interior of a set as follows: the interior of a triangle is its topological interior; the interior of a line segment is the segment without endpoints; and the interior of a point is the point itself.
Definition 5 (Spatial and spatio-temporal triangulation).
Let { O 1 , , O n } be a geometric object and τ 0 be a time moment in the time domain of { O 1 , , O n }.
  • A collection of triangles { T 1 , T 2 , , T m } in R 2 is a triangulation of the snapshot { O 1 , , O n } τ 0 if the interiors of different T i are disjoint and the union i = 1 m T i equals { O 1 , , O n } τ 0 .
  • A geometric object { T 1 , , T m } is a triangulation of a geometric object { O 1 , , O n } if for each τ 0 in the time domain of { O 1 , , O n } , { T 1 , , T m } τ 0 is a triangulation of the snapshot { O 1 , , O n } τ 0 and if furthermore s t ( { O 1 , , O n } ) = s t ( { T 1 , , T m } ) .
We remark that in the second part of Definition 5, at each moment τ 0 in the time domain of { O 1 , , O n } , T i τ 0 may be empty (i.e., τ 0 may be outside the time domain of T i ).
In Figure 3, two stars with their respective triangulations are shown. Note that, although triangulations of spatial sets intuitively are partitions of such sets into triangles, they are not partitions in the mathematical sense. Indeed, the elements of the partition may have common boundaries. For spatial data, it is customary to allow the elements of a partition to share boundaries (see for example [11]).
A spatial triangulation method is a procedure that on input (some representation of) a snapshot of a spatio-temporal object produces (some representation of) a triangulation of this snapshot. A spatio-temporal triangulation method is a procedure that on input (some representation by means of geometric objects of) a spatio-temporal object, produces (some representation by means of geometric objects of) a triangulation of this spatio-temporal object.
Next, we define what it means for such methods to be affine-invariant.
Definition 6 (Affine-invariant triangulation methods).
A spatial triangulation method T S is called affine invariant if and only if for any two snapshots A and B, for which there is an affinity α : R 2 R 2 such that α ( A ) = B , also α ( T S ( A ) ) = T S ( B ) .
A spatio-temporal triangulation method T S T is called affine invariant if and only if for any geometric objects { O 1 , , O n } and { O 1 , , O m } for which for each moment τ 0 in their time domains, there is an affinity α τ 0 : R 2 R 2 such that if α τ 0 ( { O 1 , , O n } τ 0 ) = { O 1 , , O m } τ 0 , also α τ 0 ( T S T ( { O 1 , , O n } ) τ 0 ) = T S T ( { O 1 , , O m } ) τ 0 .
Example 4.
Given a convex polygon as shown in ( A ) of Figure 4. A spatial triangulation method that takes the leftmost of the corner points with the smallest y-coordinates of the polygon and connects it with all other corner points, is not affine invariant. It is not difficult to see that, when an affine transformation is applied to the polygon, another point may become the leftmost lowest corner point. Part ( B ) of Figure 4 shows the result of applying this triangulation method to the convex polygon shown in ( A ) .
A triangulation method that computes the barycenter of a convex polygon and connects it with all corner points is affine-invariant. An illustration the output of this method applied to the polygon shown in ( A ) is shown in ( C ) of Figure 4.
We now propose an affine-invariant spatial triangulation method for spatial figures that are snapshots of geometric objects, or, that can be represented as finite sets of triangles.

3. An Affine-Invariant Spatial Triangulation Method

We next propose an affine-invariant triangulation method. Later on, in Section 4, we will use the technique proposed here to construct a spatio-temporal triangulation algorithm. We first explain the intuition behind the triangulation method, and then give the details in Algorithm 1. We illustrate the algorithm with an example, prove its correctness and end with determining the size of the output and the time complexity of the algorithm.
Intuitively, the algorithm is as follows. The input is a snapshot S, given as a finite set of triangles. In Figure 5A, for example, a snapshot of a house-like shape is given by four triangles. One of those triangles is degenerated into a line segment (representing the chimney). To make sure that the triangulation is independent of the exact representation of the snapshot by means of triangles, the boundary of the snapshot, i.e., the boundary of the union of the triangles composing S, is computed. For the snapshot of Figure 5, the boundary is shown in (B). The (triangle degenerated into A) line segment contributes to the boundary. Therefor, we label it, the reason for this will become clear in a further stage of the procedure. Also, the (triangles degenerated into) points of the input that are not part of a line segment or real triangle, i.e., the ones contributing to the boundary, are added to the output immediately.
The set of all lines through the edges of the boundary partitions the plane into a set of open convex polygons, open line segments, open (half-) lines and points. The (half-) lines and some of the polygons can be unbounded, so we use the convex hull CH ( S ) of the corner points of all triangles in the input as a bounding box. In (C) of Figure 5, the grey area is the area inside of the convex hull. The partition of the area inside the convex hull is computed. The points in this partition are not considered. The points contributing to the boundary were already added to the output in an earlier stage. For each open line segments, it is checked whether it is part of a labelled line segment of the input. Recall that only line segments that contribute to the boundary are labelled in an earlier stage of the algorithm. Only if an open line segment is part of a labelled segment, as is the case for the one printed in bold in Figure 5D, its closure (i.e., a closed line segment) is added to the output. For each open polygon in the partition, we compute the polygon that is its closure and triangulate this polygon using its center of mass (see Figure 5D for a polygon in the partition and (E) for its triangulation). Some open polygons are only part of the convex hull of S, but not of the snapshot itself. The polygons shaded in grey in (D) of Figure 5 are an example of such polygons. If a polygon does not belong to S, we do not triangulate it. The triangulations of all other polygons are added to the output. Note that we can decide whether a polygon belongs to the snapshot by first computing the planar subdivision U ( S ) (which we will define next) of the input snapshot and then test for each open polygon whether its center of mass belongs to the interior of a region or face in the subdivision. We will explain this in more detail when analyzing the complexity of the algorithm.
In the detailed description of the algorithm, we will use some well known techniques. One of those is the doubly-connected edge list [29], used to store planar subdivisions.
Definition 7 (Planar subdivision).
A planar subdivision is a subdivision of the plane into labelled regions (or faces), edges and vertices, induced by a plane graph. The complexity of a subdivision is the sum of the number of vertices, the number of edges and the number of faces it consists of.
Next, we describe the doubly-connected edge list, a data structure to store planar subdivisions. For this structure, each edge is split into two directed half-edges. In general, a doubly-connected edge list contains a record for each face, edge and vertex of the planar subdivision.
Definition 8 (Doubly-connected edge list).
Given a planar subdivision S . A doubly-connected edge list for S , denoted DCEL( S ), is a structure containing a record for each face, edge and vertex of the subdivision. These records store the following geometric and topological information:
(i) 
The vertex record of a vertex a stores the coordinates of a and a pointer to an arbitrary half-edge that has a as its origin;
(ii) 
The face record of a face f stores a pointer to an arbitrary half-edge on its boundary. Furthermore, for each hole in f, it stores a pointer to an arbitrary half-edge on its boundary;
(iii) 
The half-edge record of a half-edge e stores five pointers. One to its origin-vertex, one to its twin half-edge, one to the face it bounds, and one to the previous and next half-edge on the boundary on that face.
Example 5.
Figure 6 shows a planar subdivision in (B) and its topological structure in (C), that is reflected in the doubly-connected edge list represented in Table 2.
Algorithm 1 (or T S ) gives the triangulation procedure more formally. The input of this triangulation algorithm is a snapshot S, consisting of a geometric object which we assume to be given as a finite set of (possibly overlapping and possibly degenerated) triangles. We further assume that each triangle is represented as a triple of pairs of coordinates, which are rational numbers.
To shorten and simplify the exposition of Algorithm 1, we assume that S is fully two-dimensional, or equivalently, that points and line segments that are not adjacent to a polygon belonging to S are already in the output. Including their triangulation in the algorithm would make its description tedious, as we would have to add, and consider, more node and edge labels.
We use C programming-style notation for pointers to records and elements of records. For example, Let a = ( a 1 , a 2 ) . In the vertex record V a of a , V a . x = a 1 and V a . y = a 2 . Let e be an edge record. The coordinates of the origin e origin of e are e origin x and e origin y .
Algorithm 1 T S (Input: S = { T 1 , T 2 , …, T k }, Output: { T 1 , T 2 , …, T })
1:
Out:= ∅.
2:
Compute the set B ( S ) containing all line segments, bounding a triangle of the input, that contribute to the boundary of S (i.e., that contain an edge of the boundary). Meanwhile, construct the planar subdivision U ( S ) induced by the triangles composing S.
3:
Compute the convex hull CH ( S ) of S.
4:
Construct the doubly connected edge list DCEL(S), induced by the planar subdivision defined by the lines through the segments of B ( S ) , using CH ( S ) as a bounding box.
5:
while there are any unvisited half-edges in DCEL( S ) left do
6:
 Let e be an unvisited edge.
7:
Σ x : = 0 , Σ y : = 0 , count := 0, Elist := .
8:
while e is unvisited do
9:
  Mark e with the label visited.
10:
  Elist : = Elist { ( e origin , e next origin ) } , Σ x : = Σ x + e origin x , Σ y : = Σ y + e origin y , count := count + 1 .
11:
   e : = e next .
12:
end while
13:
x : = ( Σ x count , Σ y count ) .
14:
if the point a in x belongs to a face of U ( S ) then
15:
  for all elements ( a s , a e ) of Elist do
16:
   Out := Out { T a a s a e } , where T a a s a e is the (closed) triangle with corner points a , a s and a e .
17:
  end for
18:
end if
19:
end while
20:
return Out.
Before proving the correctness of the algorithm and determining the size of the output and the time complexity of the algorithm, we give an example.
Example 6.
Let S be the set { T 1 , T 2 } , where T 1 is the triangle with corner points v 1 , v 3 and v 4 , and T 2 the triangle with corner points v 2 , v 3 and v 4 , as depicted in Figure 6. The doubly-connected edge list corresponding to ( C ) is shown in Table 2. We omitted the structures for vertices and faces, as we don’t need them for the second part of the algorithm.
After the doubly-connected edge list is constructed, we create and output the triangles. This is done by visiting all half-edges once. Suppose we start with e 2 , 1 . The next-pointers lead to e 1 , 5 and e 5 , 2 . The next pointer of the last one points to e 2 , 1 , which we visited already. This means we visited all edges of one polygon. The center of mass can now be computed and the triangles added to the output. This is done for all polygons that are part of the input. In this example, the polygon with corner points v 1 , v 5 and v 2 will not be triangulated, as it is not part of the input. The algorithm stops when there are no more unvisited edges left.
Note that, as an optimization, we could decide to not triangulate faces that are triangles already. This does not influence the complexity results, however. Therefor, and also for a shorter and more clear exposition, we formulated the algorithm in a more general form.
We now prove compute the complexity of both the output and execution time of the triangulation method described in Algorithm 1 and afterwards show that it is affine-invariant. First, we show that T S is indeed a triangulation method.
Property 1 (Algorithm 1 is a triangulation method).
Let S be a snapshot. The output T S ( S ) of Algorithm 1 applied to S is a triangulation of S.
Proof. 
Let the set of triangles { T 1 , T 2 , , T k } determine a snapshot S. It is easy to see that the output T S ( S ) = { T 1 , T 2 , , T } of T S is a triangulation. By construction, T S ( S ) is a set of triangles that either have no intersection, or share a corner point or bounding segment. It is clear from the algorithm that i = 1 k T i = j = 1 T j , because each triangle in T S ( S ) is tested for membership of S. We are also sure that S is covered by the output, because initially, the convex hull of S is triangulated, which contains S. ☐
Property 2 (Quadratic output complexity).
Let a snapshot S be given by the set { T 1 , T 2 , , T m } , consisting of m triangles. The triangulation T S ( S ) , where T S is the triangulation method described in Algorithm 1, contains O ( m 2 ) triangles.
Proof. 
It is well-known (see, e.g., [30]), that an arrangement of m lines in the plane results in a subdivision of the plane containing O ( m 2 ) lines, O ( m 2 ) edges and O ( m 2 ) faces. It follows that the structure DCEL( S ) will contain O ( m 2 ) half-edges, i.e., two half-edges for each edge in the arrangement. In the worst case scenario, when all faces of the partition of the bounding box belong to S, one triangle is added to the output for each half-edge in DCEL( S ) (connecting that half-edge with the center of mass of the face it bounds). Therefor, the output contains O ( m 2 ) triangles. ☐
In the following analysis of the running time of Algorithm 1, we assume that triangles are represented as triples of points, and that a point is represented as a pair of rational or algebraic numbers. We further assume that all basic arithmetic operations on coordinates of points require constant time.
Property 3 ( O ( m 2 log m ) running time).
Let a snapshot S be given by the set { T 1 , T 2 , , T m } , consisting of m triangles. The triangulation method T S , described in Algorithm 1, computes the triangulation T S ( S ) of S in time O ( m 2 log m ) .
Proof. 
Let a snapshot S be given by the set { T 1 , T 2 , , T m } . Using a plane-sweep algorithm [31], we compute both the list of segments contributing to the boundary of S and the planar subdivision U ( S ) induced by i = 1 m T i . This takes O ( m 2 log m ) , as there are at most m 2 intersection points between boundary segments of triangles of S.
The m triangles composing S together have at most 3 m different corner points. Computing the convex hull of m points in the plane can be done in time O ( m log m ) (see [32]). The same authors propose, in [30], an algorithm to compute a doubly-connected edge list, representing an arrangements of m lines, in time O ( m 2 ) . We next show that the changes we make to this algorithm do not influence its running time. So, as B ( S ) contains at most all 3 m line segments, it induces an arrangement of at most 3 m lines. Hence, Step 3 of Algorithm 1 also takes time O ( m 2 ) .
We changed the original algorithm [30] for computing the doubly-connected edge list of an arrangement of lines as follows:
(i)
We computed the convex hull of the input to serve as a bounding box instead of an axis-parallel rectangle containing all intersection points of the arrangement. The complexity of computing such an axis-parallel rectangle is higher ( O ( m 2 ) ) than that of computing the convex hull ( O ( m log m ) ).
(ii)
The cost of constructing the doubly-connected edge list of the convex hull is O ( m ) , as the convex hull contains at most 3 m corner points and the algorithm for computing it, as described in [32], already outputs the corner points of the convex hull in circular order. In the original algorithm [30] with an axis-parallel bounding rectangle, computing the doubly-connected edge list of this rectangle only takes constant time. This extra time does, however, not affect the overall complexity.
(iii)
The next step of both algorithms involves finding the intersection points between the lines to be inserted and the partial arrangement induced by the previously inserted lines. In the original algorithm, this is easier only for the intersection of a line with the bounding box. For the intersections with all other lines in the arrangement, the cost is the same.
The next part of Algorithm 1 (starting from Line 5) takes time O ( m 2 log m ) . Each half-edge of the doubly-connected edge list is visited only once. Also, each half-edge is only inserted once into the set Elist, and consulted only once therein to create a triangle. As an arrangement of m lines in the plane results in O ( m 2 ) edges, the number of half-edges in DCEL( S ) also is O ( m 2 ) . We can, in time O ( m 2 ) , preprocess U ( S ) into a structure that allows point location in O ( log m ) time [33]. Therefor, testing for each of the O ( m 2 ) centers of mass whether they are part of the input takes O ( m 2 log m ) . We can conclude that all parts of Algorithm 1 run in time O ( m 2 log m ) . ☐
Table 3 summarizes the computational complexity of the various parts of Algorithm 1.
Property 4 ( T S is affine-invariant).
The triangulation method T S is affine-invariant.
Proof. 
According to the definition of affine-invariance of spatial triangulation methods (Definition 6), we have to prove the following. Let A be a snapshot given by the set of triangles { T a , 1 , T a , 2 , , T a , k } and B be a snapshot given by the set of triangles { T b , 1 , T b , 2 , , T b , } , such that there exists an affinity α : R 2 R 2 for which B = α ( A ) . Then, for each triangle T of T S ( A ) , it holds that the triangle α ( T ) is a triangle of T S ( B ) .
We prove this by going through the steps of the triangulation procedure T S . Let A and B be as above.
The convex hull and boundary of spatial figures are both affine-invariant (more specific, the boundary is a topological invariant). Intersection points between lines and the order of intersection points on one line with other lines are affine-invariant (even topological invariant). The subdivision of the convex hull CH ( B ) of B induced by the arrangement of lines through the boundary of B is hence the image under α of the subdivision of the convex hull CH ( A ) of A induced by the arrangement of lines through the boundary of A. The doubly-connected edge list only stores topological information about the arrangement of lines, i.e., which edges are incident to which vertices and faces. Naturally, this information is preserved by affine transformations. The center of mass of a convex polygon is an affine invariant. Finally, the fact that a triangle is inside the boundary of the input and the fact that it is not are both affine-invariant. This completes the proof. ☐
Summarizing this section, we proposed a spatial triangulation method that, given a snapshot consisting of m triangles, returns an affine-invariant triangulation of this snapshot containing O ( m 2 ) triangles, in time O ( m 2 log m ) .
We remark here that the idea of using carriers of boundary segments to partition figures was also used in an algorithm to decompose semi-linear sets by Dumortier, Gyssens, Vandeurzen and Van Gucht [34]. Their algorithm is not affine-invariant, however.
In the next section, we will use the affine triangulation for snapshots to construct a triangulation of geometric objects.

4. An Affine-Invariant Spatio-Temporal Triangulation Method

In this section, we present an spatio-temporal triangulation algorithm that takes as input a geometric object, i.e., a finite set of atomic geometric objects. We will adapt the spatial triangulation method T S , described in Algorithm 1, for time-dependent data.
The proposed spatio-temporal triangulation algorithm T S T will have three main construction steps. First, in the partitioning step, the time domain of the geometric object will be partitioned into a set of points and open time intervals. For each element of this partition, all its snapshots have an isomorphic triangulation, when computed by the method T S . We refer to Definition 9 below for a formal definition of this isomorphism. Second, in the triangulation step, the spatio-temporal triangulation is computed for each element in the time partition, using the fact that all snapshots have isomorphic triangulations. Third, in the merge step, we merge objects when possible, to obtain a unique (and minimal) triangulation.
We will start this section by defining isomorphic triangulations. Then we explain the different steps of the algorithm for computing a spatio-temporal affine-invariant triangulation of geometric objects separately. We illustrate the algorithm with an example and end with some properties of the triangulation.
Intuitively, two snapshots S 1 and S 2 are called T S -isomorphic if the triangles in T S ( S 1 ) T S ( CH ( S 1 ) S 1 ) and T S ( S 2 ) T S ( CH ( S 2 ) S 2 ) have the same (topological) adjacency graph. In particular, if S 1 and S 2 are equal up to an affinity of R 2 , then they are T S -isomorphic.
Definition 9 ( T S -isomorphic snapshots).
Let S 1 and S 2 be two snapshots of a geometric object. We say that S 1 and S 2 are T S -isomorphic, denoted S 1 T S S 2 , if there exists a bijective mapping h : R 2 R 2 with the following property: A triangle T = ( a 1 , a 2 , a 3 ) of T S ( S 1 ) is incident to the triangles T 1 , 2 , T 2 , 3 and T 3 , 1 (where each T i , ( ( i + 1 ) mod 3 ) is either a triangle of T S ( S 1 ) that shares the segment a i a ( ( i + 1 ) mod 3 ) with T , a triangle of T S ( CH ( S 1 ) S 1 ) that shares the segment a i a ( ( i + 1 ) mod 3 ) with T , or is ϵ, which means that no triangle shares that boundary segment with T ) if and only if, the triangle h ( T ) = ( h ( a 1 ) , h ( a 2 ) , h ( a 3 ) ) belongs to T S ( S 2 ) and is bounded by h ( T 1 , 2 ) , h ( T 2 , 3 ) and h ( T 3 , 1 ) . Moreover, if T i , ( ( i + 1 ) mod 3 ) is a triangle of T S ( S 1 ) , then h ( T i , ( ( i + 1 ) mod 3 ) ) is a triangle of T S ( S 2 ) that shares the line segment h ( a i ) h ( a ( ( i + 1 ) mod 3 ) ) with h ( T ) , if T i , ( ( i + 1 ) mod 3 ) is a triangle of T S ( CH ( S 1 ) S 1 ) , then h ( T i , ( ( i + 1 ) mod 3 ) ) is a triangle of T S ( CH ( S 2 ) S 2 ) that shares the line segment h ( a i ) h ( a ( ( i + 1 ) mod 3 ) ) with h ( T ) and if T i , ( ( i + 1 ) mod 3 ) equals ϵ, then so does h ( T i , ( ( i + 1 ) mod 3 ) ) .
Example 7.
The triangulations shown in Figure 3 are T S -isomorphic to each other. In Figure 7, all snapshots shown except the one at time moment t = 3 are T S -isomorphic. The snapshot at time moment t = 3 is clearly not isomorphic to the others, since it consists only of one line segment.
Remark that for Figure 3, the mapping h is an affinity. In Figure 7, this is not the case.
Now, we introduce a spatio-temporal triangulation method T S T that constructs a time-dependent affine triangulation of spatio-temporal objects that are represented by geometric objects. We will explain its three main steps, i.e., the partitioning step, the triangulation step and the merge step separately in the next subsections.
We will illustrate each step on the following example.
Example 8.
Let O = { O 1 , O 2 } be a geometric object, where O 1 is given as ( ( ( 1 , 0 ) , ( 1 , 0 ) , ( 0 , 2 ) ) , [ 0 , 4 ] , I d ) and O 2 is given as ( ( ( 3 , 1 ) , ( 1 , 1 ) , ( 2 , 3 ) ) , [ 0 , 4 ] , f ) and f is the mapping given by ( x , y , t ) ( x + t , y ) . Figure 8 shows the snapshots of O at time moments t = 1 4 (A), t = 1 2 (B), t = 1 (C), t = 3 2 (D), t = 2 (E), t = 5 2 (F), t = 3 (G), t = 7 2 (H) and t = 4 (I).
Let O = { O 1 = ( S 1 , I 1 , f 1 ) , O 2 = ( S 2 , I 2 , f 2 ) , , O m = ( S m , I m , f m ) } be a geometric object. We assume that the S i are given as triples of points (i.e., pairs of rational or algebraic numbers), the  I i as structures containing two rational or algebraic numbers and two flags (indicating whether the interval is closed on the left or right side) and, finally, the f i are affinities given by rational functions, i.e., fractions of polynomials with integer coefficients (that we assume to be given in dense or sparse representation), for i = 1 , , m .

4.1. The Partitioning Step

Let O = { O 1 = ( S 1 , I 1 , f 1 ) , O 2 = ( S 2 , I 2 , f 2 ) , , O m = ( S m , I m , f m ) } be a geometric object. In the first step of T S T , the time domain I of O , i.e., the convex closure ¯ i = 1 m I i of the union of all the time domains I i ( i = 1 , , m ) is partitioned in such a way that, for each element of that partition, all its snapshots are T S -isomorphic.
Below, we refer to the set of lines that intersect the border of f i ( S i , τ ) in infinitely many points, the set of carriers of the snapshot f i ( S i , τ ) and denote it c a r ( f i ( S i , τ ) ) , ( i = 1 , , m ).
In [4], we defined the finite time partition P of the time domain of two atomic objects in such a way that for each element P of P , the carrier sets of each snapshot of P are topologically equivalent. This definition can easily be extended to an arbitrary number of atomic objects. Also the property stating that the finite time partition exists, still holds in the extended setting.
Definition 10 (Generalized finite time partition).
We call a finite time partition of a geometric object O = { O 1 , O 2 , , O m } any partition of the interval I = ¯ i = 1 m I i into a finite number of time intervals J 1 , , J k such that for any τ , τ J (and all 1 k ), i = 1 m c a r ( f i ( S i , τ ) ) and i = 1 m c a r ( f i ( S i , τ ) ) are topologically equivalent sets in R 2 .
Here, two subsets A and B of R 2 are called topologically equivalent when there exists an orientation-preserving homeomorphism h of R 2 such that h ( A ) = B .
The proof of the following property follows the lines of a proof in [4].
Property 5 (Existence of a generalized finite time partition).
Let O = { O 1 , O 2 , , O m } be a geometric object.There exists a finite time partition of O .
We now proceed with the partitioning step of the spatio-temporal triangulation algorithm. In this step, a generalized finite time partition of O is computed, using the information of the time-dependent carriers of the atomic objects in O . Each time an intersection point between two or more time-dependent carriers starts or ceases to exist, or when intersection points change order along a line, a new time interval of the partition is started. Given three continuously moving lines, the intersection points of the first line with the two other lines only change order along the first line, if there exists a moment where all three lines intersect in one point. Algorithm 2 describes the partitioning step in detail.
We will show later that the result of the generalized finite time partition is a set of intervals during which all snapshots are T S -isomorphic. This partition is, however, not the coarsest possible partition having this property, because there might be atomic objects that, during some time, are completely overlapped by other atomic objects. Therefor, we will later, after the triangulation step, again merge elements of the generalized finite time partition, whenever possible.
We illustrate Algorithm 2 on the geometric object of Example 8.
Example 9.
Recall from Example 8 that O = { O 1 , O 2 } , where O 1 is given as ( ( ( 1 , 0 ) , ( 1 , 0 ) , ( 0 , 2 ) ) , [ 0 , 4 ] , I d ) and O 2 is given as ( ( ( 3 , 1 ) , ( 1 , 1 ) , ( 2 , 3 ) ) , [ 0 , 4 ] , f ) and f is the affinity mapping triples ( x , y , t ) to pairs ( x + t , y ) .
We now illustrate the partitioning algorithm on input O . First, the list χ will contain the time moments 0 and 4. The list C will contain six elements. Table 4 shows these segments and the formulas describing their time-dependent carriers. All pairs of segments have an intersection that exists always, except for the pairs ( O c , 2 , O c , 5 ) , ( O c , 3 , O c , 6 ) and ( O c , 1 , O c , 4 ) . The intersections of O c , 2 with O c , 5 and O c , 3 with O c , 6 exist only at respectively t = 5 2 , t = 3 2 . The segments O c , 1 and O c , 4 never intersect. Of all possible triples of carriers, only two triples have a common intersection within the interval [ 0 , 4 ] . The carriers of O c , 2 , O c , 4 and O c , 6 intersect at t = 1 2 and the carriers of O c , 3 , O c , 4 and O c , 5 intersect at t = 7 2 . The partitioning step will hence return the list
χ = ( 0 , 1 2 , 3 2 , 5 2 , 7 2 , 4 ) .
Algorithm 2 Partition (Input: O = { O 1 , . . . , O n } , Output: χ = ( τ 1 , τ 2 , , τ m ) )
1:
Let χ = ( τ 1 τ 2 τ k ) (with 2 k 2 n ) be a sorted list of time moments that appear either as a begin or endpoint of I i for any of the objects O i = ( S i , I i , f i ) , 1 i n .
2:
C = .
3:
for all atomic objects O i = ( S i , I i , f i ) , 1 i n do
4:
 Add the new atomic objects ( S i , 1 , I i , f i ) , ( S i , 2 , I i , f i ) and ( S i , 3 , I i , f i ) to C , where S i , 1 , S i , 2 and S i , 3 are the boundary segments of S i .
5:
end for
6:
for all pairs of objects ( S i , 1 , I i , f i ) and ( S j , 2 , I j , f j ) of C ( 1 i < j n ; 1 1 , 2 3 ) do
7:
if I i I j then
8:
  Compute the end points of the intervals during which the intersection of the carriers of both time-dependent line segments does exist. Add those such end points that lie within the interval I i I j to χ , in a sorted way.
9:
end if
10:
end for
11:
for all triples of objects ( S i , 1 , I i , f i ) , ( S j , 2 , I j , f j ) and ( S k , 3 , I k , f k ) of C ( 1 i < j < k n ; 1 1 , 2 , 3 3 ) do
12:
if I i I j I k then
13:
  Compute the end points of the intervals during which the carriers of the three time-dependent line segments intersect in one point. Add those such end points that lie within the interval I i I j I k to χ , in a sorted way.
14:
end if
15:
end for
16:
Return χ .
We analyze both the output complexity and sequential time complexity of the partition step. First remark that the product of univariate polynomials of degree d is a polynomial of degree d . Let the transformation function of an atomic object consists of rational coefficients, being fractions of polynomials of degree at most d. It follows that the time-dependent line segments and carriers can be defined using fractions of polynomials in t of degree O ( d ) . Also, the time-dependent intersection point of two such carriers and the time-dependent cross-ratio of an intersection point compared to two moving end points of a segment, can be defined using fractions of polynomials in t of degree O ( d ) .
Property 6 (Partition: output complexity).
Given a geometric object O = { O 1 = ( S 1 , I 1 , f 1 ) , O 2 = ( S 2 , I 2 , f 2 ) , , O n = ( S n , I n , f n ) } consisting of n atomic objects. Let d be the maximal degree of any polynomial in the definition of the transformation functions f i , 1 i n . The procedure Partition, as described in Algorithm 2, returns a partition of I = ¯ i = 1 n I i containing O ( n 3 d ) elements.
Proof. 
It is clear that the list χ contains O ( n ) elements after Line 1 of Algorithm 2. Indeed, at most two elements are added for each atomic object. The list C will contain at most 3 n elements. For each atomic object with a reference object that is a “real” triangle, 3 elements will be added to C . In the case that one or more corner points coincide, one or two objects will be added to C .
Now we investigate the number of time moments that will be inserted to χ while executing the for-loop starting at Line 6 of Algorithm 2. The intervals during which the intersection of two time-dependent carriers exists are computed. The intersection of two time-dependent line segments doesn’t exist at time moments where the denominator of the rational function defining it is zero. Because this denominator always is a polynomial P in t, it has at most deg ( P ) zeroes, where deg ( P ) denotes the degree of P. Accordingly, at most deg ( P ) = O ( d ) elements will be added to χ . Hence, in total, O ( n 2 d ) time moments are added in this step.
For the intersections of three carriers, a similar reasoning can be used. Hence, during the execution of the for-loop starting at Line 11 of Algorithm 2, O ( n 3 d ) elements are added to χ .
We can conclude that the list χ will contain O ( n 3 d ) elements. ☐
Now we analyze the time complexity of Partition. We first point out that finding all roots of an univariate polynomial of degree d, with accuracy ϵ can be done in time O ( d 2 log d log log ( 1 ϵ ) ) [35]. We will use the abbreviation z ( d , ϵ ) for the expression O ( d 2 log d log log ( 1 ϵ ) ) . Note also that, although the product of two polynomials of degree d is a polynomial of degree 2 d , the computation of the product takes time O ( d 2 ) . To keep the proofs of the complexity results as readable as possible, we will consider the complexity of any manipulation on polynomials (computing zeros, adding or multiplying) to be z ( d , ϵ ) , where a precision of ϵ is obtained.
Property 7 (Partition: computational complexity).
Given a geometric object O = { O 1 = ( S 1 , I 1 , f 1 ) , O 2 = ( S 2 , I 2 , f 2 ) , , O n = ( S n , I n , f n ) } consisting of n atomic objects. Let d be the maximal degree of any polynomial in the definition of the transformation functions f i , 1 i n and let ϵ be the desired precision for computing the zeros of polynomials. The procedure Partition, as described in Algorithm 2, returns a partition of I = ¯ i = 1 n I i in time O ( n 3 ( z ( d , ϵ ) + d log n ) ) .
Proof. 
Let O = { O 1 = ( S 1 , I 1 , f 1 ) , O 2 = ( S 2 , I 2 , f 2 ) , , O n = ( S n , I n , f n ) } be a geometric object. Let d be the maximum degree of any of the polynomials used in the definition of the functions f i , 1 i n .
Constructing the initial list χ , on Line 1, takes time O ( n log n ) (it is well known that the inherent complexity of sorting a list of n elements is O ( n log n ) ). Computing the set C can be done in time O ( n d ) : all n elements of O are considered, and the time needed to copy the transformation functions f i depends on the maximal degree the polynomials defining them have. Recall that C contains at most 3 n elements.
The first for-loop, starting at Line 6 of Algorithm 2 is executed O ( n 2 ) times. One execution of its body takes z ( d , ϵ ) . Indeed, computing the formula representing the time-dependent intersection, checking whether its denominator is always zero and finding the zeros of the denominator (a polynomial of degree linear in d) have all time complexity z ( d , ϵ ) . Therefor, the first for-loop takes time O ( n 2 z ( d , ϵ ) ) in total.
The second for-loop has time complexity O ( n 3 z ( d , ϵ ) ) . The reasoning here is the same as for the previous for-loop.
Finally, sorting the list χ , which contains O ( n 3 d ) elements at the end, requires O ( n 3 d log ( n d ) ) .
If we summarize the complexity of all the separate steps, we obtain O ( n 3 ( z ( d , ϵ ) + d log n ) ) . ☐
We now proceed with the triangulation step.

4.2. The Triangulation Step

Starting with a geometric object O = { O 1 = ( S 1 , I 1 , f 1 ) , O 2 = ( S 2 , I 2 , f 2 ) , , O n = ( S n , I n , f n ) } , the partitioning algorithm identifies a list χ of time moments that is used to partition the time domain I = ¯ i = 1 n I i of O into points and open intervals. For each element in that partition (point or open interval), we now triangulate the part of O restricted to that point or open interval.
The triangulation of the snapshots of O at the time moments in χ is straightforward. For each of the time moments τ of χ , the spatial triangulation method T S is applied to the snapshot O τ . For each of the triangles T in T S ( O τ ) , an atomic object is constructed with T as reference object, the singleton { τ } as time domain and the identity as its transformation function.
The triangulation of the parts of O restricted to the open intervals in the time partition requires a new technique. We can however benefit from the fact that throughout each interval, all snapshots of O have an T S -isomorphic triangulation. For each of the open intervals ] τ j , τ ( j + 1 ) [ defined by two subsequent elements of χ , we compute the snapshot at the middle τ m = 1 2 ( τ j + τ ( j + 1 ) ) of [ τ j , τ ( j + 1 ) ] and its triangulation T S ( O τ m ) . Each triangle boundary segment that contributes to the boundary of O τ m at time moment τ m , will also contribute to the boundary of O at the snapshot of O at any time moment τ [ τ j , τ ( j + 1 ) ] . So, the moving line segment can be considered a boundary segment throughout [ τ j , τ ( j + 1 ) ] . If two carriers of boundary segments intersect at time moment τ m , the intersection of the moving segments will exist throughout [ τ j , τ ( j + 1 ) ] , and so on. Therefor, we will compute the spatial triangulation of the snapshot O τ m using the procedure T S , but we will copy every action on a point or line segment at time moment τ m on the moving point of line segment of which the point or segment is a snapshot. The triangles returned by the spatial triangulation algorithm when applied to O τ m will be reference objects for the atomic objects, returned by the spatio-temporal triangulation algorithm. These atomic objects exist during the interval [ τ j , τ ( j + 1 ) ] . Knowing the functions representing the time-dependent corner points of the triangles (because of the copying), together with the time interval and the reference object, we can deduce the transformation function and construct atomic objects (the formula computing this transformation was given in [4]).
Next, a detailed description of the spatio-temporal triangulation is given in Algorithm 3. In this description of the spatio-temporal triangulation procedure, we will use the data type Points which is a structure containing a (2-dimensional) point (represented using a pair of real numbers), a pair of rational functions of t (a rational function is represented using a pair of vectors of integers, denoting the coefficients of a polynomial), representing a moving point, and finally a time interval (represented as a pair of real numbers and two flags indicating whether the interval is open or closed at each end point). We will only use or fill in this time information when mentioned explicitly. Given an element P t of type Points, we address the point it stores by P t P o i n t , the functions of time by P t f x and P t f y respectively, and the begin and end point of the time interval by P t I b and P t I e . The flags P t C b and P t C e are true when the interval is closed at its begin or end point respectively. A pair of elements of the type Points is denoted an element of the type Segments.
We again illustrate the spatio-temporal triangulation algorithm on the geometric object of example 8.
Algorithm 3 Triangulate (Input: O = { O 1 , . . . , O n } , χ = ( τ 1 , , τ k ) , Output = { O 1 , , O } )
1:
for all time moments τ j , j = 1 k , of χ do
2:
for all triangles T in T S ( O τ j ) do
3:
  return the atomic element ( T , { τ j } , I d ) .
4:
end for
5:
end for
6:
Let S < be the list containing all atomic objects O i = ( S i , I i , f i ) , 1 i n , sorted by the begin points I i , b of their time domains.
7:
Let S Active be a list of elements of the type Segments, S Active = ( ) .
8:
for all pairs ( τ j , τ j + 1 ) , j = 1 ( k 1 ) ) , in χ do
9:
τ m := 1 2 ( τ j + τ j + 1 ) .
10:
 Remove all elements ( P t 1 , P t 2 ) of S Active for which τ j = P t 1 I e = P t 2 I e .
11:
for all elements ( P t 1 , P t 2 ) remaining in S Active do
12:
   P t r P o i n t := ( P t r f x ( τ m ) , P t r f y ( τ m ) ) , r = 1 , 2 .
13:
end for
14:
for all O i = ( S i = ( a 1 , a 2 , a 3 ) , I i , f i ) in S < for which I i , b is τ i do
15:
  Construct three Points P t 1 , P t 2 and P t 3 such that P t r P o i n t = a r , P t r f x = f i ( a r , x , τ m ) , P t r f y = f i ( a r , y , τ m ) and P t r I b and P t r I e respectively contain τ j and τ j + 1 ( r = 1 , , 3 ).
16:
  Construct three Segments S t 1 , S t 2 and S t 3 , containing two different elements from the set { P t 1 , P t 2 , P t 3 } . Add them to S Active .
17:
end for
18:
 Compute the set B t ( S Active ) of elements of the type Segments, using only the constant point information of the elements of S Active . Meanwhile, construct the subdivision U ( O τ m ) .
19:
 Compute the convex hull CH t ( S Active ) , using only the constant point information of the elements of S Active , a list of elements of the type Points.
20:
 Construct DCEL t ( S Active ) , where each half-edge (resp. origin) is now an element of the type Segments (resp. Points). Use CH t ( S Active ) as a bounding box. Each time the intersection of two constant carriers is computed, also compute the formula representing the moving intersection point.
21:
while there are any unvisited Segments S t in DCEL t ( S ) left do
22:
  Compute the list E t list of Segments that form a convex polygon. Compute the Points structure P t m containing both the constant and time-dependent center of mass of that polygon
23:
  if P t m P o i n t belongs to a face of U ( O τ m ) then
24:
   for all elements S t = ( P t 1 , P t 2 ) of E t list do
25:
    Output the atomic object ( S , I , f ) , where S is the triangle with corner points P t 1 P o i n t , P t 2 P o i n t and P t m P o i n t and I is ] τ j , τ j + 1 [ . The transformation function f is computed using the functions P t 1 f x , P t 1 f y , P t 2 f x , P t 2 f y , P t m f x and P t m f y .
26:
   end for
27:
  end if
28:
end while
29:
end for
Example 10.
Recall from Example 8 that O = { O 1 , O 2 } , where O 1 is given as ( ( ( 1 , 0 ) , ( 1 , 0 ) , ( 0 , 2 ) ) , [ 0 , 4 ] , I d ) and O 2 is given as ( ( ( 3 , 1 ) , ( 1 , 1 ) , ( 2 , 3 ) ) , [ 0 , 4 ] , f ) and f is the affinity mapping triples ( x , y , t ) to pairs ( x + t , y ) .
From Example 9, we recall that the output of the procedure Partition on input O was the list χ = ( 0 , 1 2 , 3 2 , 5 2 , 7 2 , 4 ) .
The triangulation of the snapshots at one of the time moments in χ are shown in Figure 9. To keep the example as simple as possible, we did not further triangulate convex polygons that are triangles already.
The open intervals to be considered are ] 0 , 1 2 [ , ] 1 2 , 3 2 [ , ] 3 2 , 5 2 [ , ] 5 2 , 7 2 [ and ] 7 2 , 4 [ . We illustrate the triangulation of the interval ] 0 , 1 2 [ . During the time interval ] 0 , 1 2 [ , the triangulation will always look like the one shown in Part (A) of Figure 9. Hence, O 2 will not change, and O 1 will be partitioned into seven triangles. The top one will not change, so the atomic object ( ( ( 0 , 2 ) , ( 1 , 1 2 ) , ( 1 , 1 2 ) ) , [ 0 , 1 2 ] , I d ) will be part of the output. For the others, we have to compute the time-dependent intersections between the carriers and afterwards apply the formula from [4]. We illustrate this for O 2 . the snapshot of O 2 at the middle point 1 4 of [ 0 , 1 2 ] is the triangle with corner points ( 11 4 , 1 ) , ( 3 4 , 1 ) and ( 7 4 , 3 ) . Its time-dependent corner points are ( 3 + t , 1 ) , ( 1 + t , 1 ) and ( 2 + t , 3 ) . Solving the matrix equation
11 4 1 0 0 1 0 0 0 11 4 1 0 1 7 4 3 0 0 1 0 0 0 7 4 3 0 1 3 4 1 0 0 1 0 0 0 3 4 1 0 1 a ( t ) b ( t ) c ( t ) d ( t ) e ( t ) f ( t ) = 3 + t 1 2 + t 3 1 + t 1
gives the transformation function f that maps triples ( x , y , t ) to pairs ( x 1 4 + t , y ) .
We also give the output complexity and time complexity for this triangulation step.
Property 8 (Triangulation step: output complexity).
Given a geometric object O = { O 1 = ( S 1 , I 1 , f 1 ) , O 2 = ( S 2 , I 2 , f 2 ) , , O n = ( S n , I n , f n ) } consisting of n atomic objects and a finite partition χ of its time domain into k time points and k 1 open intervals. The procedure Triangulation, as described in Algorithm 3, returns O ( n 2 k ) atomic objects.
Proof. 
The number of atomic objects returned by the triangulation procedure for one time interval is the same as the number of triangles returned by the spatial triangulation method on a snapshot in that interval. We know from Property 2 that the number of triangles in the triangulation of a snapshot composed from n triangles is O ( n 2 ) . Since their are O ( k ) moments and intervals for which we have to consider such a triangulation, or a slightly adapted version of it, this gives O ( n 2 k ) .☐
Property 9 (Triangulation step: computational complexity).
Let a geometric object O = { O 1 = ( S 1 , I 1 , f 1 ) , O 2 = ( S 2 , I 2 , f 2 ) , , O n = ( S n , I n , f n ) } consisting of n atomic objects and a finite partition χ of its time domain into k time points and k 1 open intervals be given. Let d be the maximal degree of any polynomial in the definition of the transformation functions f i , 1 i n and let ϵ be the desired precision for computing the zeros of polynomials. The procedure Partition, as described in Algorithm 2, returns a spatio-temporal triangulation of O in time O ( k z ( d , ϵ ) n 2 log n ) .
Proof. 
The first for-loop of Algorithm 3 is executed k times. The time needed for computing the snapshot of one atomic object at a certain time moment is z ( d , ϵ ) . The spatial triangulation algorithm T S runs in time O ( n 2 log n ) , as was shown in Property 3. So we can conclude that the body of the first for-loop needs O ( n 2 log n + n z ( d , ϵ ) ) time. Sorting the atomic objects by their time domains takes O ( n log n ) .
The second for loop is executed once for each open interval, defined by two consecutive elements of χ . In the body of this loop, first the list S Active is updated. Each insertion or update takes time z ( d , ϵ ) . At most all objects are in the list S Active , so this part, described in the Lines 10 through 18 of Algorithm 3, needs time O ( n z ( d , ϵ ) ) . The next part, described in the Lines 19 through 29 essentially is the spatial triangulation algorithm, but, any time the intersection between two line segments is computed, also the rational functions defining the time-dependent intersection of their associated time-dependent line segments are computed. Computing those functions takes time z ( d , ϵ ) . So the second part of the body of the second for loop requires O ( z ( d , ϵ ) n 2 log n ) .
If we add up the time complexity of two for-loops and the sorting step, we have O ( k ( n z ( d , ϵ ) + n 2 log n ) + n log n + k z ( d , ϵ ) ( n + n 2 log n ) ) , which is O ( k z ( d , ϵ ) n 2 log n ) . ☐

4.3. The Merge Step

We already mentioned briefly in the description of the partitioning step that the partition of the time domain, as computed by Algorithm 2, might be finer than necessary. The partitioning algorithm takes into account all line segments, also those of objects that, during some time span, are entirely overlapped by other objects. To solve this, we merge as much elements of the time partition as possible.
The partition of the time domain is such that the merging algorithm will either try to merge a time point τ and an interval of the type ] τ , τ ) or ( τ , τ [ , or two different intervals of the type ( τ , τ ] and [ t a u , τ ) or ( τ , τ ] and [ τ , τ ) . Here, we use the (unusual) notational convention that ( and ) can be either [ or ].
The simplest case is when a time moment and an interval have to be tested. Assume that these are ( τ , τ ] and τ , respectively. These elements can be merged if there is a one to one mapping M from the atomic elements with time domain ( τ , τ ] to those with time domain { τ } in the triangulation. Furthermore, for each pair of atomic objects O 1 = ( S 1 , ( τ , τ ] , f 1 ) and O 2 = ( S 2 , { τ } , I d ) , O 2 = M ( O 1 ) if and only if the left limit lim t τ f 1 ( S 1 , t ) = S 2 . We note that, for rational functions f of t, lim t τ f ( t ) equals f ( τ ) , provided that τ is in the domain of f. We also note that τ is in the domain of f only if all coefficients of the transformation function f are well-defined for t = τ and if the determinant of f is nonzero for t = τ .
When two intervals are to be merged, the procedure involves some more tests. Let ( τ , τ ] and [ τ , τ ) be the intervals to be tested. First, we have to verify that for each atomic object O 1 = ( S 1 , ( τ , τ ] , f 1 ) , [ τ , τ ) is in the domain of f 1 and that for each atomic object O 2 = ( S 2 , [ τ , τ ) , f 2 ) , ( τ , τ ] is in the domain of f 2 . Second, we have to test whether ( τ , τ ] can be continuously expanded to ( τ , τ ] . This involves the same tests as for the simple case where an interval and a point are tested. Finally, two atomic object can only be merged if the combined atomic object again is an atomic object. This means that, if S 2 would have been chosen as a reference object for O 1 , then f 1 would be equal to f 2 , and vice versa. This can be tested ([4]).
This merge step guarantees that the atomic objects exist maximally and that the resulting triangulation is the same for geometric objects that represent the same spatio-temporal object. Algorithm 4 shows this merging step in detail.
Algorithm 4 Merge (Input: O = { O 1 , . . . , O n } , χ = ( τ 1 , τ 2 , , τ k ) , Output: { O 1 , O 2 , , O }
1:
Sort all atomic objects O i by their time domains.
2:
Let χ be the list ( τ 1 , ] τ 1 , τ 2 [ , τ 2 , , ] τ k 1 , τ k [ , τ k ) .
3:
Let J 1 be the first element of χ and J 2 the second.
4:
while there are any elements in χ left do
5:
S 1 (resp. S 2 ) is the set of all objects having J 1 (resp. J 2 ) as their time domain.
6:
if J 1 is a point then
7:
  Preprocess the reference objects of the elements of S 1 such that we can search the planar subdivision U 1 they define.
8:
  let Found be true.
9:
  for all objects O i = ( S i , J 2 , f i ) in S 2 do
10:
   Check whether J 1 is part of the time domain of f i .
11:
   Compute their snapshot at time J 1 (which is a triangle T ).
12:
   Do a point location query with the center of mass of T in U 1 and check whether the triangle found in S 1 has the same coordinates as T . If not, Found becomes false.
13:
   if Found is false then
14:
    break;
15:
   end if
16:
  end for
17:
  if found is true then
18:
   remove all elements of S 1 from O and extend the time domain of all elements of S 2 to J 1 J 2 .
19:
    J 1 = J 1 J 2 and J 2 is the next element of χ if any exists.
20:
  else
21:
    J 1 = J 2 and J 2 is the next element of χ , if any exists.
22:
  end if
23:
else
24:
  if J 2 is a point then
25:
   do the same as in the previous case, but switch the roles of J 1 and J 2 .
26:
  else
27:
   Let J 1 be the element of { J 1 , J 2 } the form ( τ , τ [ and J 2 the one of the form [ τ , τ ) .
28:
   Check whether ( τ , τ [ and { τ } can be merged.
29:
   if this can be done then
30:
    Check for each pair of matching atomic objects whether their transformation functions are the same ([4]).
31:
   end if
32:
  end if
33:
end if
34:
end while
We illustrate Algorithm 4 on the geometric object of Example 8.
Example 11.
Recall from Example 8 that O = { O 1 , O 2 } , where O 1 is given as ( ( ( 1 , 0 ) , ( 1 , 0 ) , ( 0 , 2 ) ) , [ 0 , 4 ] , I d ) and O 2 is given as ( ( ( 3 , 1 ) , ( 1 , 1 ) , ( 2 , 3 ) ) , [ 0 , 4 ] , f ) and f is the linear affinity mapping triples ( x , y , t ) to pairs ( x + t , y ) .
From Example 9, we recall that the output of the procedure partition on input O was the list χ = ( 0 , 1 2 , 3 2 , 5 2 , 7 2 , 4 ) . This resulted in a partition of the interval [ 0 , 4 ] consisting of the elements { 0 } , ] 0 , 1 2 [ , { 1 2 } , ] 1 2 , 3 2 [ , { 3 2 } , ] 3 2 , 5 2 [ , { 5 2 } , ] 5 2 , 7 2 [ , { 7 2 } , ] 7 2 , 4 [ and { 4 } . For each of these elements, (a snapshot of) their triangulation is shown in Figure 9.
During the merge step, the elements t = 0 and ] 0 , 1 2 [ of the time partition will be merged.
It is straightforward that the output and input of the merging algorithm have the same order of magnitude. Indeed, it is possible that no intervals are merged, and hence no objects. We discuss the computational complexity of the algorithm next. Note that the complexity is expressed in terms of the size of the input to the merging algorithm, which is the output of the spatio-temporal triangulation step.
Property 10 (Merge step: computational complexity).
Given a geometric object O = { O 1 = ( S 1 , I 1 , f 1 ) , O 2 = ( S 2 , I 2 , f 2 ) , , O n = ( S n , I n , f n ) } , which is the output of the triangulation step, and a finite partition χ of its time domain into K time moments and open intervals. Let d be the maximal degree of any polynomial in the definition of the transformation functions f i ( 1 i n ) and let ϵ be the desired precision for computing the zeros of polynomials. The procedure Merge, as described in Algorithm 4, merges the atomic objects in O in time O ( n log n K + n z ( d , ϵ ) ) .
Proof. 
Sorting all atomic objects by their time domains can be done in time O ( n log n ) . Computing the list χ can be straightforwardly done in time O ( K ) . This list will contain 2 K 1 elements. We assume that K > 1 (in case K = 1 the merging algorithm is not applied). The while-loop starting at Line 4 of Algorithm 4, is executed at most 2 K 2 times. Indeed, at each execution of the body of the while-loop, one new element of χ is considered. The if-else structure in the body of the while-loop distinguishes three cases. All cases have the same time complexity, as they are analogous. We explain the first case in detail.
The number of atomic objects having the same time domain is of the order of magnitude of O ( n K ) . This follows from Property 8. The preprocessing of the snapshot takes O ( n K ) time [33]. The for-loop, starting at Line 9 of Algorithm 4 is executed at most O ( n K ) times. The time needed for checking whether an atomic object exists at some time moment and computing the snapshot (a triangle) is z ( d , ϵ ) . Because of the preprocessing on the snapshot at time moment J 1 , testing the barycenter of the triangle against that snapshot can be done in O ( log n K ) time [33]. In case the snapshots are the same, adjusting the time domains of all atomic objects takes time O ( n K ) . Summarizing, the time complexity of the first case is O ( n K log n K + n K z ( d , ϵ ) ) .
Combining this with the fact that the while-loop is executed O ( K ) times, and the time complexity of the first two steps of the algorithm, we get an overall time complexity of O ( n log n K + n z ( d , ϵ ) ) . ☐
Finally, the spatio-temporal triangulation procedure T S T combines the partition, triangulation and merging step. Algorithm 5 combines all steps.
The following property follows from Property 6 and Property 8.
Property 11 ( T S T : output complexity).
Given a geometric object O = { O 1 = ( S 1 , I 1 , f 1 ) , O 2 = ( S 2 , I 2 , f 2 ) , , O n = ( S n , I n , f n ) } consisting of n atomic objects. Let d be the maximal degree of any polynomial in the definition of the transformation functions f i ( 1 i n ) . The spatio-temporal triangulation method T S T , as described in Algorithm 5, returns O ( n 5 d ) atomic objects.
Algorithm 5 T S T (Input: O = { O 1 , . . . , O n } , Output: { O 1 , O 2 , , O } )
1:
χ = Partition(O);
2:
{ O 1 , O 2 , , O m } = Triangulate( O , χ );
3:
if χ has more than one element then
4:
{ O 1 , O 2 , , O } = Merge( { O 1 , O 2 , , O m } , χ );
5:
 return { O 1 , O 2 , , O } .
6:
else
7:
 return { O 1 , O 2 , , O m } .
8:
end if
The next property follows from Property 7, Property 9 and Property 10. Table 5 summarizes the time complexity of the different steps.
Property 12 ( T S T : computational complexity).
Given a geometric object O = { O 1 = ( S 1 , I 1 , f 1 ) , O 2 = ( S 2 , I 2 , f 2 ) , , O n = ( S n , I n , f n ) } consisting of n atomic objects. Let d be the maximal degree of any polynomial in the definition of the transformation functions f i ( 1 i n ) and let ϵ be the desired precision for computing the zeros of polynomials. The spatio-temporal triangulation method T S T , as described in Algorithm 5, returns a spatio-temporal triangulation of O in time O ( z ( d , ϵ ) d n 5 log n ) .
We now show that Algorithm 5 describes an affine-invariant spatio-temporal triangulation method. We remark first that the result of the procedure T S T is a spatio-temporal triangulation. Given a geometric object O . It is clear that each snapshot of T S T ( O ) is a spatial triangulation. Also, s t ( O ) = s t ( T S T ( O ) ) . This follows from the fact that the time partition covers the whole time domain of O and that the method T S produces a spatial triangulation.
Property 13 ( T S T is affine-invariant).
The spatio-temporal triangulation method T S T , described in Algorithm 5, is affine-invariant.
Proof. 
(Recall Definition 6 for affine-invariance.) Let O = { O 1 , , O n } and O = { O 1 , , O m } be geometric objects for which for each moment τ 0 in their time domains, there is an affinity α τ 0 : R 2 R 2 such that α τ 0 ( { O 1 , , O n } τ 0 ) = { O 1 , , O m } τ 0 .
It follows from the construction of the spatio-temporal triangulation that T S T ( { O 1 , , O n } ) τ 0 = T S ( { O 1 , , O n } τ 0 ) and also T S T ( { O 1 , , O m } ) τ 0 = T S ( { O 1 , , O n } τ 0 ) . The property now follows from the affine-invariance of the spatial triangulation method T S . ☐
The following corollary follows straightforwardly from Property 13:
Corollary 1.
Let O = { O 1 , , O n } and O = { O 1 , , O m } be two geometric objects such that there is an affinity α : R 2 R 2 such that, for each moment τ 0 in their time domains α ( O τ 0 ) = O τ 0 holds. Then, for each atomic element ( S , I , f ) of T S T ( O ) , the element ( α ( S ) , I , f ) belongs to T S T ( O ) .
This shows that the partition is independent of the coordinate system used to represent the spatio-temporal object. The affine partitions of two spatio-temporal objects that are affine images of each other only differ in the coordinates of the spatial reference objects of the atomic objects.
Remark also that, in practice, either most of the original objects have the same time domain, making the number of intervals in the partition very small, or all different time domains, which greatly reduces the number of objects existing during each interval. So, in practice, the performance will be better than the worst case suggests.

5. Applications

We now describe some applications that we believe can benefit from the triangulation described in Algorithm 5. We first say what we mean by a spatio-temporal database.
Definition 11.
A spatio-temporal database is a set of geometric objects.
For this section, we assume that each atomic object is labelled with the id of the geometric object it belongs to.

5.1. Efficient Rendering of Objects

When a geometric object that is not in normal form has to be displayed to the user, there are two tasks to perform. First, the snapshots of the geometric object at each time moment in the time domain of the object have to be computed. This can be done in a brute force way by computing the snapshots of all atomic objects. Since some will be empty, this approach might lead to a lot of unnecessary computations. Another algorithm could keep track of the time domains of the individual atomic objects and keep a list of active ones at the moment under consideration, which has to be updated every instant. If the geometric object is in normal form, the atomic objects can be sorted by their time domains, and during each interval in the partition of time domain, the list of active atomic objects will remain the same.
The second task is the rendering of the snapshot. If the geometric object is not in normal form, the snapshots of the atomic objects overlap, so pixels will be computed more than once. Another solution is computing the boundary, but this might take too long in real-time applications. When a geometric object is in normal form, no triangles overlap, so each pixel will be computed only once.

5.2. Moving Object Retrieval

The triangulation provides a means of automatic affine invariant feature extraction for moving object recognition. Indeed, the number of intervals in the time domain indicates the complexity of the movement of the geometric object. This can be used as a first criterium for object matching. For objects having approximately the same number of intervals in their time domains, the snapshots at the middle of each time interval can be compared. If they are all similar, which can be, for example, defined as T S -isomorphic, the objects match. Or, if more exact comparison is needed, one can extract an affine-invariant description from the structure of the elements of the triangulation of the snapshot (see also Section 5.6).

5.3. Surveillance Systems

In some applications, e.g., surveillance systems, it is important to know the time moments when something changed, when some discontinuity appeared. This could mean that an unauthorized person entered a restricted area, for example, or that a river has burst its banks. Triangulating the contours of the recorded images and reporting all single points and end points of intervals of the partition of the time domain indicates all moments when some discontinuity might have occurred.

5.4. Precomputing Queries

If we do not triangulate each geometric object in a database separately, but use the contours of all geometric objects together in the triangulation, the atomic objects in the result will have the following nice property. For each geometric object in the original database, an atomic object will either belong to (or be a subset of) it entirely, or not at all. This means that we can label each element of the spatio-temporal triangulation of the database with the set of id’s of the geometric objects it belongs to. We illustrate this for the spatial case only in Figure 10. Suppose we have two triangles A and B. The set A is the union of the light grey and white parts of the figure, the set B is the union of the dark grey and white parts of the figure. After triangulation, we can label the light grey triangles with { A } , the white triangle with { A , B } , and the dark grey triangles with { B } .
Using this triangulation of databases in a preprocessing stage, means that the results of queries that ask for set operations between geometric objects are also pre-computed. Answering such a query boils down to checking labels of atomic objects. This means a lot of gain in speed at query time. Indeed, even to compute, for example, the intersection of two atomic objects, one has to compute first the intervals where the intersection exists, and then to consider all possible shapes the intersection can have, and again represent it by moving triangles.

5.5. Maintaining the Triangulation.

If a geometric object has to be inserted into or removed from a database (i.e., a collection of geometric objects), the triangulation has to be recomputed for the intervals in the partition of the time domain that contain the time domain of the object under consideration. This may require that the triangulation in total has to be recomputed.
However, the nature of a lot of spatio-temporal applications is such that updates involve only the insertion of objects that exists later in time than the already present data. In that case, only the triangulation at the latest time interval of the partition should be recomputed together with the new object, to check whether the new data are a continuation of the previous. Also, data is removed only when it is outdated. In that case a whole time interval of data can be removed. Examples of such spatio-temporal applications are surveillance, traffic monitoring and cadastral information systems.

5.6. Affine-Invariant Querying of Spatio-Temporal Databases

An interesting topic for further work is to compute a new, affine-invariant description of geometric objects in normal form, that does not involve coordinates of reference objects. The structure of the atomic objects in the spatio-temporal triangulation can be used for that. Once such a description is developed, a query language can be designed that asks for affine-invariant properties of objects only.

6. An Application of Affine-invariant Triangulation to Image Retrieval

In this section, we describe an application of the affine-invariant spatial triangulation algorithm of Section 3 to the problem of image indexing and retrieval. We start by describing some affine-invariant color feature extraction methods in Section 6.1. Next, in Section 6.2, we describe the implementation and application for image retrieval in the context of bird images. Finally, in Section 6.3, we discuss an experimental evaluation of the proposed method.

6.1. Affine-Invariant Color Feature Extraction

We start with the description of two methods for color feature extraction. The primary color ratio measure computes the ratios of the sum of the red, respectively green and blue color values of all pixels, whereas the rainbow color ratio measure defines N colors a priori and computes the ratios of the areas of the picture filled with each color. We show that both measures are affine-invariant. We assume that each image is represented as a set of colored points. Most pixel-based image representations allow 256 different shades of green, red and blue.

6.1.1. The Primary Color Ratio Similarity Measure

Let R A (respectively G A , B A ) be the sum of all red (respectively green, blue) color values of the pixels of an image A. Then the ratios R A G A and B A G A (if G A 0 ) are independent of each other. Hence, we can describe each image A as a two-dimensional vector V A = ( R A G A , B A G A ) , which we call the primary color ratio vector. It is very unlikely that all three values R A , G A and B A are zero for some image A. This would mean that the image is completely black. Therefore, we can always find one of R A , G A and B A that is not zero and use this value in the denominator for computing the ratios. We assume that each image has some green in it.
We now prove that the primary color ratios are affine-invariant.
Property 14.
Let R A , G A and B A be the sums of the red, green and blue pixel values of image A. Let α be an affinity. Then R α ( A ) = | α | R A , G α ( A ) = | α | G A and B α ( A ) = | α | B A , where | α | is the determinant of the transformation matrix of α.
Proof. 
Let R A be the sum of the red values of the pixels of image A. Then we can write R A as p r ( p ) , where p ranges over all pixels of A and r ( p ) is the red value of pixel p.
Let | A | be the number of pixels in image A. There are 256 different possible values of red, so the amount of different values of red in image A is at most m i n ( | A | , 256 ) . For each value of red r i in image A, we can compute the number of pixels N r i occupied by that value. We have that R A = p r ( p ) = i r i N r i , where i ranges over all different values of red in the image.
If we apply transformation α to image A, we know from Chapter 21 of [21] that for each area composed of pixels with red value r i , the area occupied by the pixels with red value r i in α ( A ) equals | α | N r i , where | α | is the determinant of the transformation matrix of α .
This means that:
R α ( A ) = i r i | α | N r i = | α | i r i N r i = | α | p r ( p ) = | α | R A .
The same reasoning applies for the sum of the green, respectively blue, color values. ☐
Property 15.
Let R A , G A and B A the sums of the red, green and blue pixel values of image A. Let α be an affinity. Then all ratios of two of these values are affine-invariant.
Proof. 
We only prove the Property for the ratios R A G A and B A G A . More specific this means we have to prove that
R A G A = R α ( A ) G α ( A ) and B A G A = B α ( A ) G α ( A ) .
We know from Property 14 that R α ( A ) = | α | R A , G α ( A ) = | α | G A and B α ( A ) = | α | B A , where | α | is the determinant of the transformation matrix of α . By taking the ratios we get the required result. The proofs for all other ratios are similar. ☐
Definition 12.
Let V A and V B be the primary color ratio vectors of images A and B, respectively. Then the primary color ratio similarity measure defines the distance between A and B as the distance between the two-dimensional vectors V A and V B .
Remark that any distance measure can be used. In our implementation we use the Euclidean distance between the primary color ratio vectors.

6.1.2. The Rainbow Color Ratio Similarity Measure

The rainbow color ratio similarity measure was first introduced in Chapter 21 of [21]. From all possible red, green and blue values of the image pixels, a large set of colors of the rainbow can be defined. Suppose we classify each part of an image as having one of N different colors. The ratio of the total areas of any pair of colors is affine-invariant [21].
Suppose that we have a set of N different colors. We can derive M = N 1 ratios that are independent of each other, e.g. by fixing one color and use it as the denominator for all ratios. We can describe each image as a vector of M values where the i t h entry corresponds to the value of the i t h rainbow color ratio.
The rainbow color ratio similarity measure is defined as follows [21]:
Definition 13.
Let V A and V B be the vectors of the rainbow color ratios in images A and B, respectively. Then the distance between A and B is defined as the Euclidean distance between V A and V B .
The primary color ratio measure treats the red, green and blue color values independently, but is a very global method. The rainbow color ratio measure results in a higher-dimensional feature vector, hence the vectors are possibly more sparsely distributed. However, the definition of colors out of their red, green and blue values implies that they are not completely independent from each other. In Section 6.3.1 we compare both methods experimentally.

6.1.3. Indexing Feature Vectors

The primary color ratio measure and rainbow color ratio measures described above construct a feature vector from an image. There exist several efficient techniques for indexing multidimensional points. In general, spatial access methods (SAM) can be divided into two classes: data-driven and space-driven. Examples of data-driven techniques are R trees [36], R * trees [37] and Hilbert- R trees [38]. Those are all based on a hierarchy of minimum bounding rectangles (MBRs). Quad trees [39] are an example of a space driven indexing technique. Quad trees, in the case of two-dimensional points, recursively partition the plane into four equal parts, until each part only contains one element. Quad trees are generally used when the feature vectors are two-dimensional, but they can be extended for higher dimensions too.

6.2. Implementation and Application for Image Retrieval of Bird Images

In previous sections, we introduced an affine-invariant comparison method for both color and shape information of an image. We now propose a two-level indexing structure based on both methods. First, a color ratio measure is used to group all images with comparable color schemes (up to some threshold). Within such a group of similar images, shape information is used for more refined comparison.
We now describe in more detail the implementation of the measures. We used Intel’s openCV library for image processing functions. The test set consists of colored drawings of birds, all having a white background. The images are obtained from http://www.clipart.com. The test set consists of 292 different images, and 10 of them have 9 distortions. The distortions include three rotations, two scalings, two sheer transformations and two reflections. Figure 11 shows an image and its distortions.

6.2.1. Implementation of the Primary Color and Rainbow Color Ratio Measures

The implementation of the primary color ratio measure is straightforward. We used the ratios R G and B G . For the rainbow color ratio measure, we defined 9 colors: red, green, blue, yellow, turquoise, purple, white, gray and black. Their respective areas are denoted R, G, B, Y, T, P, W, Gr and Bl respectively.
The definition in terms of primary color range for the nine colors we used for the rainbow color ratio measure are as follows:
ColorFormula
red ( R G ) 50 ( R B ) 50
yellow R c G ( R B ) 50
green ( G R ) 50 ( G B ) 50
turquoise B c G ( B R ) 50
blue ( B G ) 50 ( B R ) 50
purple R c B ( R G ) 50
white R c G c B m a x ( R , G , B ) 30
grey R c G c B ¬ ( m a x ( R , G , B ) 30 m a x ( R , G , B ) 220 )
black R c G c B m a x ( R , G , B ) 220 .
In the above, the expression X c Y denotes that the absolute value of the difference between the values X and Y is at most 20.
For each image, we take out the background. Let I be the total area of the picture without its background. The rainbow color ratio vector of each image consists of the ratios R I , G I , B I , Y I , T I , P I , G r I and B l I .
For both methods, we do not take into account the pixel values of the background of the image.

6.2.2. Implementation of the Shape Comparison Measure Based on the Affine Triangulation

As we use digital images, we don’t have an exact description of the shape by means of boundary line segments. We extract the boundary information of an image and compute the triangulation using the Affine Shape Comparison (ASC) Algorithm (Algorithm 6).
In our experiments, we reduce the number of lines L to 10. Figure 12 shows a parrot and the lines which result using Algorithm 1 of Section 3.
Algorithm 6 The ASC Algorithm
Step 1. The image is converted into black and white to abstract from all color information and get the shape silhouette;
Step 2. The shape boundary is detected using a Canny edge detector operation. This method, proposed by Canny [40], is considered the most efficient method for edge detection. It is implemented in the openCV library;
Step 3. From this boundary, lines are extracted using the Simple Hough Transform (SHT) [41]. This is a popular method for extracting geometric primitives. Each line in an image corresponds to a point ( ρ , θ ) in the Hough space such that the equation of the line is ρ = x c o s ( θ ) + y s i n ( θ ) . Given a threshold τ , the Hough transform returns ( ρ , θ ) pairs corresponding to lines that contain at least τ boundary points.
Step 4. The lines are then clipped against the image frame and merged.
The nature of the Hough transform is such that it returns a lot of redundant lines. If the image contains a strong line, then it is detected as a bundle of lines that vary only slightly. Ideally, there would be only a limited amount of lines. Otherwise, the triangles resulting from the triangulation become very small and the chance that two different images match increases because of the small triangles. Therefore, we merge the lines until there are at most L left. The input of the merging procedure is a set of line segments. First, all lines receive weight one. The weight of line segment p , q ¯ is denoted W ( p , q ) . A threshold is initialized on one pixel. Repeatedly this threshold is increased until no more than L lines are left. For each value of the threshold, all pairs of line segments pq ¯ and rs ¯ are tested whether their end points are closer together than the threshold value. If so, the pair of segments is replaced by one segment uv ¯ that is computed as follows:
u = W ( p , q ) W ( p , q ) + W ( r , s ) p + W ( r , s ) W ( p , q ) + W ( r , s ) r
and
v = W ( p , q ) W ( p , q ) + W ( r , s ) q + W ( r , s ) W ( p , q ) + W ( r , s ) s .

Step 5. The four segments bounding the image frame are added and the triangulation is computed as described in Algorithm 1 of Section 3.
Since we are dealing with very approximate boundary information, it is not robust to compare the exact topological information of the triangulations of the two images. Instead, we compute the color ratio vectors of the N biggest polygons (i.e., we don’t compute the last step of the triangulation algorithm). As relative areas are affine-invariant, it is true that if p 1 , p 2 , , p N are the N biggest polygons in the triangulation of image A, and α is an affine transformation, then α ( p 1 ) , α ( p 2 ) , , α ( p N ) are the biggest polygons of the triangulation of image α ( A ) .
Finding a one-to-one mapping between the biggest polygons would have to deal with the case that several polygons have Reni, we take the weighted average of the N feature vectors for each image, and compare those. We call those vectors weighted color ratio vectors. The weight of each polygon is the ratio of the area of that polygon and the total area of the three biggest polygons (hence the weight is also an affine invariant). If N is large, then there could be a large difference in the size of the biggest and the smallest polygons. If N is small, then in general there is only a small difference and in that case the weight may be even eliminated without a significant loss of performance. The shape similarity measure is defined as the distance (e.g., the Euclidean distance) between two weighted color ratio vectors.

6.3. Experimental Results

We now describe the experiments and their results.

6.3.1. Comparison of the Color Ratio Methods

We compare the primary color ratio and the rainbow color ratio measure. We compare the distribution of the values of the distances between all pairs of images. Also, we test for each of the 10 images of which there are distortions in the database, how accurate all distortions can be found using each method.
We first compare the distribution of the values of the distances between all pairs of images. Figure 13 shows this distributions for each method. The horizontal axis shows the range of the distance values. The vertical axis shows the number of image pairs that have a distance within a certain range. It appears that the rainbow color ratio measure has a smaller range of distance values, they are all smaller than 1.3 . For the primary color ratio measure, the values range between zero and 2.7 (for clarity, in the graph of Figure 13, all values greater than 2 are put in one category).
We now compute, for each of the 10 test images, the distances to all other images and sort the other images by that distance. We count the maximal distance between each image and its 9 distortions, and the number of images (called rank) we have to return in order to get all relevant matches, i.e., the 9 distortions. These calculations are shown in the table below, for both the primary color ratio and the rainbow color ratio. Figure 14 shows for both measures the closest images for a parrot, corresponding to image one in the table. The upper row is the result for the primary color ratio measure, the lower row is the rainbow color ratio measure. We see that the primary color ratio measure has better performance. The average distance of the primary color ratio measure is only half that of the rainbow color ratio measure. If we compute the efficiency of both methods we have that the rainbow color ratio measure has an efficiency of 60 % , where the efficiency of the primary color ratio is  89 % . The following table gives an overview.
PrimaryRainbowCombined
idrankdist.rankdist.rankscan
111 0.0486 14 0.2172 914
29 0.1793 10 0.9633 910
39 0.0293 11 0.0931 911
49 0.0096 21 0.1203 1021
510 0.0274 9 0.0337 910
69 0.0619 10 0.0919 910
716 0.0212 31 0.1511 931
89 0.1078 23 0.1027 923
910 0.0413 10 0.0411 910
109 0.0253 10 0.0664 910
max16 0.1793 31 0.2172 1031
avg 10.1 0.0552 14.9 0.1018 9.1 15
If we combine all information, we can say that the primary color ratio measure both spreads the distances over a bigger range (although the feature vectors have a lower dimension than those of the rainbow color ratio method) and puts the distortions of the same image closer to each other. So the primary color ratio measure can distinguish better between images that are distortions of each other and images that have a similar color scheme but a different shape.
In Figure 14, we can see that the extra images found by both color methods are different. Images 7 and 10 of the first are different from images 7, 10, 11 or 12 from the second row. This leads to the novel idea of combining both the primary color ratio measure and the rainbow color measure by taking the intersection of the nearest neighbors found by the two methods. In the rainbow and primary color ratio measure, we still need to distinguish the relevant from the nonrelevant images in the output. This can be done either by the user of the system, or by some automatic method, for example an affine-invariant shape comparison method.
We first search the matching images by means of both the rainbow color ratio and the primary color ratio, and then reduce the output using the following simplification algorithm (Algorithm 7).
Algorithm 7 Simplification Algorithm
Step 1. Let L 1 be the output of the primary color ratio measure, containing m images. (The number m is the number of images returned that guarantees that 100 % of the relevant images are found. In our previous experiments, m = 31 when using the rainbow color ratio method.) Let L 2 be the output of the rainbow color ratio measure, containing m images. Let L 1 , L 2 and Out be lists of image ID’s, initialize both lists to the empty list.
Step 2. Sequentially scan L 1 and L 2 in parallel. The first time, take 2 elements of L 2 such that we always read one element ahead in that list. Add each element that had been viewed to L 1 or L 2 , corresponding to the list it originates from. Each time an element from both lists is read, check of L 1 and L 2 contain any common elements. If so, add the common element to Out and remove it from both L 1 and L 2 .
Step 3. Return Out.
In the Table above, we show again the number of elements we have to return in order to obtain 100 % relevance. We can see that, except for image number 4 (i.e., in 90 % of the cases), the first 9 elements of the intersection are the 9 distortions of the image (column 6). Column 7 shows how far we have to scan both lists before the number of intersections in column 6 of the corresponding row are found. This is the same as the maximum of the ranks for the primary and the rainbow color measure. The efficiency of the combination is significantly better than the efficiency of the primary color ratio method. We obtain that 98.9 % of the returned images is relevant. In Figure 15, the performance of all three methods is combined into one graph.

6.3.2. Comparing Shapes

As we already mentioned in the previous subsection, when the system returns the best matched to the user, either the user or some other technique needs to separate the relevant from the nonrelevant images. We now look if we can use the shape comparison method to do this separation. For the primary color ratio method we apply the shape comparison on the 16 nearest neighbors found by the primary color ratio method. For the rainbow color ratio method we search amongst the 31 nearest neighbors.
The following table shows the experimental results for the shape measure. We computed the distance for N = 1 , i.e., the biggest polygon only is considered.
Distance RainbowPrimary
Color RankColor Rank
1 0.1938 1310
2 0.3986 1611
3 0.4059 3015
4 0.5903 2910
5 0.5936 3016
6 0.2126 1010
7 0.2898 249
8 0.1999 2312
9 0.7869 3016
10 0.6930 3115
max: 0.7869 3116
avg: 0.4364 23.6 12.4
It seems that the shape comparison cannot add any value to the rainbow color ratio and primary color ratio measures. There are two explanations for this. First, the primary color and rainbow color ratio measures perform very well. Secondly, the boundary detection method used (i.e., the Hough transform) is not very accurate.
Without more accurate boundary detection algorithms, it seems that the applications of the affine-invariant triangulation lie mainly in the field of constraint databases [20,21]. Here, the exact equations that define the boundary of figures are known.

7. Concluding Remarks

We adopted the hierarchical data model of Chomicki and Revesz [1] for moving objects, since it is natural and flexible. However, this model lacks a normal form, as different sets of objects might represent the same spatio-temporal set in R 2 × R . Furthermore, we are interested in affine-invariant representation and querying of objects, as the choice of origin and unit of measure should not affect queries on spatio-temporal data.
We first introduced a new affine-invariant triangulation method for spatial data. We then extended this method for spatio-temporal data in such a way that the time domain is partitioned in intervals for which the triangulations of all snapshots are isomorphic.
The application of our affine-invariant spatial triangulation method to image indexing and retrieval is described in Section 6.
The proposed affine-invariant triangulation is natural and can serve as an affine-invariant normal form for spatio-temporal data. Further work includes the affine-invariant finite representation of data and the design of an affine-generic spatial/spatio-temporal query language to query such a normal form.

Acknowledgments

An extended abstract, containing few technical details and examples, appeared as [42]. An earlier version of the application part appeared as part of [27].

Author Contributions

The authors contributed equally.

Conflicts of Interest

The authors declare no conflict of interest.

References

  1. Chomicki, J.; Revesz, P. A geometric framework for specifying spatiotemporal objects. In Proceedings of the 6th International Workshop on Temporal Representation and Reasoning, Orlando, FL, USA, 1–2 May 1999; IEEE Computer Society Press: Washington, DC, USA, 1999; pp. 41–46. [Google Scholar]
  2. Böhlen, M.H.; Jensen, C.S.; Scholl, M. Spatio-Temporal Database Management, International Workshop STDBM 1999; Lecture Notes in Computer Science; Springer: Berlin/Heidelberg, Germany, 1999. [Google Scholar]
  3. Chen, C.X.; Zaniolo, C. SQLST: A spatio-temporal data model and query language. In Proceedings of the 19th International Conference on Conceptual Modeling (ER’00), Salt Lake City, UT, USA, 9–12 October 2000; Lecture Notes in Computer Science. Storey, V.C., Laender, A.H.F., Liddle, S.W., Eds.; Springer: Berlin/Heidelberg, Germany, 2000; Volume 1920, pp. 96–111. [Google Scholar]
  4. Chomicki, J.; Haesevoets, S.; Kuijpers, B.; Revesz, P. Classes of spatiotemporal objects and their closure properties. Ann. Math. Artif. Intell. 2003, 39, 431–461. [Google Scholar] [CrossRef]
  5. Frank, A.; Grumbach, S.; Güting, R.; Jensen, C.; Koubarakis, M.; Lorentzos, N.; Manopoulos, Y.; Nardelli, E.; Pernici, B.; Schek, H.-J.; et al. Chorochronos: A research network for spatiotemporal database systems. SIGMOD Rec. 1999, 28, 12–21. [Google Scholar] [CrossRef]
  6. Grumbach, S.; Rigaux, P.; Segoufin, L. Spatio-temporal data handling with constraints. In Proceedings of the 6th International Symposium on Advances in Geographic Information Systems (ACM-GIS’98), Washington, DC, USA, 6–7 November 1998. [Google Scholar]
  7. Güting, R.H.; Bohlen, M.H.; Erwig, M.; Jensen, C.S.; Lorentzos, N.A.; Schneider, M.; Vazirgiannis, M. A foundation for representing and querying moving objects. ACM Trans. Databases Syst. 2000, 25, 1–42. [Google Scholar] [CrossRef]
  8. Kuijpers, B.; Paredaens, J.; Van Gucht, D. Towards a theory of movie database queries. In Proceedings of the 7th International Workshop on Temporal Representation and Reasoning, Cape Breton, NS, Canada, 7–9 July 2000. [Google Scholar]
  9. Pfoser, D.; Tryfona, N. Requirements, definitions and notations for spatiotemporal application environments. In Proceedings of the 6th International Symposium on Advances in Geographic Information Systems (ACM-GIS’98), Washington, DC, USA, 6–7 November 1998. [Google Scholar]
  10. Kuijpers, B.; Haesevoets, S. Closure properties of classes of spatio-temporal objects under boolean set operations. In Proceedings of the 7th International Workshop on Temporal Representation and Reasoning, Cape Breton, NS, Canada, 7–9 July 2000. [Google Scholar]
  11. Erwig, M.; Schneider, M. Partition and conquer. In Proceedings of the 3rd International Conference on Spatial Information Theory, Laurel Highlands, PA, USA, 15–18 October 1997; Lecture Notes in Computer Science. Springer: Berlin/Heidelberg, Germany, 1997; Volume 1329, pp. 389–408. [Google Scholar]
  12. Geerts, F.; Haesevoets, S.; Kuijpers, B. A theory of spatio-temporal database queries. In Proceedings of the 8th International Workshop Database Programming Languages, DBPL 2001, Frascati, Italy, 8–10 September 2001. [Google Scholar]
  13. Gyssens, M.; Van den Bussche, J.; Van Gucht, D. Complete geometric query languages. J. Comput. Syst. Sci. 1999, 58, 483–511. [Google Scholar] [CrossRef]
  14. Paredaens, J.; Van den Bussche, J.; Van Gucht, D. Towards a theory of spatial database queries. In Proceedings of the 13th ACM Symposium on Principles of Database Systems, Minneapolis, MN, USA, 24–26 May 1994. [Google Scholar]
  15. Roberts, L. Optical and Electro-Optical Information Processing; Tippet, J., Ed.; Massachusetts Institute of Technology Press: Cambridge, MA, USA, 1965. [Google Scholar]
  16. Hagedoorn, M.; Veldkamp, R.C. Reliable and efficient pattern matching using an affine invariant metric. Int. J. Comput. Vis. 1999, 31, 203–225. [Google Scholar] [CrossRef]
  17. Huttenlocher, D.P.; Klauderman, G.A.; Rucklidge, W. Comparing images using the Hausdorff distance. IEEE Trans. Pattern Anal. Mach. Intell. 1998, 15, 850–863. [Google Scholar] [CrossRef]
  18. Lamdan, J.S.Y.; Wolfson, H. Affine-invariant model-based object recognition. Affine-Invariant Model-Based Object Recogn. 1990, 6, 578–589. [Google Scholar] [CrossRef]
  19. Nielson, G. A characterization of an affine invariant triangulation. In Geometric Modelling, Computing Supplementum; Farin, G., Hagen, H., Noltemeier, H., Eds.; Springer: Berlin, Germany, 1993; Volume 8, pp. 191–210. [Google Scholar]
  20. Paredaens, J.; Kuper, G.; Libkin, L. Constraint Databases; Springer: Berlin/Heidelberg, Germany, 2000. [Google Scholar]
  21. Revesz, P. Introduction to Constraint Databases; Springer: Berlin/Heidelberg, Germany, 2002. [Google Scholar]
  22. Vieira, T.; Martinez, D.; Andrade, M.; Lewiner, T. Estimating affine-invariant structures on triangle meshes. Comput. Graph. 2016, 60, 83–92. [Google Scholar] [CrossRef]
  23. Liu, Z.; Wang, Y.; Jing, Y. A Feature Matching Algorithm Based on an Illumination and Affine Invariant for Aerial Image Registration. Sens. Transducers 2014, 163, 82–89. [Google Scholar]
  24. Dou, J.; Li, J. Image matching based local Delaunay triangulation and affine invariant geometric constraint. Optik 2014, 125, 526–531. [Google Scholar] [CrossRef]
  25. Hoff, D.J.; Olver, P.J. Extensions of Invariant Signatures for Object Recognition. J. Math. Imaging Vis. 2013, 45, 176–185. [Google Scholar] [CrossRef]
  26. Collins, G. Quantifier elimination for real closed fields by cylindrical algebraic decomposition. In Automata Theory and Formal Languages; Lecture Notes in Computer Science; Brakhage, H., Ed.; Springer: Berlin/Heidelberg, Germany, 1975; Volume 33, pp. 134–183. [Google Scholar]
  27. Haesevoets, S.; Kuijpers, B.; Revesz, P.Z. Efficient Affine-Invariant Similarity Retrieval. In Proceedings of the 2nd International Conference Geometric Modelling and Imaging (GMAI’07), Zurich, Switzerland, 4–6 July 2007; Sarfraz, M., Banissi, E., Eds.; IEEE Press: Hoboken, NJ, USA, 2007; pp. 99–108. [Google Scholar]
  28. Bochnak, J.; Coste, M.; Roy, M.F. Real Algebraic Geometry. In Ergebnisse der Mathematik und ihrer Grenzgebiete; Springer: Berlin/Heidelberg, Germany, 1998; Volume 36. [Google Scholar]
  29. De Berg, M.; van Kreveld, M.; Overmars, M.; Schwarzkopf, O. Computational Geometry: Algorithms and Applications; Springer: Berlin/Heidelberg, Germany, 2000. [Google Scholar]
  30. De Berg, M.; van Kreveld, M.; Overmars, M.; Schwarzkopf, O. Arrangements and duality. In Computational Geometry: Algorithms and Applications; Springer: Berlin/Heidelberg, Germany, 2000; Chapter 8; pp. 165–182. [Google Scholar]
  31. De Berg, M.; van Kreveld, M.; Overmars, M.; Schwarzkopf, O. Line segment intersection. In Computational Geometry: Algorithms and Applications; Springer: Berlin/Heidelberg, Germany, 2000; Chapter 2; pp. 18–43. [Google Scholar]
  32. De Berg, M.; van Kreveld, M.; Overmars, M.; Schwarzkopf, O. Computational geometry. In Computational Geometry: Algorithms and Applications; Springer: Berlin/Heidelberg, Germany, 2000; Chapter 1; pp. 1–17. [Google Scholar]
  33. Edelsbrunner, H.; Guibas, L.J.; Stolfi, J. Optimal point location in a monotone subdivision. SIAM J. Comput. 1986, 15, 317–340. [Google Scholar] [CrossRef]
  34. Dumortier, F.; Gyssens, M.; Vandeurzen, L.; Van Gucht, D. On the decidability of semi-linearity for semi-algebraic sets and its implications for spatial databases. In Proceedings of the 16th ACM Symposium on Principles of Database Systems, Tucson, AZ, USA, 12–14 May 1997. [Google Scholar]
  35. Novak, E.; Ritter, K. Some complexity results for zero finding for univariate functions. J. Complex. 1993, 9, 15–40. [Google Scholar] [CrossRef]
  36. Guttman, A. R-trees: A dynamic index structure for spatial searching. In Proceedings of the 1984 ACM SIGMOD international conference on Management of data, Boston, MA, USA, 18–21 June 1984; pp. 47–57. [Google Scholar]
  37. Beckmann, N.; Kriegel, H.; Schneider, R.; Seeger, B. The R*-Tree: An Efficient and Robust Access Method for Points and Rectangles. In Proceedings of the 1990 ACM SIGMOD International Conference on Management of Data, Atlantic City, NJ, USA, 23–25 May 1990; pp. 322–331. [Google Scholar]
  38. Kamel, I.; Faloutsos, C. Hilbert R-tree: An Improved R-tree using Fractals. In Proceedings of the 20th International Conference on Very Large Data Bases VLDB’94, Santiago de Chile, Chile, 12–15 September 1994; pp. 500–509. [Google Scholar]
  39. Finkel, R.A.; Bentley, J.L. Quad Trees: A Data Structure for Retrieval on Composite Keys. Acta Inform. 1974, 4, 1–9. [Google Scholar] [CrossRef]
  40. Canny, J. A computational approach to edge detection. IEEE Trans. Pattern Anal. Mach. Intell. 1986, 8, 679–698. [Google Scholar] [CrossRef] [PubMed]
  41. Trucco, E.; Verri, A. Introductory Techniques for 3-D Computer Vision; Prentice Halli, Inc.: Upper Saddle River, NJ, USA, 1998. [Google Scholar]
  42. Haesevoets, S.; Kuijpers, B. Time-dependent affine triangulation of spatio-temporal data. In Proceedings of the 12th ACM International Workshop on Geographic Information Systems (ACM-GIS’04), Washington, DC, USA, 12–14 November 2004. [Google Scholar]
Figure 1. An example of a spatio-temporal object.
Figure 1. An example of a spatio-temporal object.
Ijgi 06 00100 g001
Figure 2. A spatio-temporal object (a traffic sign) shown at six moments.
Figure 2. A spatio-temporal object (a traffic sign) shown at six moments.
Ijgi 06 00100 g002
Figure 3. The triangulations of a snapshot (left) and of an affine transformation of the snapshot (right).
Figure 3. The triangulations of a snapshot (left) and of an affine transformation of the snapshot (right).
Ijgi 06 00100 g003
Figure 4. Two different triangulations (in (B,C)) of a convex polygon (in (A)).
Figure 4. Two different triangulations (in (B,C)) of a convex polygon (in (A)).
Ijgi 06 00100 g004
Figure 5. An illustration of the different steps in the spatial triangulation algorithm. The subfigures (AE) are explained in the text.
Figure 5. An illustration of the different steps in the spatial triangulation algorithm. The subfigures (AE) are explained in the text.
Ijgi 06 00100 g005
Figure 6. The different steps of Algorithm 1 applied to S = { T 1 , T 2 } . Figure ( A ) represents the input data. In this example, all boundary segments of all triangles of S contribute to the boundary of S. The line arrangement induced by the carriers of the edges of the input triangles is bounded by the convex hull of the input in ( B ) . A doubly-connected edge list is constructed out of the line arrangement, storing its topological structure in ( C ) . Finally, the triangulation is computed in ( D ) .
Figure 6. The different steps of Algorithm 1 applied to S = { T 1 , T 2 } . Figure ( A ) represents the input data. In this example, all boundary segments of all triangles of S contribute to the boundary of S. The line arrangement induced by the carriers of the edges of the input triangles is bounded by the convex hull of the input in ( B ) . A doubly-connected edge list is constructed out of the line arrangement, storing its topological structure in ( C ) . Finally, the triangulation is computed in ( D ) .
Ijgi 06 00100 g006
Figure 7. Snapshots of a traffic sign as seen by an observer circularly moving around it.
Figure 7. Snapshots of a traffic sign as seen by an observer circularly moving around it.
Ijgi 06 00100 g007
Figure 8. The snapshots at time moments t = 1 4 (A), t = 1 2 (B), t = 1 (C), t = 3 2 (D), t = 2 (E), t = 5 2 (F), t = 3 (G), t = 7 2 (H) and t = 4 (I) of the geometric object of Example 8.
Figure 8. The snapshots at time moments t = 1 4 (A), t = 1 2 (B), t = 1 (C), t = 3 2 (D), t = 2 (E), t = 5 2 (F), t = 3 (G), t = 7 2 (H) and t = 4 (I) of the geometric object of Example 8.
Ijgi 06 00100 g008
Figure 9. The triangulations of the objects of Example 8 at time moments t = 1 4 (A), t = 1 2 (B), t = 1 (C), t = 3 2 (D), t = 2 (E), t = 5 2 (F), t = 3 (G), t = 7 2 (H) and t = 4 (I).
Figure 9. The triangulations of the objects of Example 8 at time moments t = 1 4 (A), t = 1 2 (B), t = 1 (C), t = 3 2 (D), t = 2 (E), t = 5 2 (F), t = 3 (G), t = 7 2 (H) and t = 4 (I).
Ijgi 06 00100 g009
Figure 10. The set operations between objects are pre-computed in the triangulation.
Figure 10. The set operations between objects are pre-computed in the triangulation.
Ijgi 06 00100 g010
Figure 11. An example of an image representing a cockatiel and its distortions.
Figure 11. An example of an image representing a cockatiel and its distortions.
Ijgi 06 00100 g011
Figure 12. The detected lines after reduction.
Figure 12. The detected lines after reduction.
Ijgi 06 00100 g012
Figure 13. Comparison of both color measures: distribution of the distance values.
Figure 13. Comparison of both color measures: distribution of the distance values.
Ijgi 06 00100 g013
Figure 14. Comparison of the both color measures: closest images.
Figure 14. Comparison of the both color measures: closest images.
Ijgi 06 00100 g014
Figure 15. Comparison of the performance of the three color measures.
Figure 15. Comparison of the performance of the three color measures.
Ijgi 06 00100 g015
Table 1. Summary of the complexity results.
Table 1. Summary of the complexity results.
Time ComplexityOutput Complexity
Spatial data O ( m 2 log m ) O ( m 2 )
Spatio-temporal data O ( z ( d , ϵ ) d m 5 log m ) O ( m 5 d )
Table 2. The half-edge records of the doubly-connected edge list corresponding to Figure 6.
Table 2. The half-edge records of the doubly-connected edge list corresponding to Figure 6.
Half-EdgeOriginTwinIncident FaceNextPrev
e 1 , 2 v 1 e 2 , 1 f 5 e 2 , 4 e 3 , 1
e 2 , 1 v 2 e 1 , 2 f 1 e 1 , 5 e 5 , 2
e 1 , 3 v 1 e 3 , 1 f 2 e 3 , 5 e 5 , 2
e 3 , 1 v 3 e 1 , 3 f 5 e 1 , 2 e 4 , 3
e 1 , 5 v 1 e 5 , 1 f 1 e 5 , 2 e 2 , 1
e 5 , 1 v 5 e 1 , 5 f 2 e 1 , 3 e 3 , 5
e 2 , 4 v 2 e 4 , 2 f 5 e 4 , 3 e 1 , 2
e 4 , 2 v 4 e 2 , 4 f 3 e 2 , 5 e 5 , 4
e 2 , 5 v 2 e 5 , 2 f 3 e 5 , 4 e 4 , 2
e 5 , 2 v 5 e 2 , 5 f 1 e 2 , 1 e 1 , 5
e 3 , 4 v 3 e 4 , 3 f 4 e 4 , 5 e 5 , 3
e 4 , 3 v 4 e 3 , 4 f 5 e 3 , 1 e 2 , 4
e 3 , 5 v 3 e 5 , 3 f 2 e 5 , 1 e 1 , 3
e 5 , 3 v 5 e 3 , 5 f 4 e 3 , 4 e 4 , 5
e 4 , 5 v 4 e 5 , 4 f 4 e 5 , 3 e 3 , 4
e 5 , 4 v 5 e 4 , 5 f 3 e 4 , 2 e 2 , 5
Table 3. The time complexity of the various parts of Algorithm 1, when the input is a snapshot represented by n triangles.
Table 3. The time complexity of the various parts of Algorithm 1, when the input is a snapshot represented by n triangles.
Line(s)StepTime Complexity
2Compute B ( S ) and U ( S ) O ( m 2 log m )
3Compute CH ( S ) O ( m log m )
4Compute DCEL( S ) O ( m 2 )
5–19Polygon extraction and triangulation O ( m 2 log m )
Overall time complexity O ( m 2 log m )
Table 4. The elements of the list C during the execution of the partitioning algorithm (Algorithm 2) on the geometric object from Example 9.
Table 4. The elements of the list C during the execution of the partitioning algorithm (Algorithm 2) on the geometric object from Example 9.
ElementCarrier
O c , 1 = ( ( ( 1 , 0 ) , ( 1 , 0 ) ) , [ 0 , 4 ] , I d ) y = 0
O c , 2 = ( ( ( 1 , 0 ) , ( 0 , 2 ) ) , [ 0 , 4 ] , I d ) y = 2 x + 2
O c , 3 = ( ( ( 0 , 2 ) , ( 1 , 0 ) ) , [ 0 , 4 ] , I d ) y = 2 x + 2
O c , 4 = ( ( ( 3 , 1 ) , ( 1 , 1 ) ) , [ 0 , 4 ] , f ) y = 1
O c , 5 = ( ( ( 3 , 1 ) , ( 2 , 3 ) ) , [ 0 , 4 ] , f ) y = 2 x + 7 2 t
O c , 6 = ( ( ( 2 , 3 ) , ( 1 , 1 ) ) , [ 0 , 4 ] , f ) y = 2 x 1 + 2 t
Table 5. The output and time complexity of the various parts of Algorithm 5, when the input is a geometric object, composed of n atomic objects, where the maximal degree of the polynomials describing the transformation functions is d and the desired precision for computing the zeros of polynomials is ϵ .
Table 5. The output and time complexity of the various parts of Algorithm 5, when the input is a geometric object, composed of n atomic objects, where the maximal degree of the polynomials describing the transformation functions is d and the desired precision for computing the zeros of polynomials is ϵ .
StepTime ComplexityOutput Complexity
Partition O ( z ( d , ϵ ) n 3 log n ) O ( n 3 d )
Triangulate O ( z ( d , ϵ ) d n 5 log n ) O ( n 5 d )
Merge O ( n 5 d ( log n + z ( d , ϵ ) ) ) -
Overall O ( z ( d , ϵ ) d n 5 log n ) O ( n 5 d )

Share and Cite

MDPI and ACS Style

Haesevoets, S.; Kuijpers, B.; Revesz, P.Z. Affine-Invariant Triangulation of Spatio-Temporal Data with an Application to Image Retrieval. ISPRS Int. J. Geo-Inf. 2017, 6, 100. https://doi.org/10.3390/ijgi6040100

AMA Style

Haesevoets S, Kuijpers B, Revesz PZ. Affine-Invariant Triangulation of Spatio-Temporal Data with an Application to Image Retrieval. ISPRS International Journal of Geo-Information. 2017; 6(4):100. https://doi.org/10.3390/ijgi6040100

Chicago/Turabian Style

Haesevoets, Sofie, Bart Kuijpers, and Peter Z. Revesz. 2017. "Affine-Invariant Triangulation of Spatio-Temporal Data with an Application to Image Retrieval" ISPRS International Journal of Geo-Information 6, no. 4: 100. https://doi.org/10.3390/ijgi6040100

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop