• Aucun résultat trouvé

LISTER LES FICHIERS DANS UN DOSSIER, SÉPARER LE RÉPERTOIRE DU NOM DES IMAGES

LISTER LES FICHIERS DANS UN DOSSIER, SÉPARER LE RÉPERTOIRE DU NOM

DES IMAGES

/culture3d/src/TpMMPD/ExoMM_CorrelMulImage.cpp :

#include "StdAfx.h"

//Liste des classes

class cMCI_Appli; // class cMCI_Ima;

//Déclaration des classes

class cMCI_Appli {

public :

cMCI_Appli(int argc,char ** argv); private :

std::list<std::string> mLFile; std::string mFullName;

std::string mDir; // Directory in which we are working

std::string mPat; // Pattern of images

cInterfChantierNameManipulateur * mICNM; };

/***************************************************/ /* cMCI_Appli */ /***************************************************/ cMCI_Appli::cMCI_Appli(int argc,char ** argv)

{

bool aShowArgs=true; ElInitArgMain

(

argc, argv, //Liste des arguments

LArgMain() << EAMC(mFullName,"Full Name (Dir+Pat)"),/

LArgMain() << EAM(aShowArgs,"Show",true,"Gives details on arguments") );

SplitDirAndFile(mDir, mPat, mFullName);

mICNM = cInterfChantierNameManipulateur::BasicAlloc(mDir); mLFile = mICNM->StdGetListOfFile(mPat);

if (aShowArgs) ShowArgs(); }

{

std::cout << "DIR = " << mDir << "Pat = " << mPat << "\n"; std::cout << "Nb Files " << mLFile.size() << "\n";

for ( std::list<std::string>::iterator itS=mLFile.begin(); itS != mLFile.end(); itS ++) { std::cout << " F = " << *itS << "\n"; }}} /***************************************************/ /* cMCI_Camera */ /***************************************************/ int ExoMCI_main(int argc,char ** argv)

{

cMCI_Appli anAppli(argc,argv); return 0;

}

Recompiler, et lancer depuis le répertoire MinCuxha la commande : mm3d TestLib ExoMCI ''.*jpg''

Le terminal devrait afficher : Nb Files 48

F = Abbey-IMG_0173.jpg F = Abbey-IMG_0191.jpg

ANNEXE 2

WORKFLOW TYPE ADAPTÉ AUX OUVRAGES LINÉAIRES

Ce workflow type est adapté aux caméras étudiées, spécifiquement le Sony DSC-RX1 et la Camlight de l'IGN. De nombreux raffinements sont possibles (se référer au manuscrit et/ou à la documentation du logiciel).

C

ALCUL DES POINTS HOMOLOGUES MULTI

-

ÉCHELLES

mm3d Tapioca MulScale ''imagesPattern'' 500 1500

Pour de meilleurs résultats (mais un temps de calcul accru et une augmentation conséquente des données à charger dans la RAM), augmenter le dernier argument (par exemple de 1500 à 3000, voire -1 pour des résultats en pleine résolution). Il est possible d’accélérer le processus en utilisant l'option File de Tapioca, et de spécifier un fichier XML recensant les couples d'images.

C

ALCULDESORIENTATIONSINTERNESETEXTERNES EN

3

ÉTAPES

mm3d Tapas Four15x2 ''10imagesPattern'' DegRadMax=3 DegGen=0 Out=Calib

Calcul d'un modèle basique décrivant la géométrie de la caméra sur un sous-ensemble d'images. Le choix des images ne semblent pas être prépondérant dans la qualité des résultats, mais en cas de résultats aberrants, tester avec de nouveaux sous-ensembles.

mm3d Tapas Four15x2 ''imagesPattern'' InOri=Calib DegGen=2 Out=F15

Utilisation du modèle basique pour orienter l'ensemble des images, puis les degrés de liberté sont relâchés (correction radiale jusque R15, correction affine et décentrique, PPA et PPS distincts). Pour certaines caméras (ex : Ricoh GR IV), une correction « classique » jusque R7 apporte de meilleurs résultats. On peut alors jouer sur le paramètre DegRadMax.

