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.

Reply via email to