{"id":3693,"date":"2021-03-15T14:50:32","date_gmt":"2021-03-15T13:50:32","guid":{"rendered":"http:\/\/www.archeo3d.net\/?page_id=3693"},"modified":"2021-03-27T23:38:32","modified_gmt":"2021-03-27T22:38:32","slug":"photogrammetrie-avec-meshroom","status":"publish","type":"page","link":"https:\/\/www.archeo3d.net\/?page_id=3693","title":{"rendered":"Photogramm\u00e9trie avec Meshroom"},"content":{"rendered":"\n<p>Ce tutoriel pr\u00e9sente les diff\u00e9rentes \u00e9tapes permettant de produire des mod\u00e8les photogramm\u00e9triques de fragments statuaires \u00e0 l&rsquo;aide de <strong><a rel=\"noreferrer noopener\" href=\"https:\/\/alicevision.org\/\" target=\"_blank\">Meshroom<\/a><\/strong>. Pour l&rsquo;exemple, je m&rsquo;appuie ici sur <a rel=\"noreferrer noopener\" href=\"http:\/\/www.archeo3d.net\/?p=3274\" target=\"_blank\">une captation photographique r\u00e9alis\u00e9e en 2019 dans les r\u00e9serves du Mus\u00e9e arch\u00e9ologique de Delphes<\/a>, dans le cadre d&rsquo;une mission de num\u00e9risation 3D associant l\u2019<a rel=\"noreferrer noopener\" href=\"http:\/\/www.efa.gr\" target=\"_blank\">\u00c9cole fran\u00e7aise d&rsquo;Ath\u00e8nes<\/a> et l&rsquo;\u00e9quipe \u00ab\u00a0<a rel=\"noreferrer noopener\" href=\"http:\/\/www.arscan.fr\/grec-systemes-information\/\" target=\"_blank\">Arch\u00e9ologie du monde grec et syst\u00e8mes d&rsquo;information<\/a>\u00a0\u00bb (<a rel=\"noreferrer noopener\" href=\"http:\/\/www.arscan.fr\/\" target=\"_blank\">UMR 7041 ArScAn<\/a>) dirig\u00e9e par Ph. Jockey, \u00e0 laquelle j&rsquo;ai eu le plaisir de participer.<\/p>\n\n\n\n<p>Utilisateur patent\u00e9 de <strong><a rel=\"noreferrer noopener\" href=\"https:\/\/www.capturingreality.com\/\" target=\"_blank\">Reality Capture<\/a><\/strong>, que j&rsquo;ai utilis\u00e9 en l&rsquo;occurrence pour num\u00e9riser certains \u00e9l\u00e9ments de cette collection, je souhaitais disposer d&rsquo;une alternative pour permettre aux \u00e9tudiants de produire eux-m\u00eame les mod\u00e8les 3D sans d\u00e9pendre de l&rsquo;\u00e9ventuelle disponibilit\u00e9 de licences de logiciels tels que <strong>Metashape <\/strong>ou <strong>Reality Capture<\/strong>.  <\/p>\n\n\n\n<p>Depuis de nombreuses ann\u00e9es, je suis donc avec attention l&rsquo;\u00e9volution des diff\u00e9rentes solutions photogramm\u00e9triques disponibles gratuitement ou en <em>open source<\/em>, et, en particulier <strong>Meshroom<\/strong>, qui semblait particuli\u00e8rement prometteur. Toutefois, l&rsquo;absence de fonctionnalit\u00e9s de mise \u00e0 l&rsquo;\u00e9chelle par cible cod\u00e9e dans les versions ex\u00e9cutables pr\u00e9compil\u00e9es r\u00e9duisait jusqu&rsquo;\u00e0 r\u00e9cemment la pertinence de son utilisation dans le cadre des travaux de l&rsquo;\u00e9quipe. La version 2021 offre d\u00e9sormais cette possibilit\u00e9, et il para\u00eet utile de partager ici la m\u00e9thode mise en place dans le cadre de ce projet.<\/p>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2>Le r\u00e9f\u00e9rentiel g\u00e9om\u00e9trique<\/h2>\n\n\n\n<p>Initialement, afin d&rsquo;\u00eatre en mesure de traiter les captations photographiques sans d\u00e9pendre d&rsquo;un logiciel photogramm\u00e9trique sp\u00e9cifique, <a rel=\"noreferrer noopener\" href=\"http:\/\/www.archeo3d.net\/?page_id=3810\" target=\"_blank\"><strong>des plateaux tournants \u00ab\u00a0universels\u00a0\u00bb<\/strong><\/a> offrant plusieurs syst\u00e8mes de cibles cod\u00e9es ont \u00e9t\u00e9 d\u00e9velopp\u00e9s et sont constitu\u00e9s des \u00e9l\u00e9ments suivants :<\/p>\n\n\n\n<ul><li>Un cadran p\u00e9riph\u00e9rique portant l&rsquo;indication des degr\u00e9s ;<\/li><li>Les cibles en arc de cercles pouvant \u00eatre reconnues par <strong>Metashape<\/strong> et par <strong>Reality Capture<\/strong>;<\/li><li>Les cibles carr\u00e9es de type QR code utilisables par <strong>Reality Capture<\/strong>;<\/li><li>Les cibles en cercles concentriques (<code>CCTag3<\/code>) utilis\u00e9es par <strong>Meshroom<\/strong>.<\/li><li>enfin, des quadrillages num\u00e9rot\u00e9s permettent de proc\u00e9der manuellement aux mises \u00e0 l&rsquo;\u00e9chelle, dans l&rsquo;\u00e9ventualit\u00e9 o\u00f9 les trois premiers syst\u00e8mes ne seraient pas ou plus pris en charge.<\/li><\/ul>\n\n\n\n<p>Ces quatre syst\u00e8mes se partagent donc la surface du disque et peuvent \u00eatre utilis\u00e9s individuellement ou simultan\u00e9ment, moyennant quelques conversions de coordonn\u00e9es 2D.<\/p>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-attachment-id=\"3722\" data-permalink=\"https:\/\/www.archeo3d.net\/?attachment_id=3722\" data-orig-file=\"https:\/\/www.archeo3d.net\/wp-content\/uploads\/27cm_20190516_PRINT.png\" data-orig-size=\"1200,873\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Plateau de prise de vue avec les diff\u00e9rents syst\u00e8mes de cibles\" data-image-description=\"&lt;p&gt;Plateau de prise de vue avec les diff\u00e9rents syst\u00e8mes de cibles&lt;\/p&gt;\n\" data-medium-file=\"https:\/\/www.archeo3d.net\/wp-content\/uploads\/27cm_20190516_PRINT-300x218.png\" data-large-file=\"https:\/\/www.archeo3d.net\/wp-content\/uploads\/27cm_20190516_PRINT-1024x745.png\" loading=\"lazy\" width=\"1024\" height=\"745\" src=\"http:\/\/www.archeo3d.net\/wp-content\/uploads\/27cm_20190516_PRINT-1024x745.png\" alt=\"Plateau de prise de vue avec les diff\u00e9rents syst\u00e8mes de cibles\" class=\"wp-image-3722\" srcset=\"https:\/\/www.archeo3d.net\/wp-content\/uploads\/27cm_20190516_PRINT-1024x745.png 1024w, https:\/\/www.archeo3d.net\/wp-content\/uploads\/27cm_20190516_PRINT-300x218.png 300w, https:\/\/www.archeo3d.net\/wp-content\/uploads\/27cm_20190516_PRINT-768x559.png 768w, https:\/\/www.archeo3d.net\/wp-content\/uploads\/27cm_20190516_PRINT.png 1200w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption>Plateau de prise de vue avec les diff\u00e9rents syst\u00e8mes de cibles<\/figcaption><\/figure>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2>La prise de vue<\/h2>\n\n\n\n<p>Pour obtenir une captation compl\u00e8te et homog\u00e8ne de la plupart des fragments, il s&rsquo;est av\u00e9r\u00e9 suffisant de photographier l&rsquo;objet en le faisant reposer successivement sur au moins deux de ses faces principales, chacune de ces orientations \u00e9tant document\u00e9e par des prises de vue observant des variations angulaires horizontale (rotation de 15\u00b0 du plateau) et verticale (3 hauteurs\/inclinaisons diff\u00e9rentes de l&rsquo;appareil). Au final nous obtenons 6 passes de 24 \u00e0 25 photos, soient environ 75 photos par face et 150 pour l&rsquo;objet complet. Cette quantit\u00e9 tout \u00e0 fait raisonnable de photos rend possible leur traitement sur un PC disposant d&rsquo;une configuration mat\u00e9rielle relativement commune, mais \u00e9tant de pr\u00e9f\u00e9rence \u00e9quip\u00e9 d&rsquo;une carte graphique avec processeur <strong>nVidia<\/strong>.<\/p>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-attachment-id=\"3799\" data-permalink=\"https:\/\/www.archeo3d.net\/?attachment_id=3799\" data-orig-file=\"https:\/\/www.archeo3d.net\/wp-content\/uploads\/photos.png\" data-orig-size=\"2186,1244\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Collection de photos\" data-image-description=\"&lt;p&gt;Collection de photos&lt;\/p&gt;\n\" data-medium-file=\"https:\/\/www.archeo3d.net\/wp-content\/uploads\/photos-300x171.png\" data-large-file=\"https:\/\/www.archeo3d.net\/wp-content\/uploads\/photos-1024x583.png\" loading=\"lazy\" width=\"1024\" height=\"583\" src=\"http:\/\/www.archeo3d.net\/wp-content\/uploads\/photos-1024x583.png\" alt=\"Collection de photos\" class=\"wp-image-3799\" srcset=\"https:\/\/www.archeo3d.net\/wp-content\/uploads\/photos-1024x583.png 1024w, https:\/\/www.archeo3d.net\/wp-content\/uploads\/photos-300x171.png 300w, https:\/\/www.archeo3d.net\/wp-content\/uploads\/photos-768x437.png 768w, https:\/\/www.archeo3d.net\/wp-content\/uploads\/photos-1536x874.png 1536w, https:\/\/www.archeo3d.net\/wp-content\/uploads\/photos-2048x1165.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption>Collection de photos. Clich\u00e9s CNRS UMR 7041 ArScAn. Tholos, fragment, Delphes, Mus\u00e9e, inv. 4313, 1 (in\u00e9dit &#8211; EFA\/DR). Reproduction interdite.<\/figcaption><\/figure>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2>Production d&rsquo;une sc\u00e8ne de r\u00e9f\u00e9rence<\/h2>\n\n\n\n<p>La premi\u00e8re \u00e9tape consiste \u00e0 d\u00e9tecter les cibles cod\u00e9es du plateau pour pouvoir correctement positionner et mettre \u00e0 l&rsquo;\u00e9chelle le mod\u00e8le. Comme les fragments ont \u00e9t\u00e9 en grande partie photographi\u00e9s \u00ab\u00a0recto verso\u00a0\u00bb, les deux faces reposent successivement sur le m\u00eame r\u00e9f\u00e9rentiel. Proc\u00e9der \u00e0 la d\u00e9tection des cibles sur l&rsquo;int\u00e9gralit\u00e9 des photos n&rsquo;aurait donc pas de sens et g\u00e9n\u00e9rerait inutilement des erreurs, une m\u00eame cible pouvant \u00eatre rep\u00e9r\u00e9e au moins \u00e0 deux endroits diff\u00e9rents relativement au fragment. Il faut donc choisir de traiter arbitrairement une face, d\u00e9tecter les cibles cod\u00e9es dans la s\u00e9rie de photos concern\u00e9e, leur assigner les coordonn\u00e9es 3D en x, y, z puis cr\u00e9er une reconstruction partielle de l&rsquo;objet int\u00e9grant les positions des prises de vues d\u00e9duites et correctement r\u00e9f\u00e9renc\u00e9es dans l&rsquo;espace. Ces positions seront conserv\u00e9es et serviront de r\u00e9f\u00e9rence lorsque l&rsquo;ensemble des photos de l&rsquo;objet sera trait\u00e9.<\/p>\n\n\n\n<p>Pour cette \u00e9tape, nous cr\u00e9ons donc, dans le dossier de l&rsquo;objet, un premier fichier <strong>Meshroom<\/strong> et importons les photos prises sur une seule face.<\/p>\n\n\n\n<p>Dans le <strong>Graph Editor<\/strong>, nous pouvons supprimer la liaison entre le n\u0153ud <strong>StructureFromMotion<\/strong> et <strong>PrepareDenseScene<\/strong> (clic droit, puis <code>remove<\/code>), car nous n&rsquo;aurons pas besoin de mener le calcul jusqu&rsquo;\u00e0 la cr\u00e9ation du mod\u00e8le 3D textur\u00e9.<\/p>\n\n\n\n<p>Une fois les photos import\u00e9es et reconnues, il faut imp\u00e9rativement activer, dans les attributs du n\u0153ud <strong>FeatureExtraction<\/strong>, les cases <code>sift<\/code> et <code>cctag3<\/code>. Nous souhaitons ici d\u00e9tecter les cibles cod\u00e9es <code>CCTag3<\/code> (cercles concentriques) en plus des descripteurs <code>sift<\/code> utilis\u00e9s pour la mise en correspondance des photos. Lorsque l&rsquo;on se rend sur les autres n\u0153uds en aval, cette case est \u00e9galement coch\u00e9e par d\u00e9faut. Il faut absolument s&rsquo;assurer que cela soit bien le cas.<\/p>\n\n\n\n<p>On peut lancer le calcul du pipeline (bouton <code>start<\/code> en haut, ou clic-droit sur le n\u0153ud <strong>StructureFromMotion<\/strong>, et <code>compute<\/code>).<\/p>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-attachment-id=\"3709\" data-permalink=\"https:\/\/www.archeo3d.net\/?attachment_id=3709\" data-orig-file=\"https:\/\/www.archeo3d.net\/wp-content\/uploads\/alignement_faceA_v2.png\" data-orig-size=\"1920,1080\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Meshroom alignment face A\" data-image-description=\"&lt;p&gt;Meshroom alignment face A&lt;\/p&gt;\n\" data-medium-file=\"https:\/\/www.archeo3d.net\/wp-content\/uploads\/alignement_faceA_v2-300x169.png\" data-large-file=\"https:\/\/www.archeo3d.net\/wp-content\/uploads\/alignement_faceA_v2-1024x576.png\" loading=\"lazy\" width=\"1920\" height=\"1080\" src=\"http:\/\/www.archeo3d.net\/wp-content\/uploads\/alignement_faceA_v2.png\" alt=\"Meshroom alignment face A\" class=\"wp-image-3709\" srcset=\"https:\/\/www.archeo3d.net\/wp-content\/uploads\/alignement_faceA_v2.png 1920w, https:\/\/www.archeo3d.net\/wp-content\/uploads\/alignement_faceA_v2-300x169.png 300w, https:\/\/www.archeo3d.net\/wp-content\/uploads\/alignement_faceA_v2-1024x576.png 1024w, https:\/\/www.archeo3d.net\/wp-content\/uploads\/alignement_faceA_v2-768x432.png 768w, https:\/\/www.archeo3d.net\/wp-content\/uploads\/alignement_faceA_v2-1536x864.png 1536w\" sizes=\"(max-width: 1920px) 100vw, 1920px\" \/><figcaption>Meshroom alignment face A. Clich\u00e9s CNRS UMR 7041 ArScAn. Tholos, fragment, Delphes, Mus\u00e9e, inv. 4313, 1 (in\u00e9dit &#8211; EFA\/DR). Reproduction interdite.<\/figcaption><\/figure>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>A la fin du calcul, on peut double-cliquer sur le n\u0153ud <strong>StructureFromMotion<\/strong>; le rendu affichera dans le <strong>3D Viewer<\/strong> le nuage de point contenant les points d&rsquo;appui ainsi que les positions des prises de vue. L&rsquo;orientation et l&rsquo;\u00e9chelle de ce premier calcul sont compl\u00e9tement empiriques, puisqu&rsquo;\u00e0 ce stade le logiciel n&rsquo;a aucun moyen de connaitre le r\u00e9f\u00e9rentiel g\u00e9om\u00e9trique des photos. Dans l&rsquo;<strong>Image Viewer<\/strong>, on peut activer l&rsquo;affichage des <code>features<\/code> extraits des photos (clic sur les trois points \u00e0 c\u00f4t\u00e9 de <code>HDR<\/code>). Les \u00e9lements <code>sift<\/code> correspondent aux points d&rsquo;appui; les <code>CCTag3<\/code> sont normalement correctement positionn\u00e9s au centre des cibles cern\u00e9es.<\/p>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2>Mise \u00e0 l&rsquo;\u00e9chelle : SfMTransform<\/h2>\n\n\n\n<p>Une fois cette premi\u00e8re \u00e9tape pass\u00e9e, il faut ajouter un n\u0153ud <strong>SfMTransform<\/strong> \u00e0 la sortie <code>SfMData<\/code> du n\u0153ud <strong>StructureFromMotion<\/strong> en y connectant l&rsquo;entr\u00e9e <code>Input<\/code> (clic-droit dans le Graph Editor pour avoir acc\u00e8s \u00e0 la liste des n\u0153uds, rubrique &lsquo;Utils&rsquo;).<\/p>\n\n\n\n<p>Dans l&rsquo;onglet &lsquo;Attributes&rsquo; du n\u0153ud, pr\u00e9ciser les r\u00e9glages suivants et conserver les autres options par d\u00e9faut :<\/p>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>champ<\/th><th>valeur<\/th><\/tr><\/thead><tbody><tr><td>Transformation Method<\/td><td>from_markers<\/td><\/tr><tr><td>Landmarks Describer Types<\/td><td>cctag3 (ne pas cocher sift ici!)<\/td><\/tr><tr><td>Markers<\/td><td>cliquer sur [+] pour cr\u00e9er autant de cible que n\u00e9cessaire<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Chaque marker, ou cible, doit \u00eatre assign\u00e9 et param\u00e9tr\u00e9 en cliquant sur le [+]. Dans notre cas, il y en a huit. Le logiciel ne permet pas \u00e0 ce jour de leur assigner automatique le bon identifiant, il faut donc le faire manuellement ou en copiant collant les valeurs dans les donn\u00e9es du n\u0153ud.<\/p>\n\n\n\n<p>Par ailleurs, l&rsquo;identification des cibles cod\u00e9es a \u00e9volu\u00e9 par rapport aux premi\u00e8res versions du logiciel, il faut donc observer un d\u00e9calage dans la num\u00e9rotation, la premi\u00e8re cible, autrefois appel\u00e9e 001, est d\u00e9sormais la cible 0, la cible 002 = 1; etc. Ci-dessous le tableau des coordonn\u00e9es 3D de ces cibles :<\/p>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>ancien nom<\/th><th>ID<\/th><th>X<\/th><th>Y<\/th><th>Z<\/th><\/tr><\/thead><tbody><tr><td>001<\/td><td>0<\/td><td>-4.3296<\/td><td>10.4525<\/td><td>0<\/td><\/tr><tr><td>002<\/td><td>1<\/td><td>3.0615<\/td><td>7.391<\/td><td>0<\/td><\/tr><tr><td>003<\/td><td>2<\/td><td>10.4525<\/td><td>4.3296<\/td><td>0<\/td><\/tr><tr><td>004<\/td><td>3<\/td><td>7.391<\/td><td>-3.0615<\/td><td>0<\/td><\/tr><tr><td>005<\/td><td>4<\/td><td>4.3296<\/td><td>-10.4525<\/td><td>0<\/td><\/tr><tr><td>006<\/td><td>5<\/td><td>-3.0615<\/td><td>-7.391<\/td><td>0<\/td><\/tr><tr><td>007<\/td><td>6<\/td><td>-10.4525<\/td><td>-4.3296<\/td><td>0<\/td><\/tr><tr><td>008<\/td><td>7<\/td><td>-7.391<\/td><td>3.0615<\/td><td>0<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Par convention, <strong>Meshroom<\/strong> utilise un syst\u00e8me de coordonn\u00e9es de type &lsquo;camera&rsquo; : les coordonn\u00e9es horizontales sont donn\u00e9es par les axes X et -Z, la hauteur \u00e9tant donn\u00e9e par l&rsquo;axe Y; dans les logiciels d&rsquo;\u00e9dition 3D, les coordonn\u00e9es horizontales en revanche sont donn\u00e9es par les axes X et Y, et la hauteur par l&rsquo;axe Z.<\/p>\n\n\n\n<p>Si l&rsquo;on adopte les coordonn\u00e9es fournies dans le tableau ci-dessus, l&rsquo;assiette donn\u00e9e par le plateau, l&rsquo;horizontale, croisera perpendiculairement la grille de l&rsquo;espace donn\u00e9 par Meshroom.<\/p>\n\n\n\n<p>Ici, pour les besoins de la d\u00e9monstration, il a \u00e9t\u00e9 pr\u00e9f\u00e9rable de faire correspondre l&rsquo;assiette du plateau \u00e0 la grille de la sc\u00e8ne 3D; les coordonn\u00e9es \u00e0 saisir donc \u00e9t\u00e9 adapt\u00e9es :<\/p>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>champ<\/th><th>valeur<\/th><\/tr><\/thead><tbody><tr><td>Marker<\/td><td>id = <strong>0<\/strong><\/td><\/tr><tr><td>Coord x<\/td><td>X = <strong>-4.3296<\/strong><\/td><\/tr><tr><td>Coord y<\/td><td>Z = <strong>0<\/strong><\/td><\/tr><tr><td>Coord z<\/td><td>-Y = <strong>-10.4525<\/strong><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Ci-dessous l&rsquo;extrait de la ligne de commande permettant de d\u00e9finir rapidement les cibles cod\u00e9es, exprim\u00e9es en centim\u00e8tre, avec l&rsquo;orientation de type <em>Meshroom<\/em> :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>--markers 0:-4.3296,0.0,-10.4525 1:3.0615,0.0,-7.391 2:10.4525,0.0,-4.3296 3:7.391,0.0,3.0615 4:4.3296,0.0,10.4525 5:-3.0615,0.0,7.391 6:-10<\/code><\/pre>\n\n\n\n<p>Ci-dessous, les param\u00e9trages attendus du n\u0153ud.<\/p>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-attachment-id=\"3711\" data-permalink=\"https:\/\/www.archeo3d.net\/?attachment_id=3711\" data-orig-file=\"https:\/\/www.archeo3d.net\/wp-content\/uploads\/attributes_SFMTransform.png\" data-orig-size=\"828,748\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"node SfMTransform\" data-image-description=\"&lt;p&gt;node SfMTransform&lt;\/p&gt;\n\" data-medium-file=\"https:\/\/www.archeo3d.net\/wp-content\/uploads\/attributes_SFMTransform-300x271.png\" data-large-file=\"https:\/\/www.archeo3d.net\/wp-content\/uploads\/attributes_SFMTransform.png\" loading=\"lazy\" width=\"828\" height=\"748\" src=\"http:\/\/www.archeo3d.net\/wp-content\/uploads\/attributes_SFMTransform.png\" alt=\"node SfMTransform\" class=\"wp-image-3711\" srcset=\"https:\/\/www.archeo3d.net\/wp-content\/uploads\/attributes_SFMTransform.png 828w, https:\/\/www.archeo3d.net\/wp-content\/uploads\/attributes_SFMTransform-300x271.png 300w, https:\/\/www.archeo3d.net\/wp-content\/uploads\/attributes_SFMTransform-768x694.png 768w\" sizes=\"(max-width: 828px) 100vw, 828px\" \/><figcaption>node SfMTransform<\/figcaption><\/figure>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Une fois que ce n\u0153ud a \u00e9t\u00e9 correctement param\u00e9tr\u00e9, il ne reste plus qu&rsquo;\u00e0 le faire calculer (clic-droit puis <code>compute<\/code>).<\/p>\n\n\n\n<p>Un double-clic permet ensuite d&rsquo;afficher le r\u00e9sultat dans le <strong>3D Viewer<\/strong> : la reconstruction en nuage de points \u00e9pars et le positionnement des prises de vue sont bien align\u00e9s dans la sc\u00e8ne 3D.<\/p>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-attachment-id=\"3712\" data-permalink=\"https:\/\/www.archeo3d.net\/?attachment_id=3712\" data-orig-file=\"https:\/\/www.archeo3d.net\/wp-content\/uploads\/mise_echelle_faceA.png\" data-orig-size=\"1920,1080\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Mise \u00e0 l&amp;rsquo;echelle de la face A\" data-image-description=\"&lt;p&gt;Mise \u00e0 l&amp;rsquo;echelle de la face A&lt;\/p&gt;\n\" data-medium-file=\"https:\/\/www.archeo3d.net\/wp-content\/uploads\/mise_echelle_faceA-300x169.png\" data-large-file=\"https:\/\/www.archeo3d.net\/wp-content\/uploads\/mise_echelle_faceA-1024x576.png\" loading=\"lazy\" width=\"1920\" height=\"1080\" src=\"http:\/\/www.archeo3d.net\/wp-content\/uploads\/mise_echelle_faceA.png\" alt=\"Mise \u00e0 l'echelle de la face A\" class=\"wp-image-3712\" srcset=\"https:\/\/www.archeo3d.net\/wp-content\/uploads\/mise_echelle_faceA.png 1920w, https:\/\/www.archeo3d.net\/wp-content\/uploads\/mise_echelle_faceA-300x169.png 300w, https:\/\/www.archeo3d.net\/wp-content\/uploads\/mise_echelle_faceA-1024x576.png 1024w, https:\/\/www.archeo3d.net\/wp-content\/uploads\/mise_echelle_faceA-768x432.png 768w, https:\/\/www.archeo3d.net\/wp-content\/uploads\/mise_echelle_faceA-1536x864.png 1536w\" sizes=\"(max-width: 1920px) 100vw, 1920px\" \/><figcaption>Mise \u00e0 l\u2019\u00e9chelle de la face A. Clich\u00e9s CNRS UMR 7041 ArScAn. Tholos, fragment, Delphes, Mus\u00e9e, inv. 4313, 1 (in\u00e9dit &#8211; EFA\/DR). Reproduction interdite.<\/figcaption><\/figure>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Avant de sauvegarder et de refermer ce fichier initial, on prendra soin de copier-coller dans un fichier texte temporaire l&rsquo;adresse menant aux positions calcul\u00e9es de ces cam\u00e9ras, \u00e0 trouver dans le champ <code>Output Poses<\/code>, se terminant par le fichier <code>cameras.sfm<\/code> ; ce dernier permettra d&rsquo;aligner ult\u00e9rieurement la reconstruction compl\u00e8te de l&rsquo;objet.<\/p>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2>Production de l&rsquo;objet entier<\/h2>\n\n\n\n<p>Une fois la sc\u00e8ne de r\u00e9f\u00e9rence obtenue, on peut cr\u00e9er un tout nouveau fichier Meshroom (*.mg) et importer l&rsquo;int\u00e9gralit\u00e9 des photos.<\/p>\n\n\n\n<p>Avant de lancer le calcul, il va falloir proc\u00e9der \u00e0 quelques ajustements dans le pipeline propos\u00e9 par d\u00e9faut lors de la cr\u00e9ation du fichier.<\/p>\n\n\n\n<ul><li>dans un premier temps, il faut ajouter un n\u0153ud <strong>SfMAlignement<\/strong> entre les n\u0153uds <strong>StructureFromMotion<\/strong> et <strong>PrepareDenseScene<\/strong>;<\/li><li><code>SfMData<\/code> de <strong>StructureFromMotion<\/strong> va dans <code>Input<\/code> de <strong>SfMAlignement<\/strong> ;<\/li><li><code>Output SfMData File<\/code> de <strong>SfMAlignement<\/strong> va dans <code>SfMData<\/code> de <strong>PrepareDenseScene<\/strong> ;<\/li><li>Dans les attributes du n\u0153ud <strong>SfMAlignement<\/strong>, il faut indiquer les param\u00e8tres suivants et laisser les autres par d\u00e9faut<\/li><\/ul>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>champ<\/th><th>valeur<\/th><\/tr><\/thead><tbody><tr><td>Reference<\/td><td>coller ici l&rsquo;adresse pr\u00e9cedemment sauvegard\u00e9e, se terminant par cameras.sfm<\/td><\/tr><tr><td>Alignement Method<\/td><td>from_cameras_viewid<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<ul><li>Dans les <em>attributes <\/em>du n\u0153ud <strong>DepthMap<\/strong>, il peut \u00eatre utile de passer le param\u00e8tre <code>Downscale<\/code> \u00e0 4 ou 8. Plus la valeur est grande, plus le calcul pourra \u00eatre rapide, au d\u00e9triment de la r\u00e9solution finale. Pour obtenir un r\u00e9sultat finalis\u00e9, il faudra par exemple rebasculer le param\u00e8tre \u00e0 2.<\/li><li>Dans les <em>attributes <\/em>du n\u0153ud <strong>MeshFiltering<\/strong>, il faut activer <code>Keep Only the Largest Mesh<\/code> pour supprimer les r\u00e9sidus du plateau, et r\u00e9duire les <code>Smoothing Iterations<\/code> pour ne pas trop perdre les aspects de surface de la pierre;<\/li><li>Dans les <em>attributes <\/em>du n\u0153ud <strong>Texturing<\/strong>, il faudra id\u00e9alement mettre le <code>Texture Downscale<\/code> \u00e0 1 ou 2 dans la version finale du mod\u00e8le.<\/li><\/ul>\n\n\n\n<p>Une fois ces param\u00e9trages r\u00e9alis\u00e9s, on pourra lancer un calcul de l&rsquo;ensemble du pipeline. Il peut \u00eatre pr\u00e9f\u00e9rable de r\u00e9aliser un calcul interm\u00e9diaire en rompant la liaison entre les n\u0153uds <strong>SfMAlignment<\/strong> et <strong>PrepareDenseScene<\/strong>, pour s&rsquo;assurer dans un premier temps que la mise en correspondance de toutes les photos ainsi que la mise \u00e0 l&rsquo;\u00e9chelle de cette nouvelle sc\u00e8ne ont fonctionn\u00e9.<\/p>\n\n\n\n<p>Ci-dessous, les captations des deux faces de l&rsquo;objet sont bien assembl\u00e9es, le plateau est bien pr\u00e9sent deux fois dans le nuage de point \u00e9pars et ne semble pas avoir une incidence sur les calculs.<\/p>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-attachment-id=\"3713\" data-permalink=\"https:\/\/www.archeo3d.net\/?attachment_id=3713\" data-orig-file=\"https:\/\/www.archeo3d.net\/wp-content\/uploads\/SFMAlignement_ALL.png\" data-orig-size=\"1920,1080\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"SfMAlignement pour l&amp;rsquo;objet entier\" data-image-description=\"&lt;p&gt;SfMAlignement pour l&amp;rsquo;objet entier&lt;\/p&gt;\n\" data-medium-file=\"https:\/\/www.archeo3d.net\/wp-content\/uploads\/SFMAlignement_ALL-300x169.png\" data-large-file=\"https:\/\/www.archeo3d.net\/wp-content\/uploads\/SFMAlignement_ALL-1024x576.png\" loading=\"lazy\" width=\"1920\" height=\"1080\" src=\"http:\/\/www.archeo3d.net\/wp-content\/uploads\/SFMAlignement_ALL.png\" alt=\"SfMAlignement pour l'objet entier\" class=\"wp-image-3713\" srcset=\"https:\/\/www.archeo3d.net\/wp-content\/uploads\/SFMAlignement_ALL.png 1920w, https:\/\/www.archeo3d.net\/wp-content\/uploads\/SFMAlignement_ALL-300x169.png 300w, https:\/\/www.archeo3d.net\/wp-content\/uploads\/SFMAlignement_ALL-1024x576.png 1024w, https:\/\/www.archeo3d.net\/wp-content\/uploads\/SFMAlignement_ALL-768x432.png 768w, https:\/\/www.archeo3d.net\/wp-content\/uploads\/SFMAlignement_ALL-1536x864.png 1536w\" sizes=\"(max-width: 1920px) 100vw, 1920px\" \/><figcaption>SfMAlignement pour l&rsquo;objet entier. Clich\u00e9s CNRS UMR 7041 ArScAn. Tholos, fragment, Delphes, Mus\u00e9e, inv. 4313, 1 (in\u00e9dit &#8211; EFA\/DR). Reproduction interdite.<\/figcaption><\/figure>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Le pipeline, calcul\u00e9 dans son ensemble, produit au final un maillage textur\u00e9. Le fragment statuaire est bien isol\u00e9 et se trouve d\u00e9tach\u00e9 des quelques r\u00e9sidus provenant d&rsquo;\u00e9l\u00e9ments du plateau si le param\u00e8tre <code>Keep Only the Largest Mesh<\/code> du noeud <strong>MeshFiltering<\/strong> n&rsquo;a pas \u00e9t\u00e9 au pr\u00e9alable activ\u00e9 (ce qui est le cas dans la capture ci-dessous).<\/p>\n\n\n\n<p>Dans cette \u00e9ventualit\u00e9, il sera toujours possible d&rsquo;\u00e9diter le fichier final, au format obj (accompagn\u00e9 du fichier  mtl et des textures png) \u00e0 l&rsquo;aide des outils de <strong>Meshlab<\/strong> (s\u00e9lection du fragment avec l&rsquo;outil de s\u00e9lection de composant, inversion de la s\u00e9lection ,puis suppression des r\u00e9sidus).<\/p>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-attachment-id=\"3714\" data-permalink=\"https:\/\/www.archeo3d.net\/?attachment_id=3714\" data-orig-file=\"https:\/\/www.archeo3d.net\/wp-content\/uploads\/mesh.png\" data-orig-size=\"1920,1080\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Maillage final. Maillage final. Clich\u00e9 CNRS UMR 7041 ArScAn \/ avec l\u2019aimable autorisation de l\u2019\u00e9phorie des antiquit\u00e9s de Phocide et du Mus\u00e9e de Delphes. Reproduction interdite.\" data-image-description=\"&lt;p&gt;Maillage final. Clich\u00e9 CNRS UMR 7041 ArScAn \/ avec l\u2019aimable autorisation de l\u2019\u00e9phorie des antiquit\u00e9s de Phocide et du Mus\u00e9e de Delphes. Reproduction interdite. &lt;\/p&gt;\n\" data-medium-file=\"https:\/\/www.archeo3d.net\/wp-content\/uploads\/mesh-300x169.png\" data-large-file=\"https:\/\/www.archeo3d.net\/wp-content\/uploads\/mesh-1024x576.png\" loading=\"lazy\" width=\"1920\" height=\"1080\" src=\"http:\/\/www.archeo3d.net\/wp-content\/uploads\/mesh.png\" alt=\"Maillage final\" class=\"wp-image-3714\" srcset=\"https:\/\/www.archeo3d.net\/wp-content\/uploads\/mesh.png 1920w, https:\/\/www.archeo3d.net\/wp-content\/uploads\/mesh-300x169.png 300w, https:\/\/www.archeo3d.net\/wp-content\/uploads\/mesh-1024x576.png 1024w, https:\/\/www.archeo3d.net\/wp-content\/uploads\/mesh-768x432.png 768w, https:\/\/www.archeo3d.net\/wp-content\/uploads\/mesh-1536x864.png 1536w\" sizes=\"(max-width: 1920px) 100vw, 1920px\" \/><figcaption>Maillage final. Clich\u00e9s CNRS UMR 7041 ArScAn. Tholos, fragment, Delphes, Mus\u00e9e, inv. 4313, 1 (in\u00e9dit &#8211; EFA\/DR). Reproduction interdite.<\/figcaption><\/figure>\n\n\n\n<p>Au final, la qualit\u00e9 du maillage et des textures est tr\u00e8s satisfaisante, moyennant un temps de calcul relativement long (par rapport \u00e0 un logiciel comme <strong>Reality Capture<\/strong> par exemple) et des fichiers annexes nombreux et volumineux, n\u00e9cessaire contrepartie de l&rsquo;architecture ouverte et flexible du logiciel. <strong>Il faudrait en revanche pouvoir disposer d&rsquo;\u00e9l\u00e9ment de <em>monitoring <\/em>permettant d&rsquo;\u00e9valuer l&rsquo;erreur moyenne lors des op\u00e9rations de mise \u00e0 l&rsquo;\u00e9chelle.<\/strong> <\/p>\n\n\n\n<p>Compte tenu du mode de licence, ce logiciel gagnerait \u00e0 \u00eatre d\u00e9ploy\u00e9 sur les grilles de calculs de nos grands \u00e9quipements institutionnels &#8230; reste \u00e0 voir ce qu&rsquo;il peut donner sur des captations photographiques bien plus ambitieuses (en milliers de clich\u00e9s?)&#8230;<\/p>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2>Liens<\/h2>\n\n\n\n<p>En compl\u00e9ment, quelques liens :<\/p>\n\n\n\n<ul><li><a rel=\"noreferrer noopener\" href=\"https:\/\/meshroom-manual.readthedocs.io\/en\/latest\/tutorials\/tutorials.html\" target=\"_blank\">La page des tutoriaux dans le manuel officiel du logiciel<\/a> ;<\/li><li>Le <a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/alicevision\/meshroom\" target=\"_blank\">github de Meshroom<\/a>, avec notamment les \u00e9changes \u00e0 suivre dans les rubriques \u00ab\u00a0issues\u00a0\u00bb et \u00ab\u00a0discussions\u00a0\u00bb ; Voir notamment la page <a href=\"https:\/\/github.com\/alicevision\/meshroom\/wiki\/CCTAG-scaling\" target=\"_blank\" rel=\"noreferrer noopener\">CCTAG<\/a> du wiki et cette <a href=\"https:\/\/github.com\/alicevision\/meshroom\/issues\/1223\" target=\"_blank\" rel=\"noreferrer noopener\">discussion <\/a>; <\/li><li>La page consacr\u00e9e \u00e0 la cr\u00e9ation des <a rel=\"noreferrer noopener\" href=\"http:\/\/www.archeo3d.net\/?page_id=3810\" target=\"_blank\">supports avec cibles cod\u00e9es<\/a> ;<\/li><li>La page de pr\u00e9sentation de <a rel=\"noreferrer noopener\" href=\"http:\/\/www.archeo3d.net\/?p=3274\" target=\"_blank\">la mission de num\u00e9risation au mus\u00e9e de Delphes<\/a>.<\/li><\/ul>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p class=\"excerpt\">Ce tutoriel pr\u00e9sente les diff\u00e9rentes \u00e9tapes permettant de produire des mod\u00e8les photogramm\u00e9triques de fragments statuaires \u00e0 l&rsquo;aide de Meshroom. Pour l&rsquo;exemple, je m&rsquo;appuie ici sur une captation photographique r\u00e9alis\u00e9e en 2019 dans les r\u00e9serves du Mus\u00e9e arch\u00e9ologique de Delphes, dans le cadre d&rsquo;une mission de num\u00e9risation 3D associant l\u2019\u00c9cole fran\u00e7aise d&rsquo;Ath\u00e8nes et l&rsquo;\u00e9quipe \u00ab\u00a0Arch\u00e9ologie du monde grec et syst\u00e8mes d&rsquo;information\u00a0\u00bb&hellip; <a href=\"https:\/\/www.archeo3d.net\/?page_id=3693\">Read more &rarr;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":130,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"spay_email":""},"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/P9Yk8b-Xz","_links":{"self":[{"href":"https:\/\/www.archeo3d.net\/index.php?rest_route=\/wp\/v2\/pages\/3693"}],"collection":[{"href":"https:\/\/www.archeo3d.net\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.archeo3d.net\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.archeo3d.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.archeo3d.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3693"}],"version-history":[{"count":62,"href":"https:\/\/www.archeo3d.net\/index.php?rest_route=\/wp\/v2\/pages\/3693\/revisions"}],"predecessor-version":[{"id":3907,"href":"https:\/\/www.archeo3d.net\/index.php?rest_route=\/wp\/v2\/pages\/3693\/revisions\/3907"}],"up":[{"embeddable":true,"href":"https:\/\/www.archeo3d.net\/index.php?rest_route=\/wp\/v2\/pages\/130"}],"wp:attachment":[{"href":"https:\/\/www.archeo3d.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3693"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}