# Structure tensor

In mathematics, the structure tensor, also referred to as the second-moment matrix, is a matrix derived from the gradient of a function. It summarizes the predominant directions of the gradient in a specified neighborhood of a point, and the degree to which those directions are coherent. The structure tensor is often used in image processing and computer vision.

## The 2D structure tensor

### Continuous version

For a function $I$ of two variables p=(x,y), the structure tensor is the 2×2 matrix

$S_{w}(p)={\begin{bmatrix}\int w(r)(I_{x}(p-r))^{2}\,dr&\int w(r)I_{x}(p-r)I_{y}(p-r)\,dr\\[10pt]\int w(r)I_{x}(p-r)I_{y}(p-r)\,dr&\int w(r)(I_{y}(p-r))^{2}\,dr\end{bmatrix}}$ $S_{0}(p)={\begin{bmatrix}(I_{x}(p))^{2}&I_{x}(p)I_{y}(p)\\[10pt]I_{x}(p)I_{y}(p)&(I_{y}(p))^{2}\end{bmatrix}}$ ### Discrete version

In image processing and other similar applications, the function $I$ is usually given as a discrete array of samples $I[p]$ , where p is a pair of integer indices. The 2D structure tensor at a given pixel is usually taken to be the discrete sum

$S_{w}[p]={\begin{bmatrix}\sum _{r}w[r](I_{x}[p-r])^{2}&\sum _{r}w[r]I_{x}[p-r]I_{y}[p-r]\\[10pt]\sum _{r}w[r]I_{x}[p-r]I_{y}[p-r]&\sum _{r}w[r](I_{y}[p-r])^{2}\end{bmatrix}}$ Here the summation index r ranges over a finite set of index pairs (the "window", typically $\{-m..+m\}\times \{-m..+m\}$ for some m), and w[r] is a fixed "window weight" that depends on r, such that the sum of all weights is 1. The values $I_{x}[p],I_{y}[p]$ are the partial derivatives sampled at pixel p; which, for instance, may be estimated from by $I$ by finite difference formulas.

The formula of the structure tensor can be written also as $S_{w}[p]=\sum _{r}w[r]S_{0}[p-r]$ , where $S_{0}$ is the matrix-valued array such that

$S_{0}[p]={\begin{bmatrix}(I_{x}[p])^{2}&I_{x}[p]I_{y}[p]\\[10pt]I_{x}[p]I_{y}[p]&(I_{y}[p])^{2}\end{bmatrix}}$ ### Interpretation

More generally, the value of $\lambda _{k}$ , for k=1 or k=2, is the $w$ -weighted average, in the neighborhood of p, of the square of the directional derivative of $I$ along $e_{k}$ . The relative discrepancy between the two eigenvalues of $S_{w}$ is an indicator of the degree of anisotropy of the gradient in the window, namely how strongly is it biased towards a particular direction (and its opposite). This attribute can be quantified by the coherence, defined as

$c_{w}=\left({\frac {\lambda _{1}-\lambda _{2}}{\lambda _{1}+\lambda _{2}}}\right)^{2}$ if $\lambda _{2}>0$ . This quantity is 1 when the gradient is totally aligned, and 0 when it has no preferred direction. The formula is undefined, even in the limit, when the image is constant in the window ($\lambda _{1}=\lambda _{2}=0$ ). Some authors define it as 0 in that case.

Note that the average of the gradient $\nabla I$ inside the window is not a good indicator of anisotropy. Aligned but oppositely oriented gradient vectors would cancel out in this average, whereas in the structure tensor they are properly added together.

By expanding the effective radius of the window function $w$ (that is, increasing its variance), one can make the structure tensor more robust in the face of noise, at the cost of diminished spatial resolution. The formal basis for this property is described in more detail below, where it is shown that a multi-scale formulation of the structure tensor, referred to as the multi-scale structure tensor, constitutes a true multi-scale representation of directional data under variations of the spatial extent of the window function.

## The 3D structure tensor

### Definition

The structure tensor can be defined also for a function $I$ of three variables p=(x,y,z) in an entirely analogous way. Namely, in the continuous version we have $S_{w}(p)=\int w(r)S_{0}(p-r)\,dr$ , where

