Tapas : Différence entre versions

De MicMac
Aller à : navigation, rechercher
(RadialBasic)
(ForCalib doc update)
 
(29 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==
 
Tapas is a tool offering most of the posssibilities of [[Apero]] for computing purely relative orientations
 
Tapas is a tool offering most of the posssibilities of [[Apero]] for computing purely relative orientations
  
 
===Syntax===
 
===Syntax===
The global syntax for Tapas is <br>
+
The global syntax for Tapas is  
<code>mm3d Tapas ModeCalib NamedArgs</code>
+
<pre>mm3d Tapas ModeCalib NamedArgs</pre>
===Allowed commands===
+
 
*RadialBasic
+
=== Allowed commands ===
*RadialExtended
+
This allowed commands, correspond to the distorsion model you want to use :
*Fraser
+
*<b>RadialBasic</b> : for Classic Lens
*FraserBasic
+
*<b>RadialStd</b> : for Classic Lens
*FishEyeEqui
+
*<b>RadialExtended</b> : Classic Lens with extra distorsion parameters.
*FE_EquiSolBasic
+
*<b>FraserBasic</b>
*Four
+
*<b>Fraser</b>
*AddFour
+
*<b>FishEyeEqui</b> : for FishEye Lens
*AddPolyDeg
+
*<b>FE_EquiSolBasic</b>
 +
* FishEyeBasic
 +
* FishEyeStereo
 +
*<b>Four</b>
 +
*<b>AddFour</b>
 +
*<b>AddPolyDeg</b>
 +
* Ebner
 +
* Brown
 +
* AutoCal
 +
* Figee
 +
* HemiEqui
 +
 
 +
==== Description ====
 +
 
 +
{| class="wikitable"
 +
|+ Description of the basic distortion models easily accessible in MicMac
 +
!scope=col|Command
 +
!scope=col|PPA/PPS
 +
!scope=col|Polynomial correction
 +
!scope=col|Decentric/Affine correction
 +
!scope=col|Number of parameters to estimate
 +
|-
 +
| <center><code>RadialBasic</code></center> || <center>Equals</center> || <center>r³, r⁵, r⁷</center> || <center>No</center> || <center>5</center>
 +
|-
 +
| <center><code>RadialStd</code></center> || <center>Different</center> || <center>r³, r⁵, r⁷</center> || <center>No</center> || <center>8</center>
 +
|-
 +
| <center><code>RadialExtended</code></center> || <center>Different</center> || <center>r³, r⁵, r⁷, r⁹, r¹¹</center> || <center>No</center> || <center>10</center>
 +
|-
 +
| <center><code>FraserBasic</code></center> || <center>Equals</center> || <center>r³, r⁵, r⁷</center> || <center>Yes</center> || <center>10</center>
 +
|-
 +
| <center><code>Fraser</code></center> || <center>Different</center> || <center>r³, r⁵, r⁷</center> || <center>Yes</center> || <center>12</center>
 +
|}
 +
Source : https://www.int-arch-photogramm-remote-sens-spatial-inf-sci.net/XL-3-W3/327/2015/isprsarchives-XL-3-W3-327-2015.pdf
 +
 
 +
===Results===
 +
Tapas produce a directory named "Ori-Out_name" which contain :
 +
*Camera calibration file : AutoCal[...].xml with camera parameters : focal length, PPP, distorsion parameters.
 +
<pre>
 +
<?xml version="1.0" ?>
 +
<ExportAPERO>
 +
    <CalibrationInternConique>
 +
          <KnownConv>eConvApero_DistM2C</KnownConv>
 +
          <PP>3036.5765679584747 1998.71167135734891</PP> %Position of PPS in image
 +
          <F>4037.08453810194351</F> %Focal length
 +
          <SzIm>6000 4000</SzIm> %Image size
 +
          <CalibDistortion>
 +
              <ModRad> %Coefficient of distorsion
 +
                    <CDist>3052.42394103968081 2001.86999748472294</CDist>
 +
                    <CoeffDist>-4.50469053927919027e-09</CoeffDist>
 +
                    <CoeffDist>3.40541430467215144e-16</CoeffDist>
 +
                    <CoeffDist>6.26870361086794563e-25</CoeffDist>
 +
                    <CoeffDistInv>4.51807038353698039e-09</CoeffDistInv>
 +
                    <CoeffDistInv>-2.83621415930942252e-16</CoeffDistInv>
 +
                    <CoeffDistInv>-1.28602811626265918e-23</CoeffDistInv>
 +
                    <CoeffDistInv>5.99729269914569738e-31</CoeffDistInv>
 +
              </ModRad>
 +
          </CalibDistortion>
 +
    </CalibrationInternConique>
 +
</ExportAPERO>
 +
</pre>
 +
*Orientation file for each picture : Orientation-image_name.xml with :camera orientation (3D similarity), tie points used for orientation etc...
 +
<pre>
 +
<?xml version="1.0" ?>
 +
<ExportAPERO>
 +
    <OrientationConique>
 +
          <OrIntImaM2C>
 +
              <I00>0 0</I00>
 +
              <V10>1 0</V10>
 +
              <V01>0 1</V01>
 +
          </OrIntImaM2C>
 +
          <TypeProj>eProjStenope</TypeProj>
 +
          <ZoneUtileInPixel>true</ZoneUtileInPixel>
 +
          <FileInterne>Ori-Arbitrary/AutoCal_Foc-16000_Cam-ILCE6000.xml</FileInterne> %Camera model
 +
          <RelativeNameFI>true</RelativeNameFI>
 +
          <Externe>
 +
              <AltiSol>-8.50917595677101524</AltiSol>
 +
              <Profondeur>9.9233022137615734</Profondeur>
 +
              <Time>-1.00000000000000002e+30</Time>
 +
              <KnownConv>eConvApero_DistM2C</KnownConv>
 +
              <Centre>0.33581992261091842 -26.3001714173638206 0.000147586637632812767</Centre> %Position of the PPS in arbitrary system
 +
              <IncCentre>1 1 1</IncCentre>
 +
              <ParamRotation>
 +
                    <CodageMatr> %Boresight matrix (arbitrary system)
 +
                        <L1>-0.981263794354502505 -0.155204851492389134 0.11416137684098876</L1>
 +
                        <L2>-0.192442661386862057 0.818245676864819083 -0.541700871672157969</L2>
 +
                        <L3>-0.00933744972389951265 -0.553520971929031491 -0.832782892275888531</L3>
 +
                    </CodageMatr>
 +
              </ParamRotation>
 +
          </Externe>
 +
...
 +
</pre>
 +
When you use Tapas, a important part of informations are displaying directly in the terminal window, like image resiual or number of tie points used per images. Don't forget to look at this residuals when you use Tapas, for a good orientation you can decrease under 0.5px. All this informations are stocked in a file named "Residual.xml"
 +
 
 +
===Workflow===
 +
Tapas process internal and relative orientation, you it's placed just after Tapas. The way to visualize relative orientation is to use AperiCloud.<br>
 +
[[Image:Picto-previous.png|20px]] Previous Command : [[Tapioca]]<br>
 +
[[Image:Picto-next.png|20px]] Next Command : [[AperiCloud]].
  
 
==RadialBasic==
 
==RadialBasic==
a subset of previous model: radial distortion with limited degrees of freedom ; adapted when there is a risk of divergence of [[RadialExtended]]; in this model there are 5 degrees of freedom : 1 for focal length , 2 for principal point and distortion center 3 , 2 for coefficients of radial distortion (r3 and r5 ).
+
a subset of previous model: radial distortion with limited degrees of freedom ; adapted when there is a risk of divergence of RadialExtended; in this model there are 5 degrees of freedom : 1 for focal length , 2 for principal point and distortion center 3 , 2 for coefficients of radial distortion (r3 and r5 ).
  
 
===Help===  
 
===Help===  
You can access to the help by typing :<br>
+
You can access to the help by typing :
<br>
+
<pre>mm3d Tapas RadialBasic -help</pre>  
<code>mm3d Tapas RadialBasic -help</code> <br>
+
 
<br>
+
 
 
Mandatory unnamed args :
 
Mandatory unnamed args :
*<span style="font-family:times roman;"> ''string :: {Calibration model}''</span style>
+
*string :: {Calibration model}
*<span style="font-family:times roman;"> ''string :: {Full Directory (Dir+Pattern)}''</span style>
+
*string :: {Full Directory (Dir+Pattern)}
<br>
+
 
<br>
+
 
Named args :
 
Named args :
*<span style="font-family:times roman;">''[Name=ExpTxt] INT :: {Export in text format (Def=false)}''</span style>
+
*[Name=ExpTxt] INT :: {Export in text format (Def=false)}
*<span style="font-family:times roman;">''[Name=Out] string :: {Directory of Output Orientation}''</span style>
+
*[Name=Out] string :: {Directory of Output Orientation}
*<span style="font-family:times roman;">''[Name=InCal] string :: {Directory of Input Internal Orientation (Calibration)}''</span style>
+
*[Name=InCal] string :: {Directory of Input Internal Orientation (Calibration)}
*<span style="font-family:times roman;">''[Name=InOri] string :: {Directory of Input External Orientation}''</span style>
+
*[Name=InOri] string :: {Directory of Input External Orientation}
*<span style="font-family:times roman;">''[Name=DoC] INT :: {Do Compensation}''</span style>
+
*[Name=DoC] INT :: {Do Compensation}
*<span style="font-family:times roman;">''[Name=ForCalib] INT :: {Is for calibration (Change def value of LMV and prop diag)?}''</span style>
+
*[Name=ForCalib] INT :: {1 for calibration }
*<span style="font-family:times roman;">''[Name=Focs] Pt2dr :: {Keep images with focal length inside range [A,B] (A,B in mm) (Def=keep all)}''</span style>
+
*[Name=Focs] Pt2dr :: {Keep images with focal length inside range [A,B] (A,B in mm) (Def=keep all)}
*<span style="font-family:times roman;">''[Name=VitesseInit] INT''</span style>
+
*[Name=VitesseInit] INT
*<span style="font-family:times roman;">''[Name=PPRel] Pt2dr :: {Principal point shift}''</span style>
+
*[Name=PPRel] Pt2dr :: {Principal point shift}''</span style>
*<span style="font-family:times roman;">''[Name=Decentre] INT :: {Principal point is shifted (Def=false)}''</span style>
+
*[Name=Decentre] INT :: {Principal point is shifted (Def=false)}''</span style>
*<span style="font-family:times roman;">''[Name=PropDiag] REAL :: {Hemi-spherik fisheye diameter to diagonal ratio}''</span style>
+
*[Name=PropDiag] REAL :: {Hemi-spherik fisheye diameter to diagonal ratio}''</span style>
*<span style="font-family:times roman;">''[Name=SauvAutom] string :: {Save intermediary results to, Set NONE if dont want any}''</span style>
+
*[Name=SauvAutom] string :: {Save intermediary results to, Set NONE if dont want any}''</span style>
*<span style="font-family:times roman;">''[Name=ImInit] string :: {Force first image}''</span style>
+
*[Name=ImInit] string :: {Force first image}''</span style>
*<span style="font-family:times roman;">''[Name=MOI] bool :: {MOI}''</span style>
+
*[Name=MOI] bool :: {MOI}''</span style>
  
 
==RadialExtended==
 
==RadialExtended==
Ligne 49 : Ligne 145 :
  
 
===Help===  
 
===Help===  
You can access to the help by typing :<br>
+
You can access to the help by typing :
<code>mm3d Tapas RadialExtended -help</code> <br>
+
<pre>mm3d Tapas RadialExtended -help</pre>  
<br>
+
 
 
Mandatory unnamed args :
 
Mandatory unnamed args :
*<span style="font-family:times roman;"> ''string :: {Calibration model}''</span style>
+
*string :: {Calibration model}
*<span style="font-family:times roman;"> ''string :: {Full Directory (Dir+Pattern)}''</span style>
+
*string :: {Full Directory (Dir+Pattern)}
<br>
+
 
 
Named args :
 
Named args :
*<span style="font-family:times roman;"> ''[Name=ExpTxt] INT :: {Export in text format (Def=false)} ''</span style>
+
*[Name=ExpTxt] INT :: {Export in text format (Def=false)}
*<span style="font-family:times roman;"> ''[Name=Out] string :: {Directory of Output Orientation} ''</span style>
+
*[Name=Out] string :: {Directory of Output Orientation} ''</span style>
*<span style="font-family:times roman;"> ''[Name=InCal] string :: {Directory of Input Internal Orientation (Calibration)} ''</span style>
+
*[Name=InCal] string :: {Directory of Input Internal Orientation (Calibration)}
*<span style="font-family:times roman;"> ''[Name=InOri] string :: {Directory of Input External Orientation} ''</span style>
+
*[Name=InOri] string :: {Directory of Input External Orientation}
*<span style="font-family:times roman;"> ''[Name=DoC] INT :: {Do Compensation} ''</span style>
+
*[Name=DoC] INT :: {Do Compensation}
*<span style="font-family:times roman;"> ''[Name=ForCalib] INT :: {Is for calibration (Change def value of LMV and prop diag)?} ''</span style>
+
*[Name=ForCalib] INT :: {1 for calibration }
*<span style="font-family:times roman;"> ''[Name=Focs] Pt2dr :: {Keep images with focal length inside range [A,B] (A,B in mm) (Def=keep all)} ''</span style>
+
*[Name=Focs] Pt2dr :: {Keep images with focal length inside range [A,B] (A,B in mm) (Def=keep all)}
*<span style="font-family:times roman;"> ''[Name=VitesseInit] INT ''</span style>
+
*[Name=VitesseInit] INT  
*<span style="font-family:times roman;"> ''[Name=PPRel] Pt2dr :: {Principal point shift}''</span style>
+
*[Name=PPRel] Pt2dr :: {Principal point shift}
*<span style="font-family:times roman;"> ''[Name=Decentre] INT :: {Principal point is shifted (Def=false)}''</span style>
+
*[Name=Decentre] INT :: {Principal point is shifted (Def=false)}
*<span style="font-family:times roman;"> ''[Name=PropDiag] REAL :: {Hemi-spherik fisheye diameter to diagonal ratio}''</span style>
+
*[Name=PropDiag] REAL :: {Hemi-spherik fisheye diameter to diagonal ratio}
*<span style="font-family:times roman;"> ''[Name=SauvAutom] string :: {Save intermediary results to, Set NONE if dont want any}''</span style>
+
*[Name=SauvAutom] string :: {Save intermediary results to, Set NONE if dont want any}
*<span style="font-family:times roman;"> ''[Name=ImInit] string :: {Force first image}''</span style>
+
*[Name=ImInit] string :: {Force first image}
*<span style="font-family:times roman;"> ''[Name=MOI] bool :: {MOI}''</span style>
+
*[Name=MOI] bool :: {MOI}
*<span style="font-family:times roman;"> ''[Name=DBF] INT :: {Debug (internal use : DebugPbCondFaisceau=true) }''</span style>
+
*[Name=DBF] INT :: {Debug (internal use : DebugPbCondFaisceau=true)  
*<span style="font-family:times roman;"> ''[Name=Debug] bool :: {Partial file for debug}''</span style>
+
*[Name=Debug] bool :: {Partial file for debug}
*<span style="font-family:times roman;"> ''[Name=DegRadMax] INT :: {Max degree of radial, default model dependent}''</span style>
+
*[Name=DegRadMax] INT :: {Max degree of radial, default model dependent}
*<span style="font-family:times roman;"> ''[Name=DegGen] INT :: {Max degree of general polynome, default model dependent (generally 0 or 1)}''</span style>
+
*[Name=DegGen] INT :: {Max degree of general polynome, default model dependent (generally 0 or 1)}
*<span style="font-family:times roman;"> ''[Name=LibAff] bool :: {Free affine parameter, Def=true}''</span style>
+
*[Name=LibAff] bool :: {Free affine parameter, Def=true}
*<span style="font-family:times roman;"> ''[Name=LibDec] bool :: {Free decentric parameter, Def=true}''</span style>
+
*[Name=LibDec] bool :: {Free decentric parameter, Def=true}
*<span style="font-family:times roman;"> ''[Name=LibPP] bool :: {Free principal point, Def=true}''</span style>
+
*[Name=LibPP] bool :: {Free principal point, Def=true}
*<span style="font-family:times roman;"> ''[Name=LibCP] bool :: {Free distorsion center, Def=true}''</span style>
+
*[Name=LibCP] bool :: {Free distorsion center, Def=true}
*<span style="font-family:times roman;"> ''[Name=LibFoc] bool :: {Free focal, Def=true}''</span style>
+
*[Name=LibFoc] bool :: {Free focal, Def=true}
*<span style="font-family:times roman;"> ''[Name=RapTxt] string :: {RapTxt}''</span style>
+
*[Name=RapTxt] string :: {RapTxt}
*<span style="font-family:times roman;"> ''[Name=LinkPPaPPs] REAL :: {Link PPa and PPs (double)}''</span style>
+
*[Name=LinkPPaPPs] REAL :: {Link PPa and PPs (double)}
*<span style="font-family:times roman;"> ''[Name=FrozenPoses] string :: {List of frozen poses (pattern)}''</span style>
+
*[Name=FrozenPoses] string :: {List of frozen poses (pattern)}
*<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}
*<span style="font-family:times roman;"> ''[Name=RefineAll] bool :: {More refinement at all step, safer and more accurate, but slower, def=true}''</span style>
+
*[Name=RefineAll] bool :: {More refinement at all step, safer and more accurate, but slower, def=true}
  
 
===Example===
 
===Example===
For example with the [[Mur Saint Martin dataset]], you can launch : <br>
+
For example with the Mur Saint Martin dataset, you can launch :  
<code>Tapas RadialExtended "IMGP41((6[7-9])|([7-8][0-9])).JPG"</code>
+
<pre>Tapas RadialExtended "IMGP41((6[7-9])|([7-8][0-9])).JPG"</pre>
<br>
+
<br>
+
  
 
==Fraser==
 
==Fraser==
a radial model, with decentric and affine parameters there are 12 degrees of freedom: 1 for focal length , 2 for principal point, 2 for distortion center , 3 for coefficients of radial distorsion (r3 , r5 r7 ), 2 for decentric parameters, 2 for affine parameters; the optional parameters LibAff and LibDec (def value true) can be set to false if decentric of affine parameters must stay frozen
+
a radial model, with decentric and affine parameters there are 12 degrees of freedom: 1 for focal length , 2 for principal point, 2 for distortion center , 3 for coefficients of radial distorsion (r3 , r5 r7 ), 2 for decentric parameters, 2 for affine parameters; the optional parameters LibAff and LibDec (def value true) can be set to false if decentric of affine parameters must stay frozen.
  
 
===Help===  
 
===Help===  
You can access to the help by typing :<br>
+
You can access to the help by typing :
<code>mm3d Tapas Fraser -help</code> <br>
+
<pre>mm3d Tapas Fraser -help</pre>  
<br>
+
 
 
Mandatory unnamed args :
 
Mandatory unnamed args :
*<span style="string :: {Calibration model} ''</span style>
+
*{Calibration model}  
*<span style="string :: {Full Directory (Dir+Pattern)} ''</span style>
+
*string :: {Full Directory (Dir+Pattern)}
  
<br>
 
 
Named args :
 
Named args :
*<span style="font-family:times roman;"> ''[Name=ExpTxt] INT :: {Export in text format (Def=false)}''</span style>
+
*[Name=ExpTxt] INT :: {Export in text format (Def=false)}
*<span style="font-family:times roman;"> ''[Name=Out] string :: {Directory of Output Orientation}''</span style>
+
*[Name=Out] string :: {Directory of Output Orientation}
*<span style="font-family:times roman;"> ''[Name=InCal] string :: {Directory of Input Internal Orientation (Calibration)}''</span style>
+
*[Name=InCal] string :: {Directory of Input Internal Orientation (Calibration)}
*<span style="font-family:times roman;"> ''[Name=InOri] string :: {Directory of Input External Orientation} ''</span style>
+
*[Name=InOri] string :: {Directory of Input External Orientation}
*<span style="font-family:times roman;"> ''[Name=DoC] INT :: {Do Compensation}''</span style>
+
*[Name=DoC] INT :: {Do Compensation}
*<span style="font-family:times roman;"> ''[Name=ForCalib] INT :: {Is for calibration (Change def value of LMV and prop diag)?}''</span style>
+
*[Name=ForCalib] INT :: {1 for calibration }
*<span style="font-family:times roman;"> ''[Name=Focs] Pt2dr :: {Keep images with focal length inside range [A,B] (A,B in mm) (Def=keep all)} ''</span style>
+
*[Name=Focs] Pt2dr :: {Keep images with focal length inside range [A,B] (A,B in mm) (Def=keep all)}
*<span style="font-family:times roman;"> ''[Name=VitesseInit] INT''</span style>
+
*[Name=VitesseInit] INT
*<span style="font-family:times roman;"> ''[Name=PPRel] Pt2dr :: {Principal point shift} ''</span style>
+
*[Name=PPRel] Pt2dr :: {Principal point shift}
*<span style="font-family:times roman;"> ''[Name=Decentre] INT :: {Principal point is shifted (Def=false)} ''</span style>
+
*[Name=Decentre] INT :: {Principal point is shifted (Def=false)}
*<span style="font-family:times roman;"> ''[Name=PropDiag] REAL :: {Hemi-spherik fisheye diameter to diagonal ratio} ''</span style>
+
*[Name=PropDiag] REAL :: {Hemi-spherik fisheye diameter to diagonal ratio}
*<span style="font-family:times roman;"> ''[Name=SauvAutom] string :: {Save intermediary results to, Set NONE if dont want any}''</span style>
+
*[Name=SauvAutom] string :: {Save intermediary results to, Set NONE if dont want any}
*<span style="font-family:times roman;"> ''[Name=ImInit] string :: {Force first image}''</span style>
+
*[Name=ImInit] string :: {Force first image}
*<span style="font-family:times roman;"> ''[Name=MOI] bool :: {MOI}''</span style>
+
*[Name=MOI] bool :: {MOI}
*<span style="font-family:times roman;"> ''[Name=DBF] INT :: {Debug (internal use : DebugPbCondFaisceau=true) }''</span style>
+
*[Name=DBF] INT :: {Debug (internal use : DebugPbCondFaisceau=true) }
*<span style="font-family:times roman;"> ''[Name=Debug] bool :: {Partial file for debug}''</span style>
+
*[Name=Debug] bool :: {Partial file for debug}
*<span style="font-family:times roman;"> ''[Name=DegRadMax] INT :: {Max degree of radial, default model dependent}''</span style>
+
*[Name=DegRadMax] INT :: {Max degree of radial, default model dependent}
*<span style="font-family:times roman;"> ''[Name=DegGen] INT :: {Max degree of general polynome, default model dependent (generally 0 or 1)}''</span style>
+
*[Name=DegGen] INT :: {Max degree of general polynome, default model dependent (generally 0 or 1)}
*<span style="font-family:times roman;"> ''[Name=LibAff] bool :: {Free affine parameter, Def=true}''</span style>
+
*[Name=LibAff] bool :: {Free affine parameter, Def=true}
*<span style="font-family:times roman;"> ''[Name=LibDec] bool :: {Free decentric parameter, Def=true}''</span style>
+
*[Name=LibDec] bool :: {Free decentric parameter, Def=true}
*<span style="font-family:times roman;"> ''[Name=LibPP] bool :: {Free principal point, Def=true}''</span style>
+
*[Name=LibPP] bool :: {Free principal point, Def=true}
*<span style="font-family:times roman;"> ''[Name=LibCP] bool :: {Free distorsion center, Def=true}''</span style>
+
*[Name=LibCP] bool :: {Free distorsion center, Def=true}
*<span style="font-family:times roman;"> ''[Name=LibFoc] bool :: {Free focal, Def=true}''</span style>
+
*[Name=LibFoc] bool :: {Free focal, Def=true}
*<span style="font-family:times roman;"> ''[Name=RapTxt] string :: {RapTxt}''</span style>
+
*[Name=RapTxt] string :: {RapTxt}
*<span style="font-family:times roman;"> ''[Name=LinkPPaPPs] REAL :: {Link PPa and PPs (double)}''</span style>
+
*[Name=LinkPPaPPs] REAL :: {Link PPa and PPs (double)}
*<span style="font-family:times roman;"> ''[Name=FrozenPoses] string :: {List of frozen poses (pattern)}''</span style>
+
*[Name=FrozenPoses] string :: {List of frozen poses (pattern)}
*<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}
*<span style="font-family:times roman;"> ''[Name=RefineAll] bool :: {More refinement at all step, safer and more accurate, but slower, def=true}''</span style>
+
*[Name=RefineAll] bool :: {More refinement at all step, safer and more accurate, but slower, def=true}
*<span style="font-family:times roman;"> ''[Name=ImMinMax] vector :: {Image min and max (may avoid tricky pattern ...)}''</span style>
+
*[Name=ImMinMax] vector :: {Image min and max (may avoid tricky pattern ...)}
*<span style="font-family:times roman;"> ''[Name=EcMax] REAL :: {Final threshold for residual, def = 5.0 }''</span style>
+
*[Name=EcMax] REAL :: {Final threshold for residual, def = 5.0 }
 
