• (论文分析) Object Detection -- Class-Specific Hough Forests for Object Detection


    Class-Specific hough forests for object detection

    从这篇文章中我们可以学习到generic hough transform random forest  的应用

    Hough Forests 如何建造呢?

    对于Hough forests, 每棵树基于一系列patch进行建造,其中是这个patchappearance是这个patch的标签,是这个patchobject中心的偏移(offset)。

    下面我们具体描述一下如何从训练样本中抽取这些patch

    从背景图像中抽取得到的patch,其类别标签,从使用bounding boxes框住的图像内部抽取的patch其类别标签为。对于每一个object patch也赋予一个从bounding box 中心(即目标中心)到patch中心的偏移。对于一个background patch这个offset不赋值。

    在所构建的树上,对于每一个叶节点,在训练时到达这个叶节点的所有patch的信息保存。于是,我们存储(到达这个叶节点的object pathes的比例)和 针对于所有到达这个叶节点的object patches的偏移值(用于投票使用)。于是这棵树的叶子节点就形成了一个用于目标中心可能位置的discriminative codebook。在运行时,这些信息用来对object的所有可能位置进行投票。

    我们应该选用什么样的patch appearance binary tests呢?

    在训练和测试时,所有的patches 使用一个固定大小,例如16*16对于apperance 可以使用扩展的特征通道来定义。于是一个patch apperance可以写成,其中是一个16*16的图像,是通道数。

    对一个patch appearance 的二值测试能够用许多方式来定义,但是作者选择基于pixel 测试。像这样的测试使用通道索引,两个位置,阈值,从而测试可以写成如下形式:

    现在我们开始建立树了:

    Hough forests 中树的建立遵循这一般随机森林的框架。每一棵树从根开始迭代建立。在构建过程中,每个节点收到一系列training patches。如果节点深度等于一个最大值()或者patches的数目很小(),被构建的节点就可以成为一个叶节点,并且叶节点的信息被累计并且存储。否则一个非叶节点被创建并且一个最优的测试(binary test)被挑选。

    如何挑选这个最优测试呢?

    核心原则:越走向叶节点,所接收到得patches的类别标签和偏移向量的不确定度逐渐减少。为了实现这个目标,作者定义了两个对patch不确定性的测量方法。假设对于一个节点收到的patchesclass-label 不确定性,其是用来衡量class labels 的不纯性:

    其中,entropy定义为

    偏移不确定性,其用来衡量偏移向量的不纯性:

    其中是平均偏移。

    注意我们忽略背景patches

    现在两个测量不确定性的方式已经给出,我们采用如下的方式进行binary tests。给定一系列training patches,我们依靠均匀抽样来产生一系列像素测试。然后随机决策被建立。一般来说,除非negative patches 太少,我们等概率地选择,在这种情况下,选择最小化offset uncertainty。最后我们选择可以使两个不确定度测量都最小化的binary test

    如何使用hough forest 进行目标检测呢?

    现在假设对应于在图像中的位置目标出现的随机事件。我们感兴趣的时计算,其可以解释为这个patchappearance可以带来在图像中得位置处的事件。

    我们需要区分两个情况:是否属于以x为中心的bounding box 。如果,那么我们可以假设对于是没有信息价值的。

    在这片文章中,作者假设第二种情况。于是我们有:

    对于第一项的估计方法如下:

    使用基于在训练中在叶节点存储的偏移向量集,和 Parzen-window进行估计。第二项可以直接使用在训练期间的object patches 的比例。对于一棵单独的树,我们有

    而对于一个森林呢?

    6)和(7)定义了一个single patch的关于目标是否存在的概率投票。为了整合来自于不同patches的投票信息。我们使用一种additive way累计他们进入2D Hough 图像:

    如果我们完全按照(6~8)来进行计算的话,这是没有效率的。作者给出了更好的策略

     

    见即将公布的 eagleeye 框架

  • 相关阅读:
    09-导入/导出
    django 登录
    python 数据结构
    Django 加密解密
    MySQL SQL语句
    libpython3.6m.so.1.0文件缺失
    环境变量配置
    Django 设置session过期时间
    Django 搜索功能
    表单校验
  • 原文地址:https://www.cnblogs.com/jian-hello/p/3552101.html
Copyright © 2020-2023  润新知