I've recently read Herbert Bay's paper of SURF. From which I understand:
- SURF calculates a table from each image pixel's Hessian matrix's determinant, instead of SIFT's Difference-of-Gaussian table. Then SURF finds local maximal (not extremal) by comparing each determinant to its 8 neighbors in the same scale, and 18 neighbors from 2 nearby scales. Finally, SURF interpolates the maximal point to find the exact position of the point of interest.
- In the detecting part, SURF uses 9×9 approximations of second-order Gaussian derivatives, combine with an integral image to fast calculate the determinant of each image point's Hessian matrix. The calculation for each derivative of the Hessian matrix is done by placing the correct 9×9 filter center point to an image pixel x, and simply multiplying corresponding points of the filter and the 9×9 sub-image whose point x is the center (points that are off image equal to 0), then calculating the sum of all those multiplications.
Did I take something wrong? Any help is appreciated.