+
  
 
==FraserBasic==
 
==FraserBasic==
Ligne 141 : Ligne 233 :
  
 
===Help===  
 
===Help===  
You can access to the help by typing :<br>
+
You can access to the help by typing :
<code>mm3d Tapas FraserBasic -help</code> <br>
+
<pre>mm3d Tapas FraserBasic -help</pre>  
<br>
+
 
 
Mandatory unnamed args :
 
Mandatory unnamed args :
*<span style="font-family:times roman;"> ''string :: {Calibration model}''</span style>
+
*string :: {Calibration model}
*<span style="font-family:times roman;"> ''Istring :: {Full Directory (Dir+Pattern)}''</span style>
+
*string :: {Full Directory (Dir+Pattern)}
<br>
+
 
 
Named args :
 
Named args :
*<span style="font-family:times roman;"> ''[Name=ExpTxt] INT :: {Export in text format (Def=false)}''</span style>
+
*[Name=ExpTxt] INT :: {Export in text format (Def=false)}
*<span style="font-family:times roman;"> ''[Name=Out] string :: {Directory of Output Orientation}''</span style>
+
*[Name=Out] string :: {Directory of Output Orientation}
*<span style="font-family:times roman;"> ''[Name=InCal] string :: {Directory of Input Internal Orientation (Calibration)}''</span style>
+
*[Name=InCal] string :: {Directory of Input Internal Orientation (Calibration)}
*<span style="font-family:times roman;"> ''[Name=InOri] string :: {Directory of Input External Orientation}''</span style>
+
*[Name=InOri] string :: {Directory of Input External Orientation}
*<span style="font-family:times roman;"> ''[Name=DoC] INT :: {Do Compensation}''</span style>
+
*[Name=DoC] INT :: {Do Compensation}
*<span style="font-family:times roman;"> ''[Name=ForCalib] INT :: {Is for calibration (Change def value of LMV and prop diag)?}''</span style>
+
*[Name=ForCalib] INT :: {1 for calibration }
*<span style="font-family:times roman;"> ''[Name=Focs] Pt2dr :: {Keep images with focal length inside range [A,B] (A,B in mm) (Def=keep all)}''</span style>
+
*[Name=Focs] Pt2dr :: {Keep images with focal length inside range [A,B] (A,B in mm) (Def=keep all)}
*<span style="font-family:times roman;"> ''[Name=VitesseInit] INT''</span style>
+
*[Name=VitesseInit] INT
*<span style="font-family:times roman;"> ''[Name=PPRel] Pt2dr :: {Principal point shift}''</span style>
+
*[Name=PPRel] Pt2dr :: {Principal point shift}
*<span style="font-family:times roman;"> ''[Name=Decentre] INT :: {Principal point is shifted (Def=false)}''</span style>
+
*[Name=Decentre] INT :: {Principal point is shifted (Def=false)}
*<span style="font-family:times roman;"> ''[Name=PropDiag] REAL :: {Hemi-spherik fisheye diameter to diagonal ratio}''</span style>
+
*[Name=PropDiag] REAL :: {Hemi-spherik fisheye diameter to diagonal ratio}
*<span style="font-family:times roman;"> ''[Name=SauvAutom] string :: {Save intermediary results to, Set NONE if dont want any}''</span style>
+
*[Name=SauvAutom] string :: {Save intermediary results to, Set NONE if dont want any}
*<span style="font-family:times roman;"> ''[Name=ImInit] string :: {Force first image}''</span style>
+
*[Name=ImInit] string :: {Force first image}
*<span style="font-family:times roman;"> ''[Name=MOI] bool :: {MOI}''</span style>
+
*[Name=MOI] bool :: {MOI}
*<span style="font-family:times roman;"> ''[Name=DBF] INT :: {Debug (internal use : DebugPbCondFaisceau=true) }''</span style>
+
*[Name=DBF] INT :: {Debug (internal use : DebugPbCondFaisceau=true) }
*<span style="font-family:times roman;"> ''[Name=Debug] bool :: {Partial file for debug}''</span style>
+
*[Name=Debug] bool :: {Partial file for debug}
*<span style="font-family:times roman;"> ''[Name=DegRadMax] INT :: {Max degree of radial, default model dependent}''</span style>
+
*[Name=DegRadMax] INT :: {Max degree of radial, default model dependent}
*<span style="font-family:times roman;"> ''[Name=DegGen] INT :: {Max degree of general polynome, default model dependent (generally 0 or 1)}''</span style>
+
*[Name=DegGen] INT :: {Max degree of general polynome, default model dependent (generally 0 or 1)}
*<span style="font-family:times roman;"> ''[Name=LibAff] bool :: {Free affine parameter, Def=true}''</span style>
+
*[Name=LibAff] bool :: {Free affine parameter, Def=true}
*<span style="font-family:times roman;"> ''[Name=LibDec] bool :: {Free decentric parameter, Def=true}''</span style>
+
*[Name=LibDec] bool :: {Free decentric parameter, Def=true}
*<span style="font-family:times roman;"> ''[Name=LibPP] bool :: {Free principal point, Def=true}''</span style>
+
*[Name=LibPP] bool :: {Free principal point, Def=true}
*<span style="font-family:times roman;"> ''[Name=LibCP] bool :: {Free distorsion center, Def=true}''</span style>
+
*[Name=LibCP] bool :: {Free distorsion center, Def=true}
*<span style="font-family:times roman;"> ''[Name=LibFoc] bool :: {Free focal, Def=true}''</span style>
+
*[Name=LibFoc] bool :: {Free focal, Def=true}
*<span style="font-family:times roman;"> ''[Name=RapTxt] string :: {RapTxt}''</span style>
+
*[Name=RapTxt] string :: {RapTxt}
*<span style="font-family:times roman;"> ''[Name=LinkPPaPPs] REAL :: {Link PPa and PPs (double)}''</span style>
+
*[Name=LinkPPaPPs] REAL :: {Link PPa and PPs (double)}
*<span style="font-family:times roman;"> ''[Name=FrozenPoses] string :: {List of frozen poses (pattern)}''</span style>
+
*[Name=FrozenPoses] string :: {List of frozen poses (pattern)}
*<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}
*<span style="font-family:times roman;"> ''[Name=RefineAll] bool :: {More refinement at all step, safer and more accurate, but slower, def=true}
+
*[Name=RefineAll] bool :: {More refinement at all step, safer and more accurate, but slower, def=true}
*<span style="font-family:times roman;"> ''[Name=ImMinMax] vector :: {Image min and max (may avoid tricky pattern ...)}''</span style>
+
*[Name=ImMinMax] vector :: {Image min and max (may avoid tricky pattern ...)}
*<span style="font-family:times roman;"> ''[Name=EcMax] REAL :: {Final threshold for residual, def = 5.0 } ''</span style>
+
*[Name=EcMax] REAL :: {Final threshold for residual, def = 5.0 }  
  
  
Ligne 185 : Ligne 277 :
  
 
===Help===  
 
