SIFT is derivative of DoG needed for Hessian or just DoG?

In summary, Wikipedia defines the Hessian of Difference of Gaussians as the matrix of second partial derivatives, and it can be approximated by taking discrete derivatives twice.
  • #1
NotASmurf
150
2
Wikipedia defines hessian of Difference of Gaussians as

f5ae0e691c5916c803a823927fc73d2b4c07bcbd


and earlier in the page uses D for difference of gaussians,
0c306d1f74e1df61c708529b9204c8983f455c1a

So do i just need D(x,y) or do i need d/dx D(x,y) for the elements? If so how does one go about differentiating DoG?

Any help appreciated
 
Technology news on Phys.org
  • #2
The Hessian is the matrix of second partial derivatives, so yes, you should read it as $$\left (\begin {array}{cc}
\frac {\partial^2D}{\partial x^2}&\frac {\partial^2D}{\partial x\partial y}\\
\frac {\partial^2D}{\partial y\partial x}&\frac {\partial^2D}{\partial y^2}
\end {array}\right) $$How do you usually go about doing a partial differential?
 
  • #3
Ibix said:
How do you usually go about doing a partial differential?

Using variants of central difference methods. In the past i have approximated hessian by taking discrete derivatives twice, but that was very inaccurate. Now I am using difference of Gaussian for first derivative, but seek an efficient/best way to compute Dxx, Dxy etc given that we know first derivative was obtained via DoG, for two reasons.

A) I have a very slow computer, generating the scale space and taking DoG takes above 20 seconds for one 200x200 image (I have no gpu)
B) I need very high accuracy for this project (in terms of keypoint detection/matching), false positives and too few true positives can cause exponentially noticeable flaws.
Accuracy matters more than speed, but if a tiny increase in accuracy requires a large decrease in speed it's not worth the tradeoff.
 
  • #4
So do the partial differentiation with a pencil and paper or Wolfram Alpha. Are you going to want to Fourier transform this at some point? If so you might also want to do the FT by hand.
 
  • #5
what is the most accurate way in your experience to get Dxx and Dxy, Is Central Diff applied to DoG really accurate enough for low resolution, noisy images?
 
Last edited:
  • #6
Do it with pen and paper. You can directly populate an array with the answer to whatever precision you need.

You presumably want to convolve this with an image. And you're presumably doing that by DFTing the image, multiplying by the FT of the derivatives of the difference of Gaussian and then inverse DFTing. So you can save a lot of computation by writing down the Fourier transform of the difference of Gaussian functions and calculating that directly.

Do you know what the partial derivatives of the Gaussian function are? Can you Fourier transform them?
 
  • Like
Likes jim mcnamara
  • #7
Ibix said:
Do you know what the partial derivatives of the Gaussian function are? Can you Fourier transform them?
Yea, thanks for the help :D
 

1. What is SIFT and how is it related to DoG?

SIFT (Scale-Invariant Feature Transform) is a feature detection and description algorithm commonly used in computer vision applications. It is based on the difference of Gaussian (DoG) function, which is used to detect keypoints in an image.

2. What is the purpose of using a derivative of DoG in SIFT?

The derivative of DoG is used in SIFT to improve the detection of keypoints at different scales. It helps to localize the keypoints more precisely and makes the algorithm more robust to scale changes in the image.

3. Is the Hessian matrix necessary for SIFT or is DoG sufficient?

The Hessian matrix is not necessary for SIFT, but it can be used to further improve the accuracy of keypoint detection. The Hessian matrix describes the curvature of the DoG function and can help in identifying stable keypoints.

4. Can SIFT be used without the derivative of DoG?

No, SIFT cannot be used without the derivative of DoG. The DoG function is a crucial part of the SIFT algorithm and is necessary for detecting and describing keypoints in an image.

5. How does using a derivative of DoG in SIFT improve feature matching?

The use of a derivative of DoG in SIFT improves feature matching by providing more accurate and stable keypoints. This allows for better matching of features between images, even in the presence of noise or scale changes.

Similar threads

  • Topology and Analysis
Replies
24
Views
2K
  • Calculus and Beyond Homework Help
Replies
2
Views
821
Replies
4
Views
881
  • Programming and Computer Science
Replies
2
Views
1K
  • Set Theory, Logic, Probability, Statistics
Replies
4
Views
2K
  • Programming and Computer Science
Replies
3
Views
2K
  • Programming and Computer Science
Replies
10
Views
1K
  • Programming and Computer Science
2
Replies
63
Views
3K
  • Calculus and Beyond Homework Help
Replies
23
Views
1K
Replies
6
Views
2K
Back
Top