图像处理中,SIFT,FAST,MSER,STAR等特征提取算法的比较与分析(利用openCV实现)

本文实验为自己原创,转载请注明出处。

本人为研究生,最近的研究方向是物体识别。所以就将常用的几种特征提取方式做了一个简要的实验和分析。这些实验都是借助于openCV在vs2010下完成的。基本上都是使用的openCV中内置的一些功能函数。

1. SIFT算法

尺度不变特征转换(Scale-invariant feature transform或SIFT)算法是一种特征提取的方法。它在尺度空间中寻找极值点,并提取出其位置、尺度、旋转不变量,并以此作为特征点并利用特征点的邻域产生特征向量。
SIFT算法对于光线、噪声、和微小视角改变的容忍度相当高,且对于部分遮挡的物体也有较高的识别相率。
2. 实验过程

利用SIFT算法进行特征提取,然后进行物体识别,以下是实验的相关结果。(红色圆圈表示匹配成功的特征点,圆圈的大小代表匹配程度的多少,圆圈半径越大,代表匹配程度越高,绿色的方框为识别出的物体。)

图像处理中,SIFT,FAST,MSER,STAR等特征提取算法的比较与分析(利用openCV实现)_第1张图片
图像处理中,SIFT,FAST,MSER,STAR等特征提取算法的比较与分析(利用openCV实现)_第2张图片
图像处理中,SIFT,FAST,MSER,STAR等特征提取算法的比较与分析(利用openCV实现)_第3张图片


图像处理中,SIFT,FAST,MSER,STAR等特征提取算法的比较与分析(利用openCV实现)_第4张图片

以上几个实验中,基本上可以正确的识别出罐子,玩偶,蜘蛛侠,鞋子和玩具车。但是,对于苹果的识别实验,则未能达到理想的要求。实验结果如下。

图像处理中,SIFT,FAST,MSER,STAR等特征提取算法的比较与分析(利用openCV实现)_第5张图片

由实验结果可以看出,特征点的匹配大部分都是错误的,且未能正确识别出图片中的苹果。对苹果使用SIFT算法进行特征提取,结果如下图(红色箭头表示特征点,箭头的起始位置为特征点位置,箭头的方向为特征点最大梯度方向,箭头的长度代表该特征点的权重)。

图像处理中,SIFT,FAST,MSER,STAR等特征提取算法的比较与分析(利用openCV实现)_第6张图片

通过上图还可以发现,苹果的边界特征点都仅仅有很小的权重(箭头很短),于是尝试设置一个阈值将这些特征点去除,则剩下的大部分都为准确的特征点。选取阈值为1.7,将权值小于1.7的特征点剔除,实验结果如下:


从上图可以发现,特征点的提取已经比较准确,且基本没有边界特征点带来的干扰。但是,特征点的数量太少,这种解决方法,依旧无法完成苹果的识别。

3.实验结果分析

经过查阅SIFT算法作者的文章,发现文章中提出,SIFT算法适合于识别旋转度达60度的平面形状,或是旋转度达到20度的三维物体。

经过查询其他文章,发现很多人总结的经验表明,SIFT算法对模糊的图像和边缘平滑的图像,检测出的特征点过少,对圆更是无能为力

4.尝试其他解决方法

以下尝试几种openCV中常用的特征提取算法。

FAST

FAST特征点检测是公认的比较快速的特征点检测方法,只利用周围像素比较的信息就可以得到特征点,简单,有效。该方法多用于角点检测。

FAST特征检测算法来源于corner的定义,这个定义基于特征点周围的图像灰度值,检测候选特征点周围一圈的像素值,如果候选点周围邻域内有足够多的像素点与该候选点的灰度值差别够大,则认为该候选点为一个特征点。

以下是利用FAST算法对鞋子和苹果进行特征提取(黑色圆圈为提取得到的特征点)。

图像处理中,SIFT,FAST,MSER,STAR等特征提取算法的比较与分析(利用openCV实现)_第7张图片


由苹果和鞋子的特征点提取对比试验可以发现,该算法对于鞋子可以提取众多特征点,但是对于苹果仅仅能提取很少量的特征点,可见该方法依旧不适合用于苹果特征点的提取。

分析原因可以发现,苹果表面颜色和灰度是光滑过渡,所以该算法无法有效的提取特征点。

MSER

最大稳定极值区域(MSER-Maximally Stable Extremal Regions)可以用于图像的斑点区域检测。该算法最早是由Matas等人于2002年提出,它是基于分水岭的概念。

MSER的基本原理是对一幅灰度图像(灰度值为0~255)取阈值进行二值化处理,阈值从0到255依次递增。阈值的递增类似于分水岭算法中的水面的上升,随着水面的上升,有一些较矮的丘陵会被淹没,如果从天空往下看,则大地分为陆地和水域两个部分,这类似于二值图像。在得到的所有二值图像中,图像中的某些连通区域变化很小,甚至没有变化,则该区域就被称为最大稳定极值区域。这类似于当水面持续上升的时候,有些被水淹没的地方的面积没有变化。

利用此算法,同样对苹果和鞋子两个物体进行检测,结果如下



图像处理中,SIFT,FAST,MSER,STAR等特征提取算法的比较与分析(利用openCV实现)_第8张图片

通过对比试验发现,苹果的特征区域依旧非常少。可见该算法依旧不适合于苹果的特征提取。

分析原因可以发现,苹果的表面的灰度为比较光滑的过渡,当阈值不断增大时,陆地和水面的边界也在平缓的变化,所以很难得到一个最大稳定的极值区域。

STAR

利用STAR特征提取算法,实验结果如下:

图像处理中,SIFT,FAST,MSER,STAR等特征提取算法的比较与分析(利用openCV实现)_第9张图片

图像处理中,SIFT,FAST,MSER,STAR等特征提取算法的比较与分析(利用openCV实现)_第10张图片


由实验结果可以看出,该方法依旧无法提取出苹果的特征点。

5.总结分析

由上面的几个试验可知,以这些方法,都无法对苹果进行有效的特征提取。原因基本上都是因为苹果表面颜色过渡比较光滑,其表面大多数点和周围的点颜色差别太小,不宜作为特征点。

通过这几个实验还可以发现,无论是哪种特征点提取的方法,提取的特征点都位于苹果的上边部分和苹果的右边部分,即不同的特征提取算法提取的特征点的位置还是极为相似的,由此也可以看出不同的特征提取算法虽然方法不同,但是也存在着一定的相似性。


本人刚刚开始从事物体识别和特征提取的研究不久,还算是个初学者,为了提高自己,也为了和大家多多的交流并互相学习,将最近的一些实验发布出来,欢迎各位批评指正。也非常欢迎和我交流。

我的联系方式[email protected]

2015年3月9日   西安交通大学


你可能感兴趣的:(opencv,图像处理,Fast,sift,特征提取)