Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Register
  • Sign in
  • F Fudaa Lspiv
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 34
    • Issues 34
    • List
    • Boards
    • Service Desk
    • Milestones
  • Deployments
    • Deployments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Terraform modules
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • Repository
  • Wiki
    • Wiki
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar

La forge institutionnelle d'INRAE étant en production depuis le 10 juin 2025, nous vous invitons à y créer vos nouveaux projets.

  • Image Velocimetry
  • Fudaa Lspiv
  • Wiki
  • Manuel utilisateur
  • Orthorectification des images

Orthorectification des images · Changes

Page history
Update Orthorectification des images authored Aug 20, 2024 by Guillaume  Bodart's avatar Guillaume Bodart
Hide whitespace changes
Inline Side-by-side
Manuel-utilisateur/Orthorectification-des-images.md
View page @ 64cd327c
...@@ -97,7 +97,123 @@ Le bouton **_Appliquer_** permet la transformation de la première image avec le ...@@ -97,7 +97,123 @@ Le bouton **_Appliquer_** permet la transformation de la première image avec le
## Principe de l’orthorectification ## Principe de l’orthorectification
L’orthorectification consiste à créer une image corrigée des effets de perspective et mise à l’échelle du monde réel, pour un plan donné. Tous les détails sur [la page des principes de l’orthorectification](#approfondissements). L’orthorectification consiste à créer une image corrigée des effets de perspective et mise à l’échelle du monde réel, pour un plan donné.
<details><summary>Click to expand</summary>
# Principe de l’orthorectification
## Le modèle sténopé et sa résolution : cas général 3D
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 :
```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_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 :
```math
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
\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
```
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 :
```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_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_3$ est la hauteur de surface libre dans le repère réel, $h$.
Le système d’équation (1) se réduit, dans le plan de l’écoulement, à :
```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_$ 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](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_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 :
```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 :
```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`$
![image113](uploads/4a299f88cf369bbfdbb10b2d8eaadab8/image113.png)
</details>
## Positionnement des points de référence ## Positionnement des points de référence
......
Clone repository

Home

Manuel utilisateur (français)

  1. Généralités
  2. Démarrer avec Fudaa-LSPIV
  3. Commencer une étude Fudaa-LSPIV
  4. Gestion des images sources
  5. Orthorectification des images
  6. Calcul de la vitesse de déplacement des traceurs
  7. Post traitement des vitesses calculées
  8. Affichage des résultats de vitesse
  9. Calcul du débit
  10. Export des données
  11. Relancer les calculs d'une étude existante
  12. Bug connus et parades
  13. Approfondissements
  14. Références bibliographiques