===Help===  
You can access to the help by typing :<br>
+
You can access to the help by typing :
<code>mm3d Tapas FishEyeEqui -help</code> <br>
+
<pre>mm3d Tapas FishEyeEqui -help</pre>  
<br>
+
 
 
Mandatory unnamed args :
 
Mandatory unnamed args :
*<span style="font-family:times roman;"> ''string :: {Calibration model}''</span style>
+
*string :: {Calibration model}
*<span style="font-family:times roman;"> ''string :: {Full Directory (Dir+Pattern)}''</span style>
+
*string :: {Full Directory (Dir+Pattern)}
<br>
+
Named args :
+
*<span style="font-family:times roman;"> '' [Name=ExpTxt] INT :: {Export in text format (Def=false)}''</span style>
+
*<span style="font-family:times roman;"> '' [Name=Out] string :: {Directory of Output Orientation}''</span style>
+
*<span style="font-family:times roman;"> '' [Name=InCal] string :: {Directory of Input Internal Orientation (Calibration)}''</span style>
+
*<span style="font-family:times roman;"> '' [Name=InOri] string :: {Directory of Input External Orientation}''</span style>
+
*<span style="font-family:times roman;"> '' [Name=DoC] INT :: {Do Compensation}''</span style>
+
*<span style="font-family:times roman;"> '' [Name=ForCalib] INT :: {Is for calibration (Change def value of LMV and prop diag)?}''</span style>
+
*<span style="font-family:times roman;"> '' [Name=Focs] Pt2dr :: {Keep images with focal length inside range [A,B] (A,B in mm) (Def=keep all)}''</span style>
+
*<span style="font-family:times roman;"> '' [Name=VitesseInit] INT''</span style>
+
*<span style="font-family:times roman;"> '' [Name=PPRel] Pt2dr :: {Principal point shift}''</span style>
+
*<span style="font-family:times roman;"> '' [Name=Decentre] INT :: {Principal point is shifted (Def=false)}''</span style>
+
*<span style="font-family:times roman;"> '' [Name=PropDiag] REAL :: {Hemi-spherik fisheye diameter to diagonal ratio}''</span style>
+
*<span style="font-family:times roman;"> '' [Name=SauvAutom] string :: {Save intermediary results to, Set NONE if dont want any}''</span style>
+
*<span style="font-family:times roman;"> '' [Name=ImInit] string :: {Force first image}''</span style>
+
*<span style="font-family:times roman;"> '' [Name=MOI] bool :: {MOI}''</span style>
+
*<span style="font-family:times roman;"> '' [Name=DBF] INT :: {Debug (internal use : DebugPbCondFaisceau=true) }''</span style>
+
*<span style="font-family:times roman;"> '' [Name=Debug] bool :: {Partial file for debug}''</span style>
+
*<span style="font-family:times roman;"> '' [Name=DegRadMax] INT :: {Max degree of radial, default model dependent}''</span style>
+
*<span style="font-family:times roman;"> '' [Name=DegGen] INT :: {Max degree of general polynome, default model dependent (generally 0 or 1)}''</span style>
+
*<span style="font-family:times roman;"> '' [Name=LibAff] bool :: {Free affine parameter, Def=true}''</span style>
+
*<span style="font-family:times roman;"> '' [Name=LibDec] bool :: {Free decentric parameter, Def=true}''</span style>
+
*<span style="font-family:times roman;"> '' [Name=LibPP] bool :: {Free principal point, Def=true}''</span style>
+
*<span style="font-family:times roman;"> '' [Name=LibCP] bool :: {Free distorsion center, Def=true}''</span style>
+
*<span style="font-family:times roman;"> '' [Name=LibFoc] bool :: {Free focal, Def=true}''</span style>
+
*<span style="font-family:times roman;"> '' [Name=RapTxt] string :: {RapTxt}''</span style>
+
*<span style="font-family:times roman;"> '' [Name=LinkPPaPPs] REAL :: {Link PPa and PPs (double)}''</span style>
+
*<span style="font-family:times roman;"> '' [Name=FrozenPoses] string :: {List of frozen poses (pattern)}''</span style>
+
*<span style="font-family:times roman;"> '' [Name=SH] string :: {Set of Hom, Def="", give MasqFiltered for result of HomolFilterMasq}''</span style>
+
*<span style="font-family:times roman;"> '' [Name=RefineAll] bool :: {More refinement at all step, safer and more accurate, but slower, def=true}''</span style>
+
*<span style="font-family:times roman;"> '' [Name=ImMinMax] vector :: {Image min and max (may avoid tricky pattern ...)}''</span style>
+
[Name=EcMax] REAL :: {Final threshold for residual, def = 5.0 } ''</span style>
+
  
 +