$S_{0}(p)={\begin{bmatrix}(I_{x}(p))^{2}&I_{x}(p)I_{y}(p)&I_{x}(p)I_{z}(p)\\[10pt]I_{x}(p)I_{y}(p)&(I_{y}(p))^{2}&I_{y}(p)I_{z}(p)\\[10pt]I_{x}(p)I_{z}(p)&I_{y}(p)I_{z}(p)&(I_{z}(p))^{2}\end{bmatrix}}$ $S_{0}[p]={\begin{bmatrix}(I_{x}[p])^{2}&I_{x}[p]I_{y}[p]&I_{x}[p]I_{z}[p]\\[10pt]I_{x}[p]I_{y}[p]&(I_{y}[p])^{2}&I_{y}[p]I_{z}[p]\\[10pt]I_{x}[p]I_{z}[p]&I_{y}[p]I_{z}[p]&(I_{z}[p])^{2}\end{bmatrix}}$ and the sum ranges over a finite set of 3D indices, usually $\{-m..+m\}\times \{-m..+m\}\times \{-m..+m\}$ for some m.

### Interpretation

As in the two-dimensional case, the eigenvalues $\lambda _{1},\lambda _{2},\lambda _{3}$ of $S_{w}[p]$ , and the corresponding eigenvectors $e_{1},e_{2},e_{3}$ , summarize the distribution of gradient directions within the neighborhood of p defined by the window $w$ . This information can be visualized as an ellipsoid whose semi-axes are equal to the eigenvalues and directed along their corresponding eigenvectors.

In particular, if the ellipsoid is stretched along one axis only, like a cigar (that is, if $\lambda _{1}$ is much larger than both $\lambda _{2}$ and $\lambda _{3}$ ), it means that the gradient in the window is predominantly aligned with the direction $e_{1}$ , so that the isosurfaces of $I$ tend to be flat and perpendicular to that vector. This situation occurs, for instance, when p lies on a thin plate-like feature, or on the smooth boundary between two regions with contrasting values. A 3D window straddling a smooth boundary surface between two uniform regions of a 3D image. The corresponding structure tensor ellipsoid.

If the ellipsoid is flattened in one direction only, like a pancake (that is, if $\lambda _{3}$ is much smaller than both $\lambda _{1}$ and $\lambda _{2}$ ), it means that the gradient directions are spread out but perpendicular to $e_{3}$ ; so that the isosurfaces tend to be like tubes parallel to that vector. This situation occurs, for instance, when p lies on a thin line-like feature, or on a sharp corner of the boundary between two regions with contrasting values. A 3D window straddling a line-like feature of a 3D image. The corresponding structure tensor ellipsoid.

Finally, if the ellipsoid is roughly spherical (that is, if $\lambda _{1}\approx \lambda _{2}\approx \lambda _{3}$ ), it means that the gradient directions in the window are more or less evenly distributed, with no marked preference; so that the function $I$ is mostly isotropic in that neighborhood. This happens, for instance, when the function has spherical symmetry in the neighborhood of p. In particular, if the ellipsoid degenerates to a point (that is, if the three eigenvalues are zero), it means that $I$ is constant (has zero gradient) within the window. A 3D window containing a spherical feature of a 3D image. The corresponding structure tensor ellipsoid.

## The multi-scale structure tensor

The structure tensor is an important tool in scale space analysis. The multi-scale structure tensor (or multi-scale second moment matrix) of a function $I$ is in contrast to other one-parameter scale-space features an image descriptor that is defined over two scale parameters. One scale parameter, referred to as local scale $t$ , is needed for determining the amount of pre-smoothing when computing the image gradient $(\nabla I)(x;t)$ . Another scale parameter, referred to as integration scale $s$ , is needed for specifying the spatial extent of the window function $w(\xi ;s)$ that determines the weights for the region in space over which the components of the outer product of the gradient by itself $(\nabla I)(\nabla I)^{T}$ are accumulated.

$\mu (x;t,s)=\int _{\xi \in \mathbb {R} ^{k}}(\nabla I)(x-\xi ;t)\,(\nabla I)^{T}(x-\xi ;t)\,w(\xi ;s)\,d\xi$ Conceptually, one may ask if it would be sufficient to use any self-similar families of smoothing functions $h(x;t)$ and $w(\xi ;s)$ . If one naively would apply, for example, a box filter, however, then non-desirable artifacts could easily occur. If one wants the multi-scale structure tensor to be well-behaved over both increasing local scales $t$ and increasing integration scales $s$ , then it can be shown that both the smoothing function and the window function have to be Gaussian. The conditions that specify this uniqueness are similar to the scale-space axioms that are used for deriving the uniqueness of the Gaussian kernel for a regular Gaussian scale space of image intensities.

