Tapioca : Différence entre versions

De MicMac
Aller à : navigation, rechercher
(Correction commande mm3d SEL)
 
(84 révisions intermédiaires par 7 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
 +
[[Image:picto-liste.png|25px]] [[Command|List of commands]]
 
==Description==
 
==Description==
 
Tapioca is a simple tool interface for computing tie points. I think Tapioca should be sufficient in 95% of cases. If it is not the case, you will have to refer to a more complex and powerful tool named [[Pastis]] which will be described later. In fact, Tapioca is only an interface to [[Pastis]].
 
Tapioca is a simple tool interface for computing tie points. I think Tapioca should be sufficient in 95% of cases. If it is not the case, you will have to refer to a more complex and powerful tool named [[Pastis]] which will be described later. In fact, Tapioca is only an interface to [[Pastis]].
 
[[File:021. Commande Tapioca version1.ogv|thumb|Commande MicMac Tapioca, exercice Fontaine]]
 
  
 
===Syntax===
 
===Syntax===
 
The global syntax for Tapioca is <br>
 
The global syntax for Tapioca is <br>
<code>mm3d Tapioca Command UnNamedArgs NamedArgs</code>
+
<pre>mm3d Tapioca UnNamedArgs NamedArgs</pre>
 +
 
 
===Allowed commands===
 
===Allowed commands===
*MulScale
+
*<b>MulScale</b> : Compute tie points for images in low resolution and then for high resolution.
*All
+
*<b>All</b> : Compute tie points for all images in a given resolution.
*Line
+
*<b>Line</b> : Compute tie points for linear image canvas.
*File
+
*<b>File</b> : Compute tie points for images in a xml file
*Graph
+
*<b>Graph</b> : in development
  
==MulScale==
+
===Results===
The mode MulScale can save significant computation time on large sets of images. Even if it is not optimal for all canvas, it has the benefit of being general and usable with any data set. In this mode, a first computation of tie points is made for all the pairs of images at very low resolution (so it is quite fast).Then the computation, at the desired resolution, is done only for the pairs having, at low resolution, a number of tie points exceeding a given threshold.
+
Tapioca generate a directory named "Homol" ("Homol_SRes" for Tapioca MulScale) in your working directory which contain for each image of your canvas, a directory named "Pastis<i>Image_name</i>". In this directory "Pastis" you will find a binary file (".dat") for each image linked with the first image by tie points. This binary files contains tie points.<br>
 +
For example, in Gravillons dataset, all images are linked so this is the arborescence of the Gravillon Homol directory :<br>
 +
[[Image:Tapioca_homol_arborescence.png|500px]]
  
===Help===  
+
===Workflow===
You can access to the help by typing :<br>
+
Tapioca, is generally the first command to launch in a MicMac process.<br>
<br>
+
[[Image:Picto-previous.png|20px]] Previous Command : ~<br>
<code>mm3d Tapioca MulScale -help</code> <br>
+
[[Image:Picto-next.png|20px]] Next Command : ([[HomolFilterMasq]],[[Schnaps]],) [[Tapas]].
<br>
+
Mandatory unnamed args :
+
*<span style="font-family:times roman;"> ''string :: {Full Name (Dir+Pat)}''</span style>
+
*<span style="font-family:times roman;"> ''INT :: {Size of Low Resolution Images}''</span style>
+
*<span style="font-family:times roman;"> ''INT :: {Size of High Resolution Images}''</span style><br>
+
<br>
+
Named args :
+
*<span style="font-family:times roman;">''[Name=ExpTxt] INT :: {Export files in text format (Def=false means binary)}''</span style>
+
*<span style="font-family:times roman;">''[Name=ByP] INT :: {By process}''</span style>
+
*<span style="font-family:times roman;">''[Name=PostFix] string :: {Add postfix in directory}''</span style>
+
*<span style="font-family:times roman;">''[Name=NbMinPt] INT :: {Minimum number of points}''</span style>
+
*<span style="font-family:times roman;">''[Name=DLR] INT :: {Do Low Resolution}''</span style>
+
*<span style="font-family:times roman;">''[Name=Pat2] string :: {Second pattern}''</span style>
+
*<span style="font-family:times roman;">''[Name=Detect] string''</span style>
+
*<span style="font-family:times roman;">''[Name=Match] string''</span style>
+
*<span style="font-family:times roman;">''[Name=NoMax] bool''</span style>
+
*<span style="font-family:times roman;">''[Name=NoMin] bool''</span style>
+
*<span style="font-family:times roman;">''[Name=NoUnknown] bool''</span style>
+
  
===Example===
+
===Visualize tie points===
For example with the Buddha dataset, you can launch : <br>
+
NB : This tool works only for Linux OS.<br>
<code>mm3d Tapioca MulScale "IMG_[0-9]{4}.tif" 300 -1</code>
+
If you want to visualize tie points matched by Tapioca, you can run the command [[SEL]]:
<br>
+
<pre>mm3d SEL ./ image_1 image_2 KH=NB</pre>
<br>
+
[[Image:tapioca_exemple_sift.png|x200px]]
For example with the Cuxa dataset, you can launch :<br>
+
<code>mm3d Tapioca MulScale "Abbey-IMG_.*.jpg" 200 800</code>
+
<br>
+
  
==All==
+
==Tie points computation mode==
For all possible pairs.
+
===All===
 +
Tie points are looked for in all possible pair of images at the reduced resolution chosen by the user in the ''Size of image'' option.
 +
 
 +
====Help====
 +
You can access to the help by typing :
 +
<pre>mm3d Tapioca All -help</pre>
  
===Help===
 
You can access to the help by typing :<br>
 
<code>mm3d Tapioca All -help</code> <br>
 
<br>
 
 
Mandatory unnamed args :
 
Mandatory unnamed args :
*<span style="font-family:times roman;"> ''string :: {Full Name (Dir+Pat)}''</span style>
+
*string :: {Full Name (Dir+Pat)}
*<span style="font-family:times roman;"> ''INT :: {Size of image}''</span style>
+
*INT :: {Size of image, in pixels}
<br>
+
 
 
Named args :
 
Named args :
*<span style="font-family:times roman;"> ''[Name=ExpTxt] INT :: {Export files in text format (Def=false means binary)}''</span style>
+
*[Name=ExpTxt] INT :: {Export files in text format (Def=false means binary)}
*<span style="font-family:times roman;"> ''[Name=PostFix] string :: {Add postfix in directory}''</span style>
+
*[Name=PostFix] string :: {Add postfix in directory}
*<span style="font-family:times roman;"> ''[Name=ByP] INT :: {By process}''</span style>
+
*[Name=ByP] INT :: {By process}
*<span style="font-family:times roman;"> ''[Name=Pat2] string :: {Second pattern}''</span style>
+
*[Name=Pat2] string :: {Second pattern}
*<span style="font-family:times roman;"> ''[Name=Detect] string''</span style>
+
*[Name=Detect] string
*<span style="font-family:times roman;"> ''[Name=Match] string''</span style>
+
*[Name=Match] string
*<span style="font-family:times roman;"> ''[Name=NoMax] bool''</span style>
+
*[Name=NoMax] bool
*<span style="font-family:times roman;"> ''[Name=NoMin] bool''</span style>
+
*[Name=NoMin] bool
*<span style="font-family:times roman;"> ''[Name=NoUnknown] bool''</span style>
+
*[Name=NoUnknown] bool
  
===Example===
+
Using '''-1''' as Image's size is equivalent to use full resolution image. But it's recommended to use rather a resolution to a scaling between 0.3 and 0.5.
 +
 
 +
====Example====
 
For example with the Ramses dataset, you can launch : <br>
 
For example with the Ramses dataset, you can launch : <br>
<code>mm3d Tapioca All "IMG.*CR2" 1000</code>
+
<pre>mm3d Tapioca All "IMG.*CR2" 1000</pre>
<br>
+
 
<br>
+
 
For example with the Zhenjue dataset, you can launch : <br>
 
For example with the Zhenjue dataset, you can launch : <br>
<code>mm3d Tapioca All ".*JPG" 1500</code>
+
<pre>mm3d Tapioca All ".*JPG" 1500</pre>
  
==Line==
+
===MulScale===
It often occurs that the photos canvas has a linear structure, for example, when you acquire photos of a facade walking along the street. In this case, you know that Kth can only have tie points with images in the interval [K - δ, K + δ] giving this information to Tapioca can save a lot of time. The syntax is : delta is δ and all the other arguments have the same meaning as in the All mode.
+
The mode MulScale can save significant computation time on large sets of images. Even if it is not optimal for all canvas, it has the benefit of being general and usable with any data set. In this mode, a first computation of tie points is made for all the pairs of images at a low resolution (so it is quite fast), chosen by the user through the ''Size of Low Resolution Images'' option. Then the computation is done at the ''Size of High Resolution Images'' only for the pairs having, at low resolution, a number of tie points exceeding a given threshold (''NbMinPt'').
 +
 
 +
====Help====
 +
You can access to the help by typing :
 +
<pre>mm3d Tapioca MulScale -help</pre>
  
===Help===
 
You can access to the help by typing :<br>
 
<code>mm3d Tapioca Line -help</code> <br>
 
<br>
 
 
Mandatory unnamed args :
 
Mandatory unnamed args :
*<span style="font-family:times roman;"> ''string :: {Full Name (Dir+Pat)}''</span style>
+
*string :: {Full Name (Dir+Pat)}
*<span style="font-family:times roman;"> ''INT :: {Image size}''</span style>
+
*INT :: {Size of Low Resolution Images}
*<span style="font-family:times roman;"> ''INT :: {Number of adjacent images to look for (&#948)}''</span style>
+
*INT :: {Size of High Resolution Images}
<br>
+
 
 
Named args :
 
Named args :
*<span style="font-family:times roman;"> ''[Name=ExpTxt] INT :: {Export files in text format (Def=false means binary)}''</span style>
+
*[Name=ExpTxt] INT :: {Export files in text format (Def=false means binary)}
*<span style="font-family:times roman;"> ''[Name=Jump] vector<int> :: {Densification by jump }''</span style>
+
*[Name=ByP] INT :: {By process}
*<span style="font-family:times roman;"> ''[Name=PostFix] string :: {Add postfix in directory}''</span style>
+
*[Name=PostFix] string :: {Add postfix in directory}
*<span style="font-family:times roman;"> ''[Name=ByP] INT :: {By process}''</span style>
+
*[Name=NbMinPt] INT :: {Minimum number of points}
*<span style="font-family:times roman;"> ''[Name=Circ] INT :: {In line mode if it's a loop (begin ~ end)}''</span style>
+
*[Name=DLR] INT :: {Do Low Resolution}
*<span style="font-family:times roman;"> ''[Name=ForceAdSupResol] bool :: {to force computation even when Resol''</span style>
+
*[Name=Pat2] string :: {Second pattern}
*<span style="font-family:times roman;"> ''[Name=Detect] string''</span style>
+
*[Name=Detect] string
*<span style="font-family:times roman;"> ''[Name=Match] string''</span style>
+
*[Name=Match] string
*<span style="font-family:times roman;"> ''[Name=NoMax] bool''</span style>
+
*[Name=NoMax] bool
*<span style="font-family:times roman;"> ''[Name=NoMin] bool''</span style>
+
*[Name=NoMin] bool
*<span style="font-family:times roman;"> ''[Name=NoUnknown] bool''</span style>
+
*[Name=NoUnknown] bool
  
===Example===
+
====Example====
For example with the Ramses dataset, you can launch : <br>
+
For example with the Buddha dataset, you can launch :
<code> mm3d Tapioca Line "IMG.*CR2" 3 1000</code>
+
<pre>mm3d Tapioca MulScale "IMG_[0-9]{4}.tif" 300 -1</pre>
<br>
+
For example with the Cuxa dataset, you can launch :
 +
<pre>mm3d Tapioca MulScale "Abbey-IMG_.*.jpg" 200 800</pre>
  
  
==Graph==
+
===Line===
 +
It often occurs that the photos canvas has a linear structure, for example, when you acquire photos of a facade walking along the street. In this case, you know that the <math>Kth</math> image can only have tie points with images in the interval [K - δ, K + δ] giving this information to Tapioca can save a lot of time. The argument ''Number of adjacent images to look for'' sets δ. The ''Circ'' option is used if the acquisition is circular (the first and last image see each other). All the other arguments have the same meaning as in the ''All'' mode.
  
 +
====Help====
 +
You can access to the help by typing :
 +
<pre>mm3d Tapioca Line -help</pre>
  
===Help===  
+
Mandatory unnamed args :
 +
*string :: {Full Name (Dir+Pat)}
 +
*INT :: {Image size}
 +
*INT :: {Number of adjacent images to look for (&#948)}
 +
 
 +
Named args :
 +
*[Name=ExpTxt] INT :: {Export files in text format (Def=false means binary)}
 +
*[Name=Jump] vector<int> :: {Densification by jump }
 +
*[Name=PostFix] string :: {Add postfix in directory}
 +
*[Name=ByP] INT :: {By process}
 +
*[Name=Circ] INT :: {In line mode if it's a loop (begin ~ end)}
 +
*[Name=ForceAdSupResol] bool :: {to force computation even when Resol
 +
*[Name=Detect] string
 +
*[Name=Match] string
 +
*[Name=NoMax] bool
 +
*[Name=NoMin] bool
 +
*[Name=NoUnknown] bool
 +
 
 +
====Example====
 +
For example with the Ramses dataset, you can launch :
 +
<pre> mm3d Tapioca Line "IMG.*CR2" 1000 3</pre>
 +
 
 +
===Graph===
 +
 
 +
====Help====  
 
You can access to the help by typing :<br>
 
You can access to the help by typing :<br>
<code>mm3d Tapioca Graph -help</code> <br>
+
<pre>mm3d Tapioca Graph -help</pre>  
<br>
+
 
 
Mandatory unnamed args :
 
Mandatory unnamed args :
*<span style="font-family:times roman;"> ''string :: {Full images' pattern (directory+pattern)}''</span style>
+
*string :: {Full images' pattern (directory+pattern)}
*<span style="font-family:times roman;"> ''INT :: {Processing size of image (for the greater dimension)} ''</span style>
+
*INT :: {Processing size of image (for the greater dimension)}
<br>
+
 
 
Named args :
 
Named args :
*<span style="font-family:times roman;"> ''[Name=ByP] INT :: {By process}''</span style>
+
*[Name=ByP] INT :: {By process}
*<span style="font-family:times roman;"> ''[Name=Detect] string :: {executable used to detect keypoints}''</span style>
+
*[Name=Detect] string :: {executable used to detect keypoints}
*<span style="font-family:times roman;"> ''[Name=MaxPoint] INT :: {number of points used per image to construct the graph (default 200)}''</span style>
+
*[Name=MaxPoint] INT :: {number of points used per image to construct the graph (default 200)}
*<span style="font-family:times roman;"> ''[Name=MinScale] REAL :: {if specified, points with a lesser scale are ignored}''</span style>
+
*[Name=MinScale] REAL :: {if specified, points with a lesser scale are ignored}
*<span style="font-family:times roman;"> ''[Name=MaxScale] REAL :: {if specified, points with a greater scale are ignored}''</span style>
+
*[Name=MaxScale] REAL :: {if specified, points with a greater scale are ignored}
*<span style="font-family:times roman;"> ''[Name=NbRequired] INT :: {number of matches to create a connexion between two images (default 1)}''</span style>
+
*[Name=NbRequired] INT :: {number of matches to create a connexion between two images (default 1)}
*<span style="font-family:times roman;"> ''[Name=Out] string :: {name of the produced XML file}''</span style>
+
*[Name=Out] string :: {name of the produced XML file}
*<span style="font-family:times roman;"> ''[Name=PrintGraph] bool :: {print result graph in standard output}''</span style>
+
*[Name=PrintGraph] bool :: {print result graph in standard output}
  
==File==
+
===File===
File specifies a set of images to be matched. For all these images, a set of sift descriptor will be computed. However, all the pairs of descriptors sets will not be matched. To optimize the computation, a subset of images pair will be described by the Mode parameters. The first part of File is a directory, and the second one is the description of the files to be computed with Tapioca. The results will be written in the subdirectory Homol of the specified directory.
+
A file specifying a set of images to be matched is needed here. Such a file can either be generated manually or be produced with [[OriConvert]] when the images come with GPS information, the images to be matched together being within a given distance threshold of each others.
  
===Help===  
+
====Help====  
 
You can access to the help by typing :<br>
 
You can access to the help by typing :<br>
<code>mm3d Tapioca File -help</code> <br>
+
<pre>mm3d Tapioca File -help</pre>  
<br>
+
 
 
Mandatory unnamed args :
 
Mandatory unnamed args :
*<span style="font-family:times roman;"> ''string :: {XML-File of pair}''</span style>
+
*string :: {XML-File of pair}
*<span style="font-family:times roman;"> ''INT :: {Resolution}''</span style>
+
*INT :: {Resolution}
<br>
+
 
 
Named args :
 
Named args :
*<span style="font-family:times roman;"> ''[Name=ExpTxt] INT :: {Export files in text format (Def=false means binary)}''</span style>
+
*[Name=ExpTxt] INT :: {Export files in text format (Def=false means binary)}
*<span style="font-family:times roman;"> ''[Name=PostFix] string :: {Add postfix in directory}''</span style>
+
*[Name=PostFix] string :: {Add postfix in directory}
*<span style="font-family:times roman;"> ''[Name=ByP] INT :: {By process}''</span style>
+
*[Name=ByP] INT :: {By process}
*<span style="font-family:times roman;"> ''[Name=Detect] string''</span style>
+
*[Name=Detect] string
*<span style="font-family:times roman;"> ''[Name=Match] string''</span style>
+
*[Name=Match] string
*<span style="font-family:times roman;"> ''[Name=NoMax] bool''</span style>
+
*[Name=NoMax] bool
*<span style="font-family:times roman;"> ''[Name=NoMin] bool''</span style>
+
*[Name=NoMin] bool
*<span style="font-family:times roman;"> ''[Name=NoUnknown] bool''</span style>
+
*[Name=NoUnknown] bool
 +
 
 +
====Example====
 +
In the tutorial [[GrandLeez]], we use the option File for [[Tapioca]].
 +
The file <i>FileImagesNeighbour.xml</i> contain for each images, his differents neighboors. If you open the file, you can see :
 +
<pre>
 +
    <Cple>R0040439.JPG R0040519.JPG</Cple>
 +
    <Cple>R0040439.JPG R0040514.JPG</Cple>
 +
    <Cple>R0040439.JPG R0040444.JPG</Cple>
 +
    <Cple>R0040439.JPG R0040517.JPG</Cple>
 +
    <Cple>R0040439.JPG R0040438.JPG</Cple>
 +
    <Cple>R0040439.JPG R0040440.JPG</Cple>
 +
    <Cple>R0040439.JPG R0040441.JPG</Cple>
 +
    <Cple>R0040439.JPG R0040516.JPG</Cple>
 +
    <Cple>R0040439.JPG R0040442.JPG</Cple>
 +
    <Cple>R0040439.JPG R0040515.JPG</Cple>
 +
    <Cple>R0040439.JPG R0040443.JPG</Cple>
 +
</pre>
 +
It means, image <i>R0040439.JPG</i> is connected with all the images detailed in <Cple> tag. So you can run the tie point generation with [[Tapioca]] using this file :
 +
<pre>mm3d Tapioca File FileImagesNeighbour.xml -1</pre>
 +
 
 +
=What Tie Points is?=
 +
 
 +
==Tie points on low contrast Images==
 +
The current implementation of SIFT++ used in MicMac is not fully invariant to scaling/translation in radiometry. This may be a problem in case of acquisitions having a good SNR but with low contrast in the scene; in this case, thanks to good SNR there is potential information to get tie points, but as this information is assimilated to noise, it cannnot be extracted. To overcome this problem, it is possible to require that MicMac computes some contrast enhancement on images before computing SIFT points.

Version actuelle en date du 13 décembre 2021 à 04:22

Picto-liste.png List of commands

Description

Tapioca is a simple tool interface for computing tie points. I think Tapioca should be sufficient in 95% of cases. If it is not the case, you will have to refer to a more complex and powerful tool named Pastis which will be described later. In fact, Tapioca is only an interface to Pastis.

Syntax

The global syntax for Tapioca is

mm3d Tapioca UnNamedArgs NamedArgs

Allowed commands

  • MulScale : Compute tie points for images in low resolution and then for high resolution.
  • All : Compute tie points for all images in a given resolution.
  • Line : Compute tie points for linear image canvas.
  • File : Compute tie points for images in a xml file
  • Graph : in development

Results

Tapioca generate a directory named "Homol" ("Homol_SRes" for Tapioca MulScale) in your working directory which contain for each image of your canvas, a directory named "PastisImage_name". In this directory "Pastis" you will find a binary file (".dat") for each image linked with the first image by tie points. This binary files contains tie points.
For example, in Gravillons dataset, all images are linked so this is the arborescence of the Gravillon Homol directory :
Tapioca homol arborescence.png

Workflow

Tapioca, is generally the first command to launch in a MicMac process.
Picto-previous.png Previous Command : ~
Picto-next.png Next Command : (HomolFilterMasq,Schnaps,) Tapas.

Visualize tie points

NB : This tool works only for Linux OS.
If you want to visualize tie points matched by Tapioca, you can run the command SEL:

mm3d SEL ./ image_1 image_2 KH=NB

Tapioca exemple sift.png

Tie points computation mode

All

Tie points are looked for in all possible pair of images at the reduced resolution chosen by the user in the Size of image option.

Help

You can access to the help by typing :

mm3d Tapioca All -help

Mandatory unnamed args :

  • string :: {Full Name (Dir+Pat)}
  • INT :: {Size of image, in pixels}

Named args :

  • [Name=ExpTxt] INT :: {Export files in text format (Def=false means binary)}
  • [Name=PostFix] string :: {Add postfix in directory}
  • [Name=ByP] INT :: {By process}
  • [Name=Pat2] string :: {Second pattern}
  • [Name=Detect] string
  • [Name=Match] string
  • [Name=NoMax] bool
  • [Name=NoMin] bool
  • [Name=NoUnknown] bool

Using -1 as Image's size is equivalent to use full resolution image. But it's recommended to use rather a resolution to a scaling between 0.3 and 0.5.

Example

For example with the Ramses dataset, you can launch :

mm3d Tapioca All "IMG.*CR2" 1000

For example with the Zhenjue dataset, you can launch :

mm3d Tapioca All ".*JPG" 1500

MulScale

The mode MulScale can save significant computation time on large sets of images. Even if it is not optimal for all canvas, it has the benefit of being general and usable with any data set. In this mode, a first computation of tie points is made for all the pairs of images at a low resolution (so it is quite fast), chosen by the user through the Size of Low Resolution Images option. Then the computation is done at the Size of High Resolution Images only for the pairs having, at low resolution, a number of tie points exceeding a given threshold (NbMinPt).

Help

You can access to the help by typing :

mm3d Tapioca MulScale -help

Mandatory unnamed args :

  • string :: {Full Name (Dir+Pat)}
  • INT :: {Size of Low Resolution Images}
  • INT :: {Size of High Resolution Images}

Named args :

  • [Name=ExpTxt] INT :: {Export files in text format (Def=false means binary)}
  • [Name=ByP] INT :: {By process}
  • [Name=PostFix] string :: {Add postfix in directory}
  • [Name=NbMinPt] INT :: {Minimum number of points}
  • [Name=DLR] INT :: {Do Low Resolution}
  • [Name=Pat2] string :: {Second pattern}
  • [Name=Detect] string
  • [Name=Match] string
  • [Name=NoMax] bool
  • [Name=NoMin] bool
  • [Name=NoUnknown] bool

Example

For example with the Buddha dataset, you can launch :

mm3d Tapioca MulScale "IMG_[0-9]{4}.tif" 300 -1

For example with the Cuxa dataset, you can launch :

mm3d Tapioca MulScale "Abbey-IMG_.*.jpg" 200 800


Line

It often occurs that the photos canvas has a linear structure, for example, when you acquire photos of a facade walking along the street. In this case, you know that the [math]Kth[/math] image can only have tie points with images in the interval [K - δ, K + δ] giving this information to Tapioca can save a lot of time. The argument Number of adjacent images to look for sets δ. The Circ option is used if the acquisition is circular (the first and last image see each other). All the other arguments have the same meaning as in the All mode.

Help

You can access to the help by typing :

mm3d Tapioca Line -help

Mandatory unnamed args :

  • string :: {Full Name (Dir+Pat)}
  • INT :: {Image size}
  • INT :: {Number of adjacent images to look for (&#948)}

Named args :

  • [Name=ExpTxt] INT :: {Export files in text format (Def=false means binary)}
  • [Name=Jump] vector<int> :: {Densification by jump }
  • [Name=PostFix] string :: {Add postfix in directory}
  • [Name=ByP] INT :: {By process}
  • [Name=Circ] INT :: {In line mode if it's a loop (begin ~ end)}
  • [Name=ForceAdSupResol] bool :: {to force computation even when Resol
  • [Name=Detect] string
  • [Name=Match] string
  • [Name=NoMax] bool
  • [Name=NoMin] bool
  • [Name=NoUnknown] bool

Example

For example with the Ramses dataset, you can launch :

 mm3d Tapioca Line "IMG.*CR2" 1000 3

Graph

Help

You can access to the help by typing :

mm3d Tapioca Graph -help

Mandatory unnamed args :

  • string :: {Full images' pattern (directory+pattern)}
  • INT :: {Processing size of image (for the greater dimension)}

Named args :

  • [Name=ByP] INT :: {By process}
  • [Name=Detect] string :: {executable used to detect keypoints}
  • [Name=MaxPoint] INT :: {number of points used per image to construct the graph (default 200)}
  • [Name=MinScale] REAL :: {if specified, points with a lesser scale are ignored}
  • [Name=MaxScale] REAL :: {if specified, points with a greater scale are ignored}
  • [Name=NbRequired] INT :: {number of matches to create a connexion between two images (default 1)}
  • [Name=Out] string :: {name of the produced XML file}
  • [Name=PrintGraph] bool :: {print result graph in standard output}

File

A file specifying a set of images to be matched is needed here. Such a file can either be generated manually or be produced with OriConvert when the images come with GPS information, the images to be matched together being within a given distance threshold of each others.

Help

You can access to the help by typing :

mm3d Tapioca File -help

Mandatory unnamed args :

  • string :: {XML-File of pair}
  • INT :: {Resolution}

Named args :

  • [Name=ExpTxt] INT :: {Export files in text format (Def=false means binary)}
  • [Name=PostFix] string :: {Add postfix in directory}
  • [Name=ByP] INT :: {By process}
  • [Name=Detect] string
  • [Name=Match] string
  • [Name=NoMax] bool
  • [Name=NoMin] bool
  • [Name=NoUnknown] bool

Example

In the tutorial GrandLeez, we use the option File for Tapioca. The file FileImagesNeighbour.xml contain for each images, his differents neighboors. If you open the file, you can see :

     <Cple>R0040439.JPG R0040519.JPG</Cple>
     <Cple>R0040439.JPG R0040514.JPG</Cple>
     <Cple>R0040439.JPG R0040444.JPG</Cple>
     <Cple>R0040439.JPG R0040517.JPG</Cple>
     <Cple>R0040439.JPG R0040438.JPG</Cple>
     <Cple>R0040439.JPG R0040440.JPG</Cple>
     <Cple>R0040439.JPG R0040441.JPG</Cple>
     <Cple>R0040439.JPG R0040516.JPG</Cple>
     <Cple>R0040439.JPG R0040442.JPG</Cple>
     <Cple>R0040439.JPG R0040515.JPG</Cple>
     <Cple>R0040439.JPG R0040443.JPG</Cple>

It means, image R0040439.JPG is connected with all the images detailed in <Cple> tag. So you can run the tie point generation with Tapioca using this file :

mm3d Tapioca File FileImagesNeighbour.xml -1

What Tie Points is?

Tie points on low contrast Images

The current implementation of SIFT++ used in MicMac is not fully invariant to scaling/translation in radiometry. This may be a problem in case of acquisitions having a good SNR but with low contrast in the scene; in this case, thanks to good SNR there is potential information to get tie points, but as this information is assimilated to noise, it cannnot be extracted. To overcome this problem, it is possible to require that MicMac computes some contrast enhancement on images before computing SIFT points.