mm3d Tapas AddPolyDeg7 ''imagesPattern'' InOri=F15 Out=F15P7 À partir des caméras orientées avec un modèle étendu, on fige le modèle radial et on ajoute une couche polynomiale non radiale permettant de corriger les déformations résiduelles, en relâchant progressivement les coefficients.

C

OMPENSATIONSUR LES POINTS D

'

APPUI

CIA.xml

Géoréférencement des orientations relatives (l'effet de courbure -si existant- n'est pas encore corrigé).

CTA.xml = coordonnées terrain des points d'appui CIA.xml = coordonnées image des points d'appui

mm3d Campari ''imagesPattern'' Bascule Compensé_faisc GCP=[CTA.xml,1,CIA.xml,0.5] AllFree=1 SigmaTieP=0.2

Ajustement par la méthode des faisceaux avec prise en compte des mesures terrain. Cette méthode permet de s'affranchir (ou de réduire) des dérives éventuelles en adaptant les orientations internes et externes aux contraintes terrain. Il est possible de raffiner cette méthode en jouant sur le paramètre SigmaTieP.

mm3d GCPBascule ''imagesPattern'' Bascule Compensé_polyn CTA.xml CIA.xml PatNLD=''.*'' NLDegZ=[1,X,Y,X2]

Ajustement quadratique des orientations en calculant une correction polynomiale. Il est possible de jouer sur le polynôme en spécifiant dans la balise NLDegZ (fonctionne aussi avec X et Y) une combinaison de tags parmi : 1, X, Y, XY, X2, Y2

C

ONTRÔLEDES ORIENTATIONS

mm3d GCPCtrl ''imagesPattern'' Compensé_faisc CTC.xml CIC.xml mm3d GCPCtrl ''imagesPattern'' Compensé_polyn CTC.xml CIC.xml On contrôle à partir des points terrain non utilisés pour l'ajustement quelle méthode permet d'obtenir les meilleures orientations.

CTC.xml = coordonnées terrain des points de contrôle CIC.xml = coordonnées image des points de contrôle

S

ÉLECTION DE LA ZONE D

'

INTÉRÊT SUR UN TABLEAU D

ASSEMBLAGE

mm3d Tarama ''imagesPattern'' Compensé mm3d SaisieMasq TA/TA_LeChantier.tif

Création d'un tableau d'assemblage sur lequel on trace un masque sur la zone d'intérêt. L'option Gama=2 dans SasieMasq peut être utile pour améliorer le contraste et avoir une vision plus claire.

C

ALCUL DE CORRÉLATION DENSE

,

ORTHOPHOTOGRAPHIE ET NUAGE DE POINTSCOLORÉ

mm3d Malt Ortho ''imagesPattern'' Compensé

Malt est l'outil de corrélation dense. Des résultats temporaires peuvent être la source de nombreux bugs. En cas de doute, supprimer (ou déplacer) tous les dossiers autres que les orientations compensées et le tableau d'assemblage (s'assurer qu'il correspond bien aux orientations utilisées), et relancer la commande.

mm3d Tawny Ortho-MEC-Malt/

Mosaïquage des orthophotographies individuelles. Le format d'image tif est limité en taille, et les orthophotographies créées seront probablement découpées en tuiles.

Exemple : Ortho-Eg-Test-Redr.tif → fichier de quelques centaines d'octets permettant d'organiser les tuiles

Ortho-Eg-Test-Redr_Tile_0_0.tif tuile bas gauche (ex→ : 668 Mo) Ortho-Eg-Test-Redr_Tile_1_0.tif tuile bas centre→

Ortho-Eg-Test-Redr_Tile_2_0.tif tuile bas droite→

mm3d Nuage2Ply MEC-Malt/Nuage*9.xml Attr=Orth-MEC-Malt/Ortho-Eg-Test-Redr.tif

