选择LBP采样点和半径以获得良好的面部特征

时间:2018-02-14 04:49:50

标签: python opencv scikits lbph-algorithm facial-identification

我正在尝试使用Python和OpenCV对面部图像进行一些特征工程。这个想法是将这些特征用于无监督学习,以将同一个人的图像分组在一起。管道如下:

  1. 选择几个OpenCV面部探测器中的一个(一对LBP和几个HAAR面部级联)
  2. 使用OpenCV进行中 2.1使用5乘5高斯函数对图像进行卷积,以进行低频滤波,以降低噪声 2.2将图像转换为灰度

    2.3从照片中提取面部图像
    2.4将面调整为通用形状(例如,300乘300)
  3. 使用scikit-image.feature.local_binary_pattern获取面部的局部二进制模式
  4. 使用numpy生成那些LBP的直方图
  5. 使用直方图作为scikit-learn的NearestNeighbors无监督学习算法的功能,以查找可能表明属于同一个人的图像集群
  6. 问题是群集效果不好。当我将我的数据缩小到二维以进行可视化时,尽管我知道我的测试图像包含几个不同人物的图片,但它看起来甚至看起来都没有任何可辨别的聚类。

    我怀疑它与scikit-image的LBP参数有关:采样点数和采样半径。我试图为那些希望看到不同人的图像之间有良好分离的人玩几个值,但到目前为止还没有多少运气,见结果here。 (不同的颜色表示不同的人用于可视化目的。)所以这是我的帖子问题:

    根据图像的性质或他们的某些属性,是否有一个很好的规则或规则来选择采样点的数量和LBP的采样半径?如果您对如何获得好的功能有其他想法,请告诉我。

0 个答案:

没有答案