(转载:http://blog.csdn.net/jiang1st2010/article/details/7647766)
SIFT和SURF,比较稳定,描述子 比较鲁棒,好像非常棒的样子。但是有一点非常遗憾,就是他们在对图像进行处理的过程中,都把图像转化为灰度图像进行处理,这样就丢失了颜色信息。而颜色, 本身提供了很大的信息量,丢失了特别可惜。在这一讲中,我们就重点介绍一下改进的SIFT/SURF的Color Descriptor。
我们要评价一个描述子是否鲁棒,重点就看图像被加入噪声后,形成的描述子是否依然稳定(也就是特征的各维是否不发生变化)。这里所谓的噪声,无外乎以下几种:
这里几乎把所有可能发生的线性变化都列出来了。可以考虑到,现有的灰度的SIFT/SURF特征对于1-3的变化具有不变性。这主要得益于1)他们都采用 梯度的直方图(Haar小波也是计算了梯度),这样可以消除intensity shift。2)RGB的线性变化不影响梯度的方向。3)最终都对描述子向量做了归一化,解决了灰度的尺度变化。这样的话,我们需要考虑的就是如何解决 4-5的颜色上的变化了。在此之前,我们先看看目前不用在SIFT/SURF上有哪些颜色特征。
1、RGB histogram,最常见的颜色直方图,你懂的,但是不具有任何不变性,想到这里以后还是换个特征用吧。
2、Opponent histogram
O1和O2表征了颜色信息,对lightintensity shift是不变的,不过O3这个直接与灰度相关的变量就不是了。
3、Hue histogram
这个大家也熟悉,它对灰度的尺度变化和增量变化具有不变性。所以说HSV颜色空间对于RGB颜色空间,在这一点上有着优势。
4、rg histogram
相当于对rgb分量做了一个归一化,归一化之后r/g分量就可以描述图像的颜色信息。其中b分量是多余的,因为r+g+b=1。Rg直方图对light intensity change是不变的,对于存在阴影的场景中可以尝试用。
5、transformed colorhistogram
考虑到rgb直方图对于灰度和颜色的线性变化不具有任何不变性,但是如果我们考虑对RGB三个通道分别做归一化,归一化的方法如:
这样,通过减去均值可以抵消各通道的valueshift,通过除以方差可以抵消各通道的value scale change。(均值和方差以待统计的块为单位进行计算。)这样归一化之后的直方图对于light color change and shift是具有不变性的。
列举了颜色直方图的几种统计方法之后,我们可以把他们用在SIFT/SURF描述子之中。因为传统的SIFT/SURF描述子是对单通道进行统计的,当使 用上述特征进行统计时,就是对多个通道分别计算描述子,最后形成一个多维的特征作为颜色描述子。重点想提一下的就是:
C-SIFT:利用Opponentinformation中的 O1/O3和O2/O3作为颜色特征,这么做的目的是为了消除O1和O2中的灰度信息,但是,这样做却不能对intensity shift有不变性。
Transformedcolor SIFT:这个特征将不仅对灰度的change和shift具有不变性,同时还对各颜色的shift和change都具有不变性;
RGB-SIFT:很有意思的就是由于Transformedcolor SIFT对各通道的线性变化都具有不变性,而Transformed就是RGB特征经过线性变换而来,因此RGB-SIFT和Transformed color SIFT具有同样的不变性(效果是一样的)。