[OSM-talk-fr] Orthorectification
Balaitous
balaitous at mailoo.org
Jeu 18 Oct 20:19:47 UTC 2012
Suite à un point mal placé, ma première image était incorrecte, voici la
nouvelle:
http://ubuntuone.com/3ZeUWV2khGee6Ie2ZfNvgC
Au sujet d'ASTER :
It is referenced to the WGS84/EGM96 geoid
Or j'ai utilisé l'altitude au dessus de l'ellipsoide, donc il y a une
erreur à ce niveau
les codes proj4 que j'ai utilisé sont
+init=epsg:4326
+proj=geocent +datum=WGS84 +units=m +no_defs
Je pense que c'est un EPSG:5773, qu'il faudrait pour convertir les
coordonnées (lat, lon, h) en (X, Y, Z)
Pour le reste, c'est vrai que passé le modèle de caméra sténopé, je n'y
connait pas grand chose. Il faut que je me documente sur ces coordonnées
4D.
Par contre, je part bien du l'image orthorectifiée pour ensuite
déterminer les coordonnées dans l'image d'origine.
Reste que compte tenu des données utilisées pour le géoréférencement
(bing+ASTER) utiliser un modèle plus précis est peut-être illusoire.
Dans l'immédiat (d'ici la fin de l'année) je vais essayer de mettre les
sources à disposition, en retravaillant sur la partie GUI.
Le jeudi 18 octobre 2012 à 21:25 +0200, Philippe Verdy a écrit :
> Le 18 octobre 2012 19:55, Balaitous <balaitous at mailoo.org> a écrit :
> > 3. Recentrage en prenant pour origine le barycentre du nuage de point
> > (X, Y, Z)
>
> Là encore un problème à la source des erreurs : les photos
> "orthorectifiées" ne le sont pas nécessairement en fonction de l'effet
> de perspective (notamment les prises de vue en altitude basse). La
> correction de cet effet ne peut pas se contenter d'utiliser un
> barycentre unique, mais nécessite une dimension supplémentaire (liée
> au degré de liberté supplémentaire introduit par l'altitude de
> l'appareil de prise de vue). De la 3D on passe à la 4D (cette
> dimension supplémentaire est la distance entre le point au sol visible
> dans l'image dont on a les coordonnées 3D, et le centre optique de
> l'appareil de pise de vue, mais en projection pour l'image finale en
> 2D, cette dimension pourra être ignorée : on travaille en coordonnées
> homogènes).
>
> De l'effet de déformation « œil de poisson » des objectifs en grand
> angle, c'est plus difficile à corriger (il faudrait avoir une
> description précise des propriétés géométriques de l'optique de
> l'appareil). La seule façon d'en tenir compte de façon correcte est de
> ne pas traiter l'image en la découpant simplement en facettes
> triangulaire planes, mais en utilisant une transformation "lissante" à
> base de splines (au moins quadratiques sinon cubiques), et d'augmenter
> le nombre de points de référence pour réduire la surface des triangles
> retenus quitte à en augmenter le nombre (les splines à calculer
> contiendront donc davantage de noeuds).
>
> Toute la difficulté est là, dans le nombre de paramètres et de degrés
> de libertés pris en compte, et dans le choix des transformées pour
> tenir compte des effets à corriger.
>
> Le calcul des paramètres initiaux peut sembler compliqué, mais en fin
> de compte un traitement efficace des images 2D peut avoir lieu en
> utilisant une matrice de transformation simpel mais efficace et
> comportant plus de dimensions que 2 ou 3.
>
> A mon avis cette matrice carrée doit avoir au minimum 4 dimensions, ce
> qui implique que pour chaque point 2D de l'image cible, il faut
> d'abord calculer les 2 coordonnées dans l'image source, et calculer
> les 2 autres coordonnées par une transformée *non* linéaire tenant
> compte des effets à corriger, mais pour simplifier on peut
> effectivement faire ce calcul des 2 autres coordonnées manquantes
> uniquement sur les points de référence, pour ensuite estimer les
> autres points 4D de l'image par triangulation linéaire dans cet espace
> 4D augmenté et non dans le seul espace 2D de l'image source.
>
> Comme ensuite la matrice de transformation 4D est aussi linéaire, on
> peut combiner l'interpolation 4D des coordonnées 2D sources et la
> matrice en une transformation linéaire unique.
>
> On obtient alors en résultat des coordonnées 4D aussi, dont il ne
> reste plus qu'à ignorer les deux dernières coordonnées (représentant
> la hauteur dans la direction de la verticale de chaque point de
> l'image obtenue, et la distance de ce point au centre optique
> transformé de la prise de vue initiale, dans une direction variable
> mais passant par ce centre optique "déplacé").
>
> Dans les faits, pour produire une image orthorectifiée, on utilise
> plutôt la transformée inverse (on part des corrdonnées 2D de chaque
> pixel dans l'image rectifiée, pour en déduire une position dans
> l'image source). Cela se fait par l'inversion de la matrice 4x4 (si on
> s'est contenté d'une triangulation plane), ou 5x5 (avec une
> transformation lissante à base de "spline" quadratique), ou 6x6
> (spline cubique).
Plus d'informations sur la liste de diffusion Talk-fr