Thanks for the explanation. This kind of background is essential to
understand the methods and thus use them right.
Just to fully clarify, for a given keypoint in image1, is the ratio of "the
distance to the closest to the distance to the second closest" computed
to all keypoints of image 2 or just to those within a radius equal to
precision only? If the ratio is computed to all keypoints of image 2 we
could often have
points with similar radiometry, thus would get a high ratio and erroneously
discard a correct matching. While the probability of having a
non-homologous point with similar radiometry within the radius of precision
would be low and thus the erroneous rejection would be rare.

Also, why is "the signature is a 128 dimension vector" ? Are you using a
window instead of the actual pixel of the keypoint?

Agus


On Mon, Aug 31, 2015 at 3:12 PM, Julien Michel <[email protected]>
wrote:

> 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]>
> 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 
>> Extractionhttp://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]
>> 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.
>>
>
>
>
> --
> 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.
>

-- 
-- 
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