Le 31/08/2015 14:29, Agustin Lobo a écrit :
Actually, I do not quite understand:
Is mfilter stating whether homologous points are filtered according to
the value
of "precision"?
yes
What do you mean by " padded according to the user defined *precision*.?
I mean that in geobins mode, we consider square tiles in reference image
and predict the location of the same tile on the secondary image. We
take a slightly larger region on the secondary image, to account for
sensor model precision (given by parameter "precision"). The idea is the
following : the naive matching cost is O(n1xn2), where n1 and n2 are the
number of keypoints found in each image. Therefore if you try to match
large images, it will take forever ... But if you divide your reference
image in bins, and predict roughly where the bin is in the second image,
you only match a few point at a time, and therefore gain speed (and
robustness, since it will constrain the range within which false matches
occur).
No padding is done in full mode (obviously), which is the one you use.
What is threshold? Is it a radiometric distance or an spatial distance?
Threshold is used during matching. Each keypoint has a signature, and
the matching algorithm works as follows :
- Euclidean distance is computed between the signatures of each keypoint
of the reference image and each keypoint of the secondary image (hence
the O(n1xn2) cost).
- A naive matching approach would consider that the correct match has
the minimum distance
- However, this does not allow to discard matches (each point will have
a match). But we know that some points should not have matches (because
they were not detected in both images). We therefore need a way to
discard them.
- We could filter them by considering that the distance should be
minimum AND bellow a given threshold. However, the signature is a 128
dimension vector, and setting such a threshold is not easy,
- A much more robust way of finding matches is by thresholding the ratio
from the distance to the closest to the distance to the second closest.
In fact, the more this ratio is close to 1 the more the match is
ambiguous (because there exist a second point in about the same
distance). The thresold parameter is exactly this : the thresold above
with the match will be discarded by the matching algortihm.
Let me explain. 0.6 is a fair default value and used in many papers /
implementaiton. By setting threshold to 10, you discard the filter on
distance ratio (remember the max is 1). Therefore, you have one match
for each of the detected point in image 1.
You therefore end up with a lot of false matches, and this is where
mfilter comes : since you are using this option, all matches that are
more that "precision" away of the the homologous point predicted by
sensor modelling get discarded (therefore, you discard 11469 points).
To cut it short : with threshold = 0.6, you have a few homologous
points, but none of them get discarded by the posteriori filtering,
probably because they are good.
With threshold = 10, you have a lot of homologous points, but most of
them get discareded by the a posteriori filter.
I have tested and by increasing threshold I get more homologous points
but also more of them get discarded (all other parameters equal):
$ otbcli_HomologousPointsExtraction -in1 IMG_0062.tif -band1 2 -in2
IMG_0062.tif -band2 1 -mode full -precision 50 -mfilter 1 -algorithm
surf -out IMG_0062homSURF2.txt -threshold 0.6
2015 Aug 31 13:58:34 : Application.logger (INFO) Elevation
management: setting default height above ellipsoid to 0 meters
2015 Aug 31 13:58:34 : Application.logger (INFO) Doing update
2015 Aug 31 13:58:40 : Application.logger (INFO) Found 15650 surf
points in image 1.
2015 Aug 31 13:58:47 : Application.logger (INFO) Found 15722 surf
points in image 2.
2015 Aug 31 13:59:14 : Application.logger (INFO) Found 740
homologous points.
2015 Aug 31 13:59:14 : Application.logger (INFO) 0 points discarded
$ otbcli_HomologousPointsExtraction -in1 IMG_0062.tif -band1 2 -in2
IMG_0062.tif -band2 1 -mode full -precision 50 -mfilter 1 -algorithm
surf -out IMG_0062homSURF2.txt -threshold 10
2015 Aug 31 13:59:26 : Application.logger (INFO) Elevation
management: setting default height above ellipsoid to 0 meters
2015 Aug 31 13:59:26 : Application.logger (INFO) Doing update
2015 Aug 31 13:59:32 : Application.logger (INFO) Found 15650 surf
points in image 1.
2015 Aug 31 13:59:38 : Application.logger (INFO) Found 15722 surf
points in image 2.
2015 Aug 31 14:00:07 : Application.logger (INFO) Found 15650
homologous points.
2015 Aug 31 14:00:08 : Application.logger (INFO) 11469 points discarded
Thanks!
Agus
On Wed, Jun 10, 2015 at 2:52 PM, Julien Michel <[email protected]
<mailto:[email protected]>> wrote:
Hi Agus,
The readthedoc documentation export is experimental (Rashad did
this a while ago), and surely has some unsolved issues for now. If
you refer to the official documentation here :
https://www.orfeo-toolbox.org/CookBook/CookBooksu103.html#x136-6690005.6.7
You will see that the table is right. For instance :
precision
Float
Estimated precision of the colocalisation function (in pixels).
mfilter
Boolean
Filter points according to geographical or sensor based
colocalisation
Regarding the precision parameter documentation, it is used at
several steps of the algorithm, as described in the Detailed
Description of the application :
"In this mode, the corresponding spatial bin in the second image
is estimated using geographical transform or sensor modelling, and
is padded according to the user defined *precision*."
"Last, in both modes the application can filter matches whose
colocalisation in first image exceed this *precision*."
But we can update the documentation of the parameter if you think
this is not clear enough.
Regards,
Julien
Le 10/06/2015 10:00, Agustin Lobo a écrit :
Doc on Homologous Point Extraction
http://otbcb.readthedocs.org/en/latest/Applications/app_HomologousPointsExtraction.html
is incomplete.
For example, the only information provided on argument mfilter
is that it is a Boolean. No definition, no default value, no example.
Instead, the command line help page is more informative:
"-mfilter <boolean> Filter points according to
geographical or sensor based colocalisation (optional, off by
default)"
although it is not clear if the user has to write "on" or "1" to turn
it on. And it is not clear either what kind of filter (mean filter?)
and which radius
Regarding "precision", there is also no definition in the table (the
information on
Parameter Type is just repeated) but it is later defined as in the
command line help page:
"Estimated precision of the colocalisation function (in pixels).
Estimated precision of the colocalisation function in pixels."
I do not say this definition is wrong, but it is no appropriate. The
definition must
state the role of the argument in the process. In this case, I
understand that the
algorithm searches, for a given point image in1 band1, an homologous point
on
image in2 band2 within a radius equal to the value of precision in pixels.
Correct?
Also, what happens if the user sets precision to i.e. 10 and mfilter is off?
Thanks
Agus
--
Julien MICHEL
CNES - DCT/SI/AP - BPI 1219
18, avenue Edouard Belin
31401 Toulouse Cedex 09 - France
Tel: +33 561 282 894 - Fax: +33 561 283 109
--
--
Check the OTB FAQ at
http://www.orfeo-toolbox.org/FAQ.html
You received this message because you are subscribed to the Google
Groups "otb-users" group.
To post to this group, send email to [email protected]
<mailto:[email protected]>
To unsubscribe from this group, send email to
[email protected]
<mailto:otb-users%[email protected]>
For more options, visit this group at
http://groups.google.com/group/otb-users?hl=en
---
You received this message because you are subscribed to the Google
Groups "otb-users" group.
To unsubscribe from this group and stop receiving emails from it,
send an email to [email protected]
<mailto:[email protected]>.
For more options, visit https://groups.google.com/d/optout.
--
Julien MICHEL
CNES - DCT/SI/AP - BPI 1219
18, avenue Edouard Belin
31401 Toulouse Cedex 09 - France
Tel: +33 561 282 894 - Fax: +33 561 283 109
--
--
Check the OTB FAQ at
http://www.orfeo-toolbox.org/FAQ.html
You received this message because you are subscribed to the Google
Groups "otb-users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/otb-users?hl=en
---
You received this message because you are subscribed to the Google Groups "otb-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.