hips算法学习

hips算法全称是“binary histogrammed intensity patches for efficient and robust " 由剑桥大学的Simon Taylor & Tom Drummond 提出。

主要参考资料:

 1)Robust feature matching in 2.3µs

        2)Multiple Target Localisation at over 100 FPS

        3)Binary Histogrammed Intensity Patches for Efficient and Robust Matching

4)基于HIPS图像匹配算法的研究和实践  黄泽财  华南理工大学  工程硕士论文

5)http://blog.sina.com.cn/s/blog_4d69f35a0101dovk.html  想飞的猪 (相当不喜欢这个人的狂妄的性格,自高自大,不过这个人技术一流)

6)http://blog.csdn.net/jia_zhengshen/article/details/17762789   fast算法总结

hips算法:

一:为目标图片产生训练特征。

1.为了实现仿射不变性,首先产生不同尺度、不同视角的图片,为了增强抗噪声的能力,在产生的图片上进行适当的高斯模糊和噪声污染。

2.提取subFeatures

a。使用fast-9算法提取特征点位置。

b。特征点方向赋值。在使用sift算法中的方向的计算法公式计算出特征点附近的16点的方向后,采用相加的方法来计算特征点的方向。

hips算法学习_第1张图片

c提取特征点周围经过旋转后的8*8的grid,

d对提取的特征点进行聚类。由于产生的不同视角不同尺度的图片近1000张,所以要对特征点聚类。按照逆affine后特征点的位置误差不超过2个像素、角度不超过10degree进行聚类,超过这个限度则认为是两个不同的特征点。

e为每个特征点计算Histogrammed intensity patch(hip).每个特征点的hip包括64个l级个量化后的直方图。但在特征匹配的时候计算这么大的直方图与目标采集图片的匹配需要耗费巨大的内存和实践,Simon Taylor采用了Binary的方式来处理直方图。既缩减了内存又减少了runtime的时候的计算时间。

e1:统计每个patch中的每个位置的直方图。计算完后的数据结构如下:

hips算法学习_第2张图片

e2:设定阈值t。论文中的阈值设定的为0.05.

e3:如果dij的值小于设定的阈值t,那么dij=1,这个hisgotram的这个ij位置的bin被称为rare bin,否则dij=0;

根据论文中原文描述,作者在特征提取的阶段共产生了1000张图片,使用pc运行工花费25分钟的时间。

二:runtime  matching。

1.使用fast算法提取特征点位置。

2.使用同样的方法取样patch,利用图像的整体亮度,对每个patch的像素做归一化处理,以去除光照的影响。

3.观察patch中每个像素落在区间的情况,如果落在相应的区间,那么就设置为1,否则为0。这样也取得了runtime的类似于(1)式的矩阵R。

4.令误差e=R(AND)D.就是R矩阵与每个D矩阵进行逻辑与。e越小说明匹配越相似。找到e最小的那个矩阵d。那么r对应的patch与d矩阵对应的patch是对应的。这样也就找到了匹配点。

。。。。。。。。。。。待续。。。。。。。。。



你可能感兴趣的:(cv学习,opencv学习)