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

  • Thread starter Thread starter NotASmurf
  • Start date Start date
  • Tags Tags
    Derivative Hessian
Click For Summary

Discussion Overview

The discussion centers around the relationship between the Difference of Gaussians (DoG) and the Hessian matrix in the context of image processing, particularly regarding the computation of second derivatives for keypoint detection and matching. Participants explore methods for differentiating DoG and the implications of accuracy and computational efficiency.

Discussion Character

  • Technical explanation
  • Mathematical reasoning
  • Debate/contested

Main Points Raised

  • One participant questions whether the Hessian requires only the DoG function or also its derivatives, seeking clarification on how to differentiate DoG.
  • Another participant confirms that the Hessian is the matrix of second partial derivatives and provides a general form for it.
  • A participant shares their experience with using central difference methods for approximating the Hessian but notes issues with accuracy and speed, particularly on a slow computer.
  • There is a suggestion to perform partial differentiation manually or using tools like Wolfram Alpha, with a hint at the potential need for Fourier transforms in the process.
  • One participant asks about the accuracy of central difference methods applied to DoG for low-resolution, noisy images.
  • Another participant suggests that manual computation could yield precise results and discusses the efficiency of using Fourier transforms for convolution with image data.
  • Participants inquire about the knowledge of partial derivatives of the Gaussian function and their Fourier transforms, indicating a collaborative exploration of the topic.

Areas of Agreement / Disagreement

Participants express varying opinions on the best methods for computing the Hessian from DoG, with no consensus on the most accurate or efficient approach. There is a mix of suggestions and personal experiences shared, indicating an ongoing debate about the best practices in this area.

Contextual Notes

Participants mention limitations related to computational speed and accuracy, particularly in the context of processing low-resolution and noisy images. The discussion does not resolve these limitations or provide definitive solutions.

NotASmurf
Messages
150
Reaction score
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
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?
 
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.
 
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.
 
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:
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   Reactions: jim mcnamara
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
 

Similar threads

  • · Replies 24 ·
Replies
24
Views
5K
Replies
2
Views
1K
  • · Replies 4 ·
Replies
4
Views
3K
Replies
2
Views
2K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 10 ·
Replies
10
Views
2K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 4 ·
Replies
4
Views
1K