Feature Detectors and Descriptors in scikit-image

Ankit Agrawal aaaagrawal at gmail.com
Tue Jun 18 12:13:34 EDT 2013


Hi Anders,

       Thanks a lot for this helpful reply. I know I am replying pretty 
late, and that is because I did not read the VLFeat article on Features 
Detection and Descriptors completely until now.

Feature description is a messy business - there is little consensus in the 
> literature and in the implementations available! 
>
> For an overview of the feature extraction pipeline, I recommend reading 
> until and including section 2.3.2 in
> http://www.vlfeat.org/~vedaldi/assets/pubs/vedaldi10knowing.pdf
> Here, different types of interest points are described (disk, oriented 
> disk, ellipse, etc.). Moreover, the feature description pipeline is divided 
> into 3 steps (detection, canonization, description). This means that for 
> each interest point type, you will have to make a canonization method that 
> can bring the underlying image patch can to a form suitable for the 
> description algorithm, e.g. a 64x64 image patch.
> I recommend this approach because it is more flexible than if the 
> detection and description code is combined as it is done in e.g. SIFT. 
> However, I should mention that the approach is not ideal for 2 reasons:
>   - It requires more computations. In SIFT, the scale-space pyramid 
> generated in the detection step can be reused for description. 
>   - The canonization step introduces noise because we typically will have 
> to warp the image.
>
> I hope some of it made sense. Returning to your question on the data flow 
> between detectors and descriptors: I would recommend making the detectors 
> return a list of interest points. This list of interest points can then be 
> given to a descriptor function. It is up to the descriptor to canonize the 
> interest points if needed.
>
 
Meanwhile, it would be great if you can review the initial implementation<https://github.com/scikit-image/scikit-image/pull/591#discussion_r4730534>of BRIEF descriptor. The data structure that we have decided to use across 
skimage for storing keypoints/interest points is (N, 2) numpy array. Thanks 
a lot again!!

BTW, some time ago I wrote some code to canonize an affine interest point 
> (ellipse):
> https://github.com/andersbll/jetdesc/blob/master/util.py#L50
> Feel free to copy-paste whatever you might find useful in that repository. 
> :)
>
> Cheers,
> Anders
>

Regards,
Ankit Agrawal,
Communication and Signal Processing,
IIT Bombay. 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/scikit-image/attachments/20130618/e5e3d3bd/attachment.html>


More information about the scikit-image mailing list