BOFC、BOF与BOVW

       根据名字,可以发现它一定跟BOF有关系,那么就先来说说BOF吧。BOF,Bag Of Features,特征词袋,简单来说就是一种基于SURF的标准视觉词袋(Bag Of Visual Words,简称BOVW或者BOW)技术,可以说在CBIR(Content-Based Image Retrieval)系统中,最流行的方法就是BOF了,由于其具有很好的compactness和rapidity。大多数CBIR 系统中,使用的都是low-level features,如颜色、纹理、形状,BOF就是基于shape的,因为surf算子是基于shape,在使用中为了提高CBIR的系统性能,也为了能够抽取一张image更精准的表达,有大牛提出了一个新的算子,在原来BOF的基础上,加入image的颜色矩信息,来实现图像特征表达上的差异性,这种算法就叫做BOFC,即Bag-of-Features and Colors。

        BOFC的基本思想与BOF一致,主要基于bovw,唯一不同的是特征描述子;

          step1:对图像库(gallery images)提取surf特征点,并在每一个surf特征点周围的一块正方形像素邻域(比如5x5)对每个通道计算一阶和二阶颜色矩(其中,一阶颜色矩是mean,二阶颜色矩是variance),最后生成特征描述子(vector)(注意,此时的描述子是64维的surf,再加上每个通道的一阶和二阶颜色矩,一共是64+2*3=70维);

          step2:聚类,这里使用经典的K-means,生成visual vocabulary(一条一条的)并保存在库中,vocabulary的大小由K确定(注意K的选择,不宜太大也不易太小,太小会导致区分能力差,太大又缺乏一般性,对噪声太过敏感,产生额外的系统开销,所以要注意适当选择。);

          step3:输入a new image,将每一个特征点生成70维的特征描述子(term vector检索词向量);对每一个特征点计算与聚类中心的相似度,通过计算其到words的汉明距离(注:这里的距离度量可以用其他的距离,欧氏距离或曼哈顿距离,但bovw一般用的是Hamming距离),设置一定距离阈值,把每一个特征点assign到某一个聚类中心(word),这样就将一幅图像的高维描述子表达转化为了低维的bovw向量表示(a list of word number,or histogram),这个向量很重要,打个比方,我们在Google搜索引擎中搜索我们想要的东西时,会在空白地方输入一句话或是几个关键字,这里的‘一句话或几个关键字’就是我们图像检索里生成的一串低维的bovw向量,我们就要用这一串向量来进行检索

为看的更形象,特意截图如下:



       因为之前搞图像检索,这些概念性的东西混淆了我好久,现在把我的理解写出来,如果有错误,还请前辈们指正。

       另外详细的细节可翻看具体论文:

http://www.eajournals.org/wp-content/uploads/A-SURF-COLOR-MOMENTS-FOR-IMAGES-RETRIEVAL-BASED-ON-BAG-OF-FEATURES.pdf点击打开链接

https://globaljournals.org/GJCST_Volume11/1-Content-Based-Image-Retrieval-using-SURF.pdf点击打开链接





你可能感兴趣的:(CBIR,bof,bovw,BOFC)