Nuage2Ply est l'outil permettant d'interpoler la carte de profondeur afin d'en produire un nuage de points géoréférencé. En utilisant l'orthophotographie comme attribut, chaque point du nuage sera coloré à partir de l'orthophotographie.

Il est possible que certains résultats soient biaisés en cas d'utilisation de coordonnées Lambert non tronquées. L'option 64B=true permet alors d'enregistrer les valeurs en évitant les effets d'arrondi, mais les logiciels de manipulation de nuages de points devront être compatibles à ce format.

ANNEXE 3

REPRODUCTION D'UNE ACQUISITION TYPE AVEC

CONNAISSANCE DES ORIENTATIONS EXTERNES

Participants : V. Tournadre, J. Beilin (ENSG), J. Cali (ESGT) Dates : du 30 septembre 2013 au 3 octobre 2013

B

UT ET INTÉRÊTDE L

'

OPÉRATION

Reproduire une acquisition linéaire en faisant glisser un appareil photographique sur un rail rectiligne, en mesurant les déplacements entre chaque sommet de prise de vue à l'aide d'un interféromètre (précision : 0,5 µm + 1ppm).

Analyser la précision du calcul d'aérotriangulation à travers une comparaison entre les données relevées, et celles calculées par ajustement des faisceaux.

M

ATÉRIEL

• Leica TS30 (précision angulaire : 2,42 . 10-6 radians, précision distances : 0,6mm + 1ppm)

• Leica TCA 2003 (précision angulaire : 2,42 . 10-6 radians, précision

distances : 1mm + 1ppm)

• 7 trépieds lourds (fabrication IGN) • Prismes GPH1P

• Sony RX1 (35mm f/2.0)

• Olympus OM-D EM-5 (14-42mm f/3.5-5.6)

• Interféromètre Renishaw XL-80 (précision mesure de déplacement : 1 µm + 0,05 ppm, soit 3,5 µm sur 50m)

P

ROCÉDURE

Nécessité de texturer les murs blancs pour que les algorithmes de détection de points homologues soient efficaces.

Nécessité de mesurer les cibles avec une précision de 0,5 mm mise en place de→ Illustration 2: Appareil photo prêt à glisser sur le rail. Les éléments jaunes

permettent d'ajouter de la hauteur (25cm), et ainsi d'acquérir plusieurs

10 stations sur piliers/trépieds lourds, cibles visées en double retournement (8 à 14 visées sur chacune d'elles).

P

RISE DE VUE

Photographies prises en faisant glisser un appareil sur un chariot le long d'un rail. En ajoutant des éléments verticaux sur le chariot, quatre axes de prises de vue ont ainsi pu être acquis.

L'interféromètre permettant des mesures de déplacement, nous disposons pour chaque axe des distances relatives entre les sommets de prise de vue, avec une précision de quelques microns. Les distances entre des sommets d'axe différents ne peuvent pas être mesurés avec cette méthode.

R

ÉSULTATS

Illustration 3: Avec l'ancienne version du calcul des orientations, les modèles Fisheyes donnent les meilleurs résultats avec une focale de 35mm. Cela a été

corrigé en raffinant le critère de convergence des modèles standards

0 0,2 0,4 0,6 0,8 1

1,2 Influence du modèle de calibration sur la courbure de bande

NoCalInit (RDLXTD) FRASER FRSBSC RDLBSC RDLSTD RDLXTD FE_EquiSolBasic FEBasic FEEqui

Clichés séparés de 75cm, alignés sur un rail

C o u rb u re (d ist a n ce cl ich é -ra il)

Illustration 4: Le polynôme de distorsion calculé ne semble pas optimal. Lorsqu'on manipule ses valeurs, on s'aperçoit que la courbure résultante peut être minimisée.

0 0,05 0,1 0,15 0,2 0,25 0,3

Evolution de la courbure de bande

Variation des valeurs du polynome de distortion

C o u rb u re (d ist a n ce cl ich é -ra il)

Illustration 5: Ajustement des faisceaux avec mesures terrain. Le coefficient « SigmaTieP » (k présenté §5.3) n'est pas optimal par défaut.

ANNEXE 4