Tuesday, October 1, 2013

Discussions on FAST Corner Detection...Part 1

source:
http://fastcorner.wordpress.com/2010/09/09/fast-faq/
http://www.edwardrosten.com/work/fast.html


Great many thanks to Edward Rosten for creating a forum to ask questions and promptly answering them.

The below paragraphs are copied from the forum which I thought are helpful :)

MAN says:
In your code(ex. fast_9.cpp), the decision tree has already been conerted into C-code. It is a very long string of nested if-then-else statements. How can I make it?? What’s the machine learning?? Please explain the process to me.
  • edrosten says:
    It depends if you want to create code from a tree, or make a whole new tree.
    Either way, you will want the FAST-ER source code.
    Pre-made trees which are not yet converted into code are available. Look for the file “FAST_trees.tar.bz2″ and untar it. The raw (unconverted) trees have the suffix .ftree. They contain trees in a language neutral format which should be easy to convert into source code using your language of choice. I’ve used shell scripts to perform the conversion. See fast_tree_to_CXX as an example.
    If you want to make your own trees from scratch, then you need to use the learn_fast_tree program. That takes as input a list of extracted features. You can generate all features for fast-N using fast_N_featuresto ensure your tree is exact. I have a program to extract fast-N features from images, but it isn’t currently in the distribution. Let me know if you need it and I will add it.
    Let me know if you need any more information.


    Vivek Anand says:
    You consider points which are approximately 3 pixels away from the point being tested to find out if its a feature or not. Will the radius of 3pixels work for all image sizes or we need to change it based on the image size.
    • edrosten says:
      The radius you need depends on the scale of the features, rather than the size of the image. If the features are very blurry, then you will need a bigger ring. The easiest and most efficient way to do this is to subsample the image, e.g. by taking 2×2 squares, and averaging the pixels inside to make a single output pixel.

No comments:

Post a Comment