SIFT-registration

Hey KNIP-team,

is there something like SIFT-detection (FIJI-plugin: http://fiji.sc/wiki/index.php/Feature_Extraction) available for KNIP/KNIME? I've twiggled arround a little with the FIJI plugin and it seems to be superior to methods like normalized-cross-correlation-coefficient for finding known structures of interest (in my case exactly the same structure) within images. Please let me know, if you have something comparable :)

Best regards!

 

Manuel

Hi Manuel,

actually we have implemented the SURF (fast approximation of SIFT) features in KNIME in an experimental plugin. If it's urgent, we can provide it to you in an experimental state until we officially add tjhese nodes to our plugin.

Cheers!

Christian

 

Hey Christian,

cool! Actually yes, I'd like to have the experimental nodes (I assume they are not within the nightly build?) if this can be done straightforward at your side :). Not because its urgent, but because I'm interested in it.

Many thanks!

Manuel

 

Hi Manuel,

are you using KNIP from Update-Site or from SVN?

Cheers,

Christian

 

Hey Christian,

 

at the moment I'm using the update site. Can be changed, though ...

 

Cheers

 

Manuel

Hi Christian,

I get less-and-less surprised when I find out an algorithm is already available in KNIME. :)

Did it graduated to a stable version? I have searched the github repo for surf (also sift), but a  short search did not reveal it (nor in the node descriptions).

Thanks, gabor

Hi Gabor,

 

we have both, SIFT and SURF implemented in the prototype of the OpenCV integration update-site: https://community.knime.org/download/org.knime.knip.opencv.update

Unfortunately, this is really just a prototype, meaning that there are serious limitations in functionaltiy. For example, you can only process 8bit unsigned images at the moment.

Hope this helps anyway,

Christian

1 Like

Thank you Christian. (For those who want to give it a try, the it depends on the not yet released 1.3 version of KNIP, so the nightly update site should be used to install KNIP.)

To be honest, I am not very familiar with SIFT, so it is not clear for me what the global descriptor settings are or what should be set for the KNIME settings besides the image column. Unfortunately These are not mentioned in the node description. Are those there to select the proper layers within the image? Or some metadata column (in that case: why are those needed)? (Are there example workflows somewhere?)

Cheers, gabor

Hi Gabor,

at the moment, the plugin is only a prototype (thats why this plugin is not even part of our nightly build) and therefore there might be lack of documentation, limited functionality and no frequent bug-fixes.

The node settings should a subset of the described parameters in http://docs.opencv.org/master/da/df5/tutorial_py_sift_intro.html#gsc.tab=0 or http://docs.opencv.org/modules/nonfree/doc/feature_detection.html.

Of course there is no general suggestion for these parameters because they are very image depenend. Can you provide more details on what you want to achieve (type of images etc)? Maybe then I can help you more.

Cheers,

Christian

Hi Christian,

   Thanks for the info. This is just human curiosity. I wanted to get a better idea what are the outputs for the algorithm. I have seen ASIFT in action and was curious how things look like a level below. For starter I was thinking of using traffic signs and probably compare the output from the regular pedestrian signals to the ampelmann from Berlin. Those seem to be a good fit for learning.

   I have tried to add a(n int) column for the x and y parameters (those are required), but then, I got the following error:

java.lang.ClassCastException: org.knime.core.data.def.IntCell cannot be cast to org.knime.core.data.def.DoubleCell
    at org.knime.knip.opencv.base.descriptor.DescriptorNodeModel.execute(DescriptorNodeModel.java:181)

I guess it should have been casted to DoubleValue instead of DoubleCell. It is easy to work around this problem though.

Thanks, gabor

Hi Gabor,

SIFT only serve as interesting point detectors, which then can be used for several tasks (classification of entire images e.g. using bag of words to create feature vectors, under the assumption that SIFT is enough to describe them) or registration / matching purposes.

Interesting Point detection is only one part of the story, the other one is the description of the detected point. thats why we separated detectors from description.

I will try to find an example workflow these days.

Christian

 

 

Hi, anyone have updates on the SURF plugin for knime?

Hi there @pablo1102p ,

welcome to KNIME Community Forum!

Unfortunately there is no update on SURF plugin…

Br,
Ivan

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.