-
Notifications
You must be signed in to change notification settings - Fork 47
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
LAFs2ell #13
Comments
LAF is local affine frame, 2x2 matrix A (2x3, if including x and y) You can read about it here: Ellipse is orientation-less representation of the ellipse by 3 coefficients: a, b, c. Relationship between them is ellipse (a,b,c) = invsqrt(LAF) T stand for pytorch function, no T means numpy function doing the same |
Hi, the [a,b;b,c]=inv(sqrtm(LAF)) is right ? or LAF=inv(sqrtm([a,b;b,c]))
In this function, I dont see the role of rectifyAffineTransformationUpIsUp. In fact, import scipy.linlag as la In this function
Thank you in advance. @ducha-aiki |
A23 is not the result of multiplication, but it can be interpreted as such. |
For a unit circle, it satisfy the condition |
Sorry, I don`t understand your question about solving and solvers, nor how is it related to affnet. |
@yunyundong See Section.2 here. Hope this helps |
u,w,v=SVD(A1), according to the acquired |
u = (cos1, sin1; -sin1 cos1) |
so, here, |
Yes. Or 1 = b, 2 = a. I don`t explicitly remember which rotation is which, but it is easy to figure out by trying them out. |
|
This is a very beautiful relationship. Where can I find the corresponding references. Thank you very much. |
@yunyundong Missing scalar is in isotropic scaling scale, you can normalize anisotropic tilt matrix both ways. If you do it via SVD, as I described it in the last comments, it would be t1, t2, t1*t2 = 1. However, it is not convenient to human to have (3 0; 0 1/3), because then it is not obvious from the first glance that one axis is 9 bigger than other. So better to have(9 0; 0 1), if you constructing such things from the elements, not by decomposition. You can read about this from many sources. One of them is |
so, |
@yunyundong yes. |
I am a newer to the representation of detected region. I only want to understand your source code thoroughly, but I failed. After your detailed interpretation, now I can understand your source code. |
@yunyundong It depends on what do you mean by "SIFT". Some times it understood as detector+orientation estimator + descriptor, as described in original paper. However, the detector from SIFT paper is difference of gaussians (DoG) and in computer vision community SIFT means only descriptor. So, if you want to DETECT points, then you could use this example: if instead you want to detect and DESCRIBE points and then match them with another image, I recommend you this example: But such example is missing RANSAC part, so full matching pipeline with homography estimation is best from here: https://github.com/ducha-aiki/mods-light-zmq Regarding SVD, I don`t know where is the proof, but you can easily derive it by yourself, given that u and v are orthonormal matrices and all orthonormal matrices of 2x2 are rotation matrices. P.S. I recommend you to read not only source code, but the paper itself, as well as Hessian-Affine paper. https://www.robots.ox.ac.uk/~vgg/research/affine/det_eval_files/mikolajczyk_ijcv2004.pdf |
@ducha-aiki Thank you very much for your kind help. I will read them. Thank you again. |
@ducha-aiki I want to know is there some special tricks for the function
I found w[0]/w[1]==w1[0]/w1[1], so this shows that |
Good point, may be I could use such transfer directly. One important thing that I do not need ellipse format anywhere except for benchmark purposes, as benchmark scripts expect such. |
I think, that your mistake is that SVD(matrix) != scalar * (SVD(matrix squared)) |
Hi, @ducha-aiki Especially for the line |
@yunyundong answered in #15 |
There were no description about functions
LAFs2ell
,LAFs2ellT
,ells2LAFsT
. Can you provide the reference about the relationship betweenLAF
andell
? It is difficult to understand the relation only from the source code. Thank you in advance! @ @ducha-aikiThe text was updated successfully, but these errors were encountered: