Photogrammetrie: théorie
===
###### tags: `photog` `TP` `ECN` `slides`
<style type="text/css">
.reveal {
font-size: 2em;
}
#maligne{
background: None;
display: block;
position: fixed;
bottom: 0;
width: 100%;
}
.logo{
float: right;
}
.name{
font-size: 0.5em;
float: left;
}
</style>
<div id="maligne">
<div class="name">Matthieu Quantin </div>
<img class="logo" alt="CC-BY-NC-ND licence" src="https://upload.wikimedia.org/wikipedia/commons/7/73/Cc_by-nc-nd_icon.svg" />
</div>
----
En 4 étapes:
1. Capture
2. Points homologues
3. Positions relatives / absolues
4. Reconstitution 3D
---
# 1. Capture

capturer des données
----
Matériel de base : _photographies_
La photographie est une technique permettant de fixer une image sur une surface sensible à l'aide de la lumière et des objets qui la reflètent.
→ Large gamme de données de base
----
Capteur pour photo aérienne IMAO B66
(faibles parallaxes)
- 18 x 50 Mpixels → 770Mpix
- 1 pixel = 6µm
- à 1000m, 1pixel = 3cm au sol
- 4Gb / file
- 1.8 frame/sec

→ Réduction du temps de vol
----
Mais pour nous:

---
# 2. Détection de zones homologues
----

----
Plusieurs algorithme:
- 1999, SIFT: Scale Invariant Feature Transform
- 2008, SURF: Speeded Up Robust Features
- 2016+, autres? (RealityCapture...)
----
#### SIFT

----
Vous donnez RDV à quelqu'un, quel endroit choissez vous?

----
Là? aux intersections, aux coins

----

----
SIFT = Scale Invariant Feature Transform
- invariant à l'échelle
- invariant à la rotation
- invariant à l'exposition
→ Basé sur des caractéristiques locales
----
#### SIFT: algorithme robuste

----
#### 4 étapes pour SIFT:
1. Détecter des zones caractéristiques
2. Détecter leur orientation dominante
3. Calculer leur descripteur
4. Retrouver des zones similaires sur d'autres images
---
## 2.1. Zones caractéristiques
----
Descripteurs de Harris (1981)
= analyse locale de l'image à l'ordre 2
1. transformer l'image pour faire apparaitre les contours
2. positionner les zones caracteristiques
3. créer une signature des zones
----
Detection de contour

----
<!-- .slide: data-background="white" -->
Detection de contour (resultat)

----
Image à l'ordre 2
Opérateur de dérivation:
- DoG (Difference of Gaussians)
- LoG (Laplacian of Gaussian)
- DoH (Difference of Hessians)
----
Rappel Gaussienne
$$G( x , y ) = \frac{1}{2π ⋅ σ^2 } ⋅ e^{-\frac{( x^2 + y^2)}{ 2 σ^2} )}$$

----
Convolution = "remplacer" chaque pixel par son voisinage x matrice gaussienne

----
Exemple de noyau de convolution gaussien
$$\begin{bmatrix}
1 & 2 & 3 & 2 & 1 \\
2 & 6 & 8 & 6 & 2 \\
3 & 8 & 10 & 8 & 3 \\
2 & 6 & 8 & 6 & 2 \\
1 & 2 & 3 & 2 & 1 \\
\end{bmatrix}
\quad
$$
----

----

----

----
L'écart entre les 2 gaussiennes

----
sigma différents

----
itérations

----
Avantage: élimine les détails de haute fréquence
(= le bruit)
----
Laplacien

----
Laplacien

----
Laplacien

note: au tableau.
laplacien c'est le divergent du gradient.
En 2D dans un repère cartésien:
$\Delta =\nabla ^{2} = \frac {\partial ^{2}}{\partial x^{2}} + \frac {\partial ^{2}}{\partial y^{2}}$
Laplacien en 2D -> en 1D dérivée seconde
Dessiner le signal 2D (signal, dérivée, deriv seconde) pour expliquer la détection de bord
----
Laplacien et gestion du bruit

note: au tableau. montrer le problème du laplacien d'un signal bruité.
Que faire?
-> la LoG.
----
Descripteurs de Harris: intuition
  
----
Descripteurs de Lowe (1990)
→passage à l'octave

Note:
Le passage a l'octave consiste à retraiter l'image subsamplée à une plus petite échelle (avec moins de pixels) pour chercher des descripteurs à toutes les échelles.
---
## 2.2. Orientation
- Histogramme des orientations des gradients des pixels voisins dans Lσ
- Orientation = orientation correspondant au plus haut pic de l'histogramme
- Si plusieurs pics importants, on dédouble le point

---
## 2.3. Descripteur
Caractériser le comportement de l'image au voisinage du point
- orientation des gradients de pixels
- histogramme de ces orientations au voisinage

Note:
#toRead1: https://openclassrooms.com/fr/courses/4470531-classez-et-segmentez-des-donnees-visuelles/5053196-decrivez-efficacement-les-features-detectees-avec-sift#/id/r-5071174
#toRead2: https://medium.com/jun94-devpblog/cv-13-scale-invariant-local-feature-extraction-3-sift-315b5de72d48
----

4x4x8 = 128
vecteur caractéristique de dimension 128
----

----
Recapitulons:

---
## 2.4. Matcher chez les autres
- Descripteur identique
- Proches voisins (économique)
- Alignements:
- transformées de Haught
- moindre carrés
- etc...
----
#### Filtrage
On retire:
- les zone à faible contraste
- les arrêtes
- les aberrations
----

note:
c'est à cause du laplacien, la dérivée seconde est sensible au bruit, il faut un filtre gaussien pour éviter le bruit
http://wcours.gel.ulaval.ca/2017/a/GIF4100/default/5notes/A2017TraitementImagesPartie2PageWeb.pdf
https://perso.ensta-paris.fr/~manzaner/Cours/ROB317/ROB317_Caracteristiques.pdf
----

----

----
Principe de filtrage des abbérations

----
Points détécté par SIFT (key points

----
Points concordants (tie points)

---
# 3. Positions absolue des prises de vue
- Concerne un _couple stéréoscopique_: 2 images avec recouvrement
- À partir des points communs
- ensemble de transformations matricielles
----
3 étapes:
- Orientation relative
- Orientation relative + échelle
- Orientation absolue
----
#### 3.0. Corrections des distortions
1. Via les caractéristiques de l'objectif
2. Corrélation dense...
Souvent une combinaison des 2.
----
#### 3.1. Orientation relative

----
#### 3.2. Orientation relative + échelle

----
- Cette semaine nous nous arrêterons là.
- Pas de points connus,
- Uniquement des points "connus" sur les autres couples stéréophotgrammetrique.
→ Échelle relative
----
#### 3.3. Orientation absolue

---
# 4. Reconstitution 3D
Prenons le cas de ce cube

Je prends des photos
----

----
Différence des Gaussiennes
----

----
Points qui matchent
Orientation des photos
----

----
A partir des tie points:
Comment obtenir tous les points en 3D ??
----
A vous de reflechir!

{"metaMigratedAt":"2023-06-14T12:10:50.944Z","metaMigratedFrom":"YAML","title":"Photogrammetrie: théorie","breaks":true,"slideOptions":"{\"spotlight\":{\"enabled\":false}}","contributors":"[{\"id\":\"a1f132d0-9ce0-4352-ae6f-465b7eab6b80\",\"add\":3558,\"del\":983}]"}