Tapas
Sommaire
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
Command | PPA/PPS | Polynomial correction | Decentric/Affine correction | Number of parameters to estimate |
---|---|---|---|---|
RadialBasic |
|
|
|
|
RadialStd |
|
|
|
|
RadialExtended |
|
|
|
|
FraserBasic |
|
|
|
|
Fraser |
|
|
|
|
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.
Previous Command : Tapioca
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.