基于lut的重叠块模式boosting性别分类结果再生源代码

bob.paper.SCIA2015的Python项目详细描述


这个包提供了运行在PaperGender Classification by LUT based boosting of Overlapping Block Patterns中发布的实验的源代码。 性别分类管道由两个主要步骤组成:特征提取和分类。 在我们的方法中使用了obp特征,并将查找表作为弱分类器进行了增强。 这个包依赖于Bob来执行特征提取和分类。

注意

目前,这个包只在类unix环境和macos下工作。 由于Bob库的限制,不支持MS Windows操作系统。 我们正在为ms-windows开发一个端口Bob,但可能需要一段时间。

警告

我们最近在lfw注释的i/o中检测到一个小问题,该问题会使对齐的面上下颠倒。 我们已经在版本1.0.3中修复了这些问题。 由于错误的对齐,lfw数据库上的算法现在可能有稍微不同的结果。 然而,由于算法对脸部的旋转不敏感——只要我们在训练和测试中都有相同的旋转——结果应该非常相似。

安装:

这个包使用几个Bob库,这些库将使用下面列出的命令行在本地自动安装。 但是,为了编译Bob包,需要安装某些Dependencies

此套餐

这个包的安装依赖于BuildOut系统。 默认情况下,命令行序列:

$ python bootstrap-buildout.py
$ ./bin/buildout

应该下载并在我们用来生成结果的版本中安装所有必需的Bob包。 其他版本的软件包可能会产生截然不同的结果。

注意

要使用所有Bob包的最新版本,请删除此包主目录中buildout.cfg文件中给出的严格版本号。

数据库

实验基于两个公开的图像数据库进行。 这两个数据库的评估协议都包含在这个包中:

实验:

协议:

测试在两个人脸数据集上执行:mobio和labeled faces in wild(lfw)。

  1. mobio:我们使用的评估协议包括培训、开发和测试集。 每组图片数:训练集9598张,开发集9586张,测试集9592张。
  2. 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作为弱分类器来增强特征。

用户指南:

要从纸张中复制结果,请使用以下命令:

  1. 图像预处理:

    $ ./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
    
  2. 原始像素值的PCA+LDA:

    $ ./bin/pca_lda.py -d mobio lfw -vv
    
  3. LBPHS上的PCA+LDA功能:

    $ ./bin/pca_lda.py -d mobio lfw -vv -l
    
  4. 增加三种类型的功能: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
    
  5. 评估:

    $ ./bin/evaluate.py -d mobio lfw -vv
    

最后一个命令将打印出在Paper的表1中报告的结果,并生成roc曲线,如Paper的图5所示。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
使用概要文件后找不到java bean不确定原因   多线程如果信号量锁获取/tryAcquire失败,如何使Java线程执行不同的任务而不是阻塞?   java编译器在同一目录中找不到其他类   在Java中,如何检查表示时间戳的字符串是否为有效日期?   java Commons vfs FindFile虚拟文件   TomcatJava。util。计时器空指针异常   java是在Oracle和Vertica之间移动数据的有效方法   java Adobe Acrobat Reader无法打开pdf文件,因为该文件不是受支持的文件类型,或者该文件已损坏   java使用usb驱动程序libusb、usb4java ecc。。为什么它如此不受支持?   java如何在第二列或特定列中插入jface TreeViewer?   java通过internet发送对象并调用其方法   带超声波传感器的Esp32Cam   java Cassandra分页问题最后一页的分页状态不正确   Java/WildFly/MongoDB/JAAS身份验证始终返回403禁止