用Hough投票做物体检测(续)

用Hough投票做物体检测(续)


文献: Object Detection using a Max-Margin Hough Transform, CVPR 2009.

用最大化margin的方法学习出参与投票的部分的权重, 用优化工具CVX求解。流程图如下:

用Hough投票做物体检测(续) - 淮静 - 淮静的博客

文献: Recognition using Regions, CVPR 09.

内容简介:提出了一个用区域来做物体检测、分割和分类的统一框架。具体地:对每幅图像产生a robust bag of overlaid regions,每个region用一系列特征表示;学习出每个region的权重;用a generalized Hough voting scheme来预测物体的位置、大小和类别,在做验证和分割。Bag of regions的示意图:

用Hough投票做物体检测(续) - 淮静 - 淮静的博客

投票,验证和分割过程的示意图:

用Hough投票做物体检测(续) - 淮静 - 淮静的博客

文献:Voting by Grouping Dependent Parts,ECCV 10。

内容简介:Hough投票方法的主要弱点是,用相互依赖的局部观测来独立的对物体的全局特征进行投票。也就是说忽略了特征之间的依赖关系。本文通过将依赖的部分分到一组来投票,解决这个问题。示意图:

创新点:

提出一个目标函数把相关的三个问题结合在一起:

Grouping: 把相互依赖的部分分到一组;

Correspondences: 相互依赖部分的对应问题(查询图像的特征和训练图像的特征之间的相似度);

Voting:用分好的组来找到一致的物体的假设。

算法细节:

算法流程和代价函数的三项

如上图(a)示,算法流程为:计算边缘图像——在边缘图像上均匀采样,提取特征(geometric blur features)——把每个特征映射到训练集中与之相似的特征——把相关的点分到一个组,由整个组(而不是独立的点)来对物体的假设进行估计。

为了较好的分组,提出了三个代价函数,分别表征:训练图像和查询图像特征之间的一致性,分组变换的一致性,分组后投票的一致性。目标是让这三个代价函数的加权和最小。

代价函数的定义

Correspondences:通过最小化查询图像的第i个部分和训练图像的第j个码本的差异:

表示第i个查询部分跟第j个训练码本匹配。采用K近邻,即一个查询特征对于很多训练特征,

Grouping:找到一个变换来最小化组内每个部分的失真度:

Voting:惩罚组内投票的分散度:

(?)

代价函数组合:

所以,所有的查询部分i属于v组,并且与第j个训练部分相关的代价是:

联合优化和组的hough投票

我们使所有组的代价之和最小,来求解最好的分组方式,对应关系,变换,即:

联合优化和组的hough投票算法为:

其中式(14)为:

(?)

初始化分组的方法:如果边缘上的两点在同一个区域的边界上,则为一组。

验证:HOG特征的SVM分类器,用pyramid match kernels(PMK)。

————————————————————————————————————————————————————

文献:Discriminative Learning of Contour Fragments for Object Detection,BMVC 11。

内容简介:有判别性的学习轮廓片段描述子来做物体检测。

创新点:

提出了新的形状片段描述子,把边缘上的点之间的关系用一个角度矩阵描述。

判别性的学习:主要用hough 森林。

算法细节:

物体检测方法简介:用hough森林来判别性的训练局部边缘片段(分别代表新的片段描述矩阵,中心投票向量,类别);测试阶段匹配的描述子向特定的物体中心投票。

图1

片段的判别学习

边缘检测和连接:用Berkeley edge detector检测边缘,并把边缘连接起来,组成一系列点的集合。由于边缘的连接方式对片段的获取影响很大。 所以本文中,记:所有的点集为边缘(edges),所有提取出的边缘部分为片段(fragments)。定义所有的片段长度相同,有N个点。

形状片段描述子:一个独立边缘包含一系列点,共个(而且),表示为:,所以这个边缘有 个片段描述子。每个片段我们定义N*N的描述矩阵,每个元素定义为点组成的线和(这个片段的bounding box的左上角的点)组成的线的夹角:

该描述子的优点:有判别性(类内方差小,类间方差大,见下图),减少了噪声(考虑多个点之间的关系而不是单独考虑各个点),对尺度变化的不变性、包含了方向信息,高效(事先计算像素之间所有可能的组合,存储在一个查询表——lookup-table,这个查询表的大小为,可以在常数时间内查询。)。

图2

判别性的片段学习:用hough森林学习。

建树时,训练样本表示为(分别代表片段描述矩阵,类别,偏移向量),正例样本是bounding box内所有的边缘。二值测试时随机的减少类别不确定性和偏移量不确定性。

检测过程中,提取出边缘,计算它的个片段描述子,并且分类到特定树的叶子节点。

投票时,每个叶子节点都有中心投票向量 ,类别概率,在hough图像中对应位置增加。最后对hough图像做高斯滤波,取局部最大作为物体中心。

排序和确认

用已有的方法pyramid matching kernel (PMK),选择HOG特征,对图像中候选的一些位置排序,做确认。

问题

1. 图1是不是只选择有弯曲的轮廓片段投票?

在描述子中并没有区别直线轮廓和弯曲轮廓。之所以弯曲轮廓投票,主要跟后面的hough森林有关。

理论上,如果一个特征能够走到叶子节点,并且该节点的类别纯度是1,则它一定来自物体,所以很具有判别性,应该投票。实际中,受噪声影响,可能还得考虑这个特征占总特征的比例。如果叶子节点的纯度高,并且走到该叶子节点的特征比例大,则这些特征就很具有判别性。

所以,图1中所画的弯曲轮廓应该是很具有判别性的轮廓片段,而直线轮廓则不太有判别性。

2. 该描述子对旋转变化不鲁棒。因为同一个边缘旋转后,它的bounding box 会发生变化,那么就会变。

3. 为什么本文的描述子效果好,后面hough投票时用hough 森林有什么好处?(本文的核心)

当一个fragment上的两点i和j比较近时,该描述子与链码(chain codes)没有本质区别。当i,j比较远时,该描述子很好的描述了点之间的空间关系,从而很好的描述了边缘的形状信息

因为描述子遍历了fragment上的所有点,即把一个长度为N的fragment用一个N*N的矩阵进行描述,肯定有冗余。后面再用hough森林投票,经过多个节点判别,实质上是起到了降维的作用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值