seung-lab / ImageRegistration.jl

Image registration toolbox for Julia
Other
11 stars 5 forks source link

SIFT/SURF features #2

Open mronian opened 8 years ago

mronian commented 8 years ago

Hey,

I am working on a GSoC proposal for Images.jl and am planning to add a 2D features module which will contain functions for calculating features like SIFT/SURF. These are included in the "Features not yet added" part of the README here. I feel adding SIFT/SURF to Images.jl will make it more general purpose which can then be used here since ImageRegistration.jl already depends on Images.jl. The other way round will make it specific to calculating features for projective transformation and a person wanting to just use SIFT/SURF will have to add this package too. I would like to know your opinion on this and if my proposal seems correct.

macrintr commented 8 years ago

Hey @mronian - I like the initiative. @timholy brought this up when I initially added this repo to METADATA.jl: https://github.com/JuliaLang/METADATA.jl/pull/3728

We made ImageRegistration.jl a separate repo because it seemed to follow one (of the many) of MATLAB's grouping of functions: http://www.mathworks.com/help/vision/image-registration-1.html & http://www.mathworks.com/products/image/features.html#image-registration-and-geometric-transformations

Following that particular MATLAB grouping, you could make an argument to put SIFT/SURF here, but maybe we should be merging these types of tools into a larger image processing toolbox, like what @timholy suggested with https://github.com/JuliaImages.

I don't have any strong feelings about organization between repos. As far as your proposal goes, feature detectors & exposure correcting would be great additions anywhere in the Julia family of functions.

mronian commented 8 years ago

Thanks @macrintr !

I was going through some discussions on implementation of SIFT/SURF in other packages and I came to know that they are patented and cannot be used without the author's permission. Though OpenCV has the functions, they state that to use them you need to obtain permission. I found a discussion on their usergroup on this issue. Scikit-Image does not include SIFT or SURF for the same reason. I also came across other algorithms which are not only free to use but also said to be better for feature description like BRISK and FREAK. I would like to work on them instead of SIFT or SURF so that the code is open source in the true sense and there are no patent issues. What do you think?

I have made a draft of my proposal which can be found here : GSoC Proposal. I am still filling out some of the parts.

Inline commenting is enabled for the Google Doc. I will be grateful if you could provide your comments and suggestions to help me improve my proposal.

Thanks!