基于lut的重叠块模式boosting性别分类结果再生源代码
bob.paper.SCIA2015的Python项目详细描述
这个包提供了运行在PaperGender Classification by LUT based boosting of Overlapping Block Patterns中发布的实验的源代码。 性别分类管道由两个主要步骤组成:特征提取和分类。 在我们的方法中使用了obp特征,并将查找表作为弱分类器进行了增强。 这个包依赖于Bob来执行特征提取和分类。
警告
我们最近在lfw注释的i/o中检测到一个小问题,该问题会使对齐的面上下颠倒。 我们已经在版本1.0.3中修复了这些问题。 由于错误的对齐,lfw数据库上的算法现在可能有稍微不同的结果。 然而,由于算法对脸部的旋转不敏感——只要我们在训练和测试中都有相同的旋转——结果应该非常相似。
安装:
这个包使用几个Bob库,这些库将使用下面列出的命令行在本地自动安装。 但是,为了编译Bob包,需要安装某些Dependencies。
此套餐
这个包的安装依赖于BuildOut系统。 默认情况下,命令行序列:
$ python bootstrap-buildout.py $ ./bin/buildout
应该下载并在我们用来生成结果的版本中安装所有必需的Bob包。 其他版本的软件包可能会产生截然不同的结果。
注意
要使用所有Bob包的最新版本,请删除此包主目录中buildout.cfg文件中给出的严格版本号。
数据库
实验基于两个公开的图像数据库进行。 这两个数据库的评估协议都包含在这个包中:
- 要获取MOBIO database的副本,请按照Download Instructions操作,并下载IMAGES_PNG.tar.gz和IMAGE_ANNOTATIONS.tar.gz。
- 可以从数据库url下载Labeled Faces in the Wild database的图像。 我们的实验依赖于images aligned with funneling(不是与深漏斗对齐的那些)和automatic annotations。
实验:
协议:
测试在两个人脸数据集上执行:mobio和labeled faces in wild(lfw)。
- mobio:我们使用的评估协议包括培训、开发和测试集。 每组图片数:训练集9598张,开发集9586张,测试集9592张。
- LFW:数据集由13000多张从网上收集的图片组成。 图像被分割成5个不重叠的分区,在每个测试轮上,4个分区用于训练,第5个分区用于测试。 准确度报告为五组的平均值。
算法:
实现了以下算法:
- pca+lda:pca采用98%方差,线性判别分析作为分类器。
- lbphs+lda:将图像分割成6x6个单元,提取出统一的局部二值模式(lbp)特征。 将来自不同单元的lbp特征串联起来,使用相同的pca+lda分类器。
- mb-lbp+lut-boosting:从人脸图像中提取正方形多块lbp特征。 块大小从1到7不等。 以lut作为弱分类器来增强特征。
- obp+lut boosting:从图像中提取正方形obp特征。 块大小从1到7不等。 以lut作为弱分类器来增强特征。李>
- lbp+lut boosting(不在本文中):从图像中提取单尺度lpb特征。 以lut作为弱分类器来增强特征。
用户指南:
要从纸张中复制结果,请使用以下命令:
图像预处理:
$ ./bin/preprocess.py -d mobio -i <MOBIO-IMAGE-DIRECTORY> -a <MOBIO-ANNOTATION-DIRECTORY> -vv $ ./bin/preprocess.py -d lfw -i <LFW-FUNNELED-IMAGE-DIRECTORY> -a <LFW-FUNNELED-ANNOTATION-DIRECTORY> -vv
原始像素值的PCA+LDA:
$ ./bin/pca_lda.py -d mobio lfw -vv
LBPHS上的PCA+LDA功能:
$ ./bin/pca_lda.py -d mobio lfw -vv -l
增加三种类型的功能:mb-lbp、obp和lbp(仅作比较,不在本文中):
$ ./bin/lbp_boosting.py -d mobio lfw -vv $ ./bin/lbp_boosting.py -d mobio lfw -vv -o $ ./bin/lbp_boosting.py -d mobio lfw -vv -b 1
评估:
$ ./bin/evaluate.py -d mobio lfw -vv