Named args :
 +
*[Name=ExpTxt] INT :: {Export in text format (Def=false)}
 +
*[Name=Out] string :: {Directory of Output Orientation}
 +
*[Name=InCal] string :: {Directory of Input Internal Orientation (Calibration)}
 +
*[Name=InOri] string :: {Directory of Input External Orientation}
 +
*[Name=DoC] INT :: {Do Compensation}
 +
*[Name=ForCalib] INT :: {1 for calibration }
 +
*[Name=Focs] Pt2dr :: {Keep images with focal length inside range [A,B] (A,B in mm) (Def=keep all)}
 +
*[Name=VitesseInit] INT
 +
*[Name=PPRel] Pt2dr :: {Principal point shift}
 +
*[Name=Decentre] INT :: {Principal point is shifted (Def=false)}
 +
*[Name=PropDiag] REAL :: {Hemi-spherik fisheye diameter to diagonal ratio}
 +
*[Name=SauvAutom] string :: {Save intermediary results to, Set NONE if dont want any}
 +
*[Name=ImInit] string :: {Force first image}
 +
*[Name=MOI] bool :: {MOI}
 +
*[Name=DBF] INT :: {Debug (internal use : DebugPbCondFaisceau=true) }
 +
*[Name=Debug] bool :: {Partial file for debug}
 +
