Skip to content

feature match sieve_v0.1

Nils Hamel edited this page Sep 24, 2015 · 1 revision

Overview

The feature-match-sieve software provides basic sieves for matches filtering. Its use is specifically designed for cases where no filtering based on camera poses can be performed.

The proposed sieves are fully based on the matches list, without any other external parameters. Statistical, threshold and dichotomous sieves are availables and detailed below.

Usage

The feature-match-sieve software expects the following arguments and parameters. Starting with the stream arguments and parameters :

--input -i

Path of the input matches file.

--output -o

Path of the output matches file.

Sieve arguments and parameters :

--strenght -s, --minimum -m, --maximum -a

Sieve parameters. See below for their usage.

Software switch for sieve selection :

--stat-dist -r

Performs statistical filtering based on matches disparity value.
Matches that have a disparity bigger the the standard deviation
times --strenght are removed.

--thre-dist -t

Performs a threshold filtering based on matches disparity value. 
Matches that have a disparity outside of the range defined by 
--minimum and --maximum are removed.

--stat-disp -d

Peforms a statistical filtering based on both x and y components
of the matches disparity. Matches that have one or both components
bigger than their own standard deviation times --strenght parameter
are removed.

--stat-flow -f

Performs the same statistical filtering than --stat-disp, but
considering normalized disparity values. The normalization is simply
achieved by dividing each component by the norm and --strenght 
parameter is used the same way as for --stat-disp sieve.

--dich-slop -d

Performs a dichotomous filtering based on matches disparity slope.
The matches that have the same slope as the statistically most 
represented one are kept.

Demonstration

Considering the two rectilinear images extracted from panoramas taken with the Eyesis4Pi camera in Geneva :

 

and assuming information on camera poses are unknown, the SIFT keypoint generator and Flann keypoint matcher (OpenCV implementation) are used to extract matches between the two images. The left image below shows the raw matches provided by the SIFT and Flann algorithms. Using four passes of statistical disparity sieve (--stat-dist) with --strenght parameter at 0.5 and a dichotomous sieve (--dich-slop), the matches are filtered. The remaining matches are drawn on the right image below :

 

Repeating the same operation using SURF instead of SIFT, the left image below shows the raw matches and the right one shows the matches that passed the successive sieves :

 

One has to keep in mind that matches filtering without any information on camera poses is a difficult task. Usually, to obtain satisfying results, many sieve passes are necessary. Moreover, sieve parameters are usually function of images.

The four last images are generated using the feature-match-view software.

Compilation

The software binary can be build using its specific makefile by simply typing in its base directory :

$ make clean && make

The binary is placed in the local bin directory and is not copied in the feature-suite main bin directory. To generate the documentation, use the command :

$ make documentation

When documentation is generated, the previous one is preliminary removed.


  [Home](home)

  Section : image transformation

  Section : image keypoints

  Section : image matches

  Section : file operations

  Section : file standards

  • [Feature file standard](Feature file standard_v0.2)

  Development : logs


Clone this wiki locally