There are different ways of handling the two-parameter scale variations in this family of image descriptors. If we keep the local scale parameter $t$ fixed and apply increasingly broadened versions of the window function by increasing the integration scale parameter $s$ only, then we obtain a true formal scale space representation of the directional data computed at the given local scale $t$ . If we couple the local scale and integration scale by a relative integration scale $r\geq 1$ , such that $s=rt$ then for any fixed value of $r$ , we obtain a reduced self-similar one-parameter variation, which is frequently used to simplify computational algorithms, for example in corner detection, interest point detection, texture analysis and image matching. By varying the relative integration scale $r\geq 1$ in such a self-similar scale variation, we obtain another alternative way of parameterizing the multi-scale nature of directional data obtained by increasing the integration scale.

A conceptually similar construction can be performed for discrete signals, with the convolution integral replaced by a convolution sum and with the continuous Gaussian kernel $g(x;t)$ replaced by the discrete Gaussian kernel $T(n;t)$ :

$\mu (x;t,s)=\sum _{n\in \mathbb {Z} ^{k}}(\nabla I)(x-n;t)\,(\nabla I)^{T}(x-n;t)\,w(n;s)$ When quantizing the scale parameters $t$ and $s$ in an actual implementation, a finite geometric progression $\alpha ^{i}$ is usually used, with i ranging from 0 to some maximum scale index m. Thus, the discrete scale levels will bear certain similarities to image pyramid, although spatial subsampling may not necessarily be used in order to preserve more accurate data for subsequent processing stages.

## Applications

The eigenvalues of the structure tensor play a significant role in many image processing algorithms, for problems like corner detection, interest point detection, and feature tracking. The structure tensor also plays a central role in the Lucas-Kanade optical flow algorithm, and in its extensions to estimate affine shape adaptation; where the magnitude of $\lambda _{2}$ is an indicator of the reliability of the computed result. The tensor has also been used for scale space analysis, estimation of local surface orientation from monocular or binocular cues, non-linear fingerprint enhancement, diffusion-based image processing, and several other image processing problems.

### Processing spatio-temporal video data with the structure tensor

The three-dimensional structure tensor has been used to analyze three-dimensional video data (viewed as a function of x, y, and time t). If one in this context aims at image descriptors that are invariant under Galilean transformations, to make it possible to compare image measurements that have been obtained under variations of a priori unknown image velocities $v=(v_{x},v_{y})^{T}$ ${\begin{bmatrix}x'\\y'\\t'\end{bmatrix}}=G{\begin{bmatrix}x\\y\\t\end{bmatrix}}=G{\begin{bmatrix}x-v_{x}\,t\\y-v_{y}\,t\\t\end{bmatrix}}$ ,

it is, however, from a computational viewpoint more preferable to parameterize the components in the structure tensor/second-moment matrix $S$ using the notion of Galilean diagonalization

$S'=R_{space}^{-T}\,G^{-T}\,S\,G^{-1}\,R_{space}^{-1}={\begin{bmatrix}\nu _{1}&\,&\,\\\,&\nu _{2}&\,\\\,&\,&\nu _{3}\end{bmatrix}}$ where $G$ denotes a Galilean transformation of space-time and $R_{space}$ a two-dimensional rotation over the spatial domain, compared to the abovementioned use of eigenvalues of a 3-D structure tensor, which corresponds to an eigenvalue decomposition and a (non-physical) three-dimensional rotation of space-time

$S''=R_{space-time}^{-T}\,S\,R_{space-time}^{-1}={\begin{bmatrix}\lambda _{1}&&\\&\lambda _{2}&\\&&\lambda _{3}\end{bmatrix}}$ .

To obtain true Galilean invariance, however, also the shape of the spatio-temporal window function needs to be adapted, corresponding to the transfer of affine shape adaptation from spatial to spatio-temporal image data. In combination with local spatio-temporal histogram descriptors, these concepts together allow for Galilean invariant recognition of spatio-temporal events.