SIFT is the feature detector I am trying to implement for self-study purposes. But my question concerns the Gaussian blurring done as part of detecting the keypoints.
Gaussian pyramid is constructed. It is done by iteratively applying Gaussian blur (filter of pre-selected width). I.e. the next layer in the pyramid is calculated relatively to the current layer in pyramid. In this case, the relative
sigma are used. Example from the Python implementation on github (https://github.com/rmislam/PythonSIFT/blob/master/pysift.py) :
for image_index in range(1, num_images_per_octave): sigma_previous = (k ** (image_index - 1)) * sigma sigma_total = k * sigma_previous gaussian_kernels[image_index] = sqrt(sigma_total ** 2 - sigma_previous ** 2)
Is it possible to use absolute values of $\sigma$, i.e.
sigma_total from the code snippet, and always perform the blur relative to the first image in the octave? Not relative to the previous level in the pyramid?
Is it something that is done in https://github.com/Celebrandil/CudaSift/blob/Pascal/cudaSiftH.cu (function
PrepareLaplaceKernels), or I have misunderstood it?
UPD: the question regarding the https://github.com/Celebrandil/CudaSift/blob/Pascal/cudaSiftH.cu implementation is still open: what exactly they do there? The calculation of Gaussian kernels seem to be very different from those in the "classical" implementations available on github.