Code Monkey home page Code Monkey logo

Comments (8)

yunyundong avatar yunyundong commented on July 17, 2024 1

I got it, thank you very much for your patient explanation.

from affnet.

ducha-aiki avatar ducha-aiki commented on July 17, 2024

Yes, you are right. But.

  1. remember that sigma1 then is multiplied by coef. of the current octave. E.g. if octave is 2x downscaled. then coef is 2
  2. Moreover, for description, there is "measurement region scale" mrScale, typically equal to 3sqrt(3) or 5:

http://cmp.felk.cvut.cz/~chum/papers/perdoch-cvpr09.pdf

image

from affnet.

yunyundong avatar yunyundong commented on July 17, 2024

remember that sigma1 then is multiplied by coef. of the current octave. E.g. if octave is 2x downscaled. then coef is 2

the coef is 1.0/2 or 2 ? for example, the content range covered by a pixel in one image from octave 2 is equal to the content range covered by 2*2 pixels in octave 1. So, the coef is should be equal to 1/2?

Moreover, for description, there is "measurement region scale" mrScale, typically equal to 3sqrt(3) or 5:

So, ( assume that 0 is the original image size, no downsampling), the measurement region scale in the octave N is larger N times than the one of 0th octave image, in terms of image content?

from affnet.

ducha-aiki avatar ducha-aiki commented on July 17, 2024

@yunyundong Lets do the example.

Say, on level 0 octave 0 we have feature location (x,y). Default init_sigma is 1.6, so is it our sigma.
Therefore ScaleSpaceAffinePatchExtractor, if no orientation/affine module is used, would output following LAF:

[mr_region_scale * sigma, 0, x;
0, mr_region_scale * sigma, y] =

[8.31, 0, x;
0, 8.31, y]

So our patch in term of image content would correspond to circle with diameter 2 * 8.31 = 16.62 px. Which is then resized to PS, 32x32 by default.

If we have level 0, octave 1 at feature location (x,y), then LAF would be:

[2 * mr_region_scale * sigma, 0, x;
0, 2 * mr_region_scale * sigma, y]

If we have level 1 or level 2, then radius would be a bit larger according to

sigma = curSigma * np.sqrt(self.sigmaStep*self.sigmaStep - 1.0 )

from affnet.

yunyundong avatar yunyundong commented on July 17, 2024

I can get your example. What I want to say is as follows:
for level 0 in octave 0, the diameter is 2* 8.31=16.62 px
for level 0 in octave 1, the diameter is 2 * 3sqrt(3)*1.6 =16.62px (assume mr_region_sacle=3sqrt(3);)
Now, the image content covered by the region with diameter 16.0 pixel from level 0 in octave 1 is two larger than the image content covered by the region with diameter 16.62 . Because the octave is downsampled from octave 0 .
the coef 2 should be 1/2 so that the region from different octaves represent the same image content.

another example: a original image with size 6464 px, after downsample operation, it wil becom 3232 ->1616-> 88-> 44. Now , can I say the 44 image represent the same content range as the original 64*64 original image?

from affnet.

ducha-aiki avatar ducha-aiki commented on July 17, 2024

@yunyundong Yes, you can say it.
Regarding coefficient, I think, you are wrong. Inside the octave, it is always one. Octave is downsampled, we don`t need to account for it. But coefficient is 2 if you want to have go from "radius in octave image" to "radius in original image".

And yes, if you go other way round - to calculate "radius in octave" from "radius in original", then it is 1/2

from affnet.

yunyundong avatar yunyundong commented on July 17, 2024

In fact, I also suspect I am wrong. So, I am only curious that when the index of octave become larger, the region clipped to resample to ps*ps also becomes larger.

from affnet.

ducha-aiki avatar ducha-aiki commented on July 17, 2024

@yunyundong Yes, exactly.

from affnet.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.