Genetic Programming Computer Vision
GPCV is an open source library for computer vision algorithms generated by Genetic Programming. This library presents two new methods called Multi-Objective Interest Point Detector (MOP) [4, 1, 2] and GP-Hölder [5, 3] for the low-level vision task of interest point detection and region description respectively. This library is written in C++ and is implemented for Linux Ubuntu LTS 12.04 version and uses the OpenCV 2.4.8 library. These new methods have revealed to outperform most standard vision techniques such as the SURF descriptor and the Shi-Tomasi detector in a real world problem know as SLAM .
It is an interest point detector that was designed using multi-objective GP , optimized based on two competing objectives, point dispersion and repeatability rate. These objectives can be controlled with a parameter included in the detector.
In Fig. 1 the upper row shows the image operator of MOP and the lower row show the interest points after applying non-maximum suppression respectively (for example, (a) and (d)). The columns show different configuration of the parameters; minimum distance h and scale factor k.
To visually compare the interest point obtained, we show the interest point obtained by the ShiTomasi operator. Fig. 2 is similar to the fig but for the Shi-Tomasi operator and for the parameters; h free parameter, the neighborhood size for G1 y de Gd. So as a conclusion, the MOP will detect points that are dispersed and repeatable, depending on the scale factor you choose.
Is a region descriptor that was designed by Genetic Programming to estimate image regularity at low computational cost without sacrificing performance. For an image region extracted with an interest point detector, the Hölder descriptor is constructed by sampling the regularity matrix in a polar grid around the central point, and ordering the sampling based on the dominant orientation.
The following images show the match between the region descriptors of GP-Hölder and SURF for two images. The first image (Left) is size 100 x 130 and the second image (right) of 640 x 480. The MOP was used to detect the interest points of both images and the size of the region is 50.
Fig. 3 show the match between GP-Hölder descriptors of the two images. The parameters used for the GP-Hölder are 3 concentric rings and 21 samples per ring; this means that the length of the descriptor is equal sum of all the samples plus a sample of the center of the image, in this case 64.
Fig.4 show the match between SURF descriptors of the two images
To use the GPCV library, you need OpenCV 2.4.2 at least and to download the sour code from the link below https://github.com/Vkmorte . In the link you will find the library files GPCV.cpp and CPCV.h, and two main files that are an example of use for each method Holder_example.cpp and MOP_example.cpp. Also, there is a pdf file name GPCV_Library that describes the function of each method. For any help please contact email@example.com.