AperiCloud : Différence entre versions

De MicMac
Aller à : navigation, rechercher
(AperiCloud doesn't support 64 bits ply)
 
(101 révisions intermédiaires par 5 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
 +
[[Image:picto-liste.png|25px]] [[Command|List of commands]]
 
==Description==
 
==Description==
AperiCloud is used for generating a visualization of camera position and sparse 3D model.
+
AperiCloud is used for generating a visualization of and sparse 3D model and cameras position, computed by [[Tapas]] for example.
  
 
===Syntax===
 
===Syntax===
The global syntax for AperiCloud is <br>
+
The global syntax for AperiCloud is :
<code>mm3d AperiCloud Command UnNamedArgs NamedArgs</code>
+
<pre>mm3d AperiCloud FullName Orientation NamedArgs</pre>
{{#ev:youtube|?v=MQiD4HjhpAU}}
+
 
 +
===Results===
 +
AperiCloud, generate a sparse 3D cloud (".ply") with the position and orientation of each camera. If you don't use "Out" option, the file will be stored in your working directory at the name : <i>AperiCloud-Ori_Name.ply</i>. You can use MeshLab to visualize the file.<br>
 +
[[Image:01_Gravillonn_AO.jpg|x200px]]
 +
[[Image:Pierrerue2.png|x200px]]
 +
[[Image:Exercice_Fontaine1.png|x200px]]
 +
 
 +
===Workflow===
 +
AperiCloud is a tool dedicated to visualization of orientations. So you can use it every times you process a orientation. When you have processed the final orientation, you can define a 3D mask with the ".ply" file generated by AperiCloud (SaisieMasqQT).<br>
 +
[[Image:Picto-previous.png|20px]] Previous Command : [[Tapas]],[[GCPBascule]],[[Campari]]<br>
 +
[[Image:Picto-next.png|20px]] Next Command : [[SaisieMasqQT]].<br>
 +
<!--
 +
<div style="z-index:1;position:relative;">[[Image:Pipeline GI.png|x300px]]</div>
 +
<div style="background-color:green;width:19px;height:19px;left:477px;top:-94px;position:relative;border-radius:10px">
 +
</div>
 +
-->
  
 
===Help===  
 
===Help===  
You can access to the help by typing :<br>
+
You can access to the help by typing :
<br>
+
<pre>mm3d AperiCloud -help</pre>
<code>mm3d AperiCLoud -help</code> <br>
+
 
<br>
+
 
Mandatory unnamed args :
 
Mandatory unnamed args :
*<span style="font-family:times roman;"> ''string :: {Full name (Dir+Pattern)}''</span style>
+
*string :: {Full name (Dir+Pattern)}
*<span style="font-family:times roman;"> ''string :: {Orientation directory}''</span style>
+
*string :: {Orientation directory}
<br>
+
 
Named args :
 
Named args :
*<span style="font-family:times roman;">''[Name=ExpTxt] INT :: {Point in txt format ? (Def=false)}''</span style>
+
*[Name=ExpTxt] INT :: {Point in txt format ? (Def=false)}
*<span style="font-family:times roman;">''[Name=Out] string :: {Result (Def=AperiCloud.ply)}''</span style>
+
*[Name=Out] string :: {Result (Def=AperiCloud.ply)}
*<span style="font-family:times roman;">''[Name=Bin] INT :: {Ply in binary mode (Def=true)}''</span style>
+
*[Name=Bin] INT :: {Ply in binary mode (Def=true)}
*<span style="font-family:times roman;">''[Name=RGB] INT :: {Use RGB image to texturate points (Def=true)}''</span style>
+
*[Name=RGB] INT :: {Use RGB image to texturate points (Def=true)}
*<span style="font-family:times roman;">''[Name=SeuilEc] REAL :: {Max residual (Def=10)}''</span style>
+
*[Name=SeuilEc] REAL :: {Max residual (Def=10)}
*<span style="font-family:times roman;">''[Name=LimBsH] REAL :: {Limit ratio base to height (Def=1e-2)}''</span style>
+
*[Name=LimBsH] REAL :: {Limit ratio base to height (Def=1e-2)}
*<span style="font-family:times roman;">''[Name=WithPoints] bool :: {Do we add point cloud? (Def=true) }''</span style>
+
*[Name=WithPoints] bool :: {Do we add point cloud? (Def=true) }
*<span style="font-family:times roman;">''[Name=CalPerIm] bool :: {If a calibration per image was used (Def=false)}''</span style>
+
*[Name=CalPerIm] bool :: {If a calibration per image was used (Def=false)}
*<span style="font-family:times roman;">''[Name=Focs] Pt2dr :: {Interval of Focal}''</span style>
+
*[Name=Focs] Pt2dr :: {Interval of Focal}
*<span style="font-family:times roman;">''[Name=WithCam] bool :: {With Camera (Def=true)}''</span style>
+
*[Name=WithCam] bool :: {With Camera (Def=true)}
*<span style="font-family:times roman;">''[Name=ColCadre] Pt3di :: {Col of camera rect Def= 255 0 0 (Red)}''</span style>
+
*[Name=ColCadre] Pt3di :: {Col of camera rect Def= 255 0 0 (Red)}
*<span style="font-family:times roman;">''[Name=ColRay] Pt3di :: {Col of camera rect Def= 0 255 0 (Green)}''</span style>
+
*[Name=ColRay] Pt3di :: {Col of camera rect Def= 0 255 0 (Green)}
*<span style="font-family:times roman;">''[Name=SH] string :: {Set of Hom, Def="", give MasqFiltered for result of HomolFilterMasq}''</span style>
+
*[Name=SH] string :: {Set of Hom, Def="", give MasqFiltered for result of HomolFilterMasq}
  
 
===Example===
 
===Example===
mm3d AperiCloud «.*JPG » Out=MEP </code>
+
 
<br>
+
In example, you can launch this command in the Mur Saint Martin dataset :
 +
<pre>mm3d AperiCloud «.*JPG » Out=MEP </pre>
 +
 
 +
== Known limitations ==
 +
=== AperiCloud doesn't support 64 bits ply ===
 +
Use of AperiCloud with coordinates with many digits generates  models which seeems sliced, or very sparse, because this tool doesn't support 64 bits ply models.
 +
 
 +
Due to this limitations, it is recommended to use local or truncated coordinate. Or not to use  AperiCloud after georeferencement in a projected coordinates system.
 +
Look to [http://forum-micmac.forumprod.com/point-cloud-seems-sliced-and-very-sparse-after-coord-chgt-t1270.html this thread] for an example and further information.
 +
 
 +
For precision and accuracy reasons, it is anyways always recommended to work in a local system at least until just before the correlation step (after Campari), and use [[ChgSysCo]] to then get to the projected coordinate system.

Version actuelle en date du 22 mai 2018 à 10:21

Picto-liste.png List of commands

Description

AperiCloud is used for generating a visualization of and sparse 3D model and cameras position, computed by Tapas for example.

Syntax

The global syntax for AperiCloud is :

mm3d AperiCloud FullName Orientation NamedArgs

Results

AperiCloud, generate a sparse 3D cloud (".ply") with the position and orientation of each camera. If you don't use "Out" option, the file will be stored in your working directory at the name : AperiCloud-Ori_Name.ply. You can use MeshLab to visualize the file.
01 Gravillonn AO.jpg Pierrerue2.png Exercice Fontaine1.png

Workflow

AperiCloud is a tool dedicated to visualization of orientations. So you can use it every times you process a orientation. When you have processed the final orientation, you can define a 3D mask with the ".ply" file generated by AperiCloud (SaisieMasqQT).
Picto-previous.png Previous Command : Tapas,GCPBascule,Campari
Picto-next.png Next Command : SaisieMasqQT.

Help

You can access to the help by typing :

mm3d AperiCloud -help

Mandatory unnamed args :

  • string :: {Full name (Dir+Pattern)}
  • string :: {Orientation directory}

Named args :

  • [Name=ExpTxt] INT :: {Point in txt format ? (Def=false)}
  • [Name=Out] string :: {Result (Def=AperiCloud.ply)}
  • [Name=Bin] INT :: {Ply in binary mode (Def=true)}
  • [Name=RGB] INT :: {Use RGB image to texturate points (Def=true)}
  • [Name=SeuilEc] REAL :: {Max residual (Def=10)}
  • [Name=LimBsH] REAL :: {Limit ratio base to height (Def=1e-2)}
  • [Name=WithPoints] bool :: {Do we add point cloud? (Def=true) }
  • [Name=CalPerIm] bool :: {If a calibration per image was used (Def=false)}
  • [Name=Focs] Pt2dr :: {Interval of Focal}
  • [Name=WithCam] bool :: {With Camera (Def=true)}
  • [Name=ColCadre] Pt3di :: {Col of camera rect Def= 255 0 0 (Red)}
  • [Name=ColRay] Pt3di :: {Col of camera rect Def= 0 255 0 (Green)}
  • [Name=SH] string :: {Set of Hom, Def="", give MasqFiltered for result of HomolFilterMasq}

Example

In example, you can launch this command in the Mur Saint Martin dataset :

mm3d AperiCloud «.*JPG » Out=MEP 

Known limitations

AperiCloud doesn't support 64 bits ply

Use of AperiCloud with coordinates with many digits generates models which seeems sliced, or very sparse, because this tool doesn't support 64 bits ply models.

Due to this limitations, it is recommended to use local or truncated coordinate. Or not to use AperiCloud after georeferencement in a projected coordinates system. Look to this thread for an example and further information.

For precision and accuracy reasons, it is anyways always recommended to work in a local system at least until just before the correlation step (after Campari), and use ChgSysCo to then get to the projected coordinate system.