为什么DLIB计算LBP统一描述符的平方根?

时间:2016-05-23 14:26:03

标签: c++ image-processing feature-extraction dlib lbph-algorithm

我使用dlib库从给定图像中提取LBP均匀度。 我使用了下一个功能(http://dlib.net/dlib/image_transforms/lbp_abstract.h.html#extract_uniform_lbp_descriptors),但我并不完全明白第三个参数(cell_size)的功能。在documentacion中说下一个:

  

我们将采用所有直方图元素的平方根。也就是说,#feats[i]是出现在相应窗口中的LBP数量的平方根。

我不知道' #feats[i]何时是LBP数量的平方根'。什么引用? 如果有人能帮助我,我会感激... 谢谢!

2 个答案:

答案 0 :(得分:1)

请参阅https://en.wikipedia.org/wiki/Local_binary_patterns处的LBP说明。

实际上,您将图像分成方形单元格,并为每个单元格构建59-bin直方图,将单元格中的每个点与其邻居进行比较。第三个参数(cell_size)定义了这些单元的大小。 然后将来自所有细胞的组织蛋白质连续化成长59 *(细胞数),得到载体std :: vector&技艺。

答案 1 :(得分:1)

人们普遍认为,使用平方根(Hellinger)内核代替标准欧几里德距离来测量特征分布之间的相似性可以提高分类精度。

对于两个LBP直方图

x

y

他们的Hellinger distance定义为:

H(x,y)

Hellinger核分类器可以通过使用LBP直方图的平方根作为特征向量,以及欧几里德距离作为不熟悉度量,以直接的方式实现。这就是为什么LBP的数量在参考代码中的平方根。