1. The SURF feature is a speed up version of SIFT
SURF uses an approximated DoG and the integral image (very similar to the method used in the famous Viola and Jones’ adaboost face detector) trick: An integral image is just an image which its each pixel value is the sum of all the original pixel values left and above it. The advantage of integral image is that it can compute block subtraction between any 2 blocks with just 6 calculations, so finding SURF features could be several order faster than the traditional SIFT features.
for Matlab users. The VLFeat vision library provides a nice SIFT library and a simple tutorial. SURFmex also provides an interface from Matlab to the OpenCV SURF library
ORB 用FAST作为特征点提取的算法,更快了,添加了特征点的主方向,这样就具有了旋转不变性。采用贪婪穷举的方法得到了相关性较低的随机点对,受噪声的影响很大. (ORB 选择该像素为中心的一个小patch作为比较对象,提高了抗噪能力。) BRIEF 则是对原图像滤波,降低噪声的影响
经过筛选之后的特征点:
3. FREAK
基于人眼视网膜细胞的分布,中间密集四周稀疏的原理,在图像中构建很多的区域,靠近中心的区域采样更密集,四周区域采样稀疏,随机对比各区域的像素得到一组2值特征;还根据了人眼看事物时眼睛不停的转动,设计了一种级联的搜索器
经过筛选后的特征点:
- Most of the vision work take a high dimension data and turn it into a lower dimension data while only throwing away uninformative data, with the aim of classifying it easier. SIFT points, HOG, SURF are just doing this – Trying to find the lower dimension data that tells most.
- And then we head to the second step to classify these lower dimension data. It could be as simple as nearest neighbor, probability compared with your trained model or any machine learning algorithms such as Adaboost, SVM, neural network, etc. This step classifies all these points into different categories.
Changing the parameters just slightly change the sub space your images are mapped to, or throwing these points into bins slightly differently. If it only works when you tweak it a lot, you are probably mapping to the wrong space or throwing points the wrong way.