I see the following expression from http://en.wikipedia.org/wiki/Scale-invariant_feature_transform

The quadratic Taylor expansion of the Difference-of-Gaussian scale-space function, with the candidate keypoint as the origin is

$$D(\textbf{x}) = D + \frac{\partial D^T}{\partial \textbf{x}}\textbf{x} + \frac{1}{2}\textbf{x}^T \frac{\partial^2 D}{\partial \textbf{x}^2} \textbf{x}$$

where D and its derivatives are evaluated at the candidate keypoint and $\textbf x = (x,y,\sigma)$ is the offset from this point.

I'm very confused about this expression. I don't know why $D^T$ appears and don't understand everything. Is there someone to help me?

  • $\begingroup$ It's not $D^T$. It's $(\frac{\partial D}{\partial \textbf{x}})^T$. $\endgroup$
    – Peter K.
    Jul 5, 2013 at 18:40
  • $\begingroup$ This is a question!! could you tell me how to get the Derivative of the function? Thanks $\endgroup$
    – zychen
    Aug 31, 2018 at 3:52
  • $\begingroup$ @zychen Welcome to SE.SP! Here, it's not like many discussion forums: Answers should answer the asked question. Comments like yours should go in the comments. Because you're a very new member of this forum, you won't be able to comment; try answering some questions or editing a few questions / answers to get enough reputation so that you can comment. $\endgroup$
    – Peter K.
    Aug 31, 2018 at 10:55

1 Answer 1


The quantity $\frac{\partial D}{\partial \textbf{x}}$ is a vector, since it is the derivative of the scalar function $D(\textbf{x})$ w.r.t. all the elements of $\textbf{x}$. In the formula it is assumed that all vectors are column vectors, so in order to compute the dot product of the derivative $\frac{\partial D}{\partial \textbf{x}}$ and the vector $\textbf{x}$, you need to transpose one of them, which gives you a matrix product row times column (= scalar). The expression $\frac{\partial D^T}{\partial \textbf{x}}$ is simply the transpose of the vector of derivatives. Maybe it would have been clearer to write it as $\left(\frac{\partial D}{\partial \textbf{x}}\right)^T$.

Similarly, for the last term you have a row vector times a matrix (second derivative of $D$ w.r.t. $\textbf{x}$) times a column vector, which again results in a scalar value.

  • $\begingroup$ Thank you very much, but there is still confusing thing about 3rd term. If I want to 3-order term, how to represent? $\endgroup$
    – jakeoung
    Jul 6, 2013 at 1:49
  • $\begingroup$ Have a look at this. $\endgroup$
    – Matt L.
    Jul 7, 2013 at 19:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.