*[Name=DegRadMax] INT :: {Max degree of radial, default model dependent}
 +
*[Name=DegGen] INT :: {Max degree of general polynome, default model dependent (generally 0 or 1)}
 +
*[Name=LibAff] bool :: {Free affine parameter, Def=true}
 +
*[Name=LibDec] bool :: {Free decentric parameter, Def=true}
 +
*[Name=LibPP] bool :: {Free principal point, Def=true}
 +
*[Name=LibCP] bool :: {Free distorsion center, Def=true}
 +
*[Name=LibFoc] bool :: {Free focal, Def=true}
 +
*[Name=RapTxt] string :: {RapTxt}
 +
*[Name=LinkPPaPPs] REAL :: {Link PPa and PPs (double)}
 +
*[Name=FrozenPoses] string :: {List of frozen poses (pattern)}
 +
*[Name=SH] string :: {Set of Hom, Def="", give MasqFiltered for result of HomolFilterMasq}
 +
*[Name=RefineAll] bool :: {More refinement at all step, safer and more accurate, but slower, def=true}
 +
*[Name=ImMinMax] vector :: {Image min and max (may avoid tricky pattern ...)}
 +
*[Name=EcMax] REAL :: {Final threshold for residual, def = 5.0 }
  
 
==HemiEqui==
 
==HemiEqui==
Ligne 229 : Ligne 320 :
  
 
===Help===  
 
===Help===  
You can access to the help by typing :<br>
+
You can access to the help by typing :
<code>mm3d Tapas HemiEqui -help</code> <br>
+
<pre>mm3d Tapas HemiEqui -help</pre>  
<br>
+
 
 
Mandatory unnamed args :
 
Mandatory unnamed args :
*<span style="font-family:times roman;"> ''string :: {Calibration model}''</span style>
+
*string :: {Calibration model}
*<span style="font-family:times roman;"> ''string :: {Full Directory (Dir+Pattern)} ''</span style>
+
*string :: {Full Directory (Dir+Pattern)}  
<br>
+
 
 
Named args :
 
