... | ... | @@ -24,8 +24,14 @@ |
|
|
|
|
|
Les points remarquables de l'image -"bords" ou "coins"- sont des zones où les variations d'intensité (gradients) sont importantes, dans une ou plusieurs directions. La librairie SURF (Oyallon, 2015) est utilisée pour extraire les points d’intérêts. L'idée est de ne garder que les points où les variations d'intensité sont importantes sur les deux axes. On utilise alors la valeur du déterminant de la matrice Hessienne (dérivées secondes), défini comme :
|
|
|
|
|
|
$$DoH = \\det\\begin{pmatrix} \\frac{d²I(x,y)}{dx²} & \\frac{d²I(x,y)}{dxdy} \\ \\frac{d²I(x,y)}{dxdy} & \\frac{d²I(x,y)}{dy²} \\end{pmatrix}\\ $$
|
|
|
```math
|
|
|
|
|
|
DoH=\operatorname{det}\left(\begin{array}{cc}
|
|
|
\frac{d^2 I(x, y)}{dx^2} & \frac{d^2 I(x, y)}{dxdy} \\
|
|
|
\frac{d^2 I(x, y)}{dxdy} & \frac{d^2 I(x, y)}{dy^2}
|
|
|
\end{array}\right)
|
|
|
|
|
|
```
|
|
|
Avec$`\ I`$ l’intensité en niveau de gris au point de coordonnées (x,y). Les points d’intérêt conservés sont ceux ou le DoH est supérieur à un seuil t<sub>H</sub>. La valeur du seuil est calculée automatiquement pour atteindre le nombre de points souhaité. On cloisonne le nombre de points dans trois intervalles :
|
|
|
|
|
|
- Densité de point \*\*\*Faible \*\*\*: Nombre de point $`\in \lbrack 300\ ;500\rbrack`$
|
... | ... | @@ -34,7 +40,7 @@ Avec$`\ I`$ l’intensité en niveau de gris au point de coordonnées (x,y). Les |
|
|
|
|
|
Pour assurer que la stabilisation est réalisée sur les berges, l’utilisateur définit une zone « écoulement » dans laquelle aucun point d’intérêt ne sera extrait.
|
|
|
|
|
|
![](./media/image110.jpeg)
|
|
|
![image110](uploads/dd51334bb23e1434f871ac6092a0dbd0/image110.jpeg)
|
|
|
|
|
|
## Appariement des points
|
|
|
|
... | ... | @@ -46,7 +52,7 @@ Il s’agit maintenant de faire correspondre les points de l’image 1 avec ceux |
|
|
|
|
|
Le voisinage est défini en fonction de la taille du point et les gradients sont exprimés relativement par rapport à son orientation. De ce fait le descripteur SURF est robuste à la rotation, la translation et au zoom. Les points ayant des descripteurs SURF similaires sont alors appariés. Sur l’image ci-dessous les appariements sont notés d’un trait rouge. Pour chaque point le diamètre du cercle représente la taille du point d’intérêt et le trait vers son orientation.
|
|
|
|
|
|
![](./media/image111.png)
|
|
|
![image111](uploads/57ee640201deb1d36e2b63f424cc63b1/image111.png)
|
|
|
|
|
|
Il arrive que des mauvais appariements soient réalisés (ou faux matchs). Pour les écarter on utilise la méthode ORSA (Moisan 2004). Les faux matchs sont identifiés au moyen d’un processus stochastique associé à des contraintes de géométrie épipolaire (non détaillé ici).
|
|
|
|
... | ... | @@ -54,17 +60,37 @@ Il arrive que des mauvais appariements soient réalisés (ou faux matchs). Pour |
|
|
|
|
|
Nous disposons maintenant de jeux de points appariés ce qui signifie que nous connaissons la position de chaque point sur l'image 1 et l'image 2. Il s'agit maintenant de déterminer la matrice de transformation $`H`$ permettant de passer des positions $`X`$ à $`X'`$.
|
|
|
|
|
|
$X = H \\bullet X^{'} = \\left( \\ \\begin{matrix} h\_{1} & h\_{2} & h\_{3} \\ h\_{4} & h\_{5} & h\_{6} \\ h\_{7} & h\_{8} & h\_{9} \\end{matrix}\\ \\right) \\bullet \\ \\left( \\ \\begin{matrix} x' \\ y' \\ 1 \\end{matrix}\\ \\right)$
|
|
|
```math
|
|
|
X=H \cdot X^{\prime}=\left(\begin{array}{lll}
|
|
|
h_1 & h_2 & h_3 \\
|
|
|
h_4 & h_5 & h_6 \\
|
|
|
h_7 & h_8 & h_9
|
|
|
\end{array}\right) \cdot\left(\begin{array}{c}
|
|
|
x^{\prime} \\
|
|
|
y^{\prime} \\
|
|
|
1
|
|
|
\end{array}\right)
|
|
|
|
|
|
```
|
|
|
|
|
|
En analyse d'images, on considère généralement des transformations linéaires, affines ou projectives Les transformations linéaires conservent parallélismes, angles et rapports. Pour les modèles affines seuls les parallélismes sont conservés. Pour le modèle projectif rien n’est conservé, il est donc le plus sensible. C’est cependant celui qui représente le mieux l'effet de perspective, et donc le changement de point de vue d'une caméra.
|
|
|
|
|
|
Les modèles de similarité et projectifs, utilisés dans le module de stabilisation, sont définis comme :
|
|
|
|
|
|
$$H\_{similarité} = \\ \\left( \\ \\begin{matrix} {sr}_{11} & {sr}_{12} & t\_{x} \\ sr\_{21} & {sr}_{22} & t_{y} \\ 0 & 0 & 1 \\end{matrix}\\ \\right)\\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ H\_{projectif} = \\ \\left( \\ \\begin{matrix} h\_{11} & h\_{12} & h\_{13} \\ h\_{21} & h\_{22} & h\_{23} \\ h\_{31} & h\_{32} & h\_{33} \\end{matrix}\\ \\right)$$
|
|
|
|
|
|
![](./media/image112.png)
|
|
|
|
|
|
Chaque point apparié est utilisé comme point de contrôle. Les valeurs des coefficients de la matrice d’homographie $`H`$ sont ensuite approchées grâce à eux. La méthode de DLT (Direct Linear Transform) est utilisée pour arranger l’équation ci-dessus et estimer$`\ H`$ grâce aux couples de points de contrôle. En effet il n'existe pas de solution unique au problème, on détermine donc la solution passant au mieux par l'ensemble des points de contrôle.
|
|
|
```math
|
|
|
H_{\text {similarité }}=\left(\begin{array}{ccc}
|
|
|
s r_{11} & s r_{12} & t_x \\
|
|
|
s r_{21} & s r_{22} & t_y \\
|
|
|
0 & 0 & 1
|
|
|
\end{array}\right) \quad H_{\text {projectif }}=\left(\begin{array}{lll}
|
|
|
h_{11} & h_{12} & h_{13} \\
|
|
|
h_{21} & h_{22} & h_{23} \\
|
|
|
h_{31} & h_{32} & h_{33}
|
|
|
\end{array}\right)
|
|
|
```
|
|
|
![image112](uploads/ce4c895f4c311b0ec2630329b9c2039f/image112.png)
|
|
|
|
|
|
Chaque point apparié est utilisé comme point de contrôle. Les valeurs des coefficients de la matrice d’homographie $`H`$ sont ensuite approchées grâce à eux. La méthode de DLT (Direct Linear Transform) est utilisée pour arranger l’équation ci-dessus et estimer $`\H`$ grâce aux couples de points de contrôle. En effet il n'existe pas de solution unique au problème, on détermine donc la solution passant au mieux par l'ensemble des points de contrôle.
|
|
|
|
|
|
# Principe de l’orthorectification
|
|
|
|
... | ... | @@ -72,111 +98,135 @@ Chaque point apparié est utilisé comme point de contrôle. Les valeurs des coe |
|
|
|
|
|
On considère un modèle sténopé permettant de passer d’un objet de coordonnées X,Y,Z dans un repère réel à sa représentation i,j dans un repère image. Le lien entre ces coordonnées peut s’écrire sous la forme dite DLT (pour Direct Linear Transformation) comme :
|
|
|
|
|
|
<table>
|
|
|
<tr>
|
|
|
<th>
|
|
|
|
|
|
</th>
|
|
|
<th>
|
|
|
|
|
|
`i = \frac{a_{1}.X + a_{2}.Y + a_{3}.Z + a_{4}}{a_{9}.X + a_{10}.Y + a_{11}.Z + 1}\ et\ j = \frac{a_{5}.X + a_{6}.Y + a_{7}.Z + a_{8}}{a_{9}.X + a_{10}.Y + a_{11}.Z + 1}\ \`
|
|
|
</th>
|
|
|
<th>(1)</th>
|
|
|
</tr>
|
|
|
</table>
|
|
|
|
|
|
Les coefficients a<sub>i</sub> n’ont pas de sens physique mais sont des combinaisons des paramètres intrinsèques et extrinsèques de la prise de vue. Le système précédent peut s’écrire sous forme matricielle :
|
|
|
|
|
|
$$\\left\\lbrack \\begin{matrix} X & Y \\ 0 & 0 \\end{matrix}\\ \\ \\ \\begin{matrix} Z & 1 & 0 \\ 0 & 0 & X \\end{matrix}\\ \\ \\ \\begin{matrix} 0 & 0 & 0 \\ Y & Z & 1 \\end{matrix}\\ \\ \\ \\begin{matrix}
|
|
|
|
|
|
- iX & - iY & - iZ \\
|
|
|
- jX & - jY & - jZ \\end{matrix} \\right\\rbrack \\bullet \\begin{bmatrix} a\_{1} & a\_{2} & a\_{3} & a\_{4} & a\_{5} & a\_{6} & a\_{7} & a\_{8} & a\_{9} & a\_{10} & a\_{11} \\end{bmatrix}^{T} = \\begin{bmatrix} i \\ j \\end{bmatrix}$$
|
|
|
```math
|
|
|
i=\frac{a_1 \cdot X+a_2 \cdot Y+a_3 \cdot Z+a_4}{a_9 \cdot X+a_{10} \cdot Y+a_{11} \cdot Z+1} \quad j=\frac{a_5 \cdot X+a_6 \cdot Y+a_7 \cdot Z+a_8}{a_9 \cdot X+a_{10} \cdot Y+a_{11} \cdot Z+1}
|
|
|
|
|
|
```
|
|
|
Les coefficients $a_i$ n’ont pas de sens physique mais sont des combinaisons des paramètres intrinsèques et extrinsèques de la prise de vue. Le système précédent peut s’écrire sous forme matricielle :
|
|
|
|
|
|
```math
|
|
|
\begin{aligned}
|
|
|
& {\left[\begin{array}{lllllllllll}
|
|
|
X & Y & Z & 1 & 0 & 0 & 0 & 0 & -i X & -i Y & -i Z \\
|
|
|
0 & 0 & 0 & 0 & X & Y & Z & 1 & -j X & -j Y & -j Z
|
|
|
\end{array}\right]}\cdot\left[\begin{array}{l}
|
|
|
a_1 \\ a_2 \\ a_3 \\ a_4 \\ a_5 \\ a_6 \\ a_7 \\ a_8 \\ a_9 \\ a_{10} \\ a_{11}
|
|
|
\end{array}\right]=\left[\begin{array}{l}
|
|
|
i \\
|
|
|
j
|
|
|
\end{array}\right] \\
|
|
|
&
|
|
|
\end{aligned}
|
|
|
```
|
|
|
|
|
|
Il est possible de résoudre le système d’équation ci-dessus si on est en possession de points de référence dont les coordonnées dans les repères réel (X,Y,Z) et image (i,j) sont connus. Il s’agit de point visibles sur les images, et dont les coordonnées réelles ont pu être mesurées sur le terrain.
|
|
|
|
|
|
Le système d’équation ci-dessus possède 11 inconnues (les coefficients a<sub>i</sub>), et chaque point de repère apporte une coordonnée i et j. Il faut donc a minima 6 points de repère pour résoudre ce système (qui sera dès lors surdéterminé). La mesure des coordonnées réelles et le pointage des coordonnées image étant entaché d’incertitude, il est conseillé d’utiliser plus que 6 points de référence. Pour un nombre N >= 6 de points de référence, on définit les matrices suivantes :
|
|
|
|
|
|
$$T = \\lbrack 2N \\times 11\\rbrack = \\begin{bmatrix} X\_{1} & Y\_{1} & Z\_{1} & 1 & 0 & 0 & 0 & 0 & - i\_{1}X\_{1} & - i\_{1}Y\_{1} & - i\_{1}Z\_{1} \\ X\_{2} & Y\_{2} & Z\_{2} & 1 & 0 & 0 & 0 & 0 & - i\_{2}X\_{2} & - i\_{2}Y\_{2} & - i\_{2}Z\_{2} \\ \\vdots & \\vdots & \\vdots & \\vdots & \\vdots & \\vdots & \\vdots & \\vdots & \\vdots & \\vdots & \\vdots \\ X\_{N} & Y\_{N} & Z\_{N} & 1 & 0 & 0 & 0 & 0 & - i\_{N}X\_{N} & - i\_{N}Y\_{N} & - i\_{1}Z\_{N} \\ 0 & 0 & 0 & 0 & X\_{1} & Y\_{1} & Z\_{1} & 1 & - j\_{1}X\_{1} & - j\_{1}Y\_{1} & - j\_{1}Z\_{1} \\ 0 & 0 & 0 & 0 & X\_{2} & Y\_{2} & Z\_{2} & 1 & - j\_{2}X\_{2} & - j\_{2}Y\_{2} & - j\_{2}Z\_{2} \\ \\vdots & \\vdots & \\vdots & \\vdots & \\vdots & \\vdots & \\vdots & \\vdots & \\vdots & \\vdots & \\vdots \\ 0 & 0 & 0 & 0 & X\_{N} & Y\_{N} & Z\_{N} & 1 & - j\_{N}X\_{N} & - j\_{N}Y\_{N} & - j\_{1}Z\_{N} \\end{bmatrix}$$
|
|
|
|
|
|
$$A = \\lbrack 11 \\times 1\\rbrack = \\begin{bmatrix} a\_{1} & a\_{2} & a\_{3} & a\_{4} & a\_{5} & a\_{6} & a\_{7} & a\_{8} & a\_{9} & a\_{10} & a\_{11} \\end{bmatrix}^{T}$$
|
|
|
|
|
|
$$Z = \\lbrack 2N \\times 1\\rbrack = \\begin{bmatrix} i\_{1} & i\_{2} & \\ldots & i\_{N} & j\_{1} & j\_{2} & \\ldots & j\_{N} \\end{bmatrix}^{T}$$
|
|
|
Le système d’équation ci-dessus possède 11 inconnues (les coefficients $a_i$), et chaque point de repère apporte une coordonnée i et j. Il faut donc a minima 6 points de repère pour résoudre ce système (qui sera dès lors surdéterminé). La mesure des coordonnées réelles et le pointage des coordonnées image étant entaché d’incertitude, il est conseillé d’utiliser 20 à 40 points de référence. Pour un nombre N >= 6 de points de référence, on définit les matrices suivantes :
|
|
|
|
|
|
```math
|
|
|
\begin{aligned}
|
|
|
& T=[2 N \times 11]=\left[\begin{array}{ccccccccccc}
|
|
|
X_1 & Y_1 & Z_1 & 1 & 0 & 0 & 0 & 0 & -i_1 X_1 & -i_1 Y_1 & -i_1 Z_1 \\
|
|
|
X_2 & Y_2 & Z_2 & 1 & 0 & 0 & 0 & 0 & -i_2 X_2 & -i_2 Y_2 & -i_2 Z_2 \\
|
|
|
\vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots \\
|
|
|
X_N & Y_N & Z_N & 1 & 0 & 0 & 0 & 0 & -i_N X_N & -i_N Y_N & -i_1 Z_N \\
|
|
|
0 & 0 & 0 & 0 & X_1 & Y_1 & Z_1 & 1 & -j_1 X_1 & -j_1 Y_1 & -j_1 Z_1 \\
|
|
|
0 & 0 & 0 & 0 & X_2 & Y_2 & Z_2 & 1 & -j_2 X_2 & -j_2 Y_2 & -j_2 Z_2 \\
|
|
|
\vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots \\
|
|
|
0 & 0 & 0 & 0 & X_N & Y_N & Z_N & 1 & -j_N X_N & -j_N Y_N & -j_1 Z_N
|
|
|
\end{array}\right] \\
|
|
|
& A=[11 \times 1]=\left[\begin{array}{lllllllllll}
|
|
|
a_1 & a_2 & a_3 & a_4 & a_5 & a_6 & a_7 & a_8 & a_9 & a_{10} & a_{11}
|
|
|
\end{array}\right]^T \\
|
|
|
& Z=[2 N \times 1]=\left[\begin{array}{llllllll}
|
|
|
i_1 & i_2 & \ldots & i_N & j_1 & j_2 & \ldots & j_N
|
|
|
\end{array}\right]^T \\
|
|
|
&
|
|
|
\end{aligned}
|
|
|
```
|
|
|
|
|
|
Et le modèle sténopé s’écrit :
|
|
|
|
|
|
`TA = Z`
|
|
|
|
|
|
Le système étant surdéterminé calcul des éléments de _A_ se fait par une régression en moindres carrés. On cherche les solutions de _A_ qui minimisent l’écart quadratique : $`\left| TA - Z \right|^{2}`$, ce qui revient à chercher une solution à
|
|
|
```math
|
|
|
TA = Z`
|
|
|
```
|
|
|
|
|
|
`\frac{\partial\left| TA - Z \right|^{2}}{\partial A} = 0 \rightarrow 2T^{T}(TA - Z) = 0 \rightarrow T^{T}TA - T^{T}Z = 0`
|
|
|
Le système étant surdéterminé calcul des éléments de $A$ se fait par une régression en moindres carrés. On cherche les solutions de $A$ qui minimisent l’écart quadratique : $`\left| TA - Z \right|^{2}`$, ce qui revient à chercher une solution à
|
|
|
|
|
|
On a donc la solution suivante pour la matrice \*A \*:
|
|
|
```math
|
|
|
\frac{\partial\|T A-Z\|^2}{\partial A}=0 \rightarrow 2 T^T(T A-Z)=0 \rightarrow T^T T A-T^T Z=0
|
|
|
```
|
|
|
|
|
|
`A = \left( T^{T}T \right)^{- 1}T^{T}Z`
|
|
|
On a donc la solution suivante pour la matrice $A$:
|
|
|
|
|
|
```math
|
|
|
A = \left( T^{T}T \right)^{- 1}T^{T}Z
|
|
|
```
|
|
|
## Le modèle sténopé et sa résolution : cas particulier 2D
|
|
|
|
|
|
Si on cherche à représenter une scène 2D dans le monde réel, un modèle simplifié peut être déduit du modèle complet. Si on considère que l’écoulement que l’on souhaite mesurer est un plan, que tous les points de référence appartiennent au plan de la rivière, et que ce plan a une coordonnée Z=0 le système d’équation (1) s’écrit :
|
|
|
Si on cherche à représenter une scène 2D dans le monde réel, un modèle simplifié peut être déduit du modèle complet. Si on considère que l’écoulement que l’on souhaite mesurer est un plan, que tous les points de référence appartiennent au plan de la rivière, et que ce plan a une coordonnée $Z=0$ le système d’équation (1) s’écrit :
|
|
|
|
|
|
`i = \frac{a_{1}.X + a_{2}.Y + a_{4}}{a_{9}.X + a_{10}.Y + 1}\ et\ j = \frac{a_{5}.X + a_{6}.Y + a_{8}}{a_{9}.X + a_{10}.Y + 1}\ \`
|
|
|
```math
|
|
|
i=\frac{a_1 \cdot X+a_2 \cdot Y+a_4}{a_9 \cdot X+a_{10} \cdot Y+1} \quad j=\frac{a_5 \cdot X+a_6 \cdot Y+a_8}{a_9 \cdot X+a_{10} \cdot Y+1}
|
|
|
```
|
|
|
|
|
|
On a donc une solution à 8 coefficients a<sub>i</sub>, et le système peut être résolu avec a minima 4 points de référence.
|
|
|
On a donc une solution à 8 coefficients $a_i$, et le système peut être résolu avec a minima 4 points de référence.
|
|
|
|
|
|
## Création des orthoimages
|
|
|
|
|
|
Une orthoimage représente une vue corrigée des effets de perspective et mise à l’échelle du monde réel, pour un plan donné. Dans le cas des analyses LSPIV, on souhaite orthorectifier le plan de la surface de l’écoulement (on fait donc l’hypothèse que notre écoulement est plan). Ce plan peut être exprimé en fonction de X et Y tel que $`Z = b_{1}X + b_{2}Y + b_{3}`$. En faisant l’hypothèse que les pentes longitudinales et transverse sont négligeables à l’échelle de la prise de vue, ou que le le système de coordonnées réel est exprimé par rapport au plan de la rivière (plan XY parallèle au plan de la rivière), on réduit l’équation du plan à $`Z = b_{3}`$, où _b<sub>3</sub>_ est la hauteur de surface libre dans le repère réel, _h_.
|
|
|
Une orthoimage représente une vue corrigée des effets de perspective et mise à l’échelle du monde réel, pour un plan donné. Dans le cas des analyses LSPIV, on souhaite orthorectifier le plan de la surface de l’écoulement (on fait donc l’hypothèse que notre écoulement est plan).
|
|
|
|
|
|
Le système d’équation (1) se réduit, dans le plan de l’écoulement, à :
|
|
|
|
|
|
<table>
|
|
|
<tr>
|
|
|
<th>
|
|
|
Ce plan peut être exprimé en fonction de $X$ et $Y$ tel que $Z = b_{1}X + b_{2}Y + b_{3}$. En faisant l’hypothèse que les pentes longitudinales et transverse sont négligeables à l’échelle de la prise de vue, ou que le le système de coordonnées réel est exprimé par rapport au plan de la rivière (plan XY parallèle au plan de la rivière), on réduit l’équation du plan à $Z = b_{3}$, où $b_3$ est la hauteur de surface libre dans le repère réel, $h$.
|
|
|
|
|
|
</th>
|
|
|
<th>
|
|
|
Le système d’équation (1) se réduit, dans le plan de l’écoulement, à :
|
|
|
|
|
|
`i = \frac{a_{1}.X + a_{2}.Y + a_{3}.h + a_{4}}{a_{9}.X + a_{10}.Y + a_{11}.h + 1}\ et\ j = \frac{a_{5}.X + a_{6}.Y + a_{7}.h + a_{8}}{a_{9}.X + a_{10}.Y + a_{11}.h + 1}\ \`
|
|
|
</th>
|
|
|
<th>(2)</th>
|
|
|
</tr>
|
|
|
</table>
|
|
|
```math
|
|
|
i=\frac{a_1 \cdot X+a_2 \cdot Y+a_3 \cdot h+a_4}{a_9 \cdot X+a_{10} \cdot Y+a_{11} \cdot h+1} \quad j=\frac{a_5 \cdot X+a_6 \cdot Y+a_7 \cdot h+a_8}{a_9 \cdot X+a_{10} \cdot Y+a_{11} \cdot h+1}
|
|
|
```
|
|
|
|
|
|
Les coefficients a<sub>i</sub> ont été calculés tels que présenté dans les parties précédentes.
|
|
|
Les coefficients $a_$ ont été calculés tels que présenté dans les parties précédentes.
|
|
|
|
|
|
La méthode pour construire les orthoimages consiste à :
|
|
|
|
|
|
- Définir la zone à imager dans le repère réel, c'est-à-dire donner les coordonnées (X,Y) des 4 coins de l’orthoimage (fait dans le menu [Orthorectification](#param%C3%A8tres-de-transformation))
|
|
|
- Définir la zone à imager dans le repère réel, c'est-à-dire donner les coordonnées (X,Y) des 4 coins de l’orthoimage (fait dans le menu [Orthorectification](Manuel-utilisateur/Orthorectification des images#paramètres-de-transformation))
|
|
|
- Échantillonner cette zone avec une résolution donnée afin de créer une grille, sachant que chacun des nœuds de cette grille sera le centre d’un pixel de l’image orthorectifiée.
|
|
|
- Pour chaque nœud de la grille, de coordonnées (X<sub>i</sub>,Y<sub>i</sub>), on calcule les coordonnées correspondantes dans l’image source (i<sub>i</sub>,j<sub>i</sub>) avec l’équation (2). Les coordonnées (i<sub>i</sub>,j<sub>i</sub>) ainsi calculées sont des réels et non des entiers.
|
|
|
- On affecte à chaque pixel de centre (X<sub>i</sub>,Y<sub>i</sub>) une intensité en niveau de gris correspondant au pixel (i<sub>i</sub>,j<sub>i</sub>) de l’image source. Puisque les coordonnées (i<sub>i</sub>,j<sub>i</sub>) sont des réels, on utilise une interpolation sur les pixels voisins pour définir l’intensité en niveau de gris, avec une convolution cubique :
|
|
|
|
|
|
`f\left( i_{i},j_{i} \right) = \sum_{k = - 3}^{3}{\sum_{l = - 3}^{3}\left\lbrack f\left( i_{i + k},j_{i + l} \right)C\left( i_{i + k} - i_{i} \right)C\left( j_{i + l} - j_{i} \right) \right\rbrack}`
|
|
|
- Pour chaque nœud de la grille, de coordonnées $(X_i,Y_i)$, on calcule les coordonnées correspondantes dans l’image source $(i_i,j_i)$ avec l’équation (2). Les coordonnées $(i_i,j_i)$ ainsi calculées sont des réels et non des entiers.
|
|
|
- On affecte à chaque pixel de centre $(X_i,Y_i)$ une intensité en niveau de gris correspondant au pixel $(i_i,j_i)$ de l’image source. Puisque les coordonnées $(i_i,j_i)$ sont des réels, on utilise une interpolation sur les pixels voisins pour définir l’intensité en niveau de gris, avec une convolution cubique :
|
|
|
|
|
|
Où $`f\left( i_{i + k},j_{i + l} \right)`$ est l’intensité du pixel $\\left( i\_{i + k},j\_{i + l} \\right)\\ $dans l’image source et _C_ prend la forme :
|
|
|
```math
|
|
|
f\left(i_i, j_i\right)=\sum_{k=-3}^3 \sum_{l=-3}^3\left[f\left(i_{i+k}, j_{i+l}\right) C\left(i_{i+k}-i_i\right) C\left(j_{i+l}-j_i\right)\right]
|
|
|
```
|
|
|
Où $f\left( i_{i + k},j_{i + l} \right)$ est l’intensité du pixel $\\left(i\_{i + k},j\_{i + l} \\right)\\ $ dans l’image source et $C$ prend la forme :
|
|
|
|
|
|
$$C(s) = \\left{ \\begin{matrix} 1 - 2|s|^{2} + |s|^{3} & si\\ 0 \\leq |s| \\leq 1 \\ 4 - 8|s| + 5|s|^{2} - |s|^{3} & si\\ 1 \\leq |s| \\leq 2 \\ 0 & sinon \\end{matrix} \\right.\\ $$
|
|
|
```math
|
|
|
C= \left\{\begin{matrix} 1 - 2|s|^{2} + |s|^{3} & si\quad 0 \leq |s| \leq 1 \\ 4 - 8|s| + |s|^{2} - |s|^{3} & si \quad 1 \leq |s| \leq 2 \\ 0 & sinon \end{matrix}\right.
|
|
|
```
|
|
|
|
|
|
Où $`s = k\ ou\ l`$
|
|
|
|
|
|
![](./media/image113.png)
|
|
|
![image113](uploads/4a299f88cf369bbfdbb10b2d8eaadab8/image113.png)
|
|
|
|
|
|
# Principes de la mesure de la vitesse de déplacement des traceurs
|
|
|
|
|
|
Une analyse statistique en corrélation croisée est effectuée sur les images orthorectifiées afin de déterminer le déplacement des traceurs visibles en surface. Le logiciel **_Fudaa-LSPIV_** utilise un algorithme optimisé pour les applications de grande échelle spatiale avec des résolutions d'images pouvant être faible. On calcule la corrélation entre une fenêtre d'interrogation (IA pour interrogation area) centrée sur un point _a<sub>ij</sub>_ dans une image et la même IA centrée sur un point _b<sub>ij</sub>_ dans l'image suivante, images séparées par un intervalle de temps de ∆t secondes. La [taille de la fenêtre d’interrogation est paramétrable](#param%C3%A8tres-du-calcul-des-d%C3%A9placements) dans **_Fudaa-LSPIV_**. Le coefficient de corrélation _R(a<sub>ij</sub>, b<sub>ij</sub>)_ est calculé ainsi :
|
|
|
|
|
|
`R\left( a_{i,j},b_{i,j} \right) = \frac{\sum_{i = 1}^{M_{i}}{\sum_{j = 1}^{M_{j}}\left\lbrack \left( A_{ij} - \overline{A_{ij}} \right)\left( B_{ij} - \overline{B_{ij}} \right) \right\rbrack}}{\left\lbrack \sum_{i = 1}^{Mi}{\sum_{j = 1}^{Mj}{\left( A_{ij} - \overline{A_{ij}} \right)^{2}\sum_{i = 1}^{Mi}{\sum_{j = 1}^{Mj}\left( B_{ij} - \overline{B_{ij}} \right)^{2}}}} \right\rbrack^{1/2}}`
|
|
|
```math
|
|
|
R\left( a_{i,j},b_{i,j} \right) = \frac{\sum_{i = 1}^{M_{i}}{\sum_{j = 1}^{M_{j}}\left\lbrack \left( A_{ij} - \overline{A_{ij}} \right)\left( B_{ij} - \overline{B_{ij}} \right) \right\rbrack}}{\left\lbrack \sum_{i = 1}^{Mi}{\sum_{j = 1}^{Mj}{\left( A_{ij} - \overline{A_{ij}} \right)^{2}\sum_{i = 1}^{Mi}{\sum_{j = 1}^{Mj}\left( B_{ij} - \overline{B_{ij}} \right)^{2}}}} \right\rbrack^{1/2}}
|
|
|
```
|
|
|
|
|
|
où _M<sub>i</sub>_ et _M<sub>j</sub>_ sont les tailles de la fenêtre d'interrogation (en pixel) et _A<sub>ij</sub>_ et _B<sub>ij</sub>_ sont les distributions des intensités des pixels dans les deux fenêtres d'interrogation. Ce calcul n'est effectué que pour des points _b<sub>ij</sub>_ inclus dans une [fenêtre de recherche (SA pour Searching Area) définie par l'utilisateur](#param%C3%A8tres-du-calcul-des-d%C3%A9placements), permettant d’économiser du temps de calcul. On suppose que le déplacement le plus probable de l'écoulement à partir du point _a<sub>ij</sub>_ pendant le temps _∆t_ est celui correspondant au maximum de corrélation, avec possibilité de définir une corrélation minimale requise.
|
|
|
où $M_i$ et $M_j$ sont les tailles de la fenêtre d'interrogation (en pixel) et $A_{ij}$ et $B_{ij}$ sont les distributions des intensités des pixels dans les deux fenêtres d'interrogation. Ce calcul n'est effectué que pour des points $b_{ij}$ inclus dans une [fenêtre de recherche (SA pour Searching Area) définie par l'utilisateur](Manuel-utilisateur/Calcul-de-la-vitesse-de-déplacement-des-traceurs#param%C3%A8tres-du-calcul-des-d%C3%A9placements), permettant d’économiser du temps de calcul. On suppose que le déplacement le plus probable de l'écoulement à partir du point $a_{ij}$ pendant le temps $\Delta t$ est celui correspondant au maximum de corrélation, avec possibilité de définir une corrélation minimale requise.
|
|
|
|
|
|
![](./media/image114.png)
|
|
|
![image114](uploads/fe03235d4d9c3242bcc9ecb886c2e534/image114.png)
|
|
|
|
|
|
La précision du calcul étant au pixel prés, il est intéressant de réaliser une interpolation sub-pixel. Soit b<sub>i,j</sub> la position du maximum de corrélation. Dans **_Fudaa-LSPIV_**, un ajustement d’une loi Gaussienne unidimensionnelle est utilisé sur les axes i et j pour obtenir une précision de déplacement de l'ordre de 0,2 pixels sous la forme :
|
|
|
La précision du calcul étant au pixel prés, il est intéressant de réaliser une interpolation sub-pixel. Soit $b_i,$j_i$ la position du maximum de corrélation. Dans **_Fudaa-LSPIV_**, un ajustement d’une loi Gaussienne unidimensionnelle est utilisé sur les axes i et j pour obtenir une précision de déplacement de l'ordre de 0,2 pixels sous la forme :
|
|
|
|
|
|
$\\mathrm{\\Delta}i = \\frac{\\ln\\left( b\_{i - 1,j} \\right) - ln(b\_{i + 1,j})}{2\\left\\lbrack \\ln{\\left( b\_{i - 1,j} \\right) - 2\\ln\\left( b\_{i,j} \\right) + \\ln{(b}_{i - 1,j})} \\right\\rbrack}$ et $\\mathrm{\\Delta}j = \\frac{\\ln\\left( b_{i,j - 1} \\right) - ln(b\_{i,j + 1})}{2\\left\\lbrack \\ln{\\left( b\_{i,j + 1} \\right) - 2\\ln\\left( b\_{i,j} \\right) + \\ln{(b}\_{i,j - 1})} \\right\\rbrack}$
|
|
|
```math
|
|
|
\Delta i = \frac{\ln(b_{i - 1,j}) - ln(b_{i + 1,j})}{2\left\lbrack \\ln{(b_{i + 1,j}) - 2\ln(b_{i,j}) + \ln{(b}_{i - 1,j})} \right\rbrack} \quad \Delta j = \frac{\ln(b_{i,j-1}) - ln(b_{i,j+1})}{2\left\lbrack \\ln{(b_{i,j+1}) - 2\ln(b_{i,j}) + \ln{(b}_{i,j-1})} \right\rbrack}
|
|
|
```
|
|
|
|
|
|
La position sub-pixel du maximum de corrélation est don calculée comme _b<sub>i+∆i,j+∆j.</sub>_
|
|
|
La position sub-pixel du maximum de corrélation est don calculée comme $b_{i+\Delta i, j+\Delta j}$.
|
|
|
|
|
|
Les vitesses de surface sont calculées à partir des déplacements _b<sub>i+∆i,j+∆j.</sub>-a<sub>i,j</sub>_ divisés par _∆t_. Le calcul est reproduit de manière itérative sur toute l'image pour chaque nœud de la [grille de calcul](#grille-de-calcul). On calcule ainsi un champ de vitesse 2D de surface, "instantané" (entre deux images successives).
|
|
|
Les vitesses de surface sont calculées à partir des déplacements $b_{i+\Delta i, j+\Delta j}-a_{ij}$ divisés par $\Delta t$. Le calcul est reproduit de manière itérative sur toute l'image pour chaque nœud de la [grille de calcul](Manuel-utilisateur/Calcul-de-la-vitesse-de-déplacement-des-traceurs#grille-de-calcul). On calcule ainsi un champ de vitesse 2D de surface, "instantané" (entre deux images successives).
|
|
|
|
|
|
# Présentation détaillée des filtres
|
|
|
|
... | ... | |