Named args :
*<span style="font-family:times roman;"> ''[Name=ExpTxt] INT :: {Export in text format (Def=false)}''</span style>
+
*[Name=ExpTxt] INT :: {Export in text format (Def=false)}
*<span style="font-family:times roman;"> ''[Name=Out] string :: {Directory of Output Orientation}''</span style>
+
*[Name=Out] string :: {Directory of Output Orientation}
*<span style="font-family:times roman;"> ''[Name=InCal] string :: {Directory of Input Internal Orientation (Calibration)}''</span style>
+
*[Name=InCal] string :: {Directory of Input Internal Orientation (Calibration)}
*<span style="font-family:times roman;"> ''[Name=InOri] string :: {Directory of Input External Orientation}''</span style>
+
*[Name=InOri] string :: {Directory of Input External Orientation}
*<span style="font-family:times roman;"> ''[Name=DoC] INT :: {Do Compensation}''</span style>
+
*[Name=DoC] INT :: {Do Compensation}
*<span style="font-family:times roman;"> ''[Name=ForCalib] INT :: {Is for calibration (Change def value of LMV and prop diag)?}''</span style>
+
*[Name=ForCalib] INT :: {1 for calibration }
*<span style="font-family:times roman;"> ''[Name=Focs] Pt2dr :: {Keep images with focal length inside range [A,B] (A,B in mm) (Def=keep all)}''</span style>
+
*[Name=Focs] Pt2dr :: {Keep images with focal length inside range [A,B] (A,B in mm) (Def=keep all)}
*<span style="font-family:times roman;"> ''[Name=VitesseInit] INT''</span style>
+
*[Name=VitesseInit] INT
*<span style="font-family:times roman;"> ''[Name=PPRel] Pt2dr :: {Principal point shift}''</span style>
+
*[Name=PPRel] Pt2dr :: {Principal point shift}
*<span style="font-family:times roman;"> ''[Name=Decentre] INT :: {Principal point is shifted (Def=false)}''</span style>
+
*[Name=Decentre] INT :: {Principal point is shifted (Def=false)}
*<span style="font-family:times roman;"> ''[Name=PropDiag] REAL :: {Hemi-spherik fisheye diameter to diagonal ratio}''</span style>
+
*[Name=PropDiag] REAL :: {Hemi-spherik fisheye diameter to diagonal ratio}
*<span style="font-family:times roman;"> ''[Name=SauvAutom] string :: {Save intermediary results to, Set NONE if dont want any}''</span style>
+
*[Name=SauvAutom] string :: {Save intermediary results to, Set NONE if dont want any}
*<span style="font-family:times roman;"> ''[Name=ImInit] string :: {Force first image}''</span style>
+
*[Name=ImInit] string :: {Force first image}
*<span style="font-family:times roman;"> ''[Name=MOI] bool :: {MOI}''</span style>
+
*[Name=MOI] bool :: {MOI}
*<span style="font-family:times roman;"> ''[Name=DBF] INT :: {Debug (internal use : DebugPbCondFaisceau=true) }''</span style>
+
*[Name=DBF] INT :: {Debug (internal use : DebugPbCondFaisceau=true) }
*<span style="font-family:times roman;"> ''[Name=Debug] bool :: {Partial file for debug}''</span style>
+
*[Name=Debug] bool :: {Partial file for debug}
*<span style="font-family:times roman;"> ''[Name=DegRadMax] INT :: {Max degree of radial, default model dependent}''</span style>
+
*[Name=DegRadMax] INT :: {Max degree of radial, default model dependent}
*<span style="font-family:times roman;"> ''[Name=DegGen] INT :: {Max degree of general polynome, default model dependent (generally 0 or 1)}''</span style>
+
*[Name=DegGen] INT :: {Max degree of general polynome, default model dependent (generally 0 or 1)}
*<span style="font-family:times roman;"> ''[Name=LibAff] bool :: {Free affine parameter, Def=true}''</span style>
+
*[Name=LibAff] bool :: {Free affine parameter, Def=true}
*<span style="font-family:times roman;"> ''[Name=LibDec] bool :: {Free decentric parameter, Def=true}''</span style>
+
*[Name=LibDec] bool :: {Free decentric parameter, Def=true}
*<span style="font-family:times roman;"> ''[Name=LibPP] bool :: {Free principal point, Def=true}''</span style>
+
*[Name=LibPP] bool :: {Free principal point, Def=true}
*<span style="font-family:times roman;"> ''[Name=LibCP] bool :: {Free distorsion center, Def=true}''</span style>
+
*[Name=LibCP] bool :: {Free distorsion center, Def=true}
*<span style="font-family:times roman;"> ''[Name=LibFoc] bool :: {Free focal, Def=true}''</span style>
+
*[Name=LibFoc] bool :: {Free focal, Def=true}
*<span style="font-family:times roman;"> ''[Name=RapTxt] string :: {RapTxt}''</span style>
+
*[Name=RapTxt] string :: {RapTxt}
*<span style="font-family:times roman;"> ''[Name=LinkPPaPPs] REAL :: {Link PPa and PPs (double)}''</span style>
+
*[Name=LinkPPaPPs] REAL :: {Link PPa and PPs (double)}
*<span style="font-family:times roman;"> ''[Name=FrozenPoses] string :: {List of frozen poses (pattern)}''</span style>
+
*[Name=FrozenPoses] string :: {List of frozen poses (pattern)}
*<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}
*<span style="font-family:times roman;"> ''[Name=RefineAll] bool :: {More refinement at all step, safer and more accurate, but slower, def=true}''</span style>
+
*[Name=RefineAll] bool :: {More refinement at all step, safer and more accurate, but slower, def=true}
*<span style="font-family:times roman;"> ''[Name=ImMinMax] vector :: {Image min and max (may avoid tricky ''</span style>
+
*[Name=ImMinMax] vector :: {Image min and max (may avoid tricky
 +
 
 +
== Error messages ==
 +
* Pt Out Cam in ElCamera::F2toPtDirRayonL3 : occurs when an image in a sequence have been rotated before processing (happens sometime when dealing with old aerial scans)
 +
* very singular matrix in Gausj : choose a distortion model with a lower number of parameters to estimate.

Version actuelle en date du 15 avril 2024 à 09:31

Picto-liste.png List of commands

Description

Tapas is a tool offering most of the posssibilities of Apero for computing purely relative orientations

Syntax

The global syntax for Tapas is

mm3d Tapas ModeCalib NamedArgs

Allowed commands

This allowed commands, correspond to the distorsion model you want to use :

  • RadialBasic : for Classic Lens
  • RadialStd : for Classic Lens
  • RadialExtended : Classic Lens with extra distorsion parameters.
  • FraserBasic
  • Fraser
  • FishEyeEqui : for FishEye Lens
  • FE_EquiSolBasic
  • FishEyeBasic
  • FishEyeStereo
  • Four
  • AddFour
  • AddPolyDeg
  • Ebner
  • Brown
  • AutoCal
  • Figee
  • HemiEqui

Description

Description of the basic distortion models easily accessible in MicMac
Command PPA/PPS Polynomial correction Decentric/Affine correction Number of parameters to estimate
RadialBasic
Equals
r³, r⁵, r⁷
No
5
RadialStd
Different
r³, r⁵, r⁷
No
8
RadialExtended
Different
r³, r⁵, r⁷, r⁹, r¹¹
No
10
FraserBasic
Equals
r³, r⁵, r⁷
Yes
10
Fraser
Different
r³, r⁵, r⁷
Yes
12

Source : https://www.int-arch-photogramm-remote-sens-spatial-inf-sci.net/XL-3-W3/327/2015/isprsarchives-XL-3-W3-327-2015.pdf

Results

Tapas produce a directory named "Ori-Out_name" which contain :

  • Camera calibration file : AutoCal[...].xml with camera parameters : focal length, PPP, distorsion parameters.
<?xml version="1.0" ?>
<ExportAPERO>
     <CalibrationInternConique>
          <KnownConv>eConvApero_DistM2C</KnownConv>
          <PP>3036.5765679584747 1998.71167135734891</PP> %Position of PPS in image
          <F>4037.08453810194351</F> %Focal length
          <SzIm>6000 4000</SzIm> %Image size
          <CalibDistortion>
               <ModRad> %Coefficient of distorsion
                    <CDist>3052.42394103968081 2001.86999748472294</CDist>
                    <CoeffDist>-4.50469053927919027e-09</CoeffDist>
                    <CoeffDist>3.40541430467215144e-16</CoeffDist>
                    <CoeffDist>6.26870361086794563e-25</CoeffDist>
                    <CoeffDistInv>4.51807038353698039e-09</CoeffDistInv>
                    <CoeffDistInv>-2.83621415930942252e-16</CoeffDistInv>
                    <CoeffDistInv>-1.28602811626265918e-23</CoeffDistInv>
                    <CoeffDistInv>5.99729269914569738e-31</CoeffDistInv>
               </ModRad>
          </CalibDistortion>
     </CalibrationInternConique>
</ExportAPERO>
  • Orientation file for each picture : Orientation-image_name.xml with :camera orientation (3D similarity), tie points used for orientation etc...
<?xml version="1.0" ?>
<ExportAPERO>
     <OrientationConique>
          <OrIntImaM2C>
               <I00>0 0</I00>
               <V10>1 0</V10>
               <V01>0 1</V01>
          </OrIntImaM2C>
          <TypeProj>eProjStenope</TypeProj>
          <ZoneUtileInPixel>true</ZoneUtileInPixel>
          <FileInterne>Ori-Arbitrary/AutoCal_Foc-16000_Cam-ILCE6000.xml</FileInterne> %Camera model
          <RelativeNameFI>true</RelativeNameFI>
          <Externe>
               <AltiSol>-8.50917595677101524</AltiSol> 
               <Profondeur>9.9233022137615734</Profondeur>
               <Time>-1.00000000000000002e+30</Time>
               <KnownConv>eConvApero_DistM2C</KnownConv>
               <Centre>0.33581992261091842 -26.3001714173638206 0.000147586637632812767</Centre> %Position of the PPS in arbitrary system
               <IncCentre>1 1 1</IncCentre>
               <ParamRotation>
                    <CodageMatr> %Boresight matrix (arbitrary system)
                         <L1>-0.981263794354502505 -0.155204851492389134 0.11416137684098876</L1>
                         <L2>-0.192442661386862057 0.818245676864819083 -0.541700871672157969</L2>
                         <L3>-0.00933744972389951265 -0.553520971929031491 -0.832782892275888531</L3>
                    </CodageMatr>
               </ParamRotation>
          </Externe>
...

When you use Tapas, a important part of informations are displaying directly in the terminal window, like image resiual or number of tie points used per images. Don't forget to look at this residuals when you use Tapas, for a good orientation you can decrease under 0.5px. All this informations are stocked in a file named "Residual.xml"

Workflow

Tapas process internal and relative orientation, you it's placed just after Tapas. The way to visualize relative orientation is to use AperiCloud.
Picto-previous.png Previous Command : Tapioca
Picto-next.png Next Command : AperiCloud.

RadialBasic

a subset of previous model: radial distortion with limited degrees of freedom ; adapted when there is a risk of divergence of RadialExtended; in this model there are 5 degrees of freedom : 1 for focal length , 2 for principal point and distortion center 3 , 2 for coefficients of radial distortion (r3 and r5 ).

Help

You can access to the help by typing :

mm3d Tapas RadialBasic -help


Mandatory unnamed args :

  • string :: {Calibration model}
  • string :: {Full Directory (Dir+Pattern)}

Named args :

  • [Name=ExpTxt] INT :: {Export in text format (Def=false)}
  • [Name=Out] string :: {Directory of Output Orientation}
  • [Name=InCal] string :: {Directory of Input Internal Orientation (Calibration)}
  • [Name=InOri] string :: {Directory of Input External Orientation}
  • [Name=DoC] INT :: {Do Compensation}
  • [Name=ForCalib] INT :: {1 for calibration }
  • [Name=Focs] Pt2dr :: {Keep images with focal length inside range [A,B] (A,B in mm) (Def=keep all)}
  • [Name=VitesseInit] INT
  • [Name=PPRel] Pt2dr :: {Principal point shift}</span style>
  • [Name=Decentre] INT :: {Principal point is shifted (Def=false)}</span style>
  • [Name=PropDiag] REAL :: {Hemi-spherik fisheye diameter to diagonal ratio}</span style>
  • [Name=SauvAutom] string :: {Save intermediary results to, Set NONE if dont want any}</span style>
  • [Name=ImInit] string :: {Force first image}</span style>
  • [Name=MOI] bool :: {MOI}</span style>

RadialExtended

A model with radial distortion.

Help

You can access to the help by typing :

mm3d Tapas RadialExtended -help

Mandatory unnamed args :

  • string :: {Calibration model}
  • string :: {Full Directory (Dir+Pattern)}

Named args :

  • [Name=ExpTxt] INT :: {Export in text format (Def=false)}
  • [Name=Out] string :: {Directory of Output Orientation} </span style>
  • [Name=InCal] string :: {Directory of Input Internal Orientation (Calibration)}
  • [Name=InOri] string :: {Directory of Input External Orientation}
  • [Name=DoC] INT :: {Do Compensation}
  • [Name=ForCalib] INT :: {1 for calibration }
  • [Name=Focs] Pt2dr :: {Keep images with focal length inside range [A,B] (A,B in mm) (Def=keep all)}
  • [Name=VitesseInit] INT
  • [Name=PPRel] Pt2dr :: {Principal point shift}
  • [Name=Decentre] INT :: {Principal point is shifted (Def=false)}
  • [Name=PropDiag] REAL :: {Hemi-spherik fisheye diameter to diagonal ratio}
  • [Name=SauvAutom] string :: {Save intermediary results to, Set NONE if dont want any}
  • [Name=ImInit] string :: {Force first image}
  • [Name=MOI] bool :: {MOI}
  • [Name=DBF] INT :: {Debug (internal use : DebugPbCondFaisceau=true)
  • [Name=Debug] bool :: {Partial file for debug}
  • [Name=DegRadMax] INT :: {Max degree of radial, default model dependent}
  • [Name=DegGen] INT :: {Max degree of general polynome, default model dependent (generally 0 or 1)}
  • [Name=LibAff] bool :: {Free affine parameter, Def=true}
  • [Name=LibDec] bool :: {Free decentric parameter, Def=true}
  • [Name=LibPP] bool :: {Free principal point, Def=true}
  • [Name=LibCP] bool :: {Free distorsion center, Def=true}
  • [Name=LibFoc] bool :: {Free focal, Def=true}
  • [Name=RapTxt] string :: {RapTxt}
  • [Name=LinkPPaPPs] REAL :: {Link PPa and PPs (double)}
  • [Name=FrozenPoses] string :: {List of frozen poses (pattern)}
  • [Name=SH] string :: {Set of Hom, Def="", give MasqFiltered for result of HomolFilterMasq}
  • [Name=RefineAll] bool :: {More refinement at all step, safer and more accurate, but slower, def=true}

Example

For example with the Mur Saint Martin dataset, you can launch :

Tapas RadialExtended "IMGP41((6[7-9])|([7-8][0-9])).JPG"

Fraser

a radial model, with decentric and affine parameters there are 12 degrees of freedom: 1 for focal length , 2 for principal point, 2 for distortion center , 3 for coefficients of radial distorsion (r3 , r5 r7 ), 2 for decentric parameters, 2 for affine parameters; the optional parameters LibAff and LibDec (def value true) can be set to false if decentric of affine parameters must stay frozen.

Help

You can access to the help by typing :

mm3d Tapas Fraser -help

Mandatory unnamed args :

  • {Calibration model}
  • string :: {Full Directory (Dir+Pattern)}

Named args :

  • [Name=ExpTxt] INT :: {Export in text format (Def=false)}
  • [Name=Out] string :: {Directory of Output Orientation}
  • [Name=InCal] string :: {Directory of Input Internal Orientation (Calibration)}
  • [Name=InOri] string :: {Directory of Input External Orientation}
  • [Name=DoC] INT :: {Do Compensation}
  • [Name=ForCalib] INT :: {1 for calibration }
  • [Name=Focs] Pt2dr :: {Keep images with focal length inside range [A,B] (A,B in mm) (Def=keep all)}
  • [Name=VitesseInit] INT
  • [Name=PPRel] Pt2dr :: {Principal point shift}
  • [Name=Decentre] INT :: {Principal point is shifted (Def=false)}
  • [Name=PropDiag] REAL :: {Hemi-spherik fisheye diameter to diagonal ratio}
  • [Name=SauvAutom] string :: {Save intermediary results to, Set NONE if dont want any}
  • [Name=ImInit] string :: {Force first image}
  • [Name=MOI] bool :: {MOI}
  • [Name=DBF] INT :: {Debug (internal use : DebugPbCondFaisceau=true) }
  • [Name=Debug] bool :: {Partial file for debug}
  • [Name=DegRadMax] INT :: {Max degree of radial, default model dependent}
  • [Name=DegGen] INT :: {Max degree of general polynome, default model dependent (generally 0 or 1)}
  • [Name=LibAff] bool :: {Free affine parameter, Def=true}
  • [Name=LibDec] bool :: {Free decentric parameter, Def=true}
  • [Name=LibPP] bool :: {Free principal point, Def=true}
  • [Name=LibCP] bool :: {Free distorsion center, Def=true}
  • [Name=LibFoc] bool :: {Free focal, Def=true}
  • [Name=RapTxt] string :: {RapTxt}
  • [Name=LinkPPaPPs] REAL :: {Link PPa and PPs (double)}
  • [Name=FrozenPoses] string :: {List of frozen poses (pattern)}
  • [Name=SH] string :: {Set of Hom, Def="", give MasqFiltered for result of HomolFilterMasq}
  • [Name=RefineAll] bool :: {More refinement at all step, safer and more accurate, but slower, def=true}
  • [Name=ImMinMax] vector :: {Image min and max (may avoid tricky pattern ...)}
  • [Name=EcMax] REAL :: {Final threshold for residual, def = 5.0 }

FraserBasic

same as previous with for principal point and distortion center constrained to have the same value (so 10 degree of freedom)

Help

You can access to the help by typing :

mm3d Tapas FraserBasic -help

Mandatory unnamed args :

  • string :: {Calibration model}
  • string :: {Full Directory (Dir+Pattern)}

Named args :

  • [Name=ExpTxt] INT :: {Export in text format (Def=false)}
  • [Name=Out] string :: {Directory of Output Orientation}
  • [Name=InCal] string :: {Directory of Input Internal Orientation (Calibration)}
  • [Name=InOri] string :: {Directory of Input External Orientation}
  • [Name=DoC] INT :: {Do Compensation}
  • [Name=ForCalib] INT :: {1 for calibration }
  • [Name=Focs] Pt2dr :: {Keep images with focal length inside range [A,B] (A,B in mm) (Def=keep all)}
  • [Name=VitesseInit] INT
  • [Name=PPRel] Pt2dr :: {Principal point shift}
  • [Name=Decentre] INT :: {Principal point is shifted (Def=false)}
  • [Name=PropDiag] REAL :: {Hemi-spherik fisheye diameter to diagonal ratio}
  • [Name=SauvAutom] string :: {Save intermediary results to, Set NONE if dont want any}
  • [Name=ImInit] string :: {Force first image}
  • [Name=MOI] bool :: {MOI}
  • [Name=DBF] INT :: {Debug (internal use : DebugPbCondFaisceau=true) }
  • [Name=Debug] bool :: {Partial file for debug}
  • [Name=DegRadMax] INT :: {Max degree of radial, default model dependent}
  • [Name=DegGen] INT :: {Max degree of general polynome, default model dependent (generally 0 or 1)}
  • [Name=LibAff] bool :: {Free affine parameter, Def=true}
  • [Name=LibDec] bool :: {Free decentric parameter, Def=true}
  • [Name=LibPP] bool :: {Free principal point, Def=true}
  • [Name=LibCP] bool :: {Free distorsion center, Def=true}
  • [Name=LibFoc] bool :: {Free focal, Def=true}
  • [Name=RapTxt] string :: {RapTxt}
  • [Name=LinkPPaPPs] REAL :: {Link PPa and PPs (double)}
  • [Name=FrozenPoses] string :: {List of frozen poses (pattern)}
  • [Name=SH] string :: {Set of Hom, Def="", give MasqFiltered for result of HomolFilterMasq}
  • [Name=RefineAll] bool :: {More refinement at all step, safer and more accurate, but slower, def=true}
  • [Name=ImMinMax] vector :: {Image min and max (may avoid tricky pattern ...)}
  • [Name=EcMax] REAL :: {Final threshold for residual, def = 5.0 }


FishEyeEqui

a model adapted for diagonal fisheyes equilinear ( with atan physicall model com- pleted with polynomial parameters there are 14 degrees of freedom: 1 for focal length , 2 for principal point, 2 for distorsion center , 5 for coefficients of radial distortion (r3 , r5 r7 ), 2 for decentric parameters, 2 for affine parameters; by default the ray defining the useful mask is 95% of the diagonal.

Help

You can access to the help by typing :

mm3d Tapas FishEyeEqui -help

Mandatory unnamed args :

  • string :: {Calibration model}
  • string :: {Full Directory (Dir+Pattern)}

Named args :

  • [Name=ExpTxt] INT :: {Export in text format (Def=false)}
  • [Name=Out] string :: {Directory of Output Orientation}
  • [Name=InCal] string :: {Directory of Input Internal Orientation (Calibration)}
  • [Name=InOri] string :: {Directory of Input External Orientation}
  • [Name=DoC] INT :: {Do Compensation}
  • [Name=ForCalib] INT :: {1 for calibration }
  • [Name=Focs] Pt2dr :: {Keep images with focal length inside range [A,B] (A,B in mm) (Def=keep all)}
  • [Name=VitesseInit] INT
  • [Name=PPRel] Pt2dr :: {Principal point shift}
  • [Name=Decentre] INT :: {Principal point is shifted (Def=false)}
  • [Name=PropDiag] REAL :: {Hemi-spherik fisheye diameter to diagonal ratio}
  • [Name=SauvAutom] string :: {Save intermediary results to, Set NONE if dont want any}
  • [Name=ImInit] string :: {Force first image}
  • [Name=MOI] bool :: {MOI}
  • [Name=DBF] INT :: {Debug (internal use : DebugPbCondFaisceau=true) }
  • [Name=Debug] bool :: {Partial file for debug}
  • [Name=DegRadMax] INT :: {Max degree of radial, default model dependent}
  • [Name=DegGen] INT :: {Max degree of general polynome, default model dependent (generally 0 or 1)}
  • [Name=LibAff] bool :: {Free affine parameter, Def=true}
  • [Name=LibDec] bool :: {Free decentric parameter, Def=true}
  • [Name=LibPP] bool :: {Free principal point, Def=true}
  • [Name=LibCP] bool :: {Free distorsion center, Def=true}
  • [Name=LibFoc] bool :: {Free focal, Def=true}
  • [Name=RapTxt] string :: {RapTxt}
  • [Name=LinkPPaPPs] REAL :: {Link PPa and PPs (double)}
  • [Name=FrozenPoses] string :: {List of frozen poses (pattern)}
  • [Name=SH] string :: {Set of Hom, Def="", give MasqFiltered for result of HomolFilterMasq}
  • [Name=RefineAll] bool :: {More refinement at all step, safer and more accurate, but slower, def=true}
  • [Name=ImMinMax] vector :: {Image min and max (may avoid tricky pattern ...)}
  • [Name=EcMax] REAL :: {Final threshold for residual, def = 5.0 }

HemiEqui

same model as previous, but by default the ray defining the useful mask s 52% of the diagonal; adapted to hemispheric equilinear fisheye.

Help

You can access to the help by typing :

mm3d Tapas HemiEqui -help

Mandatory unnamed args :

  • string :: {Calibration model}
  • string :: {Full Directory (Dir+Pattern)}

Named args :

  • [Name=ExpTxt] INT :: {Export in text format (Def=false)}
  • [Name=Out] string :: {Directory of Output Orientation}
  • [Name=InCal] string :: {Directory of Input Internal Orientation (Calibration)}
  • [Name=InOri] string :: {Directory of Input External Orientation}
  • [Name=DoC] INT :: {Do Compensation}
  • [Name=ForCalib] INT :: {1 for calibration }
  • [Name=Focs] Pt2dr :: {Keep images with focal length inside range [A,B] (A,B in mm) (Def=keep all)}
  • [Name=VitesseInit] INT
  • [Name=PPRel] Pt2dr :: {Principal point shift}
  • [Name=Decentre] INT :: {Principal point is shifted (Def=false)}
  • [Name=PropDiag] REAL :: {Hemi-spherik fisheye diameter to diagonal ratio}
  • [Name=SauvAutom] string :: {Save intermediary results to, Set NONE if dont want any}
  • [Name=ImInit] string :: {Force first image}
  • [Name=MOI] bool :: {MOI}
  • [Name=DBF] INT :: {Debug (internal use : DebugPbCondFaisceau=true) }
  • [Name=Debug] bool :: {Partial file for debug}
  • [Name=DegRadMax] INT :: {Max degree of radial, default model dependent}
  • [Name=DegGen] INT :: {Max degree of general polynome, default model dependent (generally 0 or 1)}
  • [Name=LibAff] bool :: {Free affine parameter, Def=true}
  • [Name=LibDec] bool :: {Free decentric parameter, Def=true}
  • [Name=LibPP] bool :: {Free principal point, Def=true}
  • [Name=LibCP] bool :: {Free distorsion center, Def=true}
  • [Name=LibFoc] bool :: {Free focal, Def=true}
  • [Name=RapTxt] string :: {RapTxt}
  • [Name=LinkPPaPPs] REAL :: {Link PPa and PPs (double)}
  • [Name=FrozenPoses] string :: {List of frozen poses (pattern)}
  • [Name=SH] string :: {Set of Hom, Def="", give MasqFiltered for result of HomolFilterMasq}
  • [Name=RefineAll] bool :: {More refinement at all step, safer and more accurate, but slower, def=true}
  • [Name=ImMinMax] vector :: {Image min and max (may avoid tricky

Error messages

  • Pt Out Cam in ElCamera::F2toPtDirRayonL3 : occurs when an image in a sequence have been rotated before processing (happens sometime when dealing with old aerial scans)
  • very singular matrix in Gausj : choose a distortion model with a lower number of